safehands-pharos 1.4.0 → 1.5.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 (124) hide show
  1. package/README.md +174 -63
  2. package/dist/cli.d.ts +5 -5
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +126 -124
  5. package/dist/cli.js.map +1 -1
  6. package/dist/demo.d.ts +1 -1
  7. package/dist/demo.js +171 -171
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +73 -65
  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/constants.d.ts +303 -291
  15. package/dist/lib/constants.d.ts.map +1 -1
  16. package/dist/lib/constants.js +302 -292
  17. package/dist/lib/constants.js.map +1 -1
  18. package/dist/lib/dodoApi.d.ts +78 -78
  19. package/dist/lib/dodoApi.js +196 -196
  20. package/dist/lib/envLoader.d.ts +2 -0
  21. package/dist/lib/envLoader.d.ts.map +1 -0
  22. package/dist/lib/envLoader.js +44 -0
  23. package/dist/lib/envLoader.js.map +1 -0
  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.js +63 -63
  28. package/dist/lib/policy/actionPolicyEngine.d.ts +53 -53
  29. package/dist/lib/policy/actionPolicyEngine.js +212 -212
  30. package/dist/lib/riskEngine.d.ts +26 -26
  31. package/dist/lib/riskEngine.d.ts.map +1 -1
  32. package/dist/lib/riskEngine.js +288 -283
  33. package/dist/lib/riskEngine.js.map +1 -1
  34. package/dist/lib/signer/index.d.ts +24 -24
  35. package/dist/lib/signer/index.js +88 -88
  36. package/dist/lib/testDodoLive.d.ts +1 -1
  37. package/dist/lib/testDodoLive.js +104 -104
  38. package/dist/lib/testLiveSafehands.d.ts +1 -1
  39. package/dist/lib/testLiveSafehands.js +92 -92
  40. package/dist/lib/testRpcLive.d.ts +1 -1
  41. package/dist/lib/testRpcLive.js +88 -88
  42. package/dist/lib/testTools.js +397 -398
  43. package/dist/lib/testX402Live.d.ts +1 -1
  44. package/dist/lib/testX402Live.js +159 -159
  45. package/dist/lib/toolResponse.d.ts +25 -25
  46. package/dist/lib/toolResponse.js +53 -53
  47. package/dist/lib/wallet/index.d.ts +37 -37
  48. package/dist/lib/wallet/index.js +128 -128
  49. package/dist/scripts/checkDeploy.d.ts +1 -1
  50. package/dist/scripts/checkDeploy.js +24 -24
  51. package/dist/scripts/deployRegistry.d.ts +1 -1
  52. package/dist/scripts/deployRegistry.js +100 -100
  53. package/dist/scripts/testRegistry.d.ts +1 -1
  54. package/dist/scripts/testRegistry.js +43 -43
  55. package/dist/tools/approveToken.d.ts +45 -45
  56. package/dist/tools/approveToken.js +85 -85
  57. package/dist/tools/assessRisk.d.ts +79 -79
  58. package/dist/tools/assessRisk.js +104 -104
  59. package/dist/tools/checkAllowance.d.ts +43 -43
  60. package/dist/tools/checkAllowance.js +56 -56
  61. package/dist/tools/checkTokenSecurity.d.ts +46 -46
  62. package/dist/tools/checkTokenSecurity.js +95 -95
  63. package/dist/tools/createAgentWallet.d.ts +28 -26
  64. package/dist/tools/createAgentWallet.d.ts.map +1 -1
  65. package/dist/tools/createAgentWallet.js +82 -58
  66. package/dist/tools/createAgentWallet.js.map +1 -1
  67. package/dist/tools/estimateGas.d.ts +79 -79
  68. package/dist/tools/estimateGas.js +124 -124
  69. package/dist/tools/executeSwap.d.ts +61 -61
  70. package/dist/tools/executeSwap.js +141 -141
  71. package/dist/tools/explainRisk.d.ts +29 -29
  72. package/dist/tools/explainRisk.js +32 -32
  73. package/dist/tools/getAgentWallet.d.ts +21 -21
  74. package/dist/tools/getAgentWallet.js +27 -27
  75. package/dist/tools/getAgentWalletBalance.d.ts +11 -11
  76. package/dist/tools/getAgentWalletBalance.js +70 -70
  77. package/dist/tools/getExecutionHistory.d.ts +49 -49
  78. package/dist/tools/getExecutionHistory.js +154 -154
  79. package/dist/tools/getGasPrice.d.ts +43 -43
  80. package/dist/tools/getGasPrice.js +59 -59
  81. package/dist/tools/getPoolInfo.d.ts +75 -75
  82. package/dist/tools/getPoolInfo.js +137 -137
  83. package/dist/tools/getTokenPrice.d.ts +113 -113
  84. package/dist/tools/getTokenPrice.js +117 -117
  85. package/dist/tools/getTransactionStatus.d.ts +43 -43
  86. package/dist/tools/getTransactionStatus.js +59 -59
  87. package/dist/tools/getWalletBalance.d.ts +68 -68
  88. package/dist/tools/getWalletBalance.js +87 -87
  89. package/dist/tools/publishRiskScore.d.ts +63 -63
  90. package/dist/tools/publishRiskScore.js +88 -88
  91. package/dist/tools/queryRiskRegistry.d.ts +38 -38
  92. package/dist/tools/queryRiskRegistry.js +55 -55
  93. package/dist/tools/safehandsPreflightCheck.d.ts +77 -77
  94. package/dist/tools/safehandsPreflightCheck.js +47 -47
  95. package/dist/tools/safehandsRiskReport.d.ts +81 -81
  96. package/dist/tools/safehandsRiskReport.js +28 -28
  97. package/dist/tools/safehandsSafeExecute.d.ts +20 -20
  98. package/dist/tools/safehandsSafeExecute.js +81 -81
  99. package/dist/tools/safehandsWalletHealth.d.ts +14 -14
  100. package/dist/tools/safehandsWalletHealth.js +103 -103
  101. package/dist/tools/safehandsX402Preflight.d.ts +26 -26
  102. package/dist/tools/safehandsX402Preflight.js +65 -65
  103. package/dist/tools/sendPayment.d.ts +57 -57
  104. package/dist/tools/sendPayment.js +117 -117
  105. package/dist/tools/simulateTransaction.d.ts +60 -60
  106. package/dist/tools/simulateTransaction.js +83 -83
  107. package/dist/tools/tokenRegistryStatus.d.ts +26 -26
  108. package/dist/tools/tokenRegistryStatus.js +96 -96
  109. package/dist/tools/x402PayAndFetch.d.ts +81 -81
  110. package/dist/tools/x402PayAndFetch.js +152 -152
  111. package/dist/x402Server.d.ts +1 -1
  112. package/dist/x402Server.js +300 -252
  113. package/dist/x402Server.js.map +1 -1
  114. package/package.json +6 -16
  115. package/examples/dashboard/index.html +0 -337
  116. package/examples/pharos-skill-engine/SKILL.safehands.md +0 -85
  117. package/examples/pharos-skill-engine/assets/safehands/example-actions.json +0 -49
  118. package/examples/pharos-skill-engine/assets/safehands/policy-defaults.json +0 -11
  119. package/examples/pharos-skill-engine/references/safehands.md +0 -345
  120. package/examples/scenario-hack.ts +0 -38
  121. package/skill/SKILL.md +0 -133
  122. package/skill/assets/safehands/example-actions.json +0 -49
  123. package/skill/assets/safehands/policy-defaults.json +0 -11
  124. package/skill/references/safehands.md +0 -345
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=testRpcLive.d.ts.map
@@ -1,89 +1,89 @@
1
- // ─── Live RPC Verification ─────────────────────────────────────────────
2
- // Real read-only test against Pharos Atlantic Testnet.
3
- // Does NOT require a private key. Wallet balance check requires WALLET_ADDRESS.
4
- // ────────────────────────────────────────────────────────────────────────
5
- import { publicClient } from "./pharosClient.js";
6
- import { CHAIN_ID, RPC_URL, PHAROS_ENVIRONMENT } from "./constants.js";
7
- import { formatEther, isAddress } from "viem";
8
- async function main() {
9
- const result = {
10
- rpcReachable: false,
11
- chainId: null,
12
- chainIdMatch: false,
13
- latestBlock: null,
14
- walletBalance: null,
15
- walletBalanceCheck: "SKIPPED_NO_WALLET_ADDRESS",
16
- status: "FAIL",
17
- rpcUrl: RPC_URL,
18
- environment: PHAROS_ENVIRONMENT,
19
- expectedChainId: CHAIN_ID,
20
- errors: [],
21
- };
22
- console.log("═══════════════════════════════════════════════════════════");
23
- console.log(" SafeHands — Live RPC Verification (read-only)");
24
- console.log("═══════════════════════════════════════════════════════════");
25
- console.log(` RPC URL: ${RPC_URL}`);
26
- console.log(` Environment: ${PHAROS_ENVIRONMENT}`);
27
- console.log(` Expected ID: ${CHAIN_ID}`);
28
- console.log("");
29
- // 1. Chain ID
30
- try {
31
- const chainId = await publicClient.getChainId();
32
- result.rpcReachable = true;
33
- result.chainId = chainId;
34
- result.chainIdMatch = chainId === CHAIN_ID;
35
- console.log(` RPC reachable: ✅ yes`);
36
- console.log(` Chain ID: ${chainId} ${result.chainIdMatch ? "✅ match" : "❌ MISMATCH"}`);
37
- }
38
- catch (err) {
39
- result.errors.push(`RPC connect: ${err.message || String(err)}`);
40
- console.log(` RPC reachable: ❌ no`);
41
- console.log(` Error: ${err.message || String(err)}`);
42
- result.status = "SKIPPED_NETWORK";
43
- console.log(`\n Status: ${result.status}`);
44
- console.log(JSON.stringify(result, (_k, v) => typeof v === "bigint" ? v.toString() : v, 2));
45
- process.exit(0);
46
- }
47
- // 2. Latest block
48
- try {
49
- const blockNumber = await publicClient.getBlockNumber();
50
- result.latestBlock = blockNumber;
51
- console.log(` Latest block: ${blockNumber}`);
52
- }
53
- catch (err) {
54
- result.errors.push(`Block number: ${err.message || String(err)}`);
55
- console.log(` Latest block: ❌ failed (${err.message})`);
56
- }
57
- // 3. Wallet balance
58
- const walletAddress = process.env.WALLET_ADDRESS;
59
- if (walletAddress && isAddress(walletAddress)) {
60
- try {
61
- const balance = await publicClient.getBalance({ address: walletAddress });
62
- result.walletBalance = formatEther(balance);
63
- result.walletBalanceCheck = "PASS";
64
- console.log(` Wallet: ${walletAddress}`);
65
- console.log(` Balance: ${result.walletBalance} PHRS ✅`);
66
- }
67
- catch (err) {
68
- result.walletBalanceCheck = "FAIL";
69
- result.errors.push(`Balance: ${err.message || String(err)}`);
70
- console.log(` Balance check: ❌ failed (${err.message})`);
71
- }
72
- }
73
- else {
74
- console.log(` Wallet check: SKIPPED_NO_WALLET_ADDRESS`);
75
- }
76
- // Final status
77
- result.status = result.rpcReachable && result.chainIdMatch && result.latestBlock !== null ? "PASS" : "FAIL";
78
- console.log("");
79
- console.log(` Status: ${result.status}`);
80
- console.log("═══════════════════════════════════════════════════════════");
81
- console.log(JSON.stringify(result, (_k, v) => typeof v === "bigint" ? v.toString() : v, 2));
82
- if (result.status === "FAIL")
83
- process.exit(1);
84
- }
85
- main().catch((err) => {
86
- console.error("❌ Unexpected error:", err);
87
- process.exit(1);
88
- });
1
+ // ─── Live RPC Verification ─────────────────────────────────────────────
2
+ // Real read-only test against Pharos Atlantic Testnet.
3
+ // Does NOT require a private key. Wallet balance check requires WALLET_ADDRESS.
4
+ // ────────────────────────────────────────────────────────────────────────
5
+ import { publicClient } from "./pharosClient.js";
6
+ import { CHAIN_ID, RPC_URL, PHAROS_ENVIRONMENT } from "./constants.js";
7
+ import { formatEther, isAddress } from "viem";
8
+ async function main() {
9
+ const result = {
10
+ rpcReachable: false,
11
+ chainId: null,
12
+ chainIdMatch: false,
13
+ latestBlock: null,
14
+ walletBalance: null,
15
+ walletBalanceCheck: "SKIPPED_NO_WALLET_ADDRESS",
16
+ status: "FAIL",
17
+ rpcUrl: RPC_URL,
18
+ environment: PHAROS_ENVIRONMENT,
19
+ expectedChainId: CHAIN_ID,
20
+ errors: [],
21
+ };
22
+ console.log("═══════════════════════════════════════════════════════════");
23
+ console.log(" SafeHands — Live RPC Verification (read-only)");
24
+ console.log("═══════════════════════════════════════════════════════════");
25
+ console.log(` RPC URL: ${RPC_URL}`);
26
+ console.log(` Environment: ${PHAROS_ENVIRONMENT}`);
27
+ console.log(` Expected ID: ${CHAIN_ID}`);
28
+ console.log("");
29
+ // 1. Chain ID
30
+ try {
31
+ const chainId = await publicClient.getChainId();
32
+ result.rpcReachable = true;
33
+ result.chainId = chainId;
34
+ result.chainIdMatch = chainId === CHAIN_ID;
35
+ console.log(` RPC reachable: ✅ yes`);
36
+ console.log(` Chain ID: ${chainId} ${result.chainIdMatch ? "✅ match" : "❌ MISMATCH"}`);
37
+ }
38
+ catch (err) {
39
+ result.errors.push(`RPC connect: ${err.message || String(err)}`);
40
+ console.log(` RPC reachable: ❌ no`);
41
+ console.log(` Error: ${err.message || String(err)}`);
42
+ result.status = "SKIPPED_NETWORK";
43
+ console.log(`\n Status: ${result.status}`);
44
+ console.log(JSON.stringify(result, (_k, v) => typeof v === "bigint" ? v.toString() : v, 2));
45
+ process.exit(0);
46
+ }
47
+ // 2. Latest block
48
+ try {
49
+ const blockNumber = await publicClient.getBlockNumber();
50
+ result.latestBlock = blockNumber;
51
+ console.log(` Latest block: ${blockNumber}`);
52
+ }
53
+ catch (err) {
54
+ result.errors.push(`Block number: ${err.message || String(err)}`);
55
+ console.log(` Latest block: ❌ failed (${err.message})`);
56
+ }
57
+ // 3. Wallet balance
58
+ const walletAddress = process.env.WALLET_ADDRESS;
59
+ if (walletAddress && isAddress(walletAddress)) {
60
+ try {
61
+ const balance = await publicClient.getBalance({ address: walletAddress });
62
+ result.walletBalance = formatEther(balance);
63
+ result.walletBalanceCheck = "PASS";
64
+ console.log(` Wallet: ${walletAddress}`);
65
+ console.log(` Balance: ${result.walletBalance} PHRS ✅`);
66
+ }
67
+ catch (err) {
68
+ result.walletBalanceCheck = "FAIL";
69
+ result.errors.push(`Balance: ${err.message || String(err)}`);
70
+ console.log(` Balance check: ❌ failed (${err.message})`);
71
+ }
72
+ }
73
+ else {
74
+ console.log(` Wallet check: SKIPPED_NO_WALLET_ADDRESS`);
75
+ }
76
+ // Final status
77
+ result.status = result.rpcReachable && result.chainIdMatch && result.latestBlock !== null ? "PASS" : "FAIL";
78
+ console.log("");
79
+ console.log(` Status: ${result.status}`);
80
+ console.log("═══════════════════════════════════════════════════════════");
81
+ console.log(JSON.stringify(result, (_k, v) => typeof v === "bigint" ? v.toString() : v, 2));
82
+ if (result.status === "FAIL")
83
+ process.exit(1);
84
+ }
85
+ main().catch((err) => {
86
+ console.error("❌ Unexpected error:", err);
87
+ process.exit(1);
88
+ });
89
89
  //# sourceMappingURL=testRpcLive.js.map