Tokens

ValueError: {‘code’: -32000, ‘message’: ‘invalid sender’} 使用 web3.py 呼叫 transferFrom 時

  • January 16, 2022

我想製作一個功能,允許您將令牌從一個所有者發送到另一個所有者。

   nonce = w3.eth.getTransactionCount(from_['address'])

   unsigned_transaction = contract.functions.transferFrom(
       from['address'],
       to['address'],
       1
   ).buildTransaction({
       'chainId': 1,
       'gas': 70000,
       'gasPrice': w3.toWei('1', 'gwei'),
       'nonce': nonce,
   })

   signed_transaction = sign_transaction(
       unsigned_transaction,
       from['private']
   )

   tx_ref = send_transaction(signed_transaction)

但我收到以下錯誤:

ValueError: {‘code’: -32000, ‘message’: ‘invalid sender’}

我究竟做錯了什麼?

在這種情況下,發件人是誰?他究竟怎麼了?

這是“chainId”問題。主網是 1,ropsten 是 3

此錯誤消息直接來自乙太坊節點,而不是 web3.py:

ValueError: {'code': -32000, 'message': 'invalid sender'}

我的直覺是from['address']您的乙太坊節點上沒有配置帳戶 - 未導入私鑰。因此,您的乙太坊節點無法簽署交易並將其發送。

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