ChainSafe / ChainSafe/forest

Handle Ethereum mapping TTL corner case

Open
#4,466 2 comments 0 reactions 0 assignees View on GitHub
Type: Bug
Dominant language
Rust
Stars
697
Forks
200
Avg merge
1d 5h
Merged PRs (30d)
65

Description

## Issue summary

The Ethereum mapping TTL feature allows entries to be deleted after a setup duration (e.g., twenty-four hours).

After this period, RPC methods involving mapping like:

- `Filecoin.EthGetMessageCidByTransactionHash`
- `Filecoin.EthGetTransactionByHash`

and in some circumstances, could return a non-null result even though the `Hash` to `Cid` entry has been correctly deleted.

## Task summary

- [ ] Find some of those hashes using `calibnet_eth_mapping_check` CI script
- [ ] Investigate how Lotus behaves for those hashes
- [ ] We should either properly document this behavior because it can be a source of surprise for API consumers
- [ ] OR we should find a way to handle those corner cases and always return `null` when an entry has been deleted
(This could be done by transforming back the `Cid` to an `Hash` and seeing if there's a match)

## Acceptance Criteria

- [ ] Add unit test covering this corner case

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.