@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,281 @@
1
+ /**
2
+ * daemon-pipeline.ts - Extracted pipeline re-entry logic from DaemonLifecycle.
3
+ *
4
+ * Contains executeFromStage4(), executeFromStage5(), and handleApprovalApproved()
5
+ * that were previously ~300 lines in daemon.ts.
6
+ * Receives a DaemonState context object to read/write daemon fields.
7
+ */
8
+ import { WAIaaSError, getSingleNetwork, safeJsonParse } from '@waiaas/core';
9
+ import { z } from 'zod';
10
+ import { resolveRpcUrl } from '../infrastructure/adapter-pool.js';
11
+ import { transactions as txTable } from '../infrastructure/database/schema.js';
12
+ import { eq } from 'drizzle-orm';
13
+ // ---------------------------------------------------------------------------
14
+ // Null-object policy engine for stage 5-6 re-entry (policy already evaluated)
15
+ // ---------------------------------------------------------------------------
16
+ const NULL_POLICY_ENGINE = {
17
+ evaluate: async () => ({ allowed: true, tier: 'INSTANT' }),
18
+ };
19
+ /**
20
+ * Re-enter the pipeline at stage4 for a gas-condition-met transaction.
21
+ *
22
+ * Called by the resumePipeline callback in AsyncPollingService when
23
+ * GasConditionTracker returns COMPLETED. Skips stages 1-3 and 3.5
24
+ * (already evaluated). Runs stage5Execute + stage6Confirm.
25
+ *
26
+ * Gas-condition transactions bypass stage4Wait (policy was already evaluated
27
+ * at Stage 3, and the transaction was only waiting for gas price -- no further
28
+ * delay/approval needed).
29
+ *
30
+ * @param state - DaemonState context
31
+ * @param txId - Transaction ID to execute
32
+ * @param walletId - Wallet that owns the transaction
33
+ */
34
+ export async function executeFromStage4(state, txId, walletId) {
35
+ try {
36
+ if (!state._db || !state.adapterPool || !state.keyStore || !state._config) {
37
+ console.warn(`executeFromStage4(${txId}): missing deps, skipping`);
38
+ return;
39
+ }
40
+ // Import stages and schema
41
+ const { stage5Execute, stage6Confirm } = await import('../pipeline/stages.js');
42
+ const { wallets, transactions } = await import('../infrastructure/database/schema.js');
43
+ const { eq } = await import('drizzle-orm');
44
+ // Look up wallet from DB
45
+ const wallet = state._db.select().from(wallets).where(eq(wallets.id, walletId)).get();
46
+ if (!wallet) {
47
+ console.warn(`executeFromStage4(${txId}): wallet ${walletId} not found`);
48
+ return;
49
+ }
50
+ // Look up transaction to get request data
51
+ const tx = state._db.select().from(transactions).where(eq(transactions.id, txId)).get();
52
+ if (!tx) {
53
+ console.warn(`executeFromStage4(${txId}): transaction not found`);
54
+ return;
55
+ }
56
+ // Use network recorded at Stage 1 (NOT re-resolve)
57
+ const resolvedNetwork = tx.network
58
+ ?? getSingleNetwork(wallet.chain, wallet.environment)
59
+ ?? (() => { throw new WAIaaSError('NETWORK_REQUIRED'); })();
60
+ // Resolve adapter from pool using recorded network
61
+ const rpcUrl = resolveRpcUrl(state._config.rpc, wallet.chain, resolvedNetwork);
62
+ const adapter = await state.adapterPool.resolve(wallet.chain, resolvedNetwork, rpcUrl);
63
+ // Restore original request from metadata (#208)
64
+ // DELAY/GAS_WAITING re-entry needs full request to rebuild correct tx type
65
+ const TxMetadataSchema = z.object({ originalRequest: z.record(z.unknown()).optional() }).passthrough();
66
+ const meta = tx.metadata
67
+ ? (() => { const r = safeJsonParse(tx.metadata, TxMetadataSchema); return r.success ? r.data : {}; })()
68
+ : {};
69
+ const request = (meta.originalRequest ?? {
70
+ to: tx.toAddress ?? '',
71
+ amount: tx.amount ?? '0',
72
+ memo: undefined,
73
+ });
74
+ // Construct PipelineContext for stages 5-6
75
+ // Policy already evaluated at Stage 3 before GAS_WAITING entry
76
+ const ctx = {
77
+ db: state._db,
78
+ adapter,
79
+ keyStore: state.keyStore,
80
+ policyEngine: NULL_POLICY_ENGINE, // Not needed for stages 5-6
81
+ masterPassword: state.masterPassword,
82
+ walletId,
83
+ wallet: {
84
+ publicKey: wallet.publicKey,
85
+ chain: wallet.chain,
86
+ environment: wallet.environment,
87
+ // #251: pass AA fields for Smart Account re-entry
88
+ accountType: wallet.accountType,
89
+ aaProvider: wallet.aaProvider,
90
+ aaProviderApiKeyEncrypted: wallet.aaProviderApiKeyEncrypted,
91
+ aaBundlerUrl: wallet.aaBundlerUrl,
92
+ aaPaymasterUrl: wallet.aaPaymasterUrl,
93
+ aaPaymasterPolicyId: wallet.aaPaymasterPolicyId,
94
+ },
95
+ resolvedNetwork,
96
+ resolvedRpcUrl: rpcUrl,
97
+ request,
98
+ txId,
99
+ eventBus: state.eventBus,
100
+ notificationService: state.notificationService ?? undefined,
101
+ };
102
+ // Skip stage4Wait -- gas condition met, proceed directly to execution
103
+ await stage5Execute(ctx);
104
+ await stage6Confirm(ctx);
105
+ }
106
+ catch (error) {
107
+ // Mark as FAILED if stages 5-6 throw
108
+ try {
109
+ if (state._db) {
110
+ const { transactions } = await import('../infrastructure/database/schema.js');
111
+ const { eq } = await import('drizzle-orm');
112
+ const errorMessage = error instanceof Error ? error.message : 'Gas condition pipeline re-entry failed';
113
+ state._db
114
+ .update(transactions)
115
+ .set({ status: 'FAILED', error: errorMessage })
116
+ .where(eq(transactions.id, txId))
117
+ .run();
118
+ }
119
+ }
120
+ catch {
121
+ // Swallow DB update errors in background
122
+ }
123
+ }
124
+ }
125
+ /**
126
+ * Resume pipeline after APPROVAL tier owner sign-off (fix #246).
127
+ *
128
+ * Shared handler for all 4 approval paths:
129
+ * 1. REST API (ApprovalWorkflow.approve)
130
+ * 2. WalletConnect (WcSigningBridge -> ApprovalWorkflow.approve)
131
+ * 3. Signing SDK (SignResponseHandler.handleApprove)
132
+ * 4. Telegram Bot (TelegramBotService.handleApprove)
133
+ *
134
+ * Looks up the transaction's walletId, then delegates to executeFromStage5.
135
+ */
136
+ export function handleApprovalApproved(state, txId) {
137
+ try {
138
+ if (!state._db)
139
+ return;
140
+ const tx = state._db.select().from(txTable).where(eq(txTable.id, txId)).get();
141
+ if (tx) {
142
+ void executeFromStage5(state, txId, tx.walletId);
143
+ }
144
+ }
145
+ catch (error) {
146
+ console.warn(`[handleApprovalApproved] Failed for ${txId}:`, error);
147
+ }
148
+ }
149
+ /**
150
+ * Re-enter the pipeline at stage5 for a delay-expired transaction.
151
+ *
152
+ * Called by the delay-expired BackgroundWorker when processExpired()
153
+ * returns transactions whose cooldown has elapsed.
154
+ * Also called by handleApprovalApproved for APPROVAL tier transactions.
155
+ *
156
+ * @param state - DaemonState context
157
+ * @param txId - Transaction ID to execute
158
+ * @param walletId - Wallet that owns the transaction
159
+ */
160
+ export async function executeFromStage5(state, txId, walletId) {
161
+ try {
162
+ if (!state._db || !state.adapterPool || !state.keyStore || !state._config) {
163
+ console.warn(`executeFromStage5(${txId}): missing deps, skipping`);
164
+ return;
165
+ }
166
+ // Import stages and schema
167
+ const { stage5Execute, stage6Confirm } = await import('../pipeline/stages.js');
168
+ const { wallets, transactions } = await import('../infrastructure/database/schema.js');
169
+ const { eq } = await import('drizzle-orm');
170
+ // Look up wallet from DB
171
+ const wallet = state._db.select().from(wallets).where(eq(wallets.id, walletId)).get();
172
+ if (!wallet) {
173
+ console.warn(`executeFromStage5(${txId}): wallet ${walletId} not found`);
174
+ return;
175
+ }
176
+ // Look up transaction to get request data
177
+ const tx = state._db.select().from(transactions).where(eq(transactions.id, txId)).get();
178
+ if (!tx) {
179
+ console.warn(`executeFromStage5(${txId}): transaction not found`);
180
+ return;
181
+ }
182
+ // Use network recorded at Stage 1 (NOT re-resolve)
183
+ const resolvedNetwork = tx.network
184
+ ?? getSingleNetwork(wallet.chain, wallet.environment)
185
+ ?? (() => { throw new WAIaaSError('NETWORK_REQUIRED'); })();
186
+ // Resolve adapter from pool using recorded network
187
+ const rpcUrl = resolveRpcUrl(state._config.rpc, wallet.chain, resolvedNetwork);
188
+ const adapter = await state.adapterPool.resolve(wallet.chain, resolvedNetwork, rpcUrl);
189
+ // Restore original request from metadata (#208)
190
+ const TxMetadataSchema2 = z.object({ originalRequest: z.record(z.unknown()).optional() }).passthrough();
191
+ const meta = tx.metadata
192
+ ? (() => { const r = safeJsonParse(tx.metadata, TxMetadataSchema2); return r.success ? r.data : {}; })()
193
+ : {};
194
+ let request = (meta.originalRequest ?? {
195
+ to: tx.toAddress ?? '',
196
+ amount: tx.amount ?? '0',
197
+ memo: undefined,
198
+ });
199
+ // Phase 321: Re-encode calldata for EIP-712 approvals (setAgentWallet)
200
+ // The original calldata has a placeholder '0x' signature. On approval,
201
+ // the Owner's real EIP-712 signature is stored in pending_approvals.
202
+ // Re-encode the calldata with the real signature before stage5Execute.
203
+ if (state.sqlite) {
204
+ const approvalRow = state.sqlite.prepare('SELECT approval_type, typed_data_json, owner_signature FROM pending_approvals WHERE tx_id = ?').get(txId);
205
+ if (approvalRow?.approval_type === 'EIP712' && approvalRow.typed_data_json && approvalRow.owner_signature) {
206
+ try {
207
+ const Eip712DataSchema = z.object({ message: z.object({ agentId: z.union([z.string(), z.number()]), newWallet: z.string(), deadline: z.union([z.string(), z.number()]) }) }).passthrough();
208
+ const typedDataResult = safeJsonParse(approvalRow.typed_data_json, Eip712DataSchema);
209
+ if (!typedDataResult.success)
210
+ throw new Error('Invalid typed_data_json');
211
+ const typedData = typedDataResult.data;
212
+ const { encodeFunctionData } = await import('viem');
213
+ const { IDENTITY_REGISTRY_ABI } = await import('@waiaas/actions');
214
+ const reEncodedCalldata = encodeFunctionData({
215
+ abi: IDENTITY_REGISTRY_ABI,
216
+ functionName: 'setAgentWallet',
217
+ args: [
218
+ BigInt(typedData.message.agentId),
219
+ typedData.message.newWallet,
220
+ BigInt(typedData.message.deadline),
221
+ approvalRow.owner_signature,
222
+ ],
223
+ });
224
+ // Replace calldata in the request object
225
+ request = { ...request, calldata: reEncodedCalldata };
226
+ }
227
+ catch (err) {
228
+ console.warn(`[executeFromStage5] EIP-712 calldata re-encoding failed for ${txId}:`, err);
229
+ }
230
+ }
231
+ }
232
+ // Construct PipelineContext for stages 5-6
233
+ const ctx = {
234
+ db: state._db,
235
+ adapter,
236
+ keyStore: state.keyStore,
237
+ policyEngine: NULL_POLICY_ENGINE, // Not needed for stages 5-6
238
+ masterPassword: state.masterPassword,
239
+ walletId,
240
+ wallet: {
241
+ publicKey: wallet.publicKey,
242
+ chain: wallet.chain,
243
+ environment: wallet.environment,
244
+ // #251: pass AA fields for Smart Account re-entry
245
+ accountType: wallet.accountType,
246
+ aaProvider: wallet.aaProvider,
247
+ aaProviderApiKeyEncrypted: wallet.aaProviderApiKeyEncrypted,
248
+ aaBundlerUrl: wallet.aaBundlerUrl,
249
+ aaPaymasterUrl: wallet.aaPaymasterUrl,
250
+ aaPaymasterPolicyId: wallet.aaPaymasterPolicyId,
251
+ },
252
+ resolvedNetwork,
253
+ resolvedRpcUrl: rpcUrl,
254
+ request,
255
+ txId,
256
+ eventBus: state.eventBus,
257
+ notificationService: state.notificationService ?? undefined,
258
+ };
259
+ await stage5Execute(ctx);
260
+ await stage6Confirm(ctx);
261
+ }
262
+ catch (error) {
263
+ // Mark as FAILED if stages 5-6 throw
264
+ try {
265
+ if (state._db) {
266
+ const { transactions } = await import('../infrastructure/database/schema.js');
267
+ const { eq } = await import('drizzle-orm');
268
+ const errorMessage = error instanceof Error ? error.message : 'Pipeline re-entry failed';
269
+ state._db
270
+ .update(transactions)
271
+ .set({ status: 'FAILED', error: errorMessage })
272
+ .where(eq(transactions.id, txId))
273
+ .run();
274
+ }
275
+ }
276
+ catch {
277
+ // Swallow DB update errors in background
278
+ }
279
+ }
280
+ }
281
+ //# sourceMappingURL=daemon-pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-pipeline.js","sourceRoot":"","sources":["../../src/lifecycle/daemon-pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * daemon-shutdown.ts - Extracted 10-step shutdown cascade from DaemonLifecycle.
3
+ *
4
+ * Contains the full shutdown() body that was previously ~180 lines in daemon.ts.
5
+ * Receives a DaemonState context object to read/write daemon fields.
6
+ *
7
+ * @see docs/28-daemon-lifecycle-cli.md
8
+ */
9
+ import type { DaemonState } from './daemon.js';
10
+ /**
11
+ * 10-step graceful shutdown cascade.
12
+ */
13
+ export declare function shutdownDaemon(state: DaemonState, signal: string): Promise<void>;
14
+ //# sourceMappingURL=daemon-shutdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-shutdown.d.ts","sourceRoot":"","sources":["../../src/lifecycle/daemon-shutdown.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmLtF"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * daemon-shutdown.ts - Extracted 10-step shutdown cascade from DaemonLifecycle.
3
+ *
4
+ * Contains the full shutdown() body that was previously ~180 lines in daemon.ts.
5
+ * Receives a DaemonState context object to read/write daemon fields.
6
+ *
7
+ * @see docs/28-daemon-lifecycle-cli.md
8
+ */
9
+ import { unlinkSync } from 'node:fs';
10
+ /**
11
+ * 10-step graceful shutdown cascade.
12
+ */
13
+ export async function shutdownDaemon(state, signal) {
14
+ // Guard against double shutdown
15
+ if (state._isShuttingDown)
16
+ return;
17
+ state._isShuttingDown = true;
18
+ console.log(`Shutdown initiated by ${signal}`);
19
+ // Start force-exit timer (configurable, default 30s)
20
+ const timeout = state._config?.daemon.shutdown_timeout ?? 30;
21
+ state.forceTimer = setTimeout(() => {
22
+ console.error('Force exit: shutdown timeout exceeded');
23
+ process.exit(1);
24
+ }, timeout * 1000);
25
+ state.forceTimer.unref(); // don't prevent exit
26
+ try {
27
+ // Steps 1: Set flag + log (done above)
28
+ // Steps 2-4: HTTP server close
29
+ if (state.httpServer) {
30
+ state.httpServer.close();
31
+ console.log('Steps 2-4: HTTP server closed');
32
+ }
33
+ // Steps 5-6: In-flight signing + pending queue persistence -- not yet implemented
34
+ // Disconnect all chain adapters
35
+ if (state.adapterPool) {
36
+ try {
37
+ await state.adapterPool.disconnectAll();
38
+ console.log('Adapter pool disconnected');
39
+ }
40
+ catch (err) {
41
+ console.warn('Adapter pool disconnect warning:', err);
42
+ }
43
+ state.adapterPool = null;
44
+ }
45
+ // Stop AutoStop engine (before EventBus cleanup)
46
+ if (state.autoStopService) {
47
+ state.autoStopService.stop();
48
+ state.autoStopService = null;
49
+ }
50
+ // Stop PositionTracker (before BalanceMonitor for cleaner ordering)
51
+ if (state.positionTracker) {
52
+ state.positionTracker.stop();
53
+ state.positionTracker = null;
54
+ }
55
+ // Stop DeFiMonitorService
56
+ if (state.defiMonitorService) {
57
+ state.defiMonitorService.stop();
58
+ state.defiMonitorService = null;
59
+ }
60
+ // Stop BalanceMonitorService (before EventBus cleanup)
61
+ if (state.balanceMonitorService) {
62
+ state.balanceMonitorService.stop();
63
+ state.balanceMonitorService = null;
64
+ }
65
+ // Stop TelegramBotService (before EventBus cleanup)
66
+ if (state.telegramBotService) {
67
+ state.telegramBotService.stop();
68
+ state.telegramBotService = null;
69
+ state.telegramBotRef.current = null;
70
+ }
71
+ // Stop ApprovalChannelRouter (shuts down signing channels)
72
+ if (state.approvalChannelRouter) {
73
+ state.approvalChannelRouter.shutdown();
74
+ state.approvalChannelRouter = null;
75
+ }
76
+ // Stop WcSessionService (before EventBus cleanup)
77
+ if (state.wcSessionService) {
78
+ try {
79
+ await state.wcSessionService.shutdown();
80
+ }
81
+ catch (err) {
82
+ console.warn('WcSessionService shutdown warning:', err);
83
+ }
84
+ state.wcSessionService = null;
85
+ state.wcServiceRef.current = null;
86
+ }
87
+ // Stop IncomingTxMonitorService (final flush + destroy subscribers)
88
+ if (state.incomingTxMonitorService) {
89
+ try {
90
+ await state.incomingTxMonitorService.stop();
91
+ }
92
+ catch (err) {
93
+ console.warn('IncomingTxMonitorService shutdown warning:', err);
94
+ }
95
+ state.incomingTxMonitorService = null;
96
+ }
97
+ // Clear AsyncPollingService reference (workers.stopAll() handles the timer)
98
+ state._asyncPollingService = null;
99
+ // WebhookService destroy (before removing EventBus listeners)
100
+ state.webhookService?.destroy();
101
+ state.webhookService = null;
102
+ // Step 6b: Remove all EventBus listeners
103
+ state.eventBus.removeAllListeners();
104
+ // Step 7: Stop background workers
105
+ if (state.workers) {
106
+ await state.workers.stopAll();
107
+ console.log('Step 7: Workers stopped');
108
+ }
109
+ // Step 8: WAL checkpoint(TRUNCATE)
110
+ if (state.sqlite) {
111
+ try {
112
+ state.sqlite.pragma('wal_checkpoint(TRUNCATE)');
113
+ console.log('Step 8: WAL checkpoint complete');
114
+ }
115
+ catch (err) {
116
+ console.warn('Step 8: WAL checkpoint warning:', err);
117
+ }
118
+ }
119
+ // Step 9: Keystore lock (sodium_memzero all guarded buffers)
120
+ if (state.keyStore) {
121
+ state.keyStore.lockAll();
122
+ console.log('Step 9: Keystore locked');
123
+ }
124
+ // Clear master password and hash from memory
125
+ state.masterPassword = '';
126
+ state.masterPasswordHash = '';
127
+ if (state.passwordRef) {
128
+ state.passwordRef.password = '';
129
+ state.passwordRef.hash = '';
130
+ state.passwordRef = null;
131
+ }
132
+ // Step 10: Close DB, unlink PID, release lock
133
+ if (state.sqlite) {
134
+ try {
135
+ state.sqlite.close();
136
+ console.log('Step 10: Database closed');
137
+ }
138
+ catch (err) {
139
+ console.warn('Step 10: DB close warning:', err);
140
+ }
141
+ state.sqlite = null;
142
+ state._db = null;
143
+ }
144
+ // Delete PID file
145
+ if (state.pidPath) {
146
+ try {
147
+ unlinkSync(state.pidPath);
148
+ }
149
+ catch {
150
+ // Ignore if already deleted
151
+ }
152
+ }
153
+ // Release daemon lock
154
+ if (state.releaseLock) {
155
+ try {
156
+ await state.releaseLock();
157
+ }
158
+ catch {
159
+ // Ignore lock release errors during shutdown
160
+ }
161
+ state.releaseLock = null;
162
+ }
163
+ // Cancel force timer
164
+ if (state.forceTimer) {
165
+ clearTimeout(state.forceTimer);
166
+ state.forceTimer = null;
167
+ }
168
+ console.log('Shutdown complete');
169
+ process.exit(0);
170
+ }
171
+ catch (err) {
172
+ console.error('Shutdown error:', err);
173
+ process.exit(1);
174
+ }
175
+ }
176
+ //# sourceMappingURL=daemon-shutdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-shutdown.js","sourceRoot":"","sources":["../../src/lifecycle/daemon-shutdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * daemon-startup.ts - Extracted 6-step startup sequence from DaemonLifecycle.
3
+ *
4
+ * Contains the full _startInternal() body that was previously ~1,650 lines
5
+ * in daemon.ts. Receives a DaemonState context object to read/write daemon fields.
6
+ *
7
+ * @see docs/28-daemon-lifecycle-cli.md
8
+ */
9
+ import type { DaemonState } from './daemon.js';
10
+ /**
11
+ * 6-step startup sequence with per-step timeouts.
12
+ * Receives DaemonState to read/write daemon fields.
13
+ */
14
+ export declare function startDaemon(state: DaemonState, dataDir: string, masterPassword: string): Promise<void>;
15
+ //# sourceMappingURL=daemon-startup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-startup.d.ts","sourceRoot":"","sources":["../../src/lifecycle/daemon-startup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU/C;;;GAGG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAq2C5G"}