safehands-pharos 1.2.6 → 1.4.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.
Files changed (153) hide show
  1. package/.env.example +64 -26
  2. package/README.md +333 -445
  3. package/dist/cli.d.ts +5 -5
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +124 -98
  6. package/dist/cli.js.map +1 -1
  7. package/dist/demo.d.ts +1 -1
  8. package/dist/demo.js +171 -171
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.js +138 -87
  11. package/dist/index.js.map +1 -1
  12. package/dist/init.d.ts +1 -1
  13. package/dist/init.js +65 -65
  14. package/dist/lib/auditLog.d.ts +9 -0
  15. package/dist/lib/auditLog.d.ts.map +1 -0
  16. package/dist/lib/auditLog.js +30 -0
  17. package/dist/lib/auditLog.js.map +1 -0
  18. package/dist/lib/constants.d.ts +291 -291
  19. package/dist/lib/constants.js +292 -292
  20. package/dist/lib/dodoApi.d.ts +78 -70
  21. package/dist/lib/dodoApi.d.ts.map +1 -1
  22. package/dist/lib/dodoApi.js +196 -178
  23. package/dist/lib/dodoApi.js.map +1 -1
  24. package/dist/lib/http.d.ts +14 -14
  25. package/dist/lib/http.js +118 -118
  26. package/dist/lib/pharosClient.d.ts +58 -58
  27. package/dist/lib/pharosClient.d.ts.map +1 -1
  28. package/dist/lib/pharosClient.js +63 -53
  29. package/dist/lib/pharosClient.js.map +1 -1
  30. package/dist/lib/policy/actionPolicyEngine.d.ts +53 -53
  31. package/dist/lib/policy/actionPolicyEngine.js +212 -212
  32. package/dist/lib/policy/actionPolicyEngine.js.map +1 -1
  33. package/dist/lib/riskEngine.d.ts +26 -26
  34. package/dist/lib/riskEngine.js +283 -283
  35. package/dist/lib/signer/index.d.ts +24 -24
  36. package/dist/lib/signer/index.d.ts.map +1 -1
  37. package/dist/lib/signer/index.js +88 -89
  38. package/dist/lib/signer/index.js.map +1 -1
  39. package/dist/lib/spendAccumulator.d.ts +10 -0
  40. package/dist/lib/spendAccumulator.d.ts.map +1 -0
  41. package/dist/lib/spendAccumulator.js +54 -0
  42. package/dist/lib/spendAccumulator.js.map +1 -0
  43. package/dist/lib/testDodoLive.d.ts +1 -1
  44. package/dist/lib/testDodoLive.js +104 -104
  45. package/dist/lib/testLiveSafehands.d.ts +1 -1
  46. package/dist/lib/testLiveSafehands.js +92 -92
  47. package/dist/lib/testRpc.d.ts +1 -1
  48. package/dist/lib/testRpc.js +29 -29
  49. package/dist/lib/testRpcLive.d.ts +1 -1
  50. package/dist/lib/testRpcLive.js +88 -88
  51. package/dist/lib/testTools.d.ts +1 -1
  52. package/dist/lib/testTools.js +397 -397
  53. package/dist/lib/testX402Live.d.ts +1 -1
  54. package/dist/lib/testX402Live.js +159 -159
  55. package/dist/lib/toolResponse.d.ts +25 -25
  56. package/dist/lib/toolResponse.js +53 -53
  57. package/dist/lib/wallet/index.d.ts +37 -18
  58. package/dist/lib/wallet/index.d.ts.map +1 -1
  59. package/dist/lib/wallet/index.js +128 -70
  60. package/dist/lib/wallet/index.js.map +1 -1
  61. package/dist/scripts/checkDeploy.d.ts +1 -1
  62. package/dist/scripts/checkDeploy.js +24 -24
  63. package/dist/scripts/deployRegistry.d.ts +1 -1
  64. package/dist/scripts/deployRegistry.js +100 -100
  65. package/dist/scripts/testRegistry.d.ts +1 -1
  66. package/dist/scripts/testRegistry.js +43 -43
  67. package/dist/tools/approveToken.d.ts +45 -46
  68. package/dist/tools/approveToken.d.ts.map +1 -1
  69. package/dist/tools/approveToken.js +85 -83
  70. package/dist/tools/approveToken.js.map +1 -1
  71. package/dist/tools/assessRisk.d.ts +79 -79
  72. package/dist/tools/assessRisk.d.ts.map +1 -1
  73. package/dist/tools/assessRisk.js +104 -93
  74. package/dist/tools/assessRisk.js.map +1 -1
  75. package/dist/tools/checkAllowance.d.ts +43 -36
  76. package/dist/tools/checkAllowance.d.ts.map +1 -1
  77. package/dist/tools/checkAllowance.js +56 -42
  78. package/dist/tools/checkAllowance.js.map +1 -1
  79. package/dist/tools/checkTokenSecurity.d.ts +46 -46
  80. package/dist/tools/checkTokenSecurity.d.ts.map +1 -1
  81. package/dist/tools/checkTokenSecurity.js +95 -88
  82. package/dist/tools/checkTokenSecurity.js.map +1 -1
  83. package/dist/tools/createAgentWallet.d.ts +26 -26
  84. package/dist/tools/createAgentWallet.d.ts.map +1 -1
  85. package/dist/tools/createAgentWallet.js +58 -59
  86. package/dist/tools/createAgentWallet.js.map +1 -1
  87. package/dist/tools/estimateGas.d.ts +79 -79
  88. package/dist/tools/estimateGas.js +124 -124
  89. package/dist/tools/executeSwap.d.ts +61 -59
  90. package/dist/tools/executeSwap.d.ts.map +1 -1
  91. package/dist/tools/executeSwap.js +141 -129
  92. package/dist/tools/executeSwap.js.map +1 -1
  93. package/dist/tools/explainRisk.d.ts +29 -29
  94. package/dist/tools/explainRisk.js +32 -32
  95. package/dist/tools/getAgentWallet.d.ts +21 -21
  96. package/dist/tools/getAgentWallet.js +27 -27
  97. package/dist/tools/getAgentWalletBalance.d.ts +11 -11
  98. package/dist/tools/getAgentWalletBalance.js +70 -70
  99. package/dist/tools/getExecutionHistory.d.ts +49 -51
  100. package/dist/tools/getExecutionHistory.d.ts.map +1 -1
  101. package/dist/tools/getExecutionHistory.js +154 -93
  102. package/dist/tools/getExecutionHistory.js.map +1 -1
  103. package/dist/tools/getGasPrice.d.ts +43 -43
  104. package/dist/tools/getGasPrice.js +59 -59
  105. package/dist/tools/getPoolInfo.d.ts +75 -75
  106. package/dist/tools/getPoolInfo.js +137 -137
  107. package/dist/tools/getTokenPrice.d.ts +113 -113
  108. package/dist/tools/getTokenPrice.js +117 -117
  109. package/dist/tools/getTransactionStatus.d.ts +43 -57
  110. package/dist/tools/getTransactionStatus.d.ts.map +1 -1
  111. package/dist/tools/getTransactionStatus.js +59 -67
  112. package/dist/tools/getTransactionStatus.js.map +1 -1
  113. package/dist/tools/getWalletBalance.d.ts +68 -68
  114. package/dist/tools/getWalletBalance.js +87 -87
  115. package/dist/tools/publishRiskScore.d.ts +63 -63
  116. package/dist/tools/publishRiskScore.d.ts.map +1 -1
  117. package/dist/tools/publishRiskScore.js +88 -85
  118. package/dist/tools/publishRiskScore.js.map +1 -1
  119. package/dist/tools/queryRiskRegistry.d.ts +38 -48
  120. package/dist/tools/queryRiskRegistry.d.ts.map +1 -1
  121. package/dist/tools/queryRiskRegistry.js +55 -60
  122. package/dist/tools/queryRiskRegistry.js.map +1 -1
  123. package/dist/tools/safehandsPreflightCheck.d.ts +77 -77
  124. package/dist/tools/safehandsPreflightCheck.js +47 -47
  125. package/dist/tools/safehandsRiskReport.d.ts +81 -81
  126. package/dist/tools/safehandsRiskReport.js +28 -28
  127. package/dist/tools/safehandsSafeExecute.d.ts +20 -20
  128. package/dist/tools/safehandsSafeExecute.d.ts.map +1 -1
  129. package/dist/tools/safehandsSafeExecute.js +81 -75
  130. package/dist/tools/safehandsSafeExecute.js.map +1 -1
  131. package/dist/tools/safehandsWalletHealth.d.ts +14 -14
  132. package/dist/tools/safehandsWalletHealth.js +103 -103
  133. package/dist/tools/safehandsX402Preflight.d.ts +26 -26
  134. package/dist/tools/safehandsX402Preflight.js +65 -65
  135. package/dist/tools/sendPayment.d.ts +57 -58
  136. package/dist/tools/sendPayment.d.ts.map +1 -1
  137. package/dist/tools/sendPayment.js +117 -108
  138. package/dist/tools/sendPayment.js.map +1 -1
  139. package/dist/tools/simulateTransaction.d.ts +60 -81
  140. package/dist/tools/simulateTransaction.d.ts.map +1 -1
  141. package/dist/tools/simulateTransaction.js +83 -88
  142. package/dist/tools/simulateTransaction.js.map +1 -1
  143. package/dist/tools/tokenRegistryStatus.d.ts +26 -26
  144. package/dist/tools/tokenRegistryStatus.js +96 -96
  145. package/dist/tools/x402PayAndFetch.d.ts +81 -81
  146. package/dist/tools/x402PayAndFetch.d.ts.map +1 -1
  147. package/dist/tools/x402PayAndFetch.js +152 -149
  148. package/dist/tools/x402PayAndFetch.js.map +1 -1
  149. package/dist/x402Server.d.ts +1 -1
  150. package/dist/x402Server.js +252 -252
  151. package/examples/dashboard/index.html +337 -0
  152. package/package.json +83 -82
  153. package/skill/SKILL.md +133 -133
