区块链浏览器查看交易数据在remix中向一个合约发送1wei的eth,介绍下交易明细中的各个字段的含义
在向合约中发送1wei的eth, 介绍下交易明细中的各个字段的含义。 https://goerli.etherscan.io/tx/0xf836049be423723eba16b00b84ecfbfde4c98e10a57c153426bd8834a7136a43
在上面的明细中有个小疑问, 发送eth不是固定的21000gas费用么, 这个为什么是21055个gas呢? 我们接收eth的合约使用了receive external payable函数, 在发送eth给合约时会执行receive方法, 有些初始化的操作也会消耗一部分的gas费用。 使用remix的debug查看相关opCode 初始化累计共55gas:
opCode的gas耗费参考: https://ethereum.org/zh/developers/docs/evm/opcodes MSTORE操作码涉及到内存扩展的耗费, 计算参考: https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion
(async () => {
const ALCHEMY_GOERLI_URL = 'https://eth-goerli.alchemyapi.io/v2/GlaeWuylnNM3uuOo-SAwJxuwTdqHaY5l';
const goerliProvider = new ethers.JsonRpcProvider(ALCHEMY_GOERLI_URL);
const block = await goerliProvider.getBlock(8871803, false);
console.log(`8871803 block baseFeePerGas:${block.baseFeePerGas}`)
const tx = await goerliProvider.getTransaction('0xf836049be423723eba16b00b84ecfbfde4c98e10a57c153426bd8834a7136a43');
console.log(`8871803 block tx.maxPriorityFeePerGas:${tx.maxPriorityFeePerGas}`);
console.log(`8871803 block tx.maxFeePerGas:${tx.maxFeePerGas}`);
})();
返回的信息, 与上面etherscan计算出的参数一致.
8871803 block baseFeePerGas:111
8871803 block tx.maxPriorityFeePerGas:1000000000
8871803 block tx.maxFeePerGas:1500000000
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!