agentvault 1.0.0 → 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 (293) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/README.md +1 -1
  3. package/dist/cli/commands/approve.js +5 -5
  4. package/dist/cli/commands/archive.js +5 -5
  5. package/dist/cli/commands/backup.js +5 -5
  6. package/dist/cli/commands/cloud-backup.js +12 -12
  7. package/dist/cli/commands/decrypt.js +2 -2
  8. package/dist/cli/commands/deploy.js +1 -1
  9. package/dist/cli/commands/exec.js +2 -2
  10. package/dist/cli/commands/fetch.js +4 -4
  11. package/dist/cli/commands/inference.js +5 -5
  12. package/dist/cli/commands/init.d.ts +1 -1
  13. package/dist/cli/commands/init.js +16 -16
  14. package/dist/cli/commands/list.js +4 -4
  15. package/dist/cli/commands/package.js +2 -2
  16. package/dist/cli/commands/profile.js +1 -1
  17. package/dist/cli/commands/rebuild.js +2 -2
  18. package/dist/cli/commands/show.js +1 -1
  19. package/dist/cli/commands/status.d.ts +1 -1
  20. package/dist/cli/commands/status.js +8 -8
  21. package/dist/cli/commands/trace.js +1 -1
  22. package/dist/cli/commands/wallet-export.js +1 -1
  23. package/dist/cli/commands/wallet-sign.js +1 -1
  24. package/dist/cli/commands/wallet.d.ts +1 -1
  25. package/dist/cli/commands/wallet.js +1 -1
  26. package/dist/cli/index.d.ts +2 -2
  27. package/dist/cli/index.js +3 -3
  28. package/dist/src/archival/archive-manager.d.ts +85 -0
  29. package/dist/src/archival/archive-manager.js +294 -0
  30. package/dist/src/archival/arweave-client.d.ts +88 -0
  31. package/dist/src/archival/arweave-client.js +223 -0
  32. package/dist/src/archival/index.d.ts +8 -0
  33. package/{src/archival/index.ts → dist/src/archival/index.js} +1 -1
  34. package/dist/src/backup/backup.d.ts +67 -0
  35. package/dist/src/backup/backup.js +231 -0
  36. package/dist/src/backup/index.d.ts +7 -0
  37. package/{src/backup/index.ts → dist/src/backup/index.js} +1 -1
  38. package/dist/src/cloud-storage/cloud-sync.d.ts +49 -0
  39. package/dist/src/cloud-storage/cloud-sync.js +372 -0
  40. package/dist/src/cloud-storage/index.d.ts +11 -0
  41. package/{src/cloud-storage/index.ts → dist/src/cloud-storage/index.js} +1 -1
  42. package/dist/src/cloud-storage/provider-detector.d.ts +34 -0
  43. package/dist/src/cloud-storage/provider-detector.js +158 -0
  44. package/{src/cloud-storage/types.ts → dist/src/cloud-storage/types.d.ts} +40 -53
  45. package/dist/src/cloud-storage/types.js +10 -0
  46. package/dist/src/debugging/index.d.ts +6 -0
  47. package/{src/debugging/index.ts → dist/src/debugging/index.js} +1 -1
  48. package/dist/src/debugging/logs.d.ts +32 -0
  49. package/dist/src/debugging/logs.js +158 -0
  50. package/dist/src/debugging/types.d.ts +91 -0
  51. package/dist/src/debugging/types.js +5 -0
  52. package/dist/src/deployment/deployer.d.ts +52 -0
  53. package/dist/src/deployment/deployer.js +211 -0
  54. package/dist/src/deployment/icpClient.d.ts +144 -0
  55. package/dist/src/deployment/icpClient.js +545 -0
  56. package/dist/src/deployment/index.d.ts +11 -0
  57. package/dist/src/deployment/index.js +14 -0
  58. package/dist/src/deployment/promotion.d.ts +32 -0
  59. package/dist/src/deployment/promotion.js +114 -0
  60. package/dist/src/deployment/types.d.ts +101 -0
  61. package/dist/src/deployment/types.js +5 -0
  62. package/dist/src/icp/batch.d.ts +112 -0
  63. package/dist/src/icp/batch.js +273 -0
  64. package/dist/src/icp/cycles.d.ts +29 -0
  65. package/{src/icp/cycles.ts → dist/src/icp/cycles.js} +8 -22
  66. package/dist/src/icp/environment.d.ts +60 -0
  67. package/dist/src/icp/environment.js +183 -0
  68. package/dist/src/icp/icpcli.d.ts +204 -0
  69. package/dist/src/icp/icpcli.js +374 -0
  70. package/dist/src/icp/icwasm.d.ts +94 -0
  71. package/dist/src/icp/icwasm.js +197 -0
  72. package/dist/src/icp/identity.d.ts +50 -0
  73. package/{src/icp/identity.ts → dist/src/icp/identity.js} +15 -28
  74. package/dist/src/icp/index.d.ts +16 -0
  75. package/dist/src/icp/index.js +20 -0
  76. package/dist/src/icp/optimization.d.ts +16 -0
  77. package/dist/src/icp/optimization.js +225 -0
  78. package/dist/src/icp/tokens.d.ts +24 -0
  79. package/{src/icp/tokens.ts → dist/src/icp/tokens.js} +5 -12
  80. package/dist/src/icp/tool-detector.d.ts +31 -0
  81. package/dist/src/icp/tool-detector.js +104 -0
  82. package/dist/src/icp/types.d.ts +493 -0
  83. package/dist/src/icp/types.js +7 -0
  84. package/dist/src/index.d.ts +12 -0
  85. package/dist/src/index.js +18 -0
  86. package/dist/src/inference/bittensor-client.d.ts +108 -0
  87. package/dist/src/inference/bittensor-client.js +224 -0
  88. package/dist/src/inference/index.d.ts +8 -0
  89. package/{src/inference/index.ts → dist/src/inference/index.js} +1 -1
  90. package/dist/src/inference/inference-manager.d.ts +76 -0
  91. package/dist/src/inference/inference-manager.js +228 -0
  92. package/dist/src/metrics/index.d.ts +7 -0
  93. package/{src/metrics/index.ts → dist/src/metrics/index.js} +1 -1
  94. package/dist/src/metrics/metrics.d.ts +39 -0
  95. package/dist/src/metrics/metrics.js +129 -0
  96. package/dist/src/monitoring/alerting.d.ts +51 -0
  97. package/dist/src/monitoring/alerting.js +169 -0
  98. package/dist/src/monitoring/health.d.ts +40 -0
  99. package/dist/src/monitoring/health.js +164 -0
  100. package/dist/src/monitoring/index.d.ts +10 -0
  101. package/dist/src/monitoring/index.js +12 -0
  102. package/dist/src/monitoring/info.d.ts +15 -0
  103. package/dist/src/monitoring/info.js +109 -0
  104. package/dist/src/monitoring/types.d.ts +93 -0
  105. package/dist/src/monitoring/types.js +7 -0
  106. package/dist/src/network/index.d.ts +5 -0
  107. package/{src/network/index.ts → dist/src/network/index.js} +1 -1
  108. package/dist/src/network/network-config.d.ts +31 -0
  109. package/dist/src/network/network-config.js +109 -0
  110. package/dist/src/packaging/compiler.d.ts +61 -0
  111. package/dist/src/packaging/compiler.js +562 -0
  112. package/dist/src/packaging/config-persistence.d.ts +46 -0
  113. package/dist/src/packaging/config-persistence.js +108 -0
  114. package/dist/src/packaging/config-schemas.d.ts +115 -0
  115. package/dist/src/packaging/config-schemas.js +43 -0
  116. package/dist/src/packaging/detector.d.ts +26 -0
  117. package/dist/src/packaging/detector.js +193 -0
  118. package/dist/src/packaging/index.d.ts +16 -0
  119. package/dist/src/packaging/index.js +22 -0
  120. package/dist/src/packaging/packager.d.ts +31 -0
  121. package/dist/src/packaging/packager.js +90 -0
  122. package/dist/src/packaging/parsers/clawdbot.d.ts +19 -0
  123. package/dist/src/packaging/parsers/clawdbot.js +231 -0
  124. package/dist/src/packaging/parsers/cline.d.ts +26 -0
  125. package/dist/src/packaging/parsers/cline.js +185 -0
  126. package/dist/src/packaging/parsers/generic.d.ts +27 -0
  127. package/dist/src/packaging/parsers/generic.js +228 -0
  128. package/dist/src/packaging/parsers/goose.d.ts +26 -0
  129. package/dist/src/packaging/parsers/goose.js +175 -0
  130. package/dist/src/packaging/parsers/index.d.ts +11 -0
  131. package/{src/packaging/parsers/index.ts → dist/src/packaging/parsers/index.js} +1 -1
  132. package/dist/src/packaging/serializer.d.ts +108 -0
  133. package/dist/src/packaging/serializer.js +153 -0
  134. package/dist/src/packaging/types.d.ts +131 -0
  135. package/dist/src/packaging/types.js +5 -0
  136. package/dist/src/packaging/wasmedge-compiler.d.ts +76 -0
  137. package/dist/src/packaging/wasmedge-compiler.js +349 -0
  138. package/dist/src/security/index.d.ts +11 -0
  139. package/{src/security/index.ts → dist/src/security/index.js} +1 -4
  140. package/dist/src/security/multisig.d.ts +102 -0
  141. package/dist/src/security/multisig.js +283 -0
  142. package/dist/src/security/types.d.ts +207 -0
  143. package/dist/src/security/types.js +217 -0
  144. package/dist/src/security/vetkeys.d.ts +179 -0
  145. package/dist/src/security/vetkeys.js +499 -0
  146. package/dist/src/testing/index.d.ts +6 -0
  147. package/{src/testing/index.ts → dist/src/testing/index.js} +1 -1
  148. package/dist/src/testing/local-runner.d.ts +23 -0
  149. package/dist/src/testing/local-runner.js +226 -0
  150. package/dist/src/testing/types.d.ts +98 -0
  151. package/dist/src/testing/types.js +5 -0
  152. package/dist/src/wallet/cbor-serializer.d.ts +82 -0
  153. package/dist/src/wallet/cbor-serializer.js +282 -0
  154. package/dist/src/wallet/chain-dispatcher.d.ts +112 -0
  155. package/dist/src/wallet/chain-dispatcher.js +241 -0
  156. package/dist/src/wallet/cross-chain-aggregator.d.ts +119 -0
  157. package/dist/src/wallet/cross-chain-aggregator.js +235 -0
  158. package/dist/src/wallet/index.d.ts +16 -0
  159. package/dist/src/wallet/index.js +22 -0
  160. package/dist/src/wallet/key-derivation.d.ts +117 -0
  161. package/dist/src/wallet/key-derivation.js +325 -0
  162. package/dist/src/wallet/providers/base-provider.d.ts +111 -0
  163. package/dist/src/wallet/providers/base-provider.js +58 -0
  164. package/dist/src/wallet/providers/cketh-provider.d.ts +104 -0
  165. package/dist/src/wallet/providers/cketh-provider.js +343 -0
  166. package/dist/src/wallet/providers/polkadot-provider.d.ts +115 -0
  167. package/dist/src/wallet/providers/polkadot-provider.js +407 -0
  168. package/dist/src/wallet/providers/solana-provider.d.ts +102 -0
  169. package/dist/src/wallet/providers/solana-provider.js +393 -0
  170. package/dist/src/wallet/transaction-queue.d.ts +133 -0
  171. package/dist/src/wallet/transaction-queue.js +195 -0
  172. package/dist/src/wallet/types.d.ts +167 -0
  173. package/dist/src/wallet/types.js +5 -0
  174. package/dist/src/wallet/vetkeys-adapter.d.ts +134 -0
  175. package/dist/src/wallet/vetkeys-adapter.js +313 -0
  176. package/dist/src/wallet/wallet-manager.d.ts +202 -0
  177. package/dist/src/wallet/wallet-manager.js +451 -0
  178. package/dist/src/wallet/wallet-storage.d.ts +131 -0
  179. package/dist/src/wallet/wallet-storage.js +274 -0
  180. package/macos-wallet-app/AgentVaultWallet/App/AgentVaultWalletApp.swift +54 -0
  181. package/macos-wallet-app/AgentVaultWallet/Models/AppState.swift +102 -0
  182. package/macos-wallet-app/AgentVaultWallet/Models/Chain.swift +121 -0
  183. package/macos-wallet-app/AgentVaultWallet/Models/Wallet.swift +98 -0
  184. package/macos-wallet-app/AgentVaultWallet/Resources/AgentVaultWallet.entitlements +27 -0
  185. package/macos-wallet-app/AgentVaultWallet/Resources/Info.plist +69 -0
  186. package/macos-wallet-app/AgentVaultWallet/Services/BackupService.swift +270 -0
  187. package/macos-wallet-app/AgentVaultWallet/Services/CLIBridge.swift +367 -0
  188. package/macos-wallet-app/AgentVaultWallet/Services/CryptoService.swift +157 -0
  189. package/macos-wallet-app/AgentVaultWallet/Services/FileService.swift +120 -0
  190. package/macos-wallet-app/AgentVaultWallet/Services/KeychainService.swift +219 -0
  191. package/macos-wallet-app/AgentVaultWallet/Utilities/Constants.swift +44 -0
  192. package/macos-wallet-app/AgentVaultWallet/Utilities/Extensions.swift +115 -0
  193. package/macos-wallet-app/AgentVaultWallet/ViewModels/BackupViewModel.swift +237 -0
  194. package/macos-wallet-app/AgentVaultWallet/ViewModels/CreateWalletViewModel.swift +137 -0
  195. package/macos-wallet-app/AgentVaultWallet/ViewModels/ImportWalletViewModel.swift +179 -0
  196. package/macos-wallet-app/AgentVaultWallet/ViewModels/WalletStore.swift +286 -0
  197. package/macos-wallet-app/AgentVaultWallet/Views/Backup/BackupView.swift +235 -0
  198. package/macos-wallet-app/AgentVaultWallet/Views/Backup/RestoreView.swift +316 -0
  199. package/macos-wallet-app/AgentVaultWallet/Views/Create/CreateWalletFlow.swift +438 -0
  200. package/macos-wallet-app/AgentVaultWallet/Views/Import/ImportWalletFlow.swift +399 -0
  201. package/macos-wallet-app/AgentVaultWallet/Views/MainView.swift +134 -0
  202. package/macos-wallet-app/AgentVaultWallet/Views/Settings/SettingsView.swift +276 -0
  203. package/macos-wallet-app/AgentVaultWallet/Views/Sidebar/SidebarView.swift +133 -0
  204. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/DashboardView.swift +233 -0
  205. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletDetailView.swift +281 -0
  206. package/macos-wallet-app/AgentVaultWallet/Views/Wallet/WalletListView.swift +280 -0
  207. package/macos-wallet-app/AgentVaultWallet/Views/Welcome/WelcomeView.swift +176 -0
  208. package/macos-wallet-app/Makefile +47 -0
  209. package/macos-wallet-app/project.yml +40 -0
  210. package/macos-wallet-app/setup.sh +73 -0
  211. package/package.json +10 -2
  212. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-28-967Z.json +0 -28
  213. package/backups/agentvault-backup-test-agent-2026-02-12T17-54-29-032Z.backup +0 -1
  214. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-373Z.json +0 -28
  215. package/backups/agentvault-backup-test-agent-2026-02-12T17-57-42-428Z.backup +0 -1
  216. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-132Z.json +0 -28
  217. package/backups/agentvault-backup-test-agent-2026-02-12T18-52-25-247Z.backup +0 -1
  218. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-216Z.json +0 -28
  219. package/backups/agentvault-backup-test-agent-2026-02-12T18-54-09-283Z.backup +0 -1
  220. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-772Z.backup +0 -1
  221. package/backups/agentvault-backup-test-agent-2026-02-12T22-18-22-793Z.json +0 -28
  222. package/backups/test-backup.json +0 -28
  223. package/scripts/dev-dashboard.mjs +0 -84
  224. package/site/README.md +0 -63
  225. package/site/docusaurus.config.ts +0 -148
  226. package/site/package-lock.json +0 -18383
  227. package/site/package.json +0 -47
  228. package/site/sidebars.ts +0 -86
  229. package/site/static/.gitkeep +0 -0
  230. package/site/static/img/logo.svg +0 -28
  231. package/site/static/img/og-image.svg +0 -35
  232. package/src/archival/archive-manager.ts +0 -372
  233. package/src/archival/arweave-client.ts +0 -289
  234. package/src/backup/backup.ts +0 -315
  235. package/src/cloud-storage/cloud-sync.ts +0 -461
  236. package/src/cloud-storage/provider-detector.ts +0 -198
  237. package/src/debugging/logs.ts +0 -193
  238. package/src/debugging/types.ts +0 -100
  239. package/src/deployment/deployer.ts +0 -274
  240. package/src/deployment/icpClient.ts +0 -620
  241. package/src/deployment/index.ts +0 -46
  242. package/src/deployment/promotion.ts +0 -161
  243. package/src/deployment/types.ts +0 -111
  244. package/src/icp/batch.ts +0 -374
  245. package/src/icp/environment.ts +0 -215
  246. package/src/icp/icpcli.ts +0 -438
  247. package/src/icp/icwasm.ts +0 -222
  248. package/src/icp/index.ts +0 -94
  249. package/src/icp/optimization.ts +0 -242
  250. package/src/icp/tool-detector.ts +0 -110
  251. package/src/icp/types.ts +0 -574
  252. package/src/index.ts +0 -25
  253. package/src/inference/bittensor-client.ts +0 -304
  254. package/src/inference/inference-manager.ts +0 -327
  255. package/src/metrics/metrics.ts +0 -186
  256. package/src/monitoring/alerting.ts +0 -190
  257. package/src/monitoring/health.ts +0 -197
  258. package/src/monitoring/index.ts +0 -38
  259. package/src/monitoring/info.ts +0 -114
  260. package/src/monitoring/types.ts +0 -99
  261. package/src/network/network-config.ts +0 -129
  262. package/src/packaging/compiler.ts +0 -647
  263. package/src/packaging/config-persistence.ts +0 -135
  264. package/src/packaging/config-schemas.ts +0 -156
  265. package/src/packaging/detector.ts +0 -220
  266. package/src/packaging/index.ts +0 -90
  267. package/src/packaging/packager.ts +0 -118
  268. package/src/packaging/parsers/clawdbot.ts +0 -278
  269. package/src/packaging/parsers/cline.ts +0 -223
  270. package/src/packaging/parsers/generic.ts +0 -266
  271. package/src/packaging/parsers/goose.ts +0 -214
  272. package/src/packaging/serializer.ts +0 -260
  273. package/src/packaging/types.ts +0 -144
  274. package/src/packaging/wasmedge-compiler.ts +0 -406
  275. package/src/security/multisig.ts +0 -415
  276. package/src/security/types.ts +0 -416
  277. package/src/security/vetkeys.ts +0 -655
  278. package/src/testing/local-runner.ts +0 -264
  279. package/src/testing/types.ts +0 -104
  280. package/src/wallet/cbor-serializer.ts +0 -323
  281. package/src/wallet/chain-dispatcher.ts +0 -313
  282. package/src/wallet/cross-chain-aggregator.ts +0 -346
  283. package/src/wallet/index.ts +0 -76
  284. package/src/wallet/key-derivation.ts +0 -425
  285. package/src/wallet/providers/base-provider.ts +0 -154
  286. package/src/wallet/providers/cketh-provider.ts +0 -434
  287. package/src/wallet/providers/polkadot-provider.ts +0 -503
  288. package/src/wallet/providers/solana-provider.ts +0 -490
  289. package/src/wallet/transaction-queue.ts +0 -284
  290. package/src/wallet/types.ts +0 -178
  291. package/src/wallet/vetkeys-adapter.ts +0 -431
  292. package/src/wallet/wallet-manager.ts +0 -597
  293. 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