@waiaas/daemon 2.11.0-rc.8 → 2.11.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 (414) hide show
  1. package/README.md +5 -5
  2. package/dist/api/middleware/address-validation.d.ts +6 -33
  3. package/dist/api/middleware/address-validation.d.ts.map +1 -1
  4. package/dist/api/middleware/address-validation.js +5 -129
  5. package/dist/api/middleware/address-validation.js.map +1 -1
  6. package/dist/api/middleware/host-guard.d.ts +1 -1
  7. package/dist/api/middleware/host-guard.js +2 -2
  8. package/dist/api/middleware/host-guard.js.map +1 -1
  9. package/dist/api/middleware/index.d.ts +1 -0
  10. package/dist/api/middleware/index.d.ts.map +1 -1
  11. package/dist/api/middleware/index.js +1 -0
  12. package/dist/api/middleware/index.js.map +1 -1
  13. package/dist/api/middleware/master-auth.d.ts +2 -5
  14. package/dist/api/middleware/master-auth.d.ts.map +1 -1
  15. package/dist/api/middleware/master-auth.js.map +1 -1
  16. package/dist/api/middleware/rate-limiter.d.ts +51 -0
  17. package/dist/api/middleware/rate-limiter.d.ts.map +1 -0
  18. package/dist/api/middleware/rate-limiter.js +146 -0
  19. package/dist/api/middleware/rate-limiter.js.map +1 -0
  20. package/dist/api/middleware/siwe-verify.d.ts +6 -26
  21. package/dist/api/middleware/siwe-verify.d.ts.map +1 -1
  22. package/dist/api/middleware/siwe-verify.js +5 -50
  23. package/dist/api/middleware/siwe-verify.js.map +1 -1
  24. package/dist/api/routes/actions.d.ts +1 -0
  25. package/dist/api/routes/actions.d.ts.map +1 -1
  26. package/dist/api/routes/actions.js +52 -4
  27. package/dist/api/routes/actions.js.map +1 -1
  28. package/dist/api/routes/admin-actions.d.ts +1 -0
  29. package/dist/api/routes/admin-actions.d.ts.map +1 -1
  30. package/dist/api/routes/admin-actions.js +3 -3
  31. package/dist/api/routes/admin-actions.js.map +1 -1
  32. package/dist/api/routes/admin-auth.d.ts.map +1 -1
  33. package/dist/api/routes/admin-auth.js +12 -7
  34. package/dist/api/routes/admin-auth.js.map +1 -1
  35. package/dist/api/routes/admin-credentials.js +2 -2
  36. package/dist/api/routes/admin-credentials.js.map +1 -1
  37. package/dist/api/routes/admin-monitoring.d.ts +10 -0
  38. package/dist/api/routes/admin-monitoring.d.ts.map +1 -1
  39. package/dist/api/routes/admin-monitoring.js +59 -14
  40. package/dist/api/routes/admin-monitoring.js.map +1 -1
  41. package/dist/api/routes/admin-notifications.d.ts.map +1 -1
  42. package/dist/api/routes/admin-notifications.js +2 -15
  43. package/dist/api/routes/admin-notifications.js.map +1 -1
  44. package/dist/api/routes/admin-settings.d.ts.map +1 -1
  45. package/dist/api/routes/admin-settings.js +90 -1
  46. package/dist/api/routes/admin-settings.js.map +1 -1
  47. package/dist/api/routes/admin-wallets.d.ts +16 -1
  48. package/dist/api/routes/admin-wallets.d.ts.map +1 -1
  49. package/dist/api/routes/admin-wallets.js +64 -75
  50. package/dist/api/routes/admin-wallets.js.map +1 -1
  51. package/dist/api/routes/admin.d.ts +1 -0
  52. package/dist/api/routes/admin.d.ts.map +1 -1
  53. package/dist/api/routes/admin.js.map +1 -1
  54. package/dist/api/routes/credentials.js +2 -2
  55. package/dist/api/routes/credentials.js.map +1 -1
  56. package/dist/api/routes/defi-positions.js.map +1 -1
  57. package/dist/api/routes/nfts.js.map +1 -1
  58. package/dist/api/routes/openapi-schemas.d.ts +412 -12
  59. package/dist/api/routes/openapi-schemas.d.ts.map +1 -1
  60. package/dist/api/routes/openapi-schemas.js +38 -5
  61. package/dist/api/routes/openapi-schemas.js.map +1 -1
  62. package/dist/api/routes/policies.d.ts +2 -0
  63. package/dist/api/routes/policies.d.ts.map +1 -1
  64. package/dist/api/routes/policies.js +55 -6
  65. package/dist/api/routes/policies.js.map +1 -1
  66. package/dist/api/routes/rpc-proxy.js.map +1 -1
  67. package/dist/api/routes/sessions.d.ts.map +1 -1
  68. package/dist/api/routes/sessions.js +47 -28
  69. package/dist/api/routes/sessions.js.map +1 -1
  70. package/dist/api/routes/staking.d.ts.map +1 -1
  71. package/dist/api/routes/staking.js +4 -76
  72. package/dist/api/routes/staking.js.map +1 -1
  73. package/dist/api/routes/tokens.d.ts.map +1 -1
  74. package/dist/api/routes/tokens.js.map +1 -1
  75. package/dist/api/routes/transactions.d.ts +1 -0
  76. package/dist/api/routes/transactions.d.ts.map +1 -1
  77. package/dist/api/routes/transactions.js +8 -2
  78. package/dist/api/routes/transactions.js.map +1 -1
  79. package/dist/api/routes/userop.d.ts.map +1 -1
  80. package/dist/api/routes/userop.js +0 -2
  81. package/dist/api/routes/userop.js.map +1 -1
  82. package/dist/api/routes/wallet-apps.d.ts.map +1 -1
  83. package/dist/api/routes/wallet-apps.js +20 -13
  84. package/dist/api/routes/wallet-apps.js.map +1 -1
  85. package/dist/api/routes/wallet.js.map +1 -1
  86. package/dist/api/routes/wallets.d.ts.map +1 -1
  87. package/dist/api/routes/wallets.js +3 -0
  88. package/dist/api/routes/wallets.js.map +1 -1
  89. package/dist/api/routes/wc.d.ts.map +1 -1
  90. package/dist/api/routes/wc.js +13 -8
  91. package/dist/api/routes/wc.js.map +1 -1
  92. package/dist/api/routes/x402.d.ts.map +1 -1
  93. package/dist/api/routes/x402.js +1 -2
  94. package/dist/api/routes/x402.js.map +1 -1
  95. package/dist/api/server.d.ts +8 -4
  96. package/dist/api/server.d.ts.map +1 -1
  97. package/dist/api/server.js +46 -5
  98. package/dist/api/server.js.map +1 -1
  99. package/dist/constants.d.ts +1 -1
  100. package/dist/constants.d.ts.map +1 -1
  101. package/dist/constants.js +1 -1
  102. package/dist/constants.js.map +1 -1
  103. package/dist/infrastructure/action/action-provider-registry.d.ts.map +1 -1
  104. package/dist/infrastructure/action/action-provider-registry.js +2 -3
  105. package/dist/infrastructure/action/action-provider-registry.js.map +1 -1
  106. package/dist/infrastructure/action/builtin-metadata.d.ts +22 -0
  107. package/dist/infrastructure/action/builtin-metadata.d.ts.map +1 -0
  108. package/dist/infrastructure/action/builtin-metadata.js +29 -0
  109. package/dist/infrastructure/action/builtin-metadata.js.map +1 -0
  110. package/dist/infrastructure/adapter-pool.d.ts +2 -1
  111. package/dist/infrastructure/adapter-pool.d.ts.map +1 -1
  112. package/dist/infrastructure/adapter-pool.js.map +1 -1
  113. package/dist/infrastructure/auth/address-validation.d.ts +38 -0
  114. package/dist/infrastructure/auth/address-validation.d.ts.map +1 -0
  115. package/dist/infrastructure/auth/address-validation.js +134 -0
  116. package/dist/infrastructure/auth/address-validation.js.map +1 -0
  117. package/dist/infrastructure/auth/siwe-verify.d.ts +34 -0
  118. package/dist/infrastructure/auth/siwe-verify.d.ts.map +1 -0
  119. package/dist/infrastructure/auth/siwe-verify.js +58 -0
  120. package/dist/infrastructure/auth/siwe-verify.js.map +1 -0
  121. package/dist/infrastructure/auth/types.d.ts +12 -0
  122. package/dist/infrastructure/auth/types.d.ts.map +1 -0
  123. package/dist/infrastructure/auth/types.js +8 -0
  124. package/dist/infrastructure/auth/types.js.map +1 -0
  125. package/dist/infrastructure/config/loader.d.ts +1 -10
  126. package/dist/infrastructure/config/loader.d.ts.map +1 -1
  127. package/dist/infrastructure/config/loader.js +0 -2
  128. package/dist/infrastructure/config/loader.js.map +1 -1
  129. package/dist/infrastructure/database/migrate.d.ts +6 -18
  130. package/dist/infrastructure/database/migrate.d.ts.map +1 -1
  131. package/dist/infrastructure/database/migrate.js +25 -2856
  132. package/dist/infrastructure/database/migrate.js.map +1 -1
  133. package/dist/infrastructure/database/migrations/v11-v20.d.ts +17 -0
  134. package/dist/infrastructure/database/migrations/v11-v20.d.ts.map +1 -0
  135. package/dist/infrastructure/database/migrations/v11-v20.js +295 -0
  136. package/dist/infrastructure/database/migrations/v11-v20.js.map +1 -0
  137. package/dist/infrastructure/database/migrations/v2-v10.d.ts +16 -0
  138. package/dist/infrastructure/database/migrations/v2-v10.d.ts.map +1 -0
  139. package/dist/infrastructure/database/migrations/v2-v10.js +539 -0
  140. package/dist/infrastructure/database/migrations/v2-v10.js.map +1 -0
  141. package/dist/infrastructure/database/migrations/v21-v30.d.ts +17 -0
  142. package/dist/infrastructure/database/migrations/v21-v30.d.ts.map +1 -0
  143. package/dist/infrastructure/database/migrations/v21-v30.js +507 -0
  144. package/dist/infrastructure/database/migrations/v21-v30.js.map +1 -0
  145. package/dist/infrastructure/database/migrations/v31-v40.d.ts +17 -0
  146. package/dist/infrastructure/database/migrations/v31-v40.d.ts.map +1 -0
  147. package/dist/infrastructure/database/migrations/v31-v40.js +203 -0
  148. package/dist/infrastructure/database/migrations/v31-v40.js.map +1 -0
  149. package/dist/infrastructure/database/migrations/v41-v50.d.ts +17 -0
  150. package/dist/infrastructure/database/migrations/v41-v50.d.ts.map +1 -0
  151. package/dist/infrastructure/database/migrations/v41-v50.js +188 -0
  152. package/dist/infrastructure/database/migrations/v41-v50.js.map +1 -0
  153. package/dist/infrastructure/database/migrations/v51-v59.d.ts +17 -0
  154. package/dist/infrastructure/database/migrations/v51-v59.d.ts.map +1 -0
  155. package/dist/infrastructure/database/migrations/v51-v59.js +420 -0
  156. package/dist/infrastructure/database/migrations/v51-v59.js.map +1 -0
  157. package/dist/infrastructure/database/schema-ddl.d.ts +24 -0
  158. package/dist/infrastructure/database/schema-ddl.d.ts.map +1 -0
  159. package/dist/infrastructure/database/schema-ddl.js +596 -0
  160. package/dist/infrastructure/database/schema-ddl.js.map +1 -0
  161. package/dist/infrastructure/database/schema.d.ts +38 -0
  162. package/dist/infrastructure/database/schema.d.ts.map +1 -1
  163. package/dist/infrastructure/database/schema.js +2 -0
  164. package/dist/infrastructure/database/schema.js.map +1 -1
  165. package/dist/infrastructure/jwt/jwt-secret-manager.d.ts.map +1 -1
  166. package/dist/infrastructure/jwt/jwt-secret-manager.js +16 -3
  167. package/dist/infrastructure/jwt/jwt-secret-manager.js.map +1 -1
  168. package/dist/infrastructure/nft/alchemy-nft-indexer.d.ts.map +1 -1
  169. package/dist/infrastructure/nft/alchemy-nft-indexer.js +0 -1
  170. package/dist/infrastructure/nft/alchemy-nft-indexer.js.map +1 -1
  171. package/dist/infrastructure/nft/helius-nft-indexer.d.ts.map +1 -1
  172. package/dist/infrastructure/nft/helius-nft-indexer.js +1 -2
  173. package/dist/infrastructure/nft/helius-nft-indexer.js.map +1 -1
  174. package/dist/infrastructure/nft/nft-indexer-client.d.ts.map +1 -1
  175. package/dist/infrastructure/nft/nft-indexer-client.js +0 -2
  176. package/dist/infrastructure/nft/nft-indexer-client.js.map +1 -1
  177. package/dist/infrastructure/security/ssrf-guard.d.ts +33 -0
  178. package/dist/infrastructure/security/ssrf-guard.d.ts.map +1 -0
  179. package/dist/infrastructure/security/ssrf-guard.js +244 -0
  180. package/dist/infrastructure/security/ssrf-guard.js.map +1 -0
  181. package/dist/infrastructure/settings/hot-reload.d.ts +1 -1
  182. package/dist/infrastructure/settings/hot-reload.d.ts.map +1 -1
  183. package/dist/infrastructure/settings/hot-reload.js +0 -2
  184. package/dist/infrastructure/settings/hot-reload.js.map +1 -1
  185. package/dist/infrastructure/settings/index.d.ts +2 -2
  186. package/dist/infrastructure/settings/index.d.ts.map +1 -1
  187. package/dist/infrastructure/settings/index.js +1 -1
  188. package/dist/infrastructure/settings/index.js.map +1 -1
  189. package/dist/infrastructure/settings/setting-keys.d.ts +14 -0
  190. package/dist/infrastructure/settings/setting-keys.d.ts.map +1 -1
  191. package/dist/infrastructure/settings/setting-keys.js +296 -214
  192. package/dist/infrastructure/settings/setting-keys.js.map +1 -1
  193. package/dist/infrastructure/settings/settings-service.d.ts +6 -1
  194. package/dist/infrastructure/settings/settings-service.d.ts.map +1 -1
  195. package/dist/infrastructure/settings/settings-service.js +15 -5
  196. package/dist/infrastructure/settings/settings-service.js.map +1 -1
  197. package/dist/infrastructure/telegram/telegram-bot-service.d.ts.map +1 -1
  198. package/dist/infrastructure/telegram/telegram-bot-service.js +3 -2
  199. package/dist/infrastructure/telegram/telegram-bot-service.js.map +1 -1
  200. package/dist/infrastructure/token-registry/builtin-tokens.d.ts.map +1 -1
  201. package/dist/infrastructure/token-registry/builtin-tokens.js +4 -7
  202. package/dist/infrastructure/token-registry/builtin-tokens.js.map +1 -1
  203. package/dist/lifecycle/daemon-pipeline.d.ts +49 -0
  204. package/dist/lifecycle/daemon-pipeline.d.ts.map +1 -0
  205. package/dist/lifecycle/daemon-pipeline.js +281 -0
  206. package/dist/lifecycle/daemon-pipeline.js.map +1 -0
  207. package/dist/lifecycle/daemon-shutdown.d.ts +14 -0
  208. package/dist/lifecycle/daemon-shutdown.d.ts.map +1 -0
  209. package/dist/lifecycle/daemon-shutdown.js +176 -0
  210. package/dist/lifecycle/daemon-shutdown.js.map +1 -0
  211. package/dist/lifecycle/daemon-startup.d.ts +15 -0
  212. package/dist/lifecycle/daemon-startup.d.ts.map +1 -0
  213. package/dist/lifecycle/daemon-startup.js +1527 -0
  214. package/dist/lifecycle/daemon-startup.js.map +1 -0
  215. package/dist/lifecycle/daemon.d.ts +171 -114
  216. package/dist/lifecycle/daemon.d.ts.map +1 -1
  217. package/dist/lifecycle/daemon.js +22 -1904
  218. package/dist/lifecycle/daemon.js.map +1 -1
  219. package/dist/notifications/channels/discord.d.ts.map +1 -1
  220. package/dist/notifications/channels/discord.js +1 -0
  221. package/dist/notifications/channels/discord.js.map +1 -1
  222. package/dist/notifications/channels/slack.d.ts.map +1 -1
  223. package/dist/notifications/channels/slack.js +1 -0
  224. package/dist/notifications/channels/slack.js.map +1 -1
  225. package/dist/notifications/index.d.ts +0 -1
  226. package/dist/notifications/index.d.ts.map +1 -1
  227. package/dist/notifications/index.js +0 -1
  228. package/dist/notifications/index.js.map +1 -1
  229. package/dist/notifications/notification-service.d.ts.map +1 -1
  230. package/dist/notifications/notification-service.js +8 -6
  231. package/dist/notifications/notification-service.js.map +1 -1
  232. package/dist/pipeline/database-policy-engine.d.ts +18 -438
  233. package/dist/pipeline/database-policy-engine.d.ts.map +1 -1
  234. package/dist/pipeline/database-policy-engine.js +154 -1321
  235. package/dist/pipeline/database-policy-engine.js.map +1 -1
  236. package/dist/pipeline/dry-run.d.ts +5 -2
  237. package/dist/pipeline/dry-run.d.ts.map +1 -1
  238. package/dist/pipeline/dry-run.js +102 -8
  239. package/dist/pipeline/dry-run.js.map +1 -1
  240. package/dist/pipeline/evaluators/allowed-tokens.d.ts +28 -0
  241. package/dist/pipeline/evaluators/allowed-tokens.d.ts.map +1 -0
  242. package/dist/pipeline/evaluators/allowed-tokens.js +129 -0
  243. package/dist/pipeline/evaluators/allowed-tokens.js.map +1 -0
  244. package/dist/pipeline/evaluators/approved-spenders.d.ts +26 -0
  245. package/dist/pipeline/evaluators/approved-spenders.d.ts.map +1 -0
  246. package/dist/pipeline/evaluators/approved-spenders.js +115 -0
  247. package/dist/pipeline/evaluators/approved-spenders.js.map +1 -0
  248. package/dist/pipeline/evaluators/contract-whitelist.d.ts +28 -0
  249. package/dist/pipeline/evaluators/contract-whitelist.d.ts.map +1 -0
  250. package/dist/pipeline/evaluators/contract-whitelist.js +168 -0
  251. package/dist/pipeline/evaluators/contract-whitelist.js.map +1 -0
  252. package/dist/pipeline/evaluators/helpers.d.ts +9 -0
  253. package/dist/pipeline/evaluators/helpers.d.ts.map +1 -0
  254. package/dist/pipeline/evaluators/helpers.js +13 -0
  255. package/dist/pipeline/evaluators/helpers.js.map +1 -0
  256. package/dist/pipeline/evaluators/lending-asset-whitelist.d.ts +18 -0
  257. package/dist/pipeline/evaluators/lending-asset-whitelist.d.ts.map +1 -0
  258. package/dist/pipeline/evaluators/lending-asset-whitelist.js +44 -0
  259. package/dist/pipeline/evaluators/lending-asset-whitelist.js.map +1 -0
  260. package/dist/pipeline/evaluators/lending-ltv-limit.d.ts +24 -0
  261. package/dist/pipeline/evaluators/lending-ltv-limit.d.ts.map +1 -0
  262. package/dist/pipeline/evaluators/lending-ltv-limit.js +130 -0
  263. package/dist/pipeline/evaluators/lending-ltv-limit.js.map +1 -0
  264. package/dist/pipeline/evaluators/spending-limit.d.ts +46 -0
  265. package/dist/pipeline/evaluators/spending-limit.d.ts.map +1 -0
  266. package/dist/pipeline/evaluators/spending-limit.js +241 -0
  267. package/dist/pipeline/evaluators/spending-limit.js.map +1 -0
  268. package/dist/pipeline/evaluators/types.d.ts +71 -0
  269. package/dist/pipeline/evaluators/types.d.ts.map +1 -0
  270. package/dist/pipeline/evaluators/types.js +7 -0
  271. package/dist/pipeline/evaluators/types.js.map +1 -0
  272. package/dist/pipeline/external-action-pipeline.js.map +1 -1
  273. package/dist/pipeline/gas-condition-tracker.d.ts +1 -1
  274. package/dist/pipeline/gas-condition-tracker.js +1 -1
  275. package/dist/pipeline/pipeline-helpers.d.ts +146 -0
  276. package/dist/pipeline/pipeline-helpers.d.ts.map +1 -0
  277. package/dist/pipeline/pipeline-helpers.js +260 -0
  278. package/dist/pipeline/pipeline-helpers.js.map +1 -0
  279. package/dist/pipeline/pipeline.d.ts +1 -0
  280. package/dist/pipeline/pipeline.d.ts.map +1 -1
  281. package/dist/pipeline/pipeline.js +3 -2
  282. package/dist/pipeline/pipeline.js.map +1 -1
  283. package/dist/pipeline/resolve-effective-amount-usd.d.ts.map +1 -1
  284. package/dist/pipeline/resolve-effective-amount-usd.js +4 -10
  285. package/dist/pipeline/resolve-effective-amount-usd.js.map +1 -1
  286. package/dist/pipeline/sign-message.js +1 -1
  287. package/dist/pipeline/sign-message.js.map +1 -1
  288. package/dist/pipeline/sleep.d.ts +1 -5
  289. package/dist/pipeline/sleep.d.ts.map +1 -1
  290. package/dist/pipeline/sleep.js +2 -7
  291. package/dist/pipeline/sleep.js.map +1 -1
  292. package/dist/pipeline/stage1-validate.d.ts +8 -0
  293. package/dist/pipeline/stage1-validate.d.ts.map +1 -0
  294. package/dist/pipeline/stage1-validate.js +69 -0
  295. package/dist/pipeline/stage1-validate.js.map +1 -0
  296. package/dist/pipeline/stage2-auth.d.ts +12 -0
  297. package/dist/pipeline/stage2-auth.d.ts.map +1 -0
  298. package/dist/pipeline/stage2-auth.js +18 -0
  299. package/dist/pipeline/stage2-auth.js.map +1 -0
  300. package/dist/pipeline/stage3-policy.d.ts +26 -0
  301. package/dist/pipeline/stage3-policy.d.ts.map +1 -0
  302. package/dist/pipeline/stage3-policy.js +384 -0
  303. package/dist/pipeline/stage3-policy.js.map +1 -0
  304. package/dist/pipeline/stage4-wait.d.ts +8 -0
  305. package/dist/pipeline/stage4-wait.d.ts.map +1 -0
  306. package/dist/pipeline/stage4-wait.js +87 -0
  307. package/dist/pipeline/stage4-wait.js.map +1 -0
  308. package/dist/pipeline/stage5-execute.d.ts +120 -0
  309. package/dist/pipeline/stage5-execute.d.ts.map +1 -0
  310. package/dist/pipeline/stage5-execute.js +1070 -0
  311. package/dist/pipeline/stage5-execute.js.map +1 -0
  312. package/dist/pipeline/stage6-confirm.d.ts +11 -0
  313. package/dist/pipeline/stage6-confirm.d.ts.map +1 -0
  314. package/dist/pipeline/stage6-confirm.js +110 -0
  315. package/dist/pipeline/stage6-confirm.js.map +1 -0
  316. package/dist/pipeline/stages.d.ts +11 -245
  317. package/dist/pipeline/stages.d.ts.map +1 -1
  318. package/dist/pipeline/stages.js +11 -1896
  319. package/dist/pipeline/stages.js.map +1 -1
  320. package/dist/rpc-proxy/sync-pipeline.js +2 -2
  321. package/dist/rpc-proxy/sync-pipeline.js.map +1 -1
  322. package/dist/services/autostop/autostop-service.d.ts +4 -1
  323. package/dist/services/autostop/autostop-service.d.ts.map +1 -1
  324. package/dist/services/autostop/autostop-service.js +27 -7
  325. package/dist/services/autostop/autostop-service.js.map +1 -1
  326. package/dist/services/defi/position-tracker.d.ts +5 -0
  327. package/dist/services/defi/position-tracker.d.ts.map +1 -1
  328. package/dist/services/defi/position-tracker.js +41 -6
  329. package/dist/services/defi/position-tracker.js.map +1 -1
  330. package/dist/services/defi/position-write-queue.d.ts.map +1 -1
  331. package/dist/services/defi/position-write-queue.js +3 -2
  332. package/dist/services/defi/position-write-queue.js.map +1 -1
  333. package/dist/services/incoming/__tests__/integration-wiring.test.js +58 -0
  334. package/dist/services/incoming/__tests__/integration-wiring.test.js.map +1 -1
  335. package/dist/services/incoming/incoming-tx-monitor-service.d.ts.map +1 -1
  336. package/dist/services/incoming/incoming-tx-monitor-service.js +11 -14
  337. package/dist/services/incoming/incoming-tx-monitor-service.js.map +1 -1
  338. package/dist/services/incoming/incoming-tx-workers.d.ts +2 -2
  339. package/dist/services/incoming/incoming-tx-workers.d.ts.map +1 -1
  340. package/dist/services/incoming/incoming-tx-workers.js +1 -1
  341. package/dist/services/incoming/incoming-tx-workers.js.map +1 -1
  342. package/dist/services/incoming/safety-rules.d.ts.map +1 -1
  343. package/dist/services/incoming/safety-rules.js +3 -2
  344. package/dist/services/incoming/safety-rules.js.map +1 -1
  345. package/dist/services/incoming/subscription-multiplexer.d.ts +2 -6
  346. package/dist/services/incoming/subscription-multiplexer.d.ts.map +1 -1
  347. package/dist/services/incoming/subscription-multiplexer.js +1 -3
  348. package/dist/services/incoming/subscription-multiplexer.js.map +1 -1
  349. package/dist/services/monitoring/balance-monitor-service.d.ts.map +1 -1
  350. package/dist/services/monitoring/balance-monitor-service.js +2 -2
  351. package/dist/services/monitoring/balance-monitor-service.js.map +1 -1
  352. package/dist/services/signing-sdk/approval-channel-router.d.ts +7 -7
  353. package/dist/services/signing-sdk/approval-channel-router.d.ts.map +1 -1
  354. package/dist/services/signing-sdk/approval-channel-router.js +13 -13
  355. package/dist/services/signing-sdk/approval-channel-router.js.map +1 -1
  356. package/dist/services/signing-sdk/channels/index.d.ts +2 -2
  357. package/dist/services/signing-sdk/channels/index.d.ts.map +1 -1
  358. package/dist/services/signing-sdk/channels/index.js +1 -1
  359. package/dist/services/signing-sdk/channels/index.js.map +1 -1
  360. package/dist/services/signing-sdk/channels/push-relay-signing-channel.d.ts +59 -0
  361. package/dist/services/signing-sdk/channels/push-relay-signing-channel.d.ts.map +1 -0
  362. package/dist/services/signing-sdk/channels/push-relay-signing-channel.js +190 -0
  363. package/dist/services/signing-sdk/channels/push-relay-signing-channel.js.map +1 -0
  364. package/dist/services/signing-sdk/channels/telegram-signing-channel.d.ts +1 -1
  365. package/dist/services/signing-sdk/channels/telegram-signing-channel.js +1 -1
  366. package/dist/services/signing-sdk/channels/wallet-notification-channel.d.ts +6 -7
  367. package/dist/services/signing-sdk/channels/wallet-notification-channel.d.ts.map +1 -1
  368. package/dist/services/signing-sdk/channels/wallet-notification-channel.js +38 -55
  369. package/dist/services/signing-sdk/channels/wallet-notification-channel.js.map +1 -1
  370. package/dist/services/signing-sdk/index.d.ts +3 -3
  371. package/dist/services/signing-sdk/index.d.ts.map +1 -1
  372. package/dist/services/signing-sdk/index.js +2 -2
  373. package/dist/services/signing-sdk/index.js.map +1 -1
  374. package/dist/services/signing-sdk/preset-auto-setup.js +2 -2
  375. package/dist/services/signing-sdk/preset-auto-setup.js.map +1 -1
  376. package/dist/services/signing-sdk/sign-request-builder.d.ts +2 -2
  377. package/dist/services/signing-sdk/sign-request-builder.d.ts.map +1 -1
  378. package/dist/services/signing-sdk/sign-request-builder.js +17 -25
  379. package/dist/services/signing-sdk/sign-request-builder.js.map +1 -1
  380. package/dist/services/signing-sdk/wallet-app-service.d.ts +4 -0
  381. package/dist/services/signing-sdk/wallet-app-service.d.ts.map +1 -1
  382. package/dist/services/signing-sdk/wallet-app-service.js +12 -5
  383. package/dist/services/signing-sdk/wallet-app-service.js.map +1 -1
  384. package/dist/services/staking/aggregate-staking-balance.d.ts +24 -0
  385. package/dist/services/staking/aggregate-staking-balance.d.ts.map +1 -0
  386. package/dist/services/staking/aggregate-staking-balance.js +82 -0
  387. package/dist/services/staking/aggregate-staking-balance.js.map +1 -0
  388. package/dist/services/wc-session-service.d.ts.map +1 -1
  389. package/dist/services/wc-session-service.js +2 -1
  390. package/dist/services/wc-session-service.js.map +1 -1
  391. package/dist/services/wc-signing-bridge.js +2 -2
  392. package/dist/services/wc-signing-bridge.js.map +1 -1
  393. package/dist/services/x402/payment-signer.d.ts.map +1 -1
  394. package/dist/services/x402/payment-signer.js +2 -5
  395. package/dist/services/x402/payment-signer.js.map +1 -1
  396. package/dist/services/x402/ssrf-guard.d.ts +4 -23
  397. package/dist/services/x402/ssrf-guard.d.ts.map +1 -1
  398. package/dist/services/x402/ssrf-guard.js +3 -232
  399. package/dist/services/x402/ssrf-guard.js.map +1 -1
  400. package/dist/signing/capabilities/eip712-signer.d.ts.map +1 -1
  401. package/dist/signing/capabilities/eip712-signer.js +2 -0
  402. package/dist/signing/capabilities/eip712-signer.js.map +1 -1
  403. package/package.json +5 -5
  404. package/public/admin/assets/index-CpFF2lCo.js +3 -0
  405. package/public/admin/index.html +1 -1
  406. package/dist/notifications/channels/ntfy.d.ts +0 -13
  407. package/dist/notifications/channels/ntfy.d.ts.map +0 -1
  408. package/dist/notifications/channels/ntfy.js +0 -74
  409. package/dist/notifications/channels/ntfy.js.map +0 -1
  410. package/dist/services/signing-sdk/channels/ntfy-signing-channel.d.ts +0 -66
  411. package/dist/services/signing-sdk/channels/ntfy-signing-channel.d.ts.map +0 -1
  412. package/dist/services/signing-sdk/channels/ntfy-signing-channel.js +0 -270
  413. package/dist/services/signing-sdk/channels/ntfy-signing-channel.js.map +0 -1
  414. package/public/admin/assets/index-CQ3i4P2U.js +0 -3
