Транзакция с использованием Metamask работает. Сбой с web3.py

У меня две транзакции, первая от MetaMask (все нормально)

https://etherscan.io/tx/0x1ab684f4875f8cc28043d9f3c3536a5e4f8a565cadda7a29bc6a96db5f1d0f8f

второй с использованием web3.py (кажется идентичным, но не работает)

https://etherscan.io/tx/0xc019007895cb7340f65c3bd80df5561c1b1a98d8eac6dc2babf776ab000de067

Вот моя часть кода: (надеюсь понятно о чем идет речь - скопировано из класса)

# same as in the working one
abidata = '0x338b5dea000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f49800000000000000000000000000000000000000000000000000002d79883d2000'
trans = {
                        'to': self.address,
                        'from': self.ethapi.address,
                        'data': abidata,
                        'value': 0,
                        'chainId': 1}
# transaction gas data [pseudocode]
trans_new = trans.copy()
nonce = w3.eth.getTransactionCount(self.address)
gas_price = self.get_gas_price()
gas_price_wei = self.w3.toWei(gas_price,"Gwei")
trans_new["gas"] = 250000
trans_new["nonce"] = nonce
trans_new["gasPrice"] = gas_price_wei
signed_transaction = account.signTransaction(trans)
w3.eth.sendRawTransaction(signed_transaction.rawTransaction)

Спасибо за любую подсказку!

Из vmtrace происходит сбой в контракте токена. Вы звонили approve(), чтобы разрешить ЭД сделать перевод с вашего адреса?
Вообще-то нет. Я дал согласие на наличие на сайте radiusrelay.com . Играл вокруг. Может быть, это причина. Просто странно, что он работает с MetaMask, поэтому я предполагаю, что в обеих транзакциях есть какая-то разница.
Я удалил одобрение, но все еще получаю то же сообщение: etherscan.io/tx/…
Вам необходимо отправить ZrxToken подтверждение для EtherDelta, чтобы сделать перевод с вашей учетной записи. Если вы хотите внести депозит в EtherDelta, вам необходимо совершить две транзакции 1) ZrxToken.approve(EtherDelta.address, amount, { from: "YourAccount" }), 2) EtherDelta.depositToken(ZrxToken.address, amount, { from: "YourAccount" }).
Большое спасибо! Я попробую и отпишусь! Просто странно, что с MetaMask я вижу только одну транзакцию, которая была отправлена ​​с моей учетной записи.
Это решило!!! Большое спасибо еще раз. Я пропустил, что MetaMask сделал две транзакции. Это работает очень хорошо!

Ответы (1)

Как предположил Исмаэль в комментариях выше, моя ошибка заключалась в том, что MetaMask выполнил две транзакции. Таким образом, первым было одобрение, которого не было.