5 哪位好心人教教我呀,研究了一个星期了,像这样的web3.js或者web3.py怎么写

调用了合约a的一个方法,并且发送的是合约b的代币,而不是主网默认的币。 这一部分的调用和发送代币不会写。要么我写的没有调用合约a的方法,成功发送了合约b的代币,要么就是我调用了合约a的方法,发送的是主网默认币。要的是像图片中这个交易的效果。请大神给指点指点 _20220108143931.png

tx = contract_FarM.functions.Up().buildTransaction({
                "from": MyAddress,
                "gasPrice": web3.toWei(0.0000005111, "ether"),
                "gas": web3.toHex(300000),
                "value": web3.toHex(web3.toWei(0.1, "ether")),
                "nonce": nonce
            })
tx = contract_BB.functions.transer(address,web3.toWei(0.1, "ether"))
.buildTransaction({ "from": moneyb, "gasPrice": gas_price, "gas": web3.toHex(180000) "value": web3.toHex(web3.toWei(0, "ether"))
请先 登录 后评论

最佳答案 2022-01-15 18:21

调用了合约 a 的一个方法,并且发送的是合约 b 的代币。

发送合约 b 的代币这个行为是合约 a 方法里面实现的,不用你去操作。你只需要调用合约 a 的方法就行了,a 的方法里面会自动去发送 b 代币,前提是你是否提前调用 b 合约的 approve 方法进行授权?参数 value 的值必须为 0,这个参数表示发送 ETH 的数量。

  1. 调用 b 合约方法进行转账授权: approve(a address, 100);
  2. 调用 a 合约方法,方法应该有一个参数传递发送 b 合约代币的金额。
请先 登录 后评论

其它 4 个回答

tcxpy
请先 登录 后评论
tcxpy
请先 登录 后评论
Tiny熊 - 布道者
  擅长:智能合约,以太坊
请先 登录 后评论
币小小
请先 登录 后评论