Skip to content

chore(indexer): Tempo (chain 42431) config for the live 0.19 deploy#208

Merged
drewstone merged 1 commit into
mainfrom
chore/indexer-tempo-config
Jul 8, 2026
Merged

chore(indexer): Tempo (chain 42431) config for the live 0.19 deploy#208
drewstone merged 1 commit into
mainfrom
chore/indexer-tempo-config

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

Envio config to index the live tnt-core 0.19 deployment on Tempo Moderato (chain 42431). Proven end-to-end: synced from the deploy block (25563852) to head, decoded real 0.19 events (StakingAsset/RewardVault/RoleGranted/Upgraded). Indexes the 6 deployed contracts; the 4 not on Tempo use address:[] to keep codegen/handlers intact. Drops the input tx-field because Tempo system tx type 0x76 has no input (envio treats a requested-missing field as fatal) — a Tempo-RPC tx-shape note, not an ABI mismatch.

Indexes the 6 contracts deployed on Tempo (Tangle, MultiAssetDelegation, OperatorStatusRegistry,
RewardVaults, InflationPool, Credits); the 4 not deployed (MBSM, ValidatorPodManager,
LiquidDelegation*) use address:[] to keep codegen/handlers intact. Drops the input tx-field
(Tempo system tx type 0x76 has no input; envio treats a requested-missing field as fatal).
Proven: synced 25563852->head, materialized StakingAsset/RewardVault/RoleGranted/Upgraded.

@tangletools tangletools left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Auto-approved drewstone PR — 3b60cb13

This PR was opened by the trusted drewstone account.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.

tangletools · auto-approval · reason: drewstone_author · 2026-07-08T16:34:54Z

@tangletools tangletools left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Value Audit — sound-with-nits

Verdict sound-with-nits
Concerns 1 (1 weak-concern)
Heuristic 0.0s
Duplication 0.0s
Interrogation 134.5s (2 bridge agents)
Total 134.5s

💰 Value — sound-with-nits

Adds a third Envio per-chain config (Tempo/42431) mirroring the exact base-sepolia/local pattern, with all addresses verified against the deploy manifest; sound, with one maintenance nit around the existing sync script.

  • What it does: Adds indexer/config.tempo.yaml — an Envio indexer config for the live tnt-core 0.19 deployment on Tempo Moderato (chain 42431), starting at block 25563852 against https://rpc.moderato.tempo.xyz. It indexes 6 deployed contracts (Tangle, MultiAssetDelegation, OperatorStatusRegistry, RewardVaults, InflationPool, Credits) and declares 4 undeployed contracts (MasterBlueprintServiceManager, ValidatorPod
  • Goals it achieves: Make the indexer able to follow the real 0.19 mainnet-like deployment on Tempo without dying on Tempo-specific RPC quirks. Concretely: (1) point at the right chain/RPC/start-block, (2) avoid envio's fatal 'requested field missing' abort on Tempo's native 0x76 system transactions (which carry no input), and (3) keep the single shared src/EventHandlers.ts handler file compiling even though 4 contr
  • Assessment: Good change, in the grain of the codebase. It is a near-exact structural clone of config.yaml (base-sepolia): same contract ordering, same event signatures, same address: [] convention for undeployed beacon/liquid contracts — config.yaml:131-158 already does exactly this for ValidatorPodManager/LiquidDelegationFactory/LiquidDelegationVault. All 6 addresses match deployments/tempo/latest.json:9-1
  • Better / existing approach: Mostly none — Envio requires a concrete per-chain config file (codegen is per-config), so a third file is unavoidable and the event-list duplication across config.yaml/config.local.yaml/config.tempo.yaml is a pre-existing Envio limitation, not something this PR introduces. One small available improvement exists: indexer/scripts/sync-config-from-manifest.ts already automates address-sync from a dep
  • Model: opencode/zai-coding-plan/glm-5.2
  • Bridge attempts: 2
  • Bridge warning: opencode/kimi-for-coding/k2p7: bridge stream ended without value-audit content

🎯 Usefulness — error

usefulness agent produced no parseable value-audit JSON.

  • Model: opencode/zai-coding-plan/glm-5.2
  • Bridge attempts: 1
  • Bridge error: no parseable JSON response

💰 Value Audit

🟡 Sync script can't maintain the new Tempo config — its addresses will drift on Tempo redeploy [maintenance] ``

indexer/scripts/sync-config-from-manifest.ts:100-106 throws if no MBSM address is supplied (--mbsm or manifest.mbsm). Tempo's latest.json has no mbsm key, so the script refuses to run against config.tempo.yaml. Consequently the 6 Tempo addresses are hand-maintained and will silently go stale if contracts are redeployed on Tempo — exactly the drift the script exists to prevent for config.yaml. Minor available improvement: relax the MBSM check to emit address: [] when the manifest genuinely lack


What this audit checks

It judges the change on its merits — not whether it was tasked out in an issue. Unticketed, fast-moving work is fine; the question is whether the change is good and whether a better or existing approach should be used instead.

Pass What it asks
Heuristic Vague title? Whitespace-only or cruft-bearing diff? (content signals only)
Duplication Do added function/class names already exist elsewhere in the repo?
Value Audit What does it do? What goal does it achieve? Is it good? Better architecture or already-exists?
Usefulness Audit Does it integrate and fit? Will it hold up in real use and actually get used?

Findings are concerns, not blocks — the human reviewer decides what to do with them.

value-audit · 20260708T164036Z

@tangletools

Copy link
Copy Markdown
Contributor

✅ No Blockers — 3b60cb13

Review health 100/100 · Reviewer score 92/100 · Confidence 65/100 · 1 finding (1 low)

deepseek kimi-code aggregate
Readiness 95 92 92
Confidence 65 65 65
Correctness 95 92 92
Security 95 92 92
Testing 95 92 92
Architecture 95 92 92

Reviewer score is advisory once the run is complete and the verdict has no blockers.

Full multi-shot audit completed 1/1 planned shots over 1 changed files. Global verifier still owns final merge decision. | Full multi-shot audit completed 1/1 planned shots over 1 changed files. Global verifier still owns final merge decision.

🟡 LOW Incomplete comment about transaction.input consumers — indexer/config.tempo.yaml

The comment claims 'The only handler that reads event.transaction?.input decodes ServiceRequested metadata', but src/handlers/tangle.ts lines 554 and 582 both call extractServiceRequestMetadataFromInput(event.transaction?.input) — in the ServiceRequested handler AND the ServiceRequestedWithSecurity handler. Update the comment to mention both handlers so future maintainers don't mistakenly believe only one code path is affected when deciding whether to re-add the input field.


tangletools · 2026-07-08T16:43:53Z · trace

@tangletools tangletools left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Approved — 1 non-blocking finding — 3b60cb13

Full multi-shot audit completed 1/1 planned shots over 1 changed files. Global verifier still owns final merge decision. | Full multi-shot audit completed 1/1 planned shots over 1 changed files. Global verifier still owns final merge decision.

Full immutable report for this review: trace

Summary comment for this run: full summary


tangletools · 2026-07-08T16:43:53Z · immutable trace

@drewstone
drewstone merged commit f0bc9ca into main Jul 8, 2026
1 check 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.

2 participants