Erc-20

使用 web3py 進行 erc20 傳輸

  • April 21, 2022

請問如何在web3py中發送erc20,我有:

tx_hash = contract.functions.transfer(destination_address, value).transact({'from': myaddress })

我得到這個錯誤:

ValueError: {‘code’: -32601, ‘message’: ‘方法 eth_sendTransaction 不存在/不可用’}

我想我錯過了簽署那個或類似的東西,我怎樣才能成功進行 erc20 轉移。

transact()要求節點使用 簽署您的交易eth_sendTransaction。Infura 不能這樣做,因為他們沒有你的鑰匙。

相反,您可以使用合約對象來創建未簽名的交易,例如:

contract_call = contract.functions.transfer(destination_address, value)
unsigned_txn = contract_call.buildTransaction({'chainId': 1, 'gasPrice': w3.toWei(100, 'gwei')})

然後你可以用你的私鑰簽署交易,並廣播它:

signed_txn = w3.eth.account.sign_transaction(unsigned_txn, private_key=private_key)
w3.eth.sendRawTransaction(signed_txn.rawTransaction)

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