Solidity言語

レッスン5:ERC721はコレクター要素だ②

ERC721、多重継承の方法、括弧に悩まされる、mappingに関しても。という壁にぶつかりました!スラスラ行っても、こうやって壁にぶつかる瞬間がないと深い理解につながらないですからね、壁にぶつかった事をチャンスだと前向きに捉える事が大事ですよね。と自分に言い聞かせております!

たぶん聞けば簡単な問題なのだろうけど、その問題が今はまだ巨大な岩でしかない、、、気づいた時にはこんなにも小さな石だったのか、と思うのだろうけど、、、w

前振りはこんなところでw

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

それでは開演します!

チャプター2:ERC721規格と多重継承

55
尻切れしていますが、コーディングスペースに新たにerc721.solが追加されているのでその部分を参照ください!

51
ドラフトじゃと??よく高校生がドラフト会議とかされてるやつか??
調べたらドラフトとは、「草案・下書き」という意味でした!

ほうほうなるほど、これが正式なものではないので、正式リリースされるまでは真に受けるな、との事ですな!

00

おっ!ここでチャプタータイトルの多重継承が出て来ましたな!コンマで区切るだけね、こりゃ簡単だね!

早速テストだ!!

11

はいはいはい〜、erc721.solが追加されている事を確認してくださいね〜!さっき尻切れトンボの部分はこのタブを確認すれば見れますからね!ただ正式なものでは無いよ〜との事なので、さらっとみる程度にしましょう!

26

1では、、インポートせよ!との事なので、、

import “./erc721.sol”;

となりますな!前回importしたのがあるので、それ見ればわかりますな!

2では多重継承するとの事なので、、、

contract ZombieOwnership is ZombieAttack, ERC721 {}

となりますね!!

内容は濃いけど、テストはちょいと簡単すぎやしまへんか??w
油断は大敵ですけどねw

さぁこの勢いで次のチャプターも行くぞ!!

チャプター3:balanceOfとownerOf

49
尻切れしているので、一応全文書いておきます。

function balanceOf(address _owner) public view returns(uint256 _balance) {}

ゾンビさんのちょっとした手違いかと思いますが、最後の波カッコ部がセミコロンになってましたな。
コーディングスペースには波カッコになっているので勘違いしないようにね!

ここでのクエスチョンマーク、、どこに保存しているか思い出してくれ、との事だ!
ヒントは以下の画像にあるから見ておいてくれ!

03

58
こちらも新しく関数定義していますな。同じ名前の修飾子を以前宣言していると思うが、これはまったくの別のだという事を覚えておこう。こちらも尻切れしているので、書いておきますね。

function owenrOf(uint256 _tokenId) public vier returns(address _owner) {}

ここではreturnステートメントを使って1行で実装できると書いてある、、、mappingがあるから、、、なんてヒントまでくれているぞ!

先ほどのクエスチョンマークの質問の答えがわかったかな??
わかればテストへ進むぞ!!

09

1ではbalanceOfを実装し、_ownerのゾンビ保有数を返すようにせよ、との事なので、、、

return ownerZombieCount[_owner];

となります。

2ではownerOfを実装し、_tokenIdをIDに持つゾンビを保有する者のアドレスを返せ、なので、、

return zombieToOwner[_tokenId];

となりますな!

と偉そうに言っていますが、もしここで私と同じミスをした人がいたならば、同志と呼ばせてくれw

私は[]ではなく、()を入れ、ゾンビちゃんに怒られた!それは間違いですよ、、と。

引数として渡す場合は()を使って、中に引数をいれて渡す、、

今回の場合はmappingの構造としては、配列なので配列の値を返す場合は[]を使う、という事なのでしょうかね??

ここらへんの使い方は調べてもすんなり出て来ていないので、JavaScriptとか進めていくウチにきっと理解できるんだと思うのですが、まだまだ理解できた!!というにはほど遠いですな。。。

疑問として残ったのは、、

()を使う場合と、[]を使う場合の違いと意味、ですね。

この疑問を解決できれば少しステップアップできる気がします。

あとmappingに関してJavaScriptだとmap型に関して、ですね。

もう一本チャプター行こうと思ってたけど、この問題にぶつかり、現在頭が回らない状態になってしまったため、午前の部はこれまで。。

ご飯食べて少し調べてだな〜。。まぁあんまし考えすぎてポンコツになっても困るし、今は息抜きしようっとw

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

それではまた後ほど! 

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