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,94 +1,105 @@
1
- // ─── Tool: assess_risk ─────────────────────────────────────────────────
2
- // Core risk assessment tool. Optional on-chain publishing uses SignerProvider
3
- // and never accepts or returns raw private keys.
4
- // ────────────────────────────────────────────────────────────────────────
5
- import { z } from "zod";
6
- import { assessRisk } from "../lib/riskEngine.js";
7
- import { createPharosWalletClientFromAccount, publicClient, getExplorerUrl } from "../lib/pharosClient.js";
8
- import { RISK_REGISTRY_ADDRESS, RISK_REGISTRY_ABI } from "../lib/constants.js";
9
- import { getSigner, isSignerFailure } from "../lib/signer/index.js";
10
- import { requireWriteToolsEnabled } from "../lib/toolResponse.js";
11
- export const assessRiskSchema = z.object({
12
- action: z.enum(["swap", "transfer"]),
13
- tokenIn: z.string().optional(),
14
- tokenOut: z.string().optional(),
15
- amount: z.string(),
16
- toAddress: z.string().optional(),
17
- walletAddress: z.string(),
18
- agentId: z.string().optional().describe("Managed testnet wallet agentId for optional registry publishing"),
19
- autoPublish: z.boolean().optional().default(false).describe("If true, publish to RiskRegistry through SignerProvider when write tools are enabled"),
20
- privateKey: z.string().optional().describe("Deprecated and ignored. Use SignerProvider via WALLET_MODE/agentId instead."),
21
- });
22
- export const assessRiskTool = {
23
- name: "assess_risk",
24
- description: "Evaluate risk of a planned on-chain action (swap or transfer). Returns 0-100 risk score with 5-dimension breakdown. " +
25
- "Optional RiskRegistry publishing uses SignerProvider when autoPublish=true.",
26
- inputSchema: assessRiskSchema,
27
- };
28
- export async function handleAssessRisk(raw) {
29
- const input = assessRiskSchema.parse(raw);
30
- if (input.action === "swap" && (!input.tokenIn || !input.tokenOut)) {
31
- throw new Error("Swap action requires both tokenIn and tokenOut");
32
- }
33
- if (input.action === "transfer" && !input.toAddress) {
34
- throw new Error("Transfer action requires toAddress");
35
- }
36
- const assessment = await assessRisk({
37
- action: input.action,
38
- tokenIn: input.tokenIn,
39
- tokenOut: input.tokenOut,
40
- amount: input.amount,
41
- toAddress: input.toAddress,
42
- walletAddress: input.walletAddress,
43
- });
44
- const result = { ...assessment };
45
- const wantsPublish = input.autoPublish || Boolean(input.privateKey);
46
- if (wantsPublish) {
47
- if (input.privateKey) {
48
- result.registryPublish = {
49
- published: false,
50
- error: "Direct privateKey input is deprecated and ignored. Use WALLET_MODE=managed-testnet with agentId or WALLET_MODE=env through SignerProvider.",
51
- };
52
- return result;
53
- }
54
- const writeGuard = requireWriteToolsEnabled("assess_risk_auto_publish");
55
- if (writeGuard) {
56
- result.registryPublish = { published: false, error: `${writeGuard.error.code}: ${writeGuard.error.message}` };
57
- return result;
58
- }
59
- const signer = await getSigner(input.agentId);
60
- if (isSignerFailure(signer)) {
61
- result.registryPublish = { published: false, error: `${signer.error.code}: ${signer.error.message}` };
62
- return result;
63
- }
64
- try {
65
- const wallet = createPharosWalletClientFromAccount(signer.account);
66
- const txHash = await wallet.writeContract({
67
- address: RISK_REGISTRY_ADDRESS,
68
- abi: RISK_REGISTRY_ABI,
69
- functionName: "publish",
70
- args: [
71
- input.walletAddress,
72
- BigInt(assessment.riskScore),
73
- assessment.riskLevel,
74
- assessment.recommendation,
75
- ],
76
- });
77
- await publicClient.waitForTransactionReceipt({ hash: txHash });
78
- result.registryPublish = {
79
- published: true,
80
- txHash,
81
- explorerUrl: getExplorerUrl(txHash),
82
- signerMode: signer.mode,
83
- };
84
- }
85
- catch (err) {
86
- result.registryPublish = {
87
- published: false,
88
- error: `Registry publish failed: ${err.message}`,
89
- };
90
- }
91
- }
92
- return result;
93
- }
1
+ // ─── Tool: assess_risk ─────────────────────────────────────────────────
2
+ // Core risk assessment tool. Optional on-chain publishing uses SignerProvider
3
+ // and never accepts or returns raw private keys.
4
+ // ────────────────────────────────────────────────────────────────────────
5
+ import { z } from "zod";
6
+ import { assessRisk } from "../lib/riskEngine.js";
7
+ import { createPharosWalletClientFromAccount, publicClient, getExplorerUrl } from "../lib/pharosClient.js";
8
+ import { RISK_REGISTRY_ADDRESS, RISK_REGISTRY_ABI } from "../lib/constants.js";
9
+ import { getSigner, isSignerFailure } from "../lib/signer/index.js";
10
+ import { requireWriteToolsEnabled } from "../lib/toolResponse.js";
11
+ export const assessRiskSchema = z.object({
12
+ action: z.enum(["swap", "transfer"]),
13
+ tokenIn: z.string().optional(),
14
+ tokenOut: z.string().optional(),
15
+ amount: z.string(),
16
+ toAddress: z.string().optional(),
17
+ walletAddress: z.string(),
18
+ agentId: z.string().optional().describe("Managed testnet wallet agentId for optional registry publishing"),
19
+ autoPublish: z.boolean().optional().default(false).describe("If true, publish to RiskRegistry through SignerProvider when write tools are enabled"),
20
+ privateKey: z.string().optional().describe("Deprecated and ignored. Use SignerProvider via WALLET_MODE/agentId instead."),
21
+ });
22
+ export const assessRiskTool = {
23
+ name: "assess_risk",
24
+ description: "Evaluate risk of a planned on-chain action (swap or transfer). Returns 0-100 risk score with 5-dimension breakdown. " +
25
+ "Optional RiskRegistry publishing uses SignerProvider when autoPublish=true.",
26
+ inputSchema: assessRiskSchema,
27
+ };
28
+ export async function handleAssessRisk(raw) {
29
+ const input = assessRiskSchema.parse(raw);
30
+ if (input.action === "swap" && (!input.tokenIn || !input.tokenOut)) {
31
+ throw new Error("Swap action requires both tokenIn and tokenOut");
32
+ }
33
+ if (input.action === "transfer" && !input.toAddress) {
34
+ throw new Error("Transfer action requires toAddress");
35
+ }
36
+ const assessment = await assessRisk({
37
+ action: input.action,
38
+ tokenIn: input.tokenIn,
39
+ tokenOut: input.tokenOut,
40
+ amount: input.amount,
41
+ toAddress: input.toAddress,
42
+ walletAddress: input.walletAddress,
43
+ });
44
+ const result = { ...assessment };
45
+ const wantsPublish = input.autoPublish || Boolean(input.privateKey);
46
+ if (wantsPublish) {
47
+ if (input.privateKey) {
48
+ result.registryPublish = {
49
+ published: false,
50
+ error: "Direct privateKey input is deprecated and ignored. Use WALLET_MODE=managed-testnet with agentId or WALLET_MODE=env through SignerProvider.",
51
+ };
52
+ return result;
53
+ }
54
+ const writeGuard = requireWriteToolsEnabled("assess_risk_auto_publish");
55
+ if (writeGuard) {
56
+ result.registryPublish = { published: false, error: `${writeGuard.error.code}: ${writeGuard.error.message}` };
57
+ return result;
58
+ }
59
+ const signer = await getSigner(input.agentId);
60
+ if (isSignerFailure(signer)) {
61
+ result.registryPublish = { published: false, error: `${signer.error.code}: ${signer.error.message}` };
62
+ return result;
63
+ }
64
+ try {
65
+ const wallet = createPharosWalletClientFromAccount(signer.account);
66
+ const txHash = await wallet.writeContract({
67
+ address: RISK_REGISTRY_ADDRESS,
68
+ abi: RISK_REGISTRY_ABI,
69
+ functionName: "publish",
70
+ args: [
71
+ input.walletAddress,
72
+ BigInt(assessment.riskScore),
73
+ assessment.riskLevel,
74
+ assessment.recommendation,
75
+ ],
76
+ });
77
+ const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
78
+ if (receipt.status !== "success") {
79
+ result.registryPublish = {
80
+ published: false,
81
+ txHash,
82
+ explorerUrl: getExplorerUrl(txHash),
83
+ error: "TX_REVERTED: transaction was mined but reverted. Ensure the calling wallet is authorized via RiskRegistry.setAuthorizedAgent() by the contract owner.",
84
+ signerMode: signer.mode,
85
+ };
86
+ }
87
+ else {
88
+ result.registryPublish = {
89
+ published: true,
90
+ txHash,
91
+ explorerUrl: getExplorerUrl(txHash),
92
+ signerMode: signer.mode,
93
+ };
94
+ }
95
+ }
96
+ catch (err) {
97
+ result.registryPublish = {
98
+ published: false,
99
+ error: `Registry publish failed: ${err.message}`,
100
+ };
101
+ }
102
+ }
103
+ return result;
104
+ }
94
105
  //# sourceMappingURL=assessRisk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assessRisk.js","sourceRoot":"","sources":["../../src/tools/assessRisk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assessRisk.js","sourceRoot":"","sources":["../../src/tools/assessRisk.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,44 @@
