エテリアム契約の状態/ストレージを見たいと思っています。たとえば、1つのアカウントの値が200を超え、別のマップが30以上のキーなどを持っています。エテリアムの契約状態を見てください
これにはどのようなものがありますか?この目的のために使用できるSaaSプラットフォームはありますか?
編集:私は契約の所有者ではないことを忘れていました。私は単に誰かの他の契約を見たいと思う。
エテリアム契約の状態/ストレージを見たいと思っています。たとえば、1つのアカウントの値が200を超え、別のマップが30以上のキーなどを持っています。エテリアムの契約状態を見てください
これにはどのようなものがありますか?この目的のために使用できるSaaSプラットフォームはありますか?
編集:私は契約の所有者ではないことを忘れていました。私は単に誰かの他の契約を見たいと思う。
イベントはこの目的のためにサポートされています。
例:
contract SomeContract {
struct AccountData {
address account;
uint value;
}
...
event AccountValueChange(address account, uint value, bytes msg);
...
function someAction() {
AccountData accountData;
// some activity with accountData...
if (accountData.value > 200) {
AccountValueChange(accountData.address, accountData.value, "Some message");
}
}
}
あなたはあなたのクライアント
const someContract = web3.eth.contract(abi).at(address);
myContract.events.AccountValueChange({
filter: {//Optional event filters},
fromBlock: 0
}, function(error, event){ console.log(event); })
.on('data', function(event){
console.log(event);
})
.on('error', console.error);
EDITでのイベントをリッスンすることができます:全てのイベントに耳を傾けるように更新クライアントコードの代わりに火力1つだけイベント。
簡単な答えは、これを実行するためにEVMを自分で調べ、監視できるネットワーク上で自分のノードを実行することです。これを行う公開プロジェクトはありません。RPC APIはそれを達成するための手段を提供していません。私は自分の条件が満たされたときに電子メールを送信するために、郵便配達と郵便配達でコード化されたカスタムトランザクションフィルタを使って修正されたGethバイナリを使用しました。
イベントは、作成時に契約に含まれなければならないため、問題は解決しません。
ありがとうございました。元の投稿に編集を追加しました。私は契約の所有者ではないことを忘れていました。私は第三者によって展開されたものを見たいと思う。 – Klaus
イベントを聞くには、契約の所有者である必要はありません。必要なのは、ABI、契約住所、イベントの名前だけです。 フィルタリングする場合は、フィルタリングするデータが契約所有者のインデックスとしてマークされている限り、フィルタパラメータを指定することができます。そうでない場合は、すべてのイベントを聴いて自分自身をフィルタリングする必要があります。 –