Как найти правильное значение "газа" для отправки транзакции в Ropsten testnet?

Я новичок в мире Web3/Ethereum и пытаюсь создать приложение, которое может просто записать блок в тестовую сеть Ropsten через Infuria. К сожалению, следующий код не работает

from web3 import Web3

    def sendTransaction(message):
     w3 = Web3(
         Web3.HTTPProvider(
             "https://ropsten.infura.io/v3/my_project_id"
         )
     )
     address = "https://ropsten.infura.io/v3/my_project_id"
     privateKey =       "my_private_key"
     nonce = w3.eth.getTransactionCount(address)
     gasPrice = w3.eth.gas_price
     value = w3.toWei(1, "ether")
     signedTx = w3.eth.account.sign_transaction(
      dict(
       nonce=nonce,
       gasPrice=gasPrice,
       gas=1000000000,
       to="0x0000000000000000000000000000000000000000",
       value=value,
       data=message.encode("UTF-8"),
      ),
     privateKey,
    )
   tx = w3.eth.sendRawTransaction(signedTx.rawTransaction)
   txId = w3.toHex(tx)
   return txId

В частности, поле gas, похоже, создает проблемы. Если я добавлю слишком много нулей, то получу сообщение об ошибке 'превышен лимит газа в блоке', тогда как при меньшем количестве нулей сообщение об ошибке становится 'недостаточно средств для газа * цена + стоимость'.

Вернуться на верх