@@ -0,0 +1,539 @@
1
+ /**
2
+ * Database migrations v2 through v10.
3
+ *
4
+ * v2: Expand agents.network CHECK to include EVM networks
5
+ * v3: Rename agents to wallets (table, FK columns, indexes, enum data)
6
+ * v4: Create token_registry table
7
+ * v5: Create settings table
8
+ * v6 (version 6): Add network column to transactions with backfill
9
+ * v6b (version 7): Replace wallets.network with environment + default_network
10
+ * v8: Add network column to policies
11
+ * v9: Add SIGNED status and SIGN type to transactions CHECK
12
+ * v10: Add message column to notification_logs
13
+ */
14
+ import { WALLET_STATUSES, CHAIN_TYPES, ENVIRONMENT_TYPES, TRANSACTION_STATUSES, TRANSACTION_TYPES, POLICY_TYPES, POLICY_TIERS, NOTIFICATION_LOG_STATUSES, } from '@waiaas/core';
15
+ import { inList, NETWORK_TYPES_WITH_LEGACY } from '../schema-ddl.js';
16
+ export const migrations = [
17
+ // ---------------------------------------------------------------------------
18
+ // v2: Expand agents.network CHECK to include EVM networks
19
+ // ---------------------------------------------------------------------------
20
+ {
21
+ version: 2,
22
+ description: 'Expand agents network CHECK to include EVM networks',
23
+ managesOwnTransaction: true,
24
+ up: (sqlite) => {
25
+ sqlite.exec('BEGIN');
26
+ try {
27
+ sqlite.exec(`CREATE TABLE agents_new (
28
+ id TEXT PRIMARY KEY,
29
+ name TEXT NOT NULL,
30
+ chain TEXT NOT NULL CHECK (chain IN (${inList(CHAIN_TYPES)})),
31
+ network TEXT NOT NULL CHECK (network IN (${inList(NETWORK_TYPES_WITH_LEGACY)})),
32
+ public_key TEXT NOT NULL,
33
+ status TEXT NOT NULL DEFAULT 'CREATING' CHECK (status IN (${inList(WALLET_STATUSES)})),
34
+ owner_address TEXT,
35
+ owner_verified INTEGER NOT NULL DEFAULT 0 CHECK (owner_verified IN (0, 1)),
36
+ created_at INTEGER NOT NULL,
37
+ updated_at INTEGER NOT NULL,
38
+ suspended_at INTEGER,
39
+ suspension_reason TEXT
40
+ )`);
41
+ sqlite.exec('INSERT INTO agents_new SELECT * FROM agents');
42
+ sqlite.exec('DROP TABLE agents');
43
+ sqlite.exec('ALTER TABLE agents_new RENAME TO agents');
44
+ sqlite.exec('CREATE UNIQUE INDEX IF NOT EXISTS idx_agents_public_key ON agents(public_key)');
45
+ sqlite.exec('CREATE INDEX IF NOT EXISTS idx_agents_status ON agents(status)');
46
+ sqlite.exec('CREATE INDEX IF NOT EXISTS idx_agents_chain_network ON agents(chain, network)');
47
+ sqlite.exec('CREATE INDEX IF NOT EXISTS idx_agents_owner_address ON agents(owner_address)');
48
+ sqlite.exec('COMMIT');
49
+ }
50
+ catch (err) {
51
+ sqlite.exec('ROLLBACK');
52
+ throw err;
53
+ }
54
+ sqlite.pragma('foreign_keys = ON');
55
+ const fkErrors = sqlite.pragma('foreign_key_check');
56
+ if (fkErrors.length > 0) {
57
+ throw new Error(`FK integrity check failed after v2 migration: ${JSON.stringify(fkErrors)}`);
58
+ }
59
+ },
60
+ },
61
+ // ---------------------------------------------------------------------------
62
+ // v3: Rename agents to wallets
63
+ // ---------------------------------------------------------------------------
64
+ {
65
+ version: 3,
66
+ description: 'Rename agents to wallets (table, FK columns, indexes, enum data)',
67
+ managesOwnTransaction: true,
68
+ up: (sqlite) => {
69
+ sqlite.exec('BEGIN');
70
+ try {
71
+ sqlite.exec('ALTER TABLE agents RENAME TO wallets');
72
+ sqlite.exec('DROP INDEX IF EXISTS idx_agents_public_key');
73
+ sqlite.exec('DROP INDEX IF EXISTS idx_agents_status');
74
+ sqlite.exec('DROP INDEX IF EXISTS idx_agents_chain_network');
75
+ sqlite.exec('DROP INDEX IF EXISTS idx_agents_owner_address');
76
+ sqlite.exec(`CREATE TABLE sessions_new (
77
+ id TEXT PRIMARY KEY,
78
+ wallet_id TEXT NOT NULL REFERENCES wallets(id) ON DELETE CASCADE,
79
+ token_hash TEXT NOT NULL,
80
+ expires_at INTEGER NOT NULL,
81
+ constraints TEXT,
82
+ usage_stats TEXT,
83
+ revoked_at INTEGER,
84
+ renewal_count INTEGER NOT NULL DEFAULT 0,
85
+ max_renewals INTEGER NOT NULL DEFAULT 30,
86
+ last_renewed_at INTEGER,
87
+ absolute_expires_at INTEGER NOT NULL,
88
+ created_at INTEGER NOT NULL
89
+ )`);
90
+ sqlite.exec(`INSERT INTO sessions_new (id, wallet_id, token_hash, expires_at, constraints, usage_stats, revoked_at, renewal_count, max_renewals, last_renewed_at, absolute_expires_at, created_at)
91
+ SELECT id, agent_id, token_hash, expires_at, constraints, usage_stats, revoked_at, renewal_count, max_renewals, last_renewed_at, absolute_expires_at, created_at FROM sessions`);
92
+ sqlite.exec('DROP TABLE sessions');
93
+ sqlite.exec('ALTER TABLE sessions_new RENAME TO sessions');
94
+ sqlite.exec(`CREATE TABLE transactions_new (
95
+ id TEXT PRIMARY KEY,
96
+ wallet_id TEXT NOT NULL REFERENCES wallets(id) ON DELETE RESTRICT,
97
+ session_id TEXT REFERENCES sessions(id) ON DELETE SET NULL,
98
+ chain TEXT NOT NULL,
99
+ tx_hash TEXT,
100
+ type TEXT NOT NULL CHECK (type IN (${inList(TRANSACTION_TYPES)})),
101
+ amount TEXT,
102
+ to_address TEXT,
103
+ token_mint TEXT,
104
+ contract_address TEXT,
105
+ method_signature TEXT,
106
+ spender_address TEXT,
107
+ approved_amount TEXT,
108
+ parent_id TEXT REFERENCES transactions_new(id) ON DELETE CASCADE,
109
+ batch_index INTEGER,
110
+ status TEXT NOT NULL DEFAULT 'PENDING' CHECK (status IN (${inList(TRANSACTION_STATUSES)})),
111
+ tier TEXT CHECK (tier IS NULL OR tier IN (${inList(POLICY_TIERS)})),
112
+ queued_at INTEGER,
113
+ executed_at INTEGER,
114
+ created_at INTEGER NOT NULL,
115
+ reserved_amount TEXT,
116
+ error TEXT,
117
+ metadata TEXT
118
+ )`);
119
+ sqlite.exec(`INSERT INTO transactions_new (id, wallet_id, session_id, chain, tx_hash, type, amount, to_address, token_mint, contract_address, method_signature, spender_address, approved_amount, parent_id, batch_index, status, tier, queued_at, executed_at, created_at, reserved_amount, error, metadata)
120
+ SELECT id, agent_id, session_id, chain, tx_hash, type, amount, to_address, token_mint, contract_address, method_signature, spender_address, approved_amount, parent_id, batch_index, status, tier, queued_at, executed_at, created_at, reserved_amount, error, metadata FROM transactions`);
121
+ sqlite.exec('DROP TABLE transactions');
122
+ sqlite.exec('ALTER TABLE transactions_new RENAME TO transactions');
123
+ sqlite.exec(`CREATE TABLE policies_new (
124
+ id TEXT PRIMARY KEY,
125
+ wallet_id TEXT REFERENCES wallets(id) ON DELETE CASCADE,
126
+ type TEXT NOT NULL CHECK (type IN (${inList(POLICY_TYPES)})),
127
+ rules TEXT NOT NULL,
128
+ priority INTEGER NOT NULL DEFAULT 0,
129
+ enabled INTEGER NOT NULL DEFAULT 1,
130
+ created_at INTEGER NOT NULL,
131
+ updated_at INTEGER NOT NULL
132
+ )`);
133
+ sqlite.exec(`INSERT INTO policies_new (id, wallet_id, type, rules, priority, enabled, created_at, updated_at)
134
+ SELECT id, agent_id, type, rules, priority, enabled, created_at, updated_at FROM policies`);
135
+ sqlite.exec('DROP TABLE policies');
136
+ sqlite.exec('ALTER TABLE policies_new RENAME TO policies');
137
+ sqlite.exec(`CREATE TABLE audit_log_new (
138
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
139
+ timestamp INTEGER NOT NULL,
140
+ event_type TEXT NOT NULL,
141
+ actor TEXT NOT NULL,
142
+ wallet_id TEXT,
143
+ session_id TEXT,
144
+ tx_id TEXT,
145
+ details TEXT NOT NULL,
146
+ severity TEXT NOT NULL DEFAULT 'info' CHECK (severity IN ('info', 'warning', 'critical')),
147
+ ip_address TEXT
148
+ )`);
149
+ sqlite.exec(`INSERT INTO audit_log_new (id, timestamp, event_type, actor, wallet_id, session_id, tx_id, details, severity, ip_address)
150
+ SELECT id, timestamp, event_type, actor, agent_id, session_id, tx_id, details, severity, ip_address FROM audit_log`);
151
+ sqlite.exec('DROP TABLE audit_log');
152
+ sqlite.exec('ALTER TABLE audit_log_new RENAME TO audit_log');
153
+ sqlite.exec(`CREATE TABLE notification_logs_new (
154
+ id TEXT PRIMARY KEY,
155
+ event_type TEXT NOT NULL,
156
+ wallet_id TEXT,
157
+ channel TEXT NOT NULL,
158
+ status TEXT NOT NULL CHECK (status IN (${inList(NOTIFICATION_LOG_STATUSES)})),
159
+ error TEXT,
160
+ created_at INTEGER NOT NULL
161
+ )`);
162
+ sqlite.exec(`INSERT INTO notification_logs_new (id, event_type, wallet_id, channel, status, error, created_at)
163
+ SELECT id, event_type, agent_id, channel, status, error, created_at FROM notification_logs`);
164
+ sqlite.exec('DROP TABLE notification_logs');
165
+ sqlite.exec('ALTER TABLE notification_logs_new RENAME TO notification_logs');
166
+ // Recreate all indexes
167
+ sqlite.exec('CREATE UNIQUE INDEX idx_wallets_public_key ON wallets(public_key)');
168
+ sqlite.exec('CREATE INDEX idx_wallets_status ON wallets(status)');
169
+ sqlite.exec('CREATE INDEX idx_wallets_chain_network ON wallets(chain, network)');
170
+ sqlite.exec('CREATE INDEX idx_wallets_owner_address ON wallets(owner_address)');
171
+ sqlite.exec('CREATE INDEX idx_sessions_wallet_id ON sessions(wallet_id)');
172
+ sqlite.exec('CREATE INDEX idx_sessions_expires_at ON sessions(expires_at)');
173
+ sqlite.exec('CREATE INDEX idx_sessions_token_hash ON sessions(token_hash)');
174
+ sqlite.exec('CREATE INDEX idx_transactions_wallet_status ON transactions(wallet_id, status)');
175
+ sqlite.exec('CREATE INDEX idx_transactions_session_id ON transactions(session_id)');
176
+ sqlite.exec('CREATE UNIQUE INDEX idx_transactions_tx_hash ON transactions(tx_hash)');
177
+ sqlite.exec('CREATE INDEX idx_transactions_queued_at ON transactions(queued_at)');
178
+ sqlite.exec('CREATE INDEX idx_transactions_created_at ON transactions(created_at)');
179
+ sqlite.exec('CREATE INDEX idx_transactions_type ON transactions(type)');
180
+ sqlite.exec('CREATE INDEX idx_transactions_contract_address ON transactions(contract_address)');
181
+ sqlite.exec('CREATE INDEX idx_transactions_parent_id ON transactions(parent_id)');
182
+ sqlite.exec('CREATE INDEX idx_policies_wallet_enabled ON policies(wallet_id, enabled)');
183
+ sqlite.exec('CREATE INDEX idx_policies_type ON policies(type)');
184
+ sqlite.exec('CREATE INDEX idx_audit_log_timestamp ON audit_log(timestamp)');
185
+ sqlite.exec('CREATE INDEX idx_audit_log_event_type ON audit_log(event_type)');
186
+ sqlite.exec('CREATE INDEX idx_audit_log_wallet_id ON audit_log(wallet_id)');
187
+ sqlite.exec('CREATE INDEX idx_audit_log_severity ON audit_log(severity)');
188
+ sqlite.exec('CREATE INDEX idx_audit_log_wallet_timestamp ON audit_log(wallet_id, timestamp)');
189
+ sqlite.exec('CREATE INDEX idx_notification_logs_event_type ON notification_logs(event_type)');
190
+ sqlite.exec('CREATE INDEX idx_notification_logs_wallet_id ON notification_logs(wallet_id)');
191
+ sqlite.exec('CREATE INDEX idx_notification_logs_status ON notification_logs(status)');
192
+ sqlite.exec('CREATE INDEX idx_notification_logs_created_at ON notification_logs(created_at)');
193
+ // Update enum data
194
+ sqlite.exec("UPDATE audit_log SET event_type = 'WALLET_CREATED' WHERE event_type = 'AGENT_CREATED'");
195
+ sqlite.exec("UPDATE audit_log SET event_type = 'WALLET_ACTIVATED' WHERE event_type = 'AGENT_ACTIVATED'");
196
+ sqlite.exec("UPDATE audit_log SET event_type = 'WALLET_SUSPENDED' WHERE event_type = 'AGENT_SUSPENDED'");
197
+ sqlite.exec("UPDATE audit_log SET event_type = 'WALLET_TERMINATED' WHERE event_type = 'AGENT_TERMINATED'");
198
+ sqlite.exec("UPDATE notification_logs SET event_type = 'WALLET_SUSPENDED' WHERE event_type = 'AGENT_SUSPENDED'");
199
+ sqlite.exec('COMMIT');
200
+ }
201
+ catch (err) {
202
+ sqlite.exec('ROLLBACK');
203
+ throw err;
204
+ }
205
+ sqlite.pragma('foreign_keys = ON');
206
+ const fkErrors = sqlite.pragma('foreign_key_check');
207
+ if (fkErrors.length > 0) {
208
+ throw new Error(`FK integrity check failed after v3 migration: ${JSON.stringify(fkErrors)}`);
209
+ }
210
+ },
211
+ },
212
+ // v4: Create token_registry table
213
+ {
214
+ version: 4,
215
+ description: 'Create token_registry table for EVM token management',
216
+ up: (sqlite) => {
217
+ sqlite.exec(`CREATE TABLE IF NOT EXISTS token_registry (
218
+ id TEXT PRIMARY KEY,
219
+ network TEXT NOT NULL,
220
+ address TEXT NOT NULL,
221
+ symbol TEXT NOT NULL,
222
+ name TEXT NOT NULL,
223
+ decimals INTEGER NOT NULL,
224
+ source TEXT NOT NULL DEFAULT 'custom' CHECK (source IN ('builtin', 'custom')),
225
+ created_at INTEGER NOT NULL
226
+ )`);
227
+ sqlite.exec('CREATE UNIQUE INDEX IF NOT EXISTS idx_token_registry_network_address ON token_registry(network, address)');
228
+ sqlite.exec('CREATE INDEX IF NOT EXISTS idx_token_registry_network ON token_registry(network)');
229
+ },
230
+ },
231
+ // v5: Create settings table
232
+ {
233
+ version: 5,
234
+ description: 'Create settings table for operational config DB storage',
235
+ up: (sqlite) => {
236
+ sqlite.exec(`CREATE TABLE IF NOT EXISTS settings (
237
+ key TEXT PRIMARY KEY,
238
+ value TEXT NOT NULL,
239
+ encrypted INTEGER NOT NULL DEFAULT 0 CHECK (encrypted IN (0, 1)),
240
+ category TEXT NOT NULL,
241
+ updated_at INTEGER NOT NULL
242
+ )`);
243
+ sqlite.exec('CREATE INDEX IF NOT EXISTS idx_settings_category ON settings(category)');
244
+ },
245
+ },
246
+ // v6a: Add network column to transactions
247
+ {
248
+ version: 6,
249
+ description: 'Add network column to transactions with backfill from wallets',
250
+ managesOwnTransaction: false,
251
+ up: (sqlite) => {
252
+ sqlite.exec('ALTER TABLE transactions ADD COLUMN network TEXT');
253
+ sqlite.exec(`UPDATE transactions SET network = (
254
+ SELECT w.network FROM wallets w WHERE w.id = transactions.wallet_id
255
+ )`);
256
+ },
257
+ },
258
+ // v6b (version 7): Replace wallets.network with environment + default_network
259
+ {
260
+ version: 7,
261
+ description: 'Replace wallets.network with environment + default_network (12-step recreation)',
262
+ managesOwnTransaction: true,
263
+ up: (sqlite) => {
264
+ sqlite.exec('BEGIN');
265
+ try {
266
+ sqlite.exec(`CREATE TABLE wallets_new (
267
+ id TEXT PRIMARY KEY,
268
+ name TEXT NOT NULL,
269
+ chain TEXT NOT NULL CHECK (chain IN (${inList(CHAIN_TYPES)})),
270
+ environment TEXT NOT NULL CHECK (environment IN (${inList(ENVIRONMENT_TYPES)})),
271
+ default_network TEXT CHECK (default_network IS NULL OR default_network IN (${inList(NETWORK_TYPES_WITH_LEGACY)})),
272
+ public_key TEXT NOT NULL,
273
+ status TEXT NOT NULL DEFAULT 'CREATING' CHECK (status IN (${inList(WALLET_STATUSES)})),
274
+ owner_address TEXT,
275
+ owner_verified INTEGER NOT NULL DEFAULT 0 CHECK (owner_verified IN (0, 1)),
276
+ created_at INTEGER NOT NULL,
277
+ updated_at INTEGER NOT NULL,
278
+ suspended_at INTEGER,
279
+ suspension_reason TEXT
280
+ )`);
281
+ sqlite.exec(`INSERT INTO wallets_new (
282
+ id, name, chain, environment, default_network,
283
+ public_key, status, owner_address, owner_verified,
284
+ created_at, updated_at, suspended_at, suspension_reason
285
+ )
286
+ SELECT
287
+ id, name, chain,
288
+ CASE
289
+ WHEN network = 'mainnet' THEN 'mainnet'
290
+ WHEN network = 'devnet' THEN 'testnet'
291
+ WHEN network = 'testnet' THEN 'testnet'
292
+ WHEN network = 'ethereum-mainnet' THEN 'mainnet'
293
+ WHEN network = 'polygon-mainnet' THEN 'mainnet'
294
+ WHEN network = 'arbitrum-mainnet' THEN 'mainnet'
295
+ WHEN network = 'optimism-mainnet' THEN 'mainnet'
296
+ WHEN network = 'base-mainnet' THEN 'mainnet'
297
+ WHEN network = 'ethereum-sepolia' THEN 'testnet'
298
+ WHEN network = 'polygon-amoy' THEN 'testnet'
299
+ WHEN network = 'arbitrum-sepolia' THEN 'testnet'
300
+ WHEN network = 'optimism-sepolia' THEN 'testnet'
301
+ WHEN network = 'base-sepolia' THEN 'testnet'
302
+ ELSE 'testnet'
303
+ END AS environment,
304
+ network AS default_network,
305
+ public_key, status, owner_address, owner_verified,
306
+ created_at, updated_at, suspended_at, suspension_reason
307
+ FROM wallets`);
308
+ sqlite.exec('DROP TABLE wallets');
309
+ sqlite.exec('ALTER TABLE wallets_new RENAME TO wallets');
310
+ sqlite.exec('DROP INDEX IF EXISTS idx_wallets_chain_network');
311
+ sqlite.exec('CREATE UNIQUE INDEX idx_wallets_public_key ON wallets(public_key)');
312
+ sqlite.exec('CREATE INDEX idx_wallets_status ON wallets(status)');
313
+ sqlite.exec('CREATE INDEX idx_wallets_chain_environment ON wallets(chain, environment)');
314
+ sqlite.exec('CREATE INDEX idx_wallets_owner_address ON wallets(owner_address)');
315
+ // Recreate sessions (FK reconnection)
316
+ sqlite.exec(`CREATE TABLE sessions_new (
317
+ id TEXT PRIMARY KEY,
318
+ wallet_id TEXT NOT NULL REFERENCES wallets(id) ON DELETE CASCADE,
319
+ token_hash TEXT NOT NULL,
320
+ expires_at INTEGER NOT NULL,
321
+ constraints TEXT,
322
+ usage_stats TEXT,
323
+ revoked_at INTEGER,
324
+ renewal_count INTEGER NOT NULL DEFAULT 0,
325
+ max_renewals INTEGER NOT NULL DEFAULT 30,
326
+ last_renewed_at INTEGER,
327
+ absolute_expires_at INTEGER NOT NULL,
328
+ created_at INTEGER NOT NULL
329
+ )`);
330
+ sqlite.exec(`INSERT INTO sessions_new (id, wallet_id, token_hash, expires_at, constraints, usage_stats, revoked_at, renewal_count, max_renewals, last_renewed_at, absolute_expires_at, created_at)
331
+ SELECT id, wallet_id, token_hash, expires_at, constraints, usage_stats, revoked_at, renewal_count, max_renewals, last_renewed_at, absolute_expires_at, created_at FROM sessions`);
332
+ sqlite.exec('DROP TABLE sessions');
333
+ sqlite.exec('ALTER TABLE sessions_new RENAME TO sessions');
334
+ sqlite.exec('CREATE INDEX idx_sessions_wallet_id ON sessions(wallet_id)');
335
+ sqlite.exec('CREATE INDEX idx_sessions_expires_at ON sessions(expires_at)');
336
+ sqlite.exec('CREATE INDEX idx_sessions_token_hash ON sessions(token_hash)');
337
+ // Recreate transactions (network column with CHECK)
338
+ sqlite.exec(`CREATE TABLE transactions_new (
339
+ id TEXT PRIMARY KEY,
340
+ wallet_id TEXT NOT NULL REFERENCES wallets(id) ON DELETE RESTRICT,
341
+ session_id TEXT REFERENCES sessions(id) ON DELETE SET NULL,
342
+ chain TEXT NOT NULL,
343
+ tx_hash TEXT,
344
+ type TEXT NOT NULL CHECK (type IN (${inList(TRANSACTION_TYPES)})),
345
+ amount TEXT,
346
+ to_address TEXT,
347
+ token_mint TEXT,
348
+ contract_address TEXT,
349
+ method_signature TEXT,
350
+ spender_address TEXT,
351
+ approved_amount TEXT,
352
+ parent_id TEXT REFERENCES transactions_new(id) ON DELETE CASCADE,
353
+ batch_index INTEGER,
354
+ status TEXT NOT NULL DEFAULT 'PENDING' CHECK (status IN (${inList(TRANSACTION_STATUSES)})),
355
+ tier TEXT CHECK (tier IS NULL OR tier IN (${inList(POLICY_TIERS)})),
356
+ queued_at INTEGER,
357
+ executed_at INTEGER,
358
+ created_at INTEGER NOT NULL,
359
+ reserved_amount TEXT,
360
+ error TEXT,
361
+ metadata TEXT,
362
+ network TEXT CHECK (network IS NULL OR network IN (${inList(NETWORK_TYPES_WITH_LEGACY)}))
363
+ )`);
364
+ sqlite.exec(`INSERT INTO transactions_new (id, wallet_id, session_id, chain, tx_hash, type, amount, to_address, token_mint, contract_address, method_signature, spender_address, approved_amount, parent_id, batch_index, status, tier, queued_at, executed_at, created_at, reserved_amount, error, metadata, network)
365
+ SELECT id, wallet_id, session_id, chain, tx_hash, type, amount, to_address, token_mint, contract_address, method_signature, spender_address, approved_amount, parent_id, batch_index, status, tier, queued_at, executed_at, created_at, reserved_amount, error, metadata, network FROM transactions`);
366
+ sqlite.exec('DROP TABLE transactions');
367
+ sqlite.exec('ALTER TABLE transactions_new RENAME TO transactions');
368
+ sqlite.exec('CREATE INDEX idx_transactions_wallet_status ON transactions(wallet_id, status)');
369
+ sqlite.exec('CREATE INDEX idx_transactions_session_id ON transactions(session_id)');
370
+ sqlite.exec('CREATE UNIQUE INDEX idx_transactions_tx_hash ON transactions(tx_hash)');
371
+ sqlite.exec('CREATE INDEX idx_transactions_queued_at ON transactions(queued_at)');
372
+ sqlite.exec('CREATE INDEX idx_transactions_created_at ON transactions(created_at)');
373
+ sqlite.exec('CREATE INDEX idx_transactions_type ON transactions(type)');
374
+ sqlite.exec('CREATE INDEX idx_transactions_contract_address ON transactions(contract_address)');
375
+ sqlite.exec('CREATE INDEX idx_transactions_parent_id ON transactions(parent_id)');
376
+ // Recreate policies (FK reconnection)
377
+ sqlite.exec(`CREATE TABLE policies_new (
378
+ id TEXT PRIMARY KEY,
379
+ wallet_id TEXT REFERENCES wallets(id) ON DELETE CASCADE,
380
+ type TEXT NOT NULL CHECK (type IN (${inList(POLICY_TYPES)})),
381
+ rules TEXT NOT NULL,
382
+ priority INTEGER NOT NULL DEFAULT 0,
383
+ enabled INTEGER NOT NULL DEFAULT 1,
384
+ created_at INTEGER NOT NULL,
385
+ updated_at INTEGER NOT NULL
386
+ )`);
387
+ sqlite.exec(`INSERT INTO policies_new (id, wallet_id, type, rules, priority, enabled, created_at, updated_at)
388
+ SELECT id, wallet_id, type, rules, priority, enabled, created_at, updated_at FROM policies`);
389
+ sqlite.exec('DROP TABLE policies');
390
+ sqlite.exec('ALTER TABLE policies_new RENAME TO policies');
391
+ sqlite.exec('CREATE INDEX idx_policies_wallet_enabled ON policies(wallet_id, enabled)');
392
+ sqlite.exec('CREATE INDEX idx_policies_type ON policies(type)');
393
+ // Recreate audit_log
394
+ sqlite.exec(`CREATE TABLE audit_log_new (
395
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
396
+ timestamp INTEGER NOT NULL,
397
+ event_type TEXT NOT NULL,
398
+ actor TEXT NOT NULL,
399
+ wallet_id TEXT,
400
+ session_id TEXT,
401
+ tx_id TEXT,
402
+ details TEXT NOT NULL,
403
+ severity TEXT NOT NULL DEFAULT 'info' CHECK (severity IN ('info', 'warning', 'critical')),
404
+ ip_address TEXT
405
+ )`);
406
+ sqlite.exec(`INSERT INTO audit_log_new (id, timestamp, event_type, actor, wallet_id, session_id, tx_id, details, severity, ip_address)
407
+ SELECT id, timestamp, event_type, actor, wallet_id, session_id, tx_id, details, severity, ip_address FROM audit_log`);
408
+ sqlite.exec('DROP TABLE audit_log');
409
+ sqlite.exec('ALTER TABLE audit_log_new RENAME TO audit_log');
410
+ sqlite.exec('CREATE INDEX idx_audit_log_timestamp ON audit_log(timestamp)');
411
+ sqlite.exec('CREATE INDEX idx_audit_log_event_type ON audit_log(event_type)');
412
+ sqlite.exec('CREATE INDEX idx_audit_log_wallet_id ON audit_log(wallet_id)');
413
+ sqlite.exec('CREATE INDEX idx_audit_log_severity ON audit_log(severity)');
414
+ sqlite.exec('CREATE INDEX idx_audit_log_wallet_timestamp ON audit_log(wallet_id, timestamp)');
415
+ sqlite.exec('COMMIT');
416
+ }
417
+ catch (err) {
418
+ sqlite.exec('ROLLBACK');
419
+ throw err;
420
+ }
421
+ sqlite.pragma('foreign_keys = ON');
422
+ const fkErrors = sqlite.pragma('foreign_key_check');
423
+ if (fkErrors.length > 0) {
424
+ throw new Error(`FK integrity violation after v6b: ${JSON.stringify(fkErrors)}`);
425
+ }
426
+ },
427
+ },
428
+ // v8: Add network column to policies
429
+ {
430
+ version: 8,
431
+ description: 'Add network column to policies and ALLOWED_NETWORKS type support',
432
+ managesOwnTransaction: true,
433
+ up: (sqlite) => {
434
+ sqlite.exec('BEGIN');
435
+ try {
436
+ sqlite.exec(`CREATE TABLE policies_new (
437
+ id TEXT PRIMARY KEY,
438
+ wallet_id TEXT REFERENCES wallets(id) ON DELETE CASCADE,
439
+ type TEXT NOT NULL CHECK (type IN (${inList(POLICY_TYPES)})),
440
+ rules TEXT NOT NULL,
441
+ priority INTEGER NOT NULL DEFAULT 0,
442
+ enabled INTEGER NOT NULL DEFAULT 1,
443
+ network TEXT CHECK (network IS NULL OR network IN (${inList(NETWORK_TYPES_WITH_LEGACY)})),
444
+ created_at INTEGER NOT NULL,
445
+ updated_at INTEGER NOT NULL
446
+ )`);
447
+ sqlite.exec(`INSERT INTO policies_new (
448
+ id, wallet_id, type, rules, priority, enabled, network, created_at, updated_at
449
+ )
450
+ SELECT
451
+ id, wallet_id, type, rules, priority, enabled, NULL, created_at, updated_at
452
+ FROM policies`);
453
+ sqlite.exec('DROP TABLE policies');
454
+ sqlite.exec('ALTER TABLE policies_new RENAME TO policies');
455
+ sqlite.exec('CREATE INDEX idx_policies_wallet_enabled ON policies(wallet_id, enabled)');
456
+ sqlite.exec('CREATE INDEX idx_policies_type ON policies(type)');
457
+ sqlite.exec('CREATE INDEX idx_policies_network ON policies(network)');
458
+ sqlite.exec('COMMIT');
459
+ }
460
+ catch (err) {
461
+ sqlite.exec('ROLLBACK');
462
+ throw err;
463
+ }
464
+ sqlite.pragma('foreign_keys = ON');
465
+ const fkErrors = sqlite.pragma('foreign_key_check');
466
+ if (fkErrors.length > 0) {
467
+ throw new Error(`FK integrity violation after v8: ${JSON.stringify(fkErrors)}`);
468
+ }
469
+ },
470
+ },
471
+ // v9: Add SIGNED status and SIGN type to transactions CHECK
472
+ {
473
+ version: 9,
474
+ description: 'Add SIGNED status and SIGN type to transactions CHECK constraints',
475
+ managesOwnTransaction: true,
476
+ up: (sqlite) => {
477
+ sqlite.exec('BEGIN');
478
+ try {
479
+ sqlite.exec(`CREATE TABLE transactions_new (
480
+ id TEXT PRIMARY KEY,
481
+ wallet_id TEXT NOT NULL REFERENCES wallets(id) ON DELETE RESTRICT,
482
+ session_id TEXT REFERENCES sessions(id) ON DELETE SET NULL,
483
+ chain TEXT NOT NULL,
484
+ tx_hash TEXT,
485
+ type TEXT NOT NULL CHECK (type IN (${inList(TRANSACTION_TYPES)})),
486
+ amount TEXT,
487
+ to_address TEXT,
488
+ token_mint TEXT,
489
+ contract_address TEXT,
490
+ method_signature TEXT,
491
+ spender_address TEXT,
492
+ approved_amount TEXT,
493
+ parent_id TEXT REFERENCES transactions_new(id) ON DELETE CASCADE,
494
+ batch_index INTEGER,
495
+ status TEXT NOT NULL DEFAULT 'PENDING' CHECK (status IN (${inList(TRANSACTION_STATUSES)})),
496
+ tier TEXT CHECK (tier IS NULL OR tier IN (${inList(POLICY_TIERS)})),
497
+ queued_at INTEGER,
498
+ executed_at INTEGER,
499
+ created_at INTEGER NOT NULL,
500
+ reserved_amount TEXT,
501
+ error TEXT,
502
+ metadata TEXT,
503
+ network TEXT CHECK (network IS NULL OR network IN (${inList(NETWORK_TYPES_WITH_LEGACY)}))
504
+ )`);
505
+ sqlite.exec(`INSERT INTO transactions_new (id, wallet_id, session_id, chain, tx_hash, type, amount, to_address, token_mint, contract_address, method_signature, spender_address, approved_amount, parent_id, batch_index, status, tier, queued_at, executed_at, created_at, reserved_amount, error, metadata, network)
506
+ SELECT id, wallet_id, session_id, chain, tx_hash, type, amount, to_address, token_mint, contract_address, method_signature, spender_address, approved_amount, parent_id, batch_index, status, tier, queued_at, executed_at, created_at, reserved_amount, error, metadata, network FROM transactions`);
507
+ sqlite.exec('DROP TABLE transactions');
508
+ sqlite.exec('ALTER TABLE transactions_new RENAME TO transactions');
509
+ sqlite.exec('CREATE INDEX idx_transactions_wallet_status ON transactions(wallet_id, status)');
510
+ sqlite.exec('CREATE INDEX idx_transactions_session_id ON transactions(session_id)');
511
+ sqlite.exec('CREATE UNIQUE INDEX idx_transactions_tx_hash ON transactions(tx_hash)');
512
+ sqlite.exec('CREATE INDEX idx_transactions_queued_at ON transactions(queued_at)');
513
+ sqlite.exec('CREATE INDEX idx_transactions_created_at ON transactions(created_at)');
514
+ sqlite.exec('CREATE INDEX idx_transactions_type ON transactions(type)');
515
+ sqlite.exec('CREATE INDEX idx_transactions_contract_address ON transactions(contract_address)');
516
+ sqlite.exec('CREATE INDEX idx_transactions_parent_id ON transactions(parent_id)');
517
+ sqlite.exec('COMMIT');
518
+ }
519
+ catch (err) {
520
+ sqlite.exec('ROLLBACK');
521
+ throw err;
522
+ }
523
+ sqlite.pragma('foreign_keys = ON');
524
+ const fkErrors = sqlite.pragma('foreign_key_check');
525
+ if (fkErrors.length > 0) {
526
+ throw new Error(`FK integrity violation after v9: ${JSON.stringify(fkErrors)}`);
527
+ }
528
+ },
529
+ },
530
+ // v10: Add message column to notification_logs
531
+ {
532
+ version: 10,
533
+ description: 'Add message column to notification_logs',
534
+ up: (sqlite) => {
535
+ sqlite.exec('ALTER TABLE notification_logs ADD COLUMN message TEXT');
536
+ },
537
+ },
538
+ ];
539
+ //# sourceMappingURL=v2-v10.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2-v10.js","sourceRoot":"","sources":["../../../../src/infrastructure/database/migrations/v2-v10.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Database migrations v21 through v30.
3
+ *
4
+ * v21: incoming transaction monitoring tables
5
+ * v22: token_registry.asset_id CAIP-19 backfill
6
+ * v23: DeFi async tracking (bridge_status, bridge_metadata, GAS_WAITING)
7
+ * v24: wallets.wallet_type column
8
+ * v25: defi_positions table
9
+ * v26: Lending policy types CHECK constraint
10
+ * v27: Remove is_default + default_network (v29.3)
11
+ * v28: Migrate api_keys to settings
12
+ * v29: Rename Solana network IDs
13
+ * v30: MATURED position status
14
+ */
15
+ import type { Migration } from '../migrate.js';
16
+ export declare const migrations: Migration[];
17
+ //# sourceMappingURL=v21-v30.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v21-v30.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/database/migrations/v21-v30.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAmB/C,eAAO,MAAM,UAAU,EAAE,SAAS,EAwiBjC,CAAC"}