safehands-pharos 1.3.0 → 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 -85
- 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/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 -84
- package/.agents/skill/safehands/SKILL.md +0 -212
- package/.agents/skill/safehands/assets/networks.json +0 -24
- package/.agents/skill/safehands/assets/tokens.json +0 -66
- package/.agents/wallets.json +0 -20
- package/docs/reports/OFFICIAL_DOCS_ALIGNMENT_REPORT.md +0 -137
- package/docs/reports/final_audit_report.md +0 -307
- package/docs/reports/live_verification_report.md +0 -147
- package/docs/reports/pharos_skill_engine_alignment_report.md +0 -85
|
@@ -1,89 +1,96 @@
|
|
|
1
|
-
// ─── Tool: check_token_security ─────────────────────────────────────────
|
|
2
|
-
// Fetches token security intelligence from GoPlus Security API.
|
|
3
|
-
// ────────────────────────────────────────────────────────────────────────
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import { isAddress } from "viem";
|
|
6
|
-
import { CHAIN_ID, PHAROS_ENVIRONMENT } from "../lib/constants.js";
|
|
7
|
-
import { fetchWithTimeoutAndRetry } from "../lib/http.js";
|
|
8
|
-
import { classifyExternalError, fail, ok } from "../lib/toolResponse.js";
|
|
9
|
-
export const checkTokenSecuritySchema = z.object({
|
|
10
|
-
tokenAddress: z.string(),
|
|
11
|
-
chainId: z.number().optional().default(CHAIN_ID),
|
|
12
|
-
});
|
|
13
|
-
export const checkTokenSecurityTool = {
|
|
14
|
-
name: "check_token_security",
|
|
15
|
-
description: "Check token contract security (honeypot, mintable, ownership privileges, tax) via GoPlus Security API.",
|
|
16
|
-
inputSchema: checkTokenSecuritySchema,
|
|
17
|
-
};
|
|
18
|
-
export async function handleCheckTokenSecurity(raw) {
|
|
19
|
-
const input = checkTokenSecuritySchema.parse(raw);
|
|
20
|
-
const address = input.tokenAddress.toLowerCase().trim();
|
|
21
|
-
const chainId = input.chainId;
|
|
22
|
-
if (!isAddress(address)) {
|
|
23
|
-
return fail("INVALID_TOKEN_ADDRESS", `Invalid token address: ${input.tokenAddress}`, false, "check_token_security");
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
1
|
+
// ─── Tool: check_token_security ─────────────────────────────────────────
|
|
2
|
+
// Fetches token security intelligence from GoPlus Security API.
|
|
3
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { isAddress } from "viem";
|
|
6
|
+
import { CHAIN_ID, PHAROS_ENVIRONMENT } from "../lib/constants.js";
|
|
7
|
+
import { fetchWithTimeoutAndRetry } from "../lib/http.js";
|
|
8
|
+
import { classifyExternalError, fail, ok } from "../lib/toolResponse.js";
|
|
9
|
+
export const checkTokenSecuritySchema = z.object({
|
|
10
|
+
tokenAddress: z.string(),
|
|
11
|
+
chainId: z.number().optional().default(CHAIN_ID),
|
|
12
|
+
});
|
|
13
|
+
export const checkTokenSecurityTool = {
|
|
14
|
+
name: "check_token_security",
|
|
15
|
+
description: "Check token contract security (honeypot, mintable, ownership privileges, tax) via GoPlus Security API.",
|
|
16
|
+
inputSchema: checkTokenSecuritySchema,
|
|
17
|
+
};
|
|
18
|
+
export async function handleCheckTokenSecurity(raw) {
|
|
19
|
+
const input = checkTokenSecuritySchema.parse(raw);
|
|
20
|
+
const address = input.tokenAddress.toLowerCase().trim();
|
|
21
|
+
const chainId = input.chainId;
|
|
22
|
+
if (!isAddress(address)) {
|
|
23
|
+
return fail("INVALID_TOKEN_ADDRESS", `Invalid token address: ${input.tokenAddress}`, false, "check_token_security");
|
|
24
|
+
}
|
|
25
|
+
// GoPlus does not index Pharos Atlantic Testnet (chain 688689). Return a clear diagnostic
|
|
26
|
+
// rather than a confusing empty result from the API.
|
|
27
|
+
if (chainId === CHAIN_ID) {
|
|
28
|
+
return fail("CHAIN_NOT_SUPPORTED_BY_GOPLUS", `GoPlus Security API does not support Pharos Atlantic Testnet (chain ${CHAIN_ID}). ` +
|
|
29
|
+
"Token security data is unavailable for this chain. Use token_registry_status to check " +
|
|
30
|
+
"whether a token address is canonical, custom, or unknown on Pharos.", false, "check_token_security");
|
|
31
|
+
}
|
|
32
|
+
const url = `https://api.gopluslabs.io/api/v1/token_security/${chainId}?contract_addresses=${address}`;
|
|
33
|
+
try {
|
|
34
|
+
const res = await fetchWithTimeoutAndRetry(url, { timeoutMs: 10_000, retries: 2, retryDelayMs: 300 });
|
|
35
|
+
if (!res.ok) {
|
|
36
|
+
throw new Error(`GoPlus API returned status ${res.status}`);
|
|
37
|
+
}
|
|
38
|
+
const data = (await res.json());
|
|
39
|
+
if (data.code !== 1 || !data.result || !data.result[address]) {
|
|
40
|
+
return fail("TOKEN_SECURITY_DATA_UNAVAILABLE", data.message || "Token security data is not available for this contract on the specified chain.", true, "goplus_api");
|
|
41
|
+
}
|
|
42
|
+
const details = data.result[address];
|
|
43
|
+
const isHoneypot = details.is_honeypot === "1";
|
|
44
|
+
const buyTax = parseFloat(details.buy_tax || "0") * 100;
|
|
45
|
+
const sellTax = parseFloat(details.sell_tax || "0") * 100;
|
|
46
|
+
const isMintable = details.is_mintable === "1";
|
|
47
|
+
const transferPausable = details.transfer_pausable === "1";
|
|
48
|
+
let riskScore = 0;
|
|
49
|
+
const flags = [];
|
|
50
|
+
if (isHoneypot) {
|
|
51
|
+
riskScore += 80;
|
|
52
|
+
flags.push("Honeypot contract detected - buy at your own peril (cannot sell)");
|
|
53
|
+
}
|
|
54
|
+
if (buyTax > 10) {
|
|
55
|
+
riskScore += 15;
|
|
56
|
+
flags.push(`High buy tax: ${buyTax.toFixed(2)}%`);
|
|
57
|
+
}
|
|
58
|
+
if (sellTax > 10) {
|
|
59
|
+
riskScore += 15;
|
|
60
|
+
flags.push(`High sell tax: ${sellTax.toFixed(2)}%`);
|
|
61
|
+
}
|
|
62
|
+
if (isMintable) {
|
|
63
|
+
riskScore += 10;
|
|
64
|
+
flags.push("Token is mintable by owner/creator");
|
|
65
|
+
}
|
|
66
|
+
if (transferPausable) {
|
|
67
|
+
riskScore += 15;
|
|
68
|
+
flags.push("Trading/transfers can be paused by owner");
|
|
69
|
+
}
|
|
70
|
+
const safetyScore = Math.max(0, 100 - riskScore);
|
|
71
|
+
return ok({
|
|
72
|
+
chainId,
|
|
73
|
+
environment: chainId === CHAIN_ID ? PHAROS_ENVIRONMENT : "custom-chain",
|
|
74
|
+
isMainnet: false,
|
|
75
|
+
tokenAddress: address,
|
|
76
|
+
securityProfile: {
|
|
77
|
+
safetyScore,
|
|
78
|
+
isHoneypot,
|
|
79
|
+
buyTaxPercent: buyTax,
|
|
80
|
+
sellTaxPercent: sellTax,
|
|
81
|
+
isMintable,
|
|
82
|
+
transferPausable,
|
|
83
|
+
isProxy: details.is_proxy === "1",
|
|
84
|
+
ownerAddress: details.owner_address || "0x0000000000000000000000000000000000000000",
|
|
85
|
+
creatorAddress: details.creator_address || "0x0000000000000000000000000000000000000000",
|
|
86
|
+
},
|
|
87
|
+
flags,
|
|
88
|
+
source: "goplus_api",
|
|
89
|
+
sourceStatus: "ok",
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
return classifyExternalError("goplus_api", err);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
89
96
|
//# sourceMappingURL=checkTokenSecurity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkTokenSecurity.js","sourceRoot":"","sources":["../../src/tools/checkTokenSecurity.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gEAAgE;AAChE,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;CACjD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,wGAAwG;IAC1G,WAAW,EAAE,wBAAwB;CACtC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,GAA4B;IACzE,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAE9B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,uBAAuB,EAAE,0BAA0B,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;IACtH,CAAC;IAED,MAAM,GAAG,GAAG,mDAAmD,OAAO,uBAAuB,OAAO,EAAE,CAAC;IAEvG,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QACtG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAQ,CAAC;QAEvC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,CACT,iCAAiC,EACjC,IAAI,CAAC,OAAO,IAAI,gFAAgF,EAChG,IAAI,EACJ,YAAY,CACb,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAErC,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,KAAK,GAAG,CAAC;QAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;QACxD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,KAAK,GAAG,CAAC;QAC/C,MAAM,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,KAAK,GAAG,CAAC;QAE3D,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;YAChB,SAAS,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;YACjB,SAAS,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,SAAS,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC;QAEjD,OAAO,EAAE,CAAC;YACR,OAAO;YACP,WAAW,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc;YACvE,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,OAAO;YACrB,eAAe,EAAE;gBACf,WAAW;gBACX,UAAU;gBACV,aAAa,EAAE,MAAM;gBACrB,cAAc,EAAE,OAAO;gBACvB,UAAU;gBACV,gBAAgB;gBAChB,OAAO,EAAE,OAAO,CAAC,QAAQ,KAAK,GAAG;gBACjC,YAAY,EAAE,OAAO,CAAC,aAAa,IAAI,4CAA4C;gBACnF,cAAc,EAAE,OAAO,CAAC,eAAe,IAAI,4CAA4C;aACxF;YACD,KAAK;YACL,MAAM,EAAE,YAAY;YACpB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,qBAAqB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"checkTokenSecurity.js","sourceRoot":"","sources":["../../src/tools/checkTokenSecurity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { type ToolResponse } from "../lib/toolResponse.js";
|
|
3
|
-
export declare const createAgentWalletSchema: z.ZodObject<{
|
|
4
|
-
agentId: z.ZodString;
|
|
5
|
-
overwrite: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
6
|
-
}, "strip", z.ZodTypeAny, {
|
|
7
|
-
agentId: string;
|
|
8
|
-
overwrite: boolean;
|
|
9
|
-
}, {
|
|
10
|
-
agentId: string;
|
|
11
|
-
overwrite?: boolean | undefined;
|
|
12
|
-
}>;
|
|
13
|
-
export type CreateAgentWalletParams = z.infer<typeof createAgentWalletSchema>;
|
|
14
|
-
interface CreateAgentWalletData {
|
|
15
|
-
agentId: string;
|
|
16
|
-
address: string;
|
|
17
|
-
environment: string;
|
|
18
|
-
chainId: number;
|
|
19
|
-
isMainnet: boolean;
|
|
20
|
-
isTestnet: boolean;
|
|
21
|
-
createdAt: string;
|
|
22
|
-
warning: string;
|
|
23
|
-
instructions: string;
|
|
24
|
-
}
|
|
25
|
-
export declare function handleCreateAgentWallet(params: CreateAgentWalletParams): Promise<ToolResponse<CreateAgentWalletData>>;
|
|
26
|
-
export {};
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type ToolResponse } from "../lib/toolResponse.js";
|
|
3
|
+
export declare const createAgentWalletSchema: z.ZodObject<{
|
|
4
|
+
agentId: z.ZodString;
|
|
5
|
+
overwrite: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
agentId: string;
|
|
8
|
+
overwrite: boolean;
|
|
9
|
+
}, {
|
|
10
|
+
agentId: string;
|
|
11
|
+
overwrite?: boolean | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
export type CreateAgentWalletParams = z.infer<typeof createAgentWalletSchema>;
|
|
14
|
+
interface CreateAgentWalletData {
|
|
15
|
+
agentId: string;
|
|
16
|
+
address: string;
|
|
17
|
+
environment: string;
|
|
18
|
+
chainId: number;
|
|
19
|
+
isMainnet: boolean;
|
|
20
|
+
isTestnet: boolean;
|
|
21
|
+
createdAt: string;
|
|
22
|
+
warning: string;
|
|
23
|
+
instructions: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function handleCreateAgentWallet(params: CreateAgentWalletParams): Promise<ToolResponse<CreateAgentWalletData>>;
|
|
26
|
+
export {};
|
|
27
27
|
//# sourceMappingURL=createAgentWallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAgentWallet.d.ts","sourceRoot":"","sources":["../../src/tools/createAgentWallet.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAIrE,eAAO,MAAM,uBAAuB;;;;;;;;;EAWlC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"createAgentWallet.d.ts","sourceRoot":"","sources":["../../src/tools/createAgentWallet.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAIrE,eAAO,MAAM,uBAAuB;;;;;;;;;EAWlC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAqD9C"}
|
|
@@ -1,60 +1,59 @@
|
|
|
1
|
-
// ─── create_agent_wallet ────────────────────────────────────────────────
|
|
2
|
-
// Creates a new managed testnet agent wallet.
|
|
3
|
-
// Private key is
|
|
4
|
-
// ────────────────────────────────────────────────────────────────────────
|
|
5
|
-
import { z } from "zod";
|
|
6
|
-
import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
|
|
7
|
-
import { ok, fail } from "../lib/toolResponse.js";
|
|
8
|
-
import { walletStore,
|
|
9
|
-
import { CHAIN_ID, PHAROS_ENVIRONMENT, IS_MAINNET } from "../lib/constants.js";
|
|
10
|
-
export const createAgentWalletSchema = z.object({
|
|
11
|
-
agentId: z
|
|
12
|
-
.string()
|
|
13
|
-
.min(1)
|
|
14
|
-
.max(64)
|
|
15
|
-
.describe("Unique identifier for this agent wallet (e.g. 'trading-agent-1')"),
|
|
16
|
-
overwrite: z
|
|
17
|
-
.boolean()
|
|
18
|
-
.optional()
|
|
19
|
-
.default(false)
|
|
20
|
-
.describe("If true, overwrite existing wallet for this agentId"),
|
|
21
|
-
});
|
|
22
|
-
export async function handleCreateAgentWallet(params) {
|
|
23
|
-
const { agentId, overwrite } = params;
|
|
24
|
-
// Check if wallet already exists
|
|
25
|
-
const existing = await walletStore.get(agentId);
|
|
26
|
-
if (existing && !overwrite) {
|
|
27
|
-
return fail("WALLET_ALREADY_EXISTS", `A wallet for agentId '${agentId}' already exists. Use overwrite:true to replace it, or use get_agent_wallet to retrieve it.`, false, "wallet_store");
|
|
28
|
-
}
|
|
29
|
-
if (usesPersistentWalletStore() && !process.env.WALLET_ENCRYPTION_KEY) {
|
|
30
|
-
return fail("WALLET_ENCRYPTION_KEY_REQUIRED", "WALLET_ENCRYPTION_KEY is required when WALLET_STORE_PATH is used. Use in-memory store for local tests or provide a testnet-only encryption key.", false, "wallet_store");
|
|
31
|
-
}
|
|
32
|
-
// Generate new wallet
|
|
33
|
-
const privateKey = generatePrivateKey();
|
|
34
|
-
const account = privateKeyToAccount(privateKey);
|
|
35
|
-
//
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
1
|
+
// ─── create_agent_wallet ────────────────────────────────────────────────
|
|
2
|
+
// Creates a new managed testnet agent wallet.
|
|
3
|
+
// Private key is AES-256-GCM encrypted before storage, never returned in response.
|
|
4
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
|
|
7
|
+
import { ok, fail } from "../lib/toolResponse.js";
|
|
8
|
+
import { walletStore, encryptKey, usesPersistentWalletStore, getEffectiveEncryptionKey } from "../lib/wallet/index.js";
|
|
9
|
+
import { CHAIN_ID, PHAROS_ENVIRONMENT, IS_MAINNET } from "../lib/constants.js";
|
|
10
|
+
export const createAgentWalletSchema = z.object({
|
|
11
|
+
agentId: z
|
|
12
|
+
.string()
|
|
13
|
+
.min(1)
|
|
14
|
+
.max(64)
|
|
15
|
+
.describe("Unique identifier for this agent wallet (e.g. 'trading-agent-1')"),
|
|
16
|
+
overwrite: z
|
|
17
|
+
.boolean()
|
|
18
|
+
.optional()
|
|
19
|
+
.default(false)
|
|
20
|
+
.describe("If true, overwrite existing wallet for this agentId"),
|
|
21
|
+
});
|
|
22
|
+
export async function handleCreateAgentWallet(params) {
|
|
23
|
+
const { agentId, overwrite } = params;
|
|
24
|
+
// Check if wallet already exists
|
|
25
|
+
const existing = await walletStore.get(agentId);
|
|
26
|
+
if (existing && !overwrite) {
|
|
27
|
+
return fail("WALLET_ALREADY_EXISTS", `A wallet for agentId '${agentId}' already exists. Use overwrite:true to replace it, or use get_agent_wallet to retrieve it.`, false, "wallet_store");
|
|
28
|
+
}
|
|
29
|
+
if (usesPersistentWalletStore() && !process.env.WALLET_ENCRYPTION_KEY) {
|
|
30
|
+
return fail("WALLET_ENCRYPTION_KEY_REQUIRED", "WALLET_ENCRYPTION_KEY is required when WALLET_STORE_PATH is used. Use in-memory store for local tests or provide a testnet-only encryption key.", false, "wallet_store");
|
|
31
|
+
}
|
|
32
|
+
// Generate new wallet
|
|
33
|
+
const privateKey = generatePrivateKey();
|
|
34
|
+
const account = privateKeyToAccount(privateKey);
|
|
35
|
+
// Encrypt key before storage (AES-256-GCM)
|
|
36
|
+
const encryptedKey = encryptKey(privateKey, getEffectiveEncryptionKey());
|
|
37
|
+
// Store wallet
|
|
38
|
+
await walletStore.set(agentId, {
|
|
39
|
+
agentId,
|
|
40
|
+
address: account.address,
|
|
41
|
+
encryptedKey,
|
|
42
|
+
environment: "atlantic-testnet",
|
|
43
|
+
chainId: 688689,
|
|
44
|
+
isMainnet: false,
|
|
45
|
+
createdAt: new Date().toISOString(),
|
|
46
|
+
});
|
|
47
|
+
return ok({
|
|
48
|
+
agentId,
|
|
49
|
+
address: account.address,
|
|
50
|
+
environment: PHAROS_ENVIRONMENT,
|
|
51
|
+
chainId: CHAIN_ID,
|
|
52
|
+
isMainnet: IS_MAINNET,
|
|
53
|
+
isTestnet: true,
|
|
54
|
+
createdAt: new Date().toISOString(),
|
|
55
|
+
warning: "This is a TESTNET wallet only. Never use for mainnet funds. Private key is AES-256-GCM encrypted locally — testnet-grade, not KMS/Vault.",
|
|
56
|
+
instructions: `Fund this wallet with testnet PHRS from https://testnet.pharosnetwork.xyz/ before executing write operations. Set WRITE_TOOLS_ENABLED=true to enable transactions.`,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
60
59
|
//# sourceMappingURL=createAgentWallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAgentWallet.js","sourceRoot":"","sources":["../../src/tools/createAgentWallet.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"createAgentWallet.js","sourceRoot":"","sources":["../../src/tools/createAgentWallet.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8CAA8C;AAC9C,mFAAmF;AACnF,2EAA2E;AAE3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAqB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACvH,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,qDAAqD,CAAC;CACnE,CAAC,CAAC;AAgBH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA+B;IAE/B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAEtC,iCAAiC;IACjC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,CACT,uBAAuB,EACvB,yBAAyB,OAAO,6FAA6F,EAC7H,KAAK,EACL,cAAc,CACf,CAAC;IACJ,CAAC;IAED,IAAI,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtE,OAAO,IAAI,CACT,gCAAgC,EAChC,iJAAiJ,EACjJ,KAAK,EACL,cAAc,CACf,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAEhD,2CAA2C;IAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAEzE,eAAe;IACf,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE;QAC7B,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY;QACZ,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;QACR,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EACL,0IAA0I;QAC5I,YAAY,EAAE,oKAAoK;KACnL,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const estimateGasSchema: z.ZodObject<{
|
|
3
|
-
action: z.ZodEnum<["swap", "transfer"]>;
|
|
4
|
-
tokenIn: z.ZodOptional<z.ZodString>;
|
|
5
|
-
tokenOut: z.ZodOptional<z.ZodString>;
|
|
6
|
-
amount: z.ZodString;
|
|
7
|
-
walletAddress: z.ZodString;
|
|
8
|
-
toAddress: z.ZodOptional<z.ZodString>;
|
|
9
|
-
}, "strip", z.ZodTypeAny, {
|
|
10
|
-
amount: string;
|
|
11
|
-
walletAddress: string;
|
|
12
|
-
action: "transfer" | "swap";
|
|
13
|
-
tokenIn?: string | undefined;
|
|
14
|
-
tokenOut?: string | undefined;
|
|
15
|
-
toAddress?: string | undefined;
|
|
16
|
-
}, {
|
|
17
|
-
amount: string;
|
|
18
|
-
walletAddress: string;
|
|
19
|
-
action: "transfer" | "swap";
|
|
20
|
-
tokenIn?: string | undefined;
|
|
21
|
-
tokenOut?: string | undefined;
|
|
22
|
-
toAddress?: string | undefined;
|
|
23
|
-
}>;
|
|
24
|
-
export type EstimateGasInput = z.input<typeof estimateGasSchema>;
|
|
25
|
-
export declare const estimateGasTool: {
|
|
26
|
-
name: string;
|
|
27
|
-
description: string;
|
|
28
|
-
inputSchema: z.ZodObject<{
|
|
29
|
-
action: z.ZodEnum<["swap", "transfer"]>;
|
|
30
|
-
tokenIn: z.ZodOptional<z.ZodString>;
|
|
31
|
-
tokenOut: z.ZodOptional<z.ZodString>;
|
|
32
|
-
amount: z.ZodString;
|
|
33
|
-
walletAddress: z.ZodString;
|
|
34
|
-
toAddress: z.ZodOptional<z.ZodString>;
|
|
35
|
-
}, "strip", z.ZodTypeAny, {
|
|
36
|
-
amount: string;
|
|
37
|
-
walletAddress: string;
|
|
38
|
-
action: "transfer" | "swap";
|
|
39
|
-
tokenIn?: string | undefined;
|
|
40
|
-
tokenOut?: string | undefined;
|
|
41
|
-
toAddress?: string | undefined;
|
|
42
|
-
}, {
|
|
43
|
-
amount: string;
|
|
44
|
-
walletAddress: string;
|
|
45
|
-
action: "transfer" | "swap";
|
|
46
|
-
tokenIn?: string | undefined;
|
|
47
|
-
tokenOut?: string | undefined;
|
|
48
|
-
toAddress?: string | undefined;
|
|
49
|
-
}>;
|
|
50
|
-
};
|
|
51
|
-
export declare function handleEstimateGas(raw: EstimateGasInput): Promise<import("../lib/toolResponse.js").ToolFailure | import("../lib/toolResponse.js").ToolSuccess<{
|
|
52
|
-
action: "transfer" | "swap";
|
|
53
|
-
gasEstimate: {
|
|
54
|
-
value: string;
|
|
55
|
-
unit: string;
|
|
56
|
-
};
|
|
57
|
-
gasPrice: {
|
|
58
|
-
value: string;
|
|
59
|
-
unit: string;
|
|
60
|
-
};
|
|
61
|
-
gasCostPHRS: {
|
|
62
|
-
value: string;
|
|
63
|
-
unit: string;
|
|
64
|
-
};
|
|
65
|
-
gasCostUsd: {
|
|
66
|
-
value: string;
|
|
67
|
-
unit: string;
|
|
68
|
-
} | null;
|
|
69
|
-
walletBalance: {
|
|
70
|
-
value: string;
|
|
71
|
-
unit: string;
|
|
72
|
-
};
|
|
73
|
-
isSufficient: boolean;
|
|
74
|
-
priceSourceStatus: string;
|
|
75
|
-
chainId: number;
|
|
76
|
-
environment: string;
|
|
77
|
-
isMainnet: boolean;
|
|
78
|
-
source: string;
|
|
79
|
-
}>>;
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const estimateGasSchema: z.ZodObject<{
|
|
3
|
+
action: z.ZodEnum<["swap", "transfer"]>;
|
|
4
|
+
tokenIn: z.ZodOptional<z.ZodString>;
|
|
5
|
+
tokenOut: z.ZodOptional<z.ZodString>;
|
|
6
|
+
amount: z.ZodString;
|
|
7
|
+
walletAddress: z.ZodString;
|
|
8
|
+
toAddress: z.ZodOptional<z.ZodString>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
amount: string;
|
|
11
|
+
walletAddress: string;
|
|
12
|
+
action: "transfer" | "swap";
|
|
13
|
+
tokenIn?: string | undefined;
|
|
14
|
+
tokenOut?: string | undefined;
|
|
15
|
+
toAddress?: string | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
amount: string;
|
|
18
|
+
walletAddress: string;
|
|
19
|
+
action: "transfer" | "swap";
|
|
20
|
+
tokenIn?: string | undefined;
|
|
21
|
+
tokenOut?: string | undefined;
|
|
22
|
+
toAddress?: string | undefined;
|
|
23
|
+
}>;
|
|
24
|
+
export type EstimateGasInput = z.input<typeof estimateGasSchema>;
|
|
25
|
+
export declare const estimateGasTool: {
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
inputSchema: z.ZodObject<{
|
|
29
|
+
action: z.ZodEnum<["swap", "transfer"]>;
|
|
30
|
+
tokenIn: z.ZodOptional<z.ZodString>;
|
|
31
|
+
tokenOut: z.ZodOptional<z.ZodString>;
|
|
32
|
+
amount: z.ZodString;
|
|
33
|
+
walletAddress: z.ZodString;
|
|
34
|
+
toAddress: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, "strip", z.ZodTypeAny, {
|
|
36
|
+
amount: string;
|
|
37
|
+
walletAddress: string;
|
|
38
|
+
action: "transfer" | "swap";
|
|
39
|
+
tokenIn?: string | undefined;
|
|
40
|
+
tokenOut?: string | undefined;
|
|
41
|
+
toAddress?: string | undefined;
|
|
42
|
+
}, {
|
|
43
|
+
amount: string;
|
|
44
|
+
walletAddress: string;
|
|
45
|
+
action: "transfer" | "swap";
|
|
46
|
+
tokenIn?: string | undefined;
|
|
47
|
+
tokenOut?: string | undefined;
|
|
48
|
+
toAddress?: string | undefined;
|
|
49
|
+
}>;
|
|
50
|
+
};
|
|
51
|
+
export declare function handleEstimateGas(raw: EstimateGasInput): Promise<import("../lib/toolResponse.js").ToolFailure | import("../lib/toolResponse.js").ToolSuccess<{
|
|
52
|
+
action: "transfer" | "swap";
|
|
53
|
+
gasEstimate: {
|
|
54
|
+
value: string;
|
|
55
|
+
unit: string;
|
|
56
|
+
};
|
|
57
|
+
gasPrice: {
|
|
58
|
+
value: string;
|
|
59
|
+
unit: string;
|
|
60
|
+
};
|
|
61
|
+
gasCostPHRS: {
|
|
62
|
+
value: string;
|
|
63
|
+
unit: string;
|
|
64
|
+
};
|
|
65
|
+
gasCostUsd: {
|
|
66
|
+
value: string;
|
|
67
|
+
unit: string;
|
|
68
|
+
} | null;
|
|
69
|
+
walletBalance: {
|
|
70
|
+
value: string;
|
|
71
|
+
unit: string;
|
|
72
|
+
};
|
|
73
|
+
isSufficient: boolean;
|
|
74
|
+
priceSourceStatus: string;
|
|
75
|
+
chainId: number;
|
|
76
|
+
environment: string;
|
|
77
|
+
isMainnet: boolean;
|
|
78
|
+
source: string;
|
|
79
|
+
}>>;
|
|
80
80
|
//# sourceMappingURL=estimateGas.d.ts.map
|