Ошибка Python web3: «Аргумент fromhex() должен быть строкой, а не байтами»Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка Python web3: «Аргумент fromhex() должен быть строкой, а не байтами»

Сообщение Anonymous »

Я пытаюсь использовать ETH-кошелек sepolia для обмена монетой с этим адресом: «0x0d7e111adbd40c4d0fbbd53d3c2dcb09e3402d2c», используя Python и web3(sepolia.infura.io).
Кажется, так и есть. Если проблема связана с форматированием закрытого ключа, вот код, который его обрабатывает:
private_key_data = wallet_info['private_key']

# Check if private_key is already bytes
if isinstance(private_key_data, bytes):
private_key = private_key_data
else:
# If it's a string, convert from hex
try:
private_key = bytes.fromhex(private_key_data)
except ValueError:
await update.message.reply_text(f"Invalid private key format for wallet {wallet_address}")
continue

и это остальная часть процесса:
# Prepare the transaction
swap_tx = router_contract.functions.swapExactETHForTokens(
0, # amountOutMin: We're not implementing slippage protection here
path,
wallet_address,
deadline
).build_transaction({
'from': wallet_address,
'value': eth_amount_wei,
'gas': 250000, # Adjust as needed
'gasPrice': w3.eth.gas_price,
'nonce': w3.eth.get_transaction_count(wallet_address),
})

# Sign the transaction
signed_txn = w3.eth.account.sign_transaction(swap_tx, private_key=private_key)

# Check if signed_txn is a SignedTransaction object
if isinstance(signed_txn, SignedTransaction):
# Use the correct attribute based on the SignedTransaction structure
raw_transaction = signed_txn.rawTransaction if hasattr(signed_txn, 'rawTransaction') else signed_txn.raw
else:
# If it's not a SignedTransaction object, use it as is
raw_transaction = signed_txn

# Send the transaction
tx_hash = w3.eth.send_raw_transaction(raw_transaction)
tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash)
await update.message.reply_text(f"Bought tokens for wallet {wallet_address}. Transaction hash: {tx_hash.hex()}")

Он продолжает выдавать ошибки, такие как «Объект SignedTransaction не имеет атрибута rawTransaction», «Аргумент fromhex() должен быть строкой, а не байтами»
Я храню закрытый ключ в файле JSON следующим образом (кошелек, закрытый ключ, баланс):
{"0x3Eb926969B3e0fcd65c1E564361Eb59f5bAF5A22": {"private_key": "1b71110f66e02f45c402860084a08113c6027c186080186ae4b350cca48bbc83", "balance": 0}, "0x73D61E6824ddb0588Db13d6da97f92f68AFc6a2D": {"private_key": "b6b5cb44af6ad2d0d7e5c04ea5c8564017de42fea07f176e7c4d3a0b60172181", "balance": 0}}


Подробнее здесь: https://stackoverflow.com/questions/790 ... -not-bytes
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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