Solidity言語

レッスン6:未知なる領域を開拓せよ⑨

サブスクライブとは、indexedとは、getPastEventsとは、fromBlock-toBlockとは、という内容となっております。全然理解できていない分野となり、説明も不十分かとは思います。むしろ説明できてない、、と思われると思いますが、後々のリライトできる伸び代と考えていただけると幸いです。。w

Speakeeのテストも本日3本ほど収録してしまいましたw
いや〜他のユーザーさんの話し聞くと、喋りたい欲が出てきてやばいですな。

普段あんまし喋ることないのですが、仮想通貨の話とかもそうだし、近くで話ができる人いないっていうのは喋りたい欲求が出ちゃう大きな要因なのかな、と思います。

毎日更新していくので、そちらの方もテストではなくなったら、お聞かせできると思いますので、ローンチまでお待ちください!

CryptoZombies | イーサリアムでのゲーム開発を学ぶ

それでは開演します!!

チャプター9:Eventのサブスクライブ

48

はいはい、サブスクライブってなんじゃい??

サブスクライブ(Subscribe)とは「購読する・署名する・定期購読・定額課金」という意味です。反対の言葉として、cancelやstopが使われるとのこと。この業界的にはこの意味でよいのだろうか、、

08
まず上記、尻切れしているので追記します。

戻り値3つにアクセスできる;
zombie.zombieId, zombie.name, zombie.dna);

イベントをサブスクライブできる、、の意味がまだピントこないですねぇ、、

20
ここも尻切れにつき、追記します。

event Transfer … address indexed _to, uint256 _tokenId);

indexedとは、「索引付けされた」という意味である。
よくインデックスつけて、っていうような使われ方してますが、カラフルな付箋の事をインデックスと呼ぶのはこういう意味があるからなんですな。本などの大事な部分にマーカーとして貼っておけば、後からすぐ見つけれますからね。

このindexedというのをつけておくと、ゾンビが誕生した際には、その誕生したゾンビのオーナーにのみ、通知が表示される、というような仕組みにできる、という事なんですね。

ここではトランスファーのイベントで使用されていますが、送信側と受け取り側だけでイベントが発生するように、、という仕組みなんでしょうな。じゃなきゃトランスファーする毎に関係ない人たちに通知いってもなんのこっちゃって話ですもんねw

こちらも尻切れにつき追記、、

// ‘_to’が … 動作するように‘filter’を使う
cryptoZombies.events … userAccount } })

ここではeventとindexedの重要性について語ってますな!時折indexedと見る事があるのはこのためなんだなと理解できましたね!特定のイベントが起きた人のみに使いたい場合に使う、という事ね。

32
尻切れ説明が多いですな、追記します!

fromBlock: 0, toBlock: “latest” })
‘event’配列内のオブジェクトである

getPastEventsは、過去のイベントをクエリ(命令)すること、

fromBlock及びtoBlockは、Solidityに期間を指定してイベントのログを取る事。

も可能であるという事ですな。

42

ふむふむ、、、ガスコストの事を考えると使うべき所がある、とだけ覚えておこうw

それではテストだ!!

49

1では今回のチャプターで出てきたコードブロック、をコピペせよ、との事なので、startApp関数の最後に追加する必要があるとのことなので、

cryptoZombies.events.Transfer({ filter: { _to: userAccount } })

.on(“data”, function(event) {

let data = event.returnValues;

// 現在のユーザーがゾンビを受け取った!

// それを示すようUIをアップデートする何かを行おう

}).on(“error”, console.error);

となります。緑色はコメントのため削除可!

2ではUIを更新するにはこのコードを使うとのことなので、

getZombiesByOwner(userAccount).then(displayZombies);

となるので、}).on(の上に入れなきゃないということも踏まえて、

まとめると、、

cryptoZombies.events.Transfer({ filter: { _to: userAccount } }) 
.on(“data”function(event
let data = event.returnValues

getZombiesByOwner(userAccount).then(displayZombies);
}).on(“error”, console.error);

となります。

このテストだけ考えるとそんなに難しくはないんだけど、やっぱり理解するのって相当大変だよなぁというのが自分の見解ですね。。

まだまだ開発する、と意気込んで始められないけど、今一通りの知識を得たことに変わりはないので、今後Solidityに関しては、勉強するツールを見つけたのでそれをこれから始めて行こうと思っております!

寂しい事に、レッスン6はここで終了となります!あとはまとめという形で説明のみになりますので、そこに関しては別記事にて、それこそコピペだけして、眺めるようにしたいと思います。

完璧に理解することはできないと、始めから思っていましたが、レッスン1〜5に関してはなかなか理解できたと思っています!

最新のブロックチェーン技術を使った開発に関して、もっともっと深めていければ、と考えているので今後のブログ記事としてはブロックチェーン技術に対してのことだったり、Swift言語のことだったり、、活動を記事にしていきますので、乞うご期待いただければと思います。

Speakeeのテストをしていく上で、Speakeeアプリを開発しているエンジニアの方からも素敵なアドバイスを頂け、今後はProgateでJava等の知識を入れつつ、UdemyにてSolidity言語とSwift言語に関する知識を深めて行こうと思います!一応、先ほど登録完了し、2本ほど記事を購入いたしました!

あの内容で一本1300円とか、安すぎでしょ!

この考え方、本を買う感覚でチャレンジできるので、めちゃくちゃいいね!

アフィリンクみたいなのあったら、毎回載せるわ!w
あるんだろうか、ないんだろうか、、、わからんけど、w

ブログ始めて2ヶ月くらいだけど、まだそこらへんしっかりと調べたり、応用したりしていない現状なのでそこらへんもしっかり構築していかなきゃとは思っているけど、それよりも先に勉強したり、その勉強に必要な本読んだりが先になっちゃうんだよなぁ、、、w

Udemyの公式サイトはこちら!

しかもね、、英語の記事しかなくても、その記事の音声を自動で字幕表示してくれる機能?記事?もあるんですよね。。

それが最新の記事に対応していたりするので、今回Solidityの2018/4月更新の記事購入にいたりました!
情報の流れの早い世界ですから、新しい記事ほど必要なものはないですからね、、、ぜひ利用して見る価値ありですな!!

ということで今日の更新はここまで!

CryptoZombies | イーサリアムでのゲーム開発を学ぶ

それではまた明日!!

ABOUT ME
shidayuu
元バンドマンで読書・書評をしている函館在住32歳、しだゆうと申します! このブログでは主に読書した内容を元に、「ヒラメキを発信する」をテーマとして毎日更新しています。 書評をメインに、たまに元バンドマンの知識を発信していきます! あなたの役に立てる記事を書いていきます!