Solidity言語

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

さてさて今日はCryptoZombiesの更新に力入れるためにも早めにやっていきます!!payable関数のチャプターの際にてetherの支払いをやったのを思い出しつつ、web3.jsでの実装方法についてやります。
通貨etherの単位として、weiに関しても出てきます!
復習としても良いと思いますので、見ていきましょう!!

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

それでは開演しまっす!!

チャプター8:Payable関数の呼び出し

10

attack、changeName、changeDna関数に関しては、前回の記事でやったやり方でコーディングできるので、省略するとの事ですな。実際のところはやるべき事ではあるが、その時は未知なる領域を開拓せよ⑦を参照してやってみよう。

別のやり方が必要な関数はpayable関数という事なので、そのやり方を見ていきましょう。
21

weiに関しては覚えておりますね??
過去記事参照👉レッスン3:Solidityの高度なコンセプト④

29
尻切れにつき追記、

toWei(“0.001”, “ether”) })

以上のコードを使うと、etherをweiに変換して送信してくれるという事ですね。いちいち計算する必要がないっていうのはありがたいですな!

web3js.utils.toWei(“1”, “ether”)は覚えておくべきシンタックスですかね!

おっ、今回は早いですな、、という事でテストだ!!

44

feedOnKittyに非常に似ている、、という事なので、、コピペしててもいいかもしれませんね。

1ではこの関数(levelUp)は一つのパラメータを受け取る、との事なので、、

function levelUp(zombieId) {}

となります。

2ではトランザクションの前にtxStatusのテキストを表示する、なので、

$(“#txStatus”).text(“Leveling up your zombie…“);

となりますね。

51

3では“0.001” EtherをtoWeiに変換して送信しなくてはならないので、そのために使うコードは、、

return CryptoZombies.methods.levelUp(zombieId)

.send({ from: userAccount, value: web3js.utils.toWei(“0.001”) })

となりますね。
説明の例としてはtoWei(“0.001”, “ether”)となっているが、ZombieHelper.solにてlevelUpFeeにて0.001 etherと指定しているため、ここでは”ether”が必要ないのかもしれません。。
DelegateCallに質問してみていますが、おそらくそうでしょう。

4では成功したら、次のテキストを表示、、なので、、

.on(“receipt”, function(receipt) {
$(“#txStatus”).text(“Power overwhelming! Zombie successfully leveled up“);

となります。

5ではここではUIの表示を変更する必要がないので

getZombiesByOwner(userAccount).then(displayZombies);

の部分は削除しましょう

})

.on(“error”, function(error) {
$(“#txStatus”).text(error);
});
}

の部分は成功しなかった場合に必要なので、忘れずに入れましょう。

まとめると、、、

function levelUp(zombieId) {
$(“#txStatus”).text(“Leveling up your zombie…”);

return CryptoZombies.methods.levelUp(zombieId)

.send({ from: userAccount, value: web3js.utils.toWei(“0.001”) })

.on(“receipt”, function(receipt) {

$(“#txStatus”).text(“Power overwhelming! Zombie successfully leveled up”);
})
.on(“error”, function(error) {
$(“#txStatus”).text(error);
});
}

となります。

ここらへんは大丈夫そうです、、、質問したところくらいですかね〜!そこまで悩まずに済んだので早めに午前の部終了できましたな!!

残りの時間はSpeakeeテストを本日はまだ更新していないので、そちらをやるのと、、

本を読む時間にしようかな!

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

という事でまだ後ほど!

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