Die Transaktionsdetails können in Etherscan nicht angezeigt werden

Ich verwende ethereumJs und web3.js, um erc20-Token von einem Konto zu einem anderen Konto zu senden. Ich kann den Hash der Transaktion abrufen, kann aber keine Transaktionsdetails auf dem Etherscan sehen.

var Web3 = require('web3');
var express = require('express');

var router = express.Router();
var fs    = require("fs");
var EthereumTx = require('ethereumjs-tx');
var crypto = require('crypto');
var secp256k1 = require('secp256k1');
var keccak =  require("keccak");

router.get('/', (req, res, next) => {

if ( typeof web3 !== 'undefined' && typeof web3 !== undefined) { 
    web3 = new Web3(web3.currentProvider);

   console.log('if');
}
   else{

   web3 =  new Web3(new Web3.providers.HttpProvider("https://rinkeby.infura.io/tPNyqnWI32IepQh2lrMf"));
   var count = web3.eth.getTransactionCount("0xD8d9e3fE93315b8ce838E39c4696438A8d8E66F3");
var abiArray = JSON.parse(fs.readFileSync('./public/mycoin.json', 'utf-8'));
var contractAddress = "0x9A48831A220c793ed4CcF0dCbD5390fB56EF9B91";
var contract = web3.eth.contract(abiArray).at(contractAddress);
   var number =  web3.eth.blockNumber;
   var rawTransaction = {
    "from": "0x95297713bdb43515420d9662a88516219085bb8a",
    "nonce": "0x001",
    "gasPrice": "0x9184e72a000",
    "gasLimit": "0x7458",
    "to": "0xDED54CC5f578Aa39c1083dbe16D68a28C776cA02",
    "value": "0x012",
    "data": contract.transfer.getData("0x9A48831A220c793ed4CcF0dCbD5390fB56EF9B91", 10, {from: "0xD8d9e3fE93315b8ce838E39c4696438A8d8E66F3"}),
    "chainId": "0x04"
};

var privKey = new Buffer('9e37167fd8b807a3805e41e34e07dd5472512ec568878c0a08c49cec0c5f9a4b', 'hex');
console.log('else');
var tx = new EthereumTx(rawTransaction);

tx.sign(privKey);
var serializedTx = tx.serialize();
;
web3.eth.sendRawTransaction('0x' + serializedTx.toString('hex'), function(err, hash) {
     if (!err) { 
        console.log(hash);
     }
     else{
        console.log(err);
     }
});

}


});

module.exports = router;

Ich übertrage auch den Trx-Hash an das Netzwerk, bekomme aber einen Fehler ---- rlp: Wertgröße überschreitet die verfügbare Eingabelänge

Antworten (1)

Es scheint, Sie haben rückwärts, wie transferund tosollten Sie sich verhalten.

var rawTransaction = {
    "from": "0x2222...",             // <-- Address owner tokens
    "nonce": "0x..",                 // <-- eth.getTransactionCount(from)
    "gasPrice": "0x9184e72a000",
    "gasLimit": "0x7458",           // <-- Might be low, try 90k = 0x015f90
    "to": "0x4444...",              // <-- Token address
    "value": "0x00",                // <-- Most tokens require value to be zero
    "data": contract.transfer.getData("0x999999...", 10),   // <-- Recipienet
    "chainId": "0x04"
};

Um die Token-Menge zu berechnen, berücksichtigen Sie die Dezimalstellen. Wenn Dezimalstellen 5 sind und Sie 2 Token übertragen möchten, ist der Wert 200000. Der häufigere Wert ist 18 Dezimalstellen, um 11 Token zu senden, müssen Sie berechnen 11 * 10**18.