完整代码如下:
app.js
const Web3 = require('web3')
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY') // YOUR_INFURA_API_KEY替换为你自己的key
// OMG Token Contract
const abi = [{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_releaseTime","type":"uint256"}],"name":"mintTimelocked","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
const address = '0xd26114cd6EE289AccF82350c8d8487fedB8A0C07'
const contract = new web3.eth.Contract(abi, address)
// 获取事件
contract.getPastEvents(
'AllEvents',
{
fromBlock: 8717848,
toBlock: 'latest'
},
).then(function(events) {
console.log(events)
});
运行app.js:
$ node app
输出
[ { address: '0xd26114cd6EE289AccF82350c8d8487fedB8A0C07',
blockHash:
'0x1a1dab6709a8b634c9a5e7e24f6d232b48f82b445154f3cf6d8052bdb0550d53',
blockNumber: 8717848,
logIndex: 92,
removed: false,
transactionHash:
'0x2ae9c47967eceee1eee042d3d49d89fb8994b2362969a6a7e18c92204bdf5757',
transactionIndex: 106,
id: 'log_b0adb365',
returnValues:
Result {
'0': '0xB8243475CFFA57E65e739793966fBC03DA35d3aD',
'1': '0x3f5CE5FBFe3E9af3971dD833D26bA9b5C936f0bE',
'2': '27768634590000000000',
from: '0xB8243475CFFA57E65e739793966fBC03DA35d3aD',
to: '0x3f5CE5FBFe3E9af3971dD833D26bA9b5C936f0bE',
value: '27768634590000000000' },
event: 'Transfer',
signature:
'0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
raw:
{ data:
'0x000000000000000000000000000000000000000000000001815e0208fa932c00',
topics: [Array] } },
...
{ address: '0xd26114cd6EE289AccF82350c8d8487fedB8A0C07',
blockHash:
'0x86b830ce21ac1d2fe88b3210bd9ca6ce8a6dc807a470d3f4cf57d17b3fe0e2bc',
blockNumber: 8718031,
logIndex: 178,
removed: false,
transactionHash:
'0x76d8fdef6a7dd0099357ddf00c9c812196a98bc8bb3deab31f7f5b8dd823fc4e',
transactionIndex: 187,
id: 'log_e6809a37',
returnValues:
Result {
'0': '0x0e936B11c2e7b601055e58c7E32417187aF4de4a',
'1': '0x11614c5F1Eb215Ecffe657Da56d3Dd12df395dc8',
'2': '115164104778191566836',
from: '0x0e936B11c2e7b601055e58c7E32417187aF4de4a',
to: '0x11614c5F1Eb215Ecffe657Da56d3Dd12df395dc8',
value: '115164104778191566836' },
event: 'Transfer',
signature:
'0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
raw:
{ data:
'0x0000000000000000000000000000000000000000000000063e39172153f977f4',
topics: [Array] } } ]