アプリケーション開発ポータルサイト
ServerNote.NET
ServerNote.NET厳選キャンペーン・クーポンはこちら!
カテゴリー【仮想通貨
【Solidity】Remix IDEを使用してサーバー不要のコントラクト開発&デバッグ【Ethereum】
POSTED BY
2022-06-26

コントラクトの開発と単体テスト自体は、Remix IDEでオンライン上で一応一通りできる。

https://remix.ethereum.org/

アクセスすると、デフォルトのサンプルsolファイルがいくつか用意されている。

1_Storage.solを見てみる。

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

/**
 * @title Storage
 * @dev Store & retrieve value in a variable
 * @custom:dev-run-script ./scripts/deploy_with_ethers.ts
 */
contract Storage {

    uint256 number;

    /**
     * @dev Store value in variable
     * @param num value to store
     */
    function store(uint256 num) public {
        number = num;
    }

    /**
     * @dev Return value 
     * @return value of 'number'
     */
    function retrieve() public view returns (uint256){
        return number;
    }
}

メンバ変数numberを、store関数を使って書き換え、retrieve関数を使って取得するという、非常にシンプルなコントラクトの例である。

では、これをそのままコンパイルしてみる。虫めがねアイコンの下のアイコンをクリックしSOLIDITY COMPILERタブを開く。

Compile 1_Storage.sol というボタンが出ているはずなので、コンパイラのバージョンもデフォルトのまま、クリックしてコンパイルする。

コンパイルが成功すると、下のほうにABIBytecodeを取得できるボタンができるので、コピーして保存しておく。これらは後で自分でJavaScriptコードを書いてコントラクトをロードする時に必要な情報になる。特にABIは、1_Storage_ABI.jsonなどとJSONファイル名で保存しておく。

コンパイルしたコントラクトは、さらにその下のタブ=DEPLOY & RUN TRANSACTIONSにて、デプロイ&任意の関数実行テストができる。

ENVIRONMENTにJavaScript VM (London)を選べば、Remix上の仮想マシンにデプロイしてテストできる。Storageコントラクトが選ばれていることを確認して「Deploy」すると、そこに登録される。そのトランザクションの様子がデバッグウインドウで確認できる。

デプロイが成功すれば、そのコントラクトアドレスがDeployed Contractsに現れ、各種関数が任意の引数でテストでき、そのIN/OUTがデバッグウインドウで確認できる。Storageコントラクトでは、numberセット関数storeボタンを押してを任意数値でセットし、retrieveボタンで現在のnumber数値を取得できる。

なお、コントラクトを自分サイトのHTMLからJavaScriptで呼びたい場合は、JavaScript VMでなく、どこかのネットワークにデプロイしなくてはならない。ほとんどの場合は、ENVIRONMENTにて「Injected Web3」を選択し、組み込みのMetaMaskと連携して、そこで選んでいるテストネットワーク(RinkeByなど)へデプロイする。

補正下着からセクシーランジェリーまで!レディースインナー通販【tu-hacci(ツーハッチ)】
2/18(金)19:00〜2/28(月)23:59まで、全品ポイント99%還元! 先着3億円まで! ※12日から告知される参加規...READ MORE
DVD・ゲーム・フィギュアなどのネット買取なら【買取ガンガン】
買取ガンガンはリサイクルショップ運営16年、 累計取引10,000,000点超の実績を活かした、 インターネット専...READ MORE
小・中・高校・不登校対応 家庭教師 月額12800円〜
無料でオンライン体験授業を受けて頂くことで成果が発生します。 対象学年は小学生・中学生・高校生と幅広...READ MORE
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【webmaster/管理人】
自営業プログラマー
ご連絡は以下アドレスまで★

☆ServerNote.NETショッピング↓
ShoppingNote
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】