@toon-protocol/connector 1.7.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 (458) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +421 -0
  3. package/dist/btp/btp-claim-types.d.ts +30 -0
  4. package/dist/btp/btp-claim-types.d.ts.map +1 -0
  5. package/dist/btp/btp-claim-types.js +103 -0
  6. package/dist/btp/btp-claim-types.js.map +1 -0
  7. package/dist/btp/btp-client-manager.d.ts +27 -0
  8. package/dist/btp/btp-client-manager.d.ts.map +1 -0
  9. package/dist/btp/btp-client-manager.js +138 -0
  10. package/dist/btp/btp-client-manager.js.map +1 -0
  11. package/dist/btp/btp-client.d.ts +55 -0
  12. package/dist/btp/btp-client.d.ts.map +1 -0
  13. package/dist/btp/btp-client.js +474 -0
  14. package/dist/btp/btp-client.js.map +1 -0
  15. package/dist/btp/btp-message-parser.d.ts +4 -0
  16. package/dist/btp/btp-message-parser.d.ts.map +1 -0
  17. package/dist/btp/btp-message-parser.js +211 -0
  18. package/dist/btp/btp-message-parser.js.map +1 -0
  19. package/dist/btp/btp-server.d.ts +30 -0
  20. package/dist/btp/btp-server.d.ts.map +1 -0
  21. package/dist/btp/btp-server.js +458 -0
  22. package/dist/btp/btp-server.js.map +1 -0
  23. package/dist/btp/btp-types.d.ts +43 -0
  24. package/dist/btp/btp-types.d.ts.map +1 -0
  25. package/dist/btp/btp-types.js +44 -0
  26. package/dist/btp/btp-types.js.map +1 -0
  27. package/dist/cli/index.d.ts +3 -0
  28. package/dist/cli/index.d.ts.map +1 -0
  29. package/dist/cli/index.js +175 -0
  30. package/dist/cli/index.js.map +1 -0
  31. package/dist/cli/onboarding-wizard.d.ts +7 -0
  32. package/dist/cli/onboarding-wizard.d.ts.map +1 -0
  33. package/dist/cli/onboarding-wizard.js +257 -0
  34. package/dist/cli/onboarding-wizard.js.map +1 -0
  35. package/dist/cli/types.d.ts +38 -0
  36. package/dist/cli/types.d.ts.map +1 -0
  37. package/dist/cli/types.js +3 -0
  38. package/dist/cli/types.js.map +1 -0
  39. package/dist/config/aptos-env-validator.d.ts +8 -0
  40. package/dist/config/aptos-env-validator.d.ts.map +1 -0
  41. package/dist/config/aptos-env-validator.js +25 -0
  42. package/dist/config/aptos-env-validator.js.map +1 -0
  43. package/dist/config/config-loader.d.ts +20 -0
  44. package/dist/config/config-loader.d.ts.map +1 -0
  45. package/dist/config/config-loader.js +269 -0
  46. package/dist/config/config-loader.js.map +1 -0
  47. package/dist/config/environment-validator.d.ts +4 -0
  48. package/dist/config/environment-validator.d.ts.map +1 -0
  49. package/dist/config/environment-validator.js +239 -0
  50. package/dist/config/environment-validator.js.map +1 -0
  51. package/dist/config/index.d.ts +2 -0
  52. package/dist/config/index.d.ts.map +1 -0
  53. package/dist/config/index.js +7 -0
  54. package/dist/config/index.js.map +1 -0
  55. package/dist/config/key-manager-config.d.ts +7 -0
  56. package/dist/config/key-manager-config.d.ts.map +1 -0
  57. package/dist/config/key-manager-config.js +209 -0
  58. package/dist/config/key-manager-config.js.map +1 -0
  59. package/dist/config/topology-validator.d.ts +14 -0
  60. package/dist/config/topology-validator.d.ts.map +1 -0
  61. package/dist/config/topology-validator.js +142 -0
  62. package/dist/config/topology-validator.js.map +1 -0
  63. package/dist/config/types.d.ts +210 -0
  64. package/dist/config/types.d.ts.map +1 -0
  65. package/dist/config/types.js +10 -0
  66. package/dist/config/types.js.map +1 -0
  67. package/dist/core/connector-node.d.ts +79 -0
  68. package/dist/core/connector-node.d.ts.map +1 -0
  69. package/dist/core/connector-node.js +1036 -0
  70. package/dist/core/connector-node.js.map +1 -0
  71. package/dist/core/local-delivery-client.d.ts +16 -0
  72. package/dist/core/local-delivery-client.d.ts.map +1 -0
  73. package/dist/core/local-delivery-client.js +176 -0
  74. package/dist/core/local-delivery-client.js.map +1 -0
  75. package/dist/core/packet-handler.d.ts +45 -0
  76. package/dist/core/packet-handler.d.ts.map +1 -0
  77. package/dist/core/packet-handler.js +606 -0
  78. package/dist/core/packet-handler.js.map +1 -0
  79. package/dist/core/payment-handler.d.ts +27 -0
  80. package/dist/core/payment-handler.d.ts.map +1 -0
  81. package/dist/core/payment-handler.js +115 -0
  82. package/dist/core/payment-handler.js.map +1 -0
  83. package/dist/discovery/index.d.ts +3 -0
  84. package/dist/discovery/index.d.ts.map +1 -0
  85. package/dist/discovery/index.js +6 -0
  86. package/dist/discovery/index.js.map +1 -0
  87. package/dist/discovery/peer-discovery-service.d.ts +29 -0
  88. package/dist/discovery/peer-discovery-service.d.ts.map +1 -0
  89. package/dist/discovery/peer-discovery-service.js +230 -0
  90. package/dist/discovery/peer-discovery-service.js.map +1 -0
  91. package/dist/discovery/types.d.ts +38 -0
  92. package/dist/discovery/types.d.ts.map +1 -0
  93. package/dist/discovery/types.js +3 -0
  94. package/dist/discovery/types.js.map +1 -0
  95. package/dist/encoding/oer-parser.d.ts +39 -0
  96. package/dist/encoding/oer-parser.d.ts.map +1 -0
  97. package/dist/encoding/oer-parser.js +154 -0
  98. package/dist/encoding/oer-parser.js.map +1 -0
  99. package/dist/explorer-ui/assets/EventDetailPanel-CnSaMk3V.js +6 -0
  100. package/dist/explorer-ui/assets/FilterBar-BEmAzBku.js +26 -0
  101. package/dist/explorer-ui/assets/chevron-right-BUT9VhYe.js +11 -0
  102. package/dist/explorer-ui/assets/index-BZ2INVgy.js +360 -0
  103. package/dist/explorer-ui/assets/index-Cemh6svI.css +1 -0
  104. package/dist/explorer-ui/index.html +14 -0
  105. package/dist/explorer-ui/vite.svg +1 -0
  106. package/dist/facilitator/index.d.ts +2 -0
  107. package/dist/facilitator/index.d.ts.map +1 -0
  108. package/dist/facilitator/index.js +7 -0
  109. package/dist/facilitator/index.js.map +1 -0
  110. package/dist/facilitator/spsp-client.d.ts +18 -0
  111. package/dist/facilitator/spsp-client.d.ts.map +1 -0
  112. package/dist/facilitator/spsp-client.js +95 -0
  113. package/dist/facilitator/spsp-client.js.map +1 -0
  114. package/dist/http/admin-api.d.ts +123 -0
  115. package/dist/http/admin-api.d.ts.map +1 -0
  116. package/dist/http/admin-api.js +1057 -0
  117. package/dist/http/admin-api.js.map +1 -0
  118. package/dist/http/admin-server.d.ts +41 -0
  119. package/dist/http/admin-server.d.ts.map +1 -0
  120. package/dist/http/admin-server.js +156 -0
  121. package/dist/http/admin-server.js.map +1 -0
  122. package/dist/http/health-server.d.ts +22 -0
  123. package/dist/http/health-server.d.ts.map +1 -0
  124. package/dist/http/health-server.js +192 -0
  125. package/dist/http/health-server.js.map +1 -0
  126. package/dist/http/ilp-send-handler.d.ts +19 -0
  127. package/dist/http/ilp-send-handler.d.ts.map +1 -0
  128. package/dist/http/ilp-send-handler.js +162 -0
  129. package/dist/http/ilp-send-handler.js.map +1 -0
  130. package/dist/http/types.d.ts +39 -0
  131. package/dist/http/types.d.ts.map +1 -0
  132. package/dist/http/types.js +3 -0
  133. package/dist/http/types.js.map +1 -0
  134. package/dist/index.d.ts +2 -0
  135. package/dist/index.d.ts.map +1 -0
  136. package/dist/index.js +5 -0
  137. package/dist/index.js.map +1 -0
  138. package/dist/lib.d.ts +22 -0
  139. package/dist/lib.d.ts.map +1 -0
  140. package/dist/lib.js +41 -0
  141. package/dist/lib.js.map +1 -0
  142. package/dist/main.d.ts +4 -0
  143. package/dist/main.d.ts.map +1 -0
  144. package/dist/main.js +79 -0
  145. package/dist/main.js.map +1 -0
  146. package/dist/routing/packet-processor.d.ts +36 -0
  147. package/dist/routing/packet-processor.d.ts.map +1 -0
  148. package/dist/routing/packet-processor.js +112 -0
  149. package/dist/routing/packet-processor.js.map +1 -0
  150. package/dist/routing/packet-worker.d.ts +10 -0
  151. package/dist/routing/packet-worker.d.ts.map +1 -0
  152. package/dist/routing/packet-worker.js +34 -0
  153. package/dist/routing/packet-worker.js.map +1 -0
  154. package/dist/routing/routing-table.d.ts +15 -0
  155. package/dist/routing/routing-table.d.ts.map +1 -0
  156. package/dist/routing/routing-table.js +63 -0
  157. package/dist/routing/routing-table.js.map +1 -0
  158. package/dist/routing/worker-pool.d.ts +43 -0
  159. package/dist/routing/worker-pool.d.ts.map +1 -0
  160. package/dist/routing/worker-pool.js +228 -0
  161. package/dist/routing/worker-pool.js.map +1 -0
  162. package/dist/security/alert-notifier.d.ts +34 -0
  163. package/dist/security/alert-notifier.d.ts.map +1 -0
  164. package/dist/security/alert-notifier.js +136 -0
  165. package/dist/security/alert-notifier.js.map +1 -0
  166. package/dist/security/audit-logger.d.ts +34 -0
  167. package/dist/security/audit-logger.d.ts.map +1 -0
  168. package/dist/security/audit-logger.js +132 -0
  169. package/dist/security/audit-logger.js.map +1 -0
  170. package/dist/security/backends/aws-kms-backend.d.ts +18 -0
  171. package/dist/security/backends/aws-kms-backend.d.ts.map +1 -0
  172. package/dist/security/backends/aws-kms-backend.js +130 -0
  173. package/dist/security/backends/aws-kms-backend.js.map +1 -0
  174. package/dist/security/backends/azure-kv-backend.d.ts +17 -0
  175. package/dist/security/backends/azure-kv-backend.d.ts.map +1 -0
  176. package/dist/security/backends/azure-kv-backend.js +121 -0
  177. package/dist/security/backends/azure-kv-backend.js.map +1 -0
  178. package/dist/security/backends/environment-backend.d.ts +15 -0
  179. package/dist/security/backends/environment-backend.d.ts.map +1 -0
  180. package/dist/security/backends/environment-backend.js +56 -0
  181. package/dist/security/backends/environment-backend.js.map +1 -0
  182. package/dist/security/backends/gcp-kms-backend.d.ts +17 -0
  183. package/dist/security/backends/gcp-kms-backend.d.ts.map +1 -0
  184. package/dist/security/backends/gcp-kms-backend.js +110 -0
  185. package/dist/security/backends/gcp-kms-backend.js.map +1 -0
  186. package/dist/security/backends/hsm-backend.d.ts +18 -0
  187. package/dist/security/backends/hsm-backend.d.ts.map +1 -0
  188. package/dist/security/backends/hsm-backend.js +187 -0
  189. package/dist/security/backends/hsm-backend.js.map +1 -0
  190. package/dist/security/fraud-detector.d.ts +79 -0
  191. package/dist/security/fraud-detector.d.ts.map +1 -0
  192. package/dist/security/fraud-detector.js +147 -0
  193. package/dist/security/fraud-detector.js.map +1 -0
  194. package/dist/security/key-manager-signer.d.ts +15 -0
  195. package/dist/security/key-manager-signer.d.ts.map +1 -0
  196. package/dist/security/key-manager-signer.js +91 -0
  197. package/dist/security/key-manager-signer.js.map +1 -0
  198. package/dist/security/key-manager.d.ts +69 -0
  199. package/dist/security/key-manager.d.ts.map +1 -0
  200. package/dist/security/key-manager.js +79 -0
  201. package/dist/security/key-manager.js.map +1 -0
  202. package/dist/security/key-rotation-manager.d.ts +27 -0
  203. package/dist/security/key-rotation-manager.d.ts.map +1 -0
  204. package/dist/security/key-rotation-manager.js +142 -0
  205. package/dist/security/key-rotation-manager.js.map +1 -0
  206. package/dist/security/rate-limit-config.d.ts +7 -0
  207. package/dist/security/rate-limit-config.d.ts.map +1 -0
  208. package/dist/security/rate-limit-config.js +57 -0
  209. package/dist/security/rate-limit-config.js.map +1 -0
  210. package/dist/security/rate-limiter.d.ts +46 -0
  211. package/dist/security/rate-limiter.d.ts.map +1 -0
  212. package/dist/security/rate-limiter.js +170 -0
  213. package/dist/security/rate-limiter.js.map +1 -0
  214. package/dist/security/reputation-tracker.d.ts +30 -0
  215. package/dist/security/reputation-tracker.d.ts.map +1 -0
  216. package/dist/security/reputation-tracker.js +111 -0
  217. package/dist/security/reputation-tracker.js.map +1 -0
  218. package/dist/security/rules/balance-manipulation-rule.d.ts +23 -0
  219. package/dist/security/rules/balance-manipulation-rule.d.ts.map +1 -0
  220. package/dist/security/rules/balance-manipulation-rule.js +70 -0
  221. package/dist/security/rules/balance-manipulation-rule.js.map +1 -0
  222. package/dist/security/rules/double-spend-detection-rule.d.ts +23 -0
  223. package/dist/security/rules/double-spend-detection-rule.d.ts.map +1 -0
  224. package/dist/security/rules/double-spend-detection-rule.js +61 -0
  225. package/dist/security/rules/double-spend-detection-rule.js.map +1 -0
  226. package/dist/security/rules/rapid-channel-closure-rule.d.ts +16 -0
  227. package/dist/security/rules/rapid-channel-closure-rule.d.ts.map +1 -0
  228. package/dist/security/rules/rapid-channel-closure-rule.js +57 -0
  229. package/dist/security/rules/rapid-channel-closure-rule.js.map +1 -0
  230. package/dist/security/rules/sudden-traffic-spike-rule.d.ts +18 -0
  231. package/dist/security/rules/sudden-traffic-spike-rule.d.ts.map +1 -0
  232. package/dist/security/rules/sudden-traffic-spike-rule.js +92 -0
  233. package/dist/security/rules/sudden-traffic-spike-rule.js.map +1 -0
  234. package/dist/security/rules/unusual-settlement-amount-rule.d.ts +12 -0
  235. package/dist/security/rules/unusual-settlement-amount-rule.d.ts.map +1 -0
  236. package/dist/security/rules/unusual-settlement-amount-rule.js +33 -0
  237. package/dist/security/rules/unusual-settlement-amount-rule.js.map +1 -0
  238. package/dist/security/token-bucket.d.ts +16 -0
  239. package/dist/security/token-bucket.d.ts.map +1 -0
  240. package/dist/security/token-bucket.js +49 -0
  241. package/dist/security/token-bucket.js.map +1 -0
  242. package/dist/security/violation-counter.d.ts +11 -0
  243. package/dist/security/violation-counter.d.ts.map +1 -0
  244. package/dist/security/violation-counter.js +61 -0
  245. package/dist/security/violation-counter.js.map +1 -0
  246. package/dist/settlement/account-id-generator.d.ts +4 -0
  247. package/dist/settlement/account-id-generator.d.ts.map +1 -0
  248. package/dist/settlement/account-id-generator.js +38 -0
  249. package/dist/settlement/account-id-generator.js.map +1 -0
  250. package/dist/settlement/account-manager.d.ts +47 -0
  251. package/dist/settlement/account-manager.d.ts.map +1 -0
  252. package/dist/settlement/account-manager.js +447 -0
  253. package/dist/settlement/account-manager.js.map +1 -0
  254. package/dist/settlement/account-metadata.d.ts +11 -0
  255. package/dist/settlement/account-metadata.d.ts.map +1 -0
  256. package/dist/settlement/account-metadata.js +40 -0
  257. package/dist/settlement/account-metadata.js.map +1 -0
  258. package/dist/settlement/aptos-channel-sdk.d.ts +66 -0
  259. package/dist/settlement/aptos-channel-sdk.d.ts.map +1 -0
  260. package/dist/settlement/aptos-channel-sdk.js +274 -0
  261. package/dist/settlement/aptos-channel-sdk.js.map +1 -0
  262. package/dist/settlement/aptos-claim-signer.d.ts +57 -0
  263. package/dist/settlement/aptos-claim-signer.d.ts.map +1 -0
  264. package/dist/settlement/aptos-claim-signer.js +200 -0
  265. package/dist/settlement/aptos-claim-signer.js.map +1 -0
  266. package/dist/settlement/aptos-client.d.ts +99 -0
  267. package/dist/settlement/aptos-client.d.ts.map +1 -0
  268. package/dist/settlement/aptos-client.js +474 -0
  269. package/dist/settlement/aptos-client.js.map +1 -0
  270. package/dist/settlement/channel-manager.d.ts +66 -0
  271. package/dist/settlement/channel-manager.d.ts.map +1 -0
  272. package/dist/settlement/channel-manager.js +214 -0
  273. package/dist/settlement/channel-manager.js.map +1 -0
  274. package/dist/settlement/claim-receiver-db-schema.d.ts +4 -0
  275. package/dist/settlement/claim-receiver-db-schema.d.ts.map +1 -0
  276. package/dist/settlement/claim-receiver-db-schema.js +25 -0
  277. package/dist/settlement/claim-receiver-db-schema.js.map +1 -0
  278. package/dist/settlement/claim-receiver.d.ts +31 -0
  279. package/dist/settlement/claim-receiver.d.ts.map +1 -0
  280. package/dist/settlement/claim-receiver.js +228 -0
  281. package/dist/settlement/claim-receiver.js.map +1 -0
  282. package/dist/settlement/claim-redemption-service.d.ts +39 -0
  283. package/dist/settlement/claim-redemption-service.d.ts.map +1 -0
  284. package/dist/settlement/claim-redemption-service.js +189 -0
  285. package/dist/settlement/claim-redemption-service.js.map +1 -0
  286. package/dist/settlement/claim-sender-db-schema.d.ts +3 -0
  287. package/dist/settlement/claim-sender-db-schema.d.ts.map +1 -0
  288. package/dist/settlement/claim-sender-db-schema.js +18 -0
  289. package/dist/settlement/claim-sender-db-schema.js.map +1 -0
  290. package/dist/settlement/claim-sender.d.ts +22 -0
  291. package/dist/settlement/claim-sender.d.ts.map +1 -0
  292. package/dist/settlement/claim-sender.js +108 -0
  293. package/dist/settlement/claim-sender.js.map +1 -0
  294. package/dist/settlement/eip712-helper.d.ts +13 -0
  295. package/dist/settlement/eip712-helper.d.ts.map +1 -0
  296. package/dist/settlement/eip712-helper.js +24 -0
  297. package/dist/settlement/eip712-helper.js.map +1 -0
  298. package/dist/settlement/in-memory-ledger-client.d.ts +40 -0
  299. package/dist/settlement/in-memory-ledger-client.d.ts.map +1 -0
  300. package/dist/settlement/in-memory-ledger-client.js +177 -0
  301. package/dist/settlement/in-memory-ledger-client.js.map +1 -0
  302. package/dist/settlement/ledger-client.d.ts +22 -0
  303. package/dist/settlement/ledger-client.d.ts.map +1 -0
  304. package/dist/settlement/ledger-client.js +3 -0
  305. package/dist/settlement/ledger-client.js.map +1 -0
  306. package/dist/settlement/metrics-collector.d.ts +29 -0
  307. package/dist/settlement/metrics-collector.d.ts.map +1 -0
  308. package/dist/settlement/metrics-collector.js +81 -0
  309. package/dist/settlement/metrics-collector.js.map +1 -0
  310. package/dist/settlement/payment-channel-sdk.d.ts +59 -0
  311. package/dist/settlement/payment-channel-sdk.d.ts.map +1 -0
  312. package/dist/settlement/payment-channel-sdk.js +677 -0
  313. package/dist/settlement/payment-channel-sdk.js.map +1 -0
  314. package/dist/settlement/per-packet-claim-service.d.ts +33 -0
  315. package/dist/settlement/per-packet-claim-service.d.ts.map +1 -0
  316. package/dist/settlement/per-packet-claim-service.js +177 -0
  317. package/dist/settlement/per-packet-claim-service.js.map +1 -0
  318. package/dist/settlement/settlement-api.d.ts +37 -0
  319. package/dist/settlement/settlement-api.d.ts.map +1 -0
  320. package/dist/settlement/settlement-api.js +172 -0
  321. package/dist/settlement/settlement-api.js.map +1 -0
  322. package/dist/settlement/settlement-coordinator.d.ts +47 -0
  323. package/dist/settlement/settlement-coordinator.d.ts.map +1 -0
  324. package/dist/settlement/settlement-coordinator.js +166 -0
  325. package/dist/settlement/settlement-coordinator.js.map +1 -0
  326. package/dist/settlement/settlement-executor.d.ts +44 -0
  327. package/dist/settlement/settlement-executor.d.ts.map +1 -0
  328. package/dist/settlement/settlement-executor.js +247 -0
  329. package/dist/settlement/settlement-executor.js.map +1 -0
  330. package/dist/settlement/settlement-monitor.d.ts +29 -0
  331. package/dist/settlement/settlement-monitor.d.ts.map +1 -0
  332. package/dist/settlement/settlement-monitor.js +172 -0
  333. package/dist/settlement/settlement-monitor.js.map +1 -0
  334. package/dist/settlement/tigerbeetle-batch-writer.d.ts +58 -0
  335. package/dist/settlement/tigerbeetle-batch-writer.d.ts.map +1 -0
  336. package/dist/settlement/tigerbeetle-batch-writer.js +162 -0
  337. package/dist/settlement/tigerbeetle-batch-writer.js.map +1 -0
  338. package/dist/settlement/tigerbeetle-client.d.ts +40 -0
  339. package/dist/settlement/tigerbeetle-client.d.ts.map +1 -0
  340. package/dist/settlement/tigerbeetle-client.js +279 -0
  341. package/dist/settlement/tigerbeetle-client.js.map +1 -0
  342. package/dist/settlement/tigerbeetle-errors.d.ts +23 -0
  343. package/dist/settlement/tigerbeetle-errors.d.ts.map +1 -0
  344. package/dist/settlement/tigerbeetle-errors.js +58 -0
  345. package/dist/settlement/tigerbeetle-errors.js.map +1 -0
  346. package/dist/settlement/types.d.ts +64 -0
  347. package/dist/settlement/types.d.ts.map +1 -0
  348. package/dist/settlement/types.js +42 -0
  349. package/dist/settlement/types.js.map +1 -0
  350. package/dist/settlement/unified-settlement-executor.d.ts +34 -0
  351. package/dist/settlement/unified-settlement-executor.d.ts.map +1 -0
  352. package/dist/settlement/unified-settlement-executor.js +145 -0
  353. package/dist/settlement/unified-settlement-executor.js.map +1 -0
  354. package/dist/settlement/xrp-channel-lifecycle.d.ts +41 -0
  355. package/dist/settlement/xrp-channel-lifecycle.d.ts.map +1 -0
  356. package/dist/settlement/xrp-channel-lifecycle.js +142 -0
  357. package/dist/settlement/xrp-channel-lifecycle.js.map +1 -0
  358. package/dist/settlement/xrp-channel-manager.d.ts +59 -0
  359. package/dist/settlement/xrp-channel-manager.d.ts.map +1 -0
  360. package/dist/settlement/xrp-channel-manager.js +160 -0
  361. package/dist/settlement/xrp-channel-manager.js.map +1 -0
  362. package/dist/settlement/xrp-channel-sdk.d.ts +30 -0
  363. package/dist/settlement/xrp-channel-sdk.d.ts.map +1 -0
  364. package/dist/settlement/xrp-channel-sdk.js +164 -0
  365. package/dist/settlement/xrp-channel-sdk.js.map +1 -0
  366. package/dist/settlement/xrp-claim-signer.d.ts +22 -0
  367. package/dist/settlement/xrp-claim-signer.d.ts.map +1 -0
  368. package/dist/settlement/xrp-claim-signer.js +122 -0
  369. package/dist/settlement/xrp-claim-signer.js.map +1 -0
  370. package/dist/settlement/xrpl-client.d.ts +104 -0
  371. package/dist/settlement/xrpl-client.d.ts.map +1 -0
  372. package/dist/settlement/xrpl-client.js +304 -0
  373. package/dist/settlement/xrpl-client.js.map +1 -0
  374. package/dist/test/testnet-config.d.ts +58 -0
  375. package/dist/test/testnet-config.d.ts.map +1 -0
  376. package/dist/test/testnet-config.js +89 -0
  377. package/dist/test/testnet-config.js.map +1 -0
  378. package/dist/test-utils/index.d.ts +3 -0
  379. package/dist/test-utils/index.d.ts.map +1 -0
  380. package/dist/test-utils/index.js +15 -0
  381. package/dist/test-utils/index.js.map +1 -0
  382. package/dist/test-utils/isolated-test-env.d.ts +31 -0
  383. package/dist/test-utils/isolated-test-env.d.ts.map +1 -0
  384. package/dist/test-utils/isolated-test-env.js +127 -0
  385. package/dist/test-utils/isolated-test-env.js.map +1 -0
  386. package/dist/test-utils/mock-factories-patch.d.ts +2 -0
  387. package/dist/test-utils/mock-factories-patch.d.ts.map +1 -0
  388. package/dist/test-utils/mock-factories-patch.js +3 -0
  389. package/dist/test-utils/mock-factories-patch.js.map +1 -0
  390. package/dist/test-utils/mock-factories.d.ts +22 -0
  391. package/dist/test-utils/mock-factories.d.ts.map +1 -0
  392. package/dist/test-utils/mock-factories.js +56 -0
  393. package/dist/test-utils/mock-factories.js.map +1 -0
  394. package/dist/utils/connection-pool.d.ts +42 -0
  395. package/dist/utils/connection-pool.d.ts.map +1 -0
  396. package/dist/utils/connection-pool.js +209 -0
  397. package/dist/utils/connection-pool.js.map +1 -0
  398. package/dist/utils/evm-rpc-connection-pool.d.ts +8 -0
  399. package/dist/utils/evm-rpc-connection-pool.d.ts.map +1 -0
  400. package/dist/utils/evm-rpc-connection-pool.js +40 -0
  401. package/dist/utils/evm-rpc-connection-pool.js.map +1 -0
  402. package/dist/utils/logger.d.ts +6 -0
  403. package/dist/utils/logger.d.ts.map +1 -0
  404. package/dist/utils/logger.js +58 -0
  405. package/dist/utils/logger.js.map +1 -0
  406. package/dist/utils/optional-require.d.ts +2 -0
  407. package/dist/utils/optional-require.d.ts.map +1 -0
  408. package/dist/utils/optional-require.js +54 -0
  409. package/dist/utils/optional-require.js.map +1 -0
  410. package/dist/utils/xrp-wss-connection-pool.d.ts +8 -0
  411. package/dist/utils/xrp-wss-connection-pool.d.ts.map +1 -0
  412. package/dist/utils/xrp-wss-connection-pool.js +42 -0
  413. package/dist/utils/xrp-wss-connection-pool.js.map +1 -0
  414. package/dist/wallet/audit-logger.d.ts +22 -0
  415. package/dist/wallet/audit-logger.d.ts.map +1 -0
  416. package/dist/wallet/audit-logger.js +120 -0
  417. package/dist/wallet/audit-logger.js.map +1 -0
  418. package/dist/wallet/fraud-detector-interface.d.ts +14 -0
  419. package/dist/wallet/fraud-detector-interface.d.ts.map +1 -0
  420. package/dist/wallet/fraud-detector-interface.js +3 -0
  421. package/dist/wallet/fraud-detector-interface.js.map +1 -0
  422. package/dist/wallet/key-manager.d.ts +6 -0
  423. package/dist/wallet/key-manager.d.ts.map +1 -0
  424. package/dist/wallet/key-manager.js +3 -0
  425. package/dist/wallet/key-manager.js.map +1 -0
  426. package/dist/wallet/placeholder-fraud-detector.d.ts +10 -0
  427. package/dist/wallet/placeholder-fraud-detector.d.ts.map +1 -0
  428. package/dist/wallet/placeholder-fraud-detector.js +10 -0
  429. package/dist/wallet/placeholder-fraud-detector.js.map +1 -0
  430. package/dist/wallet/rate-limiter.d.ts +26 -0
  431. package/dist/wallet/rate-limiter.d.ts.map +1 -0
  432. package/dist/wallet/rate-limiter.js +114 -0
  433. package/dist/wallet/rate-limiter.js.map +1 -0
  434. package/dist/wallet/suspicious-activity-detector.d.ts +25 -0
  435. package/dist/wallet/suspicious-activity-detector.d.ts.map +1 -0
  436. package/dist/wallet/suspicious-activity-detector.js +97 -0
  437. package/dist/wallet/suspicious-activity-detector.js.map +1 -0
  438. package/dist/wallet/treasury-wallet.d.ts +20 -0
  439. package/dist/wallet/treasury-wallet.d.ts.map +1 -0
  440. package/dist/wallet/treasury-wallet.js +151 -0
  441. package/dist/wallet/treasury-wallet.js.map +1 -0
  442. package/dist/wallet/wallet-authentication.d.ts +31 -0
  443. package/dist/wallet/wallet-authentication.d.ts.map +1 -0
  444. package/dist/wallet/wallet-authentication.js +102 -0
  445. package/dist/wallet/wallet-authentication.js.map +1 -0
  446. package/dist/wallet/wallet-db-schema.d.ts +11 -0
  447. package/dist/wallet/wallet-db-schema.d.ts.map +1 -0
  448. package/dist/wallet/wallet-db-schema.js +79 -0
  449. package/dist/wallet/wallet-db-schema.js.map +1 -0
  450. package/dist/wallet/wallet-security.d.ts +58 -0
  451. package/dist/wallet/wallet-security.d.ts.map +1 -0
  452. package/dist/wallet/wallet-security.js +148 -0
  453. package/dist/wallet/wallet-security.js.map +1 -0
  454. package/dist/wallet/wallet-seed-manager.d.ts +65 -0
  455. package/dist/wallet/wallet-seed-manager.d.ts.map +1 -0
  456. package/dist/wallet/wallet-seed-manager.js +418 -0
  457. package/dist/wallet/wallet-seed-manager.js.map +1 -0
  458. package/package.json +134 -0
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigLoader = exports.ConnectorNotStartedError = exports.ConfigurationError = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs = tslib_1.__importStar(require("fs"));
6
+ const yaml = tslib_1.__importStar(require("js-yaml"));
7
+ const environment_validator_1 = require("./environment-validator");
8
+ class ConfigurationError extends Error {
9
+ constructor(message) {
10
+ super(message);
11
+ this.name = 'ConfigurationError';
12
+ if (Error.captureStackTrace) {
13
+ Error.captureStackTrace(this, ConfigurationError);
14
+ }
15
+ }
16
+ }
17
+ exports.ConfigurationError = ConfigurationError;
18
+ class ConnectorNotStartedError extends Error {
19
+ constructor(message = 'Connector is not started. Call start() before sendPacket().') {
20
+ super(message);
21
+ this.name = 'ConnectorNotStartedError';
22
+ }
23
+ }
24
+ exports.ConnectorNotStartedError = ConnectorNotStartedError;
25
+ class ConfigLoader {
26
+ static loadConfig(filePath) {
27
+ let fileContent;
28
+ try {
29
+ fileContent = fs.readFileSync(filePath, 'utf8');
30
+ }
31
+ catch (error) {
32
+ if (error.code === 'ENOENT') {
33
+ throw new ConfigurationError(`Configuration file not found: ${filePath}`);
34
+ }
35
+ throw new ConfigurationError(`Failed to read configuration file: ${error.message}`);
36
+ }
37
+ let config;
38
+ try {
39
+ config = yaml.load(fileContent);
40
+ }
41
+ catch (error) {
42
+ throw new ConfigurationError(`Invalid YAML syntax: ${error.message}`);
43
+ }
44
+ if (!config || typeof config !== 'object') {
45
+ throw new ConfigurationError('Configuration must be a YAML object');
46
+ }
47
+ return this.validateConfig(config);
48
+ }
49
+ static validateConfig(raw) {
50
+ if (!raw || typeof raw !== 'object') {
51
+ throw new ConfigurationError('Configuration must be a YAML object');
52
+ }
53
+ const rawConfig = raw;
54
+ this.validateRequiredFields(rawConfig);
55
+ this.validatePeers(rawConfig.peers);
56
+ this.validateRoutes(rawConfig.routes, rawConfig.peers);
57
+ this.validatePorts(rawConfig);
58
+ const environment = this.loadEnvironment();
59
+ const blockchain = this.loadBlockchainConfig(environment);
60
+ const btpServerPort = rawConfig.btpServerPort;
61
+ const healthCheckPort = rawConfig.healthCheckPort ?? 8080;
62
+ const connectorConfig = {
63
+ nodeId: rawConfig.nodeId,
64
+ btpServerPort,
65
+ healthCheckPort,
66
+ logLevel: rawConfig.logLevel ?? 'info',
67
+ peers: rawConfig.peers,
68
+ routes: rawConfig.routes,
69
+ environment,
70
+ blockchain,
71
+ settlement: rawConfig.settlement,
72
+ settlementInfra: rawConfig.settlementInfra,
73
+ security: rawConfig.security,
74
+ adminApi: rawConfig.adminApi,
75
+ localDelivery: rawConfig.localDelivery,
76
+ mode: rawConfig.mode,
77
+ firstHopUrl: rawConfig.firstHopUrl,
78
+ btpAuthToken: rawConfig.btpAuthToken,
79
+ };
80
+ (0, environment_validator_1.validateEnvironment)(connectorConfig);
81
+ return connectorConfig;
82
+ }
83
+ static loadEnvironment() {
84
+ const env = process.env.ENVIRONMENT || 'development';
85
+ const validEnvironments = ['development', 'staging', 'production'];
86
+ if (!validEnvironments.includes(env)) {
87
+ throw new ConfigurationError(`Invalid ENVIRONMENT: must be one of ${validEnvironments.join(', ')}, got ${env}`);
88
+ }
89
+ return env;
90
+ }
91
+ static loadBlockchainConfig(environment) {
92
+ const baseEnabled = process.env.BASE_ENABLED === 'true';
93
+ const arbitrumEnabled = process.env.ARBITRUM_ENABLED === 'true';
94
+ if (!baseEnabled && !arbitrumEnabled) {
95
+ return undefined;
96
+ }
97
+ const blockchain = {};
98
+ if (baseEnabled) {
99
+ blockchain.base = this.loadBaseBlockchainConfig(environment);
100
+ }
101
+ if (arbitrumEnabled) {
102
+ blockchain.arbitrum = this.loadArbitrumBlockchainConfig(environment);
103
+ }
104
+ return blockchain;
105
+ }
106
+ static loadBaseBlockchainConfig(environment) {
107
+ const defaults = {
108
+ development: {
109
+ rpcUrl: 'http://anvil:8545',
110
+ chainId: 84532,
111
+ },
112
+ staging: {
113
+ rpcUrl: 'https://sepolia.base.org',
114
+ chainId: 84532,
115
+ },
116
+ production: {
117
+ rpcUrl: 'https://mainnet.base.org',
118
+ chainId: 8453,
119
+ },
120
+ };
121
+ const envDefaults = defaults[environment];
122
+ return {
123
+ enabled: true,
124
+ rpcUrl: process.env.BASE_RPC_URL || envDefaults.rpcUrl,
125
+ chainId: process.env.BASE_CHAIN_ID
126
+ ? parseInt(process.env.BASE_CHAIN_ID, 10)
127
+ : envDefaults.chainId,
128
+ privateKey: process.env.BASE_PRIVATE_KEY,
129
+ registryAddress: process.env.BASE_REGISTRY_ADDRESS,
130
+ tokenAddress: process.env.BASE_TOKEN_ADDRESS,
131
+ };
132
+ }
133
+ static loadArbitrumBlockchainConfig(environment) {
134
+ const defaults = {
135
+ development: {
136
+ rpcUrl: 'http://anvil-arbitrum:8546',
137
+ chainId: 421614,
138
+ },
139
+ staging: {
140
+ rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',
141
+ chainId: 421614,
142
+ },
143
+ production: {
144
+ rpcUrl: 'https://arb1.arbitrum.io/rpc',
145
+ chainId: 42161,
146
+ },
147
+ };
148
+ const envDefaults = defaults[environment];
149
+ return {
150
+ enabled: true,
151
+ rpcUrl: process.env.ARBITRUM_RPC_URL || envDefaults.rpcUrl,
152
+ chainId: process.env.ARBITRUM_CHAIN_ID
153
+ ? parseInt(process.env.ARBITRUM_CHAIN_ID, 10)
154
+ : envDefaults.chainId,
155
+ privateKey: process.env.ARBITRUM_PRIVATE_KEY,
156
+ registryAddress: process.env.ARBITRUM_REGISTRY_ADDRESS,
157
+ tokenAddress: process.env.ARBITRUM_TOKEN_ADDRESS,
158
+ };
159
+ }
160
+ static validateRequiredFields(config) {
161
+ if (!('nodeId' in config)) {
162
+ throw new ConfigurationError('Missing required field: nodeId');
163
+ }
164
+ if (typeof config.nodeId !== 'string') {
165
+ throw new ConfigurationError(`Invalid type for nodeId: expected string, got ${typeof config.nodeId}`);
166
+ }
167
+ if (config.nodeId.trim() === '') {
168
+ throw new ConfigurationError('nodeId cannot be empty');
169
+ }
170
+ if (!('btpServerPort' in config)) {
171
+ throw new ConfigurationError('Missing required field: btpServerPort');
172
+ }
173
+ if (typeof config.btpServerPort !== 'number') {
174
+ throw new ConfigurationError(`Invalid type for btpServerPort: expected number, got ${typeof config.btpServerPort}`);
175
+ }
176
+ if (!('peers' in config)) {
177
+ throw new ConfigurationError('Missing required field: peers');
178
+ }
179
+ if (!Array.isArray(config.peers)) {
180
+ throw new ConfigurationError(`Invalid type for peers: expected array, got ${typeof config.peers}`);
181
+ }
182
+ if (!('routes' in config)) {
183
+ throw new ConfigurationError('Missing required field: routes');
184
+ }
185
+ if (!Array.isArray(config.routes)) {
186
+ throw new ConfigurationError(`Invalid type for routes: expected array, got ${typeof config.routes}`);
187
+ }
188
+ if ('logLevel' in config) {
189
+ const validLogLevels = ['debug', 'info', 'warn', 'error'];
190
+ if (!validLogLevels.includes(config.logLevel)) {
191
+ throw new ConfigurationError(`Invalid logLevel: must be one of ${validLogLevels.join(', ')}, got ${config.logLevel}`);
192
+ }
193
+ }
194
+ }
195
+ static validatePeers(peers) {
196
+ const peerIds = new Set();
197
+ for (const peer of peers) {
198
+ if (!peer.id) {
199
+ throw new ConfigurationError('Peer missing required field: id');
200
+ }
201
+ if (typeof peer.id !== 'string') {
202
+ throw new ConfigurationError(`Invalid type for peer.id: expected string, got ${typeof peer.id}`);
203
+ }
204
+ if (!peer.url) {
205
+ throw new ConfigurationError(`Peer ${peer.id} missing required field: url`);
206
+ }
207
+ if (typeof peer.url !== 'string') {
208
+ throw new ConfigurationError(`Invalid type for peer.url: expected string, got ${typeof peer.url}`);
209
+ }
210
+ if (peer.authToken == null) {
211
+ throw new ConfigurationError(`Peer ${peer.id} missing required field: authToken`);
212
+ }
213
+ if (typeof peer.authToken !== 'string') {
214
+ throw new ConfigurationError(`Invalid type for peer.authToken: expected string, got ${typeof peer.authToken}`);
215
+ }
216
+ const wsUrlPattern = /^wss?:\/\/.+:\d+$/;
217
+ if (!wsUrlPattern.test(peer.url)) {
218
+ throw new ConfigurationError(`Invalid WebSocket URL for peer ${peer.id}: ${peer.url}. Must start with ws:// or wss:// and include port.`);
219
+ }
220
+ if (peerIds.has(peer.id)) {
221
+ throw new ConfigurationError(`Duplicate peer ID: ${peer.id}`);
222
+ }
223
+ peerIds.add(peer.id);
224
+ }
225
+ }
226
+ static validateRoutes(routes, _peers) {
227
+ for (const route of routes) {
228
+ if (!route.prefix) {
229
+ throw new ConfigurationError('Route missing required field: prefix');
230
+ }
231
+ if (typeof route.prefix !== 'string') {
232
+ throw new ConfigurationError(`Invalid type for route.prefix: expected string, got ${typeof route.prefix}`);
233
+ }
234
+ if (!route.nextHop) {
235
+ throw new ConfigurationError('Route missing required field: nextHop');
236
+ }
237
+ if (typeof route.nextHop !== 'string') {
238
+ throw new ConfigurationError(`Invalid type for route.nextHop: expected string, got ${typeof route.nextHop}`);
239
+ }
240
+ const ilpAddressPattern = /^[a-z0-9][a-z0-9._~-]*$/;
241
+ if (!ilpAddressPattern.test(route.prefix)) {
242
+ throw new ConfigurationError(`Invalid ILP address prefix in route: ${route.prefix}. ` +
243
+ `Must contain only lowercase letters, numbers, dots, underscores, tildes, and hyphens.`);
244
+ }
245
+ if (route.priority !== undefined && typeof route.priority !== 'number') {
246
+ throw new ConfigurationError(`Invalid type for route.priority: expected number, got ${typeof route.priority}`);
247
+ }
248
+ }
249
+ }
250
+ static validatePorts(config) {
251
+ const MIN_PORT = 1;
252
+ const MAX_PORT = 65535;
253
+ const btpPort = config.btpServerPort;
254
+ if (btpPort < MIN_PORT || btpPort > MAX_PORT) {
255
+ throw new ConfigurationError(`BTP server port must be between ${MIN_PORT}-${MAX_PORT}, got: ${btpPort}`);
256
+ }
257
+ if (config.healthCheckPort !== undefined) {
258
+ if (typeof config.healthCheckPort !== 'number') {
259
+ throw new ConfigurationError(`Invalid type for healthCheckPort: expected number, got ${typeof config.healthCheckPort}`);
260
+ }
261
+ const healthPort = config.healthCheckPort;
262
+ if (healthPort < MIN_PORT || healthPort > MAX_PORT) {
263
+ throw new ConfigurationError(`Health check port must be between ${MIN_PORT}-${MAX_PORT}, got: ${healthPort}`);
264
+ }
265
+ }
266
+ }
267
+ }
268
+ exports.ConfigLoader = ConfigLoader;
269
+ //# sourceMappingURL=config-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":";;;;AAUA,+CAAyB;AACzB,sDAAgC;AAchC,mEAA8D;AAc9D,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QAEjC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF;AATD,gDASC;AAKD,MAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAY,UAAkB,6DAA6D;QACzF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AALD,4DAKC;AAuBD,MAAa,YAAY;IAiBvB,MAAM,CAAC,UAAU,CAAC,QAAgB;QAEhC,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,IAAI,kBAAkB,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,IAAI,kBAAkB,CAC1B,sCAAuC,KAAe,CAAC,OAAO,EAAE,CACjE,CAAC;QACJ,CAAC;QAGD,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,kBAAkB,CAAC,wBAAyB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;QAGD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,kBAAkB,CAAC,qCAAqC,CAAC,CAAC;QACtE,CAAC;QAGD,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IA8BD,MAAM,CAAC,cAAc,CAAC,GAAY;QAEhC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,kBAAkB,CAAC,qCAAqC,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,SAAS,GAAG,GAA8B,CAAC;QAGjD,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAqB,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAuB,EAAE,SAAS,CAAC,KAAqB,CAAC,CAAC;QACxF,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAG9B,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAG3C,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAE1D,MAAM,aAAa,GAAG,SAAS,CAAC,aAAuB,CAAC;QACxD,MAAM,eAAe,GAAI,SAAS,CAAC,eAAsC,IAAI,IAAI,CAAC;QAGlF,MAAM,eAAe,GAAoB;YACvC,MAAM,EAAE,SAAS,CAAC,MAAgB;YAClC,aAAa;YACb,eAAe;YACf,QAAQ,EAAG,SAAS,CAAC,QAA4D,IAAI,MAAM;YAC3F,KAAK,EAAE,SAAS,CAAC,KAAqB;YACtC,MAAM,EAAE,SAAS,CAAC,MAAuB;YACzC,WAAW;YACX,UAAU;YAEV,UAAU,EAAE,SAAS,CAAC,UAA0C;YAChE,eAAe,EAAE,SAAS,CAAC,eAAoD;YAC/E,QAAQ,EAAE,SAAS,CAAC,QAAsC;YAC1D,QAAQ,EAAE,SAAS,CAAC,QAAsC;YAC1D,aAAa,EAAE,SAAS,CAAC,aAAgD;YACzE,IAAI,EAAE,SAAS,CAAC,IAA2C;YAC3D,WAAW,EAAE,SAAS,CAAC,WAAiC;YACxD,YAAY,EAAE,SAAS,CAAC,YAAkC;SAC3D,CAAC;QAGF,IAAA,2CAAmB,EAAC,eAAe,CAAC,CAAC;QAErC,OAAO,eAAe,CAAC;IACzB,CAAC;IAYO,MAAM,CAAC,eAAe;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa,CAAC;QACrD,MAAM,iBAAiB,GAAkB,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAElF,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAkB,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,kBAAkB,CAC1B,uCAAuC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAClF,CAAC;QACJ,CAAC;QAED,OAAO,GAAkB,CAAC;IAC5B,CAAC;IAYO,MAAM,CAAC,oBAAoB,CAAC,WAAwB;QAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC;QACxD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM,CAAC;QAGhE,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAqB,EAAE,CAAC;QAGxC,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC/D,CAAC;QAGD,IAAI,eAAe,EAAE,CAAC;YACpB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAwBO,MAAM,CAAC,wBAAwB,CAAC,WAAwB;QAE9D,MAAM,QAAQ,GAAG;YACf,WAAW,EAAE;gBACX,MAAM,EAAE,mBAAmB;gBAC3B,OAAO,EAAE,KAAK;aACf;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,0BAA0B;gBAClC,OAAO,EAAE,KAAK;aACf;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,0BAA0B;gBAClC,OAAO,EAAE,IAAI;aACd;SACF,CAAC;QAEF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW,CAAC,MAAM;YACtD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;gBAChC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzC,CAAC,CAAC,WAAW,CAAC,OAAO;YACvB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;YACxC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAClD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SAC7C,CAAC;IACJ,CAAC;IAwBO,MAAM,CAAC,4BAA4B,CAAC,WAAwB;QAElE,MAAM,QAAQ,GAAG;YACf,WAAW,EAAE;gBACX,MAAM,EAAE,4BAA4B;gBACpC,OAAO,EAAE,MAAM;aAChB;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,wCAAwC;gBAChD,OAAO,EAAE,MAAM;aAChB;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,8BAA8B;gBACtC,OAAO,EAAE,KAAK;aACf;SACF,CAAC;QAEF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,WAAW,CAAC,MAAM;YAC1D,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBACpC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBAC7C,CAAC,CAAC,WAAW,CAAC,OAAO;YACvB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;YAC5C,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;YACtD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;SACjD,CAAC;IACJ,CAAC;IAeO,MAAM,CAAC,sBAAsB,CAAC,MAA+B;QAEnE,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,kBAAkB,CAC1B,iDAAiD,OAAO,MAAM,CAAC,MAAM,EAAE,CACxE,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;QACzD,CAAC;QAGD,IAAI,CAAC,CAAC,eAAe,IAAI,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,kBAAkB,CAC1B,wDAAwD,OAAO,MAAM,CAAC,aAAa,EAAE,CACtF,CAAC;QACJ,CAAC;QAGD,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,kBAAkB,CAAC,+BAA+B,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,kBAAkB,CAC1B,+CAA+C,OAAO,MAAM,CAAC,KAAK,EAAE,CACrE,CAAC;QACJ,CAAC;QAGD,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,kBAAkB,CAC1B,gDAAgD,OAAO,MAAM,CAAC,MAAM,EAAE,CACvE,CAAC;QACJ,CAAC;QAGD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAkB,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,kBAAkB,CAC1B,oCAAoC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAYO,MAAM,CAAC,aAAa,CAAC,KAAmB;QAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAEzB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,kBAAkB,CAAC,iCAAiC,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,kBAAkB,CAC1B,kDAAkD,OAAO,IAAI,CAAC,EAAE,EAAE,CACnE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACd,MAAM,IAAI,kBAAkB,CAAC,QAAQ,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,kBAAkB,CAC1B,mDAAmD,OAAO,IAAI,CAAC,GAAG,EAAE,CACrE,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,kBAAkB,CAAC,QAAQ,IAAI,CAAC,EAAE,oCAAoC,CAAC,CAAC;YACpF,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,IAAI,kBAAkB,CAC1B,yDAAyD,OAAO,IAAI,CAAC,SAAS,EAAE,CACjF,CAAC;YACJ,CAAC;YAGD,MAAM,YAAY,GAAG,mBAAmB,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,kBAAkB,CAC1B,kCAAkC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,qDAAqD,CAC5G,CAAC;YACJ,CAAC;YAGD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAcO,MAAM,CAAC,cAAc,CAAC,MAAqB,EAAE,MAAoB;QAKvE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAE3B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,IAAI,kBAAkB,CAC1B,uDAAuD,OAAO,KAAK,CAAC,MAAM,EAAE,CAC7E,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,IAAI,kBAAkB,CAC1B,wDAAwD,OAAO,KAAK,CAAC,OAAO,EAAE,CAC/E,CAAC;YACJ,CAAC;YAKD,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;YACpD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,kBAAkB,CAC1B,wCAAwC,KAAK,CAAC,MAAM,IAAI;oBACtD,uFAAuF,CAC1F,CAAC;YACJ,CAAC;YAOD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACvE,MAAM,IAAI,kBAAkB,CAC1B,yDAAyD,OAAO,KAAK,CAAC,QAAQ,EAAE,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAYO,MAAM,CAAC,aAAa,CAAC,MAA+B;QAC1D,MAAM,QAAQ,GAAG,CAAC,CAAC;QACnB,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,CAAC,aAAuB,CAAC;QAG/C,IAAI,OAAO,GAAG,QAAQ,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,kBAAkB,CAC1B,mCAAmC,QAAQ,IAAI,QAAQ,UAAU,OAAO,EAAE,CAC3E,CAAC;QACJ,CAAC;QAGD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;gBAC/C,MAAM,IAAI,kBAAkB,CAC1B,0DAA0D,OAAO,MAAM,CAAC,eAAe,EAAE,CAC1F,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,eAAyB,CAAC;YACpD,IAAI,UAAU,GAAG,QAAQ,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;gBACnD,MAAM,IAAI,kBAAkB,CAC1B,qCAAqC,QAAQ,IAAI,QAAQ,UAAU,UAAU,EAAE,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAjgBD,oCAigBC"}
@@ -0,0 +1,4 @@
1
+ import { ConnectorConfig } from './types';
2
+ export declare function validateEnvironment(config: ConnectorConfig): void;
3
+ export declare function validateChainId(config: ConnectorConfig): Promise<void>;
4
+ //# sourceMappingURL=environment-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-validator.d.ts","sourceRoot":"","sources":["../../src/config/environment-validator.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAkB,MAAM,SAAS,CAAC;AAsD1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAgBjE;AA4ZD,wBAAsB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB5E"}
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateEnvironment = validateEnvironment;
4
+ exports.validateChainId = validateChainId;
5
+ const config_loader_1 = require("./config-loader");
6
+ const logger_1 = require("../utils/logger");
7
+ const logger = (0, logger_1.createLogger)('environment-validator');
8
+ const KNOWN_DEV_PRIVATE_KEYS = [
9
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
10
+ '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d',
11
+ '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a',
12
+ ];
13
+ function validateEnvironment(config) {
14
+ if (config.environment === 'production') {
15
+ validateProductionEnvironment(config);
16
+ }
17
+ else if (config.environment === 'development') {
18
+ logDevelopmentWarnings(config);
19
+ }
20
+ else if (config.environment === 'staging') {
21
+ logStagingWarnings(config);
22
+ }
23
+ validateDeploymentMode(config);
24
+ validateIPAllowlist(config);
25
+ }
26
+ function validateEVMChainProduction(chain, chainName, expectedChainId) {
27
+ if (chain.chainId !== expectedChainId) {
28
+ throw new config_loader_1.ConfigurationError(`Production must use ${chainName} mainnet (chainId ${expectedChainId}), got chainId ${chain.chainId}`);
29
+ }
30
+ if (chain.rpcUrl.includes('localhost') || chain.rpcUrl.includes('127.0.0.1')) {
31
+ throw new config_loader_1.ConfigurationError(`Cannot use localhost RPC for ${chainName} in production. Use public mainnet endpoint.`);
32
+ }
33
+ if (!chain.rpcUrl.startsWith('https://') && !chain.rpcUrl.startsWith('wss://')) {
34
+ throw new config_loader_1.ConfigurationError(`Production ${chainName} RPC URL must use HTTPS for security`);
35
+ }
36
+ if (chain.privateKey && KNOWN_DEV_PRIVATE_KEYS.includes(chain.privateKey)) {
37
+ throw new config_loader_1.ConfigurationError(`Cannot use development private key for ${chainName} in production. Use secure key from KMS/HSM.`);
38
+ }
39
+ }
40
+ function validateProductionEnvironment(config) {
41
+ if (config.adminApi?.enabled) {
42
+ const hasApiKey = !!config.adminApi.apiKey;
43
+ const hasIPAllowlist = !!config.adminApi.allowedIPs && config.adminApi.allowedIPs.length > 0;
44
+ if (!hasApiKey && !hasIPAllowlist) {
45
+ throw new config_loader_1.ConfigurationError('Admin API is enabled in production without authentication. ' +
46
+ 'Set ADMIN_API_KEY or ADMIN_API_ALLOWED_IPS to secure the admin API.');
47
+ }
48
+ }
49
+ if (config.blockchain?.base?.enabled) {
50
+ validateEVMChainProduction(config.blockchain.base, 'Base', 8453);
51
+ }
52
+ if (config.blockchain?.arbitrum?.enabled) {
53
+ validateEVMChainProduction(config.blockchain.arbitrum, 'Arbitrum', 42161);
54
+ }
55
+ }
56
+ function logDevelopmentWarnings(config) {
57
+ logger.warn('⚠️ DEVELOPMENT MODE - Using local blockchain nodes');
58
+ logger.warn('⚠️ This is NOT production configuration');
59
+ if (config.blockchain?.base?.enabled) {
60
+ logger.warn(`⚠️ Base RPC: ${config.blockchain.base.rpcUrl}`);
61
+ logger.warn(`⚠️ Base Chain ID: ${config.blockchain.base.chainId}`);
62
+ }
63
+ if (config.blockchain?.arbitrum?.enabled) {
64
+ logger.warn(`⚠️ Arbitrum RPC: ${config.blockchain.arbitrum.rpcUrl}`);
65
+ logger.warn(`⚠️ Arbitrum Chain ID: ${config.blockchain.arbitrum.chainId}`);
66
+ }
67
+ }
68
+ function validateEVMChainStaging(chain, chainName, expectedChainId) {
69
+ logger.warn(`⚠️ ${chainName} RPC: ${chain.rpcUrl}`);
70
+ logger.warn(`⚠️ ${chainName} Chain ID: ${chain.chainId}`);
71
+ if (chain.chainId !== expectedChainId) {
72
+ throw new config_loader_1.ConfigurationError(`Staging must use ${chainName} testnet (chainId ${expectedChainId}), got chainId ${chain.chainId}. ` +
73
+ `Use ENVIRONMENT=production for ${chainName} mainnet.`);
74
+ }
75
+ if (chain.rpcUrl.includes('localhost') || chain.rpcUrl.includes('127.0.0.1')) {
76
+ logger.warn(`⚠️ Staging ${chainName} RPC points to localhost. ` +
77
+ `Use a public testnet endpoint, or ENVIRONMENT=development for local Anvil.`);
78
+ }
79
+ if (chain.rpcUrl.startsWith('http://') &&
80
+ !chain.rpcUrl.includes('localhost') &&
81
+ !chain.rpcUrl.includes('127.0.0.1') &&
82
+ !chain.rpcUrl.includes('anvil')) {
83
+ logger.warn(`⚠️ Staging ${chainName} RPC uses HTTP - consider HTTPS for public testnet endpoints`);
84
+ }
85
+ if (chain.privateKey && KNOWN_DEV_PRIVATE_KEYS.includes(chain.privateKey)) {
86
+ throw new config_loader_1.ConfigurationError(`Cannot use Anvil development private key for ${chainName} in staging. ` +
87
+ 'Generate a dedicated testnet wallet for staging deployment.');
88
+ }
89
+ }
90
+ function logStagingWarnings(config) {
91
+ logger.warn('⚠️ STAGING MODE - Using public testnets');
92
+ logger.warn('⚠️ This is NOT production configuration');
93
+ if (config.blockchain?.base?.enabled) {
94
+ validateEVMChainStaging(config.blockchain.base, 'Base', 84532);
95
+ }
96
+ if (config.blockchain?.arbitrum?.enabled) {
97
+ validateEVMChainStaging(config.blockchain.arbitrum, 'Arbitrum', 421614);
98
+ }
99
+ }
100
+ function validateDeploymentMode(config) {
101
+ const mode = config.deploymentMode;
102
+ if (!mode) {
103
+ return;
104
+ }
105
+ if (mode === 'embedded') {
106
+ if (config.localDelivery?.enabled) {
107
+ throw new config_loader_1.ConfigurationError('deploymentMode is set to "embedded" but localDelivery.enabled is true. ' +
108
+ 'Embedded mode uses function handlers (setPacketHandler or setLocalDeliveryHandler) ' +
109
+ 'for in-process packet delivery, not HTTP forwarding. ' +
110
+ 'Either set deploymentMode to "standalone" or disable localDelivery.');
111
+ }
112
+ if (config.adminApi?.enabled) {
113
+ logger.warn('⚠️ deploymentMode is "embedded" but adminApi.enabled is true. ' +
114
+ 'Embedded mode typically uses node.sendPacket() for outgoing packets, ' +
115
+ 'not the admin API HTTP endpoint. Admin API is primarily for standalone ' +
116
+ 'deployments where external processes need to send packets via HTTP.');
117
+ }
118
+ }
119
+ if (mode === 'standalone') {
120
+ if (config.localDelivery?.enabled && !config.localDelivery.handlerUrl) {
121
+ throw new config_loader_1.ConfigurationError('deploymentMode is set to "standalone" with localDelivery.enabled=true ' +
122
+ 'but localDelivery.handlerUrl is missing. Standalone mode requires a ' +
123
+ 'business logic server endpoint for HTTP packet forwarding. ' +
124
+ 'Set localDelivery.handlerUrl to the BLS /handle-packet endpoint ' +
125
+ '(e.g., "http://business-logic:8080").');
126
+ }
127
+ if (!config.adminApi?.enabled) {
128
+ logger.warn('⚠️ deploymentMode is "standalone" but adminApi.enabled is false. ' +
129
+ 'Standalone deployments typically enable the admin API so the external ' +
130
+ 'business logic server can send packets via POST /admin/ilp/send. ' +
131
+ 'Without the admin API, the external BLS cannot initiate outgoing payments.');
132
+ }
133
+ if (!config.localDelivery?.enabled) {
134
+ logger.warn('⚠️ deploymentMode is "standalone" but localDelivery.enabled is false. ' +
135
+ 'Standalone deployments typically forward incoming packets to an external ' +
136
+ 'business logic server via HTTP POST to /handle-packet. ' +
137
+ 'If you intend to use function handlers (setPacketHandler), consider ' +
138
+ 'setting deploymentMode to "embedded" instead.');
139
+ }
140
+ }
141
+ }
142
+ function validateIPAllowlist(config) {
143
+ const allowedIPs = config.adminApi?.allowedIPs;
144
+ const trustProxy = config.adminApi?.trustProxy;
145
+ if (!allowedIPs || allowedIPs.length === 0) {
146
+ if (trustProxy && config.adminApi?.enabled) {
147
+ logger.warn('⚠️ adminApi.trustProxy is enabled but allowedIPs is not set. ' +
148
+ 'trustProxy only affects IP allowlist middleware. It has no effect without allowedIPs.');
149
+ }
150
+ return;
151
+ }
152
+ for (const entry of allowedIPs) {
153
+ if (!entry || typeof entry !== 'string' || entry.trim() === '') {
154
+ throw new config_loader_1.ConfigurationError(`Invalid IP allowlist entry: "${entry}". Each entry must be a non-empty string.`);
155
+ }
156
+ const ip = entry.trim();
157
+ if (ip.includes('/')) {
158
+ try {
159
+ const parts = ip.split('/');
160
+ if (parts.length !== 2 || !parts[1]) {
161
+ throw new Error('CIDR must have exactly one slash');
162
+ }
163
+ const prefix = parseInt(parts[1], 10);
164
+ if (isNaN(prefix) || prefix < 0 || prefix > 128) {
165
+ throw new Error('CIDR prefix must be 0-128');
166
+ }
167
+ }
168
+ catch (err) {
169
+ throw new config_loader_1.ConfigurationError(`Invalid CIDR notation in allowedIPs: "${ip}". ` +
170
+ `Error: ${err instanceof Error ? err.message : 'Unknown error'}`);
171
+ }
172
+ }
173
+ else {
174
+ const ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/;
175
+ const ipv6Regex = /^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}$/;
176
+ if (!ipv4Regex.test(ip) && !ipv6Regex.test(ip)) {
177
+ throw new config_loader_1.ConfigurationError(`Invalid IP address in allowedIPs: "${ip}". Must be valid IPv4 or IPv6 address.`);
178
+ }
179
+ if (ipv4Regex.test(ip)) {
180
+ const octets = ip.split('.').map(Number);
181
+ if (octets.some((octet) => octet > 255)) {
182
+ throw new config_loader_1.ConfigurationError(`Invalid IPv4 address in allowedIPs: "${ip}". Each octet must be 0-255.`);
183
+ }
184
+ }
185
+ }
186
+ }
187
+ if (!trustProxy && config.adminApi?.enabled) {
188
+ logger.info('ℹ️ adminApi.allowedIPs is configured with trustProxy=false. ' +
189
+ 'Client IPs will be taken from direct socket connections. ' +
190
+ 'If behind a reverse proxy (nginx, traefik, ALB), set trustProxy=true ' +
191
+ 'to use X-Forwarded-For header for accurate IP detection.');
192
+ }
193
+ }
194
+ async function validateChainId(config) {
195
+ const validations = [];
196
+ if (config.blockchain?.base?.enabled) {
197
+ validations.push(validateEVMChainId(config.blockchain.base, 'Base', 'BASE_RPC_URL'));
198
+ }
199
+ if (config.blockchain?.arbitrum?.enabled) {
200
+ validations.push(validateEVMChainId(config.blockchain.arbitrum, 'Arbitrum', 'ARBITRUM_RPC_URL'));
201
+ }
202
+ await Promise.all(validations);
203
+ }
204
+ async function validateEVMChainId(chain, chainName, envVarHint) {
205
+ try {
206
+ const response = await fetch(chain.rpcUrl, {
207
+ method: 'POST',
208
+ headers: { 'Content-Type': 'application/json' },
209
+ body: JSON.stringify({
210
+ jsonrpc: '2.0',
211
+ method: 'eth_chainId',
212
+ params: [],
213
+ id: 1,
214
+ }),
215
+ });
216
+ if (!response.ok) {
217
+ logger.warn(`${chainName} chain ID validation failed: RPC endpoint returned HTTP ${response.status}`);
218
+ return;
219
+ }
220
+ const data = (await response.json());
221
+ if (data.error) {
222
+ logger.warn(`${chainName} chain ID validation failed: ${data.error.message}`);
223
+ return;
224
+ }
225
+ if (!data.result) {
226
+ logger.warn(`${chainName} chain ID validation failed: No result from RPC endpoint`);
227
+ return;
228
+ }
229
+ const actualChainId = parseInt(data.result, 16);
230
+ if (actualChainId !== chain.chainId) {
231
+ logger.warn(`⚠️ ${chainName} chain ID mismatch: config expects ${chain.chainId}, RPC returned ${actualChainId}`);
232
+ logger.warn(`⚠️ Verify ${envVarHint} points to correct network`);
233
+ }
234
+ }
235
+ catch (error) {
236
+ logger.warn(`${chainName} chain ID validation failed: ${error.message}`);
237
+ }
238
+ }
239
+ //# sourceMappingURL=environment-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-validator.js","sourceRoot":"","sources":["../../src/config/environment-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { ConfigLoader, ConfigurationError } from './config-loader';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigurationError = exports.ConfigLoader = void 0;
4
+ var config_loader_1 = require("./config-loader");
5
+ Object.defineProperty(exports, "ConfigLoader", { enumerable: true, get: function () { return config_loader_1.ConfigLoader; } });
6
+ Object.defineProperty(exports, "ConfigurationError", { enumerable: true, get: function () { return config_loader_1.ConfigurationError; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;AASA,iDAAmE;AAA1D,6GAAA,YAAY,OAAA;AAAE,mHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,7 @@
1
+ import { KeyManagerConfig } from '../security/key-manager';
2
+ export declare class ConfigurationError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export declare function loadKeyManagerConfig(): KeyManagerConfig;
6
+ export declare function validateKeyManagerConfig(config: KeyManagerConfig): void;
7
+ //# sourceMappingURL=key-manager-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-manager-config.d.ts","sourceRoot":"","sources":["../../src/config/key-manager-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAKjB,MAAM,yBAAyB,CAAC;AAKjC,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAqCD,wBAAgB,oBAAoB,IAAI,gBAAgB,CA4CvD;AAkJD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAsCvE"}