Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Problem building some receipt proofs #557

Closed
mfornet opened this issue Apr 14, 2021 · 2 comments
Closed

Problem building some receipt proofs #557

mfornet opened this issue Apr 14, 2021 · 2 comments
Labels

Comments

@mfornet
Copy link
Contributor

mfornet commented Apr 14, 2021

We saw a Locked tx in Ropsten for which the receipt proof can't be built directly using information exposed in the RPC: https://ropsten.etherscan.io/tx/0xb1008805a1547b792942d33953decb0d55d5f4fc316d1a54193aa358e7af833c (This tx was first reported in aurora-is-near/rainbow-bridge-client#22)

The problem is with serialisation of Reciept data, which is encoded as a tuple of four values, where the first value can be one on ('0x01, '0x00', stateRootAfterApplyingTransaction). It is unclear in which cases it is encoded using the stateRootAfterApplyingTransaction, but in those cases it is not possible to build the proof, since this value is not exposed in an RPC.

Relevant code in Go-Ethereum implementation:

It is unclear when this situation may happen, or if this can happen in mainnet too. The yellow paper is not very clear in this regard. See section 4.3.1, equation 21.

One potential solution in case this affects us in mainnet (or ropsten) is running a ethereum node, and modify RPC to expose receipt serialised ourselves. Receipts are exposed in geth here.

@mfornet
Copy link
Contributor Author

mfornet commented Apr 23, 2021

Will be fixed in: aurora-is-near/eth-object#1

@mfornet
Copy link
Contributor Author

mfornet commented Jun 22, 2021

Merged and fixed.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant