コントラクトを作ってみよう

どうも、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だお~ となります。

 

メッセージが書き換えられましたね😀!

 

 

動作確認もできました

さて、いよいよ次回は

コントラクトをテストして、デプロイしてみましょう❗️

 

 

お疲れさまでした!

ここまで読んでくださったあなた、本当にありがとうございます!

 

それではまた、お会いしましょう!

 

ウホウホ

🦍

コメント

タイトルとURLをコピーしました