1
- import { z } from "zod";
2
- export declare const checkAllowanceSchema: z.ZodObject<{
3
- walletAddress: z.ZodString;
4
- token: z.ZodEnum<["USDC", "USDT"]>;
5
- }, "strip", z.ZodTypeAny, {
6
- token: "USDC" | "USDT";
7
- walletAddress: string;
8
- }, {
9
- token: "USDC" | "USDT";
10
- walletAddress: string;
11
- }>;
12
- export type CheckAllowanceInput = z.input<typeof checkAllowanceSchema>;
13
- export declare const checkAllowanceTool: {
14
- name: string;
15
- description: string;
16
- inputSchema: z.ZodObject<{
17
- walletAddress: z.ZodString;
18
- token: z.ZodEnum<["USDC", "USDT"]>;
19
- }, "strip", z.ZodTypeAny, {
20
- token: "USDC" | "USDT";
21
- walletAddress: string;
22
- }, {
23
- token: "USDC" | "USDT";
24
- walletAddress: string;
25
- }>;
26
- };
27
- export declare function handleCheckAllowance(raw: CheckAllowanceInput): Promise<{
28
- token: "USDC" | "USDT";
29
- tokenAddress: "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5" | "0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8";
30
- walletAddress: string;
31
- spender: "0x4Cf317b8918FbE8A890c01eDAb7d548555Ac2cE9";
32
- allowance: string;
33
- allowanceRaw: string;
34
- isApproved: boolean;
35
- needsApproval: boolean;
36
- }>;
1
+ import { z } from "zod";
2
+ export declare const checkAllowanceSchema: z.ZodObject<{
3
+ walletAddress: z.ZodString;
4
+ token: z.ZodEnum<["USDC", "USDT"]>;
5
+ amount: z.ZodOptional<z.ZodString>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ token: "USDC" | "USDT";
8
+ walletAddress: string;
9
+ amount?: string | undefined;
10
+ }, {
11
+ token: "USDC" | "USDT";
12
+ walletAddress: string;
13
+ amount?: string | undefined;
14
+ }>;
15
+ export type CheckAllowanceInput = z.input<typeof checkAllowanceSchema>;
16
+ export declare const checkAllowanceTool: {
17
+ name: string;
18
+ description: string;
19
+ inputSchema: z.ZodObject<{
20
+ walletAddress: z.ZodString;
21
+ token: z.ZodEnum<["USDC", "USDT"]>;
22
+ amount: z.ZodOptional<z.ZodString>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ token: "USDC" | "USDT";
25
+ walletAddress: string;
26
+ amount?: string | undefined;
27
+ }, {
28
+ token: "USDC" | "USDT";
29
+ walletAddress: string;
30
+ amount?: string | undefined;
31
+ }>;
32
+ };
33
+ export declare function handleCheckAllowance(raw: CheckAllowanceInput): Promise<import("../lib/toolResponse.js").ToolSuccess<{
34
+ token: "USDC" | "USDT";
35
+ tokenAddress: "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5" | "0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8";
36
+ walletAddress: string;
37
+ spender: "0x4Cf317b8918FbE8A890c01eDAb7d548555Ac2cE9";
38
+ allowance: string;
39
+ allowanceRaw: string;
40
+ isApproved: boolean;
41
+ needsApproval: boolean;
42
+ approvalNote: string;
43
+ }>>;
37
44
  //# sourceMappingURL=checkAllowance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkAllowance.d.ts","sourceRoot":"","sources":["../../src/tools/checkAllowance.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;CAK9B,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;GA6BlE"}
