safehands-pharos 1.5.0 → 2.6.0
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/.agents/policies/default.json +15 -0
- package/.env.example +81 -64
- package/README.md +301 -444
- package/SECURITY.md +112 -0
- package/SKILL.md +59 -0
- package/contracts/SafeHandsAttestation.sol +182 -0
- package/contracts/SafeHandsRegistry.sol +149 -0
- package/dist/agent/SafeHandsGuardianAgent.d.ts +39 -0
- package/dist/agent/SafeHandsGuardianAgent.d.ts.map +1 -0
- package/dist/agent/SafeHandsGuardianAgent.js +98 -0
- package/dist/agent/SafeHandsGuardianAgent.js.map +1 -0
- package/dist/agent/agentDecisionFormatter.d.ts +43 -0
- package/dist/agent/agentDecisionFormatter.d.ts.map +1 -0
- package/dist/agent/agentDecisionFormatter.js +96 -0
- package/dist/agent/agentDecisionFormatter.js.map +1 -0
- package/dist/agent/agentEnrich.d.ts +28 -0
- package/dist/agent/agentEnrich.d.ts.map +1 -0
- package/dist/agent/agentEnrich.js +99 -0
- package/dist/agent/agentEnrich.js.map +1 -0
- package/dist/agent/agentIntentClassifier.d.ts +44 -0
- package/dist/agent/agentIntentClassifier.d.ts.map +1 -0
- package/dist/agent/agentIntentClassifier.js +77 -0
- package/dist/agent/agentIntentClassifier.js.map +1 -0
- package/dist/agent/agentPolicyResolver.d.ts +44 -0
- package/dist/agent/agentPolicyResolver.d.ts.map +1 -0
- package/dist/agent/agentPolicyResolver.js +94 -0
- package/dist/agent/agentPolicyResolver.js.map +1 -0
- package/dist/agent/agentRuntime.d.ts +12 -0
- package/dist/agent/agentRuntime.d.ts.map +1 -0
- package/dist/agent/agentRuntime.js +31 -0
- package/dist/agent/agentRuntime.js.map +1 -0
- package/dist/agent/agentToolRouter.d.ts +24 -0
- package/dist/agent/agentToolRouter.d.ts.map +1 -0
- package/dist/agent/agentToolRouter.js +89 -0
- package/dist/agent/agentToolRouter.js.map +1 -0
- package/dist/agent/guardianOperator.d.ts +35 -0
- package/dist/agent/guardianOperator.d.ts.map +1 -0
- package/dist/agent/guardianOperator.js +65 -0
- package/dist/agent/guardianOperator.js.map +1 -0
- package/dist/agent/index.d.ts +8 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +14 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/api/activityRoutes.d.ts +70 -0
- package/dist/api/activityRoutes.d.ts.map +1 -0
- package/dist/api/activityRoutes.js +100 -0
- package/dist/api/activityRoutes.js.map +1 -0
- package/dist/api/agentRoutes.d.ts +16 -0
- package/dist/api/agentRoutes.d.ts.map +1 -0
- package/dist/api/agentRoutes.js +37 -0
- package/dist/api/agentRoutes.js.map +1 -0
- package/dist/api/broadcastRoutes.d.ts +34 -0
- package/dist/api/broadcastRoutes.d.ts.map +1 -0
- package/dist/api/broadcastRoutes.js +147 -0
- package/dist/api/broadcastRoutes.js.map +1 -0
- package/dist/api/consolePage.d.ts +2 -0
- package/dist/api/consolePage.d.ts.map +1 -0
- package/dist/api/consolePage.js +206 -0
- package/dist/api/consolePage.js.map +1 -0
- package/dist/api/httpHardening.d.ts +75 -0
- package/dist/api/httpHardening.d.ts.map +1 -0
- package/dist/api/httpHardening.js +122 -0
- package/dist/api/httpHardening.js.map +1 -0
- package/dist/api/indexerRoutes.d.ts +46 -0
- package/dist/api/indexerRoutes.d.ts.map +1 -0
- package/dist/api/indexerRoutes.js +75 -0
- package/dist/api/indexerRoutes.js.map +1 -0
- package/dist/api/paidRoutes.d.ts +8 -0
- package/dist/api/paidRoutes.d.ts.map +1 -0
- package/dist/api/paidRoutes.js +175 -0
- package/dist/api/paidRoutes.js.map +1 -0
- package/dist/api/prepareRoutes.d.ts +58 -0
- package/dist/api/prepareRoutes.d.ts.map +1 -0
- package/dist/api/prepareRoutes.js +90 -0
- package/dist/api/prepareRoutes.js.map +1 -0
- package/dist/api/response.d.ts +39 -0
- package/dist/api/response.d.ts.map +1 -0
- package/dist/api/response.js +53 -0
- package/dist/api/response.js.map +1 -0
- package/dist/api/routes.d.ts +175 -0
- package/dist/api/routes.d.ts.map +1 -0
- package/dist/api/routes.js +276 -0
- package/dist/api/routes.js.map +1 -0
- package/dist/api/schemas.d.ts +147 -0
- package/dist/api/schemas.d.ts.map +1 -0
- package/dist/api/schemas.js +81 -0
- package/dist/api/schemas.js.map +1 -0
- package/dist/api/server.d.ts +11 -0
- package/dist/api/server.d.ts.map +1 -0
- package/dist/api/server.js +505 -0
- package/dist/api/server.js.map +1 -0
- package/dist/api/toolRoutes.d.ts +14 -0
- package/dist/api/toolRoutes.d.ts.map +1 -0
- package/dist/api/toolRoutes.js +138 -0
- package/dist/api/toolRoutes.js.map +1 -0
- package/dist/api/walletPrepareRoutes.d.ts +74 -0
- package/dist/api/walletPrepareRoutes.d.ts.map +1 -0
- package/dist/api/walletPrepareRoutes.js +127 -0
- package/dist/api/walletPrepareRoutes.js.map +1 -0
- package/dist/api/x402Gate.d.ts +51 -0
- package/dist/api/x402Gate.d.ts.map +1 -0
- package/dist/api/x402Gate.js +184 -0
- package/dist/api/x402Gate.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +29 -1
- package/dist/cli.js.map +1 -1
- package/dist/data/ecosystemRegistry.data.d.ts +3 -0
- package/dist/data/ecosystemRegistry.data.d.ts.map +1 -0
- package/dist/data/ecosystemRegistry.data.js +582 -0
- package/dist/data/ecosystemRegistry.data.js.map +1 -0
- package/dist/demo.d.ts +0 -0
- package/dist/demo.d.ts.map +1 -1
- package/dist/demo.js +43 -8
- package/dist/demo.js.map +1 -1
- package/dist/index.d.ts +0 -0
- package/dist/index.d.ts.map +0 -0
- package/dist/index.js +212 -135
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +0 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +72 -10
- package/dist/init.js.map +1 -1
- package/dist/lib/analysis/approval.d.ts +29 -0
- package/dist/lib/analysis/approval.d.ts.map +1 -0
- package/dist/lib/analysis/approval.js +162 -0
- package/dist/lib/analysis/approval.js.map +1 -0
- package/dist/lib/analysis/calldata.d.ts +60 -0
- package/dist/lib/analysis/calldata.d.ts.map +1 -0
- package/dist/lib/analysis/calldata.js +349 -0
- package/dist/lib/analysis/calldata.js.map +1 -0
- package/dist/lib/analysis/contractIntel.d.ts +65 -0
- package/dist/lib/analysis/contractIntel.d.ts.map +1 -0
- package/dist/lib/analysis/contractIntel.js +320 -0
- package/dist/lib/analysis/contractIntel.js.map +1 -0
- package/dist/lib/analysis/evm.d.ts +42 -0
- package/dist/lib/analysis/evm.d.ts.map +1 -0
- package/dist/lib/analysis/evm.js +185 -0
- package/dist/lib/analysis/evm.js.map +1 -0
- package/dist/lib/analysis/gas.d.ts +4 -0
- package/dist/lib/analysis/gas.d.ts.map +1 -0
- package/dist/lib/analysis/gas.js +13 -0
- package/dist/lib/analysis/gas.js.map +1 -0
- package/dist/lib/analysis/index.d.ts +11 -0
- package/dist/lib/analysis/index.d.ts.map +1 -0
- package/dist/lib/analysis/index.js +16 -0
- package/dist/lib/analysis/index.js.map +1 -0
- package/dist/lib/analysis/pharosTokens.d.ts +31 -0
- package/dist/lib/analysis/pharosTokens.d.ts.map +1 -0
- package/dist/lib/analysis/pharosTokens.js +78 -0
- package/dist/lib/analysis/pharosTokens.js.map +1 -0
- package/dist/lib/analysis/safeTx.d.ts +27 -0
- package/dist/lib/analysis/safeTx.d.ts.map +1 -0
- package/dist/lib/analysis/safeTx.js +118 -0
- package/dist/lib/analysis/safeTx.js.map +1 -0
- package/dist/lib/analysis/token.d.ts +21 -0
- package/dist/lib/analysis/token.d.ts.map +1 -0
- package/dist/lib/analysis/token.js +151 -0
- package/dist/lib/analysis/token.js.map +1 -0
- package/dist/lib/analysis/types.d.ts +49 -0
- package/dist/lib/analysis/types.d.ts.map +1 -0
- package/dist/lib/analysis/types.js +10 -0
- package/dist/lib/analysis/types.js.map +1 -0
- package/dist/lib/analysis/x402.d.ts +24 -0
- package/dist/lib/analysis/x402.d.ts.map +1 -0
- package/dist/lib/analysis/x402.js +60 -0
- package/dist/lib/analysis/x402.js.map +1 -0
- package/dist/lib/auditLog.d.ts +1 -0
- package/dist/lib/auditLog.d.ts.map +1 -1
- package/dist/lib/auditLog.js +0 -0
- package/dist/lib/auditLog.js.map +1 -1
- package/dist/lib/config.d.ts +77 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +120 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/constants.d.ts +246 -97
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +334 -127
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/dodoApi.d.ts +26 -3
- package/dist/lib/dodoApi.d.ts.map +1 -1
- package/dist/lib/dodoApi.js +80 -17
- package/dist/lib/dodoApi.js.map +1 -1
- package/dist/lib/ecosystemRegistry.d.ts +116 -0
- package/dist/lib/ecosystemRegistry.d.ts.map +1 -0
- package/dist/lib/ecosystemRegistry.js +178 -0
- package/dist/lib/ecosystemRegistry.js.map +1 -0
- package/dist/lib/envLoader.d.ts +0 -0
- package/dist/lib/envLoader.d.ts.map +0 -0
- package/dist/lib/envLoader.js +39 -18
- package/dist/lib/envLoader.js.map +1 -1
- package/dist/lib/goldsky.d.ts +58 -0
- package/dist/lib/goldsky.d.ts.map +1 -0
- package/dist/lib/goldsky.js +275 -0
- package/dist/lib/goldsky.js.map +1 -0
- package/dist/lib/guardian/decision.d.ts +23 -0
- package/dist/lib/guardian/decision.d.ts.map +1 -0
- package/dist/lib/guardian/decision.js +40 -0
- package/dist/lib/guardian/decision.js.map +1 -0
- package/dist/lib/http.d.ts +0 -1
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +297 -32
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/managedExecution.d.ts +19 -0
- package/dist/lib/managedExecution.d.ts.map +1 -0
- package/dist/lib/managedExecution.js +64 -0
- package/dist/lib/managedExecution.js.map +1 -0
- package/dist/lib/merkleBatcher.d.ts +23 -0
- package/dist/lib/merkleBatcher.d.ts.map +1 -0
- package/dist/lib/merkleBatcher.js +62 -0
- package/dist/lib/merkleBatcher.js.map +1 -0
- package/dist/lib/networks.d.ts +48 -0
- package/dist/lib/networks.d.ts.map +1 -0
- package/dist/lib/networks.js +103 -0
- package/dist/lib/networks.js.map +1 -0
- package/dist/lib/observability/accessContext.d.ts +29 -0
- package/dist/lib/observability/accessContext.d.ts.map +1 -0
- package/dist/lib/observability/accessContext.js +50 -0
- package/dist/lib/observability/accessContext.js.map +1 -0
- package/dist/lib/observability/activityStore.d.ts +70 -0
- package/dist/lib/observability/activityStore.d.ts.map +1 -0
- package/dist/lib/observability/activityStore.js +149 -0
- package/dist/lib/observability/activityStore.js.map +1 -0
- package/dist/lib/observability/apiKey.d.ts +55 -0
- package/dist/lib/observability/apiKey.d.ts.map +1 -0
- package/dist/lib/observability/apiKey.js +141 -0
- package/dist/lib/observability/apiKey.js.map +1 -0
- package/dist/lib/observability/logger.d.ts +30 -0
- package/dist/lib/observability/logger.d.ts.map +1 -0
- package/dist/lib/observability/logger.js +30 -0
- package/dist/lib/observability/logger.js.map +1 -0
- package/dist/lib/observability/quota.d.ts +33 -0
- package/dist/lib/observability/quota.d.ts.map +1 -0
- package/dist/lib/observability/quota.js +49 -0
- package/dist/lib/observability/quota.js.map +1 -0
- package/dist/lib/observability/requestId.d.ts +8 -0
- package/dist/lib/observability/requestId.d.ts.map +1 -0
- package/dist/lib/observability/requestId.js +24 -0
- package/dist/lib/observability/requestId.js.map +1 -0
- package/dist/lib/observability/sanitize.d.ts +77 -0
- package/dist/lib/observability/sanitize.d.ts.map +1 -0
- package/dist/lib/observability/sanitize.js +228 -0
- package/dist/lib/observability/sanitize.js.map +1 -0
- package/dist/lib/observability/scopes.d.ts +20 -0
- package/dist/lib/observability/scopes.d.ts.map +1 -0
- package/dist/lib/observability/scopes.js +77 -0
- package/dist/lib/observability/scopes.js.map +1 -0
- package/dist/lib/okxDexApi.d.ts +106 -0
- package/dist/lib/okxDexApi.d.ts.map +1 -0
- package/dist/lib/okxDexApi.js +221 -0
- package/dist/lib/okxDexApi.js.map +1 -0
- package/dist/lib/persistentJsonStore.d.ts +5 -0
- package/dist/lib/persistentJsonStore.d.ts.map +1 -0
- package/dist/lib/persistentJsonStore.js +39 -0
- package/dist/lib/persistentJsonStore.js.map +1 -0
- package/dist/lib/pharos/attestationPublisher.d.ts +50 -0
- package/dist/lib/pharos/attestationPublisher.d.ts.map +1 -0
- package/dist/lib/pharos/attestationPublisher.js +262 -0
- package/dist/lib/pharos/attestationPublisher.js.map +1 -0
- package/dist/lib/pharos/ecosystem.d.ts +52 -0
- package/dist/lib/pharos/ecosystem.d.ts.map +1 -0
- package/dist/lib/pharos/ecosystem.js +431 -0
- package/dist/lib/pharos/ecosystem.js.map +1 -0
- package/dist/lib/pharos/ecosystemEvidence.d.ts +53 -0
- package/dist/lib/pharos/ecosystemEvidence.d.ts.map +1 -0
- package/dist/lib/pharos/ecosystemEvidence.js +133 -0
- package/dist/lib/pharos/ecosystemEvidence.js.map +1 -0
- package/dist/lib/pharos/rpc.d.ts +44 -0
- package/dist/lib/pharos/rpc.d.ts.map +1 -0
- package/dist/lib/pharos/rpc.js +90 -0
- package/dist/lib/pharos/rpc.js.map +1 -0
- package/dist/lib/pharos/rpcEvidence.d.ts +49 -0
- package/dist/lib/pharos/rpcEvidence.d.ts.map +1 -0
- package/dist/lib/pharos/rpcEvidence.js +46 -0
- package/dist/lib/pharos/rpcEvidence.js.map +1 -0
- package/dist/lib/pharos/rpcMethods.d.ts +46 -0
- package/dist/lib/pharos/rpcMethods.d.ts.map +1 -0
- package/dist/lib/pharos/rpcMethods.js +176 -0
- package/dist/lib/pharos/rpcMethods.js.map +1 -0
- package/dist/lib/pharos/spvVerifier.d.ts +47 -0
- package/dist/lib/pharos/spvVerifier.d.ts.map +1 -0
- package/dist/lib/pharos/spvVerifier.js +105 -0
- package/dist/lib/pharos/spvVerifier.js.map +1 -0
- package/dist/lib/pharos/userSignedBroadcaster.d.ts +10 -0
- package/dist/lib/pharos/userSignedBroadcaster.d.ts.map +1 -0
- package/dist/lib/pharos/userSignedBroadcaster.js +50 -0
- package/dist/lib/pharos/userSignedBroadcaster.js.map +1 -0
- package/dist/lib/pharosClient.d.ts +5 -10
- package/dist/lib/pharosClient.d.ts.map +1 -1
- package/dist/lib/pharosClient.js +9 -16
- package/dist/lib/pharosClient.js.map +1 -1
- package/dist/lib/policy/actionPolicyEngine.d.ts +37 -1
- package/dist/lib/policy/actionPolicyEngine.d.ts.map +1 -1
- package/dist/lib/policy/actionPolicyEngine.js +213 -52
- package/dist/lib/policy/actionPolicyEngine.js.map +1 -1
- package/dist/lib/policy/agentPolicy.d.ts +29 -0
- package/dist/lib/policy/agentPolicy.d.ts.map +1 -0
- package/dist/lib/policy/agentPolicy.js +154 -0
- package/dist/lib/policy/agentPolicy.js.map +1 -0
- package/dist/lib/policy/policyPresets.d.ts +30 -0
- package/dist/lib/policy/policyPresets.d.ts.map +1 -0
- package/dist/lib/policy/policyPresets.js +124 -0
- package/dist/lib/policy/policyPresets.js.map +1 -0
- package/dist/lib/policy/writeExecutionGate.d.ts +23 -0
- package/dist/lib/policy/writeExecutionGate.d.ts.map +1 -0
- package/dist/lib/policy/writeExecutionGate.js +65 -0
- package/dist/lib/policy/writeExecutionGate.js.map +1 -0
- package/dist/lib/preparedTxStore.d.ts +21 -0
- package/dist/lib/preparedTxStore.d.ts.map +1 -0
- package/dist/lib/preparedTxStore.js +90 -0
- package/dist/lib/preparedTxStore.js.map +1 -0
- package/dist/lib/price/chainlinkPushProvider.d.ts +34 -0
- package/dist/lib/price/chainlinkPushProvider.d.ts.map +1 -0
- package/dist/lib/price/chainlinkPushProvider.js +36 -0
- package/dist/lib/price/chainlinkPushProvider.js.map +1 -0
- package/dist/lib/price/feedRegistry.d.ts +26 -0
- package/dist/lib/price/feedRegistry.d.ts.map +1 -0
- package/dist/lib/price/feedRegistry.js +67 -0
- package/dist/lib/price/feedRegistry.js.map +1 -0
- package/dist/lib/price/priceResolver.d.ts +35 -0
- package/dist/lib/price/priceResolver.d.ts.map +1 -0
- package/dist/lib/price/priceResolver.js +246 -0
- package/dist/lib/price/priceResolver.js.map +1 -0
- package/dist/lib/price/supraProvider.d.ts +9 -0
- package/dist/lib/price/supraProvider.d.ts.map +1 -0
- package/dist/lib/price/supraProvider.js +17 -0
- package/dist/lib/price/supraProvider.js.map +1 -0
- package/dist/lib/price/types.d.ts +67 -0
- package/dist/lib/price/types.d.ts.map +1 -0
- package/dist/lib/price/types.js +7 -0
- package/dist/lib/price/types.js.map +1 -0
- package/dist/lib/productionGuards.d.ts +16 -0
- package/dist/lib/productionGuards.d.ts.map +1 -0
- package/dist/lib/productionGuards.js +93 -0
- package/dist/lib/productionGuards.js.map +1 -0
- package/dist/lib/recipientSafety.d.ts +5 -0
- package/dist/lib/recipientSafety.d.ts.map +1 -0
- package/dist/lib/recipientSafety.js +28 -0
- package/dist/lib/recipientSafety.js.map +1 -0
- package/dist/lib/riskEngine.d.ts +19 -0
- package/dist/lib/riskEngine.d.ts.map +1 -1
- package/dist/lib/riskEngine.js +94 -36
- package/dist/lib/riskEngine.js.map +1 -1
- package/dist/lib/riskInclusion.d.ts +72 -0
- package/dist/lib/riskInclusion.d.ts.map +1 -0
- package/dist/lib/riskInclusion.js +252 -0
- package/dist/lib/riskInclusion.js.map +1 -0
- package/dist/lib/safeHandsRegistry.d.ts +32 -0
- package/dist/lib/safeHandsRegistry.d.ts.map +1 -0
- package/dist/lib/safeHandsRegistry.js +151 -0
- package/dist/lib/safeHandsRegistry.js.map +1 -0
- package/dist/lib/signer/index.d.ts +3 -3
- package/dist/lib/signer/index.d.ts.map +1 -1
- package/dist/lib/signer/index.js +33 -11
- package/dist/lib/signer/index.js.map +1 -1
- package/dist/lib/spendAccumulator.d.ts +24 -1
- package/dist/lib/spendAccumulator.d.ts.map +1 -1
- package/dist/lib/spendAccumulator.js +76 -6
- package/dist/lib/spendAccumulator.js.map +1 -1
- package/dist/lib/toolResponse.d.ts +6 -1
- package/dist/lib/toolResponse.d.ts.map +1 -1
- package/dist/lib/toolResponse.js +13 -9
- package/dist/lib/toolResponse.js.map +1 -1
- package/dist/lib/validation.d.ts +7 -0
- package/dist/lib/validation.d.ts.map +1 -0
- package/dist/lib/validation.js +62 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/lib/wallet/index.d.ts +8 -12
- package/dist/lib/wallet/index.d.ts.map +1 -1
- package/dist/lib/wallet/index.js +48 -35
- package/dist/lib/wallet/index.js.map +1 -1
- package/dist/lib/x402ReplayStore.d.ts +6 -0
- package/dist/lib/x402ReplayStore.d.ts.map +1 -0
- package/dist/lib/x402ReplayStore.js +79 -0
- package/dist/lib/x402ReplayStore.js.map +1 -0
- package/dist/safehands.zip +0 -0
- package/dist/sdk.d.ts +14 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +25 -0
- package/dist/sdk.js.map +1 -0
- package/dist/tools/approveToken.d.ts +31 -10
- package/dist/tools/approveToken.d.ts.map +1 -1
- package/dist/tools/approveToken.js +91 -24
- package/dist/tools/approveToken.js.map +1 -1
- package/dist/tools/assessRisk.d.ts +13 -26
- package/dist/tools/assessRisk.d.ts.map +1 -1
- package/dist/tools/assessRisk.js +34 -75
- package/dist/tools/assessRisk.js.map +1 -1
- package/dist/tools/checkAllowance.d.ts +9 -3
- package/dist/tools/checkAllowance.d.ts.map +1 -1
- package/dist/tools/checkAllowance.js +27 -5
- package/dist/tools/checkAllowance.js.map +1 -1
- package/dist/tools/checkTokenSecurity.d.ts +62 -5
- package/dist/tools/checkTokenSecurity.d.ts.map +1 -1
- package/dist/tools/checkTokenSecurity.js +166 -21
- package/dist/tools/checkTokenSecurity.js.map +1 -1
- package/dist/tools/createAgentWallet.d.ts +4 -2
- package/dist/tools/createAgentWallet.d.ts.map +1 -1
- package/dist/tools/createAgentWallet.js +36 -31
- package/dist/tools/createAgentWallet.js.map +1 -1
- package/dist/tools/estimateGas.d.ts +7 -2
- package/dist/tools/estimateGas.d.ts.map +1 -1
- package/dist/tools/estimateGas.js +16 -10
- package/dist/tools/estimateGas.js.map +1 -1
- package/dist/tools/executeSwap.d.ts +56 -8
- package/dist/tools/executeSwap.d.ts.map +1 -1
- package/dist/tools/executeSwap.js +194 -46
- package/dist/tools/executeSwap.js.map +1 -1
- package/dist/tools/explainRisk.d.ts +9 -9
- package/dist/tools/explainRisk.d.ts.map +1 -1
- package/dist/tools/explainRisk.js +5 -4
- package/dist/tools/explainRisk.js.map +1 -1
- package/dist/tools/getAgentPolicy.d.ts +15 -0
- package/dist/tools/getAgentPolicy.d.ts.map +1 -0
- package/dist/tools/getAgentPolicy.js +16 -0
- package/dist/tools/getAgentPolicy.js.map +1 -0
- package/dist/tools/getAgentReputation.d.ts +31 -0
- package/dist/tools/getAgentReputation.d.ts.map +1 -0
- package/dist/tools/getAgentReputation.js +44 -0
- package/dist/tools/getAgentReputation.js.map +1 -0
- package/dist/tools/getAgentWallet.d.ts +1 -1
- package/dist/tools/getAgentWallet.d.ts.map +1 -1
- package/dist/tools/getAgentWallet.js +11 -1
- package/dist/tools/getAgentWallet.js.map +1 -1
- package/dist/tools/getAgentWalletBalance.d.ts +1 -1
- package/dist/tools/getAgentWalletBalance.d.ts.map +1 -1
- package/dist/tools/getAgentWalletBalance.js +58 -26
- package/dist/tools/getAgentWalletBalance.js.map +1 -1
- package/dist/tools/getExecutionHistory.d.ts +1 -1
- package/dist/tools/getExecutionHistory.d.ts.map +1 -1
- package/dist/tools/getExecutionHistory.js +13 -19
- package/dist/tools/getExecutionHistory.js.map +1 -1
- package/dist/tools/getGasPrice.d.ts +3 -3
- package/dist/tools/getGasPrice.d.ts.map +0 -0
- package/dist/tools/getGasPrice.js +7 -7
- package/dist/tools/getGasPrice.js.map +1 -1
- package/dist/tools/getPoolInfo.d.ts +17 -17
- package/dist/tools/getPoolInfo.d.ts.map +1 -1
- package/dist/tools/getPoolInfo.js +14 -9
- package/dist/tools/getPoolInfo.js.map +1 -1
- package/dist/tools/getSpvProof.d.ts +24 -0
- package/dist/tools/getSpvProof.d.ts.map +1 -0
- package/dist/tools/getSpvProof.js +64 -0
- package/dist/tools/getSpvProof.js.map +1 -0
- package/dist/tools/getTokenPrice.d.ts +28 -85
- package/dist/tools/getTokenPrice.d.ts.map +1 -1
- package/dist/tools/getTokenPrice.js +87 -94
- package/dist/tools/getTokenPrice.js.map +1 -1
- package/dist/tools/getTransactionStatus.d.ts +2 -2
- package/dist/tools/getTransactionStatus.d.ts.map +0 -0
- package/dist/tools/getTransactionStatus.js +0 -0
- package/dist/tools/getTransactionStatus.js.map +0 -0
- package/dist/tools/getWalletBalance.d.ts +38 -3
- package/dist/tools/getWalletBalance.d.ts.map +1 -1
- package/dist/tools/getWalletBalance.js +92 -52
- package/dist/tools/getWalletBalance.js.map +1 -1
- package/dist/tools/publishRiskScore.d.ts +36 -14
- package/dist/tools/publishRiskScore.d.ts.map +1 -1
- package/dist/tools/publishRiskScore.js +80 -32
- package/dist/tools/publishRiskScore.js.map +1 -1
- package/dist/tools/queryGoldsky.d.ts +20 -0
- package/dist/tools/queryGoldsky.d.ts.map +1 -0
- package/dist/tools/queryGoldsky.js +29 -0
- package/dist/tools/queryGoldsky.js.map +1 -0
- package/dist/tools/queryRiskRegistry.d.ts +14 -14
- package/dist/tools/queryRiskRegistry.d.ts.map +1 -1
- package/dist/tools/queryRiskRegistry.js +34 -30
- package/dist/tools/queryRiskRegistry.js.map +1 -1
- package/dist/tools/safehandsPreflightCheck.d.ts +29 -14
- package/dist/tools/safehandsPreflightCheck.d.ts.map +1 -1
- package/dist/tools/safehandsPreflightCheck.js +133 -6
- package/dist/tools/safehandsPreflightCheck.js.map +1 -1
- package/dist/tools/safehandsRiskReport.d.ts +29 -14
- package/dist/tools/safehandsRiskReport.d.ts.map +1 -1
- package/dist/tools/safehandsRiskReport.js +23 -3
- package/dist/tools/safehandsRiskReport.js.map +1 -1
- package/dist/tools/safehandsSafeExecute.d.ts +1 -1
- package/dist/tools/safehandsSafeExecute.d.ts.map +1 -1
- package/dist/tools/safehandsSafeExecute.js +100 -17
- package/dist/tools/safehandsSafeExecute.js.map +1 -1
- package/dist/tools/safehandsWalletHealth.d.ts +15 -1
- package/dist/tools/safehandsWalletHealth.d.ts.map +1 -1
- package/dist/tools/safehandsWalletHealth.js +67 -25
- package/dist/tools/safehandsWalletHealth.js.map +1 -1
- package/dist/tools/safehandsX402Preflight.d.ts +3 -3
- package/dist/tools/safehandsX402Preflight.d.ts.map +1 -1
- package/dist/tools/safehandsX402Preflight.js +24 -3
- package/dist/tools/safehandsX402Preflight.js.map +1 -1
- package/dist/tools/sendPayment.d.ts +10 -4
- package/dist/tools/sendPayment.d.ts.map +1 -1
- package/dist/tools/sendPayment.js +63 -36
- package/dist/tools/sendPayment.js.map +1 -1
- package/dist/tools/setAgentPolicy.d.ts +75 -0
- package/dist/tools/setAgentPolicy.d.ts.map +1 -0
- package/dist/tools/setAgentPolicy.js +80 -0
- package/dist/tools/setAgentPolicy.js.map +1 -0
- package/dist/tools/simulateTransaction.d.ts +7 -3
- package/dist/tools/simulateTransaction.d.ts.map +1 -1
- package/dist/tools/simulateTransaction.js +42 -9
- package/dist/tools/simulateTransaction.js.map +1 -1
- package/dist/tools/tokenRegistryStatus.d.ts +25 -5
- package/dist/tools/tokenRegistryStatus.d.ts.map +1 -1
- package/dist/tools/tokenRegistryStatus.js +61 -31
- package/dist/tools/tokenRegistryStatus.js.map +1 -1
- package/dist/tools/verifyRiskInclusion.d.ts +59 -0
- package/dist/tools/verifyRiskInclusion.d.ts.map +1 -0
- package/dist/tools/verifyRiskInclusion.js +40 -0
- package/dist/tools/verifyRiskInclusion.js.map +1 -0
- package/dist/tools/x402PayAndFetch.d.ts +15 -9
- package/dist/tools/x402PayAndFetch.d.ts.map +1 -1
- package/dist/tools/x402PayAndFetch.js +163 -20
- package/dist/tools/x402PayAndFetch.js.map +1 -1
- package/dist/worker.d.ts +3 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +39 -0
- package/dist/worker.js.map +1 -0
- package/dist/x402Server.d.ts +1 -1
- package/dist/x402Server.d.ts.map +1 -1
- package/dist/x402Server.js +144 -35
- package/dist/x402Server.js.map +1 -1
- package/docs/REVIEWER_QUICKSTART.md +113 -0
- package/docs/SAFEHANDS_REVIEWER_DEMO_SCRIPT.md +228 -0
- package/package.json +130 -73
- package/contracts/RiskRegistry.json +0 -223
- package/contracts/RiskRegistry.sol +0 -58
- package/dist/lib/testDodoLive.d.ts +0 -2
- package/dist/lib/testDodoLive.d.ts.map +0 -1
- package/dist/lib/testDodoLive.js +0 -105
- package/dist/lib/testDodoLive.js.map +0 -1
- package/dist/lib/testLiveSafehands.d.ts +0 -2
- package/dist/lib/testLiveSafehands.d.ts.map +0 -1
- package/dist/lib/testLiveSafehands.js +0 -93
- package/dist/lib/testLiveSafehands.js.map +0 -1
- package/dist/lib/testRpc.d.ts +0 -2
- package/dist/lib/testRpc.d.ts.map +0 -1
- package/dist/lib/testRpc.js +0 -30
- package/dist/lib/testRpc.js.map +0 -1
- package/dist/lib/testRpcLive.d.ts +0 -2
- package/dist/lib/testRpcLive.d.ts.map +0 -1
- package/dist/lib/testRpcLive.js +0 -89
- package/dist/lib/testRpcLive.js.map +0 -1
- package/dist/lib/testTools.d.ts +0 -2
- package/dist/lib/testTools.d.ts.map +0 -1
- package/dist/lib/testTools.js +0 -397
- package/dist/lib/testTools.js.map +0 -1
- package/dist/lib/testX402Live.d.ts +0 -2
- package/dist/lib/testX402Live.d.ts.map +0 -1
- package/dist/lib/testX402Live.js +0 -160
- package/dist/lib/testX402Live.js.map +0 -1
- package/dist/scripts/checkDeploy.d.ts +0 -2
- package/dist/scripts/checkDeploy.d.ts.map +0 -1
- package/dist/scripts/checkDeploy.js +0 -25
- package/dist/scripts/checkDeploy.js.map +0 -1
- package/dist/scripts/deployRegistry.d.ts +0 -2
- package/dist/scripts/deployRegistry.d.ts.map +0 -1
- package/dist/scripts/deployRegistry.js +0 -101
- package/dist/scripts/deployRegistry.js.map +0 -1
- package/dist/scripts/testRegistry.d.ts +0 -2
- package/dist/scripts/testRegistry.d.ts.map +0 -1
- package/dist/scripts/testRegistry.js +0 -44
- package/dist/scripts/testRegistry.js.map +0 -1
package/dist/lib/constants.js
CHANGED
|
@@ -1,70 +1,72 @@
|
|
|
1
1
|
// ─── SafeHands Constants ───────────────────────────────────────────────
|
|
2
|
-
// Pharos
|
|
3
|
-
// Official references reviewed during QA
|
|
2
|
+
// Pharos Pacific Mainnet-first defaults with Atlantic Testnet compatibility.
|
|
3
|
+
// Official references reviewed during QA (USDC re-verified against Circle's
|
|
4
|
+
// contract-addresses page on 2026-07-10):
|
|
4
5
|
// - Pharos Hardhat guide: Atlantic Testnet chain ID 688689, RPC https://atlantic.dplabs-internal.com
|
|
5
6
|
// - Official Pharos Skill Engine tokens.json: USDC = 0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8
|
|
6
|
-
// - Circle USDC contract addresses page:
|
|
7
|
-
//
|
|
7
|
+
// - Circle USDC contract addresses page (developers.circle.com/stablecoins/usdc-contract-addresses):
|
|
8
|
+
// Pharos (Mainnet) = 0xC879C018dB60520F4355C26eD1a6D572cdAC1815 (= PACIFIC_USDC_ADDRESS)
|
|
9
|
+
// Pharos Testnet = 0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B (= CIRCLE_USDC_ADDRESS)
|
|
10
|
+
// (An earlier comment here mislabeled 0xcfC8… as mainnet — it is Circle's TESTNET USDC.)
|
|
11
|
+
// - For Pharos Skill Engine testnet compatibility, the Atlantic token list defaults to the
|
|
12
|
+
// Skill Engine list; the mainnet canonical USDC is the Circle/Pharos-docs 0xC879… address.
|
|
8
13
|
// ────────────────────────────────────────────────────────────────────────
|
|
9
14
|
// ─── Network ───────────────────────────────────────────────────────────
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
15
|
+
// Mainnet-first: defaults resolve from the active network in networks.ts
|
|
16
|
+
// (default pacific-mainnet). Existing PHAROS_* env vars still override for
|
|
17
|
+
// backward compatibility and Atlantic testnet selection.
|
|
18
|
+
import { createRequire } from "module";
|
|
19
|
+
import { parseAbi } from "viem";
|
|
20
|
+
import { getActiveNetwork, resolveRpcUrl, explorerTxBase } from "./networks.js";
|
|
21
|
+
import { ECOSYSTEM_REGISTRY_ITEMS } from "../data/ecosystemRegistry.data.js";
|
|
22
|
+
/** Package version, read once from package.json so callers never hardcode it. */
|
|
23
|
+
export const SAFEHANDS_VERSION = createRequire(import.meta.url)("../../package.json").version;
|
|
24
|
+
/** User-agent for outbound HTTP calls (GoPlus etc.), version-synced. */
|
|
25
|
+
export const SAFEHANDS_USER_AGENT = `SafeHands/${SAFEHANDS_VERSION}`;
|
|
26
|
+
const ACTIVE_NETWORK = getActiveNetwork();
|
|
27
|
+
export const PHAROS_ENVIRONMENT = process.env.PHAROS_ENVIRONMENT || ACTIVE_NETWORK.name;
|
|
28
|
+
export const CHAIN_ID = Number(process.env.PHAROS_CHAIN_ID || ACTIVE_NETWORK.chainId);
|
|
29
|
+
export const RPC_URL = process.env.PHAROS_RPC_URL || resolveRpcUrl(ACTIVE_NETWORK);
|
|
30
|
+
export const EXPLORER_BASE = process.env.PHAROS_EXPLORER_BASE || explorerTxBase(ACTIVE_NETWORK);
|
|
31
|
+
export const IS_MAINNET = ACTIVE_NETWORK.isMainnet;
|
|
26
32
|
// ─── Token Addresses ───────────────────────────────────────────────────
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
export const PHRS_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
33
|
+
// These are the ATLANTIC-TESTNET / Skill-Engine-compat addresses (activeTokenMap
|
|
34
|
+
// switches to the Pacific registry on mainnet). The one evidenced canonical
|
|
35
|
+
// mainnet USDC is PACIFIC_USDC_ADDRESS (0xC879…), confirmed by BOTH the Pharos
|
|
36
|
+
// docs token registry AND Circle's contract-addresses page (re-checked 2026-07-10).
|
|
37
|
+
/** Native PROS — sentinel address used by DODO API for native token */
|
|
38
|
+
export const PROS_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
34
39
|
export const USDT_ADDRESS = "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5";
|
|
35
|
-
/**
|
|
40
|
+
/** Skill-Engine-compat USDC (official pharos-skill-engine tokens.json); testnet compat list only. */
|
|
36
41
|
export const USDC_ADDRESS = "0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8";
|
|
37
|
-
/**
|
|
42
|
+
/** Circle's Pharos TESTNET USDC (per Circle's contract-addresses page). Used only as the Atlantic alt-USDC route fallback — never a mainnet claim. */
|
|
38
43
|
export const CIRCLE_USDC_ADDRESS = "0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B";
|
|
39
|
-
/** @deprecated Use USDC_ADDRESS instead. Kept for backward compatibility. */
|
|
40
|
-
export const X402_DEMO_USDC_ADDRESS = USDC_ADDRESS;
|
|
41
|
-
export const TEST_USDC_ADDRESS = USDC_ADDRESS;
|
|
42
44
|
export const WBTC_ADDRESS = "0x0c64F03EEa5c30946D5c55B4b532D08ad74638a4";
|
|
43
45
|
export const WETH_ADDRESS = "0x7d211F77525ea39A0592794f793cC1036eEaccD5";
|
|
44
|
-
export const
|
|
46
|
+
export const WPROS_ADDRESS = "0x838800b758277CC111B2d48Ab01e5E164f8E9471";
|
|
45
47
|
export const TOKEN_REGISTRY = {
|
|
46
|
-
|
|
47
|
-
symbol: "
|
|
48
|
-
address:
|
|
48
|
+
PROS: {
|
|
49
|
+
symbol: "PROS",
|
|
50
|
+
address: PROS_ADDRESS,
|
|
49
51
|
decimals: 18,
|
|
50
|
-
chainId:
|
|
51
|
-
environment:
|
|
52
|
+
chainId: 688689,
|
|
53
|
+
environment: "atlantic-testnet",
|
|
52
54
|
isMainnet: false,
|
|
53
55
|
isCanonical: true,
|
|
54
56
|
isTestToken: true,
|
|
55
|
-
purpose: "native
|
|
57
|
+
purpose: "native PROS sentinel address for DODO route API",
|
|
56
58
|
docsSource: "https://docs.pharos.xyz/",
|
|
57
59
|
},
|
|
58
60
|
USDC: {
|
|
59
61
|
symbol: "USDC",
|
|
60
62
|
address: USDC_ADDRESS,
|
|
61
63
|
decimals: 6,
|
|
62
|
-
chainId:
|
|
63
|
-
environment:
|
|
64
|
+
chainId: 688689,
|
|
65
|
+
environment: "atlantic-testnet",
|
|
64
66
|
isMainnet: false,
|
|
65
67
|
isCanonical: true,
|
|
66
68
|
isTestToken: true,
|
|
67
|
-
purpose: "Pharos Skill Engine USDC
|
|
69
|
+
purpose: "Pharos Skill Engine USDC: the USDC listed in the official pharos-skill-engine-0.1.0 assets/tokens.json for pacific-mainnet",
|
|
68
70
|
docsSource: "pharos-skill-engine-0.1.0/assets/tokens.json",
|
|
69
71
|
verificationStatus: "DOCS_VERIFIED_FROM_PHAROS_SKILL_ENGINE",
|
|
70
72
|
},
|
|
@@ -72,21 +74,21 @@ export const TOKEN_REGISTRY = {
|
|
|
72
74
|
symbol: "CIRCLE_USDC",
|
|
73
75
|
address: CIRCLE_USDC_ADDRESS,
|
|
74
76
|
decimals: 6,
|
|
75
|
-
chainId:
|
|
76
|
-
environment:
|
|
77
|
+
chainId: 688689,
|
|
78
|
+
environment: "atlantic-testnet",
|
|
77
79
|
isMainnet: false,
|
|
78
80
|
isCanonical: true,
|
|
79
81
|
isTestToken: true,
|
|
80
|
-
purpose: "
|
|
81
|
-
docsSource: "https://developers.circle.com/stablecoins/usdc-contract-addresses
|
|
82
|
-
verificationStatus: "
|
|
82
|
+
purpose: "Circle's Pharos TESTNET USDC (Circle contract-addresses page, re-checked 2026-07-10); Atlantic alt-USDC route fallback, not the primary Skill-Engine token",
|
|
83
|
+
docsSource: "https://developers.circle.com/stablecoins/usdc-contract-addresses",
|
|
84
|
+
verificationStatus: "CIRCLE_DOCS_VERIFIED_TESTNET",
|
|
83
85
|
},
|
|
84
86
|
USDT: {
|
|
85
87
|
symbol: "USDT",
|
|
86
88
|
address: USDT_ADDRESS,
|
|
87
89
|
decimals: 6,
|
|
88
|
-
chainId:
|
|
89
|
-
environment:
|
|
90
|
+
chainId: 688689,
|
|
91
|
+
environment: "atlantic-testnet",
|
|
90
92
|
isMainnet: false,
|
|
91
93
|
isCanonical: true,
|
|
92
94
|
isTestToken: true,
|
|
@@ -98,8 +100,8 @@ export const TOKEN_REGISTRY = {
|
|
|
98
100
|
symbol: "WBTC",
|
|
99
101
|
address: WBTC_ADDRESS,
|
|
100
102
|
decimals: 18,
|
|
101
|
-
chainId:
|
|
102
|
-
environment:
|
|
103
|
+
chainId: 688689,
|
|
104
|
+
environment: "atlantic-testnet",
|
|
103
105
|
isMainnet: false,
|
|
104
106
|
isCanonical: true,
|
|
105
107
|
isTestToken: true,
|
|
@@ -111,8 +113,8 @@ export const TOKEN_REGISTRY = {
|
|
|
111
113
|
symbol: "WETH",
|
|
112
114
|
address: WETH_ADDRESS,
|
|
113
115
|
decimals: 18,
|
|
114
|
-
chainId:
|
|
115
|
-
environment:
|
|
116
|
+
chainId: 688689,
|
|
117
|
+
environment: "atlantic-testnet",
|
|
116
118
|
isMainnet: false,
|
|
117
119
|
isCanonical: true,
|
|
118
120
|
isTestToken: true,
|
|
@@ -120,67 +122,250 @@ export const TOKEN_REGISTRY = {
|
|
|
120
122
|
docsSource: "https://docs.pharos.xyz/getting-started/token-registry",
|
|
121
123
|
verificationStatus: "DOCS_VERIFIED",
|
|
122
124
|
},
|
|
123
|
-
|
|
124
|
-
symbol: "
|
|
125
|
-
address:
|
|
125
|
+
WPROS: {
|
|
126
|
+
symbol: "WPROS",
|
|
127
|
+
address: WPROS_ADDRESS,
|
|
126
128
|
decimals: 18,
|
|
127
|
-
chainId:
|
|
128
|
-
environment:
|
|
129
|
+
chainId: 688689,
|
|
130
|
+
environment: "atlantic-testnet",
|
|
129
131
|
isMainnet: false,
|
|
130
132
|
isCanonical: true,
|
|
131
133
|
isTestToken: true,
|
|
132
|
-
purpose: "canonical Pharos Atlantic Testnet
|
|
134
|
+
purpose: "canonical Pharos Atlantic Testnet WPROS (Wrapped PROS)",
|
|
135
|
+
docsSource: "https://docs.pharos.xyz/getting-started/token-registry",
|
|
136
|
+
verificationStatus: "DOCS_VERIFIED",
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
// ─── Pharos Pacific Mainnet token registry (chain 1672) ────────────────
|
|
140
|
+
// Official addresses from docs.pharos.xyz/getting-started/token-registry,
|
|
141
|
+
// recorded from the Phase 5A Pharos docs audit. Read-only metadata only —
|
|
142
|
+
// recognition is by registry address; it is NOT a safety guarantee for an action.
|
|
143
|
+
// Decimals follow the ERC-20 standard for each token type (USDC = 6; wrapped = 18).
|
|
144
|
+
export const PACIFIC_WPROS_ADDRESS = "0x52c48d4213107b20bc583832b0d951fb9ca8f0b0";
|
|
145
|
+
// Circle-deployed — dual-evidenced: Pharos docs token registry AND Circle's own
|
|
146
|
+
// contract-addresses page list this address for Pharos (Mainnet). Re-checked 2026-07-10.
|
|
147
|
+
export const PACIFIC_USDC_ADDRESS = "0xc879c018db60520f4355c26ed1a6d572cdac1815";
|
|
148
|
+
export const PACIFIC_LINK_ADDRESS = "0x51e2A24742Db77604B881d6781Ee16B5b8fcBE29";
|
|
149
|
+
export const PACIFIC_WETH_ADDRESS = "0x1f4b7011Ee3d53969bb67F59428a9ec0477856E9";
|
|
150
|
+
export const PACIFIC_MAINNET_TOKEN_REGISTRY = {
|
|
151
|
+
WPROS: {
|
|
152
|
+
symbol: "WPROS",
|
|
153
|
+
name: "Wrapped PROS",
|
|
154
|
+
address: PACIFIC_WPROS_ADDRESS,
|
|
155
|
+
decimals: 18,
|
|
156
|
+
chainId: 1672,
|
|
157
|
+
environment: "pacific-mainnet",
|
|
158
|
+
isMainnet: true,
|
|
159
|
+
isCanonical: true,
|
|
160
|
+
docsSource: "https://docs.pharos.xyz/getting-started/token-registry",
|
|
161
|
+
verificationStatus: "DOCS_VERIFIED",
|
|
162
|
+
},
|
|
163
|
+
USDC: {
|
|
164
|
+
symbol: "USDC",
|
|
165
|
+
name: "USD Coin (Circle-deployed)",
|
|
166
|
+
address: PACIFIC_USDC_ADDRESS,
|
|
167
|
+
decimals: 6,
|
|
168
|
+
chainId: 1672,
|
|
169
|
+
environment: "pacific-mainnet",
|
|
170
|
+
isMainnet: true,
|
|
171
|
+
isCanonical: true,
|
|
172
|
+
docsSource: "https://docs.pharos.xyz/getting-started/token-registry and https://developers.circle.com/stablecoins/usdc-contract-addresses",
|
|
173
|
+
verificationStatus: "DOCS_VERIFIED",
|
|
174
|
+
},
|
|
175
|
+
LINK: {
|
|
176
|
+
symbol: "LINK",
|
|
177
|
+
name: "ChainLink Token",
|
|
178
|
+
address: PACIFIC_LINK_ADDRESS,
|
|
179
|
+
decimals: 18,
|
|
180
|
+
chainId: 1672,
|
|
181
|
+
environment: "pacific-mainnet",
|
|
182
|
+
isMainnet: true,
|
|
183
|
+
isCanonical: true,
|
|
184
|
+
docsSource: "https://docs.pharos.xyz/getting-started/token-registry",
|
|
185
|
+
verificationStatus: "DOCS_VERIFIED",
|
|
186
|
+
},
|
|
187
|
+
WETH: {
|
|
188
|
+
symbol: "WETH",
|
|
189
|
+
name: "Wrapped Ether",
|
|
190
|
+
address: PACIFIC_WETH_ADDRESS,
|
|
191
|
+
decimals: 18,
|
|
192
|
+
chainId: 1672,
|
|
193
|
+
environment: "pacific-mainnet",
|
|
194
|
+
isMainnet: true,
|
|
195
|
+
isCanonical: true,
|
|
133
196
|
docsSource: "https://docs.pharos.xyz/getting-started/token-registry",
|
|
134
197
|
verificationStatus: "DOCS_VERIFIED",
|
|
135
198
|
},
|
|
136
199
|
};
|
|
137
200
|
// ─── Token Decimals ────────────────────────────────────────────────────
|
|
138
201
|
export const TOKEN_DECIMALS = {
|
|
139
|
-
|
|
202
|
+
PROS: 18,
|
|
140
203
|
USDT: 6,
|
|
141
204
|
USDC: 6,
|
|
142
205
|
CIRCLE_USDC: 6,
|
|
143
206
|
WBTC: 18,
|
|
144
207
|
WETH: 18,
|
|
145
|
-
|
|
146
|
-
[
|
|
208
|
+
WPROS: 18,
|
|
209
|
+
[PROS_ADDRESS.toLowerCase()]: 18,
|
|
147
210
|
[USDT_ADDRESS.toLowerCase()]: 6,
|
|
148
211
|
[USDC_ADDRESS.toLowerCase()]: 6,
|
|
149
212
|
[CIRCLE_USDC_ADDRESS.toLowerCase()]: 6,
|
|
150
213
|
[WBTC_ADDRESS.toLowerCase()]: 18,
|
|
151
214
|
[WETH_ADDRESS.toLowerCase()]: 18,
|
|
152
|
-
[
|
|
215
|
+
[WPROS_ADDRESS.toLowerCase()]: 18,
|
|
153
216
|
};
|
|
154
217
|
// ─── Token Symbol → Address Mapping ────────────────────────────────────
|
|
155
218
|
export const TOKEN_MAP = {
|
|
156
|
-
|
|
219
|
+
PROS: PROS_ADDRESS,
|
|
157
220
|
USDT: USDT_ADDRESS,
|
|
158
221
|
USDC: USDC_ADDRESS,
|
|
159
222
|
CIRCLE_USDC: CIRCLE_USDC_ADDRESS,
|
|
160
223
|
WBTC: WBTC_ADDRESS,
|
|
161
224
|
WETH: WETH_ADDRESS,
|
|
162
|
-
|
|
225
|
+
WPROS: WPROS_ADDRESS,
|
|
226
|
+
};
|
|
227
|
+
// ─── Pacific Mainnet token map (chain 1672) ────────────────────────────
|
|
228
|
+
// Used for swaps / market data on mainnet. PROS/PROS share the native sentinel
|
|
229
|
+
// that DODO expects; canonical ERC-20s come from PACIFIC_MAINNET_TOKEN_REGISTRY.
|
|
230
|
+
export const PACIFIC_TOKEN_MAP = {
|
|
231
|
+
PROS: PROS_ADDRESS,
|
|
232
|
+
WPROS: PACIFIC_WPROS_ADDRESS,
|
|
233
|
+
USDC: PACIFIC_USDC_ADDRESS,
|
|
234
|
+
WETH: PACIFIC_WETH_ADDRESS,
|
|
235
|
+
LINK: PACIFIC_LINK_ADDRESS,
|
|
163
236
|
};
|
|
237
|
+
export const PACIFIC_TOKEN_DECIMALS = {
|
|
238
|
+
PROS: 18,
|
|
239
|
+
WPROS: 18,
|
|
240
|
+
USDC: 6,
|
|
241
|
+
WETH: 18,
|
|
242
|
+
LINK: 18,
|
|
243
|
+
[PROS_ADDRESS.toLowerCase()]: 18,
|
|
244
|
+
[PACIFIC_WPROS_ADDRESS.toLowerCase()]: 18,
|
|
245
|
+
[PACIFIC_USDC_ADDRESS.toLowerCase()]: 6,
|
|
246
|
+
[PACIFIC_WETH_ADDRESS.toLowerCase()]: 18,
|
|
247
|
+
[PACIFIC_LINK_ADDRESS.toLowerCase()]: 18,
|
|
248
|
+
};
|
|
249
|
+
/** Network-aware token symbol→address map (mainnet-first). */
|
|
250
|
+
export function activeTokenMap() {
|
|
251
|
+
return getActiveNetwork().isMainnet ? PACIFIC_TOKEN_MAP : TOKEN_MAP;
|
|
252
|
+
}
|
|
253
|
+
/** Network-aware token decimals (mainnet-first). */
|
|
254
|
+
export function activeTokenDecimals() {
|
|
255
|
+
return getActiveNetwork().isMainnet ? PACIFIC_TOKEN_DECIMALS : TOKEN_DECIMALS;
|
|
256
|
+
}
|
|
257
|
+
/** Active canonical USDC address (mainnet 0xc879…, else Skill-Engine USDC). */
|
|
258
|
+
export function activeUsdcAddress() {
|
|
259
|
+
return getActiveNetwork().isMainnet ? PACIFIC_USDC_ADDRESS : USDC_ADDRESS;
|
|
260
|
+
}
|
|
261
|
+
/** Active network token registry metadata (mainnet-first). */
|
|
262
|
+
export function activeTokenRegistry() {
|
|
263
|
+
return getActiveNetwork().isMainnet
|
|
264
|
+
? PACIFIC_MAINNET_TOKEN_REGISTRY
|
|
265
|
+
: TOKEN_REGISTRY;
|
|
266
|
+
}
|
|
267
|
+
/** x402 payment assets SafeHands recognizes for the active network. */
|
|
268
|
+
export function activeX402AllowedTokenAddresses() {
|
|
269
|
+
return getActiveNetwork().isMainnet
|
|
270
|
+
? [PACIFIC_USDC_ADDRESS, PACIFIC_WPROS_ADDRESS]
|
|
271
|
+
: [USDC_ADDRESS, WPROS_ADDRESS];
|
|
272
|
+
}
|
|
164
273
|
// ─── FaroSwap / DODO Protocol ──────────────────────────────────────────
|
|
274
|
+
// PROVENANCE: these addresses originate from the pre-registry Atlantic-testnet
|
|
275
|
+
// FaroSwap integration and are NOT in the canonical ecosystem registry — the
|
|
276
|
+
// registry's FaroSwap mainnet entry (protocol:pacific-mainnet:faroswap) is
|
|
277
|
+
// UNVERIFIED with no bundled contracts. They are RESTRICTION-ONLY values: the
|
|
278
|
+
// write path uses them as allowlists that constrain which router/spender a DODO
|
|
279
|
+
// quote may execute against (fail-closed containment). They must NEVER be used
|
|
280
|
+
// as trust/"known"/verified signals — spender/counterparty trust comes only from
|
|
281
|
+
// addressTrustEvidence() in lib/ecosystemRegistry.ts.
|
|
165
282
|
export const DODO_APPROVE_ADDRESS = "0x4Cf317b8918FbE8A890c01eDAb7d548555Ac2cE9";
|
|
166
283
|
export const DODO_ROUTE_PROXY_ADDRESS = "0x819829e5CF6e19F9fED92F6b4CC1edF45a2cC4A2";
|
|
167
|
-
|
|
284
|
+
function parseAddressCsv(value, fallback) {
|
|
285
|
+
const source = value && value.trim().length > 0 ? value.split(",") : [...fallback];
|
|
286
|
+
return source
|
|
287
|
+
.map((item) => item.trim())
|
|
288
|
+
.filter((item) => /^0x[0-9a-fA-F]{40}$/.test(item));
|
|
289
|
+
}
|
|
290
|
+
export function activeDodoSpenderAllowlist() {
|
|
291
|
+
return parseAddressCsv(process.env.DODO_SPENDER_ALLOWLIST || process.env.SAFEHANDS_DODO_SPENDER_ALLOWLIST, [DODO_APPROVE_ADDRESS]);
|
|
292
|
+
}
|
|
293
|
+
export function activeDodoRouterAllowlist() {
|
|
294
|
+
return parseAddressCsv(process.env.DODO_ROUTER_ALLOWLIST || process.env.SAFEHANDS_DODO_ROUTER_ALLOWLIST, [DODO_ROUTE_PROXY_ADDRESS]);
|
|
295
|
+
}
|
|
296
|
+
export function isAllowedDodoSpender(address) {
|
|
297
|
+
return activeDodoSpenderAllowlist().some((allowed) => allowed.toLowerCase() === address.toLowerCase());
|
|
298
|
+
}
|
|
299
|
+
export function isAllowedDodoRouter(address) {
|
|
300
|
+
return activeDodoRouterAllowlist().some((allowed) => allowed.toLowerCase() === address.toLowerCase());
|
|
301
|
+
}
|
|
168
302
|
// ─── DODO API ──────────────────────────────────────────────────────────
|
|
169
303
|
export const DODO_API_BASE = process.env.DODO_API_BASE || "https://api.dodoex.io";
|
|
170
304
|
export const DODO_API_KEY = process.env.DODO_API_KEY;
|
|
171
|
-
export const DODO_DEFAULT_SLIPPAGE = 3
|
|
305
|
+
export const DODO_DEFAULT_SLIPPAGE = 3;
|
|
172
306
|
export const DODO_ROUTE_ENDPOINT = "/route-service/v2/widget/getdodoroute";
|
|
307
|
+
// ─── OKX DEX Aggregator ────────────────────────────────────────────────
|
|
308
|
+
// PROVENANCE: unlike the DODO/FaroSwap allowlists above, both OKX addresses
|
|
309
|
+
// ARE registry-verified (protocol:pacific-mainnet:okx-dex — OKX's own dev-docs
|
|
310
|
+
// Pharos row plus on-chain eth_getCode on 1672, 2026-07-13). The allowlist
|
|
311
|
+
// checks below are still containment only: spender/counterparty trust flows
|
|
312
|
+
// exclusively from addressTrustEvidence(), which recognizes these addresses as
|
|
313
|
+
// verified independently of this list.
|
|
314
|
+
export const OKX_DEX_ROUTER_ADDRESS = "0x75f21a97bd89a9a5683a9f46b5d5b4a080708dea";
|
|
315
|
+
export const OKX_DEX_APPROVE_ADDRESS = "0x78466A1488f1883d71cFddd1c621351572dE0a1C";
|
|
316
|
+
export function activeOkxSpenderAllowlist() {
|
|
317
|
+
return parseAddressCsv(process.env.OKX_SPENDER_ALLOWLIST || process.env.SAFEHANDS_OKX_SPENDER_ALLOWLIST, [OKX_DEX_APPROVE_ADDRESS]);
|
|
318
|
+
}
|
|
319
|
+
export function activeOkxRouterAllowlist() {
|
|
320
|
+
return parseAddressCsv(process.env.OKX_ROUTER_ALLOWLIST || process.env.SAFEHANDS_OKX_ROUTER_ALLOWLIST, [OKX_DEX_ROUTER_ADDRESS]);
|
|
321
|
+
}
|
|
322
|
+
export function isAllowedOkxSpender(address) {
|
|
323
|
+
return activeOkxSpenderAllowlist().some((allowed) => allowed.toLowerCase() === address.toLowerCase());
|
|
324
|
+
}
|
|
325
|
+
export function isAllowedOkxRouter(address) {
|
|
326
|
+
return activeOkxRouterAllowlist().some((allowed) => allowed.toLowerCase() === address.toLowerCase());
|
|
327
|
+
}
|
|
328
|
+
// ─── OKX DEX API ───────────────────────────────────────────────────────
|
|
329
|
+
// Credentials are resolved at call time (not module-load constants) so tests
|
|
330
|
+
// can pin them per process and operators can rotate them without a rebuild.
|
|
331
|
+
// They are used only to sign outbound requests to the OKX API and must never
|
|
332
|
+
// be logged, echoed into errors, or included in tool responses.
|
|
333
|
+
export const OKX_API_BASE = process.env.OKX_API_BASE || "https://web3.okx.com";
|
|
334
|
+
export const OKX_SWAP_ENDPOINT = "/api/v6/dex/aggregator/swap";
|
|
335
|
+
export function okxApiCredentials() {
|
|
336
|
+
const apiKey = process.env.OKX_API_KEY?.trim();
|
|
337
|
+
const apiSecret = process.env.OKX_API_SECRET?.trim();
|
|
338
|
+
const passphrase = process.env.OKX_API_PASSPHRASE?.trim();
|
|
339
|
+
const projectId = process.env.OKX_API_PROJECT_ID?.trim();
|
|
340
|
+
const missing = [];
|
|
341
|
+
if (!apiKey)
|
|
342
|
+
missing.push("OKX_API_KEY");
|
|
343
|
+
if (!apiSecret)
|
|
344
|
+
missing.push("OKX_API_SECRET");
|
|
345
|
+
if (!passphrase)
|
|
346
|
+
missing.push("OKX_API_PASSPHRASE");
|
|
347
|
+
if (missing.length > 0)
|
|
348
|
+
return { ok: false, missing };
|
|
349
|
+
return { ok: true, credentials: { apiKey: apiKey, apiSecret: apiSecret, passphrase: passphrase, projectId: projectId || undefined } };
|
|
350
|
+
}
|
|
173
351
|
// ─── Risk Engine Thresholds ────────────────────────────────────────────
|
|
352
|
+
// Weighted risk-engine block boundary (block when score > 80). NOTE: the hosted
|
|
353
|
+
// Anvita engine deliberately blocks earlier (score ≥ 70) — see
|
|
354
|
+
// docs/DECISION_CONTRACT.md §Thresholds for the documented divergence.
|
|
174
355
|
export const RISK_BLOCK_THRESHOLD = 80;
|
|
175
|
-
|
|
356
|
+
// A counterparty dimension at/above this is critical (missing/invalid/zero
|
|
357
|
+
// recipient). Shared by the policy engine's `risk_counterparty` check (the
|
|
358
|
+
// decider) and the risk engine's advisory recommendation escalation — the two
|
|
359
|
+
// must never drift apart, so both read this single constant.
|
|
360
|
+
export const COUNTERPARTY_CRITICAL_THRESHOLD = 90;
|
|
176
361
|
export const MAX_SLIPPAGE_PCT = 5;
|
|
177
362
|
export const MAX_BALANCE_USAGE_PCT = 90;
|
|
178
363
|
// ─── Safety Limits ─────────────────────────────────────────────────────
|
|
179
|
-
export const
|
|
364
|
+
export const MAX_TX_AMOUNT_PROS = process.env.MAX_TX_AMOUNT_PROS || "0.1";
|
|
180
365
|
export const MAX_APPROVAL_AMOUNT_USDC = process.env.MAX_APPROVAL_AMOUNT_USDC || "10";
|
|
181
366
|
export const MAX_DAILY_SPEND_USD = process.env.MAX_DAILY_SPEND_USD || "10";
|
|
182
367
|
export const MAX_X402_PAYMENT_USDC = process.env.MAX_X402_PAYMENT_USDC || "0.01";
|
|
183
|
-
export const X402_PAYMENT_TOKEN_ADDRESS = (process.env.X402_PAYMENT_TOKEN_ADDRESS ||
|
|
368
|
+
export const X402_PAYMENT_TOKEN_ADDRESS = (process.env.X402_PAYMENT_TOKEN_ADDRESS || activeUsdcAddress());
|
|
184
369
|
// ─── Risk Weights ──────────────────────────────────────────────────────
|
|
185
370
|
export const RISK_WEIGHTS = {
|
|
186
371
|
liquidityRisk: 0.25,
|
|
@@ -243,61 +428,83 @@ export const ERC20_ABI = [
|
|
|
243
428
|
outputs: [{ name: "", type: "bool" }],
|
|
244
429
|
},
|
|
245
430
|
];
|
|
246
|
-
// ───
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
431
|
+
// ─── Managed-execution authorization gates ─────────────────────────
|
|
432
|
+
// NOTE: RiskRegistryV2 was retired in the P12 two-contract refactor. Managed-wallet
|
|
433
|
+
// authorization now reads from SafeHandsRegistry (see lib/safeHandsRegistry.ts);
|
|
434
|
+
// the former RISK_REGISTRY_V2_ADDRESS / RISK_REGISTRY_V2_ABI / DEFAULT_RISK_REGISTRY_VERSION
|
|
435
|
+
// exports were dead (unreferenced) and have been removed.
|
|
436
|
+
export const REQUIRE_AUTHORIZED_AGENT_FOR_WRITE = (process.env.REQUIRE_AUTHORIZED_AGENT_FOR_WRITE ?? "true") === "true";
|
|
437
|
+
// x402 is permissionless-first: self-signed x402 (the agent's own key) never needed
|
|
438
|
+
// registry authorization, and a managed/custodial x402 payment is allowlist-gated
|
|
439
|
+
// ONLY when this is explicitly opted in. Default OFF so x402 stays frictionless;
|
|
440
|
+
// the heavier managed write paths (swap/payment/approve) keep the default-on
|
|
441
|
+
// REQUIRE_AUTHORIZED_AGENT_FOR_WRITE gate above.
|
|
442
|
+
export const REQUIRE_AUTHORIZED_AGENT_FOR_X402 = process.env.REQUIRE_AUTHORIZED_AGENT_FOR_X402 === "true";
|
|
443
|
+
export const AUTO_AUTHORIZE_AGENT_WALLET = process.env.AUTO_AUTHORIZE_AGENT_WALLET === "true";
|
|
444
|
+
// ─── SafeHands on-chain layer (2-contract architecture) ────────────────
|
|
445
|
+
// SafeHandsRegistry — trust + reputation oracle
|
|
446
|
+
// SafeHandsAttestation — immutable proof ledger (see pharos/attestationPublisher.ts)
|
|
447
|
+
// Deployed on Pharos Pacific mainnet (chainId 1672) and baked as READ-path
|
|
448
|
+
// defaults below. Env vars still override; a chainId guard keeps the baked
|
|
449
|
+
// defaults Pacific-only (any other chain resolves to "" → fail-closed). Write
|
|
450
|
+
// availability is gated separately (WRITE_TOOLS_ENABLED + attester key) via
|
|
451
|
+
// process.env reads, so baking these read defaults never enables a write.
|
|
452
|
+
const SAFEHANDS_REGISTRY_ADDRESS_PACIFIC = "0x428e02bf85412e7242d991cd6725ec59e8b06c8d";
|
|
453
|
+
const SAFEHANDS_ATTESTATION_ADDRESS_PACIFIC = "0x71a7a87b3b1ab6d86204cad691bb32fd75b4588c";
|
|
454
|
+
const PACIFIC_MAINNET_CHAIN_ID = 1672;
|
|
455
|
+
/** Read-path resolver: env override → Pacific-mainnet baked default → "" (chainId-guarded, fail-closed). */
|
|
456
|
+
export function resolveSafeHandsRegistryAddress(chainId = CHAIN_ID) {
|
|
457
|
+
const env = process.env.SAFEHANDS_REGISTRY_ADDRESS || process.env.SAFEHANDS_RISK_REGISTRY_ADDRESS || "";
|
|
458
|
+
if (env)
|
|
459
|
+
return env;
|
|
460
|
+
return chainId === PACIFIC_MAINNET_CHAIN_ID ? SAFEHANDS_REGISTRY_ADDRESS_PACIFIC : "";
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Read-path resolver: env override → Pacific-mainnet baked default → "" (chainId-guarded, fail-closed).
|
|
464
|
+
* NOTE: the legacy SAFEHANDS_RISK_REGISTRY_ADDRESS var aliases the REGISTRY contract only and is
|
|
465
|
+
* deliberately NOT accepted here — the attestation ledger is a different contract, and aliasing
|
|
466
|
+
* both to one address produced ABI-mismatch reads.
|
|
467
|
+
*/
|
|
468
|
+
export function resolveSafeHandsAttestationAddress(chainId = CHAIN_ID) {
|
|
469
|
+
const env = process.env.SAFEHANDS_ATTESTATION_ADDRESS || "";
|
|
470
|
+
if (env)
|
|
471
|
+
return env;
|
|
472
|
+
return chainId === PACIFIC_MAINNET_CHAIN_ID ? SAFEHANDS_ATTESTATION_ADDRESS_PACIFIC : "";
|
|
473
|
+
}
|
|
474
|
+
// Back-compat consts — existing reporting consumers keep importing these unchanged.
|
|
475
|
+
export const SAFEHANDS_REGISTRY_ADDRESS = resolveSafeHandsRegistryAddress();
|
|
476
|
+
export const SAFEHANDS_ATTESTATION_ADDRESS = resolveSafeHandsAttestationAddress();
|
|
477
|
+
// NOTE: the former NO_RISK_SCORE = 255 sentinel was removed — the Merkle-batched
|
|
478
|
+
// SafeHandsRegistry has no per-record riskScoreOf read, and no code path consumed
|
|
479
|
+
// the sentinel (its last import in agentEnrich.ts was dead).
|
|
480
|
+
export const SAFEHANDS_REGISTRY_ABI = parseAbi([
|
|
481
|
+
"function owner() view returns (address)",
|
|
482
|
+
"function isAuthorizedOperator(address) view returns (bool)",
|
|
483
|
+
"function isAuthorizedAgent(address) view returns (bool)",
|
|
484
|
+
"function setAuthorizedAgent(address agent, bool authorized)",
|
|
485
|
+
"function setAuthorizedAgents(address[] agents, bool authorized)",
|
|
486
|
+
"function setOperator(address operator, bool authorized)",
|
|
487
|
+
"function currentMerkleRoot() view returns (bytes32)",
|
|
488
|
+
"function currentDataURI() view returns (string)",
|
|
489
|
+
"function commitRiskRoot(bytes32 root, string dataURI)",
|
|
490
|
+
"function verifyRiskRecord(address target, bytes32 actionHash, uint8 score, uint8 level, uint8 recommendation, bytes32 policyVersionHash, bytes32 evidenceHash, uint64 expiresAt, bytes32[] proof) view returns (bool)",
|
|
491
|
+
]);
|
|
492
|
+
// ─── Canonical Infrastructure Contracts ─────────────────────────────────
|
|
493
|
+
// Recognized as safe by the SafeHands Policy Engine to reduce false positives.
|
|
494
|
+
// Derived from the canonical ecosystem registry (src/data/ecosystemRegistry.data.ts)
|
|
495
|
+
// so the policy engine, the read-API analyzer (contractIntel), and the Anvita
|
|
496
|
+
// hosted-skill assets all recognize the same set — the registry is the single
|
|
497
|
+
// source of truth for these addresses.
|
|
498
|
+
function canonicalRegistryAddresses(itemId) {
|
|
499
|
+
const item = ECOSYSTEM_REGISTRY_ITEMS.find((i) => i.id === itemId);
|
|
500
|
+
return (item?.contracts ?? []).map((c) => c.address.toLowerCase());
|
|
501
|
+
}
|
|
502
|
+
export const PACIFIC_CANONICAL_CONTRACTS = canonicalRegistryAddresses("infrastructure:pacific-mainnet:canonical-contracts");
|
|
503
|
+
export const ATLANTIC_CANONICAL_CONTRACTS = canonicalRegistryAddresses("infrastructure:atlantic-testnet:canonical-contracts");
|
|
504
|
+
export function isCanonicalInfrastructure(address, isMainnet) {
|
|
505
|
+
if (!address)
|
|
506
|
+
return false;
|
|
507
|
+
const list = isMainnet ? PACIFIC_CANONICAL_CONTRACTS : ATLANTIC_CANONICAL_CONTRACTS;
|
|
508
|
+
return list.includes(address.toLowerCase());
|
|
509
|
+
}
|
|
303
510
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
|