Ether
將乙太幣發送到使用 python 的 web3 部署在 ropsten 中的智能合約時出錯
我正在嘗試通過 infura 將乙太幣發送到部署在 ropsten 上的智能合約,但我在 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 {}