如何获取智能合约中的交易费用——Solidity、Ethereum
How to get transaction cost in smart contract - Solidity, Ethereum
如何在我的合约中获取交易成本?它只是: tx.gasprice
吗?这将始终是 gwei 中的值还是 wei ?
直到执行完成,交易的成本才真正知道。在一个极端的例子中,也许你正在计算这个的函数正在被另一个函数调用,并且在你 return 之后,那个函数 throw
s,消耗所有剩余的气体。您无法提前知道这会发生。
要计算交易费用,您需要两条信息:
- 天然气价格。
- 会消耗多少gas。
如果你知道两者,你可以将它们相乘并得到总成本。 tx.gasprice
告诉你 (1),但如上所述,你不可能真正知道 (2)。你能做的最好的可能是在函数的顶部和底部使用 msg.gas
来告诉你大致有多少 gas 该函数 消耗。
如何在我的合约中获取交易成本?它只是: tx.gasprice
吗?这将始终是 gwei 中的值还是 wei ?
直到执行完成,交易的成本才真正知道。在一个极端的例子中,也许你正在计算这个的函数正在被另一个函数调用,并且在你 return 之后,那个函数 throw
s,消耗所有剩余的气体。您无法提前知道这会发生。
要计算交易费用,您需要两条信息:
- 天然气价格。
- 会消耗多少gas。
如果你知道两者,你可以将它们相乘并得到总成本。 tx.gasprice
告诉你 (1),但如上所述,你不可能真正知道 (2)。你能做的最好的可能是在函数的顶部和底部使用 msg.gas
来告诉你大致有多少 gas 该函数 消耗。