どうも、Mejikaです!
今回から、実際にコントラクトを書いてみましょう!
言うは易し、行うは難し
何事もやってみるべし、ですね😌
今回つくるのは、メッセージです。
・ブロックチェーン上にメッセージを刻み込む
・刻み込んだメッセージを見る(呼び出す)
・メッセージを書き換える
という感じです
それではさっそくまいりましょう
まずは、コードの作成です。
ーーーーーーーーーーーーーー
pragma solidity ^0.4.17;
contract Msg {
string public message;
function Inbox(string initialMessage) public {
message = initialMessage;
}
function setMessage(string newMessage) public {
message = newMessage;
}
function getMessage() public view returns (string) {
return message;
}
}
ーーーーーーーーーーーーーー
え?これだけ?
はい、そうなんです。
メッセージを書くだけであれば、これくらいなんです。
けっこう短いなあ、て私も最初思いましたw
まず最初に、赤字の部分。
これはSolidity言語で書いたプログラムです。バージョンは〇〇です。
というのを宣言します。
^^^^^^^
pragma というのは、ギリシア語で 事実、行為、といった意味です。
英語だとprogramですね
^^^^^^^
次に、青字の部分。
新しく作成するコントラクトの名前を書きます。
それから、緑字の部分。
このコントラクトで ”変えられるもの” を宣言します。
今回は、メッセージ、を変えることができます。
変えられるものを、message と名付けます。
^^^^^^^
stringsは、英語で 文字情報 という意味です。
publicは、英語で 公共の という意味です。
^^^^^^^
つまり、
string public message
とは、
このコントラクトは、”message” という文字情報を書き込んだり書き換えたりできるサービスで、誰でも利用できますよ。
と宣言しているわけですね。
次に、いよいよメインディッシュ!
関数の定義ですww
関数は、 〇〇 したら ▲▲ する
という
このサービスをつかうときの “お約束” ごと
ですね
ただし、口約束などとちがって、やぶることはできませんww
プログラムですからw
1つ1つ説明していきます。
①これはお約束だよ、と宣言したら、
②お約束ごとの名前と、何についてなのかを書きます(文字?数字?アドレス?など)
③誰でも(コントラクトの外からでも)呼び出せて使ってよいか決めます
④お約束ごとの内容をきめます。
今回の場合は、このようになります。
①
②
③
④
2つ目のお約束ごとは、
setMessage です
newMessage という新しいメッセージでmessage を書き換えます。
最後はgetMessageです。
一番あたらしいメッセージを呼び出すことができます。
呼びだすだけのお約束ごとでは、return というのが使われますね。
^^^^^^^
return は英語で 返す、という意味ですね
^^^^^^^
では、作成したコントラクトを
Remixで実際に動かしてみましょう
書いたコードをコピペします
オートコンパイルします。
Solidityのバージョンは合わせます。
最初のメッセージを
ぐっもー忍!
に設定してデプロイします。
メッセージが刻み込まれました。
(デプロイのあとにInboxでメッセージを書いてもOKです)
getMessageをおすと、ぐっもー忍! と出てきましたね!
また、message = initialMessage(最初のメッセージ)のため、
messageを押しても ぐっもー忍! となります。
次に、メッセージを書き換えてみます。
忍者DAOだお~
と入力してsetMessageボタンを押します。
getMessageをおすと、今度は、忍者DAOだお~ と出てきましたね!
また、message = setMessage(最新のメッセージを書き換え)されたため、
messageを押しても 忍者DAOだお~ となります。
メッセージが書き換えられましたね😀!
動作確認もできました
さて、いよいよ次回は
コントラクトをテストして、デプロイしてみましょう❗️
お疲れさまでした!
ここまで読んでくださったあなた、本当にありがとうございます!
それではまた、お会いしましょう!
ウホウホ
🦍
コメント