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.
- package/.env.example +64 -26
- package/README.md +333 -445
- package/dist/cli.d.ts +5 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +124 -98
- package/dist/cli.js.map +1 -1
- package/dist/demo.d.ts +1 -1
- package/dist/demo.js +171 -171
- package/dist/index.d.ts +2 -2
- package/dist/index.js +138 -87
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -1
- package/dist/init.js +65 -65
- package/dist/lib/auditLog.d.ts +9 -0
- package/dist/lib/auditLog.d.ts.map +1 -0
- package/dist/lib/auditLog.js +30 -0
- package/dist/lib/auditLog.js.map +1 -0
- package/dist/lib/constants.d.ts +291 -291
- package/dist/lib/constants.js +292 -292
- package/dist/lib/dodoApi.d.ts +78 -70
- package/dist/lib/dodoApi.d.ts.map +1 -1
- package/dist/lib/dodoApi.js +196 -178
- package/dist/lib/dodoApi.js.map +1 -1
- package/dist/lib/http.d.ts +14 -14
- package/dist/lib/http.js +118 -118
- package/dist/lib/pharosClient.d.ts +58 -58
- package/dist/lib/pharosClient.d.ts.map +1 -1
- package/dist/lib/pharosClient.js +63 -53
- package/dist/lib/pharosClient.js.map +1 -1
- package/dist/lib/policy/actionPolicyEngine.d.ts +53 -53
- package/dist/lib/policy/actionPolicyEngine.js +212 -212
- package/dist/lib/policy/actionPolicyEngine.js.map +1 -1
- package/dist/lib/riskEngine.d.ts +26 -26
- package/dist/lib/riskEngine.js +283 -283
- package/dist/lib/signer/index.d.ts +24 -24
- package/dist/lib/signer/index.d.ts.map +1 -1
- package/dist/lib/signer/index.js +88 -89
- package/dist/lib/signer/index.js.map +1 -1
- package/dist/lib/spendAccumulator.d.ts +10 -0
- package/dist/lib/spendAccumulator.d.ts.map +1 -0
- package/dist/lib/spendAccumulator.js +54 -0
- package/dist/lib/spendAccumulator.js.map +1 -0
- package/dist/lib/testDodoLive.d.ts +1 -1
- package/dist/lib/testDodoLive.js +104 -104
- package/dist/lib/testLiveSafehands.d.ts +1 -1
- package/dist/lib/testLiveSafehands.js +92 -92
- package/dist/lib/testRpc.d.ts +1 -1
- package/dist/lib/testRpc.js +29 -29
- package/dist/lib/testRpcLive.d.ts +1 -1
- package/dist/lib/testRpcLive.js +88 -88
- package/dist/lib/testTools.d.ts +1 -1
- package/dist/lib/testTools.js +397 -397
- package/dist/lib/testX402Live.d.ts +1 -1
- package/dist/lib/testX402Live.js +159 -159
- package/dist/lib/toolResponse.d.ts +25 -25
- package/dist/lib/toolResponse.js +53 -53
- package/dist/lib/wallet/index.d.ts +37 -18
- package/dist/lib/wallet/index.d.ts.map +1 -1
- package/dist/lib/wallet/index.js +128 -70
- package/dist/lib/wallet/index.js.map +1 -1
- package/dist/scripts/checkDeploy.d.ts +1 -1
- package/dist/scripts/checkDeploy.js +24 -24
- package/dist/scripts/deployRegistry.d.ts +1 -1
- package/dist/scripts/deployRegistry.js +100 -100
- package/dist/scripts/testRegistry.d.ts +1 -1
- package/dist/scripts/testRegistry.js +43 -43
- package/dist/tools/approveToken.d.ts +45 -46
- package/dist/tools/approveToken.d.ts.map +1 -1
- package/dist/tools/approveToken.js +85 -83
- package/dist/tools/approveToken.js.map +1 -1
- package/dist/tools/assessRisk.d.ts +79 -79
- package/dist/tools/assessRisk.d.ts.map +1 -1
- package/dist/tools/assessRisk.js +104 -93
- package/dist/tools/assessRisk.js.map +1 -1
- package/dist/tools/checkAllowance.d.ts +43 -36
- package/dist/tools/checkAllowance.d.ts.map +1 -1
- package/dist/tools/checkAllowance.js +56 -42
- package/dist/tools/checkAllowance.js.map +1 -1
- package/dist/tools/checkTokenSecurity.d.ts +46 -46
- package/dist/tools/checkTokenSecurity.d.ts.map +1 -1
- package/dist/tools/checkTokenSecurity.js +95 -88
- package/dist/tools/checkTokenSecurity.js.map +1 -1
- package/dist/tools/createAgentWallet.d.ts +26 -26
- package/dist/tools/createAgentWallet.d.ts.map +1 -1
- package/dist/tools/createAgentWallet.js +58 -59
- package/dist/tools/createAgentWallet.js.map +1 -1
- package/dist/tools/estimateGas.d.ts +79 -79
- package/dist/tools/estimateGas.js +124 -124
- package/dist/tools/executeSwap.d.ts +61 -59
- package/dist/tools/executeSwap.d.ts.map +1 -1
- package/dist/tools/executeSwap.js +141 -129
- package/dist/tools/executeSwap.js.map +1 -1
- package/dist/tools/explainRisk.d.ts +29 -29
- package/dist/tools/explainRisk.js +32 -32
- package/dist/tools/getAgentWallet.d.ts +21 -21
- package/dist/tools/getAgentWallet.js +27 -27
- package/dist/tools/getAgentWalletBalance.d.ts +11 -11
- package/dist/tools/getAgentWalletBalance.js +70 -70
- package/dist/tools/getExecutionHistory.d.ts +49 -51
- package/dist/tools/getExecutionHistory.d.ts.map +1 -1
- package/dist/tools/getExecutionHistory.js +154 -93
- package/dist/tools/getExecutionHistory.js.map +1 -1
- package/dist/tools/getGasPrice.d.ts +43 -43
- package/dist/tools/getGasPrice.js +59 -59
- package/dist/tools/getPoolInfo.d.ts +75 -75
- package/dist/tools/getPoolInfo.js +137 -137
- package/dist/tools/getTokenPrice.d.ts +113 -113
- package/dist/tools/getTokenPrice.js +117 -117
- package/dist/tools/getTransactionStatus.d.ts +43 -57
- package/dist/tools/getTransactionStatus.d.ts.map +1 -1
- package/dist/tools/getTransactionStatus.js +59 -67
- package/dist/tools/getTransactionStatus.js.map +1 -1
- package/dist/tools/getWalletBalance.d.ts +68 -68
- package/dist/tools/getWalletBalance.js +87 -87
- package/dist/tools/publishRiskScore.d.ts +63 -63
- package/dist/tools/publishRiskScore.d.ts.map +1 -1
- package/dist/tools/publishRiskScore.js +88 -85
- package/dist/tools/publishRiskScore.js.map +1 -1
- package/dist/tools/queryRiskRegistry.d.ts +38 -48
- package/dist/tools/queryRiskRegistry.d.ts.map +1 -1
- package/dist/tools/queryRiskRegistry.js +55 -60
- package/dist/tools/queryRiskRegistry.js.map +1 -1
- package/dist/tools/safehandsPreflightCheck.d.ts +77 -77
- package/dist/tools/safehandsPreflightCheck.js +47 -47
- package/dist/tools/safehandsRiskReport.d.ts +81 -81
- package/dist/tools/safehandsRiskReport.js +28 -28
- package/dist/tools/safehandsSafeExecute.d.ts +20 -20
- package/dist/tools/safehandsSafeExecute.d.ts.map +1 -1
- package/dist/tools/safehandsSafeExecute.js +81 -75
- package/dist/tools/safehandsSafeExecute.js.map +1 -1
- package/dist/tools/safehandsWalletHealth.d.ts +14 -14
- package/dist/tools/safehandsWalletHealth.js +103 -103
- package/dist/tools/safehandsX402Preflight.d.ts +26 -26
- package/dist/tools/safehandsX402Preflight.js +65 -65
- package/dist/tools/sendPayment.d.ts +57 -58
- package/dist/tools/sendPayment.d.ts.map +1 -1
- package/dist/tools/sendPayment.js +117 -108
- package/dist/tools/sendPayment.js.map +1 -1
- package/dist/tools/simulateTransaction.d.ts +60 -81
- package/dist/tools/simulateTransaction.d.ts.map +1 -1
- package/dist/tools/simulateTransaction.js +83 -88
- package/dist/tools/simulateTransaction.js.map +1 -1
- package/dist/tools/tokenRegistryStatus.d.ts +26 -26
- package/dist/tools/tokenRegistryStatus.js +96 -96
- package/dist/tools/x402PayAndFetch.d.ts +81 -81
- package/dist/tools/x402PayAndFetch.d.ts.map +1 -1
- package/dist/tools/x402PayAndFetch.js +152 -149
- package/dist/tools/x402PayAndFetch.js.map +1 -1
- package/dist/x402Server.d.ts +1 -1
- package/dist/x402Server.js +252 -252
- package/examples/dashboard/index.html +337 -0
- package/package.json +83 -82
- package/skill/SKILL.md +133 -133
package/dist/tools/assessRisk.js
CHANGED
|
@@ -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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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;
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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;
|
|
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;;;;;;;;;;;;;;;;;;;
|
|
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"}
|