mit-dci / opencbdc-tx

A transaction processor for a hypothetical, general-purpose, central bank digital currency

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[EVM] Transaction succeeded, but the status of the TransactionRecipt is abnormal.

hellgate13 opened this issue · comments

commented

Affected Branch

programmability

Basic Diagnostics

  • I've pulled the latest changes on the affected branch and the issue is still present.

  • The issue is reproducible in docker

Description

In order to reproduce the issue, follow these steps:

  1. MetaMask New Account Create
    1.1 I modify init_addresses.hpp for initial balance
  2. Docker Image Rebuilding & Deploy Docker image With 3PC Architecture
  3. The Transaction Test with MetaMask says Fail, but the Balance has moved.
  4. I Check Status Setting Code And Web3.JS Documents
    serialization.cpp, Line 403 => res["status"] = rcpt.m_success ? "0x1" : "0x0";
    web3.js => TRUE if the transaction was successful, FALSE if the EVM reverted the transaction.

After changing to the following code, I successfully checked the traction status to Success.
serialization.cpp, Line 403 => res["status"] = rcpt.m_success == EVMC_SUCCESS ? "0x1" :"0x0";

I'm not sure why rcpt.m_success has a value of 0 on success,
but we can see that we need to double check that STATUS is EVMC_SUCCESS.

Thank you for reading my report.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Hello @hellgate13, thanks for mentioning this, I have also seen this bug come up. Interestingly, it seems as though this only happens with Metamask Desktop, but not with Metamask mobile, Hardhat, or Python's Web3 client. I haven't touched this issue in a couple of weeks, but I seem to recall that this error was internal to Metamask Desktop. Could you remind me what the error message is specifically?

We will have a fix that will set the proper success status for native value transfers. All EVM-executed transactions (e.g. ERC20) should have the correct receipt status - @hellgate13 please let me know if your test was a ERC20 token transfer. Thanks.

commented

Thank you for your interest in the report.

@maurermi I haven't checked MetaMask's Logs, So I'll update the comment with the exact logs, but I don't recall any error message in the Agent's logs.
And as mentioned, I'm using the desktop version of MetaMask And Node's Web3 Client and will check python's Web3 Client version as well.

@AlexRamRam The part I'm testing now is the creation of the transaction After confirming that the transaction has been created, I'm planning to test the deployment of the smart contract. Therefore, I haven't tested the ERC20 Token yet, and the ERC20 token transfer test is scheduled for next week.

Thanks for reading my comment.

commented

@maurermi Before appliying the commit 8dc9169, You won't see any errors in the console log window of MetaMask.

Metamask Error

The Agent log looks like this.

[2023-05-12 01:16:13.672] [TRACE] http_server::request_handler() received request eth_feeHistory
[2023-05-12 01:16:13.686] [TRACE] http_server::request_handler() received request eth_gasPrice
[2023-05-12 01:16:16.700] [TRACE] http_server::request_handler() received request eth_sendRawTransaction
[2023-05-12 01:16:16.700] [TRACE] 298 reading from account [ adf556aeb4ffc47ce84219ed9ce5851f4001433b ]
[2023-05-12 01:16:16.751] [TRACE] 0x56469d4a0e50 Broker locked key for 298
[2023-05-12 01:16:16.751] [TRACE] 298 read from account
[2023-05-12 01:16:16.751] [TRACE] 298 locking TXID 8f8aea4c81bb5342b7b9e3f9ee03ce2f608414dfc5810a56c0285292fcbd06fd
[2023-05-12 01:16:16.851] [TRACE] 0x56469d4a0e50 Broker locked key for 298
[2023-05-12 01:16:16.851] [TRACE] 298 locked TXID key
[2023-05-12 01:16:16.951] [TRACE] 0x56469d4a0e50 Broker locked key for 298
[2023-05-12 01:16:16.951] [TRACE] 298 locked ticket_number key
[2023-05-12 01:16:16.951] [TRACE] 0x7f69cc00fd10 Started evm_runner exec
[2023-05-12 01:16:16.951] [TRACE] evm_transfer adf556aeb4ffc47ce84219ed9ce5851f4001433b 3f91b7c254f27324280b4ae29a2537e6e74d4b57
[2023-05-12 01:16:16.951] [TRACE] 0x7f69d0002870 EVM request account: adf556aeb4ffc47ce84219ed9ce5851f4001433b - Write: 1
[2023-05-12 01:16:16.951] [TRACE] 0x7f69d0002870 EVM request account: 3f91b7c254f27324280b4ae29a2537e6e74d4b57 - Write: 1
[2023-05-12 01:16:16.951] [TRACE] 0x7f69d0002870 EVM request account not in cache or wrong lock, getting [ 3f91b7c254f27324280b4ae29a2537e6e74d4b57 ]
[2023-05-12 01:16:16.951] [TRACE] 298 get_key 3f91b7c254f27324280b4ae29a2537e6e74d4b57 write = 1
[2023-05-12 01:16:17.061] [TRACE] 0x56469d4a0e50 Broker locked key for 298
[2023-05-12 01:16:17.061] [TRACE] 298 got key 3f91b7c254f27324280b4ae29a2537e6e74d4b57
[2023-05-12 01:16:17.061] [TRACE] evm_get_code_size 3f91b7c254f27324280b4ae29a2537e6e74d4b57
[2023-05-12 01:16:17.061] [TRACE] EVM request account code: 3f91b7c254f27324280b4ae29a2537e6e74d4b57
[2023-05-12 01:16:17.061] [TRACE] 298 get_key 3f91b7c254f27324280b4ae29a2537e6e74d4b5700 write = 0
[2023-05-12 01:16:17.171] [TRACE] 0x56469d4a0e50 Broker locked key for 298
[2023-05-12 01:16:17.171] [TRACE] 298 got key 3f91b7c254f27324280b4ae29a2537e6e74d4b5700
[2023-05-12 01:16:17.171] [TRACE] EVM output data:
[2023-05-12 01:16:17.171] [TRACE] Result status: success
[2023-05-12 01:16:17.171] [TRACE] 0x7f69d0002870 EVM request account: adf556aeb4ffc47ce84219ed9ce5851f4001433b - Write: 1
[2023-05-12 01:16:17.171] [TRACE] 0x7f69cc00f7f0 Agent requesting commit for 298
[2023-05-12 01:16:17.171] [TRACE] 0x56469d4a0e50 Broker got commit request for 298
[2023-05-12 01:16:17.171] [TRACE] 0x7f69cc00f7f0 Agent handle_run complete for 298

And, I Apply commit 8dc9169, I've verified that i works fine.

Thanks for the quick fix it.

Let's close this issue now.
Thank you again for your interest in my report.