コントラクト指向言語solidityでシンプルストレージを作成してみます。
■PC環境
Windows10
Solidity言語用Contract開発環境(IDE)「Remix-ide」(https://remix.ethereum.org/)
■シンプルストレージを作成する
では、シンプルストレージを作成しますので、コードを書いていきます。
■コード
pragma solidity ^0.8.3; contract SimpleStorage{ string public data; function set(string memory _data) public{ data = _data; } function get() view public returns(string memory){ return data; } }
まずは「pragma solidity」でコンパイラのバージョン指定をします。今回はバージョン0.8.3。
その後、SimpleStorageというスマートコントラクトを定義します。定義したコントラクト内で関数などを定義していきます。dataをstring(文字列)が入る状態にし、publicで呼び出させるようにする。
次にset()関数を定義し、括弧内では、string(文字列)をmemoryに保存するように設定する。このset()関数は、外部からも内部から呼び出せるpublicで、関数が呼び出された時に実行される処理は、「data = _data」とする。
定義後、get()関数を定義し、この関数は「view」でデータの閲覧のみを行い、publicで呼び出させるようにする。さらに、returnsで関数のreturnsタイプであることを示し、memoryに保存されたstring(文字列)を返す。さらに関数が呼び出された時に実行される処理は、returnでdata内の情報を返す。
■コンパイルからのデプロイ、検証
「Remix-ide」から「SOLIDITY COMPILER」を選択し、「Compile (ファイル名).sol」ボタンをクリックする。「compilerMetadata is modifyingcontracts/artifacts/SimpleStorage.json」といった出力が表示されるが一旦無視する。
コンパイル後、「DEPLOY&RUN TRANSACTIONS」を選択し、「ENVIRONMENT」が「Java Script VM」になっているかを確認する。Java Script VMは、Webブラウザ上での疑似実行モード。
その後、「Deploy」ボタンをクリックする。クリックするとデプロイが完了となり、「Deployed Contracts」の下にコンスタントが表示される。
今回定義したset()関数に、文字列を渡してみると、memoryに保存するように設定しているため、data内には、string(文字列)の「hello」が格納され、get()関数でもdata内の情報が返されることが確認できました。
コメント