safehands-pharos 1.0.3 → 1.1.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.
@@ -10,21 +10,37 @@ export const EXPLORER_BASE = "https://atlantic.pharosscan.xyz/tx/";
10
10
  /** Native PHRS — sentinel address used by DODO API for native token */
11
11
  export const PHRS_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
12
12
  export const USDT_ADDRESS = "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5";
13
- export const USDC_ADDRESS = "0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8";
13
+ export const USDC_ADDRESS = "0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B"; // Canonical USDC
14
+ export const TEST_USDC_ADDRESS = "0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8"; // Test USDC (with FaroSwap liquidity)
15
+ export const WBTC_ADDRESS = "0x0c64F03EEa5c30946D5c55B4b532D08ad74638a4";
16
+ export const WETH_ADDRESS = "0x7d211F77525ea39A0592794f793cC1036eEaccD5";
17
+ export const WPHRS_ADDRESS = "0x838800b758277CC111B2d48Ab01e5E164f8E9471";
14
18
  // ─── Token Decimals ────────────────────────────────────────────────────
15
19
  export const TOKEN_DECIMALS = {
16
20
  PHRS: 18,
17
21
  USDT: 6,
18
22
  USDC: 6,
23
+ TUSDC: 6,
24
+ WBTC: 18,
25
+ WETH: 18,
26
+ WPHRS: 18,
19
27
  [PHRS_ADDRESS.toLowerCase()]: 18,
20
28
  [USDT_ADDRESS.toLowerCase()]: 6,
21
29
  [USDC_ADDRESS.toLowerCase()]: 6,
30
+ [TEST_USDC_ADDRESS.toLowerCase()]: 6,
31
+ [WBTC_ADDRESS.toLowerCase()]: 18,
32
+ [WETH_ADDRESS.toLowerCase()]: 18,
33
+ [WPHRS_ADDRESS.toLowerCase()]: 18,
22
34
  };
23
35
  // ─── Token Symbol → Address Mapping ────────────────────────────────────
24
36
  export const TOKEN_MAP = {
25
37
  PHRS: PHRS_ADDRESS,
26
38
  USDT: USDT_ADDRESS,
27
39
  USDC: USDC_ADDRESS,
40
+ TUSDC: TEST_USDC_ADDRESS,
41
+ WBTC: WBTC_ADDRESS,
42
+ WETH: WETH_ADDRESS,
43
+ WPHRS: WPHRS_ADDRESS,
28
44
  };
29
45
  // ─── FaroSwap / DODO Protocol ──────────────────────────────────────────
30
46
  export const DODO_APPROVE_ADDRESS = "0x4Cf317b8918FbE8A890c01eDAb7d548555Ac2cE9";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,16 @@
1
- // ─── SafeHands — Full 15-Tool Integration Test ────────────────────────
1
+ // ─── SafeHands — Full 17-Tool Integration Test ────────────────────────
2
2
  import { readFileSync } from "fs";
3
3
  import { resolve } from "path";
4
4
  import { publicClient } from "../lib/pharosClient.js";
5
- import { formatEther } from "viem";
5
+ import { formatEther, defineChain, createWalletClient, http, publicActions } from "viem";
6
+ import { privateKeyToAccount } from "viem/accounts";
7
+ import express from "express";
8
+ import { x402Facilitator } from "@x402/core/facilitator";
9
+ import { toFacilitatorEvmSigner } from "@x402/evm";
10
+ import { ExactEvmScheme as FacilitatorExactEvmScheme } from "@x402/evm/exact/facilitator";
11
+ import { ExactEvmScheme as ServerExactEvmScheme } from "@x402/evm/exact/server";
12
+ import { HTTPFacilitatorClient } from "@x402/core/server";
13
+ import { paymentMiddleware, x402ResourceServer } from "@x402/express";
6
14
  import { handleAssessRisk } from "../tools/assessRisk.js";
7
15
  import { handleExecuteSwap } from "../tools/executeSwap.js";
8
16
  import { handleSendPayment } from "../tools/sendPayment.js";
@@ -18,6 +26,8 @@ import { handleQueryRiskRegistry } from "../tools/queryRiskRegistry.js";
18
26
  import { handleApproveToken } from "../tools/approveToken.js";
19
27
  import { handleGetGasPrice } from "../tools/getGasPrice.js";
20
28
  import { handleGetPoolInfo } from "../tools/getPoolInfo.js";
