Erc-20
使用 web3py 進行 erc20 傳輸
請問如何在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)