Web3j:购买代币
Web3j: buying a token
如果我的区块链上有一个 ERC20 合约,并且用户想要在以下情况下购买代币:
- 用户给出他们想要购买的代币数量
- 将弹出一个信息框,向用户显示他们将支付多少以太币以及剩余余额
- 确认后,应显示余额中的代币数量
要获得代币,我必须在智能合约中调用一个方法,如下所示。 obtainTok(BigInteger weiValue)
这个场景下使用web3j计算weiValue的公式是什么?
编辑
由于该库没有 Javadoc,因此对于初学者来说,参数并不是很清楚。
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 的回答对于 web3js 是正确的。如果您尝试在 web3j 中执行此操作,您将使用 org.web3j.utils.toWei(valueInEther, Unit.ETHER);
,其中 valueInEther
是 String
或 BigDecimal
.
为了扩展答案,您通常不会将以太币作为参数发送到您的智能合约 obtainTok()
。您可以将其作为交易对象的一部分发送,并在您的智能合约中使用 msg.value
(在 Wei 中)读取它。
如果我的区块链上有一个 ERC20 合约,并且用户想要在以下情况下购买代币:
- 用户给出他们想要购买的代币数量
- 将弹出一个信息框,向用户显示他们将支付多少以太币以及剩余余额
- 确认后,应显示余额中的代币数量
要获得代币,我必须在智能合约中调用一个方法,如下所示。 obtainTok(BigInteger weiValue)
这个场景下使用web3j计算weiValue的公式是什么?
编辑 由于该库没有 Javadoc,因此对于初学者来说,参数并不是很清楚。
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 的回答对于 web3js 是正确的。如果您尝试在 web3j 中执行此操作,您将使用 org.web3j.utils.toWei(valueInEther, Unit.ETHER);
,其中 valueInEther
是 String
或 BigDecimal
.
为了扩展答案,您通常不会将以太币作为参数发送到您的智能合约 obtainTok()
。您可以将其作为交易对象的一部分发送,并在您的智能合约中使用 msg.value
(在 Wei 中)读取它。