首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用web3传输ERC-20令牌时资金不足

使用web3传输ERC-20令牌时资金不足
EN

Ethereum用户
提问于 2019-09-27 07:45:26
回答 2查看 963关注 0票数 1

我试图使用web3 v1.x和英弗拉在Mainnet上发送一个ERC-20令牌。执行这段代码时,我会得到标题中的错误。

我有一个大约0.14 ETH的余额

代码语言:javascript
复制
var provider = new HDWalletProvider(config.mnemonic, "https://mainnet.infura.io/v3/" + config.infuraKey);

const web3 = new Web3(provider);

const tokenAbi = config.abi;
let tokenContract = new web3.eth.Contract(tokenAbi, contractAddress);


let data = tokenContract.methods.transfer(tAddr, tAmountInWei).encodeABI();
const tx = {
   from: myAddress,
   to: contractAddress,
   gas: web3.utils.toHex(400000),
   gasPrice: web3.utils.toHex(25000000000),
   value: "0x0",
   data: data
};


let eTx = await web3.eth.accounts.signTransaction(tx, tx.from, (err, signedTx) => {
    if (err) {
       console.error(err);
       return err;
    } else {
       console.log('SignedTx: ', signedTx);
       return web3.eth.sendSignedTransaction(signedTx.rawTransaction, (err, res) => {
          if (err) {
             console.error(err);
          } else {
             console.log(res);
             count++;
          }
       });
    }
});

我的错误如下:

代码语言:javascript
复制
Error: insufficient funds for gas * price + value
    at /Users/****/****/node_modules/truffle-hdwallet-provider/dist/index.js:15:632675
    at t.i.onreadystatechange (/Users/****/*****/node_modules/truffle-hdwallet-provider/dist/index.js:15:748948)
    at t.e.dispatchEvent (/Users/*****/*****/node_modules/truffle-hdwallet-provider/dist/index.js:1:142373)
    at t._setReadyState (/Users/*****/*****/node_modules/truffle-hdwallet-provider/dist/index.js:15:753708)
    at t._onHttpResponseEnd (/Users/*****/*****/node_modules/truffle-hdwallet-provider/dist/index.js:15:756793)
    at IncomingMessage.<anonymous> (/Users/*****/*****/node_modules/truffle-hdwallet-provider/dist/index.js:15:756051)
    at IncomingMessage.emit (events.js:203:15)
    at endReadableNT (_stream_readable.js:1129:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
EN

回答 2

Ethereum用户

回答已采纳

发布于 2019-09-30 03:04:03

我找到了这样的工作方式。

代码语言:javascript
复制
tokenContract.methods.transfer(tAddr, tAmountInWei).send({
         from: myAddress,
         gas: web3.utils.toHex(40000),
         gasPrice: web3.utils.toHex(25000000000),
         value: "0x0"
}).on('transactionHash', (hash) => {
    console.log(`txHash: ${hash}`);
});
票数 0
EN

Ethereum用户

发布于 2019-09-29 06:53:51

为您的交易分配的最高天然气费是gas * gasPrice,在您的情况下,是25 is (giga-we10^9 we或10^-9 ETH)乘以400,000气体限额,

或10,000,000 (10^6)格威。

代码语言:javascript
复制
10^6 * 10^-9 = 0.001 ETH

所以你的钱包余额应该足够了。

我会反复检查两件事:

祝好运!

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

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

复制
相关文章

相似问题

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