@toon-protocol/connector 2.6.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/package.json +1 -1
  2. package/dist/btp/btp-claim-types.d.ts +0 -52
  3. package/dist/btp/btp-claim-types.d.ts.map +0 -1
  4. package/dist/btp/btp-claim-types.js +0 -209
  5. package/dist/btp/btp-claim-types.js.map +0 -1
  6. package/dist/btp/btp-client-manager.d.ts +0 -30
  7. package/dist/btp/btp-client-manager.d.ts.map +0 -1
  8. package/dist/btp/btp-client-manager.js +0 -153
  9. package/dist/btp/btp-client-manager.js.map +0 -1
  10. package/dist/btp/btp-client.d.ts +0 -58
  11. package/dist/btp/btp-client.d.ts.map +0 -1
  12. package/dist/btp/btp-client.js +0 -485
  13. package/dist/btp/btp-client.js.map +0 -1
  14. package/dist/btp/btp-message-parser.d.ts +0 -4
  15. package/dist/btp/btp-message-parser.d.ts.map +0 -1
  16. package/dist/btp/btp-message-parser.js +0 -211
  17. package/dist/btp/btp-message-parser.js.map +0 -1
  18. package/dist/btp/btp-server.d.ts +0 -33
  19. package/dist/btp/btp-server.d.ts.map +0 -1
  20. package/dist/btp/btp-server.js +0 -485
  21. package/dist/btp/btp-server.js.map +0 -1
  22. package/dist/btp/btp-types.d.ts +0 -43
  23. package/dist/btp/btp-types.d.ts.map +0 -1
  24. package/dist/btp/btp-types.js +0 -44
  25. package/dist/btp/btp-types.js.map +0 -1
  26. package/dist/btp/inbound-claim-validator.d.ts +0 -20
  27. package/dist/btp/inbound-claim-validator.d.ts.map +0 -1
  28. package/dist/btp/inbound-claim-validator.js +0 -150
  29. package/dist/btp/inbound-claim-validator.js.map +0 -1
  30. package/dist/cli/index.d.ts +0 -3
  31. package/dist/cli/index.d.ts.map +0 -1
  32. package/dist/cli/index.js +0 -175
  33. package/dist/cli/index.js.map +0 -1
  34. package/dist/cli/onboarding-wizard.d.ts +0 -7
  35. package/dist/cli/onboarding-wizard.d.ts.map +0 -1
  36. package/dist/cli/onboarding-wizard.js +0 -257
  37. package/dist/cli/onboarding-wizard.js.map +0 -1
  38. package/dist/cli/types.d.ts +0 -38
  39. package/dist/cli/types.d.ts.map +0 -1
  40. package/dist/cli/types.js +0 -3
  41. package/dist/cli/types.js.map +0 -1
  42. package/dist/config/config-loader.d.ts +0 -24
  43. package/dist/config/config-loader.d.ts.map +0 -1
  44. package/dist/config/config-loader.js +0 -436
  45. package/dist/config/config-loader.js.map +0 -1
  46. package/dist/config/environment-validator.d.ts +0 -4
  47. package/dist/config/environment-validator.d.ts.map +0 -1
  48. package/dist/config/environment-validator.js +0 -239
  49. package/dist/config/environment-validator.js.map +0 -1
  50. package/dist/config/index.d.ts +0 -3
  51. package/dist/config/index.d.ts.map +0 -1
  52. package/dist/config/index.js +0 -7
  53. package/dist/config/index.js.map +0 -1
  54. package/dist/config/key-manager-config.d.ts +0 -7
  55. package/dist/config/key-manager-config.d.ts.map +0 -1
  56. package/dist/config/key-manager-config.js +0 -209
  57. package/dist/config/key-manager-config.js.map +0 -1
  58. package/dist/config/topology-validator.d.ts +0 -14
  59. package/dist/config/topology-validator.d.ts.map +0 -1
  60. package/dist/config/topology-validator.js +0 -142
  61. package/dist/config/topology-validator.js.map +0 -1
  62. package/dist/config/types.d.ts +0 -223
  63. package/dist/config/types.d.ts.map +0 -1
  64. package/dist/config/types.js +0 -52
  65. package/dist/config/types.js.map +0 -1
  66. package/dist/core/connector-node.d.ts +0 -91
  67. package/dist/core/connector-node.d.ts.map +0 -1
  68. package/dist/core/connector-node.js +0 -1322
  69. package/dist/core/connector-node.js.map +0 -1
  70. package/dist/core/local-delivery-client.d.ts +0 -16
  71. package/dist/core/local-delivery-client.d.ts.map +0 -1
  72. package/dist/core/local-delivery-client.js +0 -160
  73. package/dist/core/local-delivery-client.js.map +0 -1
  74. package/dist/core/packet-handler.d.ts +0 -57
  75. package/dist/core/packet-handler.d.ts.map +0 -1
  76. package/dist/core/packet-handler.js +0 -655
  77. package/dist/core/packet-handler.js.map +0 -1
  78. package/dist/core/payment-handler.d.ts +0 -25
  79. package/dist/core/payment-handler.d.ts.map +0 -1
  80. package/dist/core/payment-handler.js +0 -104
  81. package/dist/core/payment-handler.js.map +0 -1
  82. package/dist/discovery/index.d.ts +0 -3
  83. package/dist/discovery/index.d.ts.map +0 -1
  84. package/dist/discovery/index.js +0 -6
  85. package/dist/discovery/index.js.map +0 -1
  86. package/dist/discovery/peer-discovery-service.d.ts +0 -29
  87. package/dist/discovery/peer-discovery-service.d.ts.map +0 -1
  88. package/dist/discovery/peer-discovery-service.js +0 -230
  89. package/dist/discovery/peer-discovery-service.js.map +0 -1
  90. package/dist/discovery/types.d.ts +0 -38
  91. package/dist/discovery/types.d.ts.map +0 -1
  92. package/dist/discovery/types.js +0 -3
  93. package/dist/discovery/types.js.map +0 -1
  94. package/dist/encoding/oer-parser.d.ts +0 -39
  95. package/dist/encoding/oer-parser.d.ts.map +0 -1
  96. package/dist/encoding/oer-parser.js +0 -154
  97. package/dist/encoding/oer-parser.js.map +0 -1
  98. package/dist/facilitator/index.d.ts +0 -2
  99. package/dist/facilitator/index.d.ts.map +0 -1
  100. package/dist/facilitator/index.js +0 -7
  101. package/dist/facilitator/index.js.map +0 -1
  102. package/dist/facilitator/spsp-client.d.ts +0 -18
  103. package/dist/facilitator/spsp-client.d.ts.map +0 -1
  104. package/dist/facilitator/spsp-client.js +0 -95
  105. package/dist/facilitator/spsp-client.js.map +0 -1
  106. package/dist/http/admin-api-inventory.d.ts +0 -29
  107. package/dist/http/admin-api-inventory.d.ts.map +0 -1
  108. package/dist/http/admin-api-inventory.js +0 -480
  109. package/dist/http/admin-api-inventory.js.map +0 -1
  110. package/dist/http/admin-api.d.ts +0 -182
  111. package/dist/http/admin-api.d.ts.map +0 -1
  112. package/dist/http/admin-api.js +0 -1324
  113. package/dist/http/admin-api.js.map +0 -1
  114. package/dist/http/admin-server.d.ts +0 -49
  115. package/dist/http/admin-server.d.ts.map +0 -1
  116. package/dist/http/admin-server.js +0 -160
  117. package/dist/http/admin-server.js.map +0 -1
  118. package/dist/http/health-server.d.ts +0 -22
  119. package/dist/http/health-server.d.ts.map +0 -1
  120. package/dist/http/health-server.js +0 -192
  121. package/dist/http/health-server.js.map +0 -1
  122. package/dist/http/ilp-send-handler.d.ts +0 -15
  123. package/dist/http/ilp-send-handler.d.ts.map +0 -1
  124. package/dist/http/ilp-send-handler.js +0 -149
  125. package/dist/http/ilp-send-handler.js.map +0 -1
  126. package/dist/http/types.d.ts +0 -43
  127. package/dist/http/types.d.ts.map +0 -1
  128. package/dist/http/types.js +0 -3
  129. package/dist/http/types.js.map +0 -1
  130. package/dist/index.d.ts +0 -2
  131. package/dist/index.d.ts.map +0 -1
  132. package/dist/index.js +0 -5
  133. package/dist/index.js.map +0 -1
  134. package/dist/lib.d.ts +0 -22
  135. package/dist/lib.d.ts.map +0 -1
  136. package/dist/lib.js +0 -39
  137. package/dist/lib.js.map +0 -1
  138. package/dist/main.d.ts +0 -4
  139. package/dist/main.d.ts.map +0 -1
  140. package/dist/main.js +0 -79
  141. package/dist/main.js.map +0 -1
  142. package/dist/observability/metrics-registry.d.ts +0 -39
  143. package/dist/observability/metrics-registry.d.ts.map +0 -1
  144. package/dist/observability/metrics-registry.js +0 -151
  145. package/dist/observability/metrics-registry.js.map +0 -1
  146. package/dist/routing/packet-processor.d.ts +0 -36
  147. package/dist/routing/packet-processor.d.ts.map +0 -1
  148. package/dist/routing/packet-processor.js +0 -112
  149. package/dist/routing/packet-processor.js.map +0 -1
  150. package/dist/routing/packet-worker.d.ts +0 -10
  151. package/dist/routing/packet-worker.d.ts.map +0 -1
  152. package/dist/routing/packet-worker.js +0 -34
  153. package/dist/routing/packet-worker.js.map +0 -1
  154. package/dist/routing/routing-table.d.ts +0 -15
  155. package/dist/routing/routing-table.d.ts.map +0 -1
  156. package/dist/routing/routing-table.js +0 -63
  157. package/dist/routing/routing-table.js.map +0 -1
  158. package/dist/routing/worker-pool.d.ts +0 -43
  159. package/dist/routing/worker-pool.d.ts.map +0 -1
  160. package/dist/routing/worker-pool.js +0 -228
  161. package/dist/routing/worker-pool.js.map +0 -1
  162. package/dist/security/alert-notifier.d.ts +0 -34
  163. package/dist/security/alert-notifier.d.ts.map +0 -1
  164. package/dist/security/alert-notifier.js +0 -136
  165. package/dist/security/alert-notifier.js.map +0 -1
  166. package/dist/security/audit-logger.d.ts +0 -34
  167. package/dist/security/audit-logger.d.ts.map +0 -1
  168. package/dist/security/audit-logger.js +0 -132
  169. package/dist/security/audit-logger.js.map +0 -1
  170. package/dist/security/backends/environment-backend.d.ts +0 -15
  171. package/dist/security/backends/environment-backend.d.ts.map +0 -1
  172. package/dist/security/backends/environment-backend.js +0 -56
  173. package/dist/security/backends/environment-backend.js.map +0 -1
  174. package/dist/security/fraud-detector.d.ts +0 -79
  175. package/dist/security/fraud-detector.d.ts.map +0 -1
  176. package/dist/security/fraud-detector.js +0 -147
  177. package/dist/security/fraud-detector.js.map +0 -1
  178. package/dist/security/key-manager-signer.d.ts +0 -15
  179. package/dist/security/key-manager-signer.d.ts.map +0 -1
  180. package/dist/security/key-manager-signer.js +0 -91
  181. package/dist/security/key-manager-signer.js.map +0 -1
  182. package/dist/security/key-manager.d.ts +0 -69
  183. package/dist/security/key-manager.d.ts.map +0 -1
  184. package/dist/security/key-manager.js +0 -79
  185. package/dist/security/key-manager.js.map +0 -1
  186. package/dist/security/key-rotation-manager.d.ts +0 -27
  187. package/dist/security/key-rotation-manager.d.ts.map +0 -1
  188. package/dist/security/key-rotation-manager.js +0 -142
  189. package/dist/security/key-rotation-manager.js.map +0 -1
  190. package/dist/security/rate-limit-config.d.ts +0 -7
  191. package/dist/security/rate-limit-config.d.ts.map +0 -1
  192. package/dist/security/rate-limit-config.js +0 -57
  193. package/dist/security/rate-limit-config.js.map +0 -1
  194. package/dist/security/rate-limiter.d.ts +0 -46
  195. package/dist/security/rate-limiter.d.ts.map +0 -1
  196. package/dist/security/rate-limiter.js +0 -170
  197. package/dist/security/rate-limiter.js.map +0 -1
  198. package/dist/security/reputation-tracker.d.ts +0 -30
  199. package/dist/security/reputation-tracker.d.ts.map +0 -1
  200. package/dist/security/reputation-tracker.js +0 -111
  201. package/dist/security/reputation-tracker.js.map +0 -1
  202. package/dist/security/rules/balance-manipulation-rule.d.ts +0 -23
  203. package/dist/security/rules/balance-manipulation-rule.d.ts.map +0 -1
  204. package/dist/security/rules/balance-manipulation-rule.js +0 -70
  205. package/dist/security/rules/balance-manipulation-rule.js.map +0 -1
  206. package/dist/security/rules/double-spend-detection-rule.d.ts +0 -23
  207. package/dist/security/rules/double-spend-detection-rule.d.ts.map +0 -1
  208. package/dist/security/rules/double-spend-detection-rule.js +0 -61
  209. package/dist/security/rules/double-spend-detection-rule.js.map +0 -1
  210. package/dist/security/rules/rapid-channel-closure-rule.d.ts +0 -16
  211. package/dist/security/rules/rapid-channel-closure-rule.d.ts.map +0 -1
  212. package/dist/security/rules/rapid-channel-closure-rule.js +0 -57
  213. package/dist/security/rules/rapid-channel-closure-rule.js.map +0 -1
  214. package/dist/security/rules/sudden-traffic-spike-rule.d.ts +0 -18
  215. package/dist/security/rules/sudden-traffic-spike-rule.d.ts.map +0 -1
  216. package/dist/security/rules/sudden-traffic-spike-rule.js +0 -92
  217. package/dist/security/rules/sudden-traffic-spike-rule.js.map +0 -1
  218. package/dist/security/rules/unusual-settlement-amount-rule.d.ts +0 -12
  219. package/dist/security/rules/unusual-settlement-amount-rule.d.ts.map +0 -1
  220. package/dist/security/rules/unusual-settlement-amount-rule.js +0 -33
  221. package/dist/security/rules/unusual-settlement-amount-rule.js.map +0 -1
  222. package/dist/security/token-bucket.d.ts +0 -16
  223. package/dist/security/token-bucket.d.ts.map +0 -1
  224. package/dist/security/token-bucket.js +0 -49
  225. package/dist/security/token-bucket.js.map +0 -1
  226. package/dist/security/violation-counter.d.ts +0 -11
  227. package/dist/security/violation-counter.d.ts.map +0 -1
  228. package/dist/security/violation-counter.js +0 -61
  229. package/dist/security/violation-counter.js.map +0 -1
  230. package/dist/settlement/account-id-generator.d.ts +0 -4
  231. package/dist/settlement/account-id-generator.d.ts.map +0 -1
  232. package/dist/settlement/account-id-generator.js +0 -38
  233. package/dist/settlement/account-id-generator.js.map +0 -1
  234. package/dist/settlement/account-manager.d.ts +0 -51
  235. package/dist/settlement/account-manager.d.ts.map +0 -1
  236. package/dist/settlement/account-manager.js +0 -459
  237. package/dist/settlement/account-manager.js.map +0 -1
  238. package/dist/settlement/account-metadata.d.ts +0 -11
  239. package/dist/settlement/account-metadata.d.ts.map +0 -1
  240. package/dist/settlement/account-metadata.js +0 -40
  241. package/dist/settlement/account-metadata.js.map +0 -1
  242. package/dist/settlement/channel-manager.d.ts +0 -67
  243. package/dist/settlement/channel-manager.d.ts.map +0 -1
  244. package/dist/settlement/channel-manager.js +0 -226
  245. package/dist/settlement/channel-manager.js.map +0 -1
  246. package/dist/settlement/claim-receiver-db-schema.d.ts +0 -4
  247. package/dist/settlement/claim-receiver-db-schema.d.ts.map +0 -1
  248. package/dist/settlement/claim-receiver-db-schema.js +0 -25
  249. package/dist/settlement/claim-receiver-db-schema.js.map +0 -1
  250. package/dist/settlement/claim-receiver.d.ts +0 -67
  251. package/dist/settlement/claim-receiver.d.ts.map +0 -1
  252. package/dist/settlement/claim-receiver.js +0 -707
  253. package/dist/settlement/claim-receiver.js.map +0 -1
  254. package/dist/settlement/claim-redemption-service.d.ts +0 -39
  255. package/dist/settlement/claim-redemption-service.d.ts.map +0 -1
  256. package/dist/settlement/claim-redemption-service.js +0 -189
  257. package/dist/settlement/claim-redemption-service.js.map +0 -1
  258. package/dist/settlement/claim-sender-db-schema.d.ts +0 -3
  259. package/dist/settlement/claim-sender-db-schema.d.ts.map +0 -1
  260. package/dist/settlement/claim-sender-db-schema.js +0 -18
  261. package/dist/settlement/claim-sender-db-schema.js.map +0 -1
  262. package/dist/settlement/claim-sender.d.ts +0 -24
  263. package/dist/settlement/claim-sender.d.ts.map +0 -1
  264. package/dist/settlement/claim-sender.js +0 -146
  265. package/dist/settlement/claim-sender.js.map +0 -1
  266. package/dist/settlement/eip712-helper.d.ts +0 -13
  267. package/dist/settlement/eip712-helper.d.ts.map +0 -1
  268. package/dist/settlement/eip712-helper.js +0 -24
  269. package/dist/settlement/eip712-helper.js.map +0 -1
  270. package/dist/settlement/in-memory-ledger-client.d.ts +0 -40
  271. package/dist/settlement/in-memory-ledger-client.d.ts.map +0 -1
  272. package/dist/settlement/in-memory-ledger-client.js +0 -177
  273. package/dist/settlement/in-memory-ledger-client.js.map +0 -1
  274. package/dist/settlement/ledger-client.d.ts +0 -22
  275. package/dist/settlement/ledger-client.d.ts.map +0 -1
  276. package/dist/settlement/ledger-client.js +0 -3
  277. package/dist/settlement/ledger-client.js.map +0 -1
  278. package/dist/settlement/metrics-collector.d.ts +0 -29
  279. package/dist/settlement/metrics-collector.d.ts.map +0 -1
  280. package/dist/settlement/metrics-collector.js +0 -81
  281. package/dist/settlement/metrics-collector.js.map +0 -1
  282. package/dist/settlement/mina-payment-channel-sdk.d.ts +0 -73
  283. package/dist/settlement/mina-payment-channel-sdk.d.ts.map +0 -1
  284. package/dist/settlement/mina-payment-channel-sdk.js +0 -538
  285. package/dist/settlement/mina-payment-channel-sdk.js.map +0 -1
  286. package/dist/settlement/payment-channel-sdk.d.ts +0 -59
  287. package/dist/settlement/payment-channel-sdk.d.ts.map +0 -1
  288. package/dist/settlement/payment-channel-sdk.js +0 -677
  289. package/dist/settlement/payment-channel-sdk.js.map +0 -1
  290. package/dist/settlement/per-packet-claim-service.d.ts +0 -39
  291. package/dist/settlement/per-packet-claim-service.d.ts.map +0 -1
  292. package/dist/settlement/per-packet-claim-service.js +0 -342
  293. package/dist/settlement/per-packet-claim-service.js.map +0 -1
  294. package/dist/settlement/privacy/index.d.ts +0 -3
  295. package/dist/settlement/privacy/index.d.ts.map +0 -1
  296. package/dist/settlement/privacy/index.js +0 -11
  297. package/dist/settlement/privacy/index.js.map +0 -1
  298. package/dist/settlement/privacy/nip59-claim-wrapper.d.ts +0 -60
  299. package/dist/settlement/privacy/nip59-claim-wrapper.d.ts.map +0 -1
  300. package/dist/settlement/privacy/nip59-claim-wrapper.js +0 -361
  301. package/dist/settlement/privacy/nip59-claim-wrapper.js.map +0 -1
  302. package/dist/settlement/provider/chain-provider-registry.d.ts +0 -20
  303. package/dist/settlement/provider/chain-provider-registry.d.ts.map +0 -1
  304. package/dist/settlement/provider/chain-provider-registry.js +0 -53
  305. package/dist/settlement/provider/chain-provider-registry.js.map +0 -1
  306. package/dist/settlement/provider/evm-payment-channel-provider.d.ts +0 -31
  307. package/dist/settlement/provider/evm-payment-channel-provider.d.ts.map +0 -1
  308. package/dist/settlement/provider/evm-payment-channel-provider.js +0 -207
  309. package/dist/settlement/provider/evm-payment-channel-provider.js.map +0 -1
  310. package/dist/settlement/provider/index.d.ts +0 -6
  311. package/dist/settlement/provider/index.d.ts.map +0 -1
  312. package/dist/settlement/provider/index.js +0 -16
  313. package/dist/settlement/provider/index.js.map +0 -1
  314. package/dist/settlement/provider/mina-payment-channel-provider.d.ts +0 -43
  315. package/dist/settlement/provider/mina-payment-channel-provider.d.ts.map +0 -1
  316. package/dist/settlement/provider/mina-payment-channel-provider.js +0 -330
  317. package/dist/settlement/provider/mina-payment-channel-provider.js.map +0 -1
  318. package/dist/settlement/provider/payment-channel-provider.d.ts +0 -88
  319. package/dist/settlement/provider/payment-channel-provider.d.ts.map +0 -1
  320. package/dist/settlement/provider/payment-channel-provider.js +0 -3
  321. package/dist/settlement/provider/payment-channel-provider.js.map +0 -1
  322. package/dist/settlement/provider/solana-payment-channel-provider.d.ts +0 -38
  323. package/dist/settlement/provider/solana-payment-channel-provider.d.ts.map +0 -1
  324. package/dist/settlement/provider/solana-payment-channel-provider.js +0 -262
  325. package/dist/settlement/provider/solana-payment-channel-provider.js.map +0 -1
  326. package/dist/settlement/sent-claims-queries.d.ts +0 -23
  327. package/dist/settlement/sent-claims-queries.d.ts.map +0 -1
  328. package/dist/settlement/sent-claims-queries.js +0 -134
  329. package/dist/settlement/sent-claims-queries.js.map +0 -1
  330. package/dist/settlement/settlement-api.d.ts +0 -37
  331. package/dist/settlement/settlement-api.d.ts.map +0 -1
  332. package/dist/settlement/settlement-api.js +0 -172
  333. package/dist/settlement/settlement-api.js.map +0 -1
  334. package/dist/settlement/settlement-coordinator.d.ts +0 -47
  335. package/dist/settlement/settlement-coordinator.d.ts.map +0 -1
  336. package/dist/settlement/settlement-coordinator.js +0 -166
  337. package/dist/settlement/settlement-coordinator.js.map +0 -1
  338. package/dist/settlement/settlement-executor.d.ts +0 -51
  339. package/dist/settlement/settlement-executor.d.ts.map +0 -1
  340. package/dist/settlement/settlement-executor.js +0 -265
  341. package/dist/settlement/settlement-executor.js.map +0 -1
  342. package/dist/settlement/settlement-monitor.d.ts +0 -30
  343. package/dist/settlement/settlement-monitor.d.ts.map +0 -1
  344. package/dist/settlement/settlement-monitor.js +0 -141
  345. package/dist/settlement/settlement-monitor.js.map +0 -1
  346. package/dist/settlement/solana-payment-channel-sdk.d.ts +0 -79
  347. package/dist/settlement/solana-payment-channel-sdk.d.ts.map +0 -1
  348. package/dist/settlement/solana-payment-channel-sdk.js +0 -636
  349. package/dist/settlement/solana-payment-channel-sdk.js.map +0 -1
  350. package/dist/settlement/tigerbeetle-batch-writer.d.ts +0 -58
  351. package/dist/settlement/tigerbeetle-batch-writer.d.ts.map +0 -1
  352. package/dist/settlement/tigerbeetle-batch-writer.js +0 -162
  353. package/dist/settlement/tigerbeetle-batch-writer.js.map +0 -1
  354. package/dist/settlement/tigerbeetle-client.d.ts +0 -40
  355. package/dist/settlement/tigerbeetle-client.d.ts.map +0 -1
  356. package/dist/settlement/tigerbeetle-client.js +0 -279
  357. package/dist/settlement/tigerbeetle-client.js.map +0 -1
  358. package/dist/settlement/tigerbeetle-errors.d.ts +0 -23
  359. package/dist/settlement/tigerbeetle-errors.d.ts.map +0 -1
  360. package/dist/settlement/tigerbeetle-errors.js +0 -58
  361. package/dist/settlement/tigerbeetle-errors.js.map +0 -1
  362. package/dist/settlement/types.d.ts +0 -64
  363. package/dist/settlement/types.d.ts.map +0 -1
  364. package/dist/settlement/types.js +0 -42
  365. package/dist/settlement/types.js.map +0 -1
  366. package/dist/settlement/unified-settlement-executor.d.ts +0 -34
  367. package/dist/settlement/unified-settlement-executor.d.ts.map +0 -1
  368. package/dist/settlement/unified-settlement-executor.js +0 -145
  369. package/dist/settlement/unified-settlement-executor.js.map +0 -1
  370. package/dist/test-utils/index.d.ts +0 -3
  371. package/dist/test-utils/index.d.ts.map +0 -1
  372. package/dist/test-utils/index.js +0 -15
  373. package/dist/test-utils/index.js.map +0 -1
  374. package/dist/test-utils/isolated-test-env.d.ts +0 -31
  375. package/dist/test-utils/isolated-test-env.d.ts.map +0 -1
  376. package/dist/test-utils/isolated-test-env.js +0 -127
  377. package/dist/test-utils/isolated-test-env.js.map +0 -1
  378. package/dist/test-utils/mock-factories-patch.d.ts +0 -2
  379. package/dist/test-utils/mock-factories-patch.d.ts.map +0 -1
  380. package/dist/test-utils/mock-factories-patch.js +0 -3
  381. package/dist/test-utils/mock-factories-patch.js.map +0 -1
  382. package/dist/test-utils/mock-factories.d.ts +0 -22
  383. package/dist/test-utils/mock-factories.d.ts.map +0 -1
  384. package/dist/test-utils/mock-factories.js +0 -56
  385. package/dist/test-utils/mock-factories.js.map +0 -1
  386. package/dist/transport/direct-transport-provider.d.ts +0 -12
  387. package/dist/transport/direct-transport-provider.d.ts.map +0 -1
  388. package/dist/transport/direct-transport-provider.js +0 -27
  389. package/dist/transport/direct-transport-provider.js.map +0 -1
  390. package/dist/transport/index.d.ts +0 -7
  391. package/dist/transport/index.d.ts.map +0 -1
  392. package/dist/transport/index.js +0 -16
  393. package/dist/transport/index.js.map +0 -1
  394. package/dist/transport/managed-anon-client.d.ts +0 -47
  395. package/dist/transport/managed-anon-client.d.ts.map +0 -1
  396. package/dist/transport/managed-anon-client.js +0 -265
  397. package/dist/transport/managed-anon-client.js.map +0 -1
  398. package/dist/transport/probe-tcp-port.d.ts +0 -3
  399. package/dist/transport/probe-tcp-port.d.ts.map +0 -1
  400. package/dist/transport/probe-tcp-port.js +0 -59
  401. package/dist/transport/probe-tcp-port.js.map +0 -1
  402. package/dist/transport/socks-transport-provider.d.ts +0 -29
  403. package/dist/transport/socks-transport-provider.d.ts.map +0 -1
  404. package/dist/transport/socks-transport-provider.js +0 -136
  405. package/dist/transport/socks-transport-provider.js.map +0 -1
  406. package/dist/transport/socks-url.d.ts +0 -6
  407. package/dist/transport/socks-url.d.ts.map +0 -1
  408. package/dist/transport/socks-url.js +0 -29
  409. package/dist/transport/socks-url.js.map +0 -1
  410. package/dist/transport/transport-provider.d.ts +0 -9
  411. package/dist/transport/transport-provider.d.ts.map +0 -1
  412. package/dist/transport/transport-provider.js +0 -3
  413. package/dist/transport/transport-provider.js.map +0 -1
  414. package/dist/utils/connection-pool.d.ts +0 -42
  415. package/dist/utils/connection-pool.d.ts.map +0 -1
  416. package/dist/utils/connection-pool.js +0 -209
  417. package/dist/utils/connection-pool.js.map +0 -1
  418. package/dist/utils/evm-rpc-connection-pool.d.ts +0 -8
  419. package/dist/utils/evm-rpc-connection-pool.d.ts.map +0 -1
  420. package/dist/utils/evm-rpc-connection-pool.js +0 -40
  421. package/dist/utils/evm-rpc-connection-pool.js.map +0 -1
  422. package/dist/utils/logger.d.ts +0 -6
  423. package/dist/utils/logger.d.ts.map +0 -1
  424. package/dist/utils/logger.js +0 -58
  425. package/dist/utils/logger.js.map +0 -1
  426. package/dist/utils/optional-require.d.ts +0 -2
  427. package/dist/utils/optional-require.d.ts.map +0 -1
  428. package/dist/utils/optional-require.js +0 -54
  429. package/dist/utils/optional-require.js.map +0 -1
  430. package/dist/utils/redact.d.ts +0 -3
  431. package/dist/utils/redact.d.ts.map +0 -1
  432. package/dist/utils/redact.js +0 -21
  433. package/dist/utils/redact.js.map +0 -1
  434. package/dist/wallet/audit-logger.d.ts +0 -22
  435. package/dist/wallet/audit-logger.d.ts.map +0 -1
  436. package/dist/wallet/audit-logger.js +0 -120
  437. package/dist/wallet/audit-logger.js.map +0 -1
  438. package/dist/wallet/fraud-detector-interface.d.ts +0 -14
  439. package/dist/wallet/fraud-detector-interface.d.ts.map +0 -1
  440. package/dist/wallet/fraud-detector-interface.js +0 -3
  441. package/dist/wallet/fraud-detector-interface.js.map +0 -1
  442. package/dist/wallet/key-manager.d.ts +0 -6
  443. package/dist/wallet/key-manager.d.ts.map +0 -1
  444. package/dist/wallet/key-manager.js +0 -3
  445. package/dist/wallet/key-manager.js.map +0 -1
  446. package/dist/wallet/placeholder-fraud-detector.d.ts +0 -10
  447. package/dist/wallet/placeholder-fraud-detector.d.ts.map +0 -1
  448. package/dist/wallet/placeholder-fraud-detector.js +0 -10
  449. package/dist/wallet/placeholder-fraud-detector.js.map +0 -1
  450. package/dist/wallet/rate-limiter.d.ts +0 -26
  451. package/dist/wallet/rate-limiter.d.ts.map +0 -1
  452. package/dist/wallet/rate-limiter.js +0 -114
  453. package/dist/wallet/rate-limiter.js.map +0 -1
  454. package/dist/wallet/suspicious-activity-detector.d.ts +0 -25
  455. package/dist/wallet/suspicious-activity-detector.d.ts.map +0 -1
  456. package/dist/wallet/suspicious-activity-detector.js +0 -97
  457. package/dist/wallet/suspicious-activity-detector.js.map +0 -1
  458. package/dist/wallet/treasury-wallet.d.ts +0 -20
  459. package/dist/wallet/treasury-wallet.d.ts.map +0 -1
  460. package/dist/wallet/treasury-wallet.js +0 -151
  461. package/dist/wallet/treasury-wallet.js.map +0 -1
  462. package/dist/wallet/wallet-authentication.d.ts +0 -31
  463. package/dist/wallet/wallet-authentication.d.ts.map +0 -1
  464. package/dist/wallet/wallet-authentication.js +0 -102
  465. package/dist/wallet/wallet-authentication.js.map +0 -1
  466. package/dist/wallet/wallet-db-schema.d.ts +0 -11
  467. package/dist/wallet/wallet-db-schema.d.ts.map +0 -1
  468. package/dist/wallet/wallet-db-schema.js +0 -79
  469. package/dist/wallet/wallet-db-schema.js.map +0 -1
  470. package/dist/wallet/wallet-security.d.ts +0 -58
  471. package/dist/wallet/wallet-security.d.ts.map +0 -1
  472. package/dist/wallet/wallet-security.js +0 -148
  473. package/dist/wallet/wallet-security.js.map +0 -1
  474. package/dist/wallet/wallet-seed-manager.d.ts +0 -65
  475. package/dist/wallet/wallet-seed-manager.d.ts.map +0 -1
  476. package/dist/wallet/wallet-seed-manager.js +0 -418
  477. package/dist/wallet/wallet-seed-manager.js.map +0 -1
@@ -1,655 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PacketHandler = void 0;
4
- const tslib_1 = require("tslib");
5
- const shared_1 = require("@toon-protocol/shared");
6
- const logger_1 = require("../utils/logger");
7
- const btp_client_1 = require("../btp/btp-client");
8
- const types_1 = require("../settlement/types");
9
- const crypto = tslib_1.__importStar(require("crypto"));
10
- const local_delivery_client_1 = require("./local-delivery-client");
11
- const sha2_1 = require("@noble/hashes/sha2");
12
- const nip59_claim_wrapper_1 = require("../settlement/privacy/nip59-claim-wrapper");
13
- const EXPIRY_SAFETY_MARGIN_MS = 1000;
14
- class PacketHandler {
15
- routingTable;
16
- btpClientManager;
17
- btpServer;
18
- logger;
19
- nodeId;
20
- perPacketClaimService = null;
21
- defaultTokenId = 'M2M';
22
- accountManager;
23
- settlementConfig;
24
- localDeliveryClient = null;
25
- localDeliveryHandler = null;
26
- _nip59Wrapper = null;
27
- _nodePrivateKey = null;
28
- ilpMetrics = null;
29
- constructor(routingTable, btpClientManager, nodeId, logger, btpServer = null, accountManager = null, settlementConfig = null) {
30
- this.routingTable = routingTable;
31
- this.btpClientManager = btpClientManager;
32
- this.btpServer = btpServer;
33
- this.nodeId = nodeId;
34
- this.logger = logger;
35
- this.accountManager = accountManager;
36
- this.settlementConfig = settlementConfig;
37
- if (this.isSettlementEnabled()) {
38
- this.logger.info({
39
- connectorFeePercentage: settlementConfig?.connectorFeePercentage,
40
- tigerBeetleClusterId: settlementConfig?.tigerBeetleClusterId,
41
- }, 'Settlement recording enabled');
42
- }
43
- else {
44
- this.logger.info('Settlement recording disabled');
45
- }
46
- }
47
- setBTPServer(btpServer) {
48
- this.btpServer = btpServer;
49
- }
50
- setSettlement(accountManager, settlementConfig, defaultTokenId) {
51
- this.accountManager = accountManager;
52
- this.settlementConfig = settlementConfig;
53
- if (defaultTokenId) {
54
- this.defaultTokenId = defaultTokenId;
55
- }
56
- if (this.isSettlementEnabled()) {
57
- this.logger.info({
58
- event: 'settlement_enabled',
59
- connectorFeePercentage: settlementConfig.connectorFeePercentage,
60
- tigerBeetleClusterId: settlementConfig.tigerBeetleClusterId,
61
- }, 'Settlement recording enabled via late initialization');
62
- }
63
- }
64
- setPerPacketClaimService(service) {
65
- this.perPacketClaimService = service;
66
- this.logger.info('Per-packet claim service enabled');
67
- }
68
- setLocalDelivery(config) {
69
- if (config.enabled) {
70
- this.localDeliveryClient = new local_delivery_client_1.LocalDeliveryClient(config, this.logger);
71
- this.logger.info({
72
- event: 'local_delivery_enabled',
73
- handlerUrl: config.handlerUrl,
74
- timeout: config.timeout,
75
- }, 'Local delivery forwarding enabled');
76
- }
77
- else {
78
- this.localDeliveryClient = null;
79
- this.logger.info('Local delivery forwarding disabled (using auto-fulfill stub)');
80
- }
81
- }
82
- setLocalDeliveryHandler(handler) {
83
- this.localDeliveryHandler = handler;
84
- this.logger.info({ event: 'local_delivery_handler_set', hasHandler: handler !== null }, 'Local delivery function handler updated');
85
- }
86
- setNip59Wrapper(wrapper, nodePrivateKey) {
87
- this._nip59Wrapper = wrapper;
88
- this._nodePrivateKey = nodePrivateKey;
89
- }
90
- setIlpMetrics(metrics) {
91
- this.ilpMetrics = metrics;
92
- this.logger.info({ event: 'ilp_metrics_enabled' }, 'ILP observability metrics enabled');
93
- }
94
- _derivePreimageFromProtocolData(protocolData) {
95
- if (!this._nip59Wrapper?.isEnabled() || !this._nodePrivateKey || !protocolData) {
96
- return undefined;
97
- }
98
- const wrappedEntry = protocolData.find((p) => p.protocolName === 'claim-wrapped');
99
- if (!wrappedEntry) {
100
- return undefined;
101
- }
102
- try {
103
- const wrappedClaim = (0, nip59_claim_wrapper_1.deserializeWrappedClaim)(wrappedEntry.data);
104
- const result = this._nip59Wrapper.unwrapClaimWithPreimage(wrappedClaim, this._nodePrivateKey);
105
- return result.fulfillmentPreimage;
106
- }
107
- catch (err) {
108
- this.logger.warn({
109
- event: 'preimage_derivation_failed',
110
- error: err instanceof Error ? err.message : String(err),
111
- }, 'Failed to derive preimage from wrapped claim');
112
- return undefined;
113
- }
114
- }
115
- isLocalDeliveryEnabled() {
116
- return this.localDeliveryClient !== null && this.localDeliveryClient.isEnabled();
117
- }
118
- isSettlementEnabled() {
119
- return this.accountManager !== null && this.settlementConfig?.enableSettlement === true;
120
- }
121
- generateTransferId(packetData, direction) {
122
- const dataHash = crypto.createHash('sha256').update(packetData).digest();
123
- const directionByte = direction === 'incoming' ? 0x01 : 0x02;
124
- const nodeIdHash = Buffer.alloc(8);
125
- let hash = 0;
126
- for (let i = 0; i < this.nodeId.length; i++) {
127
- hash = ((hash << 5) - hash + this.nodeId.charCodeAt(i)) | 0;
128
- }
129
- nodeIdHash.writeBigUInt64BE((BigInt(hash >>> 0) << 32n) | BigInt(hash >>> 0), 0);
130
- const high = dataHash.readBigUInt64BE(0);
131
- const low = dataHash.readBigUInt64BE(8);
132
- const nodeIdValue = nodeIdHash.readBigUInt64BE(0);
133
- const transferId = ((high ^ nodeIdValue) << 64n) | low;
134
- return transferId ^ BigInt(directionByte);
135
- }
136
- calculateConnectorFee(amount, feePercentage) {
137
- if (amount < 0n) {
138
- throw new Error(`Invalid amount: ${amount} (must be >= 0)`);
139
- }
140
- if (feePercentage < 0) {
141
- throw new Error(`Invalid fee percentage: ${feePercentage} (must be >= 0)`);
142
- }
143
- const basisPoints = Math.floor(feePercentage * 100);
144
- const fee = (amount * BigInt(basisPoints)) / 10000n;
145
- return fee;
146
- }
147
- async recordPacketTransfers(packet, fromPeerId, toPeerId, forwardedAmount, connectorFee, correlationId) {
148
- if (!this.isSettlementEnabled()) {
149
- return;
150
- }
151
- const packetId = crypto.createHash('sha256').update(packet.data).digest('hex').slice(0, 16);
152
- this.logger.debug({
153
- correlationId,
154
- packetId,
155
- fromPeerId,
156
- toPeerId,
157
- originalAmount: packet.amount.toString(),
158
- forwardedAmount: forwardedAmount.toString(),
159
- connectorFee: connectorFee.toString(),
160
- }, 'Processing settlement for packet');
161
- try {
162
- const incomingTransferId = this.generateTransferId(packet.data, 'incoming');
163
- const outgoingTransferId = this.generateTransferId(packet.data, 'outgoing');
164
- await this.accountManager.recordPacketTransfers(fromPeerId, toPeerId, this.defaultTokenId, packet.amount, forwardedAmount, incomingTransferId, outgoingTransferId, types_1.AccountLedgerCodes.DEFAULT_LEDGER, 1);
165
- this.logger.info({
166
- correlationId,
167
- packetId,
168
- fromPeerId,
169
- toPeerId,
170
- originalAmount: packet.amount.toString(),
171
- forwardedAmount: forwardedAmount.toString(),
172
- connectorFee: connectorFee.toString(),
173
- }, 'Settlement transfers recorded: incoming={originalAmount} from {fromPeerId}, outgoing={forwardedAmount} to {toPeerId}, fee={connectorFee}');
174
- }
175
- catch (error) {
176
- this.logger.error({
177
- correlationId,
178
- error: error instanceof Error ? error.message : String(error),
179
- packetId,
180
- fromPeerId,
181
- toPeerId,
182
- }, 'Settlement recording failed: {error}, rejecting packet with T00_INTERNAL_ERROR');
183
- throw error;
184
- }
185
- }
186
- validatePacket(packet) {
187
- if (packet.amount === undefined || !packet.destination || !packet.expiresAt || !packet.data) {
188
- this.logger.error({
189
- packetType: packet.type,
190
- hasAmount: packet.amount !== undefined,
191
- hasDestination: !!packet.destination,
192
- hasExpiresAt: !!packet.expiresAt,
193
- hasData: !!packet.data,
194
- errorCode: shared_1.ILPErrorCode.F01_INVALID_PACKET,
195
- }, 'Packet validation failed: missing required fields');
196
- return {
197
- isValid: false,
198
- errorCode: shared_1.ILPErrorCode.F01_INVALID_PACKET,
199
- errorMessage: 'Missing required packet fields',
200
- };
201
- }
202
- if (!(0, shared_1.isValidILPAddress)(packet.destination)) {
203
- this.logger.error({
204
- destination: packet.destination,
205
- errorCode: shared_1.ILPErrorCode.F01_INVALID_PACKET,
206
- }, 'Packet validation failed: invalid ILP address format');
207
- return {
208
- isValid: false,
209
- errorCode: shared_1.ILPErrorCode.F01_INVALID_PACKET,
210
- errorMessage: `Invalid ILP address format: ${packet.destination}`,
211
- };
212
- }
213
- const currentTime = new Date();
214
- if (packet.expiresAt <= currentTime) {
215
- this.logger.error({
216
- expiresAt: packet.expiresAt.toISOString(),
217
- currentTime: currentTime.toISOString(),
218
- errorCode: shared_1.ILPErrorCode.R00_TRANSFER_TIMED_OUT,
219
- }, 'Packet validation failed: packet has expired');
220
- return {
221
- isValid: false,
222
- errorCode: shared_1.ILPErrorCode.R00_TRANSFER_TIMED_OUT,
223
- errorMessage: 'Packet has expired',
224
- };
225
- }
226
- return { isValid: true };
227
- }
228
- decrementExpiry(expiresAt, safetyMargin) {
229
- const newExpiry = new Date(expiresAt.getTime() - safetyMargin);
230
- const currentTime = new Date();
231
- if (newExpiry <= currentTime) {
232
- this.logger.debug({
233
- originalExpiry: expiresAt.toISOString(),
234
- decrementedExpiry: newExpiry.toISOString(),
235
- currentTime: currentTime.toISOString(),
236
- safetyMargin,
237
- }, 'Expiry decrement would create past timestamp');
238
- return null;
239
- }
240
- this.logger.debug({
241
- originalExpiry: expiresAt.toISOString(),
242
- newExpiry: newExpiry.toISOString(),
243
- safetyMargin,
244
- }, 'Decremented packet expiry');
245
- return newExpiry;
246
- }
247
- generateReject(code, message, triggeredBy) {
248
- this.logger.info({
249
- errorCode: code,
250
- message,
251
- triggeredBy,
252
- }, 'Generated reject packet');
253
- return {
254
- type: shared_1.PacketType.REJECT,
255
- code,
256
- triggeredBy,
257
- message,
258
- data: Buffer.alloc(0),
259
- };
260
- }
261
- convertLocalDeliveryResponse(result) {
262
- if (result.fulfill) {
263
- return {
264
- type: shared_1.PacketType.FULFILL,
265
- data: result.fulfill.data ? Buffer.from(result.fulfill.data, 'base64') : Buffer.alloc(0),
266
- };
267
- }
268
- else if (result.reject) {
269
- return {
270
- type: shared_1.PacketType.REJECT,
271
- code: result.reject.code || shared_1.ILPErrorCode.F99_APPLICATION_ERROR,
272
- triggeredBy: this.nodeId,
273
- message: result.reject.message || 'Rejected by agent',
274
- data: result.reject.data ? Buffer.from(result.reject.data, 'base64') : Buffer.alloc(0),
275
- };
276
- }
277
- else {
278
- return this.generateReject(shared_1.ILPErrorCode.T00_INTERNAL_ERROR, 'Invalid response from local delivery handler', this.nodeId);
279
- }
280
- }
281
- async forwardToNextHop(packet, nextHop, correlationId, protocolData) {
282
- this.logger.info({
283
- correlationId,
284
- event: 'btp_forward',
285
- destination: packet.destination,
286
- amount: packet.amount.toString(),
287
- peerId: nextHop,
288
- }, 'Forwarding packet to peer via BTP');
289
- try {
290
- let response;
291
- const hasOutbound = this.btpClientManager.isConnected(nextHop);
292
- const hasInbound = this.btpServer?.hasPeer(nextHop) ?? false;
293
- if (hasOutbound) {
294
- response = await this.btpClientManager.sendToPeer(nextHop, packet, protocolData);
295
- this.logger.debug({ correlationId, peerId: nextHop }, 'Forwarded via outbound peer connection');
296
- }
297
- else if (hasInbound) {
298
- this.logger.debug({ correlationId, peerId: nextHop }, 'No outbound connection, using incoming peer connection');
299
- response = await this.btpServer.sendPacketToPeer(nextHop, packet, protocolData);
300
- this.logger.debug({ correlationId, peerId: nextHop }, 'Forwarded via incoming peer connection');
301
- }
302
- else {
303
- throw new btp_client_1.BTPConnectionError(`No active BTP connection to peer ${nextHop}`);
304
- }
305
- this.logger.info({
306
- correlationId,
307
- event: 'btp_forward_success',
308
- peerId: nextHop,
309
- responseType: response.type,
310
- }, 'Received response from peer via BTP');
311
- return response;
312
- }
313
- catch (error) {
314
- const errorMessage = error instanceof Error ? error.message : String(error);
315
- if (error instanceof btp_client_1.BTPConnectionError) {
316
- this.logger.error({
317
- correlationId,
318
- event: 'btp_connection_error',
319
- peerId: nextHop,
320
- error: errorMessage,
321
- }, 'BTP connection failed');
322
- return this.generateReject(shared_1.ILPErrorCode.T01_PEER_UNREACHABLE, `BTP connection to ${nextHop} failed: ${errorMessage}`, this.nodeId);
323
- }
324
- if (error instanceof btp_client_1.BTPAuthenticationError) {
325
- this.logger.error({
326
- correlationId,
327
- event: 'btp_auth_error',
328
- peerId: nextHop,
329
- error: errorMessage,
330
- }, 'BTP authentication failed');
331
- return this.generateReject(shared_1.ILPErrorCode.T01_PEER_UNREACHABLE, `BTP authentication to ${nextHop} failed: ${errorMessage}`, this.nodeId);
332
- }
333
- if (errorMessage.includes('timeout')) {
334
- this.logger.error({
335
- correlationId,
336
- event: 'btp_timeout',
337
- peerId: nextHop,
338
- error: errorMessage,
339
- }, 'BTP packet send timeout');
340
- return this.generateReject(shared_1.ILPErrorCode.R00_TRANSFER_TIMED_OUT, `BTP timeout to ${nextHop}: ${errorMessage}`, this.nodeId);
341
- }
342
- this.logger.error({
343
- correlationId,
344
- event: 'btp_forward_error',
345
- peerId: nextHop,
346
- error: errorMessage,
347
- }, 'Unexpected error forwarding packet via BTP');
348
- throw error;
349
- }
350
- }
351
- async handlePreparePacket(packet, fromPeerId, incomingProtocolData) {
352
- const correlationId = (0, logger_1.generateCorrelationId)();
353
- const sourcePeerId = fromPeerId || 'unknown';
354
- this.logger.info({
355
- correlationId,
356
- packetType: 'PREPARE',
357
- destination: packet.destination,
358
- amount: packet.amount.toString(),
359
- fromPeerId: sourcePeerId,
360
- timestamp: Date.now(),
361
- }, 'Packet received');
362
- this.ilpMetrics?.recordInbound(sourcePeerId, packet.data.byteLength);
363
- const validation = this.validatePacket(packet);
364
- if (!validation.isValid) {
365
- this.logger.error({
366
- correlationId,
367
- packetType: 'REJECT',
368
- destination: packet.destination,
369
- errorCode: validation.errorCode,
370
- reason: validation.errorMessage,
371
- timestamp: Date.now(),
372
- }, 'Packet rejected');
373
- this.ilpMetrics?.recordPreRoutingReject('validation_failed');
374
- return this.generateReject(validation.errorCode, validation.errorMessage, this.nodeId);
375
- }
376
- const nextHop = this.routingTable.getNextHop(packet.destination);
377
- if (nextHop === null) {
378
- this.logger.info({
379
- correlationId,
380
- destination: packet.destination,
381
- selectedPeer: null,
382
- reason: 'no route found',
383
- }, 'Routing decision');
384
- this.logger.error({
385
- correlationId,
386
- packetType: 'REJECT',
387
- destination: packet.destination,
388
- errorCode: shared_1.ILPErrorCode.F02_UNREACHABLE,
389
- reason: 'no route found',
390
- timestamp: Date.now(),
391
- }, 'Packet rejected');
392
- this.ilpMetrics?.recordPreRoutingReject('no_route');
393
- return this.generateReject(shared_1.ILPErrorCode.F02_UNREACHABLE, `No route to destination: ${packet.destination}`, this.nodeId);
394
- }
395
- this.logger.info({
396
- correlationId,
397
- destination: packet.destination,
398
- selectedPeer: nextHop,
399
- reason: 'longest-prefix match',
400
- }, 'Routing decision');
401
- if (nextHop === this.nodeId || nextHop === 'local') {
402
- this.logger.info({
403
- correlationId,
404
- destination: packet.destination,
405
- reason: 'local delivery',
406
- }, 'Delivering packet locally');
407
- const preimage = this._derivePreimageFromProtocolData(incomingProtocolData);
408
- if (this.localDeliveryHandler) {
409
- const request = {
410
- destination: packet.destination,
411
- amount: packet.amount.toString(),
412
- expiresAt: packet.expiresAt.toISOString(),
413
- data: packet.data.toString('base64'),
414
- sourcePeer: sourcePeerId,
415
- };
416
- try {
417
- const result = await this.localDeliveryHandler(request, sourcePeerId);
418
- const response = this.convertLocalDeliveryResponse(result);
419
- if (response.type === shared_1.PacketType.FULFILL && preimage) {
420
- response.fulfillment = preimage;
421
- }
422
- return response;
423
- }
424
- catch (error) {
425
- return this.generateReject(shared_1.ILPErrorCode.T00_INTERNAL_ERROR, `Local delivery handler error: ${error instanceof Error ? error.message : String(error)}`, this.nodeId);
426
- }
427
- }
428
- if (this.isLocalDeliveryEnabled() && this.localDeliveryClient) {
429
- this.logger.debug({ correlationId, destination: packet.destination }, 'Forwarding to BLS for local delivery');
430
- const response = await this.localDeliveryClient.deliver(packet, sourcePeerId);
431
- if (response.type === shared_1.PacketType.FULFILL && preimage) {
432
- response.fulfillment = preimage;
433
- }
434
- this.logger.info({
435
- correlationId,
436
- event: 'packet_response',
437
- packetType: response.type,
438
- destination: packet.destination,
439
- timestamp: Date.now(),
440
- }, response.type === shared_1.PacketType.FULFILL
441
- ? 'Packet fulfilled by BLS'
442
- : 'Packet rejected by BLS');
443
- return response;
444
- }
445
- const fulfillPacket = {
446
- type: shared_1.PacketType.FULFILL,
447
- fulfillment: preimage,
448
- data: Buffer.from('Local delivery - auto-fulfill stub'),
449
- };
450
- this.logger.info({
451
- correlationId,
452
- event: 'packet_response',
453
- packetType: shared_1.PacketType.FULFILL,
454
- destination: packet.destination,
455
- timestamp: Date.now(),
456
- }, 'Returning local fulfillment (auto-fulfill stub)');
457
- return fulfillPacket;
458
- }
459
- const newExpiry = this.decrementExpiry(packet.expiresAt, EXPIRY_SAFETY_MARGIN_MS);
460
- if (newExpiry === null) {
461
- this.logger.error({
462
- correlationId,
463
- packetType: 'REJECT',
464
- destination: packet.destination,
465
- errorCode: shared_1.ILPErrorCode.R00_TRANSFER_TIMED_OUT,
466
- expiresAt: packet.expiresAt.toISOString(),
467
- reason: 'Insufficient time remaining for forwarding',
468
- timestamp: Date.now(),
469
- }, 'Packet rejected');
470
- this.ilpMetrics?.recordPreRoutingReject('expiry_too_short');
471
- return this.generateReject(shared_1.ILPErrorCode.R00_TRANSFER_TIMED_OUT, 'Insufficient time remaining for forwarding', this.nodeId);
472
- }
473
- let forwardingPacket;
474
- const isLocalDelivery = nextHop === 'local';
475
- if (this.isSettlementEnabled() && !isLocalDelivery) {
476
- const connectorFee = this.calculateConnectorFee(packet.amount, this.settlementConfig?.connectorFeePercentage ?? 0.1);
477
- const forwardedAmount = packet.amount - connectorFee;
478
- this.logger.debug({
479
- correlationId,
480
- originalAmount: packet.amount.toString(),
481
- connectorFee: connectorFee.toString(),
482
- forwardedAmount: forwardedAmount.toString(),
483
- feePercentage: this.settlementConfig?.connectorFeePercentage,
484
- }, 'Calculated connector fee');
485
- const fromPeerId = 'unknown';
486
- const tokenId = this.defaultTokenId;
487
- const creditLimitViolation = await this.accountManager.checkCreditLimit(fromPeerId, tokenId, packet.amount);
488
- if (creditLimitViolation) {
489
- this.logger.warn({
490
- correlationId,
491
- packetType: 'REJECT',
492
- destination: packet.destination,
493
- errorCode: shared_1.ILPErrorCode.T04_INSUFFICIENT_LIQUIDITY,
494
- fromPeerId: creditLimitViolation.peerId,
495
- currentBalance: creditLimitViolation.currentBalance.toString(),
496
- requestedAmount: creditLimitViolation.requestedAmount.toString(),
497
- creditLimit: creditLimitViolation.creditLimit.toString(),
498
- wouldExceedBy: creditLimitViolation.wouldExceedBy.toString(),
499
- reason: 'Credit limit exceeded',
500
- timestamp: Date.now(),
501
- }, 'Packet rejected: credit limit exceeded');
502
- this.ilpMetrics?.recordPreRoutingReject('credit_limit_exceeded');
503
- return this.generateReject(shared_1.ILPErrorCode.T04_INSUFFICIENT_LIQUIDITY, `Credit limit exceeded: peer ${fromPeerId} would owe ${creditLimitViolation.wouldExceedBy} units over limit of ${creditLimitViolation.creditLimit}`, this.nodeId);
504
- }
505
- if (sourcePeerId !== 'unknown' && packet.amount > 0n && forwardedAmount > 0n) {
506
- try {
507
- await this.recordPacketTransfers(packet, sourcePeerId, nextHop, forwardedAmount, connectorFee, correlationId);
508
- }
509
- catch (error) {
510
- this.logger.error({
511
- correlationId,
512
- packetType: 'REJECT',
513
- destination: packet.destination,
514
- errorCode: shared_1.ILPErrorCode.T00_INTERNAL_ERROR,
515
- error: error instanceof Error ? error.message : String(error),
516
- reason: 'Settlement recording failed',
517
- timestamp: Date.now(),
518
- }, 'Packet rejected due to settlement failure');
519
- this.ilpMetrics?.recordPreRoutingReject('settlement_recording_failed');
520
- return this.generateReject(shared_1.ILPErrorCode.T00_INTERNAL_ERROR, 'Settlement recording failed', this.nodeId);
521
- }
522
- }
523
- else {
524
- this.logger.debug({
525
- correlationId,
526
- sourcePeerId,
527
- reason: 'Skipping settlement for unknown peer',
528
- }, 'Settlement skipped for unregistered peer');
529
- }
530
- forwardingPacket = {
531
- ...packet,
532
- expiresAt: newExpiry,
533
- amount: forwardedAmount,
534
- };
535
- }
536
- else {
537
- forwardingPacket = {
538
- ...packet,
539
- expiresAt: newExpiry,
540
- };
541
- }
542
- const perHopEnabled = this.localDeliveryClient?.isPerHopNotificationEnabled() ?? false;
543
- if (perHopEnabled) {
544
- if (this.localDeliveryHandler) {
545
- const transitRequest = {
546
- destination: packet.destination,
547
- amount: packet.amount.toString(),
548
- expiresAt: packet.expiresAt.toISOString(),
549
- data: packet.data.toString('base64'),
550
- sourcePeer: sourcePeerId,
551
- isTransit: true,
552
- };
553
- this.localDeliveryHandler(transitRequest, sourcePeerId).catch((err) => {
554
- this.logger.debug({
555
- error: err instanceof Error ? err.message : String(err),
556
- destination: packet.destination,
557
- }, 'Per-hop notification failed (fire-and-forget, in-process)');
558
- });
559
- }
560
- else if (this.isLocalDeliveryEnabled() && this.localDeliveryClient) {
561
- this.localDeliveryClient
562
- .deliver(packet, sourcePeerId, { isTransit: true })
563
- .catch((err) => {
564
- this.logger.debug({
565
- error: err instanceof Error ? err.message : String(err),
566
- destination: packet.destination,
567
- }, 'Per-hop notification failed (fire-and-forget, HTTP)');
568
- });
569
- }
570
- }
571
- let claimProtocolData;
572
- if (!isLocalDelivery && forwardingPacket.amount > 0n) {
573
- if (!this.perPacketClaimService) {
574
- this.logger.error({
575
- correlationId,
576
- peerId: nextHop,
577
- errorCode: shared_1.ILPErrorCode.T00_INTERNAL_ERROR,
578
- }, 'Per-packet claim service not configured');
579
- this.ilpMetrics?.recordPreRoutingReject('claim_generation_failed');
580
- return this.generateReject(shared_1.ILPErrorCode.T00_INTERNAL_ERROR, 'Per-packet claim service not configured', this.nodeId);
581
- }
582
- try {
583
- const result = await this.perPacketClaimService.generateClaimForPacket(nextHop, this.defaultTokenId, forwardingPacket.amount);
584
- if (!result) {
585
- this.logger.error({
586
- correlationId,
587
- peerId: nextHop,
588
- errorCode: shared_1.ILPErrorCode.T00_INTERNAL_ERROR,
589
- }, 'No payment channel available for peer');
590
- this.ilpMetrics?.recordPreRoutingReject('claim_generation_failed');
591
- return this.generateReject(shared_1.ILPErrorCode.T00_INTERNAL_ERROR, 'No payment channel available for peer', this.nodeId);
592
- }
593
- claimProtocolData = [result.protocolData];
594
- if (result.executionCondition &&
595
- (!forwardingPacket.executionCondition ||
596
- Buffer.from(forwardingPacket.executionCondition).every((b) => b === 0))) {
597
- forwardingPacket = { ...forwardingPacket, executionCondition: result.executionCondition };
598
- }
599
- }
600
- catch (error) {
601
- this.logger.error({
602
- correlationId,
603
- peerId: nextHop,
604
- error: error instanceof Error ? error.message : String(error),
605
- errorCode: shared_1.ILPErrorCode.T00_INTERNAL_ERROR,
606
- }, 'Claim generation failed');
607
- this.ilpMetrics?.recordPreRoutingReject('claim_generation_failed');
608
- return this.generateReject(shared_1.ILPErrorCode.T00_INTERNAL_ERROR, 'Claim generation failed', this.nodeId);
609
- }
610
- }
611
- let response = await this.forwardToNextHop(forwardingPacket, nextHop, correlationId, claimProtocolData);
612
- if (response.type === shared_1.PacketType.FULFILL &&
613
- forwardingPacket.executionCondition &&
614
- !Buffer.from(forwardingPacket.executionCondition).every((b) => b === 0)) {
615
- const fulfillmentBytes = response.fulfillment;
616
- if (!fulfillmentBytes || Buffer.from(fulfillmentBytes).every((b) => b === 0)) {
617
- this.logger.error({
618
- correlationId,
619
- event: 'fulfillment_missing',
620
- peerId: nextHop,
621
- }, 'FULFILL missing fulfillment but execution condition is present');
622
- response = this.generateReject(shared_1.ILPErrorCode.F99_APPLICATION_ERROR, 'Fulfillment does not match execution condition', this.nodeId);
623
- }
624
- else {
625
- const expectedCondition = (0, sha2_1.sha256)(new Uint8Array(fulfillmentBytes));
626
- if (!Buffer.from(expectedCondition).equals(Buffer.from(forwardingPacket.executionCondition))) {
627
- this.logger.error({
628
- correlationId,
629
- event: 'fulfillment_verification_failed',
630
- peerId: nextHop,
631
- }, 'Fulfillment does not match execution condition');
632
- response = this.generateReject(shared_1.ILPErrorCode.F99_APPLICATION_ERROR, 'Fulfillment does not match execution condition', this.nodeId);
633
- }
634
- }
635
- }
636
- const outBytes = forwardingPacket.data.byteLength;
637
- if (response.type === shared_1.PacketType.FULFILL) {
638
- this.ilpMetrics?.recordForwardFulfill(nextHop, outBytes);
639
- }
640
- else {
641
- this.ilpMetrics?.recordForwardReject(nextHop, outBytes);
642
- }
643
- this.logger.info({
644
- correlationId,
645
- event: 'packet_response',
646
- packetType: response.type,
647
- destination: packet.destination,
648
- code: response.type === shared_1.PacketType.REJECT ? response.code : undefined,
649
- timestamp: Date.now(),
650
- }, 'Returning packet response');
651
- return response;
652
- }
653
- }
654
- exports.PacketHandler = PacketHandler;
655
- //# sourceMappingURL=packet-handler.js.map