在java代码中调用uniswap的addLiquidityETH是在哪里设置的ETH数量呢?

在remix中调试调用addLiquidityETH的数量时,我知道是在

image.png 这里设置的eth数量。 但是在java生成的合约代码中,是在哪里设置的呢?

image.png

请先 登录 后评论

最佳答案 2023-04-27 15:52

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();
请先 登录 后评论

其它 0 个回答