@waiaas/daemon 2.0.0-rc.1

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 (480) hide show
  1. package/dist/api/error-hints.d.ts +15 -0
  2. package/dist/api/error-hints.d.ts.map +1 -0
  3. package/dist/api/error-hints.js +71 -0
  4. package/dist/api/error-hints.js.map +1 -0
  5. package/dist/api/index.d.ts +11 -0
  6. package/dist/api/index.d.ts.map +1 -0
  7. package/dist/api/index.js +14 -0
  8. package/dist/api/index.js.map +1 -0
  9. package/dist/api/middleware/address-validation.d.ts +38 -0
  10. package/dist/api/middleware/address-validation.d.ts.map +1 -0
  11. package/dist/api/middleware/address-validation.js +134 -0
  12. package/dist/api/middleware/address-validation.js.map +1 -0
  13. package/dist/api/middleware/csp.d.ts +17 -0
  14. package/dist/api/middleware/csp.d.ts.map +1 -0
  15. package/dist/api/middleware/csp.js +31 -0
  16. package/dist/api/middleware/csp.js.map +1 -0
  17. package/dist/api/middleware/error-handler.d.ts +16 -0
  18. package/dist/api/middleware/error-handler.d.ts.map +1 -0
  19. package/dist/api/middleware/error-handler.js +46 -0
  20. package/dist/api/middleware/error-handler.js.map +1 -0
  21. package/dist/api/middleware/host-guard.d.ts +11 -0
  22. package/dist/api/middleware/host-guard.d.ts.map +1 -0
  23. package/dist/api/middleware/host-guard.js +25 -0
  24. package/dist/api/middleware/host-guard.js.map +1 -0
  25. package/dist/api/middleware/index.d.ts +13 -0
  26. package/dist/api/middleware/index.d.ts.map +1 -0
  27. package/dist/api/middleware/index.js +13 -0
  28. package/dist/api/middleware/index.js.map +1 -0
  29. package/dist/api/middleware/kill-switch-guard.d.ts +19 -0
  30. package/dist/api/middleware/kill-switch-guard.d.ts.map +1 -0
  31. package/dist/api/middleware/kill-switch-guard.js +49 -0
  32. package/dist/api/middleware/kill-switch-guard.js.map +1 -0
  33. package/dist/api/middleware/master-auth.d.ts +15 -0
  34. package/dist/api/middleware/master-auth.d.ts.map +1 -0
  35. package/dist/api/middleware/master-auth.js +35 -0
  36. package/dist/api/middleware/master-auth.js.map +1 -0
  37. package/dist/api/middleware/owner-auth.d.ts +30 -0
  38. package/dist/api/middleware/owner-auth.d.ts.map +1 -0
  39. package/dist/api/middleware/owner-auth.js +133 -0
  40. package/dist/api/middleware/owner-auth.js.map +1 -0
  41. package/dist/api/middleware/request-id.d.ts +10 -0
  42. package/dist/api/middleware/request-id.d.ts.map +1 -0
  43. package/dist/api/middleware/request-id.js +18 -0
  44. package/dist/api/middleware/request-id.js.map +1 -0
  45. package/dist/api/middleware/request-logger.d.ts +9 -0
  46. package/dist/api/middleware/request-logger.d.ts.map +1 -0
  47. package/dist/api/middleware/request-logger.js +18 -0
  48. package/dist/api/middleware/request-logger.js.map +1 -0
  49. package/dist/api/middleware/session-auth.d.ts +21 -0
  50. package/dist/api/middleware/session-auth.d.ts.map +1 -0
  51. package/dist/api/middleware/session-auth.js +51 -0
  52. package/dist/api/middleware/session-auth.js.map +1 -0
  53. package/dist/api/middleware/siwe-verify.d.ts +31 -0
  54. package/dist/api/middleware/siwe-verify.d.ts.map +1 -0
  55. package/dist/api/middleware/siwe-verify.js +55 -0
  56. package/dist/api/middleware/siwe-verify.js.map +1 -0
  57. package/dist/api/routes/actions.d.ts +56 -0
  58. package/dist/api/routes/actions.d.ts.map +1 -0
  59. package/dist/api/routes/actions.js +291 -0
  60. package/dist/api/routes/actions.js.map +1 -0
  61. package/dist/api/routes/admin.d.ts +99 -0
  62. package/dist/api/routes/admin.d.ts.map +1 -0
  63. package/dist/api/routes/admin.js +1304 -0
  64. package/dist/api/routes/admin.js.map +1 -0
  65. package/dist/api/routes/display-currency-helper.d.ts +26 -0
  66. package/dist/api/routes/display-currency-helper.d.ts.map +1 -0
  67. package/dist/api/routes/display-currency-helper.js +47 -0
  68. package/dist/api/routes/display-currency-helper.js.map +1 -0
  69. package/dist/api/routes/health.d.ts +14 -0
  70. package/dist/api/routes/health.d.ts.map +1 -0
  71. package/dist/api/routes/health.js +47 -0
  72. package/dist/api/routes/health.js.map +1 -0
  73. package/dist/api/routes/index.d.ts +15 -0
  74. package/dist/api/routes/index.d.ts.map +1 -0
  75. package/dist/api/routes/index.js +15 -0
  76. package/dist/api/routes/index.js.map +1 -0
  77. package/dist/api/routes/mcp.d.ts +30 -0
  78. package/dist/api/routes/mcp.d.ts.map +1 -0
  79. package/dist/api/routes/mcp.js +156 -0
  80. package/dist/api/routes/mcp.js.map +1 -0
  81. package/dist/api/routes/nonce.d.ts +20 -0
  82. package/dist/api/routes/nonce.d.ts.map +1 -0
  83. package/dist/api/routes/nonce.js +48 -0
  84. package/dist/api/routes/nonce.js.map +1 -0
  85. package/dist/api/routes/openapi-schemas.d.ts +2281 -0
  86. package/dist/api/routes/openapi-schemas.d.ts.map +1 -0
  87. package/dist/api/routes/openapi-schemas.js +770 -0
  88. package/dist/api/routes/openapi-schemas.js.map +1 -0
  89. package/dist/api/routes/policies.d.ts +29 -0
  90. package/dist/api/routes/policies.d.ts.map +1 -0
  91. package/dist/api/routes/policies.js +332 -0
  92. package/dist/api/routes/policies.js.map +1 -0
  93. package/dist/api/routes/sessions.d.ts +35 -0
  94. package/dist/api/routes/sessions.d.ts.map +1 -0
  95. package/dist/api/routes/sessions.js +347 -0
  96. package/dist/api/routes/sessions.js.map +1 -0
  97. package/dist/api/routes/skills.d.ts +9 -0
  98. package/dist/api/routes/skills.d.ts.map +1 -0
  99. package/dist/api/routes/skills.js +59 -0
  100. package/dist/api/routes/skills.js.map +1 -0
  101. package/dist/api/routes/tokens.d.ts +25 -0
  102. package/dist/api/routes/tokens.d.ts.map +1 -0
  103. package/dist/api/routes/tokens.js +161 -0
  104. package/dist/api/routes/tokens.js.map +1 -0
  105. package/dist/api/routes/transactions.d.ts +68 -0
  106. package/dist/api/routes/transactions.d.ts.map +1 -0
  107. package/dist/api/routes/transactions.js +576 -0
  108. package/dist/api/routes/transactions.js.map +1 -0
  109. package/dist/api/routes/utils.d.ts +9 -0
  110. package/dist/api/routes/utils.d.ts.map +1 -0
  111. package/dist/api/routes/utils.js +52 -0
  112. package/dist/api/routes/utils.js.map +1 -0
  113. package/dist/api/routes/wallet.d.ts +36 -0
  114. package/dist/api/routes/wallet.d.ts.map +1 -0
  115. package/dist/api/routes/wallet.js +358 -0
  116. package/dist/api/routes/wallet.js.map +1 -0
  117. package/dist/api/routes/wallets.d.ts +43 -0
  118. package/dist/api/routes/wallets.d.ts.map +1 -0
  119. package/dist/api/routes/wallets.js +630 -0
  120. package/dist/api/routes/wallets.js.map +1 -0
  121. package/dist/api/routes/wc.d.ts +46 -0
  122. package/dist/api/routes/wc.d.ts.map +1 -0
  123. package/dist/api/routes/wc.js +354 -0
  124. package/dist/api/routes/wc.js.map +1 -0
  125. package/dist/api/routes/x402.d.ts +61 -0
  126. package/dist/api/routes/x402.d.ts.map +1 -0
  127. package/dist/api/routes/x402.js +493 -0
  128. package/dist/api/routes/x402.js.map +1 -0
  129. package/dist/api/server.d.ts +81 -0
  130. package/dist/api/server.d.ts.map +1 -0
  131. package/dist/api/server.js +406 -0
  132. package/dist/api/server.js.map +1 -0
  133. package/dist/index.d.ts +35 -0
  134. package/dist/index.d.ts.map +1 -0
  135. package/dist/index.js +43 -0
  136. package/dist/index.js.map +1 -0
  137. package/dist/infrastructure/action/action-provider-registry.d.ts +77 -0
  138. package/dist/infrastructure/action/action-provider-registry.d.ts.map +1 -0
  139. package/dist/infrastructure/action/action-provider-registry.js +239 -0
  140. package/dist/infrastructure/action/action-provider-registry.js.map +1 -0
  141. package/dist/infrastructure/action/api-key-store.d.ts +60 -0
  142. package/dist/infrastructure/action/api-key-store.d.ts.map +1 -0
  143. package/dist/infrastructure/action/api-key-store.js +130 -0
  144. package/dist/infrastructure/action/api-key-store.js.map +1 -0
  145. package/dist/infrastructure/action/index.d.ts +10 -0
  146. package/dist/infrastructure/action/index.d.ts.map +1 -0
  147. package/dist/infrastructure/action/index.js +9 -0
  148. package/dist/infrastructure/action/index.js.map +1 -0
  149. package/dist/infrastructure/adapter-pool.d.ts +50 -0
  150. package/dist/infrastructure/adapter-pool.d.ts.map +1 -0
  151. package/dist/infrastructure/adapter-pool.js +110 -0
  152. package/dist/infrastructure/adapter-pool.js.map +1 -0
  153. package/dist/infrastructure/backup/backup-service.d.ts +53 -0
  154. package/dist/infrastructure/backup/backup-service.d.ts.map +1 -0
  155. package/dist/infrastructure/backup/backup-service.js +158 -0
  156. package/dist/infrastructure/backup/backup-service.js.map +1 -0
  157. package/dist/infrastructure/backup/index.d.ts +2 -0
  158. package/dist/infrastructure/backup/index.d.ts.map +1 -0
  159. package/dist/infrastructure/backup/index.js +2 -0
  160. package/dist/infrastructure/backup/index.js.map +1 -0
  161. package/dist/infrastructure/config/index.d.ts +8 -0
  162. package/dist/infrastructure/config/index.d.ts.map +1 -0
  163. package/dist/infrastructure/config/index.js +7 -0
  164. package/dist/infrastructure/config/index.js.map +1 -0
  165. package/dist/infrastructure/config/loader.d.ts +555 -0
  166. package/dist/infrastructure/config/loader.d.ts.map +1 -0
  167. package/dist/infrastructure/config/loader.js +311 -0
  168. package/dist/infrastructure/config/loader.js.map +1 -0
  169. package/dist/infrastructure/database/checks.d.ts +19 -0
  170. package/dist/infrastructure/database/checks.d.ts.map +1 -0
  171. package/dist/infrastructure/database/checks.js +27 -0
  172. package/dist/infrastructure/database/checks.js.map +1 -0
  173. package/dist/infrastructure/database/compatibility.d.ts +36 -0
  174. package/dist/infrastructure/database/compatibility.d.ts.map +1 -0
  175. package/dist/infrastructure/database/compatibility.js +75 -0
  176. package/dist/infrastructure/database/compatibility.js.map +1 -0
  177. package/dist/infrastructure/database/connection.d.ts +36 -0
  178. package/dist/infrastructure/database/connection.d.ts.map +1 -0
  179. package/dist/infrastructure/database/connection.js +47 -0
  180. package/dist/infrastructure/database/connection.js.map +1 -0
  181. package/dist/infrastructure/database/id.d.ts +17 -0
  182. package/dist/infrastructure/database/id.d.ts.map +1 -0
  183. package/dist/infrastructure/database/id.js +20 -0
  184. package/dist/infrastructure/database/id.js.map +1 -0
  185. package/dist/infrastructure/database/index.d.ts +15 -0
  186. package/dist/infrastructure/database/index.d.ts.map +1 -0
  187. package/dist/infrastructure/database/index.js +12 -0
  188. package/dist/infrastructure/database/index.js.map +1 -0
  189. package/dist/infrastructure/database/migrate.d.ts +76 -0
  190. package/dist/infrastructure/database/migrate.d.ts.map +1 -0
  191. package/dist/infrastructure/database/migrate.js +1214 -0
  192. package/dist/infrastructure/database/migrate.js.map +1 -0
  193. package/dist/infrastructure/database/schema.d.ts +2352 -0
  194. package/dist/infrastructure/database/schema.d.ts.map +1 -0
  195. package/dist/infrastructure/database/schema.js +288 -0
  196. package/dist/infrastructure/database/schema.js.map +1 -0
  197. package/dist/infrastructure/jwt/index.d.ts +2 -0
  198. package/dist/infrastructure/jwt/index.d.ts.map +1 -0
  199. package/dist/infrastructure/jwt/index.js +2 -0
  200. package/dist/infrastructure/jwt/index.js.map +1 -0
  201. package/dist/infrastructure/jwt/jwt-secret-manager.d.ts +58 -0
  202. package/dist/infrastructure/jwt/jwt-secret-manager.d.ts.map +1 -0
  203. package/dist/infrastructure/jwt/jwt-secret-manager.js +222 -0
  204. package/dist/infrastructure/jwt/jwt-secret-manager.js.map +1 -0
  205. package/dist/infrastructure/keystore/crypto.d.ts +62 -0
  206. package/dist/infrastructure/keystore/crypto.d.ts.map +1 -0
  207. package/dist/infrastructure/keystore/crypto.js +89 -0
  208. package/dist/infrastructure/keystore/crypto.js.map +1 -0
  209. package/dist/infrastructure/keystore/index.d.ts +4 -0
  210. package/dist/infrastructure/keystore/index.d.ts.map +1 -0
  211. package/dist/infrastructure/keystore/index.js +5 -0
  212. package/dist/infrastructure/keystore/index.js.map +1 -0
  213. package/dist/infrastructure/keystore/keystore.d.ts +115 -0
  214. package/dist/infrastructure/keystore/keystore.d.ts.map +1 -0
  215. package/dist/infrastructure/keystore/keystore.js +327 -0
  216. package/dist/infrastructure/keystore/keystore.js.map +1 -0
  217. package/dist/infrastructure/keystore/memory.d.ts +45 -0
  218. package/dist/infrastructure/keystore/memory.d.ts.map +1 -0
  219. package/dist/infrastructure/keystore/memory.js +105 -0
  220. package/dist/infrastructure/keystore/memory.js.map +1 -0
  221. package/dist/infrastructure/oracle/coingecko-forex.d.ts +35 -0
  222. package/dist/infrastructure/oracle/coingecko-forex.d.ts.map +1 -0
  223. package/dist/infrastructure/oracle/coingecko-forex.js +69 -0
  224. package/dist/infrastructure/oracle/coingecko-forex.js.map +1 -0
  225. package/dist/infrastructure/oracle/coingecko-oracle.d.ts +73 -0
  226. package/dist/infrastructure/oracle/coingecko-oracle.d.ts.map +1 -0
  227. package/dist/infrastructure/oracle/coingecko-oracle.js +199 -0
  228. package/dist/infrastructure/oracle/coingecko-oracle.js.map +1 -0
  229. package/dist/infrastructure/oracle/coingecko-platform-ids.d.ts +32 -0
  230. package/dist/infrastructure/oracle/coingecko-platform-ids.d.ts.map +1 -0
  231. package/dist/infrastructure/oracle/coingecko-platform-ids.js +30 -0
  232. package/dist/infrastructure/oracle/coingecko-platform-ids.js.map +1 -0
  233. package/dist/infrastructure/oracle/forex-currencies.d.ts +36 -0
  234. package/dist/infrastructure/oracle/forex-currencies.d.ts.map +1 -0
  235. package/dist/infrastructure/oracle/forex-currencies.js +71 -0
  236. package/dist/infrastructure/oracle/forex-currencies.js.map +1 -0
  237. package/dist/infrastructure/oracle/forex-rate-service.d.ts +51 -0
  238. package/dist/infrastructure/oracle/forex-rate-service.d.ts.map +1 -0
  239. package/dist/infrastructure/oracle/forex-rate-service.js +149 -0
  240. package/dist/infrastructure/oracle/forex-rate-service.js.map +1 -0
  241. package/dist/infrastructure/oracle/index.d.ts +18 -0
  242. package/dist/infrastructure/oracle/index.d.ts.map +1 -0
  243. package/dist/infrastructure/oracle/index.js +19 -0
  244. package/dist/infrastructure/oracle/index.js.map +1 -0
  245. package/dist/infrastructure/oracle/oracle-chain.d.ts +101 -0
  246. package/dist/infrastructure/oracle/oracle-chain.d.ts.map +1 -0
  247. package/dist/infrastructure/oracle/oracle-chain.js +163 -0
  248. package/dist/infrastructure/oracle/oracle-chain.js.map +1 -0
  249. package/dist/infrastructure/oracle/oracle-errors.d.ts +42 -0
  250. package/dist/infrastructure/oracle/oracle-errors.d.ts.map +1 -0
  251. package/dist/infrastructure/oracle/oracle-errors.js +53 -0
  252. package/dist/infrastructure/oracle/oracle-errors.js.map +1 -0
  253. package/dist/infrastructure/oracle/price-age.d.ts +38 -0
  254. package/dist/infrastructure/oracle/price-age.d.ts.map +1 -0
  255. package/dist/infrastructure/oracle/price-age.js +44 -0
  256. package/dist/infrastructure/oracle/price-age.js.map +1 -0
  257. package/dist/infrastructure/oracle/price-cache.d.ts +99 -0
  258. package/dist/infrastructure/oracle/price-cache.d.ts.map +1 -0
  259. package/dist/infrastructure/oracle/price-cache.js +173 -0
  260. package/dist/infrastructure/oracle/price-cache.js.map +1 -0
  261. package/dist/infrastructure/oracle/pyth-feed-ids.d.ts +31 -0
  262. package/dist/infrastructure/oracle/pyth-feed-ids.d.ts.map +1 -0
  263. package/dist/infrastructure/oracle/pyth-feed-ids.js +44 -0
  264. package/dist/infrastructure/oracle/pyth-feed-ids.js.map +1 -0
  265. package/dist/infrastructure/oracle/pyth-oracle.d.ts +69 -0
  266. package/dist/infrastructure/oracle/pyth-oracle.d.ts.map +1 -0
  267. package/dist/infrastructure/oracle/pyth-oracle.js +149 -0
  268. package/dist/infrastructure/oracle/pyth-oracle.js.map +1 -0
  269. package/dist/infrastructure/settings/hot-reload.d.ts +71 -0
  270. package/dist/infrastructure/settings/hot-reload.d.ts.map +1 -0
  271. package/dist/infrastructure/settings/hot-reload.js +315 -0
  272. package/dist/infrastructure/settings/hot-reload.js.map +1 -0
  273. package/dist/infrastructure/settings/index.d.ts +13 -0
  274. package/dist/infrastructure/settings/index.d.ts.map +1 -0
  275. package/dist/infrastructure/settings/index.js +10 -0
  276. package/dist/infrastructure/settings/index.js.map +1 -0
  277. package/dist/infrastructure/settings/setting-keys.d.ts +28 -0
  278. package/dist/infrastructure/settings/setting-keys.d.ts.map +1 -0
  279. package/dist/infrastructure/settings/setting-keys.js +105 -0
  280. package/dist/infrastructure/settings/setting-keys.js.map +1 -0
  281. package/dist/infrastructure/settings/settings-crypto.d.ts +39 -0
  282. package/dist/infrastructure/settings/settings-crypto.d.ts.map +1 -0
  283. package/dist/infrastructure/settings/settings-crypto.js +73 -0
  284. package/dist/infrastructure/settings/settings-crypto.js.map +1 -0
  285. package/dist/infrastructure/settings/settings-service.d.ts +82 -0
  286. package/dist/infrastructure/settings/settings-service.d.ts.map +1 -0
  287. package/dist/infrastructure/settings/settings-service.js +267 -0
  288. package/dist/infrastructure/settings/settings-service.js.map +1 -0
  289. package/dist/infrastructure/telegram/index.d.ts +6 -0
  290. package/dist/infrastructure/telegram/index.d.ts.map +1 -0
  291. package/dist/infrastructure/telegram/index.js +5 -0
  292. package/dist/infrastructure/telegram/index.js.map +1 -0
  293. package/dist/infrastructure/telegram/telegram-api.d.ts +35 -0
  294. package/dist/infrastructure/telegram/telegram-api.d.ts.map +1 -0
  295. package/dist/infrastructure/telegram/telegram-api.js +82 -0
  296. package/dist/infrastructure/telegram/telegram-api.js.map +1 -0
  297. package/dist/infrastructure/telegram/telegram-auth.d.ts +57 -0
  298. package/dist/infrastructure/telegram/telegram-auth.d.ts.map +1 -0
  299. package/dist/infrastructure/telegram/telegram-auth.js +88 -0
  300. package/dist/infrastructure/telegram/telegram-auth.js.map +1 -0
  301. package/dist/infrastructure/telegram/telegram-bot-service.d.ts +95 -0
  302. package/dist/infrastructure/telegram/telegram-bot-service.d.ts.map +1 -0
  303. package/dist/infrastructure/telegram/telegram-bot-service.js +564 -0
  304. package/dist/infrastructure/telegram/telegram-bot-service.js.map +1 -0
  305. package/dist/infrastructure/telegram/telegram-keyboard.d.ts +27 -0
  306. package/dist/infrastructure/telegram/telegram-keyboard.d.ts.map +1 -0
  307. package/dist/infrastructure/telegram/telegram-keyboard.js +52 -0
  308. package/dist/infrastructure/telegram/telegram-keyboard.js.map +1 -0
  309. package/dist/infrastructure/telegram/telegram-types.d.ts +43 -0
  310. package/dist/infrastructure/telegram/telegram-types.d.ts.map +1 -0
  311. package/dist/infrastructure/telegram/telegram-types.js +8 -0
  312. package/dist/infrastructure/telegram/telegram-types.js.map +1 -0
  313. package/dist/infrastructure/token-registry/builtin-tokens.d.ts +39 -0
  314. package/dist/infrastructure/token-registry/builtin-tokens.d.ts.map +1 -0
  315. package/dist/infrastructure/token-registry/builtin-tokens.js +135 -0
  316. package/dist/infrastructure/token-registry/builtin-tokens.js.map +1 -0
  317. package/dist/infrastructure/token-registry/index.d.ts +8 -0
  318. package/dist/infrastructure/token-registry/index.d.ts.map +1 -0
  319. package/dist/infrastructure/token-registry/index.js +8 -0
  320. package/dist/infrastructure/token-registry/index.js.map +1 -0
  321. package/dist/infrastructure/token-registry/token-registry-service.d.ts +49 -0
  322. package/dist/infrastructure/token-registry/token-registry-service.d.ts.map +1 -0
  323. package/dist/infrastructure/token-registry/token-registry-service.js +93 -0
  324. package/dist/infrastructure/token-registry/token-registry-service.js.map +1 -0
  325. package/dist/infrastructure/version/index.d.ts +5 -0
  326. package/dist/infrastructure/version/index.d.ts.map +1 -0
  327. package/dist/infrastructure/version/index.js +5 -0
  328. package/dist/infrastructure/version/index.js.map +1 -0
  329. package/dist/infrastructure/version/version-check-service.d.ts +35 -0
  330. package/dist/infrastructure/version/version-check-service.d.ts.map +1 -0
  331. package/dist/infrastructure/version/version-check-service.js +92 -0
  332. package/dist/infrastructure/version/version-check-service.js.map +1 -0
  333. package/dist/lifecycle/daemon.d.ts +103 -0
  334. package/dist/lifecycle/daemon.d.ts.map +1 -0
  335. package/dist/lifecycle/daemon.js +934 -0
  336. package/dist/lifecycle/daemon.js.map +1 -0
  337. package/dist/lifecycle/index.d.ts +9 -0
  338. package/dist/lifecycle/index.d.ts.map +1 -0
  339. package/dist/lifecycle/index.js +9 -0
  340. package/dist/lifecycle/index.js.map +1 -0
  341. package/dist/lifecycle/signal-handler.d.ts +18 -0
  342. package/dist/lifecycle/signal-handler.d.ts.map +1 -0
  343. package/dist/lifecycle/signal-handler.js +37 -0
  344. package/dist/lifecycle/signal-handler.js.map +1 -0
  345. package/dist/lifecycle/workers.d.ts +46 -0
  346. package/dist/lifecycle/workers.d.ts.map +1 -0
  347. package/dist/lifecycle/workers.js +101 -0
  348. package/dist/lifecycle/workers.js.map +1 -0
  349. package/dist/notifications/channels/discord.d.ts +10 -0
  350. package/dist/notifications/channels/discord.d.ts.map +1 -0
  351. package/dist/notifications/channels/discord.js +54 -0
  352. package/dist/notifications/channels/discord.js.map +1 -0
  353. package/dist/notifications/channels/ntfy.d.ts +13 -0
  354. package/dist/notifications/channels/ntfy.d.ts.map +1 -0
  355. package/dist/notifications/channels/ntfy.js +58 -0
  356. package/dist/notifications/channels/ntfy.js.map +1 -0
  357. package/dist/notifications/channels/slack.d.ts +10 -0
  358. package/dist/notifications/channels/slack.d.ts.map +1 -0
  359. package/dist/notifications/channels/slack.js +55 -0
  360. package/dist/notifications/channels/slack.js.map +1 -0
  361. package/dist/notifications/channels/telegram.d.ts +10 -0
  362. package/dist/notifications/channels/telegram.d.ts.map +1 -0
  363. package/dist/notifications/channels/telegram.js +40 -0
  364. package/dist/notifications/channels/telegram.js.map +1 -0
  365. package/dist/notifications/index.d.ts +9 -0
  366. package/dist/notifications/index.d.ts.map +1 -0
  367. package/dist/notifications/index.js +7 -0
  368. package/dist/notifications/index.js.map +1 -0
  369. package/dist/notifications/notification-service.d.ts +75 -0
  370. package/dist/notifications/notification-service.d.ts.map +1 -0
  371. package/dist/notifications/notification-service.js +213 -0
  372. package/dist/notifications/notification-service.js.map +1 -0
  373. package/dist/notifications/templates/message-templates.d.ts +12 -0
  374. package/dist/notifications/templates/message-templates.d.ts.map +1 -0
  375. package/dist/notifications/templates/message-templates.js +22 -0
  376. package/dist/notifications/templates/message-templates.js.map +1 -0
  377. package/dist/pipeline/database-policy-engine.d.ts +286 -0
  378. package/dist/pipeline/database-policy-engine.d.ts.map +1 -0
  379. package/dist/pipeline/database-policy-engine.js +992 -0
  380. package/dist/pipeline/database-policy-engine.js.map +1 -0
  381. package/dist/pipeline/default-policy-engine.d.ts +26 -0
  382. package/dist/pipeline/default-policy-engine.d.ts.map +1 -0
  383. package/dist/pipeline/default-policy-engine.js +25 -0
  384. package/dist/pipeline/default-policy-engine.js.map +1 -0
  385. package/dist/pipeline/index.d.ts +9 -0
  386. package/dist/pipeline/index.d.ts.map +1 -0
  387. package/dist/pipeline/index.js +9 -0
  388. package/dist/pipeline/index.js.map +1 -0
  389. package/dist/pipeline/network-resolver.d.ts +22 -0
  390. package/dist/pipeline/network-resolver.d.ts.map +1 -0
  391. package/dist/pipeline/network-resolver.js +32 -0
  392. package/dist/pipeline/network-resolver.js.map +1 -0
  393. package/dist/pipeline/pipeline.d.ts +72 -0
  394. package/dist/pipeline/pipeline.d.ts.map +1 -0
  395. package/dist/pipeline/pipeline.js +87 -0
  396. package/dist/pipeline/pipeline.js.map +1 -0
  397. package/dist/pipeline/resolve-effective-amount-usd.d.ts +41 -0
  398. package/dist/pipeline/resolve-effective-amount-usd.d.ts.map +1 -0
  399. package/dist/pipeline/resolve-effective-amount-usd.js +208 -0
  400. package/dist/pipeline/resolve-effective-amount-usd.js.map +1 -0
  401. package/dist/pipeline/sign-only.d.ts +99 -0
  402. package/dist/pipeline/sign-only.d.ts.map +1 -0
  403. package/dist/pipeline/sign-only.js +267 -0
  404. package/dist/pipeline/sign-only.js.map +1 -0
  405. package/dist/pipeline/sleep.d.ts +6 -0
  406. package/dist/pipeline/sleep.d.ts.map +1 -0
  407. package/dist/pipeline/sleep.js +8 -0
  408. package/dist/pipeline/sleep.js.map +1 -0
  409. package/dist/pipeline/stages.d.ts +82 -0
  410. package/dist/pipeline/stages.d.ts.map +1 -0
  411. package/dist/pipeline/stages.js +784 -0
  412. package/dist/pipeline/stages.js.map +1 -0
  413. package/dist/services/autostop-rules.d.ts +79 -0
  414. package/dist/services/autostop-rules.d.ts.map +1 -0
  415. package/dist/services/autostop-rules.js +174 -0
  416. package/dist/services/autostop-rules.js.map +1 -0
  417. package/dist/services/autostop-service.d.ts +82 -0
  418. package/dist/services/autostop-service.d.ts.map +1 -0
  419. package/dist/services/autostop-service.js +223 -0
  420. package/dist/services/autostop-service.js.map +1 -0
  421. package/dist/services/kill-switch-service.d.ts +118 -0
  422. package/dist/services/kill-switch-service.d.ts.map +1 -0
  423. package/dist/services/kill-switch-service.js +291 -0
  424. package/dist/services/kill-switch-service.js.map +1 -0
  425. package/dist/services/monitoring/balance-monitor-service.d.ts +65 -0
  426. package/dist/services/monitoring/balance-monitor-service.d.ts.map +1 -0
  427. package/dist/services/monitoring/balance-monitor-service.js +207 -0
  428. package/dist/services/monitoring/balance-monitor-service.js.map +1 -0
  429. package/dist/services/wc-session-service.d.ts +123 -0
  430. package/dist/services/wc-session-service.d.ts.map +1 -0
  431. package/dist/services/wc-session-service.js +363 -0
  432. package/dist/services/wc-session-service.js.map +1 -0
  433. package/dist/services/wc-signing-bridge.d.ts +60 -0
  434. package/dist/services/wc-signing-bridge.d.ts.map +1 -0
  435. package/dist/services/wc-signing-bridge.js +334 -0
  436. package/dist/services/wc-signing-bridge.js.map +1 -0
  437. package/dist/services/wc-storage.d.ts +32 -0
  438. package/dist/services/wc-storage.d.ts.map +1 -0
  439. package/dist/services/wc-storage.js +64 -0
  440. package/dist/services/wc-storage.js.map +1 -0
  441. package/dist/services/x402/payment-signer.d.ts +88 -0
  442. package/dist/services/x402/payment-signer.d.ts.map +1 -0
  443. package/dist/services/x402/payment-signer.js +311 -0
  444. package/dist/services/x402/payment-signer.js.map +1 -0
  445. package/dist/services/x402/ssrf-guard.d.ts +27 -0
  446. package/dist/services/x402/ssrf-guard.d.ts.map +1 -0
  447. package/dist/services/x402/ssrf-guard.js +236 -0
  448. package/dist/services/x402/ssrf-guard.js.map +1 -0
  449. package/dist/services/x402/x402-domain-policy.d.ts +50 -0
  450. package/dist/services/x402/x402-domain-policy.d.ts.map +1 -0
  451. package/dist/services/x402/x402-domain-policy.js +78 -0
  452. package/dist/services/x402/x402-domain-policy.js.map +1 -0
  453. package/dist/services/x402/x402-handler.d.ts +71 -0
  454. package/dist/services/x402/x402-handler.d.ts.map +1 -0
  455. package/dist/services/x402/x402-handler.js +195 -0
  456. package/dist/services/x402/x402-handler.js.map +1 -0
  457. package/dist/services/x402/x402-usd-resolver.d.ts +26 -0
  458. package/dist/services/x402/x402-usd-resolver.d.ts.map +1 -0
  459. package/dist/services/x402/x402-usd-resolver.js +79 -0
  460. package/dist/services/x402/x402-usd-resolver.js.map +1 -0
  461. package/dist/workflow/approval-workflow.d.ts +103 -0
  462. package/dist/workflow/approval-workflow.d.ts.map +1 -0
  463. package/dist/workflow/approval-workflow.js +202 -0
  464. package/dist/workflow/approval-workflow.js.map +1 -0
  465. package/dist/workflow/delay-queue.d.ts +78 -0
  466. package/dist/workflow/delay-queue.d.ts.map +1 -0
  467. package/dist/workflow/delay-queue.js +174 -0
  468. package/dist/workflow/delay-queue.js.map +1 -0
  469. package/dist/workflow/index.d.ts +11 -0
  470. package/dist/workflow/index.d.ts.map +1 -0
  471. package/dist/workflow/index.js +9 -0
  472. package/dist/workflow/index.js.map +1 -0
  473. package/dist/workflow/owner-state.d.ts +97 -0
  474. package/dist/workflow/owner-state.d.ts.map +1 -0
  475. package/dist/workflow/owner-state.js +168 -0
  476. package/dist/workflow/owner-state.js.map +1 -0
  477. package/package.json +71 -0
  478. package/public/admin/assets/index-BPoUSH8W.css +1 -0
  479. package/public/admin/assets/index-CDi1qoXB.js +1 -0
  480. package/public/admin/index.html +13 -0
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Inline keyboard builder utilities for Telegram Bot.
3
+ *
4
+ * Provides reusable keyboard construction for:
5
+ * - Kill Switch confirm/cancel (Yes/No)
6
+ * - Wallet selection (dynamic wallet list)
7
+ * - Transaction approval/rejection (Approve/Reject per tx)
8
+ *
9
+ * Callback data prefixes:
10
+ * - killswitch:confirm / killswitch:cancel
11
+ * - newsession:{walletId}
12
+ * - approve:{txId} / reject:{txId}
13
+ *
14
+ * @see packages/daemon/src/infrastructure/telegram/telegram-bot-service.ts
15
+ */
16
+ /** Kill Switch confirmation keyboard (Yes/No buttons). */
17
+ export function buildConfirmKeyboard(msgs) {
18
+ return {
19
+ inline_keyboard: [
20
+ [
21
+ { text: msgs.keyboard_yes, callback_data: 'killswitch:confirm' },
22
+ { text: msgs.keyboard_no, callback_data: 'killswitch:cancel' },
23
+ ],
24
+ ],
25
+ };
26
+ }
27
+ /** Wallet selection keyboard (one button per wallet). */
28
+ export function buildWalletSelectKeyboard(wallets) {
29
+ return {
30
+ inline_keyboard: wallets.map((w) => [
31
+ { text: w.name, callback_data: `newsession:${w.id}` },
32
+ ]),
33
+ };
34
+ }
35
+ /** Transaction approval/rejection keyboard (Approve + Reject buttons). */
36
+ export function buildApprovalKeyboard(txId, msgs) {
37
+ return {
38
+ inline_keyboard: [
39
+ [
40
+ {
41
+ text: `${msgs.keyboard_approve} ${txId.slice(0, 8)}`,
42
+ callback_data: `approve:${txId}`,
43
+ },
44
+ {
45
+ text: `${msgs.keyboard_reject} ${txId.slice(0, 8)}`,
46
+ callback_data: `reject:${txId}`,
47
+ },
48
+ ],
49
+ ],
50
+ };
51
+ }
52
+ //# sourceMappingURL=telegram-keyboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-keyboard.js","sourceRoot":"","sources":["../../../src/infrastructure/telegram/telegram-keyboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,0DAA0D;AAC1D,MAAM,UAAU,oBAAoB,CAClC,IAA0B;IAE1B,OAAO;QACL,eAAe,EAAE;YACf;gBACE,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE;gBAChE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE;aAC/D;SACF;KACF,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,yBAAyB,CACvC,OAA4C;IAE5C,OAAO;QACL,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAClC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE;SACtD,CAAC;KACH,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,IAA0B;IAE1B,OAAO;QACL,eAAe,EAAE;YACf;gBACE;oBACE,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;oBACpD,aAAa,EAAE,WAAW,IAAI,EAAE;iBACjC;gBACD;oBACE,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;oBACnD,aAAa,EAAE,UAAU,IAAI,EAAE;iBAChC;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Telegram Bot API type definitions (internal interfaces, no Zod).
3
+ *
4
+ * Used by TelegramApi and TelegramBotService for request/response typing.
5
+ * Only the subset of Telegram API types needed for the Bot service.
6
+ */
7
+ export interface TelegramUpdate {
8
+ update_id: number;
9
+ message?: TelegramMessage;
10
+ callback_query?: TelegramCallbackQuery;
11
+ }
12
+ export interface TelegramMessage {
13
+ message_id: number;
14
+ from?: TelegramUser;
15
+ chat: TelegramChat;
16
+ text?: string;
17
+ date: number;
18
+ }
19
+ export interface TelegramUser {
20
+ id: number;
21
+ is_bot: boolean;
22
+ first_name: string;
23
+ username?: string;
24
+ }
25
+ export interface TelegramChat {
26
+ id: number;
27
+ type: string;
28
+ }
29
+ export interface TelegramCallbackQuery {
30
+ id: string;
31
+ from: TelegramUser;
32
+ message?: TelegramMessage;
33
+ data?: string;
34
+ }
35
+ export interface TelegramInlineKeyboardButton {
36
+ text: string;
37
+ callback_data?: string;
38
+ }
39
+ export interface TelegramInlineKeyboardMarkup {
40
+ inline_keyboard: TelegramInlineKeyboardButton[][];
41
+ }
42
+ export type TelegramUserRole = 'PENDING' | 'ADMIN' | 'READONLY';
43
+ //# sourceMappingURL=telegram-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-types.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/telegram/telegram-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,eAAe,EAAE,4BAA4B,EAAE,EAAE,CAAC;CACnD;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Telegram Bot API type definitions (internal interfaces, no Zod).
3
+ *
4
+ * Used by TelegramApi and TelegramBotService for request/response typing.
5
+ * Only the subset of Telegram API types needed for the Bot service.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=telegram-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-types.js","sourceRoot":"","sources":["../../../src/infrastructure/telegram/telegram-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Built-in ERC-20 token data for EVM networks (mainnet + testnet).
3
+ *
4
+ * Provides well-known token addresses (USDC, USDT, WETH, DAI, LINK, etc.)
5
+ * for 5 EVM mainnet networks and 5 testnet networks.
6
+ *
7
+ * Testnet token sources:
8
+ * - Circle official (USDC) — https://faucet.circle.com/
9
+ * - Chainlink official (LINK) — https://faucets.chain.link/
10
+ * - Aave TestnetMintableERC20 (USDT, DAI, WBTC, AAVE, GHO, EURS, cbETH)
11
+ * - Canonical wrapped tokens (WETH, WPOL)
12
+ *
13
+ * All addresses use EIP-55 checksum format.
14
+ *
15
+ * @see docs/56-spl-erc20-spec.md
16
+ */
17
+ export interface TokenEntry {
18
+ /** EIP-55 checksum address */
19
+ address: string;
20
+ /** Token ticker symbol (e.g. "USDC") */
21
+ symbol: string;
22
+ /** Full token name (e.g. "USD Coin") */
23
+ name: string;
24
+ /** Token decimals (e.g. 6 for USDC, 18 for WETH) */
25
+ decimals: number;
26
+ }
27
+ /**
28
+ * Built-in ERC-20 tokens keyed by EvmNetworkType string.
29
+ *
30
+ * - Mainnet networks: curated token lists (USDC, USDT, WETH, DAI + chain-native wrapped).
31
+ * - Testnet networks: verified faucet-available tokens (Circle USDC, Chainlink LINK, Aave tokens).
32
+ */
33
+ export declare const BUILTIN_TOKENS: Record<string, TokenEntry[]>;
34
+ /**
35
+ * Get built-in tokens for a given network.
36
+ * Returns the token array for the network, or empty array if not found.
37
+ */
38
+ export declare function getBuiltinTokens(network: string): TokenEntry[];
39
+ //# sourceMappingURL=builtin-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-tokens.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/token-registry/builtin-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAiHvD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAE9D"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Built-in ERC-20 token data for EVM networks (mainnet + testnet).
3
+ *
4
+ * Provides well-known token addresses (USDC, USDT, WETH, DAI, LINK, etc.)
5
+ * for 5 EVM mainnet networks and 5 testnet networks.
6
+ *
7
+ * Testnet token sources:
8
+ * - Circle official (USDC) — https://faucet.circle.com/
9
+ * - Chainlink official (LINK) — https://faucets.chain.link/
10
+ * - Aave TestnetMintableERC20 (USDT, DAI, WBTC, AAVE, GHO, EURS, cbETH)
11
+ * - Canonical wrapped tokens (WETH, WPOL)
12
+ *
13
+ * All addresses use EIP-55 checksum format.
14
+ *
15
+ * @see docs/56-spl-erc20-spec.md
16
+ */
17
+ /**
18
+ * Built-in ERC-20 tokens keyed by EvmNetworkType string.
19
+ *
20
+ * - Mainnet networks: curated token lists (USDC, USDT, WETH, DAI + chain-native wrapped).
21
+ * - Testnet networks: verified faucet-available tokens (Circle USDC, Chainlink LINK, Aave tokens).
22
+ */
23
+ export const BUILTIN_TOKENS = {
24
+ // ---------------------------------------------------------------------------
25
+ // Ethereum Mainnet (6 tokens)
26
+ // ---------------------------------------------------------------------------
27
+ 'ethereum-mainnet': [
28
+ { address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
29
+ { address: '0xdAC17F958D2ee523a2206206994597C13D831ec7', symbol: 'USDT', name: 'Tether USD', decimals: 6 },
30
+ { address: '0xC02aaA39b223FE8D0A0e5c4F27eAD9083C756Cc2', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
31
+ { address: '0x6B175474E89094C44Da98b954EedeAC495271d0F', symbol: 'DAI', name: 'Dai Stablecoin', decimals: 18 },
32
+ { address: '0x514910771AF9Ca656af840dff83E8264EcF986CA', symbol: 'LINK', name: 'Chainlink', decimals: 18 },
33
+ { address: '0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', symbol: 'UNI', name: 'Uniswap', decimals: 18 },
34
+ ],
35
+ // ---------------------------------------------------------------------------
36
+ // Polygon Mainnet (5 tokens)
37
+ // ---------------------------------------------------------------------------
38
+ 'polygon-mainnet': [
39
+ { address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
40
+ { address: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F', symbol: 'USDT', name: 'Tether USD', decimals: 6 },
41
+ { address: '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
42
+ { address: '0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063', symbol: 'DAI', name: 'Dai Stablecoin', decimals: 18 },
43
+ { address: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', symbol: 'WMATIC', name: 'Wrapped Matic', decimals: 18 },
44
+ ],
45
+ // ---------------------------------------------------------------------------
46
+ // Arbitrum Mainnet (5 tokens)
47
+ // ---------------------------------------------------------------------------
48
+ 'arbitrum-mainnet': [
49
+ { address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
50
+ { address: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9', symbol: 'USDT', name: 'Tether USD', decimals: 6 },
51
+ { address: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
52
+ { address: '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1', symbol: 'DAI', name: 'Dai Stablecoin', decimals: 18 },
53
+ { address: '0x912CE59144191C1204E64559FE8253a0e49E6548', symbol: 'ARB', name: 'Arbitrum', decimals: 18 },
54
+ ],
55
+ // ---------------------------------------------------------------------------
56
+ // Optimism Mainnet (5 tokens)
57
+ // ---------------------------------------------------------------------------
58
+ 'optimism-mainnet': [
59
+ { address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
60
+ { address: '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58', symbol: 'USDT', name: 'Tether USD', decimals: 6 },
61
+ { address: '0x4200000000000000000000000000000000000006', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
62
+ { address: '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1', symbol: 'DAI', name: 'Dai Stablecoin', decimals: 18 },
63
+ { address: '0x4200000000000000000000000000000000000042', symbol: 'OP', name: 'Optimism', decimals: 18 },
64
+ ],
65
+ // ---------------------------------------------------------------------------
66
+ // Base Mainnet (3 tokens)
67
+ // ---------------------------------------------------------------------------
68
+ 'base-mainnet': [
69
+ { address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
70
+ { address: '0x4200000000000000000000000000000000000006', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
71
+ { address: '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb', symbol: 'DAI', name: 'Dai Stablecoin', decimals: 18 },
72
+ ],
73
+ // ---------------------------------------------------------------------------
74
+ // Ethereum Sepolia (10 tokens)
75
+ // ---------------------------------------------------------------------------
76
+ 'ethereum-sepolia': [
77
+ { address: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
78
+ { address: '0xaA8E23Fb1079EA71e0a56F48a2aA51851D8433D0', symbol: 'USDT', name: 'Tether USD', decimals: 6 },
79
+ { address: '0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
80
+ { address: '0xFF34B3d4Aee8ddCd6F9AFFFB6Fe49bD371b8a357', symbol: 'DAI', name: 'Dai Stablecoin', decimals: 18 },
81
+ { address: '0x779877A7B0D9E8603169DdbD7836e478b4624789', symbol: 'LINK', name: 'Chainlink', decimals: 18 },
82
+ { address: '0x29f2D40B0605204364af54EC677bD022dA425d03', symbol: 'WBTC', name: 'Wrapped Bitcoin', decimals: 8 },
83
+ { address: '0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', symbol: 'UNI', name: 'Uniswap', decimals: 18 },
84
+ { address: '0x88541670E55cC00bEEFD87eB59EDd1b7C511AC9a', symbol: 'AAVE', name: 'Aave Token', decimals: 18 },
85
+ { address: '0xc4bF5CbDaBE595361438F8c6a187bDc330539c60', symbol: 'GHO', name: 'Gho Token', decimals: 18 },
86
+ { address: '0x6d906e526a4e2Ca02097BA9d0caA3c382F52278E', symbol: 'EURS', name: 'EURS Stablecoin', decimals: 2 },
87
+ ],
88
+ // ---------------------------------------------------------------------------
89
+ // Polygon Amoy (7 tokens)
90
+ // ---------------------------------------------------------------------------
91
+ 'polygon-amoy': [
92
+ { address: '0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
93
+ { address: '0x1fdE0eCc619726f4cD597887C9F3b4c8740e19e2', symbol: 'USDT', name: 'Tether USD', decimals: 6 },
94
+ { address: '0x52eF3d68BaB452a294342DC3e5f464d7f610f72E', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
95
+ { address: '0xc8c0Cf9436F4862a8F60Ce680Ca5a9f0f99b5ded', symbol: 'DAI', name: 'Dai Stablecoin', decimals: 18 },
96
+ { address: '0x0Fd9e8d3aF1aaee056EB9e802c3A762a667b1904', symbol: 'LINK', name: 'Chainlink', decimals: 18 },
97
+ { address: '0x360ad4f9a9A8EFe9A8DCB5f461c4Cc1047E1Dcf9', symbol: 'WPOL', name: 'Wrapped POL', decimals: 18 },
98
+ { address: '0x1558c6FadDe1bEaf0f6628BDd1DFf3461185eA24', symbol: 'AAVE', name: 'Aave Token', decimals: 18 },
99
+ ],
100
+ // ---------------------------------------------------------------------------
101
+ // Arbitrum Sepolia (3 tokens)
102
+ // ---------------------------------------------------------------------------
103
+ 'arbitrum-sepolia': [
104
+ { address: '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
105
+ { address: '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
106
+ { address: '0xb1D4538B4571d411F07960EF2838Ce337FE1E80E', symbol: 'LINK', name: 'Chainlink', decimals: 18 },
107
+ ],
108
+ // ---------------------------------------------------------------------------
109
+ // Optimism Sepolia (3 tokens)
110
+ // ---------------------------------------------------------------------------
111
+ 'optimism-sepolia': [
112
+ { address: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
113
+ { address: '0x4200000000000000000000000000000000000006', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
114
+ { address: '0xE4aB69C077896252FAFBD49EFD26B5D171A32410', symbol: 'LINK', name: 'Chainlink', decimals: 18 },
115
+ ],
116
+ // ---------------------------------------------------------------------------
117
+ // Base Sepolia (6 tokens)
118
+ // ---------------------------------------------------------------------------
119
+ 'base-sepolia': [
120
+ { address: '0x036CbD53842c5426634e7929541eC2318f3dCF7e', symbol: 'USDC', name: 'USD Coin', decimals: 6 },
121
+ { address: '0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a', symbol: 'USDT', name: 'Tether USD', decimals: 6 },
122
+ { address: '0x4200000000000000000000000000000000000006', symbol: 'WETH', name: 'Wrapped Ether', decimals: 18 },
123
+ { address: '0x54114591963CF60EF3aA63bEfD6eC263D98145a4', symbol: 'WBTC', name: 'Wrapped Bitcoin', decimals: 8 },
124
+ { address: '0xE4aB69C077896252FAFBD49EFD26B5D171A32410', symbol: 'LINK', name: 'Chainlink', decimals: 18 },
125
+ { address: '0xD171b9694f7A2597Ed006D41f7509aaD4B485c4B', symbol: 'cbETH', name: 'Coinbase Wrapped Staked ETH', decimals: 18 },
126
+ ],
127
+ };
128
+ /**
129
+ * Get built-in tokens for a given network.
130
+ * Returns the token array for the network, or empty array if not found.
131
+ */
132
+ export function getBuiltinTokens(network) {
133
+ return BUILTIN_TOKENS[network] ?? [];
134
+ }
135
+ //# sourceMappingURL=builtin-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-tokens.js","sourceRoot":"","sources":["../../../src/infrastructure/token-registry/builtin-tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Token registry module barrel export.
3
+ *
4
+ * Re-exports built-in token data, service class, and types.
5
+ */
6
+ export { TokenRegistryService, type RegistryToken } from './token-registry-service.js';
7
+ export { getBuiltinTokens, BUILTIN_TOKENS, type TokenEntry } from './builtin-tokens.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/token-registry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Token registry module barrel export.
3
+ *
4
+ * Re-exports built-in token data, service class, and types.
5
+ */
6
+ export { TokenRegistryService } from './token-registry-service.js';
7
+ export { getBuiltinTokens, BUILTIN_TOKENS } from './builtin-tokens.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/token-registry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAsB,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAmB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Token registry service for managing ERC-20 tokens per EVM network.
3
+ *
4
+ * Merges built-in token data (hardcoded) with custom tokens (DB-stored).
5
+ * Custom tokens with the same address as a built-in token override the built-in entry.
6
+ *
7
+ * @see docs/56-spl-erc20-spec.md
8
+ */
9
+ import type { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
10
+ import type * as schema from '../database/schema.js';
11
+ import { type TokenEntry } from './builtin-tokens.js';
12
+ export interface RegistryToken extends TokenEntry {
13
+ source: 'builtin' | 'custom';
14
+ }
15
+ export declare class TokenRegistryService {
16
+ private readonly db;
17
+ constructor(db: BetterSQLite3Database<typeof schema>);
18
+ /**
19
+ * Get all tokens for a network: built-in + custom merged.
20
+ * Custom tokens with the same address as a built-in token override the built-in entry.
21
+ * Returns tokens sorted by symbol alphabetically.
22
+ */
23
+ getTokensForNetwork(network: string): Promise<RegistryToken[]>;
24
+ /**
25
+ * Add a custom token to the registry.
26
+ * If a token with the same network+address exists, throws (UNIQUE constraint).
27
+ * Address is stored as-is (caller should provide checksum).
28
+ */
29
+ addCustomToken(network: string, token: TokenEntry): Promise<{
30
+ id: string;
31
+ }>;
32
+ /**
33
+ * Remove a custom token by network + address.
34
+ * Only custom tokens can be removed. Built-in tokens cannot be removed.
35
+ * Returns true if a row was deleted, false if not found.
36
+ */
37
+ removeCustomToken(network: string, address: string): Promise<boolean>;
38
+ /**
39
+ * Get token list formatted for EvmAdapter.setAllowedTokens().
40
+ * Returns all tokens (builtin + custom) for the given network.
41
+ */
42
+ getAdapterTokenList(network: string): Promise<Array<{
43
+ address: string;
44
+ symbol?: string;
45
+ name?: string;
46
+ decimals?: number;
47
+ }>>;
48
+ }
49
+ //# sourceMappingURL=token-registry-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-registry-service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/token-registry/token-registry-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGxE,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC9B;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC;IAErE;;;;OAIG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA+BpE;;;;OAIG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAkB1B;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc3E;;;OAGG;IACG,mBAAmB,CACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAS1F"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Token registry service for managing ERC-20 tokens per EVM network.
3
+ *
4
+ * Merges built-in token data (hardcoded) with custom tokens (DB-stored).
5
+ * Custom tokens with the same address as a built-in token override the built-in entry.
6
+ *
7
+ * @see docs/56-spl-erc20-spec.md
8
+ */
9
+ import { eq, and } from 'drizzle-orm';
10
+ import { tokenRegistry } from '../database/schema.js';
11
+ import { getBuiltinTokens } from './builtin-tokens.js';
12
+ import { generateId } from '../database/id.js';
13
+ export class TokenRegistryService {
14
+ db;
15
+ constructor(db) {
16
+ this.db = db;
17
+ }
18
+ /**
19
+ * Get all tokens for a network: built-in + custom merged.
20
+ * Custom tokens with the same address as a built-in token override the built-in entry.
21
+ * Returns tokens sorted by symbol alphabetically.
22
+ */
23
+ async getTokensForNetwork(network) {
24
+ // 1. Get built-in tokens
25
+ const builtins = getBuiltinTokens(network);
26
+ // 2. Get custom tokens from DB
27
+ const customRows = await this.db
28
+ .select()
29
+ .from(tokenRegistry)
30
+ .where(eq(tokenRegistry.network, network));
31
+ // 3. Merge: custom overrides built-in for same address (case-insensitive)
32
+ const merged = new Map();
33
+ for (const t of builtins) {
34
+ merged.set(t.address.toLowerCase(), { ...t, source: 'builtin' });
35
+ }
36
+ for (const row of customRows) {
37
+ merged.set(row.address.toLowerCase(), {
38
+ address: row.address,
39
+ symbol: row.symbol,
40
+ name: row.name,
41
+ decimals: row.decimals,
42
+ source: row.source,
43
+ });
44
+ }
45
+ // 4. Sort by symbol alphabetically
46
+ return Array.from(merged.values()).sort((a, b) => a.symbol.localeCompare(b.symbol));
47
+ }
48
+ /**
49
+ * Add a custom token to the registry.
50
+ * If a token with the same network+address exists, throws (UNIQUE constraint).
51
+ * Address is stored as-is (caller should provide checksum).
52
+ */
53
+ async addCustomToken(network, token) {
54
+ const id = generateId();
55
+ const now = new Date(Math.floor(Date.now() / 1000) * 1000);
56
+ await this.db.insert(tokenRegistry).values({
57
+ id,
58
+ network,
59
+ address: token.address,
60
+ symbol: token.symbol,
61
+ name: token.name,
62
+ decimals: token.decimals,
63
+ source: 'custom',
64
+ createdAt: now,
65
+ });
66
+ return { id };
67
+ }
68
+ /**
69
+ * Remove a custom token by network + address.
70
+ * Only custom tokens can be removed. Built-in tokens cannot be removed.
71
+ * Returns true if a row was deleted, false if not found.
72
+ */
73
+ async removeCustomToken(network, address) {
74
+ const result = await this.db
75
+ .delete(tokenRegistry)
76
+ .where(and(eq(tokenRegistry.network, network), eq(tokenRegistry.address, address), eq(tokenRegistry.source, 'custom')));
77
+ return result.changes > 0;
78
+ }
79
+ /**
80
+ * Get token list formatted for EvmAdapter.setAllowedTokens().
81
+ * Returns all tokens (builtin + custom) for the given network.
82
+ */
83
+ async getAdapterTokenList(network) {
84
+ const tokens = await this.getTokensForNetwork(network);
85
+ return tokens.map((t) => ({
86
+ address: t.address,
87
+ symbol: t.symbol,
88
+ name: t.name,
89
+ decimals: t.decimals,
90
+ }));
91
+ }
92
+ }
93
+ //# sourceMappingURL=token-registry-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-registry-service.js","sourceRoot":"","sources":["../../../src/infrastructure/token-registry/token-registry-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Version module barrel export.
3
+ */
4
+ export { VersionCheckService } from './version-check-service.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/version/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Version module barrel export.
3
+ */
4
+ export { VersionCheckService } from './version-check-service.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/version/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * VersionCheckService - checks npm registry for latest @waiaas/cli version.
3
+ *
4
+ * Stores results in key_value_store for consumption by Health API and CLI.
5
+ * All errors are caught and logged (fail-soft: never blocks daemon startup).
6
+ *
7
+ * Keys stored:
8
+ * - version_check_latest: latest version string from npm
9
+ * - version_check_checked_at: Unix seconds of last successful check
10
+ */
11
+ import type { Database } from 'better-sqlite3';
12
+ export declare class VersionCheckService {
13
+ private readonly sqlite;
14
+ constructor(sqlite: Database);
15
+ /**
16
+ * Fetch latest version from npm registry and store in key_value_store.
17
+ *
18
+ * @returns { latest, current } - latest is null if check failed
19
+ */
20
+ check(): Promise<{
21
+ latest: string | null;
22
+ current: string;
23
+ }>;
24
+ /**
25
+ * Get the latest known version from key_value_store.
26
+ * Returns null if no check has been performed yet.
27
+ */
28
+ getLatest(): string | null;
29
+ /**
30
+ * Get the timestamp of the last successful version check.
31
+ * Returns null if no check has been performed yet.
32
+ */
33
+ getCheckedAt(): number | null;
34
+ }
35
+ //# sourceMappingURL=version-check-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check-service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/version/version-check-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAS/C,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,QAAQ;IAE7C;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA2ClE;;;OAGG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAW1B;;;OAGG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;CAU9B"}