概要
Remix IDEは、ダウンロード、アカウント作成、ログインを必要とせず、ブラウザから直接Solidityスマートコントラクトを記述できる強力なオープンソースツールです。
この記事では、Remix IDE と MetaMask ウォレットを使って Hello World コントラクトを Flare ブロックチェーンにデプロイする手順の公開です。
目次
Remixで新しいファイルを作成
- Remix IDEにアクセス後、New Fileボタンをクリック
- ファイル名をHelloWorld.solと命名
- contractsフォルダにドラッグ&ドロップ
コントラクトの書き込み
以下のスマート・コントラクトのコードをコピー、作成したHelloWorld.solファイルに貼り付けます。
// SPDX-License-Identifier: MIT
// Specifies the version of Solidity, using semantic versioning.
pragma solidity 0.8.17;
// Defines a contract named `HelloWorld`
contract HelloWorld {
// Declares a state variable `message` of type `string`.
string public message;
// Constructors are used to initialize the contract's data.
constructor(string memory initMessage) {
// Accepts a string argument `initMessage`.
message = initMessage;
}
// A public function that accepts a string argument.
function update(string memory newMessage) public {
message = newMessage;
}
}
Remixでコントラクトのコンパイル
- Solidity Compiler タブ (左側) に移動
- コンパイラ バージョン 0.8.17 を選択
- [Compile HelloWorld.sol] ボタンをクリック
コンパイルに成功すると、コンパイラ・タブのボタンに緑色のチェックマークが表示されます。
Flare Testnetでの展開
FlareのテストネットワークであるCoston2ネットワークにスマートコントラクトをデプロイします
スマートコントラクトをFlareのメインネットワークにデプロイすると、(ガス料金などの)コストがかかるだけでなく、変更できなくなります。そのため、スマート・コントラクトを最初にテスト・ネットワークへのデプロイを強く推奨。
Remixのデプロイメントに取り掛かる前に:
- MetaMaskウォレットにCoston2テストネットワークを追加
- MetaMask Walletガイドにその方法が記載されています。
- ネットワーク設定のページにある Coston2 の値を使ってください。
- Coston2 ネイティブトークン $C2FLR がガス料金の支払いに十分であることを確認
- Coston2 Faucetにアクセスし、$C2FLRを要求
- Deploy & Run Transactionsタブ(最後のタブ)に移動
- ENVIRONMENTドロップダウンからInjected Provider - Metamaskを選択する。必要に応じて、MetaMaskで受信した接続要求を受け入れる。
- Deployボタンをクリック
- MetaMaskでCONTRACT DEPLOYMENTトランザクションを確認
Flareメインネットワークにコントラクトをデプロイするプロセスは上記と同じです。
MetaMaskでFlare Networkを選択後、$FLRトークンを使うだけです
コントラクトの対話
これで、コントラクトは、意図どおりの動作を確認できる。
- 下にあるDeployed Contractsセクションで、HELLOWORLDコントラクトを展開し、そのメソッドとデータを見る:
- update メソッド。
- messageパブリック変数。
- updateボタンの横のボックスにメッセージを入力後、ボタンをクリック
- MetaMaskでデプロイメントトランザクションを確認
- メッセージボタンをクリック
- 前に入力したメッセージが戻ってくることを確認
- コントラクトが更新されたことを確認
まとめ
Web3の開発にはRemixの操作方法の理解が必要です。まず、理解するためにFlareから学ぶことがいいです。F-AssetsやLayerCakeの学習もできるのでおすすめです。