見出し画像

Ethereum入門 (3) - Remix

「Remix」の使い方をまとめました。

前回

1. Remix

「Remix」は、Ethereumのスマートコントラクトを開発するための統合開発環境です。ブラウザ上で動作します。コードは、JavaScriptに似た言語である「Solidity」で記述します。

以下のURLにアクセスして、「Remix」を起動します。

https://remix.ethereum.org

2. Remixの画面構成

「Remix」の画面構成は、次のとおりです。

「ファイル」タブのボタンの機能は、次のとおりです。

3. サンプルコードの実行

サンプルコードの実行手順は、次のとおりです。

(1) 「アイコンパネル」で「ファイル」を選択し、「サイドパネル」で「1_Storage.sol」を選択。

「Remix」には、次の3つのサンプルコードが用意されています。

・1_Storage.sol
・2_Owner.sol
・3_Ballot.sol

「1_Storage.sol」は、変数「number」に値を格納および取得するコードになります。

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

/**
 * @title Storage
 * @dev 変数に値を格納および取得
 * @custom:dev-run-script ./scripts/deploy_with_ethers.ts
 */
contract Storage {

    uint256 number;

    /**
     * @dev 変数に値を格納
     * @param num 格納する値
     */
    function store(uint256 num) public {
        number = num;
    }

    /**
     * @dev 変数から値を取得 
     * @return 取得する値
     */
    function retrieve() public view returns (uint256){
        return number;
    }
}

(2) 「アイコンパネル」で「コンパイル」を選択し、「サイドパネル」で「Comple 1_Storage.sol」を押す。

(3) 「アイコンパネル」で「ビルド & 実行」を選択し、「サイドパネル」で以下を選択し、「Deploy」ボタンを押す。

・ENVIRONMENT : Remix VM (London)
・ACCOUNT : 0x5B3… (一番上のアカウント)
・CONTRACT : Storage - contracts/1_Storage.sol

Remix VM (London)」は、ブラウザ上のサンドボックスなブロックチェーン環境です。独自の「ブロックチェーン」であり、リロードするたびに古いチェーンがクリアされ、新しいブロックチェーンが開始されます。

(4) 「サイドパネル」を下にスクロールし、「Deploy Contracts」を操作。
変数の値を格納する「store」と変数の値を取得する「retrive」を利用できます。

「Deploy Contracts」を操作するたびに、ガス代を払うため、Accountsのetherが減ります。

【おまけ】 「デプロイ & 実行」の設定

◎ ENVIRONMENT
デプロイ先となるネットワークを選択します。

・Remix VM (London) : ブラウザでサンドボックスブロックチェーンに接続。「Remix VM」(旧「JavaScript VM」) は、独自のブロックチェーンであり、リロードするたびに古いチェーンがクリアされ、新しいものが開始される。古いものは保存されない。「London」は、EthereumのLondonフォークを指す。
・Remix VM (Berlin) : 「Remix VM (London)」と同樣。「Berlin」は、EthereumのBerlinフォークを指す。
・Injected Provider - MetaMask : 「injected web3 provider」にRemixを接続。
・Hardhat Provider : ローカルの「Hardhatテストチェーン」に接続。
・Ganache Provider : ローカルの「Truffle Ganacheテストチェーン」に接続。
・Foundry Provider : ローカルの「Foundry Anvilテストチェーン」に接続。
・WalletConnect : 「WalletConnect」を使用して、モバイルデバイスでトランザクションを承認。
・External HTTP Provider (旧「Web3 Provider」) : リモートノードに接続。選択したプロバイダー (geth、parity、その他のEthereumクライアント) にURLを提供する必要がある。
・L2 - Optimism Provider : 「Optimism Network」のメインネットの設定を使用して、「Injected Provider」 (通常は MetaMask) に接続。
・L2 - Arbitrum One Provider : 「Injected Provider」(通常はMetaMask) に「Arbitrum Oneネットワーク」の設定で接続。

◎ Account
 現在の環境に関連付けられているアカウントのリスト (および残高)。「Remix VM」では、10のアカウントから選択できる。「MetaMask」で「Injected Web3」を使用している場合は、「MetaMask」でアカウントを変更する必要がある。

◎ Gas Limit
Remixで実行するトランザクションで許可するガス限度額。

◎ Value
Remixで実行するトランザクションで送金するETH。トランザクション実行後に0にリセットされる。

次回


いいなと思ったら応援しよう!