javascript - 使用 web3 传输自定义 ERC20 代币(无效地址错误)

标签 javascript solidity smartcontracts web3js erc20

我使用的是 web3 库版本 0.20.2。 我想要用我的智能合约做的只是转移自定义的 erc20 代币。

下面的智能合约代码(sloidity)

 function transfer(address _to, uint256 _value) returns (bool success) {}

我想使用此函数将我的自定义 token 传输到 _to(地址)。

var myContract = web3.eth.contract(abi)
var myContractInstance = myContract.at(address);
var total = myContractInstance.totalSupply();
var balance = myContractInstance.balanceOf(owner);
onsole.log('total',total);
console.log('balance',balance);

var to ="0x20....";
var value = 10;
var isAddress = web3.isAddress(to);
console.log(isAddress);

myContractInstance.transfer(to, value, (err,res)=> {console.log(err,res);});

这是我的控制台。

Rachals-MacBook-Pro:test rachel$ node app.js
total BigNumber { s: 1, e: 10, c: [ 10000000000 ] }
balance BigNumber { s: 1, e: 9, c: [ 9999000000 ] }

true

/Users/rachel/dev/test/node_modules/web3/lib/web3/formatters.js:274
    throw new Error('invalid address');
    ^



at inputAddressFormatter (/Users/rachel/dev/test/node_modules/web3/lib/web3/formatters.js:274:11)
at inputTransactionFormatter (/Users/rachel/dev/test/node_modules/web3/lib/web3/formatters.js:100:20)
at /Users/rachel/dev/test/node_modules/web3/lib/web3/method.js:89:28
at Array.map (<anonymous>)
at Method.formatInput (/Users/rachel/dev/test/node_modules/web3/lib/web3/method.js:88:32)
at Method.toPayload (/Users/rachel/dev/test/node_modules/web3/lib/web3/method.js:114:23)
at Eth.send [as sendTransaction] (/Users/rachel/dev/test/node_modules/web3/lib/web3/method.js:139:30)
at SolidityFunction.sendTransaction (/Users/rachel/dev/test/node_modules/web3/lib/web3/function.js:173:15)
at SolidityFunction.execute (/Users/rachel/dev/test/node_modules/web3/lib/web3/function.js:256:37)
at Object.<anonymous> (/Users/rachel/dev/test/app.js:35:20)

我不知道这是怎么回事。我错过了什么吗?

请告诉我如何修复此“无效地址”错误。

最佳答案

我猜你没有 from地址,因为 web3 只会验证 tofrom 交易的地址。 to地址transfer内函数是交易有效负载的一部分,而不是独立的交易,因此var isAddress = web3.isAddress(to);检查不是特别有用

from来自您当前节点的 coinbase 帐户。添加console.log(web3.eth.coinbase)查看您的代码并查看它是什么。

关于javascript - 使用 web3 传输自定义 ERC20 代币(无效地址错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147015/

相关文章:

javascript - 如何使用 EaselJS 填充自定义形状/路径

以太坊调用从另一个合约发出事件的合约方法

oop - Solidity 中的对象组合

javascript - foreach 在对象 id 上的 Node 问题

javascript - 我可以在 this.classList.remove 中使用变量吗

ethereum - 如何在智能合约中接收和发送 USDT?

ethereum - Solidity 中的切片数字(例如从 uint 中提取 2 个第一个数字)

ethereum - 减少契约(Contract)规模的最简单方法

javascript - Jquery radio :checked is not working as expected

blockchain - 在不使用 geth 或 tuffle 或 ganache 的情况下仅使用 EVM API 在区 block 链上部署智能合约?