Ether

將乙太幣發送到使用 python 的 web3 部署在 ropsten 中的智能合約時出錯

  • October 30, 2019

我正在嘗試通過 infura 將乙太幣發送到部署在 ropsten 上的智能合約,但我在 txn 中遇到了一些問題。

錯誤是“Txn 中的錯誤:已恢復”。 在這裡你可以看到發送乙太的嘗試和錯誤

發件人帳戶有足夠的乙太幣來支付交易,所以我不明白是什麼失敗了。

def default_reward():
   
   amount_in_ether=2
   amount_in_wei = wb3.toWei(amount_in_ether,'ether')

   acct = wb3.eth.account.privateKeyToAccount(config.ADMIN_KEY)
   
   txn_dict = {
           'to': config.audacoin_contract_address,
           'value': amount_in_wei,
           'gas': 4465030,
           'gasPrice': wb3.toWei('21', 'gwei'),
           'from': acct.address,
           'nonce': wb3.eth.getTransactionCount(acct.address),
           
   }
   
   signed_txn = acct.signTransaction(txn_dict)
   
   txn_hash = wb3.eth.sendRawTransaction(signed_txn.rawTransaction)
   
   txReceipt = wb3.eth.waitForTransactionReceipt(txn_hash)

   return "Sended"

這是我使用的方法,它可以正常執行,我的意思是,沒有任何錯誤。

我想我在聲明 txn_dict 時犯了一個錯誤,但我不知道是哪個。

非常感謝您的幫助!

PS:我通過 Infura 連接到 ropsten。

契約不能通過預設方式收取資金。為了使它成為可能,您需要在合約程式碼中添加一個應付的備份功能。它應該看起來像這樣:

function () external payable {}

引用自:https://ethereum.stackexchange.com/questions/77075