質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ethereum

Ethereum(イーサリアム)は、ビットコインに次いで時価総額が大きい仮想通貨もしくはそのブロックチェーン技術を指します。DApps やスマート・コントラクトの構築を目的としたプラットフォームであり、OSSで開発されています。

web3.js

web3.jsは、Ethereumのノードとローカルの通信を可能にできるJavaScript APIです。HTTPやIPCを使って通信を行い、gethを毎回起動せずにブラウザからコントラクトを実行できます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1521閲覧

infura.ioでコントラクトアドレスの情報を取得したい

beta

総合スコア13

Ethereum

Ethereum(イーサリアム)は、ビットコインに次いで時価総額が大きい仮想通貨もしくはそのブロックチェーン技術を指します。DApps やスマート・コントラクトの構築を目的としたプラットフォームであり、OSSで開発されています。

web3.js

web3.jsは、Ethereumのノードとローカルの通信を可能にできるJavaScript APIです。HTTPやIPCを使って通信を行い、gethを毎回起動せずにブラウザからコントラクトを実行できます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/05/10 08:31

編集2020/05/10 22:19

##やりたい事
・infura.ioのAPIを使い、コントラクトアドレスの一時間ごとのユーザー数と処理金額を取得したい
一時間ごとにcronでinfuraAPIへアクセスするという設計です。
cron部分は現在はまだやっておらず、API呼び出しの部分を現在、調べています。

##環境
・ubuntu18

##試した事
infuraのドキュメントを参考に使えそうなAPIメソッドをcurlでテスト
eth_getBalanceは動きました。
ですが、eth_getLogsは動きませんでした。

・WSSと書いてあるWebSocket系のメソッドも試しましたが、上手く動きませんでした。
eth_subscribeは動きましたが、eth_getFilterLogsは動きませんでした。

##エラーメッセージ
試したコード1

curl https://mainnet.infura.io/v3/Project-ID -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"address":"contract address"}],"id":1}'

結果1

{"jsonrpc":"2.0","id":1,"result":[]}

引数が足りないのでしょうが、ドキュメントを見ても、どれを加えれば良いのかよく分かりませんでした。
topicsというパラメータが、何を指すのかよく分からないです。

Array of 32 Bytes DATA topics. Topics are order-dependent.

配列云々は分かるのですが、配列の中身は何なのかよくわからないです。

ちなみに、Project-IDやcontract addressの部分は、自分の環境に合わせて置き換えてあります。

試したコード2

wscat -c wss://mainnet.infura.io/ws/v3/Project-ID {"jsonrpc":"2.0","method":"eth_getFilterLogs","params":["0xfe704947a3cd3ca12541458a4321c869"],"id":1}

結果2

{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"filter not found"}}

こちらは全く検討もつきません。
paramsでいきなり引数が書いてありますが、ドキュメントには複数の引数があり、どれだか検討がつきません。

詳しい方、どうかご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

getlogsの方が、fromBlockとtoBlockをつけたら動きました。

投稿2020/05/17 14:20

beta

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問