@jinn-network/client 0.1.8 → 0.1.9-canary.02befda9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +3 -3
- package/deployments/deployment-stolas-l2-baseSepolia-fast.json +23 -3
- package/deployments/deployment-task-coordinator-router-v3-baseSepolia-fast.json +34 -6
- package/dist/adapters/mech/adapter.d.ts +21 -1
- package/dist/adapters/mech/adapter.js +107 -52
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +174 -13
- package/dist/adapters/mech/contracts.js +99 -49
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/safe-revert.d.ts +4 -0
- package/dist/adapters/mech/safe-revert.js +5 -1
- package/dist/adapters/mech/safe-revert.js.map +1 -1
- package/dist/adapters/mech/safe.js +77 -1
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +4 -42
- package/dist/adapters/mech/types.js +8 -20
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/adapters/mech/verdict-code.js +1 -1
- package/dist/adapters/mech/verdict-code.js.map +1 -1
- package/dist/api/bootstrap-endpoint.d.ts +1 -0
- package/dist/api/bootstrap-endpoint.js +1 -0
- package/dist/api/bootstrap-endpoint.js.map +1 -1
- package/dist/api/discovery-endpoint.d.ts +1 -0
- package/dist/api/discovery-endpoint.js +24 -0
- package/dist/api/discovery-endpoint.js.map +1 -1
- package/dist/api/fleet-build.d.ts +1 -7
- package/dist/api/fleet-build.js +0 -7
- package/dist/api/fleet-build.js.map +1 -1
- package/dist/api/gather-status.d.ts +26 -17
- package/dist/api/gather-status.js +57 -516
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/harness-auth-status-endpoint.d.ts +21 -0
- package/dist/api/harness-auth-status-endpoint.js +17 -0
- package/dist/api/harness-auth-status-endpoint.js.map +1 -0
- package/dist/api/loop-completion-build.d.ts +79 -0
- package/dist/api/loop-completion-build.js +155 -0
- package/dist/api/loop-completion-build.js.map +1 -0
- package/dist/api/operator-artifacts-endpoint.js +1 -1
- package/dist/api/operator-artifacts-endpoint.js.map +1 -1
- package/dist/api/peers.js +2 -0
- package/dist/api/peers.js.map +1 -1
- package/dist/api/rewards-build.d.ts +8 -1
- package/dist/api/rewards-build.js +32 -4
- package/dist/api/rewards-build.js.map +1 -1
- package/dist/api/rewards-endpoint.d.ts +12 -0
- package/dist/api/rewards-endpoint.js +46 -0
- package/dist/api/rewards-endpoint.js.map +1 -0
- package/dist/api/server.d.ts +6 -16
- package/dist/api/server.js +29 -26
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +41 -0
- package/dist/api/setup-endpoints.js +258 -45
- package/dist/api/setup-endpoints.js.map +1 -1
- package/dist/api/solvernets-endpoints.js +4 -1
- package/dist/api/solvernets-endpoints.js.map +1 -1
- package/dist/api/status-build.d.ts +71 -94
- package/dist/api/status-build.js +11 -77
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +0 -4
- package/dist/api/status-rollup-build.js +0 -4
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/api/stop-hook.d.ts +1 -1
- package/dist/api/stop-hook.js +1 -1
- package/dist/api/stop-hook.js.map +1 -1
- package/dist/build-info.json +4 -4
- package/dist/build-meta.json +1 -1
- package/dist/captures/live-publisher.d.ts +9 -0
- package/dist/captures/live-publisher.js +1 -0
- package/dist/captures/live-publisher.js.map +1 -1
- package/dist/captures/publish.d.ts +11 -0
- package/dist/captures/publish.js +15 -5
- package/dist/captures/publish.js.map +1 -1
- package/dist/cli/commands/codedigest-revert-check.js +6 -2
- package/dist/cli/commands/codedigest-revert-check.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.js +36 -4
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/eval.d.ts +87 -0
- package/dist/cli/commands/eval.js +481 -0
- package/dist/cli/commands/eval.js.map +1 -0
- package/dist/cli/commands/rewards.d.ts +2 -0
- package/dist/cli/commands/rewards.js +39 -10
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/solver-nets.js +68 -0
- package/dist/cli/commands/solver-nets.js.map +1 -1
- package/dist/cli/commands/status.js +0 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/update.js +8 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/version.js +4 -0
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/introspection-context.js +0 -3
- package/dist/cli/introspection-context.js.map +1 -1
- package/dist/config.d.ts +158 -541
- package/dist/config.js +189 -196
- package/dist/config.js.map +1 -1
- package/dist/corpus/acquire.d.ts +7 -6
- package/dist/corpus/acquire.js +10 -10
- package/dist/corpus/acquire.js.map +1 -1
- package/dist/corpus/fetch-artifact.d.ts +21 -0
- package/dist/corpus/fetch-artifact.js +33 -0
- package/dist/corpus/fetch-artifact.js.map +1 -0
- package/dist/corpus/index.d.ts +2 -2
- package/dist/corpus/route-resolver.d.ts +3 -3
- package/dist/corpus/route-resolver.js +3 -3
- package/dist/daemon/ai-units-gate.d.ts +6 -6
- package/dist/daemon/ai-units-gate.js +11 -10
- package/dist/daemon/ai-units-gate.js.map +1 -1
- package/dist/daemon/balance-topup-loop.js +3 -0
- package/dist/daemon/balance-topup-loop.js.map +1 -1
- package/dist/daemon/checkpoint-loop.js +2 -2
- package/dist/daemon/creator.d.ts +1 -0
- package/dist/daemon/creator.js +26 -14
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +15 -10
- package/dist/daemon/daemon.js +71 -39
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/delivery-watcher.d.ts +9 -0
- package/dist/daemon/delivery-watcher.js +24 -1
- package/dist/daemon/delivery-watcher.js.map +1 -1
- package/dist/daemon/eviction-loop.d.ts +7 -0
- package/dist/daemon/eviction-loop.js +19 -3
- package/dist/daemon/eviction-loop.js.map +1 -1
- package/dist/daemon/join-applier.d.ts +35 -0
- package/dist/daemon/join-applier.js +49 -0
- package/dist/daemon/join-applier.js.map +1 -0
- package/dist/daemon/loop-heartbeat.d.ts +34 -0
- package/dist/daemon/loop-heartbeat.js +38 -0
- package/dist/daemon/loop-heartbeat.js.map +1 -0
- package/dist/daemon/reward-claim-loop.js +4 -1
- package/dist/daemon/reward-claim-loop.js.map +1 -1
- package/dist/daemon/skip-log-dedup.d.ts +1 -1
- package/dist/daemon/skip-log-dedup.js +3 -0
- package/dist/daemon/skip-log-dedup.js.map +1 -1
- package/dist/daemon/watchdog-loop.d.ts +84 -0
- package/dist/daemon/watchdog-loop.js +91 -0
- package/dist/daemon/watchdog-loop.js.map +1 -0
- package/dist/dashboard/assets/index-BsrAAmvC.js +171 -0
- package/dist/dashboard/assets/index-DQOWJ2SF.css +1 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/discovery/http.d.ts +17 -0
- package/dist/discovery/http.js +295 -25
- package/dist/discovery/http.js.map +1 -1
- package/dist/discovery/onchain.js +158 -2
- package/dist/discovery/onchain.js.map +1 -1
- package/dist/discovery/types.d.ts +106 -0
- package/dist/discovery/types.js +40 -0
- package/dist/discovery/types.js.map +1 -1
- package/dist/discovery/with-fallback.js +14 -0
- package/dist/discovery/with-fallback.js.map +1 -1
- package/dist/earning/bootstrap.d.ts +25 -0
- package/dist/earning/bootstrap.js +79 -28
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +0 -229
- package/dist/earning/contracts.js +4 -184
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/faucet-topup-store.d.ts +41 -0
- package/dist/earning/faucet-topup-store.js +89 -0
- package/dist/earning/faucet-topup-store.js.map +1 -0
- package/dist/earning/faucet.d.ts +1 -1
- package/dist/earning/faucet.js +2 -2
- package/dist/earning/faucet.js.map +1 -1
- package/dist/earning/safe-adapter.js +11 -0
- package/dist/earning/safe-adapter.js.map +1 -1
- package/dist/earning/stolas-claim.js +8 -8
- package/dist/earning/stolas-claim.js.map +1 -1
- package/dist/earning/{jinn-rewards.d.ts → stolas-staking.d.ts} +4 -8
- package/dist/earning/{jinn-rewards.js → stolas-staking.js} +6 -10
- package/dist/earning/stolas-staking.js.map +1 -0
- package/dist/earning/testnet-setup-migration.d.ts +1 -0
- package/dist/earning/testnet-setup-migration.js +7 -2
- package/dist/earning/testnet-setup-migration.js.map +1 -1
- package/dist/earning/types.d.ts +1 -1
- package/dist/earning/types.js +1 -1
- package/dist/earning/types.js.map +1 -1
- package/dist/earning/viem-clients.d.ts +3 -19
- package/dist/earning/viem-clients.js +4 -31
- package/dist/earning/viem-clients.js.map +1 -1
- package/dist/eval/eval-harness-run.d.ts +63 -0
- package/dist/eval/eval-harness-run.js +123 -0
- package/dist/eval/eval-harness-run.js.map +1 -0
- package/dist/eval/orchestrator.d.ts +224 -0
- package/dist/eval/orchestrator.js +250 -0
- package/dist/eval/orchestrator.js.map +1 -0
- package/dist/eval/paired.d.ts +68 -0
- package/dist/eval/paired.js +93 -0
- package/dist/eval/paired.js.map +1 -0
- package/dist/eval/resolve-slate-tasks.d.ts +35 -0
- package/dist/eval/resolve-slate-tasks.js +56 -0
- package/dist/eval/resolve-slate-tasks.js.map +1 -0
- package/dist/eval/screen-discovery.d.ts +22 -0
- package/dist/eval/screen-discovery.js +71 -0
- package/dist/eval/screen-discovery.js.map +1 -0
- package/dist/eval/screen-progress.d.ts +41 -0
- package/dist/eval/screen-progress.js +60 -0
- package/dist/eval/screen-progress.js.map +1 -0
- package/dist/eval/screen-runner.d.ts +30 -0
- package/dist/eval/screen-runner.js +289 -0
- package/dist/eval/screen-runner.js.map +1 -0
- package/dist/eval/screen.d.ts +107 -0
- package/dist/eval/screen.js +159 -0
- package/dist/eval/screen.js.map +1 -0
- package/dist/eval/slope.d.ts +29 -0
- package/dist/eval/slope.js +46 -0
- package/dist/eval/slope.js.map +1 -0
- package/dist/eval/train-sequence.d.ts +35 -0
- package/dist/eval/train-sequence.js +59 -0
- package/dist/eval/train-sequence.js.map +1 -0
- package/dist/eval/wilson.d.ts +45 -0
- package/dist/eval/wilson.js +48 -0
- package/dist/eval/wilson.js.map +1 -0
- package/dist/events/types.d.ts +1 -1
- package/dist/events/types.js +1 -1
- package/dist/events/types.js.map +1 -1
- package/dist/harnesses/auth-source.d.ts +51 -0
- package/dist/harnesses/auth-source.js +155 -0
- package/dist/harnesses/auth-source.js.map +1 -0
- package/dist/harnesses/engine/canonical-json.js +5 -3
- package/dist/harnesses/engine/canonical-json.js.map +1 -1
- package/dist/harnesses/engine/engine.d.ts +32 -0
- package/dist/harnesses/engine/engine.js +76 -9
- package/dist/harnesses/engine/engine.js.map +1 -1
- package/dist/harnesses/engine/packaging.js +5 -5
- package/dist/harnesses/engine/packaging.js.map +1 -1
- package/dist/harnesses/engine/persistence.d.ts +17 -0
- package/dist/harnesses/engine/persistence.js +28 -0
- package/dist/harnesses/engine/persistence.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +1 -1
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js +1 -1
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/adapter.d.ts +2 -0
- package/dist/harnesses/impls/hermes-agent/adapter.js +8 -5
- package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +1 -0
- package/dist/harnesses/impls/hermes-agent/bootstrap.js +6 -1
- package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/harness.d.ts +25 -3
- package/dist/harnesses/impls/hermes-agent/harness.js +89 -5
- package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
- package/dist/harnesses/impls/index.d.ts +2 -0
- package/dist/harnesses/impls/index.js +10 -1
- package/dist/harnesses/impls/index.js.map +1 -1
- package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.d.ts +34 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js +111 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js.map +1 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.d.ts +24 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js +19 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js.map +1 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/harness.d.ts +64 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/harness.js +125 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/harness.js.map +1 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/repro.d.ts +32 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/repro.js +73 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/repro.js.map +1 -0
- package/dist/harnesses/impls/learner/adapters/claude-code.js +5 -0
- package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
- package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +8 -0
- package/dist/harnesses/impls/learner/adapters/codex-code.js +91 -11
- package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
- package/dist/harnesses/impls/learner/harness.d.ts +29 -1
- package/dist/harnesses/impls/learner/harness.js +85 -1
- package/dist/harnesses/impls/learner/harness.js.map +1 -1
- package/dist/harnesses/impls/learner/harvest.d.ts +2 -0
- package/dist/harnesses/impls/learner/harvest.js +51 -1
- package/dist/harnesses/impls/learner/harvest.js.map +1 -1
- package/dist/harnesses/impls/learner/plugin-path.js +1 -0
- package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
- package/dist/harnesses/impls/stub.d.ts +2 -2
- package/dist/harnesses/impls/stub.js +2 -2
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +3 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +2 -2
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +3 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
- package/dist/harnesses/readiness-registry.d.ts +16 -0
- package/dist/harnesses/readiness-registry.js +28 -6
- package/dist/harnesses/readiness-registry.js.map +1 -1
- package/dist/harnesses/types.d.ts +26 -0
- package/dist/learner/revert-decision.d.ts +16 -1
- package/dist/learner/revert-decision.js +38 -18
- package/dist/learner/revert-decision.js.map +1 -1
- package/dist/learner/revert-stats.d.ts +14 -0
- package/dist/learner/revert-stats.js +42 -0
- package/dist/learner/revert-stats.js.map +1 -1
- package/dist/local-provider-url.d.ts +3 -0
- package/dist/local-provider-url.js +28 -0
- package/dist/local-provider-url.js.map +1 -0
- package/dist/main.js +125 -120
- package/dist/main.js.map +1 -1
- package/dist/mcp/acquire-artifact.d.ts +3 -3
- package/dist/mcp/acquire-artifact.js +3 -3
- package/dist/mcp/operator-server.js +1 -1
- package/dist/mcp/operator-server.js.map +1 -1
- package/dist/mcp/server.js +5 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/observability/emit-event.d.ts +1 -1
- package/dist/observability/emit-event.js +0 -4
- package/dist/observability/emit-event.js.map +1 -1
- package/dist/plugins/learner/.claude-plugin/plugin.json +1 -1
- package/dist/plugins/learner/.codex-plugin/plugin.json +1 -1
- package/dist/plugins/learner/hooks/session-start +30 -1
- package/dist/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
- package/dist/preflight/deployment-readiness.d.ts +127 -0
- package/dist/preflight/deployment-readiness.js +308 -0
- package/dist/preflight/deployment-readiness.js.map +1 -0
- package/dist/preflight/pidfile-liveness.d.ts +7 -1
- package/dist/preflight/pidfile-liveness.js +14 -0
- package/dist/preflight/pidfile-liveness.js.map +1 -1
- package/dist/rpc/transport.d.ts +43 -5
- package/dist/rpc/transport.js +131 -30
- package/dist/rpc/transport.js.map +1 -1
- package/dist/scripts/swe-rebench-v2-seed-pool.json +2 -1
- package/dist/solver-nets/registry.d.ts +19 -0
- package/dist/solver-nets/registry.js +95 -66
- package/dist/solver-nets/registry.js.map +1 -1
- package/dist/solver-types/_jinn-repo-pool.d.ts +27 -0
- package/dist/solver-types/_jinn-repo-pool.js +27 -0
- package/dist/solver-types/_jinn-repo-pool.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +76 -0
- package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +156 -0
- package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-pool-recovery.d.ts +81 -0
- package/dist/solver-types/_swe-rebench-v2-pool-recovery.js +116 -0
- package/dist/solver-types/_swe-rebench-v2-pool-recovery.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-state.d.ts +9 -0
- package/dist/solver-types/_swe-rebench-v2-state.js +14 -0
- package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +30 -0
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js +40 -0
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
- package/dist/solver-types/index.js +2 -0
- package/dist/solver-types/index.js.map +1 -1
- package/dist/solver-types/jinn-repo-admit.d.ts +17 -0
- package/dist/solver-types/jinn-repo-admit.js +16 -0
- package/dist/solver-types/jinn-repo-admit.js.map +1 -0
- package/dist/solver-types/jinn-repo-auto.d.ts +60 -0
- package/dist/solver-types/jinn-repo-auto.js +163 -0
- package/dist/solver-types/jinn-repo-auto.js.map +1 -0
- package/dist/solver-types/jinn-repo-definition.d.ts +15 -0
- package/dist/solver-types/jinn-repo-definition.js +34 -0
- package/dist/solver-types/jinn-repo-definition.js.map +1 -0
- package/dist/solver-types/jinn-repo-extract.d.ts +16 -0
- package/dist/solver-types/jinn-repo-extract.js +32 -0
- package/dist/solver-types/jinn-repo-extract.js.map +1 -0
- package/dist/solver-types/jinn-repo.d.ts +21 -0
- package/dist/solver-types/jinn-repo.js +23 -0
- package/dist/solver-types/jinn-repo.js.map +1 -0
- package/dist/solver-types/learner-loop-test.js +1 -1
- package/dist/solver-types/learner-loop-test.js.map +1 -1
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.json +19 -0
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.screening-report.json +628 -0
- package/dist/solver-types/solver-type.d.ts +8 -0
- package/dist/solver-types/swe-rebench-v2.d.ts +2 -0
- package/dist/solver-types/swe-rebench-v2.js +115 -10
- package/dist/solver-types/swe-rebench-v2.js.map +1 -1
- package/dist/solvernets/launched-record-dispatcher.d.ts +5 -0
- package/dist/solvernets/launched-record-dispatcher.js +8 -1
- package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
- package/dist/solvernets/registry-client-erc8004.js +29 -37
- package/dist/solvernets/registry-client-erc8004.js.map +1 -1
- package/dist/solvernets/registry-client.d.ts +6 -0
- package/dist/solvernets/store.d.ts +1 -1
- package/dist/solvernets/store.js +8 -3
- package/dist/solvernets/store.js.map +1 -1
- package/dist/spend/ai-units-config.d.ts +10 -0
- package/dist/spend/ai-units-config.js +7 -1
- package/dist/spend/ai-units-config.js.map +1 -1
- package/dist/spend/ai-units.d.ts +51 -0
- package/dist/spend/ai-units.js +73 -0
- package/dist/spend/ai-units.js.map +1 -1
- package/dist/spend/record.js +12 -5
- package/dist/spend/record.js.map +1 -1
- package/dist/spend/usage.js +39 -3
- package/dist/spend/usage.js.map +1 -1
- package/dist/store/store.d.ts +92 -5
- package/dist/store/store.js +184 -7
- package/dist/store/store.js.map +1 -1
- package/dist/trajectory/emit.d.ts +6 -0
- package/dist/trajectory/emit.js +9 -1
- package/dist/trajectory/emit.js.map +1 -1
- package/dist/trajectory/harness-bundle-schema.d.ts +1 -1
- package/dist/trajectory/harness-bundle-schema.js +1 -1
- package/dist/trajectory/harness-bundle-schema.js.map +1 -1
- package/dist/trajectory/schema.d.ts +1 -1
- package/dist/trajectory/schema.js +1 -1
- package/dist/trajectory/schema.js.map +1 -1
- package/dist/trajectory/scrub/build.d.ts +27 -0
- package/dist/trajectory/scrub/build.js +43 -0
- package/dist/trajectory/scrub/build.js.map +1 -0
- package/dist/trajectory/scrub/emit-scrub.d.ts +41 -0
- package/dist/trajectory/scrub/emit-scrub.js +88 -0
- package/dist/trajectory/scrub/emit-scrub.js.map +1 -0
- package/dist/trajectory/scrub/key-policy.d.ts +20 -0
- package/dist/trajectory/scrub/key-policy.js +43 -0
- package/dist/trajectory/scrub/key-policy.js.map +1 -0
- package/dist/trajectory/scrub/ml-pii-stage.d.ts +24 -0
- package/dist/trajectory/scrub/ml-pii-stage.js +43 -0
- package/dist/trajectory/scrub/ml-pii-stage.js.map +1 -0
- package/dist/trajectory/scrub/openredaction-stage.d.ts +14 -0
- package/dist/trajectory/scrub/openredaction-stage.js +36 -0
- package/dist/trajectory/scrub/openredaction-stage.js.map +1 -0
- package/dist/trajectory/scrub/pii-build.d.ts +31 -0
- package/dist/trajectory/scrub/pii-build.js +64 -0
- package/dist/trajectory/scrub/pii-build.js.map +1 -0
- package/dist/trajectory/scrub/pipeline.d.ts +16 -0
- package/dist/trajectory/scrub/pipeline.js +26 -0
- package/dist/trajectory/scrub/pipeline.js.map +1 -0
- package/dist/trajectory/scrub/secretlint-stage.d.ts +13 -0
- package/dist/trajectory/scrub/secretlint-stage.js +121 -0
- package/dist/trajectory/scrub/secretlint-stage.js.map +1 -0
- package/dist/trajectory/scrub/transformers-detector.d.ts +35 -0
- package/dist/trajectory/scrub/transformers-detector.js +68 -0
- package/dist/trajectory/scrub/transformers-detector.js.map +1 -0
- package/dist/trajectory/scrub/types.d.ts +25 -0
- package/dist/trajectory/scrub/types.js +2 -0
- package/dist/trajectory/scrub/types.js.map +1 -0
- package/dist/trajectory/transcript-parsers/types.d.ts +1 -1
- package/dist/trajectory/transcript-parsers/types.js +1 -1
- package/dist/trajectory/transcript-parsers/types.js.map +1 -1
- package/dist/tx-retry.d.ts +12 -0
- package/dist/tx-retry.js +41 -12
- package/dist/tx-retry.js.map +1 -1
- package/dist/types/envelope.d.ts +1 -1
- package/dist/types/envelope.js +1 -1
- package/dist/types/envelope.js.map +1 -1
- package/dist/types/payloads/index.d.ts +1 -1
- package/dist/types/payloads/index.js +7 -1
- package/dist/types/payloads/index.js.map +1 -1
- package/dist/types/payloads/portfolio-v0.d.ts +1 -1
- package/dist/types/payloads/portfolio-v0.js +1 -1
- package/dist/types/payloads/portfolio-v0.js.map +1 -1
- package/dist/types/payloads/prediction-apy-v0.d.ts +1 -1
- package/dist/types/payloads/prediction-apy-v0.js +1 -1
- package/dist/types/payloads/prediction-apy-v0.js.map +1 -1
- package/dist/types/payloads/prediction-v0.d.ts +1 -1
- package/dist/types/payloads/prediction-v0.js +1 -1
- package/dist/types/payloads/prediction-v0.js.map +1 -1
- package/dist/types/portfolio.d.ts +1 -1
- package/dist/types/portfolio.js +1 -1
- package/dist/types/portfolio.js.map +1 -1
- package/dist/types/prediction-apy.d.ts +1 -1
- package/dist/types/prediction-apy.js +1 -1
- package/dist/types/prediction-apy.js.map +1 -1
- package/dist/types/prediction.d.ts +1 -1
- package/dist/types/prediction.js +1 -1
- package/dist/types/prediction.js.map +1 -1
- package/dist/types/session-provenance.d.ts +1 -1
- package/dist/types/session-provenance.js +1 -1
- package/dist/types/session-provenance.js.map +1 -1
- package/dist/types/task-document.d.ts +315 -1
- package/dist/types/task-document.js +9 -1
- package/dist/types/task-document.js.map +1 -1
- package/dist/types/task.d.ts +29 -1
- package/dist/types/task.js +1 -1
- package/dist/types/task.js.map +1 -1
- package/dist/types/window.d.ts +1 -1
- package/dist/types/window.js +1 -1
- package/dist/types/window.js.map +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +3 -2
- package/dist/vendor/@jinn-network/sdk/dist/contracts.js +49 -0
- package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.d.ts +44 -0
- package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.js +25 -0
- package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.d.ts +38 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.js +22 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +109 -2
- package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +26 -2
- package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.d.ts +4 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.js +2 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +2 -2
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +1 -1
- package/dist/vendor/@jinn-network/sdk/package.json +9 -1
- package/docker-compose.yml +3 -2
- package/package.json +36 -26
- package/plugins/jinn-repo-runtime/.claude-plugin/plugin.json +5 -0
- package/plugins/jinn-repo-runtime/.codex-plugin/plugin.json +39 -0
- package/plugins/jinn-repo-runtime/README.md +27 -0
- package/plugins/jinn-repo-runtime/hooks/hooks.json +16 -0
- package/plugins/jinn-repo-runtime/hooks/session-start +73 -0
- package/plugins/jinn-repo-runtime/jinn.plugin.json +11 -0
- package/plugins/jinn-repo-runtime/skills/task/SKILL.md +92 -0
- package/plugins/learner/.claude-plugin/plugin.json +1 -1
- package/plugins/learner/.codex-plugin/plugin.json +1 -1
- package/plugins/learner/hooks/session-start +30 -1
- package/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
- package/plugins/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
- package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
- package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +0 -55
- package/deployments/deployment-jinn-mvi-l1-sepolia.json +0 -55
- package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +0 -13
- package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +0 -15
- package/dist/daemon/jinn-claim-loop-canonical.d.ts +0 -207
- package/dist/daemon/jinn-claim-loop-canonical.js +0 -296
- package/dist/daemon/jinn-claim-loop-canonical.js.map +0 -1
- package/dist/daemon/jinn-claim-loop-mock.d.ts +0 -61
- package/dist/daemon/jinn-claim-loop-mock.js +0 -122
- package/dist/daemon/jinn-claim-loop-mock.js.map +0 -1
- package/dist/daemon/jinn-claim-loop-wiring.d.ts +0 -33
- package/dist/daemon/jinn-claim-loop-wiring.js +0 -40
- package/dist/daemon/jinn-claim-loop-wiring.js.map +0 -1
- package/dist/daemon/jinn-claim-loop.d.ts +0 -130
- package/dist/daemon/jinn-claim-loop.js +0 -328
- package/dist/daemon/jinn-claim-loop.js.map +0 -1
- package/dist/dashboard/assets/index-CzKxvMcU.css +0 -32
- package/dist/dashboard/assets/index-yVemxHot.js +0 -351
- package/dist/earning/jinn-rewards.js.map +0 -1
- package/dist/scripts/donation-consumption-acceptance.d.ts +0 -85
- package/dist/scripts/donation-consumption-acceptance.js +0 -1382
- package/dist/scripts/donation-consumption-acceptance.js.map +0 -1
- package/dist/x402/acquire.d.ts +0 -17
- package/dist/x402/acquire.js +0 -49
- package/dist/x402/acquire.js.map +0 -1
- package/dist/x402/facilitator.d.ts +0 -11
- package/dist/x402/facilitator.js +0 -52
- package/dist/x402/facilitator.js.map +0 -1
- package/dist/x402/handler.d.ts +0 -27
- package/dist/x402/handler.js +0 -236
- package/dist/x402/handler.js.map +0 -1
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Canonical OP-Stack storage proof construction for the cross-chain JINN claim
|
|
3
|
-
* loop. Implements `jinnMessengerMode === 'canonical'`.
|
|
4
|
-
*
|
|
5
|
-
* The builder is intended for the verifier-only canary path during testnet
|
|
6
|
-
* burn-in. Active burn-in still uses MockMessenger; this module constructs
|
|
7
|
-
* the canonical proof blob so operators can call
|
|
8
|
-
* `CanonicalOpStackMessenger.verifyClaim` via `eth_call` after finality.
|
|
9
|
-
*
|
|
10
|
-
* The proof blob uses the locked ABI:
|
|
11
|
-
*
|
|
12
|
-
* (
|
|
13
|
-
* bytes32 disputeGameId,
|
|
14
|
-
* bytes outputRootProof,
|
|
15
|
-
* bytes[] accountProof,
|
|
16
|
-
* bytes[] storageProof,
|
|
17
|
-
* uint256 claimId,
|
|
18
|
-
* uint256 serviceId,
|
|
19
|
-
* uint256 taskCreationWeight,
|
|
20
|
-
* uint256 solutionDeliveryWeight,
|
|
21
|
-
* uint256 verdictDeliveryWeight,
|
|
22
|
-
* address multisig
|
|
23
|
-
* )
|
|
24
|
-
*
|
|
25
|
-
* The proof uses an account proof + storage proof for
|
|
26
|
-
* `TaskClaimEmitter.claimSnapshotHashes[claimId]` against the finalized L2
|
|
27
|
-
* state root. Events are discovery only; L1 canonical verification proves the
|
|
28
|
-
* stored snapshot hash.
|
|
29
|
-
*
|
|
30
|
-
* Tracked follow-up: bd `jinn-mono-7x5` Phase B-canonical.
|
|
31
|
-
*/
|
|
32
|
-
import { type Address, type Hex, type PublicClient, type WalletClient } from 'viem';
|
|
33
|
-
export interface CanonicalProofInputs {
|
|
34
|
-
/** Decoded ClaimTicket snapshot (use `decodeClaimTicketFromReceipt`). */
|
|
35
|
-
snapshot: CanonicalClaimSnapshot;
|
|
36
|
-
/** L2 block number containing the emit tx. */
|
|
37
|
-
l2BlockNumber: bigint;
|
|
38
|
-
}
|
|
39
|
-
export interface OpStackTargetChain {
|
|
40
|
-
contracts: {
|
|
41
|
-
disputeGameFactory: Readonly<Record<number, {
|
|
42
|
-
readonly address: Address;
|
|
43
|
-
}>>;
|
|
44
|
-
portal: Readonly<Record<number, {
|
|
45
|
-
readonly address: Address;
|
|
46
|
-
}>>;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
export interface CanonicalProofClients {
|
|
50
|
-
l1Client: PublicClient;
|
|
51
|
-
/**
|
|
52
|
-
* L2 client used for `getBlock` + historical `eth_getProof` at the dispute
|
|
53
|
-
* game's L2 block. Must be archive-capable.
|
|
54
|
-
*/
|
|
55
|
-
l2ProofClient: PublicClient;
|
|
56
|
-
/** OP Stack L2 target chain used by viem/op-stack game lookup. */
|
|
57
|
-
targetChain: OpStackTargetChain;
|
|
58
|
-
/** L1 OptimismPortal2 address. */
|
|
59
|
-
optimismPortal: Address;
|
|
60
|
-
/** L1 DisputeGameFactory address. */
|
|
61
|
-
disputeGameFactory: Address;
|
|
62
|
-
/** L2 TaskClaimEmitter address that emitted ClaimTicket. */
|
|
63
|
-
claimEmitter: Address;
|
|
64
|
-
}
|
|
65
|
-
export interface CanonicalClaimSnapshot {
|
|
66
|
-
claimId: bigint;
|
|
67
|
-
serviceId: bigint;
|
|
68
|
-
taskCreationWeight: bigint;
|
|
69
|
-
solutionDeliveryWeight: bigint;
|
|
70
|
-
verdictDeliveryWeight: bigint;
|
|
71
|
-
multisig: Address;
|
|
72
|
-
claimer: Address;
|
|
73
|
-
}
|
|
74
|
-
export interface CanonicalGameSelection {
|
|
75
|
-
index: bigint;
|
|
76
|
-
l2BlockNumber: bigint;
|
|
77
|
-
proxy: Address;
|
|
78
|
-
factoryGameType: number;
|
|
79
|
-
proxyGameType: number;
|
|
80
|
-
rootClaim: Hex;
|
|
81
|
-
}
|
|
82
|
-
export interface CanonicalProofBuildResult {
|
|
83
|
-
proof: Hex;
|
|
84
|
-
snapshot: CanonicalClaimSnapshot;
|
|
85
|
-
game: CanonicalGameSelection;
|
|
86
|
-
proofBlockNumber: bigint;
|
|
87
|
-
}
|
|
88
|
-
export declare const DISPUTE_GAME_FACTORY_ABI: readonly [{
|
|
89
|
-
readonly name: "gameAtIndex";
|
|
90
|
-
readonly type: "function";
|
|
91
|
-
readonly stateMutability: "view";
|
|
92
|
-
readonly inputs: readonly [{
|
|
93
|
-
readonly type: "uint256";
|
|
94
|
-
}];
|
|
95
|
-
readonly outputs: readonly [{
|
|
96
|
-
readonly type: "uint32";
|
|
97
|
-
readonly name: "gameType_";
|
|
98
|
-
}, {
|
|
99
|
-
readonly type: "uint64";
|
|
100
|
-
readonly name: "timestamp_";
|
|
101
|
-
}, {
|
|
102
|
-
readonly type: "address";
|
|
103
|
-
readonly name: "proxy_";
|
|
104
|
-
}];
|
|
105
|
-
}];
|
|
106
|
-
export declare const DISPUTE_GAME_ABI: readonly [{
|
|
107
|
-
readonly name: "gameType";
|
|
108
|
-
readonly type: "function";
|
|
109
|
-
readonly stateMutability: "view";
|
|
110
|
-
readonly inputs: readonly [];
|
|
111
|
-
readonly outputs: readonly [{
|
|
112
|
-
readonly type: "uint32";
|
|
113
|
-
}];
|
|
114
|
-
}, {
|
|
115
|
-
readonly name: "status";
|
|
116
|
-
readonly type: "function";
|
|
117
|
-
readonly stateMutability: "view";
|
|
118
|
-
readonly inputs: readonly [];
|
|
119
|
-
readonly outputs: readonly [{
|
|
120
|
-
readonly type: "uint8";
|
|
121
|
-
}];
|
|
122
|
-
}, {
|
|
123
|
-
readonly name: "resolvedAt";
|
|
124
|
-
readonly type: "function";
|
|
125
|
-
readonly stateMutability: "view";
|
|
126
|
-
readonly inputs: readonly [];
|
|
127
|
-
readonly outputs: readonly [{
|
|
128
|
-
readonly type: "uint64";
|
|
129
|
-
}];
|
|
130
|
-
}, {
|
|
131
|
-
readonly name: "rootClaim";
|
|
132
|
-
readonly type: "function";
|
|
133
|
-
readonly stateMutability: "view";
|
|
134
|
-
readonly inputs: readonly [];
|
|
135
|
-
readonly outputs: readonly [{
|
|
136
|
-
readonly type: "bytes32";
|
|
137
|
-
}];
|
|
138
|
-
}, {
|
|
139
|
-
readonly name: "wasRespectedGameTypeWhenCreated";
|
|
140
|
-
readonly type: "function";
|
|
141
|
-
readonly stateMutability: "view";
|
|
142
|
-
readonly inputs: readonly [];
|
|
143
|
-
readonly outputs: readonly [{
|
|
144
|
-
readonly type: "bool";
|
|
145
|
-
}];
|
|
146
|
-
}];
|
|
147
|
-
export declare const OPTIMISM_PORTAL_ABI: readonly [{
|
|
148
|
-
readonly name: "respectedGameType";
|
|
149
|
-
readonly type: "function";
|
|
150
|
-
readonly stateMutability: "view";
|
|
151
|
-
readonly inputs: readonly [];
|
|
152
|
-
readonly outputs: readonly [{
|
|
153
|
-
readonly type: "uint32";
|
|
154
|
-
}];
|
|
155
|
-
}, {
|
|
156
|
-
readonly name: "proofMaturityDelaySeconds";
|
|
157
|
-
readonly type: "function";
|
|
158
|
-
readonly stateMutability: "view";
|
|
159
|
-
readonly inputs: readonly [];
|
|
160
|
-
readonly outputs: readonly [{
|
|
161
|
-
readonly type: "uint256";
|
|
162
|
-
}];
|
|
163
|
-
}, {
|
|
164
|
-
readonly name: "disputeGameFinalityDelaySeconds";
|
|
165
|
-
readonly type: "function";
|
|
166
|
-
readonly stateMutability: "view";
|
|
167
|
-
readonly inputs: readonly [];
|
|
168
|
-
readonly outputs: readonly [{
|
|
169
|
-
readonly type: "uint256";
|
|
170
|
-
}];
|
|
171
|
-
}];
|
|
172
|
-
/**
|
|
173
|
-
* Wait until the L2 emit transaction is finalized through the canonical
|
|
174
|
-
* OP-Stack pipeline (DisputeGame resolved + finality airgap elapsed) and
|
|
175
|
-
* construct the `bytes proof` blob accepted by CanonicalOpStackMessenger.
|
|
176
|
-
*
|
|
177
|
-
* This is deliberately one-shot: if no covering/resolved/finalized dispute
|
|
178
|
-
* game exists yet, it throws and the daemon retries on a later tick.
|
|
179
|
-
*/
|
|
180
|
-
export declare function buildCanonicalProof(clients: CanonicalProofClients, inputs: CanonicalProofInputs): Promise<CanonicalProofBuildResult>;
|
|
181
|
-
export declare function claimSnapshotStorageSlot(claimId: bigint): Hex;
|
|
182
|
-
export declare function decodeClaimTicketFromReceipt(logs: readonly {
|
|
183
|
-
address: Address;
|
|
184
|
-
topics: readonly Hex[];
|
|
185
|
-
data: Hex;
|
|
186
|
-
logIndex?: number | null;
|
|
187
|
-
}[], claimEmitter: Address, logIndex: number): CanonicalClaimSnapshot;
|
|
188
|
-
export declare function selectCoveringDisputeGame(clients: CanonicalProofClients, l2BlockNumber: bigint): Promise<CanonicalGameSelection>;
|
|
189
|
-
export declare function assertDisputeGameReady(clients: CanonicalProofClients, game: CanonicalGameSelection): Promise<void>;
|
|
190
|
-
/**
|
|
191
|
-
* Submit `JinnDistributor.claim(proof)` on L1 once a canonical proof has
|
|
192
|
-
* been constructed. Mirrors the mock-mode submission path; idempotent at
|
|
193
|
-
* the contract layer.
|
|
194
|
-
*/
|
|
195
|
-
export declare function submitCanonicalClaim(l1Client: PublicClient, l1Wallet: WalletClient, distributor: Address, proof: Hex): Promise<Hex>;
|
|
196
|
-
/**
|
|
197
|
-
* Verifier-only canonical canary. This intentionally uses `eth_call`
|
|
198
|
-
* (`readContract`) against the messenger and does not submit
|
|
199
|
-
* `JinnDistributor.claim`. Burn-in keeps MockMessenger active.
|
|
200
|
-
*/
|
|
201
|
-
export declare function verifyCanonicalClaimCanary(l1Client: PublicClient, messenger: Address, proof: Hex): Promise<{
|
|
202
|
-
serviceId: bigint;
|
|
203
|
-
taskCreationWeight: bigint;
|
|
204
|
-
solutionDeliveryWeight: bigint;
|
|
205
|
-
verdictDeliveryWeight: bigint;
|
|
206
|
-
multisig: Address;
|
|
207
|
-
}>;
|
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Canonical OP-Stack storage proof construction for the cross-chain JINN claim
|
|
3
|
-
* loop. Implements `jinnMessengerMode === 'canonical'`.
|
|
4
|
-
*
|
|
5
|
-
* The builder is intended for the verifier-only canary path during testnet
|
|
6
|
-
* burn-in. Active burn-in still uses MockMessenger; this module constructs
|
|
7
|
-
* the canonical proof blob so operators can call
|
|
8
|
-
* `CanonicalOpStackMessenger.verifyClaim` via `eth_call` after finality.
|
|
9
|
-
*
|
|
10
|
-
* The proof blob uses the locked ABI:
|
|
11
|
-
*
|
|
12
|
-
* (
|
|
13
|
-
* bytes32 disputeGameId,
|
|
14
|
-
* bytes outputRootProof,
|
|
15
|
-
* bytes[] accountProof,
|
|
16
|
-
* bytes[] storageProof,
|
|
17
|
-
* uint256 claimId,
|
|
18
|
-
* uint256 serviceId,
|
|
19
|
-
* uint256 taskCreationWeight,
|
|
20
|
-
* uint256 solutionDeliveryWeight,
|
|
21
|
-
* uint256 verdictDeliveryWeight,
|
|
22
|
-
* address multisig
|
|
23
|
-
* )
|
|
24
|
-
*
|
|
25
|
-
* The proof uses an account proof + storage proof for
|
|
26
|
-
* `TaskClaimEmitter.claimSnapshotHashes[claimId]` against the finalized L2
|
|
27
|
-
* state root. Events are discovery only; L1 canonical verification proves the
|
|
28
|
-
* stored snapshot hash.
|
|
29
|
-
*
|
|
30
|
-
* Tracked follow-up: bd `jinn-mono-7x5` Phase B-canonical.
|
|
31
|
-
*/
|
|
32
|
-
import { decodeEventLog, encodeAbiParameters, getAddress, keccak256, parseAbi, toHex, } from 'viem';
|
|
33
|
-
import { getProof } from 'viem/actions';
|
|
34
|
-
import { getGames } from 'viem/op-stack';
|
|
35
|
-
import { CLAIM_MESSENGER_ABI, CLAIM_TICKET_TOPIC0, JINN_CLAIM_EMITTER_ABI, JINN_DISTRIBUTOR_ABI, } from '../earning/contracts.js';
|
|
36
|
-
export const DISPUTE_GAME_FACTORY_ABI = parseAbi([
|
|
37
|
-
'function gameAtIndex(uint256) view returns (uint32 gameType_, uint64 timestamp_, address proxy_)',
|
|
38
|
-
]);
|
|
39
|
-
export const DISPUTE_GAME_ABI = parseAbi([
|
|
40
|
-
'function gameType() view returns (uint32)',
|
|
41
|
-
'function status() view returns (uint8)',
|
|
42
|
-
'function resolvedAt() view returns (uint64)',
|
|
43
|
-
'function rootClaim() view returns (bytes32)',
|
|
44
|
-
'function wasRespectedGameTypeWhenCreated() view returns (bool)',
|
|
45
|
-
]);
|
|
46
|
-
export const OPTIMISM_PORTAL_ABI = parseAbi([
|
|
47
|
-
'function respectedGameType() view returns (uint32)',
|
|
48
|
-
'function proofMaturityDelaySeconds() view returns (uint256)',
|
|
49
|
-
'function disputeGameFinalityDelaySeconds() view returns (uint256)',
|
|
50
|
-
]);
|
|
51
|
-
const OUTPUT_ROOT_PROOF_ABI = [
|
|
52
|
-
{
|
|
53
|
-
type: 'tuple',
|
|
54
|
-
components: [
|
|
55
|
-
{ name: 'version', type: 'bytes32' },
|
|
56
|
-
{ name: 'stateRoot', type: 'bytes32' },
|
|
57
|
-
{ name: 'messagePasserStorageRoot', type: 'bytes32' },
|
|
58
|
-
{ name: 'latestBlockHash', type: 'bytes32' },
|
|
59
|
-
],
|
|
60
|
-
},
|
|
61
|
-
];
|
|
62
|
-
const CANONICAL_PROOF_ABI = [
|
|
63
|
-
{ name: 'disputeGameId', type: 'bytes32' },
|
|
64
|
-
{ name: 'outputRootProof', type: 'bytes' },
|
|
65
|
-
{ name: 'accountProof', type: 'bytes[]' },
|
|
66
|
-
{ name: 'storageProof', type: 'bytes[]' },
|
|
67
|
-
{ name: 'claimId', type: 'uint256' },
|
|
68
|
-
{ name: 'serviceId', type: 'uint256' },
|
|
69
|
-
{ name: 'taskCreationWeight', type: 'uint256' },
|
|
70
|
-
{ name: 'solutionDeliveryWeight', type: 'uint256' },
|
|
71
|
-
{ name: 'verdictDeliveryWeight', type: 'uint256' },
|
|
72
|
-
{ name: 'multisig', type: 'address' },
|
|
73
|
-
];
|
|
74
|
-
const GAME_STATUS_DEFENDER_WINS = 2;
|
|
75
|
-
const CLAIM_SNAPSHOT_HASHES_SLOT = 1n;
|
|
76
|
-
const OUTPUT_ROOT_VERSION = `0x${'0'.repeat(64)}`;
|
|
77
|
-
const L2_TO_L1_MESSAGE_PASSER = '0x4200000000000000000000000000000000000016';
|
|
78
|
-
/**
|
|
79
|
-
* Wait until the L2 emit transaction is finalized through the canonical
|
|
80
|
-
* OP-Stack pipeline (DisputeGame resolved + finality airgap elapsed) and
|
|
81
|
-
* construct the `bytes proof` blob accepted by CanonicalOpStackMessenger.
|
|
82
|
-
*
|
|
83
|
-
* This is deliberately one-shot: if no covering/resolved/finalized dispute
|
|
84
|
-
* game exists yet, it throws and the daemon retries on a later tick.
|
|
85
|
-
*/
|
|
86
|
-
export async function buildCanonicalProof(clients, inputs) {
|
|
87
|
-
const { snapshot, l2BlockNumber } = inputs;
|
|
88
|
-
const game = await selectCoveringDisputeGame(clients, l2BlockNumber);
|
|
89
|
-
await assertDisputeGameReady(clients, game);
|
|
90
|
-
const snapshotSlot = claimSnapshotStorageSlot(snapshot.claimId);
|
|
91
|
-
const [proofBlock, messagePasserProof, snapshotProof] = await Promise.all([
|
|
92
|
-
clients.l2ProofClient.getBlock({ blockNumber: game.l2BlockNumber }),
|
|
93
|
-
getProof(clients.l2ProofClient, {
|
|
94
|
-
address: L2_TO_L1_MESSAGE_PASSER,
|
|
95
|
-
storageKeys: [],
|
|
96
|
-
blockNumber: game.l2BlockNumber,
|
|
97
|
-
}),
|
|
98
|
-
getProof(clients.l2ProofClient, {
|
|
99
|
-
address: clients.claimEmitter,
|
|
100
|
-
storageKeys: [snapshotSlot],
|
|
101
|
-
blockNumber: game.l2BlockNumber,
|
|
102
|
-
}),
|
|
103
|
-
]);
|
|
104
|
-
if (!proofBlock.hash)
|
|
105
|
-
throw new Error('[jinn-claim-loop] proof L2 block is missing hash');
|
|
106
|
-
const storageProof = snapshotProof.storageProof[0]?.proof;
|
|
107
|
-
if (!storageProof || storageProof.length === 0) {
|
|
108
|
-
throw new Error('[jinn-claim-loop] missing storage proof for claimSnapshotHashes[claimId]');
|
|
109
|
-
}
|
|
110
|
-
const outputRootProof = encodeAbiParameters(OUTPUT_ROOT_PROOF_ABI, [{
|
|
111
|
-
version: OUTPUT_ROOT_VERSION,
|
|
112
|
-
stateRoot: proofBlock.stateRoot,
|
|
113
|
-
messagePasserStorageRoot: messagePasserProof.storageHash,
|
|
114
|
-
latestBlockHash: proofBlock.hash,
|
|
115
|
-
}]);
|
|
116
|
-
const proof = encodeAbiParameters(CANONICAL_PROOF_ABI, [
|
|
117
|
-
toHex(game.index, { size: 32 }),
|
|
118
|
-
outputRootProof,
|
|
119
|
-
snapshotProof.accountProof,
|
|
120
|
-
storageProof,
|
|
121
|
-
snapshot.claimId,
|
|
122
|
-
snapshot.serviceId,
|
|
123
|
-
snapshot.taskCreationWeight,
|
|
124
|
-
snapshot.solutionDeliveryWeight,
|
|
125
|
-
snapshot.verdictDeliveryWeight,
|
|
126
|
-
snapshot.multisig,
|
|
127
|
-
]);
|
|
128
|
-
return {
|
|
129
|
-
proof,
|
|
130
|
-
snapshot,
|
|
131
|
-
game,
|
|
132
|
-
proofBlockNumber: game.l2BlockNumber,
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
export function claimSnapshotStorageSlot(claimId) {
|
|
136
|
-
return keccak256(encodeAbiParameters([{ type: 'uint256' }, { type: 'uint256' }], [claimId, CLAIM_SNAPSHOT_HASHES_SLOT]));
|
|
137
|
-
}
|
|
138
|
-
export function decodeClaimTicketFromReceipt(logs, claimEmitter, logIndex) {
|
|
139
|
-
const expectedEmitter = claimEmitter.toLowerCase();
|
|
140
|
-
const expectedTopic = CLAIM_TICKET_TOPIC0.toLowerCase();
|
|
141
|
-
const log = logs.find((candidate) => candidate.address.toLowerCase() === expectedEmitter
|
|
142
|
-
&& candidate.topics[0]?.toLowerCase() === expectedTopic
|
|
143
|
-
&& (candidate.logIndex ?? 0) === logIndex);
|
|
144
|
-
if (!log) {
|
|
145
|
-
throw new Error(`[jinn-claim-loop] no ClaimTicket log at index ${logIndex}`);
|
|
146
|
-
}
|
|
147
|
-
const decoded = decodeEventLog({
|
|
148
|
-
abi: JINN_CLAIM_EMITTER_ABI,
|
|
149
|
-
eventName: 'ClaimTicket',
|
|
150
|
-
data: log.data,
|
|
151
|
-
topics: log.topics,
|
|
152
|
-
});
|
|
153
|
-
const args = decoded.args;
|
|
154
|
-
return {
|
|
155
|
-
claimId: args.claimId,
|
|
156
|
-
serviceId: args.serviceId,
|
|
157
|
-
taskCreationWeight: args.taskCreationWeight,
|
|
158
|
-
solutionDeliveryWeight: args.solutionDeliveryWeight,
|
|
159
|
-
verdictDeliveryWeight: args.verdictDeliveryWeight,
|
|
160
|
-
multisig: getAddress(args.multisig),
|
|
161
|
-
claimer: getAddress(args.claimer),
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
export async function selectCoveringDisputeGame(clients, l2BlockNumber) {
|
|
165
|
-
const games = await getGames(clients.l1Client, {
|
|
166
|
-
chain: null,
|
|
167
|
-
targetChain: clients.targetChain,
|
|
168
|
-
limit: 100,
|
|
169
|
-
});
|
|
170
|
-
const covering = games
|
|
171
|
-
.filter((game) => game.l2BlockNumber >= l2BlockNumber)
|
|
172
|
-
.sort((a, b) => (a.l2BlockNumber < b.l2BlockNumber ? -1 : 1))[0];
|
|
173
|
-
if (!covering) {
|
|
174
|
-
throw new Error(`[jinn-claim-loop] no OP dispute game covers L2 block ${l2BlockNumber}; retry later`);
|
|
175
|
-
}
|
|
176
|
-
const [factoryGameType, , proxy] = await clients.l1Client.readContract({
|
|
177
|
-
address: clients.disputeGameFactory,
|
|
178
|
-
abi: DISPUTE_GAME_FACTORY_ABI,
|
|
179
|
-
functionName: 'gameAtIndex',
|
|
180
|
-
args: [covering.index],
|
|
181
|
-
});
|
|
182
|
-
if (proxy === '0x0000000000000000000000000000000000000000') {
|
|
183
|
-
throw new Error(`[jinn-claim-loop] dispute game ${covering.index} has zero proxy`);
|
|
184
|
-
}
|
|
185
|
-
const [proxyGameType, rootClaim] = await Promise.all([
|
|
186
|
-
clients.l1Client.readContract({
|
|
187
|
-
address: proxy,
|
|
188
|
-
abi: DISPUTE_GAME_ABI,
|
|
189
|
-
functionName: 'gameType',
|
|
190
|
-
}),
|
|
191
|
-
clients.l1Client.readContract({
|
|
192
|
-
address: proxy,
|
|
193
|
-
abi: DISPUTE_GAME_ABI,
|
|
194
|
-
functionName: 'rootClaim',
|
|
195
|
-
}),
|
|
196
|
-
]);
|
|
197
|
-
return {
|
|
198
|
-
index: covering.index,
|
|
199
|
-
l2BlockNumber: covering.l2BlockNumber,
|
|
200
|
-
proxy,
|
|
201
|
-
factoryGameType,
|
|
202
|
-
proxyGameType,
|
|
203
|
-
rootClaim,
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
export async function assertDisputeGameReady(clients, game) {
|
|
207
|
-
if (game.factoryGameType !== game.proxyGameType) {
|
|
208
|
-
throw new Error('[jinn-claim-loop] dispute game factory/proxy gameType mismatch');
|
|
209
|
-
}
|
|
210
|
-
const [respectedGameType, proofMaturityDelaySeconds, disputeGameFinalityDelaySeconds, status, resolvedAt, wasRespectedGameTypeWhenCreated, latestL1Block,] = await Promise.all([
|
|
211
|
-
clients.l1Client.readContract({
|
|
212
|
-
address: clients.optimismPortal,
|
|
213
|
-
abi: OPTIMISM_PORTAL_ABI,
|
|
214
|
-
functionName: 'respectedGameType',
|
|
215
|
-
}),
|
|
216
|
-
clients.l1Client.readContract({
|
|
217
|
-
address: clients.optimismPortal,
|
|
218
|
-
abi: OPTIMISM_PORTAL_ABI,
|
|
219
|
-
functionName: 'proofMaturityDelaySeconds',
|
|
220
|
-
}),
|
|
221
|
-
clients.l1Client.readContract({
|
|
222
|
-
address: clients.optimismPortal,
|
|
223
|
-
abi: OPTIMISM_PORTAL_ABI,
|
|
224
|
-
functionName: 'disputeGameFinalityDelaySeconds',
|
|
225
|
-
}),
|
|
226
|
-
clients.l1Client.readContract({
|
|
227
|
-
address: game.proxy,
|
|
228
|
-
abi: DISPUTE_GAME_ABI,
|
|
229
|
-
functionName: 'status',
|
|
230
|
-
}),
|
|
231
|
-
clients.l1Client.readContract({
|
|
232
|
-
address: game.proxy,
|
|
233
|
-
abi: DISPUTE_GAME_ABI,
|
|
234
|
-
functionName: 'resolvedAt',
|
|
235
|
-
}),
|
|
236
|
-
clients.l1Client.readContract({
|
|
237
|
-
address: game.proxy,
|
|
238
|
-
abi: DISPUTE_GAME_ABI,
|
|
239
|
-
functionName: 'wasRespectedGameTypeWhenCreated',
|
|
240
|
-
}),
|
|
241
|
-
clients.l1Client.getBlock({ blockTag: 'latest' }),
|
|
242
|
-
]);
|
|
243
|
-
if (!wasRespectedGameTypeWhenCreated && game.proxyGameType !== respectedGameType) {
|
|
244
|
-
throw new Error('[jinn-claim-loop] dispute game was not portal-respected when created');
|
|
245
|
-
}
|
|
246
|
-
if (status !== GAME_STATUS_DEFENDER_WINS) {
|
|
247
|
-
throw new Error('[jinn-claim-loop] dispute game is not resolved DEFENDER_WINS');
|
|
248
|
-
}
|
|
249
|
-
const finalizedAt = BigInt(resolvedAt) +
|
|
250
|
-
maxBigInt(BigInt(proofMaturityDelaySeconds), BigInt(disputeGameFinalityDelaySeconds));
|
|
251
|
-
if (resolvedAt === 0n || latestL1Block.timestamp < finalizedAt) {
|
|
252
|
-
throw new Error('[jinn-claim-loop] dispute game finality airgap has not elapsed');
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
function maxBigInt(a, b) {
|
|
256
|
-
return a > b ? a : b;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Submit `JinnDistributor.claim(proof)` on L1 once a canonical proof has
|
|
260
|
-
* been constructed. Mirrors the mock-mode submission path; idempotent at
|
|
261
|
-
* the contract layer.
|
|
262
|
-
*/
|
|
263
|
-
export async function submitCanonicalClaim(l1Client, l1Wallet, distributor, proof) {
|
|
264
|
-
const account = l1Wallet.account;
|
|
265
|
-
if (!account)
|
|
266
|
-
throw new Error('[jinn-claim-loop] L1 wallet has no account configured');
|
|
267
|
-
const { request } = await l1Client.simulateContract({
|
|
268
|
-
address: distributor,
|
|
269
|
-
abi: JINN_DISTRIBUTOR_ABI,
|
|
270
|
-
functionName: 'claim',
|
|
271
|
-
args: [proof],
|
|
272
|
-
account,
|
|
273
|
-
});
|
|
274
|
-
return l1Wallet.writeContract(request);
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Verifier-only canonical canary. This intentionally uses `eth_call`
|
|
278
|
-
* (`readContract`) against the messenger and does not submit
|
|
279
|
-
* `JinnDistributor.claim`. Burn-in keeps MockMessenger active.
|
|
280
|
-
*/
|
|
281
|
-
export async function verifyCanonicalClaimCanary(l1Client, messenger, proof) {
|
|
282
|
-
const [serviceId, taskCreationWeight, solutionDeliveryWeight, verdictDeliveryWeight, multisig,] = await l1Client.readContract({
|
|
283
|
-
address: messenger,
|
|
284
|
-
abi: CLAIM_MESSENGER_ABI,
|
|
285
|
-
functionName: 'verifyClaim',
|
|
286
|
-
args: [proof],
|
|
287
|
-
});
|
|
288
|
-
return {
|
|
289
|
-
serviceId,
|
|
290
|
-
taskCreationWeight,
|
|
291
|
-
solutionDeliveryWeight,
|
|
292
|
-
verdictDeliveryWeight,
|
|
293
|
-
multisig,
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
//# sourceMappingURL=jinn-claim-loop-canonical.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jinn-claim-loop-canonical.js","sourceRoot":"","sources":["../../src/daemon/jinn-claim-loop-canonical.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,KAAK,GAKN,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AA2DjC,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC/C,kGAAkG;CACnG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACvC,2CAA2C;IAC3C,wCAAwC;IACxC,6CAA6C;IAC7C,6CAA6C;IAC7C,gEAAgE;CACjE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAC1C,oDAAoD;IACpD,6DAA6D;IAC7D,mEAAmE;CACpE,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG;IAC5B;QACE,IAAI,EAAE,OAAO;QACb,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,SAAS,EAAE;YACrD,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7C;KACF;CACO,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1C,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1C,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;IACzC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;IACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IACtC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/C,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,SAAS,EAAE;IACnD,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,EAAE;IAClD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;CAC7B,CAAC;AAEX,MAAM,yBAAyB,GAAG,CAAC,CAAC;AACpC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,mBAAmB,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAW,CAAC;AAC3D,MAAM,uBAAuB,GAAG,4CAAqD,CAAC;AAEtF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA8B,EAC9B,MAA4B;IAE5B,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,CAAC,UAAU,EAAE,kBAAkB,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnE,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,OAAO,EAAE,uBAAuB;YAChC,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,IAAI,CAAC,aAAa;SAChC,CAAC;QACF,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,WAAW,EAAE,CAAC,YAAY,CAAC;YAC3B,WAAW,EAAE,IAAI,CAAC,aAAa;SAChC,CAAC;KACH,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAC1D,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,eAAe,GAAG,mBAAmB,CAAC,qBAAqB,EAAE,CAAC;YAClE,OAAO,EAAE,mBAAmB;YAC5B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,wBAAwB,EAAE,kBAAkB,CAAC,WAAW;YACxD,eAAe,EAAE,UAAU,CAAC,IAAI;SACjC,CAAC,CAAC,CAAC;IAEJ,MAAM,KAAK,GAAG,mBAAmB,CAAC,mBAAmB,EAAE;QACrD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,eAAe;QACf,aAAa,CAAC,YAAY;QAC1B,YAAY;QACZ,QAAQ,CAAC,OAAO;QAChB,QAAQ,CAAC,SAAS;QAClB,QAAQ,CAAC,kBAAkB;QAC3B,QAAQ,CAAC,sBAAsB;QAC/B,QAAQ,CAAC,qBAAqB;QAC9B,QAAQ,CAAC,QAAQ;KAClB,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,gBAAgB,EAAE,IAAI,CAAC,aAAa;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,OAAO,SAAS,CACd,mBAAmB,CACjB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,OAAO,EAAE,0BAA0B,CAAC,CACtC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAAkG,EAClG,YAAqB,EACrB,QAAgB;IAEhB,MAAM,eAAe,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,aAAa,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAClC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe;WAChD,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,aAAa;WACpD,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,QAAQ,CAC1C,CAAC;IACF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,iDAAiD,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC;QAC7B,GAAG,EAAE,sBAAsB;QAC3B,SAAS,EAAE,aAAa;QACxB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAyB;KACtC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAyC,CAAC;IAC/D,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAA8B,EAC9B,aAAqB;IAErB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC7C,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,KAAK;SACnB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;SACrD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,wDAAwD,aAAa,eAAe,CACrF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,EAAE,AAAD,EAAG,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QACrE,OAAO,EAAE,OAAO,CAAC,kBAAkB;QACnC,GAAG,EAAE,wBAAwB;QAC7B,YAAY,EAAE,aAAa;QAC3B,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;KACvB,CAAC,CAAC;IACH,IAAI,KAAK,KAAK,4CAA4C,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,KAAK,iBAAiB,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,UAAU;SACzB,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,WAAW;SAC1B,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,KAAK;QACL,eAAe;QACf,aAAa;QACb,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA8B,EAC9B,IAA4B;IAE5B,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,CACJ,iBAAiB,EACjB,yBAAyB,EACzB,+BAA+B,EAC/B,MAAM,EACN,UAAU,EACV,+BAA+B,EAC/B,aAAa,EACd,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,OAAO,CAAC,cAAc;YAC/B,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,mBAAmB;SAClC,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,OAAO,CAAC,cAAc;YAC/B,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,2BAA2B;SAC1C,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,OAAO,CAAC,cAAc;YAC/B,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,iCAAiC;SAChD,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,QAAQ;SACvB,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,YAAY;SAC3B,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5B,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,iCAAiC;SAChD,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;KAClD,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,IAAI,IAAI,CAAC,aAAa,KAAK,iBAAiB,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,WAAW,GACf,MAAM,CAAC,UAAU,CAAC;QAClB,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACxF,IAAI,UAAU,KAAK,EAAE,IAAI,aAAa,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACrC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAsB,EACtB,QAAsB,EACtB,WAAoB,EACpB,KAAU;IAEV,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAEvF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC;QAClD,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,OAAO;QACrB,IAAI,EAAE,CAAC,KAAK,CAAC;QACb,OAAO;KACR,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAsB,EACtB,SAAkB,EAClB,KAAU;IAQV,MAAM,CACJ,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,QAAQ,EACT,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;QAC9B,OAAO,EAAE,SAAS;QAClB,GAAG,EAAE,mBAAmB;QACxB,YAAY,EAAE,aAAa;QAC3B,IAAI,EAAE,CAAC,KAAK,CAAC;KACd,CAAC,CAAC;IACH,OAAO;QACL,SAAS;QACT,kBAAkB;QAClB,sBAAsB;QACtB,qBAAqB;QACrB,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MockMessenger submission path for the cross-chain JINN claim loop.
|
|
3
|
-
*
|
|
4
|
-
* Used when `jinnMessengerMode === 'mock'` — primarily for testnet burn-in
|
|
5
|
-
* (Phase D / r5z) when canonical OP-Stack finality is impractical and CI.
|
|
6
|
-
* The daemon's wallet must be the MockMessenger's owner during burn-in;
|
|
7
|
-
* `setFixture` is `onlyOwner`.
|
|
8
|
-
*
|
|
9
|
-
* Flow:
|
|
10
|
-
* 1. Read the latest ClaimTicket event from the TaskClaimEmitter on L2.
|
|
11
|
-
* 2. Plant the matching fixture on the L1 MockMessenger via `setFixture`.
|
|
12
|
-
* 3. Submit `JinnDistributor.claim(abi.encode(claimId))`.
|
|
13
|
-
*
|
|
14
|
-
* The MockMessenger encodes the proof as `abi.encode(uint256 claimId)` —
|
|
15
|
-
* the messenger looks up the planted snapshot fixture and returns it. The
|
|
16
|
-
* distributor's per-service accumulator handles replay; resubmitting the
|
|
17
|
-
* same `proof` mints zero on the second call.
|
|
18
|
-
*/
|
|
19
|
-
import { type Address, type Hex, type PublicClient, type WalletClient } from 'viem';
|
|
20
|
-
import { CLAIM_TICKET_TOPIC0 } from '../earning/contracts.js';
|
|
21
|
-
export interface MockClaimSnapshot {
|
|
22
|
-
claimId: bigint;
|
|
23
|
-
serviceId: bigint;
|
|
24
|
-
taskCreationWeight: bigint;
|
|
25
|
-
solutionDeliveryWeight: bigint;
|
|
26
|
-
verdictDeliveryWeight: bigint;
|
|
27
|
-
multisig: Address;
|
|
28
|
-
claimer: Address;
|
|
29
|
-
/** L2 transaction hash of the emitClaim. */
|
|
30
|
-
emitTxHash: Hex;
|
|
31
|
-
/** L2 block number containing emitClaim. */
|
|
32
|
-
emitBlockNumber: bigint;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Read the latest ClaimTicket emitted by `claimEmitter` for the given
|
|
36
|
-
* `serviceId`, optionally bounded to a recent block range. Returns null when
|
|
37
|
-
* no matching event exists.
|
|
38
|
-
*/
|
|
39
|
-
export declare function fetchLatestClaimTicket(l2Client: PublicClient, claimEmitter: Address, serviceId: bigint, options?: {
|
|
40
|
-
fromBlock?: bigint;
|
|
41
|
-
toBlock?: bigint | 'latest';
|
|
42
|
-
}): Promise<MockClaimSnapshot | null>;
|
|
43
|
-
/**
|
|
44
|
-
* Plant a fixture on the L1 MockMessenger that mirrors the L2 ClaimTicket
|
|
45
|
-
* snapshot exactly. The daemon's L1 wallet must be the MockMessenger's
|
|
46
|
-
* owner. Returns the L1 tx hash.
|
|
47
|
-
*/
|
|
48
|
-
export declare function plantMockFixture(l1Client: PublicClient, l1Wallet: WalletClient, messenger: Address, snapshot: MockClaimSnapshot): Promise<Hex>;
|
|
49
|
-
/**
|
|
50
|
-
* Encode the MockMessenger proof: `abi.encode(uint256 claimId)`. The
|
|
51
|
-
* messenger looks up the previously planted fixture by claimId.
|
|
52
|
-
*/
|
|
53
|
-
export declare function encodeMockProof(claimId: bigint): Hex;
|
|
54
|
-
/**
|
|
55
|
-
* Submit `JinnDistributor.claim(proof)` on L1. Returns the L1 tx hash.
|
|
56
|
-
*
|
|
57
|
-
* Idempotent at the contract layer — the distributor's per-service
|
|
58
|
-
* accumulator clamps repeated submissions to zero mint.
|
|
59
|
-
*/
|
|
60
|
-
export declare function submitMockClaim(l1Client: PublicClient, l1Wallet: WalletClient, distributor: Address, claimId: bigint): Promise<Hex>;
|
|
61
|
-
export { CLAIM_TICKET_TOPIC0 };
|