agentvault 1.0.1 → 1.0.2

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 (292) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/dist/cli/commands/approve.js +5 -5
  3. package/dist/cli/commands/archive.js +5 -5
  4. package/dist/cli/commands/backup.js +5 -5
  5. package/dist/cli/commands/cloud-backup.js +12 -12
  6. package/dist/cli/commands/decrypt.js +2 -2
  7. package/dist/cli/commands/deploy.js +1 -1
  8. package/dist/cli/commands/exec.js +2 -2
  9. package/dist/cli/commands/fetch.js +4 -4
  10. package/dist/cli/commands/inference.js +5 -5
  11. package/dist/cli/commands/init.d.ts +1 -1
  12. package/dist/cli/commands/init.js +16 -16
  13. package/dist/cli/commands/list.js +4 -4
  14. package/dist/cli/commands/package.js +2 -2
  15. package/dist/cli/commands/profile.js +1 -1
  16. package/dist/cli/commands/rebuild.js +2 -2
  17. package/dist/cli/commands/show.js +1 -1
  18. package/dist/cli/commands/status.d.ts +1 -1
  19. package/dist/cli/commands/status.js +8 -8
  20. package/dist/cli/commands/trace.js +1 -1
  21. package/dist/cli/commands/wallet-export.js +1 -1
  22. package/dist/cli/commands/wallet-sign.js +1 -1
  23. package/dist/cli/commands/wallet.d.ts +1 -1
  24. package/dist/cli/commands/wallet.js +1 -1
  25. package/dist/cli/index.d.ts +2 -2
  26. package/dist/cli/index.js +3 -3
  27. package/dist/src/archival/archive-manager.d.ts +85 -0
  28. package/dist/src/archival/archive-manager.js +294 -0
  29. package/dist/src/archival/arweave-client.d.ts +88 -0
  30. package/dist/src/archival/arweave-client.js +223 -0
  31. package/dist/src/archival/index.d.ts +8 -0
  32. package/{src/archival/index.ts → dist/src/archival/index.js} +1 -1
  33. package/dist/src/backup/backup.d.ts +67 -0
  34. package/dist/src/backup/backup.js +231 -0
  35. package/dist/src/backup/index.d.ts +7 -0
  36. package/{src/backup/index.ts → dist/src/backup/index.js} +1 -1
  37. package/dist/src/cloud-storage/cloud-sync.d.ts +49 -0
  38. package/dist/src/cloud-storage/cloud-sync.js +372 -0
  39. package/dist/src/cloud-storage/index.d.ts +11 -0
  40. package/{src/cloud-storage/index.ts → dist/src/cloud-storage/index.js} +1 -1
  41. package/dist/src/cloud-storage/provider-detector.d.ts +34 -0
  42. package/dist/src/cloud-storage/provider-detector.js +158 -0
  43. package/{src/cloud-storage/types.ts → dist/src/cloud-storage/types.d.ts} +40 -53
  44. package/dist/src/cloud-storage/types.js +10 -0
  45. package/dist/src/debugging/index.d.ts +6 -0
  46. package/{src/debugging/index.ts → dist/src/debugging/index.js} +1 -1
  47. package/dist/src/debugging/logs.d.ts +32 -0
  48. package/dist/src/debugging/logs.js +158 -0
  49. package/dist/src/debugging/types.d.ts +91 -0
  50. package/dist/src/debugging/types.js +5 -0
  51. package/dist/src/deployment/deployer.d.ts +52 -0
  52. package/dist/src/deployment/deployer.js +211 -0
  53. package/dist/src/deployment/icpClient.d.ts +144 -0
  54. package/dist/src/deployment/icpClient.js +545 -0
  55. package/dist/src/deployment/index.d.ts +11 -0
  56. package/dist/src/deployment/index.js +14 -0
  57. package/dist/src/deployment/promotion.d.ts +32 -0
  58. package/dist/src/deployment/promotion.js +114 -0
  59. package/dist/src/deployment/types.d.ts +101 -0
  60. package/dist/src/deployment/types.js +5 -0
  61. package/dist/src/icp/batch.d.ts +112 -0
  62. package/dist/src/icp/batch.js +273 -0
  63. package/dist/src/icp/cycles.d.ts +29 -0
  64. package/{src/icp/cycles.ts → dist/src/icp/cycles.js} +8 -22
  65. package/dist/src/icp/environment.d.ts +60 -0
  66. package/dist/src/icp/environment.js +183 -0
  67. package/dist/src/icp/icpcli.d.ts +204 -0
  68. package/dist/src/icp/icpcli.js +374 -0
  69. package/dist/src/icp/icwasm.d.ts +94 -0
  70. package/dist/src/icp/icwasm.js +197 -0
  71. package/dist/src/icp/identity.d.ts +50 -0
  72. package/{src/icp/identity.ts → dist/src/icp/identity.js} +15 -28
  73. package/dist/src/icp/index.d.ts +16 -0
  74. package/dist/src/icp/index.js +20 -0
  75. package/dist/src/icp/optimization.d.ts +16 -0
  76. package/dist/src/icp/optimization.js +225 -0
  77. package/dist/src/icp/tokens.d.ts +24 -0
  78. package/{src/icp/tokens.ts → dist/src/icp/tokens.js} +5 -12
  79. package/dist/src/icp/tool-detector.d.ts +31 -0
  80. package/dist/src/icp/tool-detector.js +104 -0
  81. package/dist/src/icp/types.d.ts +493 -0
  82. package/dist/src/icp/types.js +7 -0
  83. package/dist/src/index.d.ts +12 -0
  84. package/dist/src/index.js +18 -0
  85. package/dist/src/inference/bittensor-client.d.ts +108 -0
  86. package/dist/src/inference/bittensor-client.js +224 -0
  87. package/dist/src/inference/index.d.ts +8 -0
  88. package/{src/inference/index.ts → dist/src/inference/index.js} +1 -1
  89. package/dist/src/inference/inference-manager.d.ts +76 -0
  90. package/dist/src/inference/inference-manager.js +228 -0
  91. package/dist/src/metrics/index.d.ts +7 -0
  92. package/{src/metrics/index.ts → dist/src/metrics/index.js} +1 -1
  93. package/dist/src/metrics/metrics.d.ts +39 -0
  94. package/dist/src/metrics/metrics.js +129 -0
  95. package/dist/src/monitoring/alerting.d.ts +51 -0
  96. package/dist/src/monitoring/alerting.js +169 -0
  97. package/dist/src/monitoring/health.d.ts +40 -0
  98. package/dist/src/monitoring/health.js +164 -0
  99. package/dist/src/monitoring/index.d.ts +10 -0
  100. package/dist/src/monitoring/index.js +12 -0
  101. package/dist/src/monitoring/info.d.ts +15 -0
  102. package/dist/src/monitoring/info.js +109 -0
  103. package/dist/src/monitoring/types.d.ts +93 -0
  104. package/dist/src/monitoring/types.js +7 -0
  105. package/dist/src/network/index.d.ts +5 -0
  106. package/{src/network/index.ts → dist/src/network/index.js} +1 -1
  107. package/dist/src/network/network-config.d.ts +31 -0
  108. package/dist/src/network/network-config.js +109 -0
  109. package/dist/src/packaging/compiler.d.ts +61 -0
  110. package/dist/src/packaging/compiler.js +562 -0
  111. package/dist/src/packaging/config-persistence.d.ts +46 -0
  112. package/dist/src/packaging/config-persistence.js +108 -0
  113. package/dist/src/packaging/config-schemas.d.ts +115 -0
  114. package/dist/src/packaging/config-schemas.js +43 -0
  115. package/dist/src/packaging/detector.d.ts +26 -0
  116. package/dist/src/packaging/detector.js +193 -0
  117. package/dist/src/packaging/index.d.ts +16 -0
  118. package/dist/src/packaging/index.js +22 -0
  119. package/dist/src/packaging/packager.d.ts +31 -0
  120. package/dist/src/packaging/packager.js +90 -0
  121. package/dist/src/packaging/parsers/clawdbot.d.ts +19 -0
  122. package/dist/src/packaging/parsers/clawdbot.js +231 -0
  123. package/dist/src/packaging/parsers/cline.d.ts +26 -0
  124. package/dist/src/packaging/parsers/cline.js +185 -0
  125. package/dist/src/packaging/parsers/generic.d.ts +27 -0
  126. package/dist/src/packaging/parsers/generic.js +228 -0
  127. package/dist/src/packaging/parsers/goose.d.ts +26 -0
  128. package/dist/src/packaging/parsers/goose.js +175 -0
  129. package/dist/src/packaging/parsers/index.d.ts +11 -0
  130. package/{src/packaging/parsers/index.ts → dist/src/packaging/parsers/index.js} +1 -1
  131. package/dist/src/packaging/serializer.d.ts +108 -0
  132. package/dist/src/packaging/serializer.js +153 -0
  133. package/dist/src/packaging/types.d.ts +131 -0
  134. package/dist/src/packaging/types.js +5 -0
  135. package/dist/src/packaging/wasmedge-compiler.d.ts +76 -0
  136. package/dist/src/packaging/wasmedge-compiler.js +349 -0
  137. package/dist/src/security/index.d.ts +11 -0
  138. package/{src/security/index.ts → dist/src/security/index.js} +1 -4
  139. package/dist/src/security/multisig.d.ts +102 -0
  140. package/dist/src/security/multisig.js +283 -0
  141. package/dist/src/security/types.d.ts +207 -0
  142. package/dist/src/security/types.js +217 -0
  143. package/dist/src/security/vetkeys.d.ts +179 -0
  144. package/dist/src/security/vetkeys.js +499 -0
  145. package/dist/src/testing/index.d.ts +6 -0
  146. package/{src/testing/index.ts → dist/src/testing/index.js} +1 -1
  147. package/dist/src/testing/local-runner.d.ts +23 -0
  148. package/dist/src/testing/local-runner.js +226 -0
  149. package/dist/src/testing/types.d.ts +98 -0
  150. package/dist/src/testing/types.js +5 -0
  151. package/dist/src/wallet/cbor-serializer.d.ts +82 -0
  152. package/dist/src/wallet/cbor-serializer.js +282 -0
  153. package/dist/src/wallet/chain-dispatcher.d.ts +112 -0
  154. package/dist/src/wallet/chain-dispatcher.js +241 -0
  155. package/dist/src/wallet/cross-chain-aggregator.d.ts +119 -0
  156. package/dist/src/wallet/cross-chain-aggregator.js +235 -0
  157. package/dist/src/wallet/index.d.ts +16 -0
  158. package/dist/src/wallet/index.js +22 -0
  159. package/dist/src/wallet/key-derivation.d.ts +117 -0
  160. package/dist/src/wallet/key-derivation.js +325 -0
  161. package/dist/src/wallet/providers/base-provider.d.ts +111 -0
  162. package/dist/src/wallet/providers/base-provider.js +58 -0
  163. package/dist/src/wallet/providers/cketh-provider.d.ts +104 -0
  164. package/dist/src/wallet/providers/cketh-provider.js +343 -0
  165. package/dist/src/wallet/providers/polkadot-provider.d.ts +115 -0
  166. package/dist/src/wallet/providers/polkadot-provider.js +407 -0
  167. package/dist/src/wallet/providers/solana-provider.d.ts +102 -0
  168. package/dist/src/wallet/providers/solana-provider.js +393 -0
  169. package/dist/src/wallet/transaction-queue.d.ts +133 -0
  170. package/dist/src/wallet/transaction-queue.js +195 -0
  171. package/dist/src/wallet/types.d.ts +167 -0
  172. package/dist/src/wallet/types.js +5 -0
  173. package/dist/src/wallet/vetkeys-adapter.d.ts +134 -0
  174. package/dist/src/wallet/vetkeys-adapter.js +313 -0
  175. package/dist/src/wallet/wallet-manager.d.ts +202 -0
  176. package/dist/src/wallet/wallet-manager.js +451 -0
  177. package/dist/src/wallet/wallet-storage.d.ts +131 -0
  178. package/dist/src/wallet/wallet-storage.js +274 -0
  179. package/macos-wallet-app/AgentVaultWallet/App/AgentVaultWalletApp.swift +54 -0
  180. package/macos-wallet-app/AgentVaultWallet/Models/AppState.swift +102 -0
  181. package/macos-wallet-app/AgentVaultWallet/Models/Chain.swift +121 -0
  182. package/macos-wallet-app/AgentVaultWallet/Models/Wallet.swift +98 -0
  183. package/macos-wallet-app/AgentVaultWallet/Resources/AgentVaultWallet.entitlements +27 -0
  184. package/macos-wallet-app/AgentVaultWallet/Resources/Info.plist +69 -0
  185. package/macos-wallet-app/AgentVaultWallet/Services/BackupService.swift +270 -0
  186. package/macos-wallet-app/AgentVaultWallet/Services/CLIBridge.swift +367 -0
  187. package/macos-wallet-app/AgentVaultWallet/Services/CryptoService.swift +157 -0
  188. package/macos-wallet-app/AgentVaultWallet/Services/FileService.swift +120 -0
  189. package/macos-wallet-app/AgentVaultWallet/Services/KeychainService.swift +219 -0
  190. package/macos-wallet-app/AgentVaultWallet/Utilities/Constants.swift +44 -0
  191. package/macos-wallet-app/AgentVaultWallet/Utilities/Extensions.swift +115 -0
  192. package/macos-wallet-app/AgentVaultWallet/ViewModels/BackupViewModel.swift +237 -0
  193. package/macos-wallet-app/AgentVaultWallet/ViewModels/CreateWalletViewModel.swift +137 -0
  194. package/macos-wallet-app/AgentVaultWallet/ViewModels/ImportWalletViewModel.swift +179 -0
  195. package/macos-wallet-app/AgentVaultWallet/ViewModels/WalletStore.swift +286 -0
  196. package/macos-wallet-app/AgentVaultWallet/Views/Backup/BackupView.swift +235 -0
  197. package/macos-wallet-app/AgentVaultWallet/Views/Backup/RestoreView.swift +316 -0
  198. package/macos-wallet-app/AgentVaultWallet/Views/Create/CreateWalletFlow.swift +438 -0
  199. package/macos-wallet-app/AgentVaultWallet/Views/Import/ImportWalletFlow.swift +399 -0
  200. package/macos-wallet-app/AgentVaultWallet/Views/MainView.swift +134 -0
  201. package/macos-wallet-app/AgentVaultWallet/Views/Settings/SettingsView.swift +276 -0
  202. package/macos-wallet-app/AgentVaultWallet/Views/Sidebar/SidebarView.swift +133 -0
  203. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/DashboardView.swift +233 -0
  204. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletDetailView.swift +281 -0
  205. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletListView.swift +280 -0
  206. package/macos-wallet-app/AgentVaultWallet/Views/Welcome/WelcomeView.swift +176 -0
  207. package/macos-wallet-app/Makefile +47 -0
  208. package/macos-wallet-app/project.yml +40 -0
  209. package/macos-wallet-app/setup.sh +73 -0
  210. package/package.json +10 -2
  211. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-28-967Z.json +0 -28
  212. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-29-032Z.backup +0 -1
  213. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-373Z.json +0 -28
  214. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-428Z.backup +0 -1
  215. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-132Z.json +0 -28
  216. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-247Z.backup +0 -1
  217. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-216Z.json +0 -28
  218. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-283Z.backup +0 -1
  219. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-772Z.backup +0 -1
  220. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-793Z.json +0 -28
  221. package/backups/test-backup.json +0 -28
  222. package/scripts/dev-dashboard.mjs +0 -84
  223. package/site/README.md +0 -63
  224. package/site/docusaurus.config.ts +0 -148
  225. package/site/package-lock.json +0 -18383
  226. package/site/package.json +0 -47
  227. package/site/sidebars.ts +0 -86
  228. package/site/static/.gitkeep +0 -0
  229. package/site/static/img/logo.svg +0 -28
  230. package/site/static/img/og-image.svg +0 -35
  231. package/src/archival/archive-manager.ts +0 -372
  232. package/src/archival/arweave-client.ts +0 -289
  233. package/src/backup/backup.ts +0 -315
  234. package/src/cloud-storage/cloud-sync.ts +0 -461
  235. package/src/cloud-storage/provider-detector.ts +0 -198
  236. package/src/debugging/logs.ts +0 -193
  237. package/src/debugging/types.ts +0 -100
  238. package/src/deployment/deployer.ts +0 -274
  239. package/src/deployment/icpClient.ts +0 -620
  240. package/src/deployment/index.ts +0 -46
  241. package/src/deployment/promotion.ts +0 -161
  242. package/src/deployment/types.ts +0 -111
  243. package/src/icp/batch.ts +0 -374
  244. package/src/icp/environment.ts +0 -215
  245. package/src/icp/icpcli.ts +0 -438
  246. package/src/icp/icwasm.ts +0 -222
  247. package/src/icp/index.ts +0 -94
  248. package/src/icp/optimization.ts +0 -242
  249. package/src/icp/tool-detector.ts +0 -110
  250. package/src/icp/types.ts +0 -574
  251. package/src/index.ts +0 -25
  252. package/src/inference/bittensor-client.ts +0 -304
  253. package/src/inference/inference-manager.ts +0 -327
  254. package/src/metrics/metrics.ts +0 -186
  255. package/src/monitoring/alerting.ts +0 -190
  256. package/src/monitoring/health.ts +0 -197
  257. package/src/monitoring/index.ts +0 -38
  258. package/src/monitoring/info.ts +0 -114
  259. package/src/monitoring/types.ts +0 -99
  260. package/src/network/network-config.ts +0 -129
  261. package/src/packaging/compiler.ts +0 -647
  262. package/src/packaging/config-persistence.ts +0 -135
  263. package/src/packaging/config-schemas.ts +0 -156
  264. package/src/packaging/detector.ts +0 -220
  265. package/src/packaging/index.ts +0 -90
  266. package/src/packaging/packager.ts +0 -118
  267. package/src/packaging/parsers/clawdbot.ts +0 -278
  268. package/src/packaging/parsers/cline.ts +0 -223
  269. package/src/packaging/parsers/generic.ts +0 -266
  270. package/src/packaging/parsers/goose.ts +0 -214
  271. package/src/packaging/serializer.ts +0 -260
  272. package/src/packaging/types.ts +0 -144
  273. package/src/packaging/wasmedge-compiler.ts +0 -406
  274. package/src/security/multisig.ts +0 -415
  275. package/src/security/types.ts +0 -416
  276. package/src/security/vetkeys.ts +0 -655
  277. package/src/testing/local-runner.ts +0 -264
  278. package/src/testing/types.ts +0 -104
  279. package/src/wallet/cbor-serializer.ts +0 -323
  280. package/src/wallet/chain-dispatcher.ts +0 -313
  281. package/src/wallet/cross-chain-aggregator.ts +0 -346
  282. package/src/wallet/index.ts +0 -76
  283. package/src/wallet/key-derivation.ts +0 -425
  284. package/src/wallet/providers/base-provider.ts +0 -154
  285. package/src/wallet/providers/cketh-provider.ts +0 -434
  286. package/src/wallet/providers/polkadot-provider.ts +0 -503
  287. package/src/wallet/providers/solana-provider.ts +0 -490
  288. package/src/wallet/transaction-queue.ts +0 -284
  289. package/src/wallet/types.ts +0 -178
  290. package/src/wallet/vetkeys-adapter.ts +0 -431
  291. package/src/wallet/wallet-manager.ts +0 -597
  292. package/src/wallet/wallet-storage.ts +0 -380
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Transaction Queue Processor (Phase 5B)
3
+ *
4
+ * Advanced transaction queue with priority, retries, and scheduling.
5
+ * Handles agent-initiated transactions queued in canister.
6
+ */
7
+ /**
8
+ * Transaction queue processor
9
+ */
10
+ export class TransactionQueueProcessor {
11
+ actor;
12
+ maxRetries;
13
+ constructor(_canisterId, actor, options) {
14
+ this.actor = actor;
15
+ this.maxRetries = options?.maxRetries ?? 3;
16
+ }
17
+ /**
18
+ * Fetch pending transactions from canister
19
+ */
20
+ async fetchPendingTransactions() {
21
+ try {
22
+ return await this.actor.getPendingTransactions();
23
+ }
24
+ catch (error) {
25
+ console.error('Failed to fetch pending transactions:', error);
26
+ return [];
27
+ }
28
+ }
29
+ /**
30
+ * Process all pending transactions
31
+ *
32
+ * @param signCallback - Callback to sign transactions
33
+ * @returns Processing results
34
+ */
35
+ async processPendingTransactions(signCallback) {
36
+ const pending = await this.fetchPendingTransactions();
37
+ const results = [];
38
+ for (const tx of pending) {
39
+ const result = await this.processTransaction(tx, signCallback);
40
+ results.push(result);
41
+ }
42
+ return results;
43
+ }
44
+ /**
45
+ * Process a single transaction
46
+ */
47
+ async processTransaction(tx, signCallback) {
48
+ const { getWallet } = await import('./wallet-manager.js');
49
+ const wallet = getWallet('', tx.action.walletId);
50
+ if (!wallet) {
51
+ await this.markFailed(tx.id, 'Wallet not found');
52
+ return {
53
+ transactionId: tx.id,
54
+ success: false,
55
+ error: 'Wallet not found',
56
+ processedAt: Date.now(),
57
+ };
58
+ }
59
+ try {
60
+ const action = this.mapActionToRequest(tx.action);
61
+ const signed = await signCallback(wallet, action);
62
+ if (!signed) {
63
+ await this.markFailed(tx.id, 'Signing failed');
64
+ return {
65
+ transactionId: tx.id,
66
+ success: false,
67
+ error: 'Signing failed',
68
+ processedAt: Date.now(),
69
+ };
70
+ }
71
+ await this.markSigned(tx.id, signed.signature || '');
72
+ return {
73
+ transactionId: tx.id,
74
+ success: true,
75
+ txHash: signed.txHash,
76
+ processedAt: Date.now(),
77
+ };
78
+ }
79
+ catch (error) {
80
+ const message = error instanceof Error ? error.message : 'Unknown error';
81
+ if (tx.retryCount < this.maxRetries) {
82
+ await this.actor.retryTransaction(tx.id);
83
+ }
84
+ else {
85
+ await this.markFailed(tx.id, message);
86
+ }
87
+ return {
88
+ transactionId: tx.id,
89
+ success: false,
90
+ error: message,
91
+ processedAt: Date.now(),
92
+ };
93
+ }
94
+ }
95
+ /**
96
+ * Map canister action to transaction request
97
+ */
98
+ mapActionToRequest(action) {
99
+ const params = new Map(action.parameters);
100
+ return {
101
+ to: params.get('to') || '',
102
+ amount: params.get('amount') || '0',
103
+ chain: (params.get('chain') || 'cketh'),
104
+ memo: params.get('memo'),
105
+ gasPrice: params.get('gasPrice'),
106
+ gasLimit: params.get('gasLimit'),
107
+ };
108
+ }
109
+ /**
110
+ * Mark transaction as signed in canister
111
+ */
112
+ async markSigned(txId, signature) {
113
+ try {
114
+ await this.actor.markTransactionSigned(txId, signature);
115
+ }
116
+ catch (error) {
117
+ console.error('Failed to mark transaction as signed:', error);
118
+ }
119
+ }
120
+ /**
121
+ * Mark transaction as failed in canister
122
+ */
123
+ async markFailed(txId, error) {
124
+ try {
125
+ await this.actor.markTransactionFailed(txId, error);
126
+ }
127
+ catch (err) {
128
+ console.error('Failed to mark transaction as failed:', err);
129
+ }
130
+ }
131
+ /**
132
+ * Mark transaction as completed in canister
133
+ */
134
+ async markCompleted(txId, txHash) {
135
+ try {
136
+ await this.actor.markTransactionCompleted(txId, txHash);
137
+ }
138
+ catch (error) {
139
+ console.error('Failed to mark transaction as completed:', error);
140
+ }
141
+ }
142
+ /**
143
+ * Get queue statistics
144
+ */
145
+ async getStats() {
146
+ try {
147
+ return await this.actor.getTransactionQueueStats();
148
+ }
149
+ catch (error) {
150
+ console.error('Failed to get queue stats:', error);
151
+ return null;
152
+ }
153
+ }
154
+ /**
155
+ * Schedule transaction for future execution
156
+ */
157
+ async scheduleTransaction(txId, scheduledAt) {
158
+ try {
159
+ await this.actor.scheduleTransaction(txId, BigInt(scheduledAt.getTime()));
160
+ return { success: true };
161
+ }
162
+ catch (error) {
163
+ return {
164
+ success: false,
165
+ error: error instanceof Error ? error.message : 'Unknown error',
166
+ };
167
+ }
168
+ }
169
+ /**
170
+ * Clear completed transactions
171
+ */
172
+ async clearCompleted() {
173
+ try {
174
+ await this.actor.clearCompletedTransactions();
175
+ return { success: true };
176
+ }
177
+ catch (error) {
178
+ return {
179
+ success: false,
180
+ error: error instanceof Error ? error.message : 'Unknown error',
181
+ };
182
+ }
183
+ }
184
+ }
185
+ /**
186
+ * Create transaction queue processor
187
+ *
188
+ * @param canisterId - Canister ID
189
+ * @param actor - Canister actor instance
190
+ * @returns Queue processor instance
191
+ */
192
+ export function createQueueProcessor(canisterId, actor, options) {
193
+ return new TransactionQueueProcessor(canisterId, actor, options);
194
+ }
195
+ //# sourceMappingURL=transaction-queue.js.map
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Types for wallet operations
3
+ */
4
+ /**
5
+ * Supported blockchain types
6
+ */
7
+ export type ChainType = 'cketh' | 'polkadot' | 'solana';
8
+ /**
9
+ * Wallet creation methods
10
+ */
11
+ export type WalletCreationMethod = 'seed' | 'private-key' | 'mnemonic';
12
+ /**
13
+ * Derivation path for BIP39 seed phrases
14
+ */
15
+ export type DerivationPath = string;
16
+ /**
17
+ * Wallet data structure (stored encrypted)
18
+ */
19
+ export interface WalletData {
20
+ /** Unique wallet ID */
21
+ id: string;
22
+ /** Associated agent ID (for per-agent isolation) */
23
+ agentId: string;
24
+ /** Blockchain network */
25
+ chain: ChainType;
26
+ /** Public address */
27
+ address: string;
28
+ /** Encrypted private key (if available) */
29
+ privateKey?: string;
30
+ /** Encrypted mnemonic phrase (if available) */
31
+ mnemonic?: string;
32
+ /** BIP39 derivation path */
33
+ seedDerivationPath?: DerivationPath;
34
+ /** Creation timestamp */
35
+ createdAt: number;
36
+ /** Last update timestamp */
37
+ updatedAt: number;
38
+ /** Wallet creation method */
39
+ creationMethod: WalletCreationMethod;
40
+ /** Chain-specific metadata */
41
+ chainMetadata?: Record<string, any>;
42
+ }
43
+ /**
44
+ * Wallet connection status
45
+ */
46
+ export interface WalletConnection {
47
+ /** Wallet ID */
48
+ walletId: string;
49
+ /** Connection status */
50
+ connected: boolean;
51
+ /** Chain-specific provider instance */
52
+ provider: any;
53
+ /** Connection timestamp */
54
+ connectedAt?: number;
55
+ }
56
+ /**
57
+ * Transaction data
58
+ */
59
+ export interface Transaction {
60
+ /** Transaction hash */
61
+ hash: string;
62
+ /** From address */
63
+ from: string;
64
+ /** To address */
65
+ to: string;
66
+ /** Amount (as string to handle large numbers) */
67
+ amount: string;
68
+ /** Blockchain network */
69
+ chain: ChainType;
70
+ /** Transaction timestamp */
71
+ timestamp: number;
72
+ /** Transaction status */
73
+ status: 'pending' | 'confirmed' | 'failed';
74
+ /** Transaction fee */
75
+ fee?: string;
76
+ /** Additional data (memo, etc.) */
77
+ data?: any;
78
+ }
79
+ /**
80
+ * Wallet balance
81
+ */
82
+ export interface Balance {
83
+ /** Amount (as string to handle large numbers) */
84
+ amount: string;
85
+ /** Denomination (ETH, DOT, SOL, etc.) */
86
+ denomination: string;
87
+ /** Blockchain network */
88
+ chain: ChainType;
89
+ /** Wallet address */
90
+ address: string;
91
+ /** Block number (if available) */
92
+ blockNumber?: number;
93
+ }
94
+ /**
95
+ * Transaction request
96
+ */
97
+ export interface TransactionRequest {
98
+ /** Destination address */
99
+ to: string;
100
+ /** Amount to send (as string) */
101
+ amount: string;
102
+ /** Chain network */
103
+ chain: ChainType;
104
+ /** Optional memo (Solana) */
105
+ memo?: string;
106
+ /** Optional gas price (Ethereum/Polkadot) */
107
+ gasPrice?: string;
108
+ /** Optional gas limit (Ethereum/Polkadot) */
109
+ gasLimit?: string;
110
+ }
111
+ /**
112
+ * Signed transaction data
113
+ */
114
+ export interface SignedTransaction {
115
+ /** Signed transaction hash */
116
+ txHash: string;
117
+ /** Raw signed transaction (hex/base58) */
118
+ signedTx: string;
119
+ /** Signature */
120
+ signature?: string;
121
+ /** Transaction request that was signed */
122
+ request: TransactionRequest;
123
+ }
124
+ /**
125
+ * Wallet creation options
126
+ */
127
+ export interface WalletCreationOptions {
128
+ /** Agent ID to associate wallet with */
129
+ agentId: string;
130
+ /** Blockchain network */
131
+ chain: ChainType;
132
+ /** Wallet creation method */
133
+ method: WalletCreationMethod;
134
+ /** Seed phrase (for 'seed' and 'mnemonic' methods) */
135
+ seedPhrase?: string;
136
+ /** Private key (for 'private-key' method) */
137
+ privateKey?: string;
138
+ /** BIP39 derivation path */
139
+ derivationPath?: DerivationPath;
140
+ /** Optional custom wallet ID */
141
+ walletId?: string;
142
+ /** Optional chain-specific metadata */
143
+ chainMetadata?: Record<string, any>;
144
+ }
145
+ /**
146
+ * Wallet storage options
147
+ */
148
+ export interface WalletStorageOptions {
149
+ /** Base directory for wallet storage */
150
+ baseDir?: string;
151
+ /** Enable encryption */
152
+ encrypt?: boolean;
153
+ }
154
+ /**
155
+ * Provider configuration
156
+ */
157
+ export interface ProviderConfig {
158
+ /** Blockchain network */
159
+ chain: ChainType;
160
+ /** RPC endpoint URL */
161
+ rpcUrl?: string;
162
+ /** Testnet or mainnet */
163
+ isTestnet?: boolean;
164
+ /** API key (if required) */
165
+ apiKey?: string;
166
+ }
167
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Types for wallet operations
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,134 @@
1
+ /**
2
+ * VetKeys Adapter (Phase 5D)
3
+ *
4
+ * Mock VetKeys canister integration for threshold signatures.
5
+ * Uses local-only implementation until VetKeys canister is deployed.
6
+ */
7
+ import type { WalletData, TransactionRequest } from './types.js';
8
+ /**
9
+ * Threshold signature result
10
+ */
11
+ export interface ThresholdSignatureResult {
12
+ transactionId: string;
13
+ success: boolean;
14
+ signature?: string;
15
+ partialSignatures?: string[];
16
+ error?: string;
17
+ thresholdMet: boolean;
18
+ }
19
+ /**
20
+ * Encrypted secret for canister storage
21
+ */
22
+ export interface EncryptedSecret {
23
+ id: string;
24
+ ciphertext: Uint8Array;
25
+ iv: Uint8Array;
26
+ tag: Uint8Array;
27
+ createdAt: number;
28
+ }
29
+ /**
30
+ * VetKeys adapter options
31
+ */
32
+ export interface VetKeysAdapterOptions {
33
+ threshold?: number;
34
+ totalParties?: number;
35
+ encryptionAlgorithm?: 'aes-256-gcm' | 'chacha20-poly1305';
36
+ /** VetKeys canister ID for canister-based operations */
37
+ canisterId?: string;
38
+ }
39
+ /**
40
+ * VetKeys adapter
41
+ *
42
+ * VetKeys integration with optional canister support.
43
+ * Real VetKeys canister integration requires canisterId to be set.
44
+ */
45
+ export declare class VetKeysAdapter {
46
+ private options;
47
+ private canisterId?;
48
+ constructor(options?: VetKeysAdapterOptions);
49
+ /**
50
+ * Encrypt secret for canister storage
51
+ *
52
+ * @param secret - Secret data to encrypt
53
+ * @param transactionId - Transaction ID for reference
54
+ * @returns Encrypted secret
55
+ */
56
+ encryptSecret(secret: string, transactionId?: string): Promise<EncryptedSecret>;
57
+ /**
58
+ * Decrypt secret from canister
59
+ *
60
+ * @param encrypted - Encrypted secret data
61
+ * @param key - Decryption key
62
+ * @returns Decrypted secret
63
+ */
64
+ decryptSecret(encrypted: EncryptedSecret, key: Buffer): Promise<string>;
65
+ /**
66
+ * Initiate threshold signature (mock)
67
+ *
68
+ * @param transactionId - Transaction ID
69
+ * @param wallet - Wallet to use
70
+ * @param request - Transaction request
71
+ * @returns Threshold signature result
72
+ */
73
+ initiateThresholdSignature(transactionId: string, wallet: WalletData, request: TransactionRequest): Promise<ThresholdSignatureResult>;
74
+ /**
75
+ * Combine partial signatures
76
+ *
77
+ * IMPORTANT: This requires a deployed VetKeys canister for proper threshold
78
+ * signature combination. Without the canister, this implementation validates
79
+ * signature format but cannot perform cryptographic combination.
80
+ *
81
+ * @param partialSignatures - Array of partial signatures
82
+ * @param canisterConnected - Whether VetKeys canister is available
83
+ * @returns Combined signature or error
84
+ */
85
+ combineSignatures(partialSignatures: string[], canisterConnected?: boolean): Promise<{
86
+ success: boolean;
87
+ combinedSignature?: string;
88
+ error?: string;
89
+ }>;
90
+ /**
91
+ * Verify threshold signature
92
+ *
93
+ * IMPORTANT: This requires a deployed VetKeys canister for proper threshold
94
+ * signature verification. Without the canister, this validates format only.
95
+ *
96
+ * @param signature - Signature to verify
97
+ * @param transaction - Transaction data
98
+ * @param canisterConnected - Whether VetKeys canister is available
99
+ * @returns Verification result
100
+ */
101
+ verifySignature(signature: string, transaction: TransactionRequest, canisterConnected?: boolean): Promise<{
102
+ valid: boolean;
103
+ error?: string;
104
+ }>;
105
+ /**
106
+ * Get VetKeys status
107
+ *
108
+ * @returns VetKeys configuration status
109
+ */
110
+ getStatus(): {
111
+ thresholdSupported: boolean;
112
+ currentThreshold: number;
113
+ totalParties: number;
114
+ encryptionAlgorithm: string;
115
+ mode: 'mock' | 'production';
116
+ };
117
+ /**
118
+ * Check if canister is connected
119
+ *
120
+ * Attempts to ping the VetKeys canister to verify connectivity.
121
+ * Returns false if canisterId is not configured or canister is unreachable.
122
+ *
123
+ * @returns True if VetKeys canister is accessible
124
+ */
125
+ isCanisterConnected(): Promise<boolean>;
126
+ }
127
+ /**
128
+ * Create VetKeys adapter
129
+ *
130
+ * @param options - Adapter options
131
+ * @returns VetKeys adapter instance
132
+ */
133
+ export declare function createVetKeysAdapter(options?: VetKeysAdapterOptions): VetKeysAdapter;
134
+ //# sourceMappingURL=vetkeys-adapter.d.ts.map