Ethereum Flashbots Python Code неправильно работает с Web3.pyPython

Программы на Python
Ответить
Anonymous
 Ethereum Flashbots Python Code неправильно работает с Web3.py

Сообщение Anonymous »

Недавно у меня возникли проблемы с заголовком X-Flashbots-Signature при отправке запроса в конечную точку Flashbots. Мой код Python выглядит так: < /p>

Код: Выделить всё

import requests
import json
import secrets
from eth_account import Account, messages
from web3 import Web3
from math import ceil

rpcUrl = RPC_NODE_PROVIDER
web3 = Web3(Web3.HTTPProvider(rpcUrl))

publicKey = ETH_PUBLIC_KEY
privateKey = ETH_PRIVATE_KEY
contractAddress = TEST_CONTRACT # test contract
data = CONTRACT_DATA # Contract data to execute

signed = []
for _ in range(2):
nonce = web3.eth.getTransactionCount(publicKey, 'pending')
checksumAddress = Web3.toChecksumAddress(contractAddress)
checksumPublic = Web3.toChecksumAddress(publicKey)
tx = {
'nonce': nonce,
'to': checksumAddress,
'from': checksumPublic,
'value': 0,
'gasPrice': web3.toWei(200, 'gwei'),
'data': data
}
gas = web3.eth.estimateGas(tx)
tx['gas'] = ceil(gas + gas * .1)
signed_tx = web3.eth.account.signTransaction(tx, privateKey)
signed.append(Web3.toHex(signed_tx.rawTransaction))

dt = {
'jsonrpc': '2.0',
'method': 'eth_sendBundle',
'params': [
{
'txs': [
signed[0], signed[1] # Signed txs with web3.eth.account.signTransaction
],
'blockNumber': web3.eth.block_number + 1,
}
],
'id': 1
}
pvk = secrets.token_hex(32)
pbk = Account.from_key(pvk).address

body = json.dumps(dt)
message = messages.encode_defunct(text=Web3.keccak(text=body).hex())
signature = pbk + ':' + Account.sign_message(message, pvk).signature.hex()

hd = {
'Content-Type': 'application/json',
'X-Flashbots-Signature': signature,
}

res = requests.post('https://relay.flashbots.net/', json=body, headers=hd,)
print(res.text)
Этот код представляет собой модифицированную версию кода, взятой прямо из документов Flashbots: https://docs.flashbots.net/flashbots-au ... entication После запуска этого кода я получаю 200 ответа от Flashbots, и он дает мне пакет, но транзакция никогда не проходит. Ответ: < /p>
{'id': 1, 'error': {'code': -32600, 'message': 'ошибка в проверке подписи 0xf65f5d0611c5b184d62c9b063585d7246d3f4df8'}, 'jsonrpc:': ':' 2.0 '}
Любые идеи будут высоко оценены.

Подробнее здесь: https://stackoverflow.com/questions/793 ... th-web3-py
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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