29
+ import { handleCheckTokenSecurity } from "../tools/checkTokenSecurity.js";
30
+ import { handleX402PayAndFetch } from "../tools/x402PayAndFetch.js";
21
31
  // ─── Load .env ─────────────────────────────────────────────────────────
22
32
  function loadEnv() {
23
33
  const f = readFileSync(resolve(process.cwd(), ".env"), "utf-8");
@@ -43,7 +53,7 @@ function ok(tool, key) { results.push({ tool, status: "✅ PASS", key }); }
43
53
  function fail(tool, key) { results.push({ tool, status: "❌ FAIL", key }); }
44
54
  // ─── Tests ─────────────────────────────────────────────────────────────
45
55
  async function run() {
46
- console.log("\n🛡️ SafeHands — 15-Tool Integration Test");
56
+ console.log("\n🛡️ SafeHands — 17-Tool Integration Test");
47
57
  console.log("─".repeat(64));
48
58
  const bal = formatEther(await publicClient.getBalance({ address: WALLET }));
49
59
  console.log(` Wallet: ${WALLET}\n Balance: ${bal} PHRS\n`);
@@ -230,14 +240,131 @@ async function run() {
230
240
  console.log(`15. query_risk_registry → ❌`);
231
241
  fail("query_risk_registry", e.message);
232
242
  }
233
- // 16. get_execution_history (lastslowest due to block scanning)
243
+ // 16. check_token_security (GoPlus API check mainnet USDC)
244
+ try {
245
+ const r = await handleCheckTokenSecurity({ tokenAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", chainId: 1 });
246
+ if (r.success && r.securityProfile) {
247
+ console.log(`16. check_token_sec → ✅ safetyScore=${r.securityProfile.safetyScore}`);
248
+ ok("check_token_security", `score=${r.securityProfile.safetyScore}, honeypot=${r.securityProfile.isHoneypot}`);
249
+ }
250
+ else {
251
+ console.log(`16. check_token_sec → ${r.error}`);
252
+ fail("check_token_security", r.error || "unknown");
253
+ }
254
+ }
255
+ catch (e) {
256
+ console.log(`16. check_token_sec → ❌`);
257
+ fail("check_token_security", e.message);
258
+ }
259
+ // 17. x402_pay_and_fetch (E2E payment verification loop)
260
+ try {
261
+ const testPort = 4022;
262
+ const testApp = express();
263
+ testApp.use(express.json());
264
+ const pharos = defineChain({
265
+ id: 688_689,
266
+ name: "Pharos Atlantic",
267
+ nativeCurrency: { name: "PHRS", symbol: "PHRS", decimals: 18 },
268
+ rpcUrls: { default: { http: ["https://atlantic.dplabs-internal.com/"] } },
269
+ testnet: true,
270
+ });
271
+ const account = privateKeyToAccount(PK);
272
+ const walletClient = createWalletClient({
273
+ account,
274
+ chain: pharos,
275
+ transport: http(undefined, { timeout: 30_000 }),
276
+ }).extend(publicActions);
277
+ const evmSigner = toFacilitatorEvmSigner({
278
+ address: account.address,
279
+ getCode: (args) => walletClient.getCode(args),
280
+ readContract: (args) => walletClient.readContract({ ...args, args: args.args || [] }),
281
+ verifyTypedData: (args) => walletClient.verifyTypedData(args),
282
+ writeContract: (args) => walletClient.writeContract({ ...args, args: args.args || [] }),
283
+ sendTransaction: (args) => walletClient.sendTransaction(args),
284
+ waitForTransactionReceipt: (args) => walletClient.waitForTransactionReceipt(args),
285
+ });
286
+ const testFacilitator = new x402Facilitator();
287
+ testFacilitator.register("eip155:688689", new FacilitatorExactEvmScheme(evmSigner, {}));
288
+ const testFacilitatorClient = new HTTPFacilitatorClient({ url: `http://localhost:${testPort}` });
289
+ const testResourceServer = new x402ResourceServer(testFacilitatorClient);
290
+ const testEvmScheme = new ServerExactEvmScheme();
291
+ testEvmScheme.registerMoneyParser(async (amount, network) => {
292
+ if (network === "eip155:688689") {
293
+ return {
294
+ amount: Math.round(amount * 1e6).toString(),
295
+ asset: "0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B",
296
+ extra: { token: "USDC", name: "USDC", version: "2" },
297
+ };
298
+ }
299
+ return null;
300
+ });
301
+ testResourceServer.register("eip155:688689", testEvmScheme);
302
+ testApp.post("/verify", async (req, res) => {
303
+ try {
304
+ const { paymentPayload, paymentRequirements } = req.body;
305
+ const result = await testFacilitator.verify(paymentPayload, paymentRequirements);
306
+ res.json(result);
307
+ }
308
+ catch (e) {
309
+ res.status(500).json({ error: e.message });
310
+ }
311
+ });
312
+ testApp.post("/settle", async (req, res) => {
313
+ try {
314
+ const { paymentPayload, paymentRequirements } = req.body;
315
+ const result = await testFacilitator.settle(paymentPayload, paymentRequirements);
316
+ res.json(result);
317
+ }
318
+ catch (e) {
319
+ res.status(500).json({ error: e.message });
320
+ }
321
+ });
322
+ testApp.get("/supported", (req, res) => {
323
+ res.json(testFacilitator.getSupported());
324
+ });
325
+ testApp.use(paymentMiddleware({
326
+ "GET /test-paid": {
327
+ accepts: {
328
+ scheme: "exact",
329
+ price: "0.001",
330
+ network: "eip155:688689",
331
+ payTo: WALLET,
332
+ },
333
+ description: "Test paid endpoint",
334
+ mimeType: "application/json",
335
+ },
336
+ }, testResourceServer));
337
+ testApp.get("/test-paid", (req, res) => {
338
+ res.json({ secret: "safehands-x402-passphrase" });
339
+ });
340
+ const serverListener = testApp.listen(testPort);
341
+ const r = await handleX402PayAndFetch({
342
+ url: `http://localhost:${testPort}/test-paid`,
343
+ method: "GET",
344
+ privateKey: PK,
345
+ });
346
+ serverListener.close();
347
+ if (r.success && r.data && r.data.secret === "safehands-x402-passphrase") {
348
+ console.log(`17. x402_pay_and_fetch → ✅ success, payment=${r.paymentExecuted}`);
349
+ ok("x402_pay_and_fetch", `paymentExecuted=${r.paymentExecuted}`);
350
+ }
351
+ else {
352
+ console.log(`17. x402_pay_and_fetch → ❌`);
353
+ fail("x402_pay_and_fetch", r.error || "status mismatch");
354
+ }
355
+ }
356
+ catch (e) {
357
+ console.log(`17. x402_pay_and_fetch → ❌`);
358
+ fail("x402_pay_and_fetch", e.message);
359
+ }
360
+ // 18. get_execution_history (last — slowest due to scan)
234
361
  try {
235
362
  const r = await handleGetExecutionHistory({ walletAddress: WALLET, limit: 5, filter: "all" });
236
- console.log(`16. get_exec_history → ${r.totalFetched} txs found`);
363
+ console.log(`18. get_exec_history → ${r.totalFetched} txs found`);
237
364
  ok("get_execution_history", `${r.totalFetched} txs`);
238
365
  }
239
366
  catch (e) {
240
- console.log(`16. get_exec_history → ❌`);
367
+ console.log(`18. get_exec_history → ❌`);
241
368
  fail("get_execution_history", e.message);
242
369
  }
243
370
  // ─── Summary ──────────────────────────────────────────────────────────
@@ -256,7 +383,7 @@ async function run() {
256
383
  const failed = results.filter(r => r.status.includes("FAIL")).length;
257
384
  console.log(`\n Balance: ${bal} → ${postBal} PHRS`);
258
385
  console.log(` ${passed}/${results.length} passed, ${failed} failed`);
259
- console.log(` ${failed === 0 ? "🎉 ALL 15 TOOLS PASSED" : "⚠️ SOME TOOLS FAILED"}\n`);
386
+ console.log(` ${failed === 0 ? "🎉 ALL 17 TOOLS PASSED" : "⚠️ SOME TOOLS FAILED"}\n`);
260
387
  process.exit(failed === 0 ? 0 : 1);
261
388
  }
262
389
  run().catch(e => { console.error("Fatal:", e); process.exit(1); });
@@ -1 +1 @@
1
- {"version":3,"file":"testTools.js","sourceRoot":"","sources":["../../src/lib/testTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testTools.js","sourceRoot":"","sources":["../../src/lib/testTools.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export declare function handleApproveToken(raw: ApproveTokenInput): Promise<{
41
41
  txHash: `0x${string}`;
42
42
  explorerUrl: string;
43
43
  token: "USDT" | "USDC";
44
- tokenAddress: "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5" | "0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8";
44
+ tokenAddress: "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5" | "0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B";
45
45
  approvedAmount: string;
46
46
  spender: "0x4Cf317b8918FbE8A890c01eDAb7d548555Ac2cE9";
47
47
  gasUsed: string;
@@ -51,7 +51,7 @@ export declare function handleApproveToken(raw: ApproveTokenInput): Promise<{
51
51
  txHash: null;
52
52
  explorerUrl: null;
53
53
  token: "USDT" | "USDC";
54
- tokenAddress: "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5" | "0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8";
54
+ tokenAddress: "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5" | "0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B";
55
55
  approvedAmount: null;
56
56
  spender: "0x4Cf317b8918FbE8A890c01eDAb7d548555Ac2cE9";
57
57
  error: string;
@@ -26,7 +26,7 @@ export declare const checkAllowanceTool: {
26
26
  };
27
27
  export declare function handleCheckAllowance(raw: CheckAllowanceInput): Promise<{
28
28
  token: "USDT" | "USDC";
29
- tokenAddress: "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5" | "0xE0BE08c77f415F577A1B3A9aD7a1Df1479564ec8";
29
+ tokenAddress: "0xE7E84B8B4f39C507499c40B4ac199B050e2882d5" | "0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B";
30
30
  walletAddress: string;
31
31
  spender: "0x4Cf317b8918FbE8A890c01eDAb7d548555Ac2cE9";
32
32
  allowance: string;
@@ -0,0 +1,54 @@
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
+ chainId: number;
7
+ tokenAddress: string;
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
+ chainId: number;
21
+ tokenAddress: string;
22
+ }, {
23
+ tokenAddress: string;
24
+ chainId?: number | undefined;
25
+ }>;
26
+ };
27
+ export declare function handleCheckTokenSecurity(raw: CheckTokenSecurityInput): Promise<{
28
+ success: boolean;
29
+ error: any;
30
+ chainId: number;
31
+ tokenAddress: string;
32
+ securityProfile?: undefined;
33
+ flags?: undefined;
34
+ timestamp?: undefined;
35
+ } | {
36
+ success: boolean;
37
+ chainId: number;
38
+ tokenAddress: string;
39
+ securityProfile: {
40
+ safetyScore: number;
41
+ isHoneypot: boolean;
42
+ buyTaxPercent: number;
43
+ sellTaxPercent: number;
44
+ isMintable: boolean;
45
+ transferPausable: boolean;
46
+ isProxy: boolean;
47
+ ownerAddress: any;
48
+ creatorAddress: any;
49
+ };
50
+ flags: string[];
51
+ timestamp: string;
52
+ error?: undefined;
53
+ }>;
54
+ //# sourceMappingURL=checkTokenSecurity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkTokenSecurity.d.ts","sourceRoot":"","sources":["../../src/tools/checkTokenSecurity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,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;;;;;;;;;;;;;;;;;;;;;;;;;;GAwF1E"}
@@ -0,0 +1,94 @@
1
+ // ─── Tool: check_token_security ─────────────────────────────────────────
2
+ // Fetches token security intelligence from GoPlus Security API.
3
+ // ────────────────────────────────────────────────────────────────────────
4
+ import { z } from "zod";
5
+ export const checkTokenSecuritySchema = z.object({
6
+ tokenAddress: z.string(),
7
+ chainId: z.number().optional().default(688689), // Defaults to Pharos Atlantic Testnet
8
+ });
9
+ export const checkTokenSecurityTool = {
10
+ name: "check_token_security",
11
+ description: "Check token contract security (honeypot, mintable, ownership privileges, tax) via GoPlus Security API.",
12
+ inputSchema: checkTokenSecuritySchema,
13
+ };
14
+ export async function handleCheckTokenSecurity(raw) {
15
+ const input = checkTokenSecuritySchema.parse(raw);
16
+ const address = input.tokenAddress.toLowerCase().trim();
17
+ const chainId = input.chainId;
18
+ const url = `https://api.gopluslabs.io/api/v1/token_security/${chainId}?contract_addresses=${address}`;
19
+ try {
20
+ const res = await fetch(url);
21
+ if (!res.ok) {
22
+ throw new Error(`GoPlus API returned status ${res.status}`);
23
+ }
24
+ const data = (await res.json());
25
+ if (data.code !== 1 || !data.result || !data.result[address]) {
26
+ // Return a standard response when token data is not found or unsupported
27
+ return {
28
+ success: false,
29
+ error: data.message || "Token security data not available for this contract on specified chain.",
30
+ chainId,
31
+ tokenAddress: address,
32
+ };
33
+ }
34
+ const details = data.result[address];
35
+ // Map security metrics to a human-readable format
36
+ const isHoneypot = details.is_honeypot === "1";
37
+ const buyTax = parseFloat(details.buy_tax || "0") * 100;
38
+ const sellTax = parseFloat(details.sell_tax || "0") * 100;
39
+ const isMintable = details.is_mintable === "1";
40
+ const transferPausable = details.transfer_pausable === "1";
41
+ const ownerModifiable = details.slippage_modifiable === "1" || details.is_proxy === "1";
42
+ // Simple risk evaluation
43
+ let riskScore = 0;
44
+ const flags = [];
45
+ if (isHoneypot) {
46
+ riskScore += 80;
47
+ flags.push("Honeypot contract detected - buy at your own peril (cannot sell)");
48
+ }
49
+ if (buyTax > 10) {
50
+ riskScore += 15;
51
+ flags.push(`High buy tax: ${buyTax.toFixed(2)}%`);
52
+ }
53
+ if (sellTax > 10) {
54
+ riskScore += 15;
55
+ flags.push(`High sell tax: ${sellTax.toFixed(2)}%`);
56
+ }
57
+ if (isMintable) {
58
+ riskScore += 10;
59
+ flags.push("Token is mintable by owner/creator");
60
+ }
61
+ if (transferPausable) {
62
+ riskScore += 15;
63
+ flags.push("Trading/transfers can be paused by owner");
64
+ }
65
+ const safetyScore = Math.max(0, 100 - riskScore);
66
+ return {
67
+ success: true,
68
+ chainId,
69
+ tokenAddress: address,
70
+ securityProfile: {
71
+ safetyScore,
72
+ isHoneypot,
73
+ buyTaxPercent: buyTax,
74
+ sellTaxPercent: sellTax,
75
+ isMintable,
76
+ transferPausable,
77
+ isProxy: details.is_proxy === "1",
78
+ ownerAddress: details.owner_address || "0x0000000000000000000000000000000000000000",
79
+ creatorAddress: details.creator_address || "0x0000000000000000000000000000000000000000",
80
+ },
81
+ flags,
82
+ timestamp: new Date().toISOString(),
83
+ };
84
+ }
85
+ catch (err) {
86
+ return {
87
+ success: false,
88
+ chainId,
89
+ tokenAddress: address,
90
+ error: `Failed to query GoPlus Security API: ${err.message}`,
91
+ };
92
+ }
93
+ }
94
+ //# sourceMappingURL=checkTokenSecurity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkTokenSecurity.js","sourceRoot":"","sources":["../../src/tools/checkTokenSecurity.ts"],"names":[],"mappings":"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"}
@@ -5,20 +5,23 @@ export declare const sendPaymentSchema: z.ZodObject<{
5
5
  memo: z.ZodOptional<z.ZodString>;
6
6
  walletAddress: z.ZodString;
7
7
  privateKey: z.ZodString;
8
+ bypassRiskCheck: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
8
9
  }, "strip", z.ZodTypeAny, {
9
10
  amount: string;
10
11
  privateKey: string;
11
12
  toAddress: string;
12
13
  walletAddress: string;
14
+ bypassRiskCheck: boolean;
13
15
  memo?: string | undefined;
14
16
  }, {
15
17
  amount: string;
16
18
  privateKey: string;
17
19
  toAddress: string;
18
20
  walletAddress: string;
21
+ bypassRiskCheck?: boolean | undefined;
19
22
  memo?: string | undefined;
20
23
  }>;
21
- export type SendPaymentInput = z.infer<typeof sendPaymentSchema>;
24
+ export type SendPaymentInput = z.input<typeof sendPaymentSchema>;
22
25
  export declare const sendPaymentTool: {
23
26
  name: string;
24
27
  description: string;
@@ -28,21 +31,24 @@ export declare const sendPaymentTool: {
28
31
  memo: z.ZodOptional<z.ZodString>;
29
32
  walletAddress: z.ZodString;
30
33
  privateKey: z.ZodString;
34
+ bypassRiskCheck: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
31
35
  }, "strip", z.ZodTypeAny, {
32
36
  amount: string;
33
37
  privateKey: string;
34
38
  toAddress: string;
35
39
  walletAddress: string;
40
+ bypassRiskCheck: boolean;
36
41
  memo?: string | undefined;
37
42
  }, {
38
43
  amount: string;
39
44
  privateKey: string;
40
45
  toAddress: string;
41
46
  walletAddress: string;
47
+ bypassRiskCheck?: boolean | undefined;
42
48
  memo?: string | undefined;
43
49
  }>;
44
50
  };
45
- export declare function handleSendPayment(input: SendPaymentInput): Promise<{
51
+ export declare function handleSendPayment(raw: SendPaymentInput): Promise<{
46
52
  success: boolean;
47
53
  validation: {
48
54
  addressValid: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"sendPayment.d.ts","sourceRoot":"","sources":["../../src/tools/sendPayment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CAI3B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoF9D"}
1
+ {"version":3,"file":"sendPayment.d.ts","sourceRoot":"","sources":["../../src/tools/sendPayment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAI3B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyF5D"}
@@ -10,13 +10,15 @@ export const sendPaymentSchema = z.object({
10
10
  memo: z.string().optional(),
11
11
  walletAddress: z.string(),
12
12
  privateKey: z.string(),
13
+ bypassRiskCheck: z.boolean().optional().default(false),
13
14
  });
14
15
  export const sendPaymentTool = {
15
16
  name: "send_payment",
16
17
  description: "Send native PHRS with pre-flight validation. Checks address validity, balance sufficiency, and warns on high exposure.",
17
18
  inputSchema: sendPaymentSchema,
18
19
  };
19
- export async function handleSendPayment(input) {
20
+ export async function handleSendPayment(raw) {
21
+ const input = sendPaymentSchema.parse(raw);
20
22
  const warnings = [];
21
23
  const validation = { addressValid: false, balanceSufficient: false, warnings };
22
24
  // Address validation
@@ -47,27 +49,31 @@ export async function handleSendPayment(input) {
47
49
  warnings.push(`Using ${usagePct}% of wallet balance — high exposure`);
48
50
  }
49
51
  // Risk assessment
50
- const risk = await assessRisk({
51
- action: "transfer",
52
- amount: input.amount,
53
- toAddress: input.toAddress,
54
- walletAddress: input.walletAddress,
55
- });
56
- if (risk.riskScore > RISK_BLOCK_THRESHOLD) {
57
- return {
58
- success: false,
59
- validation: {
60
- addressValid: true,
61
- balanceSufficient: true,
62
- warnings,
63
- },
64
- riskAssessment: {
65
- riskScore: risk.riskScore,
66
- wasBlocked: true,
67
- blockReason: risk.suggestion,
68
- },
69
- error: `Payment blocked — risk score ${risk.riskScore}/100: ${risk.suggestion}`,
70
- };
52
+ let riskScore = 0;
53
+ if (!input.bypassRiskCheck) {
54
+ const risk = await assessRisk({
55
+ action: "transfer",
56
+ amount: input.amount,
57
+ toAddress: input.toAddress,
58
+ walletAddress: input.walletAddress,
59
+ });
60
+ riskScore = risk.riskScore;
61
+ if (riskScore > RISK_BLOCK_THRESHOLD) {
62
+ return {
63
+ success: false,
64
+ validation: {
65
+ addressValid: true,
66
+ balanceSufficient: true,
67
+ warnings,
68
+ },
69
+ riskAssessment: {
70
+ riskScore,
71
+ wasBlocked: true,
72
+ blockReason: risk.suggestion,
73
+ },
74
+ error: `Payment blocked — risk score ${riskScore}/100: ${risk.suggestion}`,
75
+ };
76
+ }
71
77
  }
72
78
  try {
73
79
  const wallet = createPharosWalletClient(input.privateKey);
@@ -84,7 +90,7 @@ export async function handleSendPayment(input) {
84
90
  gasUsed: receipt.gasUsed.toString(),
85
91
  validation,
86
92
  riskAssessment: {
87
- riskScore: risk.riskScore,
93
+ riskScore,
88
94
  wasBlocked: false,
89
95
  },
90
96
  };