Web3J:购买令牌



如果我的区块链上有ERC20合同,并且用户希望像以下情况一样购买令牌:

  1. 用户给他们要购买的令牌数量
  2. 将弹出一个信息框,以显示用户将支付多少以太和剩余的余额
  3. 一旦确认,应显示平衡的令牌量

要获得令牌,我必须在看起来像这样的智能合约中调用一种方法。obtainTok(BigInteger weiValue)

使用Web3J?

在这种情况下计算Weivalue的公式是什么

编辑由于没有用于库的Javadocs,因此作为初学者,参数并不清楚。

ethGetBalance(String address, DefaultBlockParameter defaultBlockParameter)

这里的地址表示钱包地址或用户地址?

Web3具有称为toWei()的实用程序功能,您可以使用它来转换任何单元。

web3.utils.toWei(number [, unit])

在您的情况下:

web3.utils.toWei(ETHER_VALUE, 'ether')

文档中的更多信息:https://web3js.readthedocs.io/en/1.0/web3-utils.html#towei

@reyhaynes答案对Web3J是正确的。如果您尝试在Web3J中执行此操作,则将使用org.web3j.utils.toWei(valueInEther, Unit.ETHER);,其中valueInEtherStringBigDecimal

为了扩展答案,您通常不会将以太作为智能合约作为obtainTok()参数。您将作为事务对象的一部分发送进来,并在与msg.value(在WEI中(中读取它。

相关内容

  • 没有找到相关文章

最新更新