Python

我是否必須更改為 eip-1559 設置原始交易 gas 價格的方式?

  • July 8, 2021

我有一個關於在新的硬分叉之後設置汽油價格的問題。目前,我正在使用的軟體使用 ethgasstation.info api 來選擇 gas 價格,然後使用 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)

我是否需要更改任何內容以指定硬分叉後的提示和基本費用,或者這是否會繼續工作而沒有任何問題?

是的,EIP-1559 的交易格式不同。目前的交易格式(現在稱為遺留交易)仍然有效,但會導致您總是為交易多付錢。

傳統交易有 gas 價格,而 EIP-1559 交易有優先費用和最高費用。最高費用是您願意為您的交易支付的總費用(因此基本費用和優先費用相結合)。如果您發送遺留交易,則指定的 gas 價格將用於優先費用和最高費用。這將導致您向礦工支付基本費用和設定的汽油價格之間的全部差額,因為您沒有設置較低的優先費用。

你如何獲得優先費用也可能會改變,你不應該再需要像 ETH Gas Station 這樣的 API,但如何計算可能要等到 EIP-1559 發布之後。

Web3.py 似乎已經支持 EIP-1559,並將嘗試確定最佳的最高費用和優先費用:https ://github.com/ethereum/web3.py/pull/2055

引用自:https://ethereum.stackexchange.com/questions/103180