Skip to content

feat: synth logs node indexing - #1471

Merged
enthusiastmartin merged 52 commits into
masterfrom
feat/synth-logs-node-indexing
Jun 29, 2026
Merged

feat: synth logs node indexing#1471
enthusiastmartin merged 52 commits into
masterfrom
feat/synth-logs-node-indexing

Conversation

@mrq1911

@mrq1911 mrq1911 commented Jun 2, 2026

Copy link
Copy Markdown
Member

Surfaces substrate token activity as EVM logs over eth_getLogs, off-chain in the node (replaces the on-chain approach in #1436):

  • synthetic ERC-20 Transfer / uniswap-v2 Swap logs over eth_getLogs — no on-chain synthetic txs or pallet
  • client-side translation from System::Events → no runtime-API dependency, works against any runtime version (archive node for full history)
  • full balance-movement coverage (transfer / mint / burn / reserve / lock) → transferable balance reconstructable from Transfer events alone (reserved + frozen sentinels)
  • internal Executor::call EVM logs included, per-log deduped against real eth-tx receipts
  • canonical block hashes preserved: the override leaves headers untouched; a custom eth_getLogs (synthetic_logs::eth_filter) keeps log.blockHash canonical (round-trips via eth_getBlockByHash) while a synth-aware bloom keeps synth-only blocks from being skipped. Caveat: the stateful eth_newFilter/getFilterChanges path still uses fc-rpc's canonical-bloom prefilter, so it won't surface synth-only blocks under address filters — eth_getLogs is the fixed path.
  • verified end-to-end on a full mainnet archive sync: no double-counting, a plain ERC-20 indexer reconstructs exact on-chain balances

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown

Crate versions that have not been updated:

  • runtime-integration-tests: v1.101.0

Crate versions that have been updated:

  • hydradx: v15.0.2 -> v15.1.5
  • hydradx-runtime: v428.0.0 -> v429.0.0

Runtime version has been increased.

This comment was marked as outdated.

mrq1911 added 8 commits June 2, 2026 19:14
…e-indexing

# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	integration-tests/Cargo.toml
#	node/Cargo.toml
#	pallets/omnipool/Cargo.toml
#	pallets/stableswap/Cargo.toml
#	pallets/transaction-multi-payment/Cargo.toml
#	runtime/hydradx/Cargo.toml
#	runtime/hydradx/src/lib.rs
@mrq1911
mrq1911 force-pushed the feat/synth-logs-node-indexing branch from 978be33 to 4a19d59 Compare June 2, 2026 17:17
@mrq1911
mrq1911 requested a review from enthusiastmartin June 3, 2026 12:17
…e-indexing

# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	integration-tests/Cargo.toml
#	pallets/staking/Cargo.toml
#	runtime/hydradx/Cargo.toml
#	runtime/hydradx/src/lib.rs
@mrq1911
mrq1911 force-pushed the feat/synth-logs-node-indexing branch from f51aff2 to 1576ad8 Compare June 3, 2026 12:48
@mrq1911
mrq1911 requested a review from iamyxsh June 3, 2026 13:38
@github-actions

Copy link
Copy Markdown

Quick benchmark at commit 3e94b24 has been executed successfully.
View results

@enthusiastmartin
enthusiastmartin merged commit d6658fa into master Jun 29, 2026
9 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants