在remix中调试调用addLiquidityETH的数量时,我知道是在
这里设置的eth数量。 但是在java生成的合约代码中,是在哪里设置的呢?
addLiquidityETH()在合约中首先需要用关键字payable声明,将sol代码生成java后,最后一个参数,传合约中value的值。 Demo:
function setNumber(uint256 number_) external payable {
number = number_;
}
java code:
通过web3j转换的Java合约代码: https://github.com/web3j/web3j-maven-plugin
public RemoteFunctionCall<TransactionReceipt> setNumber(BigInteger number_, BigInteger weiValue) {
final Function function = new Function(
FUNC_SETNUMBER,
Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(number_)),
Collections.<TypeReference<?>>emptyList());
return executeRemoteCallTransaction(function, weiValue);
}
调用
BigInteger weiValue = new BigInteger("100000");
TransactionReceipt tr = contract.setNumber(blockNumber,weiValue).send();