我有一个问题,就是在新的硬叉之后如何确定汽油价格。目前,我所使用的软件使用Web3.py选择天然气价格,然后使用Web3.py库使用代码发布原始事务,如下所示:
w3_tx = contract.functions.fn(hash_bytes).buildTransaction({"gas": 13000, "nonce": nonce_num, "from": from_addr})
gas_price = get_gas_price(gas_strategy) # Calls ethgasstation api
w3_tx["gasPrice"] = gas_price
signed = account.sign_transaction(w3_tx)
w3.eth.send_raw_transaction(signed.rawTransaction)我是否需要更改任何东西来指定在硬叉子之后的小费和基本费用,还是会继续工作而不会有任何问题?
发布于 2021-07-08 14:41:00
是的,EIP-1559的事务格式是不同的.当前事务格式(现在称为遗留事务)仍然有效,但会导致您总是为事务支付过高。
遗留交易有一个天然气价格,而EIP-1559交易有优先费用和最大费用。最大费用是您愿意为您的交易支付的总额(因此基本费用和优先费用之和)。如果发送遗留事务,则指定的天然气价格将用于优先级费用和最大费用。这将导致你支付的基本费用和规定的天然气价格之间的全部差额,因为你没有设置一个较低的优先费用。
你获得优先权的方式可能也会改变,你不应该再需要像ETH加油站这样的API了,但是这应该如何计算,可能要等到EIP-1559发射之后。
Web3.py似乎已经支持EIP-1559,并将尝试确定最佳最大费用和优先级:https://github.com/ethereum/web3.py/pull/2055
https://ethereum.stackexchange.com/questions/103180
复制相似问题