Remixを用いたSolidityのハンズオン
概要
2019年11月20日(水)に行われた「先端情報経済AI公開講座」の備忘録です。
Rinkbyネットワークへのスマートコントラクトのデプロイを行います。
必要な環境
- Google Chrome
セットアップ
ウォレットのインストール
ウォレットのインストール
ETHのウォレットであるメタマスクをインストールする
1. Chromeに追加
ボタンを押す
2. Get Started
ボタンを押す
当該画面が表示されていない場合は、右上のAppのボタンを押してください。
3. Create a Wallet
ボタンを押す
4. I agree
ボタンを押す
5. 必要な情報を入力する
① 任意のパスワードを入力
② 欄内に①と同様の物を入力
③ 【利用規約を読み、同意します】にチェック
④ 作成
ボタンを押す
6. パスフレーズの確認
①の部分をクリックするとパスフレーズが表示されます。
万が一の為にどこかに保存しておいてください!
他人には教えないでください。
確認が終了したら②をクリックしてください。
7. パスフレーズの確認
先ほど保存したパスフレーズを入力して、確認
ボタンを押す
以上でウォレットの登録は完了です!
RinkebyテストネットでETHを取得する
FacebookやTwitterで取得する方法があるそうです。
今回はTwitterを利用します。
1. ウォレットのネットワークをRinkebyテストネットワークに変更する
①の部分を選択して、メニューが表示されたら、②のRinkedyテストネットワーク
を押す
2. Rinkeby Authenticated Faucetにアクセスします。
3. Twitterの投稿URLへジャンプします。
4. Twitterへの投稿
Twitterの投稿内容のアドレスの部分を自分のウォレットのアドレスに変更して投稿します。
■ 自分のウォレットのアドレスコピー方法
MetaMaskのアカウント情報からコピーできます。
この際、右上のネットワークが「Rinkeby テストネットワーク」になっている事を確認してください。
5. Twitterへの投稿内容の確認
6. 投稿のURLを取得する
投稿の下部のボタンからリンクを取得する
7. ETHの取得
コピーしたURLをRinkeby Authenticated Faucetの①「Social network URL containing your Ethereum address...」に入力する
②で取得したいETHを選択する
8. 確認
Chromeの右上のアプリの部分で「MetaMask」をクリックすると、ETHが取得できている事がわかる。
Remixを用いてSolidityを使ってみよう
RemixはSolidityのコンパイラ兼統合開発環境です。
バージョンアップも頻繁なので、UIは良く変更される。
1. 開発環境の設定
Remixへアクセスする
RemixのサイトへアクセスしてIDEを起動してください。
開発環境を選択する
「Home」のタブで開発環境を選択します。
Environmentsの部分のSolidity
ボタンを押します。
選択すると左側にSolidityのコンパイラ等の設定が表示されます。
※ 追記
「Compiler Configuration」の「Auto compile」を有効にすると、
プログラム書いている途中からコンパイルしてくれるので、どこが間違えているのかすぐわかります!
と教えていただいたので追記しておきます!
今回は、0.5.11のコンパイラを利用します。
2. コーディングしてみる
+
ボタンを押し、ファイル名(今回はtest.sol)を指定して、OK
を押します。
エディター部分に以下のコードを書きます。
pragma solidity ^0.5.11;
contract Test{
uint public num = 5;
}
3. コンパイルを行う
コードを書き終わったら、左の①部分を選択し、コンパイラの画面を開く。
その後、Compile test.sol
ボタンを押す。
コンパイラのアイコンにチェックマークが付いた場合は、コンパイルが成功しています。
4. 自分のローカル環境にデプロイしてみる
①のボタンを押し、「DEPLOY & RUN TRANSACTIONS」を開きます。
②の「Environment」が「JavaScript VM」になっている事を確認します。
(JavaScript VMに指定する事で自分のパソコン上でデプロイすることができる)
③のDeploy
ボタンを押すと、④の「Deployed Contracts」にコントラクトが表示される。
⑤のnum
ボタンを選択すると、プログラムで指定した変数の内容「5」が確認できる。
5. さらにコーディングしてみる
エディターに下記のコードを書き込む
pragma solidity ^0.5.11;
contract Test{
uint private num = 5;
mapping (address=>uint) public balances;
mapping (uint=>address) public owner;
function getNum() public view returns(uint) {
return num;
}
function setNum(uint _num) public {
num = _num;
}
function setBalances(uint _num) public {
balances[msg.sender] = _num;
}
}
先ほどと同様にコンパイルし、デプロイしてみる。
今回は、変数numをprivateに設定したため、ここでは内容を表示できなくなっている。
setNum・getNumについての動作確認
①の欄に適当な値を書いて②のsetNum
ボタンを押すと変数numに記載した値が設定されます。
③のgetNum
ボタンを押すと先ほど設定した値が表示されると思います。
6. setBalances・balancesについての動作確認
①の欄に適当な値を入力し、②のsetBalances
ボタンを押すとBalancesに値が記憶されます。
(ここら辺の動作がまだしっかり理解できていません)
③の欄に上部の「Account」の値をコピペし、④のbalances
ボタンを押すと先ほどの値が表示されます。
7. Rinkebyのテストネットにデプロイする
①の「Enviroment」の欄を「Injectid Web3」に変更します。
すると、②の欄に、自分のRinkebyテストネットワークのウォレットアドレスが表示されると思います。
その後、③のDeploy
ボタンを押してください。
すると、下記のようにGAS代についての確認画面が出るため、確認
ボタンを押してください。
確認後、「Deployed Contracts」に表示が追加されればデプロイ完了です。
8. テストネットワーク上での動作確認
先ほどと同様に動作させてみましょう。
今回は、テストネットワーク上にデプロイして動作させているため、下記の操作を行う際は、GAS代が請求されます。
- setNum
- setBalances
下記の操作を行う際は、GAS代が請求されません。
- balances
- getNum
- owner
まとめ
とても、長くなってしまいましたが、ハンズオンは以上です。
思っていたより簡単にデプロイすることができました。
簡単なDAppsとか作ってみたいと思いました!
内容が間違っている部分や書き方がおかしい部分が有りましたら、ご指摘宜しくお願い致します。
Author And Source
この問題について(Remixを用いたSolidityのハンズオン), 我々は、より多くの情報をここで見つけました https://qiita.com/s_Pure/items/df5988ce59fa0c063720著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .