首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Ropsten上使用Infura节点发送eth

无法在Ropsten上使用Infura节点发送eth
EN

Ethereum用户
提问于 2017-02-10 07:02:30
回答 3查看 4K关注 0票数 9

我试着用恩弗拉在Ropsten网络上发送一些测试以太,但是我不能进行交易。代码在本地与testrpc一起工作,但不适用于英弗拉。

代码语言:javascript
复制
var Web3 = require('web3');
var util = require('ethereumjs-util');
var tx = require('ethereumjs-tx');
var lightwallet = require('eth-lightwallet');
var txutils = lightwallet.txutils;



var web3 = new Web3(
    new Web3.providers.HttpProvider('https://ropsten.infura.io/<token>')
    //new Web3.providers.HttpProvider('http://localhost:8545')
);

var address = '0xadaD904F70ec8323fEd1734614d78D2145222322';
var address2 = '0x5858599f16c46fa33238313A412eE9f0491EBef3';
var key = '<KEY>';
var key2 = '<KEY>';
var amount = web3.toWei(1, "ether");
var balance = web3.eth.getBalance(address);

var value = web3.fromWei(balance, 'ether');

console.log(value);

function sendRaw(rawTx) {
    var privateKey = new Buffer(key, 'hex');
    var transaction = new tx(rawTx);
    transaction.sign(privateKey);
    var serializedTx = transaction.serialize().toString('hex');
    web3.eth.sendRawTransaction(
        '0x' + serializedTx, function(err, result) {
            if(err) {
                console.log('error');
                console.log(err);
            } else {
                console.log('success');
                console.log(result);
            }
        });
}


var rawTx = {
    nonce: web3.toHex(web3.eth.getTransactionCount(address)),
    gasLimit: web3.toHex(21000),
    to: address2,
    from:address,
    value: web3.toHex(web3.toBigNumber(amount))

}

sendRaw(rawTx);

正如您注意到的,我正在地址上记录乙醚,但是无论我发送多少次事务,它都保持eq到1th。

你知道我做错了什么吗?

EN

回答 3

Ethereum用户

回答已采纳

发布于 2017-02-17 23:01:59

这看起来基本上是正确的,但是有几个可选的tx参数可能会产生不同的结果:

代码语言:javascript
复制
  // EIP 155 chainId - mainnet: 1, ropsten: 3
  chainId: 3,
  gasPrice: "0x9184e72a000", // 10000000000000

此外,nonce可能需要转换为十六进制。getTransactionCount方法返回一个javascript编号,因此您可能需要首先将其转换为十六进制。

我还建议在发送之前记录参数。如果您正在连接到一个不同步的节点,那么您的当前状态可能是错误的,这也会导致这些事务失败。

我看你拿到了一个tx,这让我觉得一个错误的现在可能阻止了你。https://testnet.etherscan.io/tx/0x17c6e7e318a181cc729207ebe2bc203b4df71657b845aaf551892f20de42bc62

票数 8
EN

Ethereum用户

发布于 2017-02-17 22:58:32

您能试着打印出原始的序列化事务并将其直接用CURL发送吗?

https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_发送事务

你能拿回点东西吗?

票数 5
EN

Ethereum用户

发布于 2019-03-05 20:57:59

我们经历了一个类似的问题,一个因弗拉节点不同步。由于负载均衡器后面有多个因弗拉节点,我们的getTransactionCount击中了一个不同步的节点,并返回了一个不正确的数字。只是想标记它,因为这样可以节省您在未来情况下进行调试的时间。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/12054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档