@@ -1,86 +1,89 @@
1
- // ─── Tool: publish_risk_score ──────────────────────────────────────────
2
- // Publishes a risk assessment result to the on-chain RiskRegistry.
3
- // ────────────────────────────────────────────────────────────────────────
4
- import { z } from "zod";
5
- import { publicClient, createPharosWalletClientFromAccount, getExplorerUrl } from "../lib/pharosClient.js";
6
- import { RISK_REGISTRY_ADDRESS, RISK_REGISTRY_ABI, CHAIN_ID, PHAROS_ENVIRONMENT } from "../lib/constants.js";
7
- import { assessRisk } from "../lib/riskEngine.js";
8
- import { fail, ok, requireWriteToolsEnabled, classifyExternalError } from "../lib/toolResponse.js";
9
- import { getSigner, isSignerFailure } from "../lib/signer/index.js";
10
- import { evaluateActionPolicy } from "../lib/policy/actionPolicyEngine.js";
11
- export const publishRiskScoreSchema = z.object({
12
- action: z.enum(["swap", "transfer"]).describe("Type of on-chain action to assess"),
13
- tokenIn: z.string().optional(),
14
- tokenOut: z.string().optional(),
15
- amount: z.string().describe("Human-readable amount"),
16
- toAddress: z.string().optional().describe("Recipient address (for transfers)"),
17
- agentId: z.string().optional().describe("Managed testnet wallet agentId when WALLET_MODE=managed-testnet"),
18
- });
19
- export const publishRiskScoreTool = {
20
- name: "publish_risk_score",
21
- description: "Run a risk assessment and publish the result to the on-chain RiskRegistry. " +
22
- "Other agents can then query this wallet's risk score without re-running the assessment.",
23
- inputSchema: publishRiskScoreSchema,
24
- };
25
- export async function handlePublishRiskScore(raw) {
26
- const writeGuard = requireWriteToolsEnabled("publish_risk_score");
27
- if (writeGuard)
28
- return writeGuard;
29
- const input = publishRiskScoreSchema.parse(raw);
30
- const signer = await getSigner(input.agentId);
31
- if (isSignerFailure(signer)) {
32
- return fail(signer.error.code, signer.error.message, false, "publish_risk_score");
33
- }
34
- const policy = evaluateActionPolicy({
35
- actionType: "publish_risk_score",
36
- chainId: CHAIN_ID,
37
- environment: PHAROS_ENVIRONMENT,
38
- isMainnet: false,
39
- signerAvailable: true,
40
- requiresSigner: true,
41
- });
42
- if (policy.decision === "BLOCK") {
43
- return fail("POLICY_BLOCKED", policy.reasons.join(" ") || "Publishing blocked by SafeHands policy.", false, "publish_risk_score");
44
- }
45
- const walletAddress = signer.address;
46
- const assessment = await assessRisk({
47
- action: input.action,
48
- tokenIn: input.tokenIn,
49
- tokenOut: input.tokenOut,
50
- amount: input.amount,
51
- toAddress: input.toAddress,
52
- walletAddress,
53
- });
54
- try {
55
- const wallet = createPharosWalletClientFromAccount(signer.account);
56
- const txHash = await wallet.writeContract({
57
- address: RISK_REGISTRY_ADDRESS,
58
- abi: RISK_REGISTRY_ABI,
59
- functionName: "publish",
60
- args: [
61
- walletAddress,
62
- BigInt(assessment.riskScore),
63
- assessment.riskLevel,
64
- assessment.recommendation,
65
- ],
66
- });
67
- const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
68
- return ok({
69
- assessment,
70
- policy,
71
- signerMode: signer.mode,
72
- onChain: {
73
- txHash,
74
- explorerUrl: getExplorerUrl(txHash),
75
- contractAddress: RISK_REGISTRY_ADDRESS,
76
- gasUsed: receipt.gasUsed.toString(),
77
- blockNumber: receipt.blockNumber.toString(),
78
- },
79
- source: "publish_risk_score",
80
- });
81
- }
82
- catch (err) {
83
- return classifyExternalError("pharos_rpc", err);
84
- }
85
- }
1
+ // ─── Tool: publish_risk_score ──────────────────────────────────────────
2
+ // Publishes a risk assessment result to the on-chain RiskRegistry.
3
+ // ────────────────────────────────────────────────────────────────────────
4
+ import { z } from "zod";
5
+ import { publicClient, createPharosWalletClientFromAccount, getExplorerUrl } from "../lib/pharosClient.js";
6
+ import { RISK_REGISTRY_ADDRESS, RISK_REGISTRY_ABI, CHAIN_ID, PHAROS_ENVIRONMENT } from "../lib/constants.js";
7
+ import { assessRisk } from "../lib/riskEngine.js";
8
+ import { fail, ok, classifyExternalError } from "../lib/toolResponse.js";
9
+ import { getSigner, isSignerFailure } from "../lib/signer/index.js";
10
+ import { evaluateActionPolicy } from "../lib/policy/actionPolicyEngine.js";
11
+ export const publishRiskScoreSchema = z.object({
12
+ action: z.enum(["swap", "transfer"]).describe("Type of on-chain action to assess"),
13
+ tokenIn: z.string().optional(),
14
+ tokenOut: z.string().optional(),
15
+ amount: z.string().describe("Human-readable amount"),
16
+ toAddress: z.string().optional().describe("Recipient address (for transfers)"),
17
+ agentId: z.string().optional().describe("Managed testnet wallet agentId when WALLET_MODE=managed-testnet"),
18
+ });
19
+ export const publishRiskScoreTool = {
20
+ name: "publish_risk_score",
21
+ description: "Run a risk assessment and publish the result to the on-chain RiskRegistry. " +
22
+ "Other agents can then query this wallet's risk score without re-running the assessment.",
23
+ inputSchema: publishRiskScoreSchema,
24
+ };
25
+ export async function handlePublishRiskScore(raw) {
26
+ if (process.env.WRITE_TOOLS_ENABLED !== "true") {
27
+ return fail("WRITE_TOOLS_DISABLED", "publish_risk_score is disabled by default. Set WRITE_TOOLS_ENABLED=true only for trusted testnet execution.", false, "publish_risk_score");
28
+ }
29
+ const input = publishRiskScoreSchema.parse(raw);
30
+ const signer = await getSigner(input.agentId);
31
+ if (isSignerFailure(signer)) {
32
+ return fail(signer.error.code, signer.error.message, false, "publish_risk_score");
33
+ }
34
+ const policy = evaluateActionPolicy({
35
+ actionType: "publish_risk_score",
36
+ chainId: CHAIN_ID,
37
+ environment: PHAROS_ENVIRONMENT,
38
+ isMainnet: false,
39
+ signerAvailable: true,
40
+ requiresSigner: true,
41
+ });
42
+ if (policy.decision === "BLOCK") {
43
+ return fail("POLICY_BLOCKED", policy.reasons.join(" ") || "Publishing blocked by SafeHands policy.", false, "publish_risk_score");
44
+ }
45
+ const walletAddress = signer.address;
46
+ const assessment = await assessRisk({
47
+ action: input.action,
48
+ tokenIn: input.tokenIn,
49
+ tokenOut: input.tokenOut,
50
+ amount: input.amount,
51
+ toAddress: input.toAddress,
52
+ walletAddress,
53
+ });
54
+ try {
55
+ const wallet = createPharosWalletClientFromAccount(signer.account);
56
+ const txHash = await wallet.writeContract({
57
+ address: RISK_REGISTRY_ADDRESS,
58
+ abi: RISK_REGISTRY_ABI,
59
+ functionName: "publish",
60
+ args: [
61
+ walletAddress,
62
+ BigInt(assessment.riskScore),
63
+ assessment.riskLevel,
64
+ assessment.recommendation,
65
+ ],
66
+ });
67
+ const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
68
+ if (receipt.status !== "success") {
69
+ return fail("TX_REVERTED", "publish_risk_score transaction was mined but reverted on-chain. Ensure the calling wallet is authorized via RiskRegistry.setAuthorizedAgent() by the contract owner.", false, "publish_risk_score");
70
+ }
71
+ return ok({
72
+ assessment,
73
+ policy,
74
+ signerMode: signer.mode,
75
+ onChain: {
76
+ txHash,
77
+ explorerUrl: getExplorerUrl(txHash),
78
+ contractAddress: RISK_REGISTRY_ADDRESS,
79
+ gasUsed: receipt.gasUsed.toString(),
80
+ blockNumber: receipt.blockNumber.toString(),
81
+ },
82
+ source: "publish_risk_score",
83
+ });
84
+ }
85
+ catch (err) {
86
+ return classifyExternalError("pharos_rpc", err);
87
+ }
88
+ }
86
89
  //# sourceMappingURL=publishRiskScore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publishRiskScore.js","sourceRoot":"","sources":["../../src/tools/publishRiskScore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publishRiskScore.js","sourceRoot":"","sources":["../../src/tools/publishRiskScore.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,39 @@
1
- import { z } from "zod";
2
- export declare const queryRiskRegistrySchema: z.ZodObject<{
3
- walletAddress: z.ZodString;
4
- }, "strip", z.ZodTypeAny, {
5
- walletAddress: string;
6
- }, {
7
- walletAddress: string;
8
- }>;
9
- export type QueryRiskRegistryInput = z.input<typeof queryRiskRegistrySchema>;
10
- export declare const queryRiskRegistryTool: {
11
- name: string;
12
- description: string;
13
- inputSchema: z.ZodObject<{
14
- walletAddress: z.ZodString;
15
- }, "strip", z.ZodTypeAny, {
16
- walletAddress: string;
17
- }, {
18
- walletAddress: string;
19
- }>;
20
- };
21
- export declare function handleQueryRiskRegistry(raw: QueryRiskRegistryInput): Promise<{
22
- walletAddress: string;
23
- found: boolean;
24
- record: null;
25
- registryContract: `0x${string}`;
26
- message: string;
27
- error?: undefined;
28
- } | {
29
- walletAddress: string;
30
- found: boolean;
31
- record: {
32
- score: number;
33
- riskLevel: string;
34
- recommendation: string;
35
- timestamp: string;
36
- assessedBy: `0x${string}`;
37
- };
38
- registryContract: `0x${string}`;
39
- message?: undefined;
40
- error?: undefined;
41
- } | {
42
- walletAddress: string;
43
- found: boolean;
44
- record: null;
45
- registryContract: `0x${string}`;
46
- error: string;
47
- message?: undefined;
48
- }>;
1
+ import { z } from "zod";
2
+ export declare const queryRiskRegistrySchema: z.ZodObject<{
3
+ walletAddress: z.ZodString;
4
+ }, "strip", z.ZodTypeAny, {
5
+ walletAddress: string;
6
+ }, {
7
+ walletAddress: string;
8
+ }>;
9
+ export type QueryRiskRegistryInput = z.input<typeof queryRiskRegistrySchema>;
10
+ export declare const queryRiskRegistryTool: {
11
+ name: string;
12
+ description: string;
13
+ inputSchema: z.ZodObject<{
14
+ walletAddress: z.ZodString;
15
+ }, "strip", z.ZodTypeAny, {
16
+ walletAddress: string;
17
+ }, {
18
+ walletAddress: string;
19
+ }>;
20
+ };
21
+ export declare function handleQueryRiskRegistry(raw: QueryRiskRegistryInput): Promise<import("../lib/toolResponse.js").ToolFailure | import("../lib/toolResponse.js").ToolSuccess<{
22
+ walletAddress: string;
23
+ found: boolean;
24
+ record: null;
25
+ registryContract: `0x${string}`;
26
+ message: string;
27
+ }> | import("../lib/toolResponse.js").ToolSuccess<{
28
+ walletAddress: string;
29
+ found: boolean;
30
+ record: {
31
+ score: number;
32
+ riskLevel: string;
33
+ recommendation: string;
34
+ timestamp: string;
35
+ assessedBy: `0x${string}`;
36
+ };
37
+ registryContract: `0x${string}`;
38
+ }>>;
49
39
  //# sourceMappingURL=queryRiskRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryRiskRegistry.d.ts","sourceRoot":"","sources":["../../src/tools/queryRiskRegistry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,eAAO,MAAM,qBAAqB;;;;;;;;;;CAMjC,CAAC;AAEF,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDxE"}
1
+ {"version":3,"file":"queryRiskRegistry.d.ts","sourceRoot":"","sources":["../../src/tools/queryRiskRegistry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,uBAAuB;;;;;;EAElC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,eAAO,MAAM,qBAAqB;;;;;;;;;;CAMjC,CAAC;AAEF,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,sBAAsB;;;;;;;;;;;;;;;;;IA8CxE"}
@@ -1,61 +1,56 @@
1
- // ─── Tool: query_risk_registry ─────────────────────────────────────────
2
- // Queries the on-chain RiskRegistry for a wallet's published risk score.
3
- // Read-only — no private key needed.
4
- // ────────────────────────────────────────────────────────────────────────
5
- import { z } from "zod";
6
- import { publicClient } from "../lib/pharosClient.js";
7
- import { RISK_REGISTRY_ADDRESS, RISK_REGISTRY_ABI } from "../lib/constants.js";
8
- export const queryRiskRegistrySchema = z.object({
9
- walletAddress: z.string().describe("Wallet address to query risk score for"),
10
- });
11
- export const queryRiskRegistryTool = {
12
- name: "query_risk_registry",
13
- description: "Query the on-chain RiskRegistry for a wallet's published risk score. " +
14
- "Read-only, no private key needed. Returns score, level, recommendation, timestamp, and assessor.",
15
- inputSchema: queryRiskRegistrySchema,
16
- };
17
- export async function handleQueryRiskRegistry(raw) {
18
- const input = queryRiskRegistrySchema.parse(raw);
19
- try {
20
- const result = (await publicClient.readContract({
21
- address: RISK_REGISTRY_ADDRESS,
22
- abi: RISK_REGISTRY_ABI,
23
- functionName: "query",
24
- args: [input.walletAddress],
25
- }));
26
- const score = Number(result.score);
27
- const timestamp = Number(result.timestamp);
28
- // Check if record exists (timestamp will be 0 if never published)
29
- if (timestamp === 0) {
30
- return {
31
- walletAddress: input.walletAddress,
32
- found: false,
33
- record: null,
34
- registryContract: RISK_REGISTRY_ADDRESS,
35
- message: "No risk score published for this wallet",
36
- };
37
- }
38
- return {
39
- walletAddress: input.walletAddress,
40
- found: true,
41
- record: {
42
- score,
43
- riskLevel: result.riskLevel,
44
- recommendation: result.recommendation,
45
- timestamp: new Date(timestamp * 1000).toISOString(),
46
- assessedBy: result.assessedBy,
47
- },
48
- registryContract: RISK_REGISTRY_ADDRESS,
49
- };
50
- }
51
- catch (err) {
52
- return {
53
- walletAddress: input.walletAddress,
54
- found: false,
55
- record: null,
56
- registryContract: RISK_REGISTRY_ADDRESS,
57
- error: `Failed to query registry: ${err.message}`,
58
- };
59
- }
60
- }
1
+ // ─── Tool: query_risk_registry ─────────────────────────────────────────
2
+ // Queries the on-chain RiskRegistry for a wallet's published risk score.
3
+ // Read-only — no private key needed.
4
+ // ────────────────────────────────────────────────────────────────────────
5
+ import { z } from "zod";
6
+ import { publicClient } from "../lib/pharosClient.js";
7
+ import { RISK_REGISTRY_ADDRESS, RISK_REGISTRY_ABI } from "../lib/constants.js";
8
+ import { ok, fail } from "../lib/toolResponse.js";
9
+ export const queryRiskRegistrySchema = z.object({
10
+ walletAddress: z.string().describe("Wallet address to query risk score for"),
11
+ });
12
+ export const queryRiskRegistryTool = {
13
+ name: "query_risk_registry",
14
+ description: "Query the on-chain RiskRegistry for a wallet's published risk score. " +
15
+ "Read-only, no private key needed. Returns score, level, recommendation, timestamp, and assessor.",
16
+ inputSchema: queryRiskRegistrySchema,
17
+ };
18
+ export async function handleQueryRiskRegistry(raw) {
19
+ const input = queryRiskRegistrySchema.parse(raw);
20
+ try {
21
+ const result = (await publicClient.readContract({
22
+ address: RISK_REGISTRY_ADDRESS,
23
+ abi: RISK_REGISTRY_ABI,
24
+ functionName: "query",
25
+ args: [input.walletAddress],
26
+ }));
27
+ const score = Number(result.score);
28
+ const timestamp = Number(result.timestamp);
29
+ // Check if record exists (timestamp will be 0 if never published)
30
+ if (timestamp === 0) {
31
+ return ok({
32
+ walletAddress: input.walletAddress,
33
+ found: false,
34
+ record: null,
35
+ registryContract: RISK_REGISTRY_ADDRESS,
36
+ message: "No risk score published for this wallet",
37
+ });
38
+ }
39
+ return ok({
40
+ walletAddress: input.walletAddress,
41
+ found: true,
42
+ record: {
43
+ score,
44
+ riskLevel: result.riskLevel,
45
+ recommendation: result.recommendation,
46
+ timestamp: new Date(timestamp * 1000).toISOString(),
47
+ assessedBy: result.assessedBy,
48
+ },
49
+ registryContract: RISK_REGISTRY_ADDRESS,
50
+ });
51
+ }
52
+ catch (err) {
53
+ return fail("REGISTRY_QUERY_FAILED", `Failed to query registry: ${err.message}`, true, "query_risk_registry");
54
+ }
55
+ }
61
56
  //# sourceMappingURL=queryRiskRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryRiskRegistry.js","sourceRoot":"","sources":["../../src/tools/queryRiskRegistry.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,yEAAyE;AACzE,qCAAqC;AACrC,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAkB,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CAC7E,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,uEAAuE;QACvE,kGAAkG;IACpG,WAAW,EAAE,uBAAuB;CACrC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAA2B;IACvE,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;YAC9C,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,iBAAiB;YACtB,YAAY,EAAE,OAAO;YACrB,IAAI,EAAE,CAAC,KAAK,CAAC,aAA8B,CAAC;SAC7C,CAAC,CAMD,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE3C,kEAAkE;QAClE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO;gBACL,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,IAAI;gBACZ,gBAAgB,EAAE,qBAAqB;gBACvC,OAAO,EAAE,yCAAyC;aACnD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,KAAK,EAAE,IAAI;YACX,MAAM,EAAE;gBACN,KAAK;gBACL,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;gBACnD,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B;YACD,gBAAgB,EAAE,qBAAqB;SACxC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,IAAI;YACZ,gBAAgB,EAAE,qBAAqB;YACvC,KAAK,EAAE,6BAA8B,GAAa,CAAC,OAAO,EAAE;SAC7D,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"queryRiskRegistry.js","sourceRoot":"","sources":["../../src/tools/queryRiskRegistry.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,yEAAyE;AACzE,qCAAqC;AACrC,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAkB,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CAC7E,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACT,uEAAuE;QACvE,kGAAkG;IACpG,WAAW,EAAE,uBAAuB;CACrC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAA2B;IACvE,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;YAC9C,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE,iBAAiB;YACtB,YAAY,EAAE,OAAO;YACrB,IAAI,EAAE,CAAC,KAAK,CAAC,aAA8B,CAAC;SAC7C,CAAC,CAMD,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE3C,kEAAkE;QAClE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;gBACR,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,IAAI;gBACZ,gBAAgB,EAAE,qBAAqB;gBACvC,OAAO,EAAE,yCAAyC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC;YACR,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,KAAK,EAAE,IAAI;YACX,MAAM,EAAE;gBACN,KAAK;gBACL,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;gBACnD,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B;YACD,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,uBAAuB,EAAE,6BAA8B,GAAa,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAC3H,CAAC;AACH,CAAC"}
@@ -1,78 +1,78 @@
1
- import { z } from "zod";
2
- import { type ToolResponse } from "../lib/toolResponse.js";
3
- export declare const safehandsPreflightCheckSchema: z.ZodObject<{
4
- actionType: z.ZodEnum<["send_payment", "approve_token", "execute_swap", "x402_pay_and_fetch", "publish_risk_score", "custom_contract_call"]>;
5
- chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
- environment: z.ZodDefault<z.ZodOptional<z.ZodString>>;
7
- isMainnet: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
8
- amount: z.ZodOptional<z.ZodString>;
9
- amountUnit: z.ZodOptional<z.ZodEnum<["PHRS", "USDC", "USD", "TOKEN"]>>;
10
- token: z.ZodOptional<z.ZodString>;
11
- tokenAddress: z.ZodOptional<z.ZodString>;
12
- tokenIn: z.ZodOptional<z.ZodString>;
13
- tokenOut: z.ZodOptional<z.ZodString>;
14
- recipient: z.ZodOptional<z.ZodString>;
15
- spender: z.ZodOptional<z.ZodString>;
16
- approvalAmount: z.ZodOptional<z.ZodString>;
17
- approvalToken: z.ZodOptional<z.ZodString>;
18
- approvalUnlimited: z.ZodOptional<z.ZodBoolean>;
19
- url: z.ZodOptional<z.ZodString>;
20
- paymentAmountUsdc: z.ZodOptional<z.ZodString>;
21
- paymentTokenAddress: z.ZodDefault<z.ZodOptional<z.ZodString>>;
22
- signerAvailable: z.ZodOptional<z.ZodBoolean>;
23
- tokenSecurityStatus: z.ZodOptional<z.ZodEnum<["ok", "unavailable", "unknown"]>>;
24
- recipientVerified: z.ZodOptional<z.ZodBoolean>;
25
- spenderVerified: z.ZodOptional<z.ZodBoolean>;
26
- requiresSigner: z.ZodOptional<z.ZodBoolean>;
27
- }, "strip", z.ZodTypeAny, {
28
- environment: string;
29
- actionType: "send_payment" | "approve_token" | "execute_swap" | "x402_pay_and_fetch" | "publish_risk_score" | "custom_contract_call";
30
- chainId: number;
31
- isMainnet: boolean;
32
- paymentTokenAddress: string;
33
- spender?: string | undefined;
34
- amount?: string | undefined;
35
- token?: string | undefined;
36
- tokenAddress?: string | undefined;
37
- amountUnit?: "PHRS" | "USDC" | "USD" | "TOKEN" | undefined;
38
- tokenIn?: string | undefined;
39
- tokenOut?: string | undefined;
40
- recipient?: string | undefined;
41
- approvalAmount?: string | undefined;
42
- approvalToken?: string | undefined;
43
- approvalUnlimited?: boolean | undefined;
44
- url?: string | undefined;
45
- paymentAmountUsdc?: string | undefined;
46
- signerAvailable?: boolean | undefined;
47
- tokenSecurityStatus?: "unknown" | "ok" | "unavailable" | undefined;
48
- recipientVerified?: boolean | undefined;
49
- spenderVerified?: boolean | undefined;
50
- requiresSigner?: boolean | undefined;
51
- }, {
52
- actionType: "send_payment" | "approve_token" | "execute_swap" | "x402_pay_and_fetch" | "publish_risk_score" | "custom_contract_call";
53
- spender?: string | undefined;
54
- amount?: string | undefined;
55
- environment?: string | undefined;
56
- token?: string | undefined;
57
- tokenAddress?: string | undefined;
58
- chainId?: number | undefined;
59
- isMainnet?: boolean | undefined;
60
- amountUnit?: "PHRS" | "USDC" | "USD" | "TOKEN" | undefined;
61
- tokenIn?: string | undefined;
62
- tokenOut?: string | undefined;
63
- recipient?: string | undefined;
64
- approvalAmount?: string | undefined;
65
- approvalToken?: string | undefined;
66
- approvalUnlimited?: boolean | undefined;
67
- url?: string | undefined;
68
- paymentAmountUsdc?: string | undefined;
69
- paymentTokenAddress?: string | undefined;
70
- signerAvailable?: boolean | undefined;
71
- tokenSecurityStatus?: "unknown" | "ok" | "unavailable" | undefined;
72
- recipientVerified?: boolean | undefined;
73
- spenderVerified?: boolean | undefined;
74
- requiresSigner?: boolean | undefined;
75
- }>;
76
- export type SafeHandsPreflightCheckInput = z.input<typeof safehandsPreflightCheckSchema>;
77
- export declare function handleSafeHandsPreflightCheck(raw: SafeHandsPreflightCheckInput): Promise<ToolResponse<unknown>>;
1
+ import { z } from "zod";
2
+ import { type ToolResponse } from "../lib/toolResponse.js";
3
+ export declare const safehandsPreflightCheckSchema: z.ZodObject<{
4
+ actionType: z.ZodEnum<["send_payment", "approve_token", "execute_swap", "x402_pay_and_fetch", "publish_risk_score", "custom_contract_call"]>;
5
+ chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
+ environment: z.ZodDefault<z.ZodOptional<z.ZodString>>;
7
+ isMainnet: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
8
+ amount: z.ZodOptional<z.ZodString>;
9
+ amountUnit: z.ZodOptional<z.ZodEnum<["PHRS", "USDC", "USD", "TOKEN"]>>;
10
+ token: z.ZodOptional<z.ZodString>;
11
+ tokenAddress: z.ZodOptional<z.ZodString>;
12
+ tokenIn: z.ZodOptional<z.ZodString>;
13
+ tokenOut: z.ZodOptional<z.ZodString>;
14
+ recipient: z.ZodOptional<z.ZodString>;
15
+ spender: z.ZodOptional<z.ZodString>;
16
+ approvalAmount: z.ZodOptional<z.ZodString>;
17
+ approvalToken: z.ZodOptional<z.ZodString>;
18
+ approvalUnlimited: z.ZodOptional<z.ZodBoolean>;
19
+ url: z.ZodOptional<z.ZodString>;
20
+ paymentAmountUsdc: z.ZodOptional<z.ZodString>;
21
+ paymentTokenAddress: z.ZodDefault<z.ZodOptional<z.ZodString>>;
22
+ signerAvailable: z.ZodOptional<z.ZodBoolean>;
23
+ tokenSecurityStatus: z.ZodOptional<z.ZodEnum<["ok", "unavailable", "unknown"]>>;
24
+ recipientVerified: z.ZodOptional<z.ZodBoolean>;
25
+ spenderVerified: z.ZodOptional<z.ZodBoolean>;
26
+ requiresSigner: z.ZodOptional<z.ZodBoolean>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ environment: string;
29
+ actionType: "send_payment" | "approve_token" | "execute_swap" | "x402_pay_and_fetch" | "publish_risk_score" | "custom_contract_call";
30
+ chainId: number;
31
+ isMainnet: boolean;
32
+ paymentTokenAddress: string;
33
+ spender?: string | undefined;
34
+ amount?: string | undefined;
35
+ token?: string | undefined;
36
+ tokenAddress?: string | undefined;
37
+ amountUnit?: "PHRS" | "USDC" | "USD" | "TOKEN" | undefined;
38
+ tokenIn?: string | undefined;
39
+ tokenOut?: string | undefined;
40
+ recipient?: string | undefined;
41
+ approvalAmount?: string | undefined;
42
+ approvalToken?: string | undefined;
43
+ approvalUnlimited?: boolean | undefined;
44
+ url?: string | undefined;
45
+ paymentAmountUsdc?: string | undefined;
46
+ signerAvailable?: boolean | undefined;
47
+ tokenSecurityStatus?: "unknown" | "ok" | "unavailable" | undefined;
48
+ recipientVerified?: boolean | undefined;
49
+ spenderVerified?: boolean | undefined;
50
+ requiresSigner?: boolean | undefined;
51
+ }, {
52
+ actionType: "send_payment" | "approve_token" | "execute_swap" | "x402_pay_and_fetch" | "publish_risk_score" | "custom_contract_call";
53
+ spender?: string | undefined;
54
+ amount?: string | undefined;
55
+ environment?: string | undefined;
56
+ token?: string | undefined;
57
+ tokenAddress?: string | undefined;
58
+ chainId?: number | undefined;
59
+ isMainnet?: boolean | undefined;
60
+ amountUnit?: "PHRS" | "USDC" | "USD" | "TOKEN" | undefined;
61
+ tokenIn?: string | undefined;
62
+ tokenOut?: string | undefined;
63
+ recipient?: string | undefined;
64
+ approvalAmount?: string | undefined;
65
+ approvalToken?: string | undefined;
66
+ approvalUnlimited?: boolean | undefined;
67
+ url?: string | undefined;
68
+ paymentAmountUsdc?: string | undefined;
69
+ paymentTokenAddress?: string | undefined;
70
+ signerAvailable?: boolean | undefined;
71
+ tokenSecurityStatus?: "unknown" | "ok" | "unavailable" | undefined;
72
+ recipientVerified?: boolean | undefined;
73
+ spenderVerified?: boolean | undefined;
74
+ requiresSigner?: boolean | undefined;
75
+ }>;
76
+ export type SafeHandsPreflightCheckInput = z.input<typeof safehandsPreflightCheckSchema>;
77
+ export declare function handleSafeHandsPreflightCheck(raw: SafeHandsPreflightCheckInput): Promise<ToolResponse<unknown>>;
78
78
  //# sourceMappingURL=safehandsPreflightCheck.d.ts.map