NodeJs 上的 BEP-20 代币交易

BEP-20 Token Transaction on NodeJs

您好,我只是对如何交易 BEP-20 代币(例如:Binance-Peg BUSD-T)感到困惑。我只是用这个代码在 Binance Smart Chain 中交易 bnb:

const tx = await web3.eth.accounts.signTransaction({
  to: '0xB1455f4721b32390f4b65F86D2Cd50e74FaD7A99',
  value: '500000000000000',
  gas: 2000000
}, 'SENDER_PRIVATE_KEY');
  
const transaction = await web3.eth.sendSignedTransaction(tx.rawTransaction);

而且它工作得很好。但是我只是做任何事情来处理令牌,例如我使用 web3.eth.Contract(abi, contract_addr) 然后

await contract.methods.transfer(toAddress, '500000000000000000').send({ 
  from: '0xF9FF794700224fc9a1D6a30eb2A90d11eA1D82D1'
});

或使用 ethereumjs-tx 包和...,但其中 none 处理令牌。我只需要一个示例代码示例或一个有据可查的博客来告诉我应该怎么做。谁能帮我解决这个问题?!!

为了使用.send({from: ...})方法,您需要

  • 在您的提供商处解锁 from 帐户。

  • 将其私钥添加到web3账户钱包(docs)


Ulocked 提供商帐户

此方法主要用于默认为某些帐户注资和解锁的本地提供商(例如 Ganache)。

在生产提供者上保留未锁定的帐户是不明智的,因为查询提供者的任何人都可以发送交易。


Web3账户钱包

您需要传递生成 from 地址的私钥。

web3.eth.accounts.wallet.add(privateKey);

然后就可以使用.send({from: ...})方法

await contract.methods.transfer(toAddress, '500000000000000000').send({ 
  from: '0xF9FF794700224fc9a1D6a30eb2A90d11eA1D82D1'
});