Я пытаюсь использовать 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
Ошибка Python web3: «Аргумент fromhex() должен быть строкой, а не байтами» ⇐ Python
Программы на Python
1727643465
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}}
Подробнее здесь: [url]https://stackoverflow.com/questions/79037373/python-web3-error-fromhex-argument-must-be-str-not-bytes[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия