Lesson 6 capture9 Eventのサブスクライブ
新しいゾンビのリッスン
zombiefactory.sol内でイベントを使用。
event NewZombie(uint zombieId, string name, uint dna);
Web3.jsでは、web3プロバイダがコード中のロジックをトリガーとして引くようにイベントを サブスクライブ できる。
.on("data", function(event) {
let zombie = event.returnValues;
// `event.returnValues`オブジェクトのこのイベントの戻り値3つにアクセスできる:
console.log("A new zombie was born!", zombie.zombieId, zombie.name, zombie.dna);
}).on("error", console.error);
これだとそのユーザーの分だけでなく、DApp内でゾンビが作成されるたびに通知が表示されてしまう。
そのユーザーの分だけ通知が必要な場合はどうすればよいのか?
ERC721の実装で行ったTransferイベントのようにindexedというキーワードを使用しなくてはならない
この場合、_fromと_toはindexedされているので、フロントエンドのイベントリスナーでそれらをフィルターすることは可能
cryptoZombies.events.Transfer({ filter: { _to: userAccount } })
.on("data", function(event) {
let data = event.returnValues;
// 現在のユーザーがゾンビを受け取った!
// それを示すようUIをアップデートする何かを行おう
}).on("error", console.error);
getPastEventsを使って過去のイベントをクエリすることや、fromBlock及びtoBlockのフィルターを使用してSolidityに期間を指定してイベントのログを取ることも可能
.then(function(events) {
// `events`は、上でやったように反復可能な`event`配列内のオブジェクトである
// このコードは、これまで生成された全ゾンビのリストを提供してくれる
});
.on("data", function(event) {
let data = event.returnValues;
getZombiesByOwner(userAccount).then(displayZombies);
}).on("error", console.error);
prev
-
クリプトゾンビLesson 6 capture8 Payable関数の呼び出し
Lesson 6 capture8 Payable関数の呼び出し payable関数でレベルアップ contract ZombieHelper内 function levelUp(uint _zomb ...
NEXT
以上でクリプトゾンビBeginner to Intermediate Smart Contractsは完了です。
なめらかなデータ活用社会を創るAcompany株式会社の0から作るDapps入門 フロントエンド編()が分かりやすいのでおすすめです。
-
0から作るDapps入門 フロントエンド編 APP.jsを確認
APP.jsを確認 dapps-sample-frontend(https://github.com/melonattacker/dapps-sample-frontend)のコードを確認する。 1行 ...
-
TruffleでスマートコントラクトをRinkebyテストネットへデプロイ
0から作るDapps入門を参考にDappsを作る。 以下は、0から作るDapps入門を参考にDappsを作成した際のメモです。 ほぼ初心者の状態で作成したので、インストール手順やディレクトリ構成が異なります。
クリプトゾンビを改造して作ってみたいもの
-
エボリューションを作る
クリプトゾンビを改造したアプリをつくりたい 仕様 大幅な改造はしない(できない) クリプトゾンビのDNAのパターンを増やす。(できれば2列) DNAパターンに合わせて画像を増やす。 外部環境(気温、隕 ...