一、开发文档
Infura网站:https://infura.io/
注册并创建项目的通信密钥
API文档:https://infura.io/docs
通过curl请求拿到接口返回结果,前后端都适合使用。
二、示例
2.1 成功的交易示例:
https://rinkeby.etherscan.io/tx/0x198519cd9bd7c6dcc59daee4353e8840fa143852fb1a5649eae8bca8d3fd1002
其中status = 0x1 表示交易成功。
curl https://rinkeby.infura.io/v3/aee01847006e423b8550c54d27a92c** \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params": ["0x198519cd9bd7c6dcc59daee4353e8840fa143852fb1a5649eae8bca8d3fd1002"],"id":1}'
2.2 失败的交易示例:
https://rinkeby.etherscan.io/tx/0x8623cb00359cb87a7f7d0ad7cb430431a919b47f1419504976ca8c6d15fadf6d
其中status = 0x0 表示交易失败。
curl https://rinkeby.infura.io/v3/aee01847006e423b8550c54d27a92c** \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params": ["0x8623cb00359cb87a7f7d0ad7cb430431a919b47f1419504976ca8c6d15fadf6d"],"id":1}'
2.3 pedding状态的交易示例:
https://rinkeby.etherscan.io/tx/0x9c2c0120c08583e1b8a625a9d779a778f153b6f01633301aeb30cdeb0cff935e
使用eth_getTransactionReceipt方法:
curl https://rinkeby.infura.io/v3/aee01847006e423b8550c54d27a92c** \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params": ["0x9c2c0120c08583e1b8a625a9d779a778f153b6f01633301aeb30cdeb0cff935e"],"id":1}'
返回:
{"jsonrpc":"2.0","id":1,"result":null}
使用eth_getTransactionByHash方法:
curl https://rinkeby.infura.io/v3/aee01847006e423b8550c54d27a92c** \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params": ["0x9c2c0120c08583e1b8a625a9d779a778f153b6f01633301aeb30cdeb0cff935e"],"id":1}'
返回:
{"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":null,"from":"0xc5d2954bbb0f652aefd48640c5279f28247b8294","gas":"0x7530","gasPrice":"0x30d40","hash":"0x9c2c0120c08583e1b8a625a9d779a778f153b6f01633301aeb30cdeb0cff935e","input":"0x","nonce":"0x1","r":"0x8bc385749712e2507184c521261bb3b0461deb40205c54e1e90ef1cd48432eab","s":"0x7b86255fd5bf22dbb2d16ed3d65c3ba7480dfcbbf314035923c1d9fa877bb534","to":"0x039a8f5289914c9bfbb6e92df1fde5a0ae1d28ec","transactionIndex":"0x0","v":"0x1b","value":"0x2710"}}
比较eth_getTransactionReceipt和eth_getTransactionByHash两个方法,当交易处于pedding状态时,eth_getTransactionByHash会返回result,其中的blockHash和blockNumber都为空,transactionIndex不足以用做判断条件,成功、失败、pedding都有可能为0x0;而eth_getTransactionReceipt会直接返回result=null,综上所述,推荐用eth_getTransactionReceipt方法。
网友评论