1
+ {"version":3,"file":"checkAllowance.d.ts","sourceRoot":"","sources":["../../src/tools/checkAllowance.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;CAK9B,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;IAyClE"}
@@ -1,43 +1,57 @@
1
- // ─── Tool: check_allowance ─────────────────────────────────────────────
2
- // Checks ERC-20 token allowance for DODO_APPROVE_ADDRESS.
3
- // ────────────────────────────────────────────────────────────────────────
4
- import { z } from "zod";
5
- import { publicClient } from "../lib/pharosClient.js";
6
- import { DODO_APPROVE_ADDRESS, USDC_ADDRESS, USDT_ADDRESS, ERC20_ABI, } from "../lib/constants.js";
7
- import { formatUnits } from "viem";
8
- export const checkAllowanceSchema = z.object({
9
- walletAddress: z.string().describe("Wallet address to check allowance for"),
10
- token: z.enum(["USDC", "USDT"]).describe("ERC-20 token to check"),
11
- });
12
- export const checkAllowanceTool = {
13
- name: "check_allowance",
14
- description: "Check ERC-20 token allowance granted to DODO_APPROVE_ADDRESS for swaps. Returns current allowance and whether approval is needed.",
15
- inputSchema: checkAllowanceSchema,
16
- };
17
- export async function handleCheckAllowance(raw) {
18
- const input = checkAllowanceSchema.parse(raw);
19
- const walletAddr = input.walletAddress;
20
- const tokenAddress = input.token === "USDC" ? USDC_ADDRESS : USDT_ADDRESS;
21
- const decimals = 6;
22
- const allowanceRaw = (await publicClient.readContract({
23
- address: tokenAddress,
24
- abi: ERC20_ABI,
25
- functionName: "allowance",
26
- args: [walletAddr, DODO_APPROVE_ADDRESS],
27
- }));
28
- const allowanceFormatted = formatUnits(allowanceRaw, decimals);
29
- // Consider "approved" if allowance is at least 1,000,000 tokens (typical max approval)
30
- const isApproved = allowanceRaw > 0n;
31
- const needsApproval = !isApproved;
32
- return {
33
- token: input.token,
34
- tokenAddress,
35
- walletAddress: input.walletAddress,
36
- spender: DODO_APPROVE_ADDRESS,
37
- allowance: allowanceFormatted,
38
- allowanceRaw: allowanceRaw.toString(),
39
- isApproved,
40
- needsApproval,
41
- };
42
- }
1
+ // ─── Tool: check_allowance ─────────────────────────────────────────────
2
+ // Checks ERC-20 token allowance for DODO_APPROVE_ADDRESS.
3
+ // ────────────────────────────────────────────────────────────────────────
4
+ import { z } from "zod";
5
+ import { publicClient } from "../lib/pharosClient.js";
6
+ import { DODO_APPROVE_ADDRESS, USDC_ADDRESS, USDT_ADDRESS, ERC20_ABI, } from "../lib/constants.js";
7
+ import { formatUnits, parseUnits } from "viem";
8
+ import { ok } from "../lib/toolResponse.js";
9
+ export const checkAllowanceSchema = z.object({
10
+ walletAddress: z.string().describe("Wallet address to check allowance for"),
11
+ token: z.enum(["USDC", "USDT"]).describe("ERC-20 token to check"),
12
+ amount: z.string().optional().describe("Human-readable swap/transfer amount to check against. When provided, needsApproval is exact (allowance < amount). When omitted, only checks allowance > 0."),
13
+ });
14
+ export const checkAllowanceTool = {
15
+ name: "check_allowance",
16
+ description: "Check ERC-20 token allowance granted to DODO_APPROVE_ADDRESS for swaps. Returns current allowance and whether approval is needed.",
17
+ inputSchema: checkAllowanceSchema,
18
+ };
19
+ export async function handleCheckAllowance(raw) {
20
+ const input = checkAllowanceSchema.parse(raw);
21
+ const walletAddr = input.walletAddress;
22
+ const tokenAddress = input.token === "USDC" ? USDC_ADDRESS : USDT_ADDRESS;
23
+ const decimals = 6;
24
+ const allowanceRaw = (await publicClient.readContract({
25
+ address: tokenAddress,
26
+ abi: ERC20_ABI,
27
+ functionName: "allowance",
28
+ args: [walletAddr, DODO_APPROVE_ADDRESS],
29
+ }));
30
+ const allowanceFormatted = formatUnits(allowanceRaw, decimals);
31
+ let isApproved;
32
+ let needsApproval;
33
+ let approvalNote;
34
+ if (input.amount !== undefined) {
35
+ const requiredWei = parseUnits(input.amount, decimals);
36
+ isApproved = allowanceRaw >= requiredWei;
37
+ needsApproval = !isApproved;
38
+ approvalNote = `Amount-aware: allowance ${allowanceFormatted} vs required ${input.amount}`;
39
+ }
40
+ else {
41
+ isApproved = allowanceRaw > 0n;
42
+ needsApproval = !isApproved;
43
+ approvalNote = "Heuristic (no amount provided): any nonzero allowance counts as approved. Pass 'amount' for an exact check.";
44
+ }
45
+ return ok({
46
+ token: input.token,
47
+ tokenAddress,
48
+ walletAddress: input.walletAddress,
49
+ spender: DODO_APPROVE_ADDRESS,
50
+ allowance: allowanceFormatted,
51
+ allowanceRaw: allowanceRaw.toString(),
52
+ isApproved,
53
+ needsApproval,
54
+ approvalNote,
55
+ });
56
+ }
43
57
  //# sourceMappingURL=checkAllowance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkAllowance.js","sourceRoot":"","sources":["../../src/tools/checkAllowance.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0DAA0D;AAC1D,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC3E,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CAClE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,mIAAmI;IACrI,WAAW,EAAE,oBAAoB;CAClC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAwB;IACjE,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,aAA8B,CAAC;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,CAAC;IAEnB,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;QACpD,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,UAAU,EAAE,oBAAoB,CAAC;KACzC,CAAC,CAAW,CAAC;IAEd,MAAM,kBAAkB,GAAG,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE/D,uFAAuF;IACvF,MAAM,UAAU,GAAG,YAAY,GAAG,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC;IAElC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY;QACZ,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,oBAAoB;QAC7B,SAAS,EAAE,kBAAkB;QAC7B,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;QACrC,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"checkAllowance.js","sourceRoot":"","sources":["../../src/tools/checkAllowance.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0DAA0D;AAC1D,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAQ,MAAM,wBAAwB,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC3E,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACjE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4JAA4J,CAAC;CACrM,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,mIAAmI;IACrI,WAAW,EAAE,oBAAoB;CAClC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAwB;IACjE,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,aAA8B,CAAC;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,CAAC;IAEnB,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;QACpD,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,SAAS;QACd,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,UAAU,EAAE,oBAAoB,CAAC;KACzC,CAAC,CAAW,CAAC;IAEd,MAAM,kBAAkB,GAAG,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE/D,IAAI,UAAmB,CAAC;IACxB,IAAI,aAAsB,CAAC;IAC3B,IAAI,YAAoB,CAAC;IAEzB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,UAAU,GAAG,YAAY,IAAI,WAAW,CAAC;QACzC,aAAa,GAAG,CAAC,UAAU,CAAC;QAC5B,YAAY,GAAG,2BAA2B,kBAAkB,gBAAgB,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,YAAY,GAAG,EAAE,CAAC;QAC/B,aAAa,GAAG,CAAC,UAAU,CAAC;QAC5B,YAAY,GAAG,6GAA6G,CAAC;IAC/H,CAAC;IAED,OAAO,EAAE,CAAC;QACR,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY;QACZ,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,oBAAoB;QAC7B,SAAS,EAAE,kBAAkB;QAC7B,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;QACrC,UAAU;QACV,aAAa;QACb,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
@@ -1,47 +1,47 @@
1
- import { z } from "zod";
2
- export declare const checkTokenSecuritySchema: z.ZodObject<{
3
- tokenAddress: z.ZodString;
4
- chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5
- }, "strip", z.ZodTypeAny, {
6
- tokenAddress: string;
7
- chainId: number;
8
- }, {
9
- tokenAddress: string;
10
- chainId?: number | undefined;
11
- }>;
12
- export type CheckTokenSecurityInput = z.input<typeof checkTokenSecuritySchema>;
13
- export declare const checkTokenSecurityTool: {
14
- name: string;
15
- description: string;
16
- inputSchema: z.ZodObject<{
17
- tokenAddress: z.ZodString;
18
- chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
19
- }, "strip", z.ZodTypeAny, {
20
- tokenAddress: string;
21
- chainId: number;
22
- }, {
23
- tokenAddress: string;
24
- chainId?: number | undefined;
25
- }>;
26
- };
27
- export declare function handleCheckTokenSecurity(raw: CheckTokenSecurityInput): Promise<import("../lib/toolResponse.js").ToolFailure | import("../lib/toolResponse.js").ToolSuccess<{
28
- chainId: number;
29
- environment: string;
30
- isMainnet: boolean;
31
- tokenAddress: `0x${string}`;
32
- securityProfile: {
33
- safetyScore: number;
34
- isHoneypot: boolean;
35
- buyTaxPercent: number;
36
- sellTaxPercent: number;
37
- isMintable: boolean;
38
- transferPausable: boolean;
39
- isProxy: boolean;
40
- ownerAddress: any;
41
- creatorAddress: any;
42
- };
43
- flags: string[];
44
- source: string;
45
- sourceStatus: string;
46
- }>>;
1
+ import { z } from "zod";
2
+ export declare const checkTokenSecuritySchema: z.ZodObject<{
3
+ tokenAddress: z.ZodString;
4
+ chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ tokenAddress: string;
7
+ chainId: number;
8
+ }, {
9
+ tokenAddress: string;
10
+ chainId?: number | undefined;
11
+ }>;
12
+ export type CheckTokenSecurityInput = z.input<typeof checkTokenSecuritySchema>;
13
+ export declare const checkTokenSecurityTool: {
14
+ name: string;
15
+ description: string;
16
+ inputSchema: z.ZodObject<{
17
+ tokenAddress: z.ZodString;
18
+ chainId: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ tokenAddress: string;
21
+ chainId: number;
22
+ }, {
23
+ tokenAddress: string;
24
+ chainId?: number | undefined;
25
+ }>;
26
+ };
27
+ export declare function handleCheckTokenSecurity(raw: CheckTokenSecurityInput): Promise<import("../lib/toolResponse.js").ToolFailure | import("../lib/toolResponse.js").ToolSuccess<{
28
+ chainId: number;
29
+ environment: string;
30
+ isMainnet: boolean;
31
+ tokenAddress: `0x${string}`;
32
+ securityProfile: {
33
+ safetyScore: number;
34
+ isHoneypot: boolean;
35
+ buyTaxPercent: number;
36
+ sellTaxPercent: number;
37
+ isMintable: boolean;
38
+ transferPausable: boolean;
39
+ isProxy: boolean;
40
+ ownerAddress: any;
41
+ creatorAddress: any;
42
+ };
43
+ flags: string[];
44
+ source: string;
45
+ sourceStatus: string;
46
+ }>>;
47
47
  //# sourceMappingURL=checkTokenSecurity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkTokenSecurity.d.ts","sourceRoot":"","sources":["../../src/tools/checkTokenSecurity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;CAKlC,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;IAqF1E"}
1
+ {"version":3,"file":"checkTokenSecurity.d.ts","sourceRoot":"","sources":["../../src/tools/checkTokenSecurity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;CAKlC,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;IAkG1E"}