如何让智能合约支付gas费?
how to make smart contract pay the gas fee?
如何编写智能合约,让收件人地址支付交易的gas费,而不是从发件人地址。
假设'A'地址发送10ETH到地址'B',如果交易gas fee的gas fee是1 ETH,那么只有9ETH会被发送到地址'B'。 1 ETH 将退还至地址 'A'。
请任何人有任何想法,请分享参考 link 或任何与此相关的文章。
提前谢谢你。
你可以在合约开始和结束时使用 gasleft() 来查看使用了多少gas。交易的固定成本是 21k,另外 21k 用于 eth 转移,需要在计算出你需要“退款”多少之后才能完成。你可以从 tx.gasPrice 中得到 gas 成本,它需要乘以金额,然后你就有了合同成本。
您不能从目标地址中取出 eth 进行退款,因此您只需从金额中减去合约 gas 成本即可。您将其发送到目的地。然后在合约余额上你有一些 eth,这将是费用(大约),所以你将所有余额从合约的钱包发送到源。
如何编写智能合约,让收件人地址支付交易的gas费,而不是从发件人地址。 假设'A'地址发送10ETH到地址'B',如果交易gas fee的gas fee是1 ETH,那么只有9ETH会被发送到地址'B'。 1 ETH 将退还至地址 'A'。 请任何人有任何想法,请分享参考 link 或任何与此相关的文章。 提前谢谢你。
你可以在合约开始和结束时使用 gasleft() 来查看使用了多少gas。交易的固定成本是 21k,另外 21k 用于 eth 转移,需要在计算出你需要“退款”多少之后才能完成。你可以从 tx.gasPrice 中得到 gas 成本,它需要乘以金额,然后你就有了合同成本。
您不能从目标地址中取出 eth 进行退款,因此您只需从金额中减去合约 gas 成本即可。您将其发送到目的地。然后在合约余额上你有一些 eth,这将是费用(大约),所以你将所有余额从合约的钱包发送到源。