Repository navigation
feat(shadownet): index L2 Michelson deposits - #50
Merged
Merged
Conversation
Etherlink shadownet activated a Michelson runtime (Tezlink) alongside its EVM one, so a tz1-receiver XTZ deposit now has an L2 leg that no EVM index can see: the kernel emits it as a synthetic transaction from TEZLINK_DEPOSITOR on a chain of its own, reachable only through a TzKT over that runtime. Same four pieces mainnet carries — `has_michelson_runtime: true` so the RuntimeGateway precompile classifies EVM addresses, the Michelson TzKT datasource, the depositor contract, and the deposits index that feeds the op-hash matcher. Both new env vars are already passed through by the deployment compose. `TEZOSX_MICHELSON_TZKT_URL` unreachable at boot is a crash loop, not degradation — the datasource probes it before the schema is opened. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Etherlink 7.0 activated a Michelson runtime (Tezlink) on shadownet on 2026-08-24 at 14:58:21 UTC,
genesis L2 level 6038916. This gives
configs/shadownet.yamlthe same four pieces mainnet andtezosx-shadownet already carry, so tz1-receiver XTZ deposits get indexed there too.
Four additions, mirroring
configs/mainnet.yaml:custom.has_michelson_runtime: true— the overlay'scustomblock replaces the base one, so thekey is restated here as a literal bool (
handlers/alias.pyrejects a string).tezos_x_michelson_tzkt— the TzKT over the rollup's Michelson runtime.tezos_x_michelson_depositor— TEZLINK_DEPOSITOR, a kernel constant, identical on everynetwork.
tezos_x_michelson_deposits—tezos_x.on_michelson_deposit_ophash, bounded byL2_MICHELSON_FIRST_LEVEL.The op-hash derivation carries no in-band version, so it is only valid against the kernel snapshot
its golden vectors pin. Checked directly: shadownet and mainnet both answer
tez_kernelVersionwith86a1a4085acd51938923832c202bd799c42f793a— the same kernel, so the pinned derivation holds.Verified against the live network:
RuntimeGateway.originOfanswers a decodable tuple on shadownet —has_michelson_runtime: truewill not raise
RuntimeGatewayUnsupportedErrorand take L1 indexing down./v1/protocols/currentwith 200, and its earliest block is exactly 6038916 —so the index's
first_levelis read off the datasource, not predicted, and sits below its head.A
first_levelabove that head freezes the whole indexer silently.make test— 137 passed.make prod-check— PASS, includingconfig exportfor mainnet,shadownet and tezosx-shadownet inside the image.
Deploying a tag whose image predates this drops L2 Michelson indexing silently, so
check-michelson-in-image.sh(in the deployment tree) now takes the network as its second argumentinstead of always grepping
configs/mainnet.yaml.