@jinn-network/client 0.1.1 → 0.1.2-canary.66834251
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/CHANGELOG.md +14 -0
- package/CONTRIBUTING.md +123 -0
- package/README.md +213 -37
- package/deployments/deployment-claim-registry-baseSepolia.json +13 -0
- package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +15 -0
- package/dist/adapters/claim-registry/abi.d.ts +127 -0
- package/dist/adapters/claim-registry/abi.js +93 -0
- package/dist/adapters/claim-registry/abi.js.map +1 -0
- package/dist/adapters/claim-registry/client.d.ts +89 -0
- package/dist/adapters/claim-registry/client.js +205 -0
- package/dist/adapters/claim-registry/client.js.map +1 -0
- package/dist/adapters/mech/adapter.d.ts +3 -0
- package/dist/adapters/mech/adapter.js +177 -51
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +14 -0
- package/dist/adapters/mech/contracts.js +111 -7
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/ipfs.d.ts +36 -4
- package/dist/adapters/mech/ipfs.js +119 -13
- package/dist/adapters/mech/ipfs.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +22 -46
- package/dist/adapters/mech/types.js +16 -35
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/api/balance-build.js +3 -3
- package/dist/api/balance-build.js.map +1 -1
- package/dist/api/fleet-build.js +35 -40
- package/dist/api/fleet-build.js.map +1 -1
- package/dist/api/gather-status.d.ts +1 -0
- package/dist/api/gather-status.js +185 -4
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/history-build.d.ts +5 -1
- package/dist/api/history-build.js +51 -26
- package/dist/api/history-build.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +81 -0
- package/dist/api/portfolio-v0-build.js +141 -0
- package/dist/api/portfolio-v0-build.js.map +1 -0
- package/dist/api/portfolio-v0-doctor.d.ts +37 -0
- package/dist/api/portfolio-v0-doctor.js +123 -0
- package/dist/api/portfolio-v0-doctor.js.map +1 -0
- package/dist/api/rewards-build.js +30 -14
- package/dist/api/rewards-build.js.map +1 -1
- package/dist/api/status-build.d.ts +37 -6
- package/dist/api/status-build.js +1 -0
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +2 -0
- package/dist/api/status-rollup-build.js +27 -0
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/bin/jinn-mcp.d.ts +0 -12
- package/dist/bin/jinn-mcp.js +5 -14
- package/dist/bin/jinn-mcp.js.map +1 -1
- package/dist/build-meta.json +1 -1
- package/dist/cli/commands/auth.js +115 -25
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/balance.js +8 -1
- package/dist/cli/commands/balance.js.map +1 -1
- package/dist/cli/commands/bootstrap.js +1 -0
- package/dist/cli/commands/bootstrap.js.map +1 -1
- package/dist/cli/commands/doctor.js +130 -14
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/fleet-scale.js +1 -0
- package/dist/cli/commands/fleet-scale.js.map +1 -1
- package/dist/cli/commands/fleet.js +10 -1
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/commands/fund-requirements.js +2 -0
- package/dist/cli/commands/fund-requirements.js.map +1 -1
- package/dist/cli/commands/history.js +25 -6
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/intents.d.ts +17 -0
- package/dist/cli/commands/intents.js +489 -0
- package/dist/cli/commands/intents.js.map +1 -0
- package/dist/cli/commands/keys-backup.js +13 -11
- package/dist/cli/commands/keys-backup.js.map +1 -1
- package/dist/cli/commands/logs.js +35 -11
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +3 -0
- package/dist/cli/commands/mcp.js +19 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/plugin-install.js +8 -4
- package/dist/cli/commands/plugin-install.js.map +1 -1
- package/dist/cli/commands/quickstart.js +60 -4
- package/dist/cli/commands/quickstart.js.map +1 -1
- package/dist/cli/commands/rewards.js +27 -1
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/status.js +11 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/submit-intent.js +108 -5
- package/dist/cli/commands/submit-intent.js.map +1 -1
- package/dist/cli/commands/version.js +1 -0
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/deployment-digest.js +5 -0
- package/dist/cli/deployment-digest.js.map +1 -1
- package/dist/cli/execution-context.js +1 -0
- package/dist/cli/execution-context.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/intent-registry-access.d.ts +64 -0
- package/dist/cli/intent-registry-access.js +187 -0
- package/dist/cli/intent-registry-access.js.map +1 -0
- package/dist/cli/introspection-context.js +1 -0
- package/dist/cli/introspection-context.js.map +1 -1
- package/dist/cli/password.d.ts +21 -9
- package/dist/cli/password.js +45 -24
- package/dist/cli/password.js.map +1 -1
- package/dist/config.d.ts +110 -8
- package/dist/config.js +41 -12
- package/dist/config.js.map +1 -1
- package/dist/daemon/balance-topup-loop.js +32 -4
- package/dist/daemon/balance-topup-loop.js.map +1 -1
- package/dist/daemon/creator.d.ts +7 -1
- package/dist/daemon/creator.js +51 -3
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +43 -0
- package/dist/daemon/daemon.js +110 -3
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/delivery-watcher.d.ts +3 -1
- package/dist/daemon/delivery-watcher.js +19 -1
- package/dist/daemon/delivery-watcher.js.map +1 -1
- package/dist/daemon/restorer.js +27 -0
- package/dist/daemon/restorer.js.map +1 -1
- package/dist/daemon/reward-claim-loop.js +38 -1
- package/dist/daemon/reward-claim-loop.js.map +1 -1
- package/dist/dashboard/index.html +71 -496
- package/dist/earning/bootstrap.d.ts +2 -1
- package/dist/earning/bootstrap.js +72 -4
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +10 -0
- package/dist/earning/contracts.js +24 -0
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/jinn-rewards.d.ts +9 -0
- package/dist/earning/jinn-rewards.js +7 -0
- package/dist/earning/jinn-rewards.js.map +1 -1
- package/dist/earning/stolas-claim.d.ts +6 -0
- package/dist/earning/stolas-claim.js +7 -0
- package/dist/earning/stolas-claim.js.map +1 -1
- package/dist/intents/prediction-apy-v0-auto.d.ts +11 -0
- package/dist/intents/prediction-apy-v0-auto.js +46 -0
- package/dist/intents/prediction-apy-v0-auto.js.map +1 -0
- package/dist/intents/prediction-apy-v0-template.d.ts +8 -0
- package/dist/intents/prediction-apy-v0-template.js +22 -0
- package/dist/intents/prediction-apy-v0-template.js.map +1 -0
- package/dist/intents/prediction-v0-auto.d.ts +53 -0
- package/dist/intents/prediction-v0-auto.js +84 -0
- package/dist/intents/prediction-v0-auto.js.map +1 -0
- package/dist/intents/prediction-v0-template.d.ts +65 -0
- package/dist/intents/prediction-v0-template.js +125 -0
- package/dist/intents/prediction-v0-template.js.map +1 -0
- package/dist/main.js +154 -1
- package/dist/main.js.map +1 -1
- package/dist/mcp/operator-server.d.ts +1 -1
- package/dist/mcp/operator-server.js +1 -1
- package/dist/observability/emit-event.d.ts +12 -0
- package/dist/observability/emit-event.js +27 -0
- package/dist/observability/emit-event.js.map +1 -0
- package/dist/preflight/claude-auth.d.ts +12 -1
- package/dist/preflight/claude-auth.js +21 -3
- package/dist/preflight/claude-auth.js.map +1 -1
- package/dist/restorer/engine/canonical-json.d.ts +18 -0
- package/dist/restorer/engine/canonical-json.js +59 -0
- package/dist/restorer/engine/canonical-json.js.map +1 -0
- package/dist/restorer/engine/claim.d.ts +69 -0
- package/dist/restorer/engine/claim.js +104 -0
- package/dist/restorer/engine/claim.js.map +1 -0
- package/dist/restorer/engine/delivery.d.ts +52 -0
- package/dist/restorer/engine/delivery.js +63 -0
- package/dist/restorer/engine/delivery.js.map +1 -0
- package/dist/restorer/engine/engine.d.ts +203 -0
- package/dist/restorer/engine/engine.js +754 -0
- package/dist/restorer/engine/engine.js.map +1 -0
- package/dist/restorer/engine/manifest-assembly.d.ts +67 -0
- package/dist/restorer/engine/manifest-assembly.js +79 -0
- package/dist/restorer/engine/manifest-assembly.js.map +1 -0
- package/dist/restorer/engine/packaging.d.ts +87 -0
- package/dist/restorer/engine/packaging.js +350 -0
- package/dist/restorer/engine/packaging.js.map +1 -0
- package/dist/restorer/engine/persistence.d.ts +170 -0
- package/dist/restorer/engine/persistence.js +381 -0
- package/dist/restorer/engine/persistence.js.map +1 -0
- package/dist/restorer/engine/recovery.d.ts +22 -0
- package/dist/restorer/engine/recovery.js +24 -0
- package/dist/restorer/engine/recovery.js.map +1 -0
- package/dist/restorer/engine/registry.d.ts +62 -0
- package/dist/restorer/engine/registry.js +73 -0
- package/dist/restorer/engine/registry.js.map +1 -0
- package/dist/restorer/engine/signing.d.ts +30 -0
- package/dist/restorer/engine/signing.js +39 -0
- package/dist/restorer/engine/signing.js.map +1 -0
- package/dist/restorer/engine/state.d.ts +42 -0
- package/dist/restorer/engine/state.js +87 -0
- package/dist/restorer/engine/state.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.d.ts +64 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js +96 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +101 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +710 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +137 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js +865 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.d.ts +74 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js +74 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +97 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +226 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +43 -0
- package/dist/restorer/impls/claude-mcp-prediction/index.js +230 -0
- package/dist/restorer/impls/claude-mcp-prediction/index.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.d.ts +38 -0
- package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js +135 -0
- package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/prompt.d.ts +8 -0
- package/dist/restorer/impls/claude-mcp-prediction/prompt.js +54 -0
- package/dist/restorer/impls/claude-mcp-prediction/prompt.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.d.ts +36 -0
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js +137 -0
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/types.d.ts +82 -0
- package/dist/restorer/impls/claude-mcp-prediction/types.js +6 -0
- package/dist/restorer/impls/claude-mcp-prediction/types.js.map +1 -0
- package/dist/restorer/impls/evaluation-context.d.ts +16 -0
- package/dist/restorer/impls/evaluation-context.js +18 -0
- package/dist/restorer/impls/evaluation-context.js.map +1 -0
- package/dist/restorer/impls/legacy-claude/index.d.ts +45 -0
- package/dist/restorer/impls/legacy-claude/index.js +71 -0
- package/dist/restorer/impls/legacy-claude/index.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +68 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js +117 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.d.ts +49 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js +91 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.d.ts +78 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js +274 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +23 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js +49 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.d.ts +25 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js +44 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.d.ts +17 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js +43 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +43 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js +431 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/score.d.ts +21 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/score.js +32 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +32 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/types.js +8 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +39 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +101 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.d.ts +2 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js +7 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/types.d.ts +4 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/types.js +2 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/types.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +6 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +11 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +40 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +196 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +7 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +29 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/score.d.ts +9 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js +20 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/types.d.ts +7 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js +2 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +29 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.js +94 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-baseline/strategy.d.ts +8 -0
- package/dist/restorer/impls/prediction-v0-baseline/strategy.js +41 -0
- package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +7 -0
- package/dist/restorer/impls/prediction-v0-baseline/types.js +2 -0
- package/dist/restorer/impls/prediction-v0-baseline/types.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.d.ts +20 -0
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js +66 -0
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.d.ts +9 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js +23 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.d.ts +3 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js +13 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +13 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +111 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.d.ts +5 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js +20 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +33 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.js +222 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/score.d.ts +8 -0
- package/dist/restorer/impls/prediction-v0-evaluator/score.js +15 -0
- package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/types.d.ts +7 -0
- package/dist/restorer/impls/prediction-v0-evaluator/types.js +2 -0
- package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +1 -0
- package/dist/restorer/types.d.ts +184 -0
- package/dist/restorer/types.js +7 -0
- package/dist/restorer/types.js.map +1 -0
- package/dist/store/store.d.ts +64 -1
- package/dist/store/store.js +226 -4
- package/dist/store/store.js.map +1 -1
- package/dist/types/desired-state.d.ts +53 -0
- package/dist/types/desired-state.js +20 -0
- package/dist/types/desired-state.js.map +1 -1
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.js +4 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/portfolio.d.ts +1000 -0
- package/dist/types/portfolio.js +168 -0
- package/dist/types/portfolio.js.map +1 -0
- package/dist/types/prediction-apy.d.ts +930 -0
- package/dist/types/prediction-apy.js +133 -0
- package/dist/types/prediction-apy.js.map +1 -0
- package/dist/types/prediction.d.ts +926 -0
- package/dist/types/prediction.js +141 -0
- package/dist/types/prediction.js.map +1 -0
- package/dist/venues/aave-v3/addresses.d.ts +6 -0
- package/dist/venues/aave-v3/addresses.js +19 -0
- package/dist/venues/aave-v3/addresses.js.map +1 -0
- package/dist/venues/aave-v3/client.d.ts +85 -0
- package/dist/venues/aave-v3/client.js +106 -0
- package/dist/venues/aave-v3/client.js.map +1 -0
- package/dist/venues/chainlink/client.d.ts +99 -0
- package/dist/venues/chainlink/client.js +130 -0
- package/dist/venues/chainlink/client.js.map +1 -0
- package/dist/venues/chainlink/feeds.d.ts +8 -0
- package/dist/venues/chainlink/feeds.js +9 -0
- package/dist/venues/chainlink/feeds.js.map +1 -0
- package/dist/venues/hyperliquid/account-value.d.ts +30 -0
- package/dist/venues/hyperliquid/account-value.js +30 -0
- package/dist/venues/hyperliquid/account-value.js.map +1 -0
- package/dist/venues/hyperliquid/client.d.ts +63 -0
- package/dist/venues/hyperliquid/client.js +135 -0
- package/dist/venues/hyperliquid/client.js.map +1 -0
- package/dist/venues/hyperliquid/grid.d.ts +36 -0
- package/dist/venues/hyperliquid/grid.js +61 -0
- package/dist/venues/hyperliquid/grid.js.map +1 -0
- package/dist/venues/hyperliquid/types.d.ts +81 -0
- package/dist/venues/hyperliquid/types.js +8 -0
- package/dist/venues/hyperliquid/types.js.map +1 -0
- package/dist/withdraw/run-withdraw-plan.js +2 -0
- package/dist/withdraw/run-withdraw-plan.js.map +1 -1
- package/docker-compose.yml +44 -0
- package/package.json +13 -1
- package/skills/jinn-operator/SKILL.md +85 -0
|
@@ -2,11 +2,12 @@ import { base, baseSepolia } from 'viem/chains';
|
|
|
2
2
|
import { PermanentError } from '../../types/index.js';
|
|
3
3
|
import { createClients } from './safe.js';
|
|
4
4
|
import { buildDesiredStatePayload, buildResultPayload, uploadToIpfs, cidToDigestHex, fetchFromIpfs, parseDesiredStateFromPayload, } from './ipfs.js';
|
|
5
|
-
import { submitRestorationJob, submitEvaluationJob, claimDelivery, getMechDeliveryRate, getTimeoutBounds, decodeMarketplaceRequestLogs, decodeDeliverLogs, callDeliverToMarketplace, scanRestorationJobs, scanEvaluationJobs, } from './contracts.js';
|
|
5
|
+
import { submitRestorationJob, submitEvaluationJob, claimDelivery, getMechDeliveryRate, getTimeoutBounds, decodeMarketplaceRequestLogs, decodeDeliverLogs, callDeliverToMarketplace, scanRestorationJobs, scanEvaluationJobs, scanLatestRequestDataByRid, scanLatestDeliveryDataByRid, findLatestDeliveryDataHexForRequest, } from './contracts.js';
|
|
6
6
|
import { MECH_MARKETPLACE_ABI } from './types.js';
|
|
7
7
|
import { AcceptAllPolicy } from './claim-policy.js';
|
|
8
8
|
import { withRecoverableRetry } from '../../tx-retry.js';
|
|
9
9
|
import { computeEvidenceSimHash } from '../../earning/evidence-simhash.js';
|
|
10
|
+
import { RESTORATION_INTENT_CID_CONTEXT_KEY } from '../../restorer/impls/evaluation-context.js';
|
|
10
11
|
export class MechAdapter {
|
|
11
12
|
name = 'mech';
|
|
12
13
|
publicClient;
|
|
@@ -20,6 +21,11 @@ export class MechAdapter {
|
|
|
20
21
|
// Restoration requests where claimDelivery succeeded but evaluation creation failed.
|
|
21
22
|
// Swept on each poll cycle so they don't require a new Deliver event.
|
|
22
23
|
claimedButNotEvaluated = new Set();
|
|
24
|
+
// Restoration result content cached across evaluation-job retries so a transient
|
|
25
|
+
// Safe/router failure does not silently strip evaluator context on the next poll.
|
|
26
|
+
pendingEvaluationResults = new Map();
|
|
27
|
+
// RIDs with no delivery found in backfill window; avoids repeated 500k-block rescans.
|
|
28
|
+
backfillMissRids = new Set();
|
|
23
29
|
// Original desired states keyed by request ID (restoration and evaluation)
|
|
24
30
|
// so we can yield accurate desiredState in DeliveredResult
|
|
25
31
|
originalStates = new Map();
|
|
@@ -104,6 +110,35 @@ export class MechAdapter {
|
|
|
104
110
|
}
|
|
105
111
|
// Set delivery block cursor to scan from recovery point
|
|
106
112
|
this.deliveryBlockCursor = fromBlock;
|
|
113
|
+
const latestRequestDataByRid = await scanLatestRequestDataByRid(this.publicClient, this.config.mechMarketplaceAddress, fromBlock, currentBlock);
|
|
114
|
+
const latestDeliveryDataByRid = await scanLatestDeliveryDataByRid(this.publicClient, this.config.mechContractAddress, fromBlock, currentBlock);
|
|
115
|
+
for (const { requestId } of restorations) {
|
|
116
|
+
const pe = this.pendingEvaluations.get(requestId);
|
|
117
|
+
if (!pe)
|
|
118
|
+
continue;
|
|
119
|
+
const requestDataHex = latestRequestDataByRid.get(requestId.toLowerCase());
|
|
120
|
+
if (requestDataHex) {
|
|
121
|
+
const d = String(requestDataHex);
|
|
122
|
+
const digest = d.startsWith('0x') ? d.slice(2) : d;
|
|
123
|
+
this.pendingEvaluations.set(requestId, {
|
|
124
|
+
...pe,
|
|
125
|
+
context: { ...pe.context, [RESTORATION_INTENT_CID_CONTEXT_KEY]: `f01551220${digest}` },
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
const deliveryDataHex = latestDeliveryDataByRid.get(requestId.toLowerCase());
|
|
129
|
+
if (deliveryDataHex) {
|
|
130
|
+
try {
|
|
131
|
+
const d = String(deliveryDataHex);
|
|
132
|
+
const dig = d.startsWith('0x') ? d.slice(2) : d;
|
|
133
|
+
const payload = (await fetchFromIpfs(this.config.ipfsGatewayUrl, `f01551220${dig}`));
|
|
134
|
+
this.pendingEvaluationResults.set(requestId, payload.data ?? JSON.stringify(payload));
|
|
135
|
+
this.backfillMissRids.delete(requestId);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
console.error(`[mech] recovery: could not load restoration result IPFS for ${requestId}:`, err);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
107
142
|
const recovered = this.pendingEvaluations.size + this.pendingEvaluationClaims.size + this.claimedButNotEvaluated.size;
|
|
108
143
|
if (recovered > 0) {
|
|
109
144
|
console.error(`[mech] Recovered: ${this.pendingEvaluations.size} pending evaluations, ${this.pendingEvaluationClaims.size} pending eval claims, ${this.claimedButNotEvaluated.size} claimed but not evaluated`);
|
|
@@ -119,6 +154,8 @@ export class MechAdapter {
|
|
|
119
154
|
const restorationPayload = buildDesiredStatePayload(restorationState);
|
|
120
155
|
const restorationCid = await uploadToIpfs(this.config.ipfsRegistryUrl, restorationPayload);
|
|
121
156
|
const restorationDataHex = cidToDigestHex(restorationCid);
|
|
157
|
+
const digestNo0x = restorationDataHex.startsWith('0x') ? restorationDataHex.slice(2) : restorationDataHex;
|
|
158
|
+
const restorationIntentCid = `f01551220${digestNo0x}`;
|
|
122
159
|
const deliveryRate = await getMechDeliveryRate(this.publicClient, this.config.mechContractAddress);
|
|
123
160
|
const { max: maxTimeout } = await getTimeoutBounds(this.publicClient, this.config.mechMarketplaceAddress);
|
|
124
161
|
const restorationRequestIds = await submitRestorationJob(this.publicClient, this.walletClient, this.config.safeAddress, this.config.routerAddress, this.config.mechContractAddress, restorationDataHex, deliveryRate, maxTimeout);
|
|
@@ -126,9 +163,15 @@ export class MechAdapter {
|
|
|
126
163
|
throw new PermanentError('No request IDs returned from router');
|
|
127
164
|
}
|
|
128
165
|
const restorationRequestId = restorationRequestIds[0];
|
|
129
|
-
// Store for evaluation creation after delivery is claimed
|
|
130
|
-
|
|
131
|
-
|
|
166
|
+
// Store for evaluation creation after delivery is claimed. The evaluation
|
|
167
|
+
// job’s IPFS CID is different from the restoration intended-state CID; evaluators
|
|
168
|
+
// need the latter to verify submission.intent.cid (see context.restorationIntentCid).
|
|
169
|
+
const stateForEval = {
|
|
170
|
+
...state,
|
|
171
|
+
context: { ...(state.context ?? {}), [RESTORATION_INTENT_CID_CONTEXT_KEY]: restorationIntentCid },
|
|
172
|
+
};
|
|
173
|
+
this.pendingEvaluations.set(restorationRequestId, stateForEval);
|
|
174
|
+
this.originalStates.set(restorationRequestId, { ...stateForEval, type: 'restoration' });
|
|
132
175
|
return restorationRequestId;
|
|
133
176
|
}
|
|
134
177
|
async *watchForRequests() {
|
|
@@ -143,15 +186,27 @@ export class MechAdapter {
|
|
|
143
186
|
});
|
|
144
187
|
this.requestBlockCursor = currentBlock;
|
|
145
188
|
const decoded = decodeMarketplaceRequestLogs(logs);
|
|
146
|
-
for (const { requestId, requestDataHex, priorityMech } of decoded) {
|
|
189
|
+
for (const { requestId, requestDataHex, priorityMech, transactionHash, blockNumber } of decoded) {
|
|
147
190
|
if (!this.claimPolicy.shouldAccept({ requestId, requestDataHex, priorityMech })) {
|
|
148
191
|
continue;
|
|
149
192
|
}
|
|
150
193
|
try {
|
|
151
194
|
const digest = requestDataHex.startsWith('0x') ? requestDataHex.slice(2) : requestDataHex;
|
|
152
|
-
|
|
195
|
+
// CIDv1 hex with raw codec (0x55) + sha2-256 (0x12) + 32-byte length (0x20).
|
|
196
|
+
// The Autonolas registry returns raw-codec CIDs when uploading files with
|
|
197
|
+
// cid-version=1 (Kubo default for files). This is confirmed by the existing
|
|
198
|
+
// IPFS_GATEWAY_PREFIX constant (f01551220) which has worked in production.
|
|
199
|
+
// If the gateway ever switches to dag-pb (0x70) the prefix would be f01701220.
|
|
200
|
+
const intentCid = `f01551220${digest}`;
|
|
201
|
+
const payload = await fetchFromIpfs(this.config.ipfsGatewayUrl, intentCid);
|
|
153
202
|
const desiredState = parseDesiredStateFromPayload(payload);
|
|
154
|
-
yield {
|
|
203
|
+
yield {
|
|
204
|
+
requestId,
|
|
205
|
+
desiredState,
|
|
206
|
+
intentCid,
|
|
207
|
+
onchainCreationTx: transactionHash,
|
|
208
|
+
onchainCreationBlock: blockNumber,
|
|
209
|
+
};
|
|
155
210
|
}
|
|
156
211
|
catch (err) {
|
|
157
212
|
console.error(`[mech] Failed to parse request ${requestId}:`, err);
|
|
@@ -181,10 +236,6 @@ export class MechAdapter {
|
|
|
181
236
|
async *watchForDeliveries() {
|
|
182
237
|
while (!this.stopped) {
|
|
183
238
|
try {
|
|
184
|
-
// Retry evaluation creation for claimed restorations that failed previously
|
|
185
|
-
for (const rid of [...this.claimedButNotEvaluated]) {
|
|
186
|
-
await this.tryCreateEvaluationJob(rid);
|
|
187
|
-
}
|
|
188
239
|
const currentBlock = await this.publicClient.getBlockNumber();
|
|
189
240
|
if (currentBlock > this.deliveryBlockCursor) {
|
|
190
241
|
const logs = await this.publicClient.getLogs({
|
|
@@ -195,61 +246,83 @@ export class MechAdapter {
|
|
|
195
246
|
this.deliveryBlockCursor = currentBlock;
|
|
196
247
|
const decoded = decodeDeliverLogs(logs);
|
|
197
248
|
for (const { requestId, deliveryDataHex, mechAddress } of decoded) {
|
|
198
|
-
//
|
|
199
|
-
|
|
200
|
-
|
|
249
|
+
// Two concerns, independent:
|
|
250
|
+
// (a) Did this Safe DELIVER this? → claim it (counter credit goes to msg.sender)
|
|
251
|
+
// The Deliver event's mechAddress is mechServiceMultisig (the Safe that owns
|
|
252
|
+
// the mech), so we compare against this.config.safeAddress.
|
|
253
|
+
// (b) Did this Safe CREATE the underlying request? → act on the delivery
|
|
254
|
+
// (trigger eval creation for restoration deliveries; clean up for eval deliveries)
|
|
255
|
+
const iDelivered = mechAddress.toLowerCase() === this.config.safeAddress.toLowerCase();
|
|
256
|
+
const iCreatedRestoration = this.pendingEvaluations.has(requestId);
|
|
257
|
+
const iCreatedEvaluation = this.pendingEvaluationClaims.has(requestId);
|
|
258
|
+
if (!iDelivered && !iCreatedRestoration && !iCreatedEvaluation)
|
|
201
259
|
continue;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
260
|
+
// (a) Claim delivery on the router so `restorationDeliveryClaimed[requestId]` is set
|
|
261
|
+
// (required before createEvaluationJob can run).
|
|
262
|
+
// - Same-operator: we delivered (iDelivered) → our Safe claims and gets counter credit.
|
|
263
|
+
// - Cross-operator: we created the request (iCreatedRestoration) but another mech
|
|
264
|
+
// delivered (iDelivered is false) → the creator Safe must still call claimDelivery
|
|
265
|
+
// so the router flips `restorationDeliveryClaimed` for this requestId. Otherwise
|
|
266
|
+
// tryCreateEvaluationJob never unblocks. See JinnRouter.claimDelivery in contracts.
|
|
267
|
+
const shouldClaimDelivery = iDelivered || (iCreatedRestoration && !iDelivered);
|
|
268
|
+
if (shouldClaimDelivery) {
|
|
269
|
+
try {
|
|
270
|
+
const variant = this.config.routerClaimDeliveryVariant;
|
|
271
|
+
let evidenceHash;
|
|
272
|
+
if (variant === 'v2') {
|
|
273
|
+
try {
|
|
274
|
+
const checkpoint = {
|
|
275
|
+
version: 1,
|
|
276
|
+
desiredStateHash: requestId,
|
|
277
|
+
toolCalls: [],
|
|
278
|
+
externalInteractions: [],
|
|
279
|
+
outcome: 'success',
|
|
280
|
+
};
|
|
281
|
+
evidenceHash = computeEvidenceSimHash(checkpoint);
|
|
282
|
+
}
|
|
283
|
+
catch (err) {
|
|
284
|
+
console.error(`[mech] Failed to compute evidence SimHash for ${requestId}:`, err);
|
|
285
|
+
}
|
|
218
286
|
}
|
|
287
|
+
await claimDelivery(this.publicClient, this.walletClient, this.config.safeAddress, this.config.routerAddress, requestId, { variant, evidenceHash });
|
|
219
288
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
289
|
+
catch (err) {
|
|
290
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
291
|
+
if (message.includes('RequestNotFound')) {
|
|
292
|
+
console.error(`[mech] claimDelivery skipped (not a router request): ${requestId}`);
|
|
293
|
+
// fall through — creator actions below don't depend on our claim specifically
|
|
294
|
+
}
|
|
295
|
+
else if (/already.*claimed|alreadyClaimed/i.test(message)) {
|
|
296
|
+
// Idempotent: someone else raced us, fine.
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
console.error(`[mech] claimDelivery failed for ${requestId}:`, err);
|
|
300
|
+
// Don't continue — may retry next poll via unchanged tracking
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
230
303
|
}
|
|
231
|
-
console.error(`[mech] claimDelivery failed for ${requestId}:`, err);
|
|
232
|
-
// Don't remove from pending — will retry next poll
|
|
233
|
-
continue;
|
|
234
304
|
}
|
|
235
|
-
// If
|
|
236
|
-
if
|
|
305
|
+
// (b) If I created the restoration, post the eval job once the claim is on-chain.
|
|
306
|
+
// The deliverer (someone else, or us if we also delivered) must have claimed first.
|
|
307
|
+
// tryCreateEvaluationJob calls verifyRestorationClaimed() which polls for the claim.
|
|
308
|
+
if (iCreatedRestoration) {
|
|
237
309
|
let restorationResultData;
|
|
238
310
|
try {
|
|
239
311
|
const digest = deliveryDataHex.startsWith('0x') ? deliveryDataHex.slice(2) : deliveryDataHex;
|
|
240
312
|
const payload = await fetchFromIpfs(this.config.ipfsGatewayUrl, `f01551220${digest}`);
|
|
241
313
|
restorationResultData = payload.data ?? JSON.stringify(payload);
|
|
314
|
+
this.backfillMissRids.delete(requestId);
|
|
242
315
|
}
|
|
243
316
|
catch (err) {
|
|
244
317
|
console.error(`[mech] Failed to fetch restoration result for evaluation: ${requestId}`, err);
|
|
245
318
|
}
|
|
246
319
|
await this.tryCreateEvaluationJob(requestId, restorationResultData);
|
|
247
320
|
}
|
|
248
|
-
// If
|
|
249
|
-
if (
|
|
321
|
+
// (c) If I created the evaluation, clean up tracking once delivered.
|
|
322
|
+
if (iCreatedEvaluation) {
|
|
250
323
|
this.pendingEvaluationClaims.delete(requestId);
|
|
251
324
|
}
|
|
252
|
-
//
|
|
325
|
+
// (d) Yield the delivery result.
|
|
253
326
|
try {
|
|
254
327
|
const deliveryDigest = deliveryDataHex.startsWith('0x') ? deliveryDataHex.slice(2) : deliveryDataHex;
|
|
255
328
|
const resultPayload = await fetchFromIpfs(this.config.ipfsGatewayUrl, `f01551220${deliveryDigest}`);
|
|
@@ -276,6 +349,12 @@ export class MechAdapter {
|
|
|
276
349
|
}
|
|
277
350
|
}
|
|
278
351
|
}
|
|
352
|
+
// After new Deliver events are processed (and `pendingEvaluationResults` may be warm),
|
|
353
|
+
// retry evaluation creation. Doing this *before* deliver processing can upload an
|
|
354
|
+
// evaluation desired state without `restorationResult` in context.
|
|
355
|
+
for (const rid of [...this.claimedButNotEvaluated]) {
|
|
356
|
+
await this.tryCreateEvaluationJob(rid);
|
|
357
|
+
}
|
|
279
358
|
}
|
|
280
359
|
catch (err) {
|
|
281
360
|
console.error('[mech] Error polling for deliveries:', err);
|
|
@@ -287,10 +366,54 @@ export class MechAdapter {
|
|
|
287
366
|
await new Promise(r => setTimeout(r, this.config.pollIntervalMs));
|
|
288
367
|
}
|
|
289
368
|
}
|
|
369
|
+
async backfillRestorationResultFromChain(requestId) {
|
|
370
|
+
if (this.pendingEvaluationResults.has(requestId)) {
|
|
371
|
+
return this.pendingEvaluationResults.get(requestId);
|
|
372
|
+
}
|
|
373
|
+
if (this.backfillMissRids.has(requestId)) {
|
|
374
|
+
return undefined;
|
|
375
|
+
}
|
|
376
|
+
const currentBlock = await this.publicClient.getBlockNumber();
|
|
377
|
+
const lookbackBlocks = this.config.mechDeliverBackfillLookbackBlocks ?? 500000n;
|
|
378
|
+
const from = currentBlock > lookbackBlocks
|
|
379
|
+
? currentBlock - lookbackBlocks
|
|
380
|
+
: 1n;
|
|
381
|
+
const dhex = await findLatestDeliveryDataHexForRequest(this.publicClient, this.config.mechContractAddress, requestId, from, currentBlock);
|
|
382
|
+
if (!dhex) {
|
|
383
|
+
this.backfillMissRids.add(requestId);
|
|
384
|
+
return undefined;
|
|
385
|
+
}
|
|
386
|
+
try {
|
|
387
|
+
const d = String(dhex);
|
|
388
|
+
const dig = d.startsWith('0x') ? d.slice(2) : d;
|
|
389
|
+
const payload = (await fetchFromIpfs(this.config.ipfsGatewayUrl, `f01551220${dig}`));
|
|
390
|
+
const data = payload.data ?? JSON.stringify(payload);
|
|
391
|
+
this.pendingEvaluationResults.set(requestId, data);
|
|
392
|
+
this.backfillMissRids.delete(requestId);
|
|
393
|
+
return data;
|
|
394
|
+
}
|
|
395
|
+
catch (err) {
|
|
396
|
+
console.error(`[mech] backfill: failed to load restoration result for ${requestId}:`, err);
|
|
397
|
+
return undefined;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
290
400
|
async tryCreateEvaluationJob(requestId, restorationResultData) {
|
|
291
401
|
if (!this.pendingEvaluations.has(requestId))
|
|
292
402
|
return;
|
|
293
403
|
const originalState = this.pendingEvaluations.get(requestId);
|
|
404
|
+
if (restorationResultData) {
|
|
405
|
+
this.pendingEvaluationResults.set(requestId, restorationResultData);
|
|
406
|
+
this.backfillMissRids.delete(requestId);
|
|
407
|
+
}
|
|
408
|
+
let cachedRestorationResultData = restorationResultData ?? this.pendingEvaluationResults.get(requestId);
|
|
409
|
+
if (cachedRestorationResultData == null) {
|
|
410
|
+
cachedRestorationResultData = await this.backfillRestorationResultFromChain(requestId);
|
|
411
|
+
}
|
|
412
|
+
if (cachedRestorationResultData == null) {
|
|
413
|
+
this.claimedButNotEvaluated.add(requestId);
|
|
414
|
+
console.error(`[mech] no restoration result yet for ${requestId} (evaluation job and IPFS upload deferred until Deliver or backfill)`);
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
294
417
|
try {
|
|
295
418
|
const evaluationState = {
|
|
296
419
|
...originalState,
|
|
@@ -298,7 +421,7 @@ export class MechAdapter {
|
|
|
298
421
|
restorationRequestId: requestId,
|
|
299
422
|
context: {
|
|
300
423
|
...originalState.context,
|
|
301
|
-
|
|
424
|
+
restorationResult: cachedRestorationResultData,
|
|
302
425
|
},
|
|
303
426
|
};
|
|
304
427
|
const evaluationPayload = buildDesiredStatePayload(evaluationState);
|
|
@@ -328,6 +451,7 @@ export class MechAdapter {
|
|
|
328
451
|
// Success — clean up both tracking sets
|
|
329
452
|
this.pendingEvaluations.delete(requestId);
|
|
330
453
|
this.claimedButNotEvaluated.delete(requestId);
|
|
454
|
+
this.pendingEvaluationResults.delete(requestId);
|
|
331
455
|
}
|
|
332
456
|
catch (err) {
|
|
333
457
|
console.error(`[mech] Failed to create evaluation job for ${requestId}:`, err);
|
|
@@ -336,8 +460,10 @@ export class MechAdapter {
|
|
|
336
460
|
}
|
|
337
461
|
}
|
|
338
462
|
async verifyRestorationClaimed(requestId) {
|
|
339
|
-
|
|
340
|
-
|
|
463
|
+
// RPC / fork can lag right after claimDelivery; give more room than 5×2s so
|
|
464
|
+
// tryCreateEvaluationJob succeeds on the first watchForDeliveries pass when possible.
|
|
465
|
+
const MAX_POLLS = 12;
|
|
466
|
+
const POLL_DELAY_MS = 1_500;
|
|
341
467
|
const abi = [{
|
|
342
468
|
type: 'function',
|
|
343
469
|
name: 'restorationDeliveryClaimed',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/mech/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAShD,OAAO,EAAkB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,aAAa,EAEb,4BAA4B,GAC7B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,4BAA4B,EAC5B,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAA0B,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAoB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAA6B,MAAM,mCAAmC,CAAC;AAEtG,MAAM,OAAO,WAAW;IACb,IAAI,GAAG,MAAM,CAAC;IAEf,YAAY,CAAgB;IAC5B,YAAY,CAAgB;IAC5B,MAAM,CAAoB;IAC1B,OAAO,GAAG,KAAK,CAAC;IAChB,kBAAkB,GAAG,EAAE,CAAC;IACxB,mBAAmB,GAAG,EAAE,CAAC;IACzB,kBAAkB,GAAG,IAAI,GAAG,EAAuD,CAAC;IACpF,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IACpD,qFAAqF;IACrF,sEAAsE;IAC9D,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;IACnD,2EAA2E;IAC3E,2DAA2D;IACnD,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;IACjD,KAAK,CAAS;IACd,WAAW,CAAc;IAEjC,YAAY,MAAyB,EAAE,KAAa;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,eAAe,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,MAAM,OAAO,GAAG,aAAa,CAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAC9B,KAAK,CACN,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAEzC,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAC5C,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,EAC9C;YACE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;gBAChC,OAAO,CAAC,KAAK,CAAC,+BAA+B,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;SACF,CACF,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;QACtC,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;QAEvC,6CAA6C;QAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,YAAoB;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,YAAY,CAAC;QACtE,IAAI,SAAS,IAAI,YAAY;YAAE,OAAO;QAEtC,OAAO,CAAC,KAAK,CAAC,8CAA8C,SAAS,OAAO,YAAY,EAAE,CAAC,CAAC;QAE5F,gDAAgD;QAChD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC5C,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,SAAS,EACT,YAAY,CACb,CAAC;QAEF,+CAA+C;QAC/C,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,SAAS,EACT,YAAY,CACb,CAAC;QAEF,iEAAiE;QACjE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAE5E,2CAA2C;QAC3C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,qEAAqE;gBACrE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC;gBACxF,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;wBACpD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB;wBAC3C,GAAG,EAAE,oBAAoB;wBACzB,YAAY,EAAE,mBAAmB;wBACjC,IAAI,EAAE,CAAC,OAAO,CAAC,SAA0B,CAAC;qBAC3C,CAAqD,CAAC;oBACvD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,4CAA4C,EAAE,CAAC;wBACjE,0CAA0C;wBAC1C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACtD,CAAC;oBACD,kDAAkD;gBACpD,CAAC;gBACD,SAAS;YACX,CAAC;YAED,gDAAgD;YAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;gBAChD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB;gBAC3C,GAAG,EAAE,oBAAoB;gBACzB,YAAY,EAAE,mBAAmB;gBACjC,IAAI,EAAE,CAAC,WAAW,CAAC,SAA0B,CAAC;aAC/C,CAAqD,CAAC;YAEvD,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,YAAY,KAAK,4CAA4C,EAAE,CAAC;gBAClE,0DAA0D;gBAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE;oBACjD,EAAE,EAAE,WAAW,CAAC,SAAS;oBACzB,WAAW,EAAE,EAAE,EAAE,yFAAyF;iBAC3G,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,kEAAkE;gBAClE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE;oBACjD,EAAE,EAAE,WAAW,CAAC,SAAS;oBACzB,WAAW,EAAE,EAAE;iBAChB,CAAC,CAAC;gBACH,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;QACtH,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,kBAAkB,CAAC,IAAI,yBAAyB,IAAI,CAAC,uBAAuB,CAAC,IAAI,yBAAyB,IAAI,CAAC,sBAAsB,CAAC,IAAI,4BAA4B,CAAC,CAAC;QAClN,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAmB;QACxC,MAAM,gBAAgB,GAAiB;YACrC,GAAG,KAAK;YACR,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,aAAa;YACjC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC;QACF,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAC3F,MAAM,kBAAkB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACnG,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAE1G,MAAM,qBAAqB,GAAG,MAAM,oBAAoB,CACtD,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,kBAAkB,EAClB,YAAY,EACZ,UAAU,CACX,CAAC;QAEF,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,cAAc,CAAC,qCAAqC,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAEtD,0DAA0D;QAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAEjF,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,CAAC,gBAAgB;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;gBAC9D,IAAI,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;wBAC3C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB;wBAC3C,SAAS,EAAE,IAAI,CAAC,kBAAkB,GAAG,EAAE;wBACvC,OAAO,EAAE,YAAY;qBACtB,CAAC,CAAC;oBACH,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;oBAEvC,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;oBACnD,KAAK,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,OAAO,EAAE,CAAC;wBAClE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;4BAChF,SAAS;wBACX,CAAC;wBACD,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;4BAC1F,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,MAAM,EAAE,CAA4B,CAAC;4BACjH,MAAM,YAAY,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;4BAE3D,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;wBACpC,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;wBACrE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAoB;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,cAAc,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAoB,EAAE,MAAyB;QAChE,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAE3C,6EAA6E;QAC7E,MAAM,wBAAwB,CAC5B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,CAAC,SAAgB,CAAC,EAClB,CAAC,cAAc,CAAC,CACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,kBAAkB;QACvB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,4EAA4E;gBAC5E,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;oBACnD,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;gBACzC,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;gBAC9D,IAAI,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;wBAC3C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;wBACxC,SAAS,EAAE,IAAI,CAAC,mBAAmB,GAAG,EAAE;wBACxC,OAAO,EAAE,YAAY;qBACtB,CAAC,CAAC;oBACH,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;oBAExC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACxC,KAAK,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC;wBAClE,yDAAyD;wBACzD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBACrG,IAAI,CAAC,MAAM;4BAAE,SAAS;wBAEtB,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC;4BACvD,IAAI,YAAuC,CAAC;4BAC5C,IAAI,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gCAC/D,IAAI,CAAC;oCACH,MAAM,UAAU,GAAyB;wCACvC,OAAO,EAAE,CAAC;wCACV,gBAAgB,EAAE,SAAS;wCAC3B,SAAS,EAAE,EAAE;wCACb,oBAAoB,EAAE,EAAE;wCACxB,OAAO,EAAE,SAAS;qCACnB,CAAC;oCACF,YAAY,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;gCACpD,CAAC;gCAAC,OAAO,GAAG,EAAE,CAAC;oCACb,OAAO,CAAC,KAAK,CAAC,iDAAiD,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;gCACpF,CAAC;4BACH,CAAC;4BAED,MAAM,aAAa,CACjB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,SAA0B,EAC1B;gCACE,OAAO;gCACP,YAAY;6BACb,CACF,CAAC;wBACJ,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4BACjE,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gCACxC,OAAO,CAAC,KAAK,CAAC,wDAAwD,SAAS,EAAE,CAAC,CAAC;gCACnF,SAAS;4BACX,CAAC;4BACD,OAAO,CAAC,KAAK,CAAC,mCAAmC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;4BACpE,mDAAmD;4BACnD,SAAS;wBACX,CAAC;wBAED,+EAA+E;wBAC/E,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC3C,IAAI,qBAAyC,CAAC;4BAC9C,IAAI,CAAC;gCACH,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;gCAC7F,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,MAAM,EAAE,CAA4B,CAAC;gCACjH,qBAAqB,GAAI,OAAO,CAAC,IAAe,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;4BAC9E,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,OAAO,CAAC,KAAK,CAAC,6DAA6D,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;4BAC/F,CAAC;4BACD,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;wBACtE,CAAC;wBAED,8DAA8D;wBAC9D,IAAI,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;4BAChD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBACjD,CAAC;wBAED,sCAAsC;wBACtC,IAAI,CAAC;4BACH,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;4BACrG,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,cAAc,EAAE,CAA4B,CAAC;4BAE/H,MAAM,iBAAiB,GAAsB;gCAC3C,IAAI,EAAG,aAAa,CAAC,IAAe,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;gCACrE,SAAS,EAAE,aAAa,CAAC,SAAiC;6BAC3D,CAAC;4BAEF,0DAA0D;4BAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI;gCACzD,EAAE,EAAE,SAAS;gCACb,WAAW,EAAE,EAAE;6BAChB,CAAC;4BAEF,MAAM;gCACJ,SAAS;gCACT,YAAY;gCACZ,MAAM,EAAE,iBAAiB;gCACzB,mBAAmB,EAAE,WAAW;6BACjC,CAAC;4BAEF,0BAA0B;4BAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBACxC,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;wBACtE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC;YAED,0CAA0C;YAC1C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,GAAG,EAAE,EAAE,CAAC;gBAChD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,qBAA8B;QACpF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,eAAe,GAAiB;gBACpC,GAAG,aAAa;gBAChB,IAAI,EAAE,YAAY;gBAClB,oBAAoB,EAAE,SAAS;gBAC/B,OAAO,EAAE;oBACP,GAAG,aAAa,CAAC,OAAO;oBACxB,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/E;aACF,CAAC;YACF,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;YACzF,MAAM,iBAAiB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;YAExD,kEAAkE;YAClE,gEAAgE;YAChE,gEAAgE;YAChE,uDAAuD;YACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAA0B,CAAC,CAAC;YAClF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,yDAAyD,SAAS,eAAe,CAAC,CAAC;gBACjG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACnG,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAE1G,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAC9C,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,SAA0B,EAC1B,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,iBAAiB,EACjB,YAAY,EACZ,UAAU,CACX,CAAC;YAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpD,sEAAsE;gBACtE,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YAED,wCAAwC;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/E,2EAA2E;YAC3E,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,SAAwB;QAC7D,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,MAAM,aAAa,GAAG,KAAK,CAAC;QAC5B,MAAM,GAAG,GAAG,CAAC;gBACX,IAAI,EAAE,UAAmB;gBACzB,IAAI,EAAE,4BAAqC;gBAC3C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAkB,EAAE,CAAC;gBACzD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC;gBAC9C,eAAe,EAAE,MAAe;aACjC,CAAC,CAAC;QAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;gBACnD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;gBAClC,GAAG;gBACH,YAAY,EAAE,4BAA4B;gBAC1C,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB,CAAC,CAAC;YACH,IAAI,OAAO;gBAAE,OAAO,IAAI,CAAC;YACzB,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/mech/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,8 @@ export interface DecodedMarketplaceRequest {
|
|
|
33
33
|
requestId: string;
|
|
34
34
|
requestDataHex: string;
|
|
35
35
|
priorityMech: string;
|
|
36
|
+
transactionHash?: `0x${string}`;
|
|
37
|
+
blockNumber?: number;
|
|
36
38
|
}
|
|
37
39
|
export declare function decodeMarketplaceRequestLogs(logs: Log[]): DecodedMarketplaceRequest[];
|
|
38
40
|
export interface DecodedDeliverEvent {
|
|
@@ -41,4 +43,16 @@ export interface DecodedDeliverEvent {
|
|
|
41
43
|
mechAddress: string;
|
|
42
44
|
}
|
|
43
45
|
export declare function decodeDeliverLogs(logs: Log[]): DecodedDeliverEvent[];
|
|
46
|
+
export declare function scanLatestRequestDataByRid(publicClient: PublicClient, marketplaceAddress: Address, fromBlock: bigint, toBlock: bigint): Promise<Map<string, Hex>>;
|
|
47
|
+
export declare function scanLatestDeliveryDataByRid(publicClient: PublicClient, mechContractAddress: Address, fromBlock: bigint, toBlock: bigint): Promise<Map<string, Hex>>;
|
|
48
|
+
/**
|
|
49
|
+
* Most recent `requestData` for `requestId` from MarketplaceRequest events on
|
|
50
|
+
* `marketplaceAddress` in [fromBlock, toBlock] (inclusive), by block then log index.
|
|
51
|
+
*/
|
|
52
|
+
export declare function findLatestRequestDataHexForMarketplaceRequest(publicClient: PublicClient, marketplaceAddress: Address, requestId: string, fromBlock: bigint, toBlock: bigint): Promise<Hex | null>;
|
|
53
|
+
/**
|
|
54
|
+
* `data` field of the most recent Deliver event for `requestId` on the mech contract
|
|
55
|
+
* in [fromBlock, toBlock] (inclusive).
|
|
56
|
+
*/
|
|
57
|
+
export declare function findLatestDeliveryDataHexForRequest(publicClient: PublicClient, mechContractAddress: Address, requestId: string, fromBlock: bigint, toBlock: bigint): Promise<Hex | null>;
|
|
44
58
|
export declare function callDeliverToMarketplace(publicClient: PublicClient, walletClient: WalletClient, safeAddress: Address, mechContractAddress: Address, requestIds: Hex[], datas: Hex[]): Promise<Hex>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { encodeFunctionData, decodeEventLog, } from 'viem';
|
|
2
|
-
import { MECH_MARKETPLACE_ABI, MECH_ABI, JINN_ROUTER_ABI, JINN_ROUTER_CLAIM_DELIVERY_V1_ABI, JINN_ROUTER_CLAIM_DELIVERY_V2_ABI,
|
|
2
|
+
import { MECH_MARKETPLACE_ABI, MECH_ABI, JINN_ROUTER_ABI, JINN_ROUTER_CLAIM_DELIVERY_V1_ABI, JINN_ROUTER_CLAIM_DELIVERY_V2_ABI, NATIVE_PAYMENT_TYPE, } from './types.js';
|
|
3
|
+
import { CLAIM_REGISTRY_ABI } from '../claim-registry/abi.js';
|
|
3
4
|
import { executeSafeTransaction } from './safe.js';
|
|
4
5
|
import { isRecoverableTransactionError, waitForTransactionReceiptWithRetry, backoffDelay, } from '../../tx-retry.js';
|
|
5
6
|
export async function submitRestorationJob(publicClient, walletClient, safeAddress, routerAddress, mechAddress, requestDataHex, priceWei, responseTimeout) {
|
|
@@ -77,7 +78,28 @@ export async function submitEvaluationJob(publicClient, walletClient, safeAddres
|
|
|
77
78
|
const CLAIM_RETRY_ATTEMPTS = 6;
|
|
78
79
|
const CLAIM_RETRY_DELAY_MS = 2000;
|
|
79
80
|
const ZERO_EVIDENCE = '0x0000000000000000000000000000000000000000000000000000000000000000';
|
|
81
|
+
const JINN_ROUTER_CLAIMED_ABI = [
|
|
82
|
+
{
|
|
83
|
+
name: 'claimed',
|
|
84
|
+
type: 'function',
|
|
85
|
+
stateMutability: 'view',
|
|
86
|
+
inputs: [{ name: 'requestId', type: 'bytes32' }],
|
|
87
|
+
outputs: [{ name: '', type: 'bool' }],
|
|
88
|
+
},
|
|
89
|
+
];
|
|
90
|
+
async function isDeliveryAlreadyClaimed(publicClient, routerAddress, requestId) {
|
|
91
|
+
return Boolean(await publicClient.readContract({
|
|
92
|
+
address: routerAddress,
|
|
93
|
+
abi: JINN_ROUTER_CLAIMED_ABI,
|
|
94
|
+
functionName: 'claimed',
|
|
95
|
+
args: [requestId],
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
80
98
|
export async function claimDelivery(publicClient, walletClient, safeAddress, routerAddress, requestId, options) {
|
|
99
|
+
if (await isDeliveryAlreadyClaimed(publicClient, routerAddress, requestId)) {
|
|
100
|
+
console.error(`[router] claimDelivery: already claimed ${requestId}`);
|
|
101
|
+
return '0x';
|
|
102
|
+
}
|
|
81
103
|
const calldata = options.variant === 'v2'
|
|
82
104
|
? encodeFunctionData({
|
|
83
105
|
abi: JINN_ROUTER_CLAIM_DELIVERY_V2_ABI,
|
|
@@ -105,6 +127,10 @@ export async function claimDelivery(publicClient, walletClient, safeAddress, rou
|
|
|
105
127
|
console.error(`[router] claimDelivery: already claimed ${requestId}`);
|
|
106
128
|
return '0x';
|
|
107
129
|
}
|
|
130
|
+
if (await isDeliveryAlreadyClaimed(publicClient, routerAddress, requestId)) {
|
|
131
|
+
console.error(`[router] claimDelivery: already claimed ${requestId}`);
|
|
132
|
+
return '0x';
|
|
133
|
+
}
|
|
108
134
|
// RequestNotFound — not a router request, skip entirely
|
|
109
135
|
if (message.includes('RequestNotFound')) {
|
|
110
136
|
throw err;
|
|
@@ -267,11 +293,20 @@ export function decodeMarketplaceRequestLogs(logs) {
|
|
|
267
293
|
});
|
|
268
294
|
if (decoded.eventName === 'MarketplaceRequest') {
|
|
269
295
|
const args = decoded.args;
|
|
296
|
+
if (!args.requestIds?.length || !args.requestDatas?.length) {
|
|
297
|
+
console.error('[mech] MarketplaceRequest decode missing requestIds/requestDatas', {
|
|
298
|
+
hasRequestIds: args.requestIds != null,
|
|
299
|
+
hasRequestDatas: args.requestDatas != null,
|
|
300
|
+
});
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
270
303
|
for (let i = 0; i < args.requestIds.length; i++) {
|
|
271
304
|
results.push({
|
|
272
305
|
requestId: String(args.requestIds[i]),
|
|
273
306
|
requestDataHex: String(args.requestDatas[i]),
|
|
274
307
|
priorityMech: String(args.priorityMech),
|
|
308
|
+
transactionHash: log.transactionHash ?? undefined,
|
|
309
|
+
blockNumber: log.blockNumber != null ? Number(log.blockNumber) : undefined,
|
|
275
310
|
});
|
|
276
311
|
}
|
|
277
312
|
}
|
|
@@ -306,18 +341,87 @@ export function decodeDeliverLogs(logs) {
|
|
|
306
341
|
}
|
|
307
342
|
return results;
|
|
308
343
|
}
|
|
344
|
+
const LOG_SCAN_CHUNK = 9999n;
|
|
345
|
+
export async function scanLatestRequestDataByRid(publicClient, marketplaceAddress, fromBlock, toBlock) {
|
|
346
|
+
const results = new Map();
|
|
347
|
+
for (let start = fromBlock; start <= toBlock; start += LOG_SCAN_CHUNK + 1n) {
|
|
348
|
+
const end = start + LOG_SCAN_CHUNK > toBlock ? toBlock : start + LOG_SCAN_CHUNK;
|
|
349
|
+
const logs = await publicClient.getLogs({
|
|
350
|
+
address: marketplaceAddress,
|
|
351
|
+
fromBlock: start,
|
|
352
|
+
toBlock: end,
|
|
353
|
+
});
|
|
354
|
+
for (const decoded of decodeMarketplaceRequestLogs(logs)) {
|
|
355
|
+
results.set(decoded.requestId.toLowerCase(), decoded.requestDataHex);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return results;
|
|
359
|
+
}
|
|
360
|
+
export async function scanLatestDeliveryDataByRid(publicClient, mechContractAddress, fromBlock, toBlock) {
|
|
361
|
+
const results = new Map();
|
|
362
|
+
for (let start = fromBlock; start <= toBlock; start += LOG_SCAN_CHUNK + 1n) {
|
|
363
|
+
const end = start + LOG_SCAN_CHUNK > toBlock ? toBlock : start + LOG_SCAN_CHUNK;
|
|
364
|
+
const logs = await publicClient.getLogs({
|
|
365
|
+
address: mechContractAddress,
|
|
366
|
+
fromBlock: start,
|
|
367
|
+
toBlock: end,
|
|
368
|
+
});
|
|
369
|
+
for (const decoded of decodeDeliverLogs(logs)) {
|
|
370
|
+
results.set(decoded.requestId.toLowerCase(), decoded.deliveryDataHex);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
return results;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Most recent `requestData` for `requestId` from MarketplaceRequest events on
|
|
377
|
+
* `marketplaceAddress` in [fromBlock, toBlock] (inclusive), by block then log index.
|
|
378
|
+
*/
|
|
379
|
+
export async function findLatestRequestDataHexForMarketplaceRequest(publicClient, marketplaceAddress, requestId, fromBlock, toBlock) {
|
|
380
|
+
const dataByRid = await scanLatestRequestDataByRid(publicClient, marketplaceAddress, fromBlock, toBlock);
|
|
381
|
+
return dataByRid.get(requestId.toLowerCase()) ?? null;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* `data` field of the most recent Deliver event for `requestId` on the mech contract
|
|
385
|
+
* in [fromBlock, toBlock] (inclusive).
|
|
386
|
+
*/
|
|
387
|
+
export async function findLatestDeliveryDataHexForRequest(publicClient, mechContractAddress, requestId, fromBlock, toBlock) {
|
|
388
|
+
const dataByRid = await scanLatestDeliveryDataByRid(publicClient, mechContractAddress, fromBlock, toBlock);
|
|
389
|
+
return dataByRid.get(requestId.toLowerCase()) ?? null;
|
|
390
|
+
}
|
|
309
391
|
// ── Delivery ─────────────────────────────────────────────────────────────────
|
|
392
|
+
// Error names reported by the Mech Marketplace contract for duplicate delivery.
|
|
393
|
+
// The exact name varies across contract versions; we match all known variants.
|
|
394
|
+
const ALREADY_DELIVERED_PATTERNS = [
|
|
395
|
+
'AlreadyDelivered',
|
|
396
|
+
'DeliveryAlreadyCompleted',
|
|
397
|
+
'JobAlreadyDelivered',
|
|
398
|
+
'RequestAlreadyDelivered',
|
|
399
|
+
];
|
|
310
400
|
export async function callDeliverToMarketplace(publicClient, walletClient, safeAddress, mechContractAddress, requestIds, datas) {
|
|
311
401
|
const calldata = encodeFunctionData({
|
|
312
402
|
abi: MECH_ABI,
|
|
313
403
|
functionName: 'deliverToMarketplace',
|
|
314
404
|
args: [requestIds, datas],
|
|
315
405
|
});
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
406
|
+
try {
|
|
407
|
+
return await executeSafeTransaction(publicClient, walletClient, {
|
|
408
|
+
safeAddress,
|
|
409
|
+
to: mechContractAddress,
|
|
410
|
+
value: 0n,
|
|
411
|
+
data: calldata,
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
catch (err) {
|
|
415
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
416
|
+
// Idempotent: if the mech already recorded this delivery (e.g. crash
|
|
417
|
+
// recovery re-entered this path), treat it as success. The tx hash is
|
|
418
|
+
// unavailable at this point, but the engine's deliveryTxHash column would
|
|
419
|
+
// have been set by the previous attempt's onDeliveryTxLanded callback.
|
|
420
|
+
if (ALREADY_DELIVERED_PATTERNS.some(p => message.includes(p))) {
|
|
421
|
+
console.error(`[mech] callDeliverToMarketplace: already delivered (idempotent), requestIds=${requestIds.join(',')}`);
|
|
422
|
+
return '0x';
|
|
423
|
+
}
|
|
424
|
+
throw err;
|
|
425
|
+
}
|
|
322
426
|
}
|
|
323
427
|
//# sourceMappingURL=contracts.js.map
|