aufstellen
node.js + web3.js (Version 0.20.6) + und Verwendung von infura für den httpProvider
Ich habe herausgefunden und erfolgreich erc20-Token mit web3.js gesendet (nach viel googeln ... komplett noobie hier ...)
und ich versuche jetzt herauszufinden, wie ich den Token-Transaktionsverlauf einer bestimmten Adresse abrufen kann.
Ich habe die Idee, dass ich die Ereignisse beobachten muss, die für Token-Transaktionen das "Transfer" -Ereignis wären.
Also folge ich der Javascript-API für "Vertragsereignisse" https://github.com/ethereum/wiki/wiki/JavaScript-API#contract-events
und unten ist der Code, den ich ausführe (oder zumindest versuche)
var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider('https://rinkeby.infura.io/MYINFURATOKEN'));
var myaddress = "0x482d42bc7a5dd62f3fae88c3b4cde29a333cf913";
var contractAddress = "0x31a86307bfe81780a47fe98c192004ccdce8fcc0";
var abi = [{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TransferAllowed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"bool"}],"name":"TransferEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"bool"}],"name":"TransferDisabled","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"}];
var myContractInstance = web3.eth.contract(abi).at(contractAddress);
var event = myContractInstance.Transfer({_from: myaddress}, {fromBlock:0, toBlock: 'latest'});
event.watch(function(error, result){
if (!error)
console.log(result);
});
und das kehrt zurück
Filter {
requestManager:
RequestManager {
provider:
HttpProvider {
host: 'https://rinkeby.infura.io/MYINFURATOKEN',
timeout: 0,
user: undefined,
password: undefined,
headers: undefined },
polls: {},
timeout: null },
options:
{ topics:
[ '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
null,
null ],
from: undefined,
to: undefined,
address: '0x31a86307bfe81780a47fe98c192004ccdce8fcc0',
fromBlock: '0x0',
toBlock: 'latest' },
implementation:
{ newFilter: { [Function: send] request: [Function: bound ], call: [Function: newFilterCall] },
uninstallFilter: { [Function: send] request: [Function: bound ], call: 'eth_uninstallFilter' },
getLogs: { [Function: send] request: [Function: bound ], call: 'eth_getFilterLogs' },
poll: { [Function: send] request: [Function: bound ], call: 'eth_getFilterChanges' } },
filterId: null,
callbacks: [ [Function] ],
getLogsCallbacks: [],
pollFilters: [],
formatter: [Function: bound ] }
Was ich mir ziemlich sicher bin, ist nicht der Token-Transaktionsverlauf ... oder gibt es einen Schritt, den ich vermisse?
Wie würde ich von hier aus gehen?
Vielen Dank im Voraus. Justin.
Ich mache hier dasselbe wie Sie. Dies zeigt Ihnen den Verlauf der Token-Transaktionen, die Sache ist, dass es Ihnen nicht den Verlauf einer Token-Transaktion einer bestimmten Adresse zeigt.
Justin Kwon
Nikita Jerschow