Как создать полезную нагрузку транзакции для подписанной транзакции EIP-1559Python

Программы на Python
Гость
Как создать полезную нагрузку транзакции для подписанной транзакции EIP-1559

Сообщение Гость »


Я пытаюсь создать необработанные данные транзакции на основе подписанной транзакции EIP-1559 в соответствии со спецификацией EIP-1559. Однако оно не соответствует значению, возвращаемому web3py при подписании транзакции. Ниже приведен сценарий, который я использовал для воссоздания проблемы.

compute_raw_tx.py:
из web3 импортировать Web3 импортировать рлп w3 = Web3(Web3.HTTPProvider(NODE_URL)) передача = { 'от': PUBLIC_KEY, 'nonce': w3.eth.get_transaction_count(PUBLIC_KEY), 'кому': '0x0000000000000000000000000000000000000000', «значение»: Web3.toWei(0,01, «эфир»), 'chainId': 5, «газ»: 50000, «maxFeePerGas»: Web3.toWei(500, «gwei»), «maxPriorityFeePerGas»: Web3.toWei(200, «gwei»), «данные»: «0x0» } подписанный_tx = w3.eth.account.sign_transaction(tx, PRIVATE_KEY) печать (signed_tx) закодировано = rlp.encode([ шестнадцатеричный (TX['chainId']), шестнадцатеричный(TX['nonce']), hex(tx['maxPriorityFeePerGas']), hex(tx['maxFeePerGas']), шестнадцатеричный(TX['газ']), передача['to'], шестнадцатеричный (TX['значение']), передача ['данные'], [], шестнадцатеричный(signed_tx['v']), шестнадцатеричный(signed_tx['r']), шестнадцатеричный(signed_tx['s']) ]) print(f'0x02{encoded.hex()}')

Вернуться в «Python»