@toon-protocol/connector 3.3.1 → 3.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/dist/btp/btp-claim-types.d.ts +52 -0
  2. package/dist/btp/btp-claim-types.d.ts.map +1 -0
  3. package/dist/btp/btp-claim-types.js +209 -0
  4. package/dist/btp/btp-claim-types.js.map +1 -0
  5. package/dist/btp/btp-client-manager.d.ts +30 -0
  6. package/dist/btp/btp-client-manager.d.ts.map +1 -0
  7. package/dist/btp/btp-client-manager.js +153 -0
  8. package/dist/btp/btp-client-manager.js.map +1 -0
  9. package/dist/btp/btp-client.d.ts +58 -0
  10. package/dist/btp/btp-client.d.ts.map +1 -0
  11. package/dist/btp/btp-client.js +485 -0
  12. package/dist/btp/btp-client.js.map +1 -0
  13. package/dist/btp/btp-message-parser.d.ts +4 -0
  14. package/dist/btp/btp-message-parser.d.ts.map +1 -0
  15. package/dist/btp/btp-message-parser.js +211 -0
  16. package/dist/btp/btp-message-parser.js.map +1 -0
  17. package/dist/btp/btp-server.d.ts +33 -0
  18. package/dist/btp/btp-server.d.ts.map +1 -0
  19. package/dist/btp/btp-server.js +485 -0
  20. package/dist/btp/btp-server.js.map +1 -0
  21. package/dist/btp/btp-types.d.ts +43 -0
  22. package/dist/btp/btp-types.d.ts.map +1 -0
  23. package/dist/btp/btp-types.js +44 -0
  24. package/dist/btp/btp-types.js.map +1 -0
  25. package/dist/btp/inbound-claim-validator.d.ts +20 -0
  26. package/dist/btp/inbound-claim-validator.d.ts.map +1 -0
  27. package/dist/btp/inbound-claim-validator.js +150 -0
  28. package/dist/btp/inbound-claim-validator.js.map +1 -0
  29. package/dist/cli/index.d.ts +3 -0
  30. package/dist/cli/index.d.ts.map +1 -0
  31. package/dist/cli/index.js +175 -0
  32. package/dist/cli/index.js.map +1 -0
  33. package/dist/cli/onboarding-wizard.d.ts +7 -0
  34. package/dist/cli/onboarding-wizard.d.ts.map +1 -0
  35. package/dist/cli/onboarding-wizard.js +257 -0
  36. package/dist/cli/onboarding-wizard.js.map +1 -0
  37. package/dist/cli/types.d.ts +38 -0
  38. package/dist/cli/types.d.ts.map +1 -0
  39. package/dist/cli/types.js +3 -0
  40. package/dist/cli/types.js.map +1 -0
  41. package/dist/config/config-loader.d.ts +24 -0
  42. package/dist/config/config-loader.d.ts.map +1 -0
  43. package/dist/config/config-loader.js +436 -0
  44. package/dist/config/config-loader.js.map +1 -0
  45. package/dist/config/environment-validator.d.ts +4 -0
  46. package/dist/config/environment-validator.d.ts.map +1 -0
  47. package/dist/config/environment-validator.js +239 -0
  48. package/dist/config/environment-validator.js.map +1 -0
  49. package/dist/config/index.d.ts +3 -0
  50. package/dist/config/index.d.ts.map +1 -0
  51. package/dist/config/index.js +7 -0
  52. package/dist/config/index.js.map +1 -0
  53. package/dist/config/key-manager-config.d.ts +7 -0
  54. package/dist/config/key-manager-config.d.ts.map +1 -0
  55. package/dist/config/key-manager-config.js +209 -0
  56. package/dist/config/key-manager-config.js.map +1 -0
  57. package/dist/config/topology-validator.d.ts +14 -0
  58. package/dist/config/topology-validator.d.ts.map +1 -0
  59. package/dist/config/topology-validator.js +142 -0
  60. package/dist/config/topology-validator.js.map +1 -0
  61. package/dist/config/types.d.ts +226 -0
  62. package/dist/config/types.d.ts.map +1 -0
  63. package/dist/config/types.js +52 -0
  64. package/dist/config/types.js.map +1 -0
  65. package/dist/core/connector-node.d.ts +91 -0
  66. package/dist/core/connector-node.d.ts.map +1 -0
  67. package/dist/core/connector-node.js +1322 -0
  68. package/dist/core/connector-node.js.map +1 -0
  69. package/dist/core/local-delivery-client.d.ts +16 -0
  70. package/dist/core/local-delivery-client.d.ts.map +1 -0
  71. package/dist/core/local-delivery-client.js +160 -0
  72. package/dist/core/local-delivery-client.js.map +1 -0
  73. package/dist/core/packet-handler.d.ts +57 -0
  74. package/dist/core/packet-handler.d.ts.map +1 -0
  75. package/dist/core/packet-handler.js +655 -0
  76. package/dist/core/packet-handler.js.map +1 -0
  77. package/dist/core/payment-handler.d.ts +25 -0
  78. package/dist/core/payment-handler.d.ts.map +1 -0
  79. package/dist/core/payment-handler.js +104 -0
  80. package/dist/core/payment-handler.js.map +1 -0
  81. package/dist/discovery/index.d.ts +3 -0
  82. package/dist/discovery/index.d.ts.map +1 -0
  83. package/dist/discovery/index.js +6 -0
  84. package/dist/discovery/index.js.map +1 -0
  85. package/dist/discovery/peer-discovery-service.d.ts +29 -0
  86. package/dist/discovery/peer-discovery-service.d.ts.map +1 -0
  87. package/dist/discovery/peer-discovery-service.js +230 -0
  88. package/dist/discovery/peer-discovery-service.js.map +1 -0
  89. package/dist/discovery/types.d.ts +38 -0
  90. package/dist/discovery/types.d.ts.map +1 -0
  91. package/dist/discovery/types.js +3 -0
  92. package/dist/discovery/types.js.map +1 -0
  93. package/dist/encoding/oer-parser.d.ts +39 -0
  94. package/dist/encoding/oer-parser.d.ts.map +1 -0
  95. package/dist/encoding/oer-parser.js +154 -0
  96. package/dist/encoding/oer-parser.js.map +1 -0
  97. package/dist/facilitator/index.d.ts +2 -0
  98. package/dist/facilitator/index.d.ts.map +1 -0
  99. package/dist/facilitator/index.js +7 -0
  100. package/dist/facilitator/index.js.map +1 -0
  101. package/dist/facilitator/spsp-client.d.ts +18 -0
  102. package/dist/facilitator/spsp-client.d.ts.map +1 -0
  103. package/dist/facilitator/spsp-client.js +95 -0
  104. package/dist/facilitator/spsp-client.js.map +1 -0
  105. package/dist/http/admin-api-inventory.d.ts +29 -0
  106. package/dist/http/admin-api-inventory.d.ts.map +1 -0
  107. package/dist/http/admin-api-inventory.js +480 -0
  108. package/dist/http/admin-api-inventory.js.map +1 -0
  109. package/dist/http/admin-api.d.ts +182 -0
  110. package/dist/http/admin-api.d.ts.map +1 -0
  111. package/dist/http/admin-api.js +1324 -0
  112. package/dist/http/admin-api.js.map +1 -0
  113. package/dist/http/admin-server.d.ts +49 -0
  114. package/dist/http/admin-server.d.ts.map +1 -0
  115. package/dist/http/admin-server.js +160 -0
  116. package/dist/http/admin-server.js.map +1 -0
  117. package/dist/http/health-server.d.ts +22 -0
  118. package/dist/http/health-server.d.ts.map +1 -0
  119. package/dist/http/health-server.js +192 -0
  120. package/dist/http/health-server.js.map +1 -0
  121. package/dist/http/ilp-send-handler.d.ts +15 -0
  122. package/dist/http/ilp-send-handler.d.ts.map +1 -0
  123. package/dist/http/ilp-send-handler.js +167 -0
  124. package/dist/http/ilp-send-handler.js.map +1 -0
  125. package/dist/http/types.d.ts +43 -0
  126. package/dist/http/types.d.ts.map +1 -0
  127. package/dist/http/types.js +3 -0
  128. package/dist/http/types.js.map +1 -0
  129. package/dist/index.d.ts +2 -0
  130. package/dist/index.d.ts.map +1 -0
  131. package/dist/index.js +5 -0
  132. package/dist/index.js.map +1 -0
  133. package/dist/lib.d.ts +22 -0
  134. package/dist/lib.d.ts.map +1 -0
  135. package/dist/lib.js +39 -0
  136. package/dist/lib.js.map +1 -0
  137. package/dist/main.d.ts +4 -0
  138. package/dist/main.d.ts.map +1 -0
  139. package/dist/main.js +79 -0
  140. package/dist/main.js.map +1 -0
  141. package/dist/observability/metrics-registry.d.ts +39 -0
  142. package/dist/observability/metrics-registry.d.ts.map +1 -0
  143. package/dist/observability/metrics-registry.js +151 -0
  144. package/dist/observability/metrics-registry.js.map +1 -0
  145. package/dist/routing/packet-processor.d.ts +36 -0
  146. package/dist/routing/packet-processor.d.ts.map +1 -0
  147. package/dist/routing/packet-processor.js +112 -0
  148. package/dist/routing/packet-processor.js.map +1 -0
  149. package/dist/routing/packet-worker.d.ts +10 -0
  150. package/dist/routing/packet-worker.d.ts.map +1 -0
  151. package/dist/routing/packet-worker.js +34 -0
  152. package/dist/routing/packet-worker.js.map +1 -0
  153. package/dist/routing/routing-table.d.ts +15 -0
  154. package/dist/routing/routing-table.d.ts.map +1 -0
  155. package/dist/routing/routing-table.js +63 -0
  156. package/dist/routing/routing-table.js.map +1 -0
  157. package/dist/routing/worker-pool.d.ts +43 -0
  158. package/dist/routing/worker-pool.d.ts.map +1 -0
  159. package/dist/routing/worker-pool.js +228 -0
  160. package/dist/routing/worker-pool.js.map +1 -0
  161. package/dist/security/alert-notifier.d.ts +34 -0
  162. package/dist/security/alert-notifier.d.ts.map +1 -0
  163. package/dist/security/alert-notifier.js +136 -0
  164. package/dist/security/alert-notifier.js.map +1 -0
  165. package/dist/security/audit-logger.d.ts +34 -0
  166. package/dist/security/audit-logger.d.ts.map +1 -0
  167. package/dist/security/audit-logger.js +132 -0
  168. package/dist/security/audit-logger.js.map +1 -0
  169. package/dist/security/backends/environment-backend.d.ts +15 -0
  170. package/dist/security/backends/environment-backend.d.ts.map +1 -0
  171. package/dist/security/backends/environment-backend.js +56 -0
  172. package/dist/security/backends/environment-backend.js.map +1 -0
  173. package/dist/security/fraud-detector.d.ts +79 -0
  174. package/dist/security/fraud-detector.d.ts.map +1 -0
  175. package/dist/security/fraud-detector.js +147 -0
  176. package/dist/security/fraud-detector.js.map +1 -0
  177. package/dist/security/key-manager-signer.d.ts +15 -0
  178. package/dist/security/key-manager-signer.d.ts.map +1 -0
  179. package/dist/security/key-manager-signer.js +91 -0
  180. package/dist/security/key-manager-signer.js.map +1 -0
  181. package/dist/security/key-manager.d.ts +69 -0
  182. package/dist/security/key-manager.d.ts.map +1 -0
  183. package/dist/security/key-manager.js +79 -0
  184. package/dist/security/key-manager.js.map +1 -0
  185. package/dist/security/key-rotation-manager.d.ts +27 -0
  186. package/dist/security/key-rotation-manager.d.ts.map +1 -0
  187. package/dist/security/key-rotation-manager.js +142 -0
  188. package/dist/security/key-rotation-manager.js.map +1 -0
  189. package/dist/security/rate-limit-config.d.ts +7 -0
  190. package/dist/security/rate-limit-config.d.ts.map +1 -0
  191. package/dist/security/rate-limit-config.js +57 -0
  192. package/dist/security/rate-limit-config.js.map +1 -0
  193. package/dist/security/rate-limiter.d.ts +46 -0
  194. package/dist/security/rate-limiter.d.ts.map +1 -0
  195. package/dist/security/rate-limiter.js +170 -0
  196. package/dist/security/rate-limiter.js.map +1 -0
  197. package/dist/security/reputation-tracker.d.ts +30 -0
  198. package/dist/security/reputation-tracker.d.ts.map +1 -0
  199. package/dist/security/reputation-tracker.js +111 -0
  200. package/dist/security/reputation-tracker.js.map +1 -0
  201. package/dist/security/rules/balance-manipulation-rule.d.ts +23 -0
  202. package/dist/security/rules/balance-manipulation-rule.d.ts.map +1 -0
  203. package/dist/security/rules/balance-manipulation-rule.js +70 -0
  204. package/dist/security/rules/balance-manipulation-rule.js.map +1 -0
  205. package/dist/security/rules/double-spend-detection-rule.d.ts +23 -0
  206. package/dist/security/rules/double-spend-detection-rule.d.ts.map +1 -0
  207. package/dist/security/rules/double-spend-detection-rule.js +61 -0
  208. package/dist/security/rules/double-spend-detection-rule.js.map +1 -0
  209. package/dist/security/rules/rapid-channel-closure-rule.d.ts +16 -0
  210. package/dist/security/rules/rapid-channel-closure-rule.d.ts.map +1 -0
  211. package/dist/security/rules/rapid-channel-closure-rule.js +57 -0
  212. package/dist/security/rules/rapid-channel-closure-rule.js.map +1 -0
  213. package/dist/security/rules/sudden-traffic-spike-rule.d.ts +18 -0
  214. package/dist/security/rules/sudden-traffic-spike-rule.d.ts.map +1 -0
  215. package/dist/security/rules/sudden-traffic-spike-rule.js +92 -0
  216. package/dist/security/rules/sudden-traffic-spike-rule.js.map +1 -0
  217. package/dist/security/rules/unusual-settlement-amount-rule.d.ts +12 -0
  218. package/dist/security/rules/unusual-settlement-amount-rule.d.ts.map +1 -0
  219. package/dist/security/rules/unusual-settlement-amount-rule.js +33 -0
  220. package/dist/security/rules/unusual-settlement-amount-rule.js.map +1 -0
  221. package/dist/security/token-bucket.d.ts +16 -0
  222. package/dist/security/token-bucket.d.ts.map +1 -0
  223. package/dist/security/token-bucket.js +49 -0
  224. package/dist/security/token-bucket.js.map +1 -0
  225. package/dist/security/violation-counter.d.ts +11 -0
  226. package/dist/security/violation-counter.d.ts.map +1 -0
  227. package/dist/security/violation-counter.js +61 -0
  228. package/dist/security/violation-counter.js.map +1 -0
  229. package/dist/settlement/account-id-generator.d.ts +4 -0
  230. package/dist/settlement/account-id-generator.d.ts.map +1 -0
  231. package/dist/settlement/account-id-generator.js +38 -0
  232. package/dist/settlement/account-id-generator.js.map +1 -0
  233. package/dist/settlement/account-manager.d.ts +51 -0
  234. package/dist/settlement/account-manager.d.ts.map +1 -0
  235. package/dist/settlement/account-manager.js +459 -0
  236. package/dist/settlement/account-manager.js.map +1 -0
  237. package/dist/settlement/account-metadata.d.ts +11 -0
  238. package/dist/settlement/account-metadata.d.ts.map +1 -0
  239. package/dist/settlement/account-metadata.js +40 -0
  240. package/dist/settlement/account-metadata.js.map +1 -0
  241. package/dist/settlement/channel-manager.d.ts +67 -0
  242. package/dist/settlement/channel-manager.d.ts.map +1 -0
  243. package/dist/settlement/channel-manager.js +226 -0
  244. package/dist/settlement/channel-manager.js.map +1 -0
  245. package/dist/settlement/claim-receiver-db-schema.d.ts +4 -0
  246. package/dist/settlement/claim-receiver-db-schema.d.ts.map +1 -0
  247. package/dist/settlement/claim-receiver-db-schema.js +25 -0
  248. package/dist/settlement/claim-receiver-db-schema.js.map +1 -0
  249. package/dist/settlement/claim-receiver.d.ts +67 -0
  250. package/dist/settlement/claim-receiver.d.ts.map +1 -0
  251. package/dist/settlement/claim-receiver.js +707 -0
  252. package/dist/settlement/claim-receiver.js.map +1 -0
  253. package/dist/settlement/claim-redemption-service.d.ts +39 -0
  254. package/dist/settlement/claim-redemption-service.d.ts.map +1 -0
  255. package/dist/settlement/claim-redemption-service.js +189 -0
  256. package/dist/settlement/claim-redemption-service.js.map +1 -0
  257. package/dist/settlement/claim-sender-db-schema.d.ts +3 -0
  258. package/dist/settlement/claim-sender-db-schema.d.ts.map +1 -0
  259. package/dist/settlement/claim-sender-db-schema.js +18 -0
  260. package/dist/settlement/claim-sender-db-schema.js.map +1 -0
  261. package/dist/settlement/claim-sender.d.ts +24 -0
  262. package/dist/settlement/claim-sender.d.ts.map +1 -0
  263. package/dist/settlement/claim-sender.js +146 -0
  264. package/dist/settlement/claim-sender.js.map +1 -0
  265. package/dist/settlement/eip712-helper.d.ts +13 -0
  266. package/dist/settlement/eip712-helper.d.ts.map +1 -0
  267. package/dist/settlement/eip712-helper.js +24 -0
  268. package/dist/settlement/eip712-helper.js.map +1 -0
  269. package/dist/settlement/in-memory-ledger-client.d.ts +40 -0
  270. package/dist/settlement/in-memory-ledger-client.d.ts.map +1 -0
  271. package/dist/settlement/in-memory-ledger-client.js +177 -0
  272. package/dist/settlement/in-memory-ledger-client.js.map +1 -0
  273. package/dist/settlement/ledger-client.d.ts +22 -0
  274. package/dist/settlement/ledger-client.d.ts.map +1 -0
  275. package/dist/settlement/ledger-client.js +3 -0
  276. package/dist/settlement/ledger-client.js.map +1 -0
  277. package/dist/settlement/metrics-collector.d.ts +29 -0
  278. package/dist/settlement/metrics-collector.d.ts.map +1 -0
  279. package/dist/settlement/metrics-collector.js +81 -0
  280. package/dist/settlement/metrics-collector.js.map +1 -0
  281. package/dist/settlement/mina-payment-channel-sdk.d.ts +73 -0
  282. package/dist/settlement/mina-payment-channel-sdk.d.ts.map +1 -0
  283. package/dist/settlement/mina-payment-channel-sdk.js +538 -0
  284. package/dist/settlement/mina-payment-channel-sdk.js.map +1 -0
  285. package/dist/settlement/payment-channel-sdk.d.ts +59 -0
  286. package/dist/settlement/payment-channel-sdk.d.ts.map +1 -0
  287. package/dist/settlement/payment-channel-sdk.js +677 -0
  288. package/dist/settlement/payment-channel-sdk.js.map +1 -0
  289. package/dist/settlement/per-packet-claim-service.d.ts +39 -0
  290. package/dist/settlement/per-packet-claim-service.d.ts.map +1 -0
  291. package/dist/settlement/per-packet-claim-service.js +342 -0
  292. package/dist/settlement/per-packet-claim-service.js.map +1 -0
  293. package/dist/settlement/privacy/index.d.ts +3 -0
  294. package/dist/settlement/privacy/index.d.ts.map +1 -0
  295. package/dist/settlement/privacy/index.js +11 -0
  296. package/dist/settlement/privacy/index.js.map +1 -0
  297. package/dist/settlement/privacy/nip59-claim-wrapper.d.ts +60 -0
  298. package/dist/settlement/privacy/nip59-claim-wrapper.d.ts.map +1 -0
  299. package/dist/settlement/privacy/nip59-claim-wrapper.js +361 -0
  300. package/dist/settlement/privacy/nip59-claim-wrapper.js.map +1 -0
  301. package/dist/settlement/provider/chain-provider-registry.d.ts +20 -0
  302. package/dist/settlement/provider/chain-provider-registry.d.ts.map +1 -0
  303. package/dist/settlement/provider/chain-provider-registry.js +53 -0
  304. package/dist/settlement/provider/chain-provider-registry.js.map +1 -0
  305. package/dist/settlement/provider/evm-payment-channel-provider.d.ts +31 -0
  306. package/dist/settlement/provider/evm-payment-channel-provider.d.ts.map +1 -0
  307. package/dist/settlement/provider/evm-payment-channel-provider.js +207 -0
  308. package/dist/settlement/provider/evm-payment-channel-provider.js.map +1 -0
  309. package/dist/settlement/provider/index.d.ts +6 -0
  310. package/dist/settlement/provider/index.d.ts.map +1 -0
  311. package/dist/settlement/provider/index.js +16 -0
  312. package/dist/settlement/provider/index.js.map +1 -0
  313. package/dist/settlement/provider/mina-payment-channel-provider.d.ts +43 -0
  314. package/dist/settlement/provider/mina-payment-channel-provider.d.ts.map +1 -0
  315. package/dist/settlement/provider/mina-payment-channel-provider.js +330 -0
  316. package/dist/settlement/provider/mina-payment-channel-provider.js.map +1 -0
  317. package/dist/settlement/provider/payment-channel-provider.d.ts +88 -0
  318. package/dist/settlement/provider/payment-channel-provider.d.ts.map +1 -0
  319. package/dist/settlement/provider/payment-channel-provider.js +3 -0
  320. package/dist/settlement/provider/payment-channel-provider.js.map +1 -0
  321. package/dist/settlement/provider/solana-payment-channel-provider.d.ts +38 -0
  322. package/dist/settlement/provider/solana-payment-channel-provider.d.ts.map +1 -0
  323. package/dist/settlement/provider/solana-payment-channel-provider.js +262 -0
  324. package/dist/settlement/provider/solana-payment-channel-provider.js.map +1 -0
  325. package/dist/settlement/sent-claims-queries.d.ts +23 -0
  326. package/dist/settlement/sent-claims-queries.d.ts.map +1 -0
  327. package/dist/settlement/sent-claims-queries.js +134 -0
  328. package/dist/settlement/sent-claims-queries.js.map +1 -0
  329. package/dist/settlement/settlement-api.d.ts +37 -0
  330. package/dist/settlement/settlement-api.d.ts.map +1 -0
  331. package/dist/settlement/settlement-api.js +172 -0
  332. package/dist/settlement/settlement-api.js.map +1 -0
  333. package/dist/settlement/settlement-coordinator.d.ts +47 -0
  334. package/dist/settlement/settlement-coordinator.d.ts.map +1 -0
  335. package/dist/settlement/settlement-coordinator.js +166 -0
  336. package/dist/settlement/settlement-coordinator.js.map +1 -0
  337. package/dist/settlement/settlement-executor.d.ts +51 -0
  338. package/dist/settlement/settlement-executor.d.ts.map +1 -0
  339. package/dist/settlement/settlement-executor.js +265 -0
  340. package/dist/settlement/settlement-executor.js.map +1 -0
  341. package/dist/settlement/settlement-monitor.d.ts +30 -0
  342. package/dist/settlement/settlement-monitor.d.ts.map +1 -0
  343. package/dist/settlement/settlement-monitor.js +141 -0
  344. package/dist/settlement/settlement-monitor.js.map +1 -0
  345. package/dist/settlement/solana-payment-channel-sdk.d.ts +79 -0
  346. package/dist/settlement/solana-payment-channel-sdk.d.ts.map +1 -0
  347. package/dist/settlement/solana-payment-channel-sdk.js +636 -0
  348. package/dist/settlement/solana-payment-channel-sdk.js.map +1 -0
  349. package/dist/settlement/tigerbeetle-batch-writer.d.ts +58 -0
  350. package/dist/settlement/tigerbeetle-batch-writer.d.ts.map +1 -0
  351. package/dist/settlement/tigerbeetle-batch-writer.js +162 -0
  352. package/dist/settlement/tigerbeetle-batch-writer.js.map +1 -0
  353. package/dist/settlement/tigerbeetle-client.d.ts +40 -0
  354. package/dist/settlement/tigerbeetle-client.d.ts.map +1 -0
  355. package/dist/settlement/tigerbeetle-client.js +279 -0
  356. package/dist/settlement/tigerbeetle-client.js.map +1 -0
  357. package/dist/settlement/tigerbeetle-errors.d.ts +23 -0
  358. package/dist/settlement/tigerbeetle-errors.d.ts.map +1 -0
  359. package/dist/settlement/tigerbeetle-errors.js +58 -0
  360. package/dist/settlement/tigerbeetle-errors.js.map +1 -0
  361. package/dist/settlement/types.d.ts +64 -0
  362. package/dist/settlement/types.d.ts.map +1 -0
  363. package/dist/settlement/types.js +42 -0
  364. package/dist/settlement/types.js.map +1 -0
  365. package/dist/settlement/unified-settlement-executor.d.ts +34 -0
  366. package/dist/settlement/unified-settlement-executor.d.ts.map +1 -0
  367. package/dist/settlement/unified-settlement-executor.js +145 -0
  368. package/dist/settlement/unified-settlement-executor.js.map +1 -0
  369. package/dist/test-utils/index.d.ts +3 -0
  370. package/dist/test-utils/index.d.ts.map +1 -0
  371. package/dist/test-utils/index.js +15 -0
  372. package/dist/test-utils/index.js.map +1 -0
  373. package/dist/test-utils/isolated-test-env.d.ts +31 -0
  374. package/dist/test-utils/isolated-test-env.d.ts.map +1 -0
  375. package/dist/test-utils/isolated-test-env.js +127 -0
  376. package/dist/test-utils/isolated-test-env.js.map +1 -0
  377. package/dist/test-utils/mock-factories-patch.d.ts +2 -0
  378. package/dist/test-utils/mock-factories-patch.d.ts.map +1 -0
  379. package/dist/test-utils/mock-factories-patch.js +3 -0
  380. package/dist/test-utils/mock-factories-patch.js.map +1 -0
  381. package/dist/test-utils/mock-factories.d.ts +22 -0
  382. package/dist/test-utils/mock-factories.d.ts.map +1 -0
  383. package/dist/test-utils/mock-factories.js +56 -0
  384. package/dist/test-utils/mock-factories.js.map +1 -0
  385. package/dist/transport/direct-transport-provider.d.ts +12 -0
  386. package/dist/transport/direct-transport-provider.d.ts.map +1 -0
  387. package/dist/transport/direct-transport-provider.js +27 -0
  388. package/dist/transport/direct-transport-provider.js.map +1 -0
  389. package/dist/transport/index.d.ts +7 -0
  390. package/dist/transport/index.d.ts.map +1 -0
  391. package/dist/transport/index.js +16 -0
  392. package/dist/transport/index.js.map +1 -0
  393. package/dist/transport/managed-anon-client.d.ts +47 -0
  394. package/dist/transport/managed-anon-client.d.ts.map +1 -0
  395. package/dist/transport/managed-anon-client.js +265 -0
  396. package/dist/transport/managed-anon-client.js.map +1 -0
  397. package/dist/transport/probe-tcp-port.d.ts +3 -0
  398. package/dist/transport/probe-tcp-port.d.ts.map +1 -0
  399. package/dist/transport/probe-tcp-port.js +59 -0
  400. package/dist/transport/probe-tcp-port.js.map +1 -0
  401. package/dist/transport/socks-transport-provider.d.ts +29 -0
  402. package/dist/transport/socks-transport-provider.d.ts.map +1 -0
  403. package/dist/transport/socks-transport-provider.js +136 -0
  404. package/dist/transport/socks-transport-provider.js.map +1 -0
  405. package/dist/transport/socks-url.d.ts +6 -0
  406. package/dist/transport/socks-url.d.ts.map +1 -0
  407. package/dist/transport/socks-url.js +29 -0
  408. package/dist/transport/socks-url.js.map +1 -0
  409. package/dist/transport/transport-provider.d.ts +9 -0
  410. package/dist/transport/transport-provider.d.ts.map +1 -0
  411. package/dist/transport/transport-provider.js +3 -0
  412. package/dist/transport/transport-provider.js.map +1 -0
  413. package/dist/utils/connection-pool.d.ts +42 -0
  414. package/dist/utils/connection-pool.d.ts.map +1 -0
  415. package/dist/utils/connection-pool.js +209 -0
  416. package/dist/utils/connection-pool.js.map +1 -0
  417. package/dist/utils/evm-rpc-connection-pool.d.ts +8 -0
  418. package/dist/utils/evm-rpc-connection-pool.d.ts.map +1 -0
  419. package/dist/utils/evm-rpc-connection-pool.js +40 -0
  420. package/dist/utils/evm-rpc-connection-pool.js.map +1 -0
  421. package/dist/utils/logger.d.ts +6 -0
  422. package/dist/utils/logger.d.ts.map +1 -0
  423. package/dist/utils/logger.js +58 -0
  424. package/dist/utils/logger.js.map +1 -0
  425. package/dist/utils/optional-require.d.ts +2 -0
  426. package/dist/utils/optional-require.d.ts.map +1 -0
  427. package/dist/utils/optional-require.js +54 -0
  428. package/dist/utils/optional-require.js.map +1 -0
  429. package/dist/utils/redact.d.ts +3 -0
  430. package/dist/utils/redact.d.ts.map +1 -0
  431. package/dist/utils/redact.js +21 -0
  432. package/dist/utils/redact.js.map +1 -0
  433. package/dist/wallet/audit-logger.d.ts +22 -0
  434. package/dist/wallet/audit-logger.d.ts.map +1 -0
  435. package/dist/wallet/audit-logger.js +120 -0
  436. package/dist/wallet/audit-logger.js.map +1 -0
  437. package/dist/wallet/fraud-detector-interface.d.ts +14 -0
  438. package/dist/wallet/fraud-detector-interface.d.ts.map +1 -0
  439. package/dist/wallet/fraud-detector-interface.js +3 -0
  440. package/dist/wallet/fraud-detector-interface.js.map +1 -0
  441. package/dist/wallet/key-manager.d.ts +6 -0
  442. package/dist/wallet/key-manager.d.ts.map +1 -0
  443. package/dist/wallet/key-manager.js +3 -0
  444. package/dist/wallet/key-manager.js.map +1 -0
  445. package/dist/wallet/rate-limiter.d.ts +26 -0
  446. package/dist/wallet/rate-limiter.d.ts.map +1 -0
  447. package/dist/wallet/rate-limiter.js +114 -0
  448. package/dist/wallet/rate-limiter.js.map +1 -0
  449. package/dist/wallet/suspicious-activity-detector.d.ts +25 -0
  450. package/dist/wallet/suspicious-activity-detector.d.ts.map +1 -0
  451. package/dist/wallet/suspicious-activity-detector.js +97 -0
  452. package/dist/wallet/suspicious-activity-detector.js.map +1 -0
  453. package/dist/wallet/treasury-wallet.d.ts +20 -0
  454. package/dist/wallet/treasury-wallet.d.ts.map +1 -0
  455. package/dist/wallet/treasury-wallet.js +151 -0
  456. package/dist/wallet/treasury-wallet.js.map +1 -0
  457. package/dist/wallet/wallet-authentication.d.ts +31 -0
  458. package/dist/wallet/wallet-authentication.d.ts.map +1 -0
  459. package/dist/wallet/wallet-authentication.js +102 -0
  460. package/dist/wallet/wallet-authentication.js.map +1 -0
  461. package/dist/wallet/wallet-db-schema.d.ts +11 -0
  462. package/dist/wallet/wallet-db-schema.d.ts.map +1 -0
  463. package/dist/wallet/wallet-db-schema.js +79 -0
  464. package/dist/wallet/wallet-db-schema.js.map +1 -0
  465. package/dist/wallet/wallet-security.d.ts +58 -0
  466. package/dist/wallet/wallet-security.d.ts.map +1 -0
  467. package/dist/wallet/wallet-security.js +148 -0
  468. package/dist/wallet/wallet-security.js.map +1 -0
  469. package/dist/wallet/wallet-seed-manager.d.ts +65 -0
  470. package/dist/wallet/wallet-seed-manager.d.ts.map +1 -0
  471. package/dist/wallet/wallet-seed-manager.js +418 -0
  472. package/dist/wallet/wallet-seed-manager.js.map +1 -0
  473. package/package.json +1 -1
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SettlementExecutor = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const events_1 = tslib_1.__importDefault(require("events"));
6
+ const btp_claim_types_1 = require("../btp/btp-claim-types");
7
+ class SettlementExecutor extends events_1.default {
8
+ config;
9
+ accountManager;
10
+ chainProviderRegistry;
11
+ settlementMonitor;
12
+ logger;
13
+ boundHandleSettlement;
14
+ perPacketClaimService = null;
15
+ claimReceiver = null;
16
+ channelManager = null;
17
+ settlementChain = Promise.resolve();
18
+ stopping = false;
19
+ constructor(config, accountManager, chainProviderRegistry, settlementMonitor, logger) {
20
+ super();
21
+ this.config = config;
22
+ this.accountManager = accountManager;
23
+ this.chainProviderRegistry = chainProviderRegistry;
24
+ this.settlementMonitor = settlementMonitor;
25
+ this.logger = logger.child({ component: 'settlement-executor' });
26
+ this.boundHandleSettlement = this.handleSettlement.bind(this);
27
+ this.logger.info({
28
+ nodeId: config.nodeId,
29
+ defaultSettlementTimeout: config.defaultSettlementTimeout,
30
+ }, 'Settlement executor initialized');
31
+ }
32
+ setPerPacketClaimService(service) {
33
+ this.perPacketClaimService = service;
34
+ this.logger.info('PerPacketClaimService set for on-chain settlement');
35
+ }
36
+ setClaimReceiver(receiver) {
37
+ this.claimReceiver = receiver;
38
+ this.logger.info('ClaimReceiver set for on-chain settlement');
39
+ }
40
+ setChannelManager(channelManager) {
41
+ this.channelManager = channelManager;
42
+ this.logger.info('ChannelManager set for channel lookup');
43
+ }
44
+ start() {
45
+ this.stopping = false;
46
+ this.settlementChain = Promise.resolve();
47
+ this.settlementMonitor.on('SETTLEMENT_REQUIRED', this.boundHandleSettlement);
48
+ this.logger.info('Settlement executor started');
49
+ }
50
+ async stop() {
51
+ this.stopping = true;
52
+ this.settlementMonitor.off('SETTLEMENT_REQUIRED', this.boundHandleSettlement);
53
+ await this.settlementChain;
54
+ this.logger.info('Settlement executor stopped (all in-flight settlements drained)');
55
+ }
56
+ handleSettlement(event) {
57
+ if (this.stopping) {
58
+ this.logger.warn({ peerId: event.peerId, tokenId: event.tokenId }, 'Settlement event ignored during shutdown');
59
+ return;
60
+ }
61
+ this.settlementChain = this.settlementChain.then(() => this._processSettlement(event));
62
+ }
63
+ async _processSettlement(event) {
64
+ this.logger.info({
65
+ peerId: event.peerId,
66
+ tokenId: event.tokenId,
67
+ currentBalance: event.currentBalance.toString(),
68
+ threshold: event.threshold.toString(),
69
+ exceedsBy: event.exceedsBy.toString(),
70
+ }, 'Settlement event received');
71
+ this.settlementMonitor.markSettlementInProgress(event.peerId, event.tokenId);
72
+ this.logger.info({ peerId: event.peerId, tokenId: event.tokenId }, 'Marked settlement in progress');
73
+ try {
74
+ await this.executeSettlement(event);
75
+ this.settlementMonitor.markSettlementCompleted(event.peerId, event.tokenId);
76
+ this.logger.info({ peerId: event.peerId, tokenId: event.tokenId }, 'Settlement completed, state reset to IDLE');
77
+ }
78
+ catch (error) {
79
+ const errorMessage = error instanceof Error ? error.message : String(error);
80
+ const errorStack = error instanceof Error ? error.stack : undefined;
81
+ this.logger.error({
82
+ errorMessage,
83
+ errorStack,
84
+ errorType: error?.constructor?.name,
85
+ peerId: event.peerId,
86
+ tokenId: event.tokenId,
87
+ }, 'Settlement failed');
88
+ }
89
+ }
90
+ async executeSettlement(event) {
91
+ const { peerId, tokenId, currentBalance } = event;
92
+ this.logger.info({ peerId, tokenId, currentBalance: currentBalance.toString() }, 'Executing settlement');
93
+ const chain = this.config.peerIdToChainMap.get(peerId);
94
+ if (!chain) {
95
+ throw new Error(`No chain configured for peer: ${peerId}`);
96
+ }
97
+ const provider = this.chainProviderRegistry.getProviderForPeer({ peerId, chain });
98
+ if (!provider) {
99
+ throw new Error(`No provider registered for chain: ${chain} (peer: ${peerId})`);
100
+ }
101
+ const tokenAddress = this.config.tokenAddressMap.get(tokenId);
102
+ if (!tokenAddress) {
103
+ this.logger.error({ tokenId, availableTokens: Array.from(this.config.tokenAddressMap.keys()) }, 'Token address not found');
104
+ throw new Error(`Token address not found for tokenId: ${tokenId}`);
105
+ }
106
+ this.logger.debug({ tokenId, tokenAddress, chain }, 'Token address resolved');
107
+ this.logger.debug({ peerId, tokenId }, 'Searching for existing channel');
108
+ const channelId = await this.findChannelForPeer(peerId, tokenId);
109
+ if (!channelId) {
110
+ this.logger.info({ peerId, tokenId, tokenAddress }, 'No existing channel found, opening new channel');
111
+ await this.openChannelAndSettle(peerId, tokenId, tokenAddress, currentBalance, provider);
112
+ }
113
+ else {
114
+ this.logger.info({ peerId, tokenId, channelId }, 'Using existing channel for settlement');
115
+ await this.settleViaExistingChannel(channelId, peerId, tokenId, currentBalance, provider);
116
+ }
117
+ }
118
+ async findChannelForPeer(peerId, tokenId) {
119
+ try {
120
+ if (!this.channelManager) {
121
+ this.logger.warn({ peerId }, 'ChannelManager not set, cannot look up channels');
122
+ return null;
123
+ }
124
+ const metadata = this.channelManager.getChannelForPeer(peerId, tokenId);
125
+ if (!metadata) {
126
+ return null;
127
+ }
128
+ if (metadata.status === 'open') {
129
+ return metadata.channelId;
130
+ }
131
+ return null;
132
+ }
133
+ catch (error) {
134
+ this.logger.error({ error, peerId, tokenId }, 'Failed to find channel for peer');
135
+ return null;
136
+ }
137
+ }
138
+ async openChannelAndSettle(peerId, tokenId, tokenAddress, amount, provider) {
139
+ const initialDeposit = amount * BigInt(this.config.initialDepositMultiplier);
140
+ const peerAddress = this.config.peerIdToAddressMap.get(peerId);
141
+ if (!peerAddress) {
142
+ throw new Error(`Peer address not found for peerId: ${peerId}`);
143
+ }
144
+ this.logger.info({
145
+ peerId,
146
+ tokenId,
147
+ tokenAddress,
148
+ peerAddress,
149
+ initialDeposit: initialDeposit.toString(),
150
+ }, 'Opening new payment channel');
151
+ const { channelId, txHash } = await this.retryWithBackoff(async () => await provider.openChannel(peerAddress, this.config.defaultSettlementTimeout), 'openChannel', this.config.maxRetries);
152
+ this.logger.info({
153
+ channelId,
154
+ peerId,
155
+ tokenId,
156
+ txHash,
157
+ }, 'Channel opened, depositing initial funds');
158
+ await this.retryWithBackoff(async () => await provider.deposit(channelId, initialDeposit.toString()), 'deposit', this.config.maxRetries);
159
+ this.logger.info({
160
+ channelId,
161
+ peerId,
162
+ tokenId,
163
+ initialDeposit: initialDeposit.toString(),
164
+ }, 'Channel funded for settlement');
165
+ await this.accountManager.recordSettlement(peerId, tokenId, amount);
166
+ this.logger.info({ peerId, tokenId, amount: amount.toString() }, 'TigerBeetle balance updated after channel deposit');
167
+ this.emit('CHANNEL_ACTIVITY', { channelId });
168
+ return channelId;
169
+ }
170
+ async settleViaExistingChannel(channelId, peerId, tokenId, amount, provider) {
171
+ const receivedClaim = this.claimReceiver
172
+ ? await this.claimReceiver.getLatestVerifiedClaimForChannel(peerId, channelId)
173
+ : null;
174
+ const sentClaim = this.perPacketClaimService?.getLatestClaim(channelId) ?? null;
175
+ const latestClaim = receivedClaim ?? sentClaim;
176
+ if (!latestClaim || !(0, btp_claim_types_1.isEVMClaim)(latestClaim)) {
177
+ this.logger.error({ channelId, peerId }, 'No per-packet claim available for settlement — cannot compute balance proof without chain-specific state');
178
+ throw new Error(`No per-packet claim available for channel ${channelId}`);
179
+ }
180
+ const balanceProofParams = {
181
+ channelId,
182
+ nonce: latestClaim.nonce,
183
+ transferredAmount: latestClaim.transferredAmount,
184
+ lockedAmount: latestClaim.lockedAmount,
185
+ locksRoot: latestClaim.locksRoot,
186
+ };
187
+ const claimSignature = latestClaim.signature;
188
+ this.logger.info({
189
+ channelId,
190
+ nonce: latestClaim.nonce,
191
+ transferred: latestClaim.transferredAmount,
192
+ }, 'Using latest per-packet claim for on-chain settlement (claimFromChannel)');
193
+ await this.retryWithBackoff(async () => await provider.claimFromChannel(channelId, balanceProofParams, claimSignature), 'claimFromChannel', this.config.maxRetries);
194
+ this.logger.info({ channelId, amount: amount.toString() }, 'Claim from channel completed — channel remains open');
195
+ await this.accountManager.recordSettlement(peerId, tokenId, amount);
196
+ if (this.perPacketClaimService) {
197
+ this.perPacketClaimService.resetChannel(channelId);
198
+ }
199
+ this.logger.info({ peerId, tokenId, amount: amount.toString() }, 'Accounting balance updated after claim');
200
+ this.emit('CHANNEL_ACTIVITY', { channelId });
201
+ }
202
+ async retryWithBackoff(operation, operationName, maxRetries) {
203
+ let lastError;
204
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
205
+ try {
206
+ return await operation();
207
+ }
208
+ catch (error) {
209
+ lastError = error instanceof Error ? error : new Error(String(error));
210
+ if (!this.isRetryableError(lastError)) {
211
+ this.logger.error({ error: lastError, operationName }, 'Non-retryable error, aborting');
212
+ throw lastError;
213
+ }
214
+ if (attempt < maxRetries) {
215
+ const delayMs = this.config.retryDelayMs * 2 ** (attempt - 1);
216
+ this.logger.warn({ attempt, maxRetries, operationName, delayMs, error: lastError.message }, 'Retrying settlement operation');
217
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
218
+ }
219
+ }
220
+ }
221
+ this.logger.error({ operationName, maxRetries }, 'Max retries exhausted');
222
+ throw lastError;
223
+ }
224
+ isRetryableError(error) {
225
+ const errorMessage = error.message.toLowerCase();
226
+ if (errorMessage.includes('timeout') ||
227
+ errorMessage.includes('network') ||
228
+ errorMessage.includes('gas price') ||
229
+ errorMessage.includes('nonce too low') ||
230
+ errorMessage.includes('replacement') ||
231
+ errorMessage.includes('already known') ||
232
+ errorMessage.includes('nonce has already been used')) {
233
+ return true;
234
+ }
235
+ if (errorMessage.includes('insufficient funds') ||
236
+ errorMessage.includes('channel closed') ||
237
+ errorMessage.includes('invalid signature') ||
238
+ errorMessage.includes('challenge not expired') ||
239
+ error.constructor.name === 'ChallengeNotExpiredError') {
240
+ return false;
241
+ }
242
+ return false;
243
+ }
244
+ registerPeerChain(peerId, chainId) {
245
+ const existingChain = this.config.peerIdToChainMap.get(peerId);
246
+ this.config.peerIdToChainMap.set(peerId, chainId);
247
+ if (existingChain && existingChain !== chainId) {
248
+ this.logger.info({ event: 'peer_chain_updated', peerId, oldChain: existingChain, newChain: chainId }, 'Peer chain mapping updated');
249
+ }
250
+ else if (!existingChain) {
251
+ this.logger.info({ event: 'peer_chain_registered', peerId, chainId }, 'Peer chain mapping registered');
252
+ }
253
+ }
254
+ registerPeerAddress(peerId, address) {
255
+ if (!this.config.peerIdToAddressMap.has(peerId)) {
256
+ this.config.peerIdToAddressMap.set(peerId, address);
257
+ this.logger.info({ event: 'peer_address_registered', peerId }, 'Peer settlement address registered');
258
+ }
259
+ }
260
+ getSettlementState(peerId, tokenId) {
261
+ return this.settlementMonitor.getSettlementState(peerId, tokenId);
262
+ }
263
+ }
264
+ exports.SettlementExecutor = SettlementExecutor;
265
+ //# sourceMappingURL=settlement-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settlement-executor.js","sourceRoot":"","sources":["../../src/settlement/settlement-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { EventEmitter } from 'events';
2
+ import type { Logger } from 'pino';
3
+ import type { SettlementThresholdConfig } from '../config/types';
4
+ import { SettlementState } from '../config/types';
5
+ import type { ClaimReceiver } from './claim-receiver';
6
+ export interface SettlementMonitorConfig {
7
+ thresholds?: SettlementThresholdConfig;
8
+ peers: string[];
9
+ tokenIds: string[];
10
+ }
11
+ export declare class SettlementMonitor extends EventEmitter {
12
+ private readonly _config;
13
+ private readonly _logger;
14
+ private readonly _settlementStates;
15
+ private readonly _lastSettlementTime;
16
+ private _claimReceiver;
17
+ private readonly _boundHandleClaimReceived;
18
+ private _isRunning;
19
+ constructor(config: SettlementMonitorConfig, logger: Logger);
20
+ setClaimReceiver(claimReceiver: ClaimReceiver): void;
21
+ start(): void;
22
+ stop(): void;
23
+ private _getThresholdForPeer;
24
+ private _handleClaimReceived;
25
+ getSettlementState(peerId: string, tokenId: string): SettlementState;
26
+ markSettlementInProgress(peerId: string, tokenId: string): void;
27
+ markSettlementCompleted(peerId: string, tokenId: string): void;
28
+ getAllSettlementStates(): Map<string, SettlementState>;
29
+ }
30
+ //# sourceMappingURL=settlement-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settlement-monitor.d.ts","sourceRoot":"","sources":["../../src/settlement/settlement-monitor.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,yBAAyB,EAA0B,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAW1E,MAAM,WAAW,uBAAuB;IAMtC,UAAU,CAAC,EAAE,yBAAyB,CAAC;IAOvC,KAAK,EAAE,MAAM,EAAE,CAAC;IAOhB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsCD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+B;IACjE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAsC;IAChF,OAAO,CAAC,UAAU,CAAU;gBAQhB,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM;IAuC3D,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAapD,KAAK,IAAI,IAAI;IAuBb,IAAI,IAAI,IAAI;IAwBZ,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,oBAAoB;IA+E5B,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe;IAcpE,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAiB/D,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAe9D,sBAAsB,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;CAIvD"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SettlementMonitor = void 0;
4
+ const events_1 = require("events");
5
+ const types_1 = require("../config/types");
6
+ class SettlementMonitor extends events_1.EventEmitter {
7
+ _config;
8
+ _logger;
9
+ _settlementStates;
10
+ _lastSettlementTime;
11
+ _claimReceiver;
12
+ _boundHandleClaimReceived;
13
+ _isRunning;
14
+ constructor(config, logger) {
15
+ super();
16
+ this._config = config;
17
+ this._logger = logger.child({ component: 'settlement-monitor' });
18
+ this._settlementStates = new Map();
19
+ this._lastSettlementTime = new Map();
20
+ this._claimReceiver = null;
21
+ this._boundHandleClaimReceived = this._handleClaimReceived.bind(this);
22
+ this._isRunning = false;
23
+ for (const peerId of this._config.peers) {
24
+ for (const tokenId of this._config.tokenIds) {
25
+ const stateKey = `${peerId}:${tokenId}`;
26
+ this._settlementStates.set(stateKey, types_1.SettlementState.IDLE);
27
+ }
28
+ }
29
+ this._logger.info({
30
+ defaultThreshold: this._config.thresholds?.defaultThreshold?.toString(),
31
+ peerCount: this._config.peers.length,
32
+ tokenCount: this._config.tokenIds.length,
33
+ }, 'Settlement monitor initialized (event-driven)');
34
+ }
35
+ setClaimReceiver(claimReceiver) {
36
+ this._claimReceiver = claimReceiver;
37
+ this._logger.info('ClaimReceiver set for event-driven settlement monitoring');
38
+ }
39
+ start() {
40
+ if (this._isRunning) {
41
+ throw new Error('Settlement monitor already running');
42
+ }
43
+ this._isRunning = true;
44
+ if (this._claimReceiver) {
45
+ this._claimReceiver.on('CLAIM_RECEIVED', this._boundHandleClaimReceived);
46
+ this._logger.info('Settlement monitor started (subscribed to ClaimReceiver events)');
47
+ }
48
+ else {
49
+ this._logger.warn('Settlement monitor started without ClaimReceiver — no events will be processed. ' +
50
+ 'Call setClaimReceiver() and restart to enable event-driven settlement.');
51
+ }
52
+ }
53
+ stop() {
54
+ if (this._claimReceiver) {
55
+ this._claimReceiver.off('CLAIM_RECEIVED', this._boundHandleClaimReceived);
56
+ }
57
+ this._isRunning = false;
58
+ this._logger.info('Settlement monitor stopped');
59
+ }
60
+ _getThresholdForPeer(peerId, tokenId) {
61
+ if (!this._config.thresholds) {
62
+ return undefined;
63
+ }
64
+ const tokenSpecificThreshold = this._config.thresholds.perTokenThresholds
65
+ ?.get(peerId)
66
+ ?.get(tokenId);
67
+ if (tokenSpecificThreshold !== undefined) {
68
+ return tokenSpecificThreshold;
69
+ }
70
+ const perPeerThreshold = this._config.thresholds.perPeerThresholds?.get(peerId);
71
+ if (perPeerThreshold !== undefined) {
72
+ return perPeerThreshold;
73
+ }
74
+ return this._config.thresholds.defaultThreshold;
75
+ }
76
+ _handleClaimReceived(event) {
77
+ try {
78
+ const { peerId, channelId, cumulativeAmount } = event;
79
+ this._logger.debug({ peerId, channelId, cumulativeAmount: cumulativeAmount.toString() }, 'Processing claim for settlement threshold check');
80
+ for (const tokenId of this._config.tokenIds) {
81
+ const threshold = this._getThresholdForPeer(peerId, tokenId);
82
+ if (!threshold) {
83
+ continue;
84
+ }
85
+ const stateKey = `${peerId}:${tokenId}`;
86
+ const currentState = this._settlementStates.get(stateKey) ?? types_1.SettlementState.IDLE;
87
+ if (cumulativeAmount > threshold) {
88
+ if (currentState === types_1.SettlementState.IDLE) {
89
+ const exceedsBy = cumulativeAmount - threshold;
90
+ const triggerEvent = {
91
+ peerId,
92
+ tokenId,
93
+ currentBalance: cumulativeAmount,
94
+ threshold,
95
+ exceedsBy,
96
+ timestamp: new Date(),
97
+ };
98
+ this.emit('SETTLEMENT_REQUIRED', triggerEvent);
99
+ this._settlementStates.set(stateKey, types_1.SettlementState.SETTLEMENT_PENDING);
100
+ this._logger.warn({
101
+ peerId,
102
+ tokenId,
103
+ channelId,
104
+ cumulativeAmount: cumulativeAmount.toString(),
105
+ threshold: threshold.toString(),
106
+ exceedsBy: exceedsBy.toString(),
107
+ }, 'Settlement threshold exceeded — triggering claimFromChannel()');
108
+ }
109
+ else {
110
+ this._logger.debug({ peerId, tokenId, state: currentState }, 'Settlement already pending/in-progress, skipping duplicate trigger');
111
+ }
112
+ }
113
+ }
114
+ }
115
+ catch (error) {
116
+ this._logger.error({
117
+ error: error instanceof Error ? error.message : String(error),
118
+ }, 'Settlement threshold check failed for claim event');
119
+ }
120
+ }
121
+ getSettlementState(peerId, tokenId) {
122
+ const stateKey = `${peerId}:${tokenId}`;
123
+ return this._settlementStates.get(stateKey) ?? types_1.SettlementState.IDLE;
124
+ }
125
+ markSettlementInProgress(peerId, tokenId) {
126
+ const stateKey = `${peerId}:${tokenId}`;
127
+ this._settlementStates.set(stateKey, types_1.SettlementState.SETTLEMENT_IN_PROGRESS);
128
+ this._logger.info({ peerId, tokenId }, 'Settlement marked in progress');
129
+ }
130
+ markSettlementCompleted(peerId, tokenId) {
131
+ const stateKey = `${peerId}:${tokenId}`;
132
+ this._settlementStates.set(stateKey, types_1.SettlementState.IDLE);
133
+ this._lastSettlementTime.set(stateKey, Date.now());
134
+ this._logger.info({ peerId, tokenId }, 'Settlement completed, state reset to IDLE');
135
+ }
136
+ getAllSettlementStates() {
137
+ return new Map(this._settlementStates);
138
+ }
139
+ }
140
+ exports.SettlementMonitor = SettlementMonitor;
141
+ //# sourceMappingURL=settlement-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settlement-monitor.js","sourceRoot":"","sources":["../../src/settlement/settlement-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import type { Logger } from '../utils/logger';
2
+ import { generateKeyPairSigner } from '@solana/kit';
3
+ import type { TransactionSigner, Instruction } from '@solana/kit';
4
+ interface Ed25519KeyPair {
5
+ readonly publicKey: unknown;
6
+ readonly privateKey: unknown;
7
+ }
8
+ export interface SolanaChannelState {
9
+ participantA: string;
10
+ participantB: string;
11
+ tokenMint: string;
12
+ depositA: bigint;
13
+ depositB: bigint;
14
+ transferredAmountA: bigint;
15
+ transferredAmountB: bigint;
16
+ nonceA: bigint;
17
+ nonceB: bigint;
18
+ challengeDuration: bigint;
19
+ state: 'opened' | 'closed' | 'settled';
20
+ closeTimestamp: bigint;
21
+ bump: number;
22
+ }
23
+ export declare class SolanaChannelError extends Error {
24
+ readonly code: number;
25
+ readonly errorName: string;
26
+ constructor(message: string, code: number, errorName: string);
27
+ }
28
+ export declare function mapProgramError(code: number): SolanaChannelError;
29
+ export declare function parseSolanaError(err: unknown): never;
30
+ export declare function deserializeChannelState(data: Uint8Array): SolanaChannelState;
31
+ export declare function buildEd25519PrecompileInstruction(signature: Uint8Array, pubkey: Uint8Array, message: Uint8Array): Instruction;
32
+ export declare class SolanaPaymentChannelSDK {
33
+ private readonly _rpc;
34
+ private readonly _rpcSubscriptions;
35
+ private readonly _programId;
36
+ private readonly _logger;
37
+ constructor(rpcUrl: string, programId: string, logger: Logger);
38
+ static deriveChannelPDA(participantA: string, participantB: string, tokenMint: string, programId: string): {
39
+ pda: string;
40
+ bump: number;
41
+ };
42
+ static deriveVaultPDA(channelPDA: string, programId: string): {
43
+ pda: string;
44
+ bump: number;
45
+ };
46
+ static _buildBalanceProofMessage(channelPDA: string, nonce: bigint, transferredAmount: bigint): Uint8Array;
47
+ static signBalanceProof(channelPDA: string, nonce: bigint, transferredAmount: bigint, keypair: Ed25519KeyPair): Promise<Uint8Array>;
48
+ openChannel(payer: TransactionSigner, participantA: string, participantB: string, tokenMint: string, challengeDuration: bigint): Promise<{
49
+ channelPDA: string;
50
+ txSignature: string;
51
+ }>;
52
+ deposit(depositor: TransactionSigner, channelPDA: string, depositorTokenAccount: string, amount: bigint): Promise<{
53
+ txSignature: string;
54
+ }>;
55
+ claimFromChannel(claimer: TransactionSigner, channelPDA: string, nonce: bigint, transferredAmount: bigint, signature: Uint8Array): Promise<{
56
+ txSignature: string;
57
+ }>;
58
+ closeChannel(closer: TransactionSigner, channelPDA: string): Promise<{
59
+ txSignature: string;
60
+ }>;
61
+ settleChannel(caller: TransactionSigner, channelPDA: string, participantAToken: string, participantBToken: string, rentRecipient: string): Promise<{
62
+ txSignature: string;
63
+ }>;
64
+ forceCloseExpired(caller: TransactionSigner, channelPDA: string, participantAToken: string, participantBToken: string, rentRecipient: string): Promise<{
65
+ txSignature: string;
66
+ }>;
67
+ getMintMetadata(mintAddress: string): Promise<{
68
+ assetCode: string;
69
+ assetScale: number;
70
+ }>;
71
+ getChannelState(channelPDA: string): Promise<SolanaChannelState>;
72
+ subscribeToChannel(channelPDA: string, callback: (state: SolanaChannelState) => void): {
73
+ unsubscribe: () => void;
74
+ };
75
+ private _runSubscriptionLoop;
76
+ private _sendTransaction;
77
+ }
78
+ export { generateKeyPairSigner };
79
+ //# sourceMappingURL=solana-payment-channel-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-payment-channel-sdk.d.ts","sourceRoot":"","sources":["../../src/settlement/solana-payment-channel-sdk.ts"],"names":[],"mappings":"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"}