Web3js
ValueError: {‘code’: -32000, ‘message’: ‘only replay-protected (EIP-155) transactions allowed over RPC’}
下午好,在開發區塊鍊網路應用程序幾個月後,這是我第一次在進行交易時遇到此錯誤。
ValueError: {'code': -32000, 'message': 'only replay-protected (EIP-155) transactions allowed over RPC'}
這是我的程式碼。它一直有效,我想這不是程式碼問題,可能只是 Web3 的問題,但我只是在問以防萬一。提前致謝。
tx = { 'nonce': nonce, 'to': account_2, 'value': web3.toWei(float_amount, 'ether'), 'gas': 21000, 'gasPrice': web3.toWei(50, 'gwei') } signed_tx = web3.eth.account.sign_transaction(tx, private_key) tx_hash = web3.eth.send_raw_transaction(web3.toHex(signed_tx.rawTransaction))
您需要將 chainId 添加到您的交易對像中,以防止您的 tx 在其他鏈上被重放。
tx = { 'chainId': 3, // for ropsten 'nonce': nonce, 'to': account_2, 'value': web3.toWei(float_amount, 'ether'), 'gas': 21000, 'gasPrice': web3.toWei(50, 'gwei') }
在此處查看所有基於 EVM 的鏈的鏈 ID
另一種繞過方法是使用
--rpc.allow-unprotected-txs
. 尤其是在您無法指定 ID 的情況下。