@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,538 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.MinaPaymentChannelSDK = exports.MinaChannelError = exports.MINA_ERROR_CODES = void 0;
37
+ exports._resetModuleCaches = _resetModuleCaches;
38
+ exports.MINA_ERROR_CODES = {
39
+ COMPILE_FAILED: 1001,
40
+ TRANSACTION_FAILED: 1002,
41
+ PROOF_GENERATION_FAILED: 1003,
42
+ INVALID_CHANNEL_STATE: 1004,
43
+ ACCOUNT_NOT_FOUND: 1005,
44
+ INVALID_PROOF: 1006,
45
+ ARCHIVE_NODE_ERROR: 1007,
46
+ INVALID_PARAMETERS: 1008,
47
+ O1JS_NOT_AVAILABLE: 9999,
48
+ };
49
+ class MinaChannelError extends Error {
50
+ code;
51
+ errorName;
52
+ constructor(message, code, errorName) {
53
+ super(message);
54
+ this.name = 'MinaChannelError';
55
+ this.code = code;
56
+ this.errorName = errorName;
57
+ Error.captureStackTrace(this, MinaChannelError);
58
+ }
59
+ }
60
+ exports.MinaChannelError = MinaChannelError;
61
+ let o1jsModule = null;
62
+ async function getO1js() {
63
+ if (!o1jsModule) {
64
+ try {
65
+ o1jsModule = await Promise.resolve().then(() => __importStar(require('o1js')));
66
+ }
67
+ catch {
68
+ throw new MinaChannelError('o1js is required for Mina payment channels but is not installed. ' +
69
+ 'Install it with: npm install o1js', exports.MINA_ERROR_CODES.O1JS_NOT_AVAILABLE, 'O1JS_NOT_AVAILABLE');
70
+ }
71
+ }
72
+ return o1jsModule;
73
+ }
74
+ let PaymentChannelContract = null;
75
+ async function getPaymentChannelContract() {
76
+ if (!PaymentChannelContract) {
77
+ try {
78
+ const mod = await Promise.resolve().then(() => __importStar(require('@toon-protocol/mina-zkapp')));
79
+ PaymentChannelContract = mod.PaymentChannel;
80
+ }
81
+ catch {
82
+ throw new MinaChannelError('@toon-protocol/mina-zkapp is required for Mina payment channels but is not installed.', exports.MINA_ERROR_CODES.O1JS_NOT_AVAILABLE, 'O1JS_NOT_AVAILABLE');
83
+ }
84
+ }
85
+ return PaymentChannelContract;
86
+ }
87
+ const DEFAULT_POLL_INTERVAL_MS = 30_000;
88
+ function _resetModuleCaches() {
89
+ o1jsModule = null;
90
+ PaymentChannelContract = null;
91
+ }
92
+ class MinaPaymentChannelSDK {
93
+ _zkAppAddress;
94
+ _logger;
95
+ _signerPrivateKey;
96
+ graphqlUrl;
97
+ _compiled = false;
98
+ _verificationKey = null;
99
+ get verificationKey() {
100
+ return this._verificationKey;
101
+ }
102
+ _networkInitialized = false;
103
+ _participantCache = new Map();
104
+ constructor(graphqlUrl, _zkAppAddress, _logger, _signerPrivateKey) {
105
+ this._zkAppAddress = _zkAppAddress;
106
+ this._logger = _logger;
107
+ this._signerPrivateKey = _signerPrivateKey;
108
+ this.graphqlUrl = graphqlUrl;
109
+ }
110
+ _requireSignerKey() {
111
+ if (!this._signerPrivateKey) {
112
+ throw new MinaChannelError('signer private key required for this operation', exports.MINA_ERROR_CODES.INVALID_PARAMETERS, 'INVALID_PARAMETERS');
113
+ }
114
+ return this._signerPrivateKey;
115
+ }
116
+ async _setNetwork() {
117
+ const { Mina } = await getO1js();
118
+ if (!this._networkInitialized) {
119
+ const Network = Mina.Network(this.graphqlUrl);
120
+ Mina.setActiveInstance(Network);
121
+ this._networkInitialized = true;
122
+ }
123
+ return Mina;
124
+ }
125
+ async _getZkApp(channelAddress) {
126
+ const { PublicKey, fetchAccount } = await getO1js();
127
+ const Contract = await getPaymentChannelContract();
128
+ const zkAppPublicKey = PublicKey.fromBase58(channelAddress);
129
+ const result = await fetchAccount({ publicKey: zkAppPublicKey });
130
+ if (result.error) {
131
+ throw new MinaChannelError(`Failed to fetch account at ${channelAddress}: ${String(result.error)}`, exports.MINA_ERROR_CODES.ACCOUNT_NOT_FOUND, 'ACCOUNT_NOT_FOUND');
132
+ }
133
+ return new Contract(zkAppPublicKey);
134
+ }
135
+ _wrapError(err, code, errorName) {
136
+ if (err instanceof MinaChannelError) {
137
+ return err;
138
+ }
139
+ const message = err instanceof Error ? err.message : String(err);
140
+ return new MinaChannelError(message, code, errorName);
141
+ }
142
+ _deserializeSignature(signatureStr, fieldName) {
143
+ let parsed;
144
+ try {
145
+ parsed = JSON.parse(signatureStr);
146
+ }
147
+ catch {
148
+ throw new MinaChannelError(`Invalid ${fieldName}: expected a JSON string with { r, s } fields, received malformed JSON`, exports.MINA_ERROR_CODES.INVALID_PARAMETERS, 'INVALID_PARAMETERS');
149
+ }
150
+ if (typeof parsed !== 'object' ||
151
+ parsed === null ||
152
+ typeof parsed.r !== 'string' ||
153
+ typeof parsed.s !== 'string') {
154
+ throw new MinaChannelError(`Invalid ${fieldName}: expected an object with string 'r' and 's' fields`, exports.MINA_ERROR_CODES.INVALID_PARAMETERS, 'INVALID_PARAMETERS');
155
+ }
156
+ const { Signature } = o1jsModule;
157
+ return Signature.fromJSON({ r: parsed.r, s: parsed.s });
158
+ }
159
+ async getSignerPublicKey() {
160
+ const signerKeyBase58 = this._requireSignerKey();
161
+ try {
162
+ const { PrivateKey } = await getO1js();
163
+ const privateKey = PrivateKey.fromBase58(signerKeyBase58);
164
+ return privateKey.toPublicKey().toBase58();
165
+ }
166
+ catch (err) {
167
+ if (err instanceof MinaChannelError)
168
+ throw err;
169
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.INVALID_PARAMETERS, 'INVALID_PARAMETERS');
170
+ }
171
+ }
172
+ async compileContract() {
173
+ if (this._compiled) {
174
+ this._logger.debug({ event: 'compile_contract_cached', zkAppAddress: this._zkAppAddress }, 'Mina zkApp circuit already compiled, skipping');
175
+ return;
176
+ }
177
+ this._logger.info({ event: 'compile_contract', zkAppAddress: this._zkAppAddress }, 'Compiling Mina zkApp circuit');
178
+ const startTime = Date.now();
179
+ try {
180
+ const Contract = await getPaymentChannelContract();
181
+ const result = await Contract.compile();
182
+ this._verificationKey = result?.verificationKey ?? null;
183
+ this._compiled = true;
184
+ const durationMs = Date.now() - startTime;
185
+ this._logger.info({ event: 'compile_contract_complete', zkAppAddress: this._zkAppAddress, durationMs }, `Mina zkApp circuit compiled in ${durationMs}ms`);
186
+ }
187
+ catch (err) {
188
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.COMPILE_FAILED, 'COMPILE_FAILED');
189
+ }
190
+ }
191
+ async openChannel(participantA, participantB, timeout, tokenId) {
192
+ const signerKeyBase58 = this._requireSignerKey();
193
+ try {
194
+ const { PrivateKey, PublicKey, Field, AccountUpdate, fetchAccount } = await getO1js();
195
+ const Contract = await getPaymentChannelContract();
196
+ const Mina = await this._setNetwork();
197
+ const zkAppPrivateKey = PrivateKey.random();
198
+ const zkAppPublicKey = zkAppPrivateKey.toPublicKey();
199
+ const zkAppAddress = zkAppPublicKey.toBase58();
200
+ const signerPrivateKey = PrivateKey.fromBase58(signerKeyBase58);
201
+ const signerPublicKey = signerPrivateKey.toPublicKey();
202
+ await fetchAccount({ publicKey: signerPublicKey });
203
+ const zkApp = new Contract(zkAppPublicKey);
204
+ const pubA = PublicKey.fromBase58(participantA);
205
+ const pubB = PublicKey.fromBase58(participantB);
206
+ const nonce = Field(0);
207
+ const timeoutField = Field(timeout);
208
+ const tokenIdField = Field(tokenId ?? '1');
209
+ const txn = await Mina.transaction(signerPublicKey, async () => {
210
+ AccountUpdate.fundNewAccount(signerPublicKey);
211
+ await zkApp.deploy();
212
+ await zkApp.initializeChannel(pubA, pubB, nonce, timeoutField, tokenIdField);
213
+ });
214
+ await txn.prove();
215
+ const sentTx = await txn.sign([signerPrivateKey, zkAppPrivateKey]).send();
216
+ const txHash = sentTx.hash ?? '';
217
+ this._participantCache.set(zkAppAddress, { participantA, participantB });
218
+ this._logger.info({ event: 'open_channel', zkAppAddress, txHash }, 'Mina payment channel opened');
219
+ return { zkAppAddress, txHash };
220
+ }
221
+ catch (err) {
222
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.TRANSACTION_FAILED, 'TRANSACTION_FAILED');
223
+ }
224
+ }
225
+ async deposit(channelAddress, amount) {
226
+ const signerKeyBase58 = this._requireSignerKey();
227
+ try {
228
+ const { PrivateKey, Field, fetchAccount } = await getO1js();
229
+ const Mina = await this._setNetwork();
230
+ const signerPrivateKey = PrivateKey.fromBase58(signerKeyBase58);
231
+ const signerPublicKey = signerPrivateKey.toPublicKey();
232
+ await fetchAccount({ publicKey: signerPublicKey });
233
+ const zkApp = await this._getZkApp(channelAddress);
234
+ const amountField = Field(amount);
235
+ const txn = await Mina.transaction(signerPublicKey, async () => {
236
+ await zkApp.deposit(amountField, signerPublicKey);
237
+ });
238
+ await txn.prove();
239
+ const sentTx = await txn.sign([signerPrivateKey]).send();
240
+ const txHash = sentTx.hash ?? '';
241
+ this._logger.info({ event: 'deposit', channelAddress, amount: amount.toString(), txHash }, 'Deposited into Mina payment channel');
242
+ return { txHash };
243
+ }
244
+ catch (err) {
245
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.TRANSACTION_FAILED, 'TRANSACTION_FAILED');
246
+ }
247
+ }
248
+ async claimFromChannel(channelAddress, newBalanceA, newBalanceB, salt, nonce, signatureA, signatureB) {
249
+ const signerKeyBase58 = this._requireSignerKey();
250
+ try {
251
+ const { PrivateKey, PublicKey, Field, Poseidon, fetchAccount } = await getO1js();
252
+ const Mina = await this._setNetwork();
253
+ const signerPrivateKey = PrivateKey.fromBase58(signerKeyBase58);
254
+ const signerPublicKey = signerPrivateKey.toPublicKey();
255
+ await fetchAccount({ publicKey: signerPublicKey });
256
+ const zkApp = await this._getZkApp(channelAddress);
257
+ const balA = Field(newBalanceA);
258
+ const balB = Field(newBalanceB);
259
+ const saltField = Field(salt);
260
+ const newNonce = Field(nonce);
261
+ const newBalanceCommitment = Poseidon.hash([balA, balB, saltField]);
262
+ const sigA = this._deserializeSignature(signatureA, 'signatureA');
263
+ const sigB = this._deserializeSignature(signatureB, 'signatureB');
264
+ const cached = this._participantCache.get(channelAddress);
265
+ if (!cached) {
266
+ throw new MinaChannelError('Participant keys not found in cache. The channel must have been opened by this SDK instance, ' +
267
+ 'or participant keys must be provided via openChannel().', exports.MINA_ERROR_CODES.ACCOUNT_NOT_FOUND, 'ACCOUNT_NOT_FOUND');
268
+ }
269
+ const participantA = PublicKey.fromBase58(cached.participantA);
270
+ const participantB = PublicKey.fromBase58(cached.participantB);
271
+ const channelNonce = Field(0);
272
+ const txn = await Mina.transaction(signerPublicKey, async () => {
273
+ await zkApp.claimFromChannel(balA, balB, saltField, sigA, sigB, participantA, participantB, channelNonce, newBalanceCommitment, newNonce);
274
+ });
275
+ await txn.prove();
276
+ const sentTx = await txn.sign([signerPrivateKey]).send();
277
+ const txHash = sentTx.hash ?? '';
278
+ this._logger.info({ event: 'claim_from_channel', channelAddress, nonce: nonce.toString(), txHash }, 'Claim submitted to Mina payment channel');
279
+ return { txHash };
280
+ }
281
+ catch (err) {
282
+ if (err instanceof MinaChannelError)
283
+ throw err;
284
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.PROOF_GENERATION_FAILED, 'PROOF_GENERATION_FAILED');
285
+ }
286
+ }
287
+ async closeChannel(channelAddress, finalBalanceA, finalBalanceB, salt, nonce, signatureA, signatureB) {
288
+ const signerKeyBase58 = this._requireSignerKey();
289
+ try {
290
+ const { PrivateKey, Field, fetchAccount } = await getO1js();
291
+ const Mina = await this._setNetwork();
292
+ const signerPrivateKey = PrivateKey.fromBase58(signerKeyBase58);
293
+ const signerPublicKey = signerPrivateKey.toPublicKey();
294
+ await fetchAccount({ publicKey: signerPublicKey });
295
+ const zkApp = await this._getZkApp(channelAddress);
296
+ const balA = Field(finalBalanceA);
297
+ const balB = Field(finalBalanceB);
298
+ const saltField = Field(salt);
299
+ const nonceField = Field(nonce);
300
+ const sigA = this._deserializeSignature(signatureA, 'signatureA');
301
+ const sigB = this._deserializeSignature(signatureB, 'signatureB');
302
+ const txn = await Mina.transaction(signerPublicKey, async () => {
303
+ await zkApp.initiateClose(balA, balB, saltField, nonceField, sigA, sigB);
304
+ });
305
+ await txn.prove();
306
+ const sentTx = await txn.sign([signerPrivateKey]).send();
307
+ const txHash = sentTx.hash ?? '';
308
+ this._logger.info({ event: 'close_channel', channelAddress, txHash }, 'Mina payment channel close initiated');
309
+ return { txHash };
310
+ }
311
+ catch (err) {
312
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.TRANSACTION_FAILED, 'TRANSACTION_FAILED');
313
+ }
314
+ }
315
+ async settleChannel(channelAddress, balanceA, balanceB, salt, participantA, participantB, nonce) {
316
+ const signerKeyBase58 = this._requireSignerKey();
317
+ try {
318
+ const { PrivateKey, PublicKey, Field, fetchAccount } = await getO1js();
319
+ const Mina = await this._setNetwork();
320
+ const signerPrivateKey = PrivateKey.fromBase58(signerKeyBase58);
321
+ const signerPublicKey = signerPrivateKey.toPublicKey();
322
+ await fetchAccount({ publicKey: signerPublicKey });
323
+ const zkApp = await this._getZkApp(channelAddress);
324
+ const balA = Field(balanceA);
325
+ const balB = Field(balanceB);
326
+ const saltField = Field(salt);
327
+ const pubA = PublicKey.fromBase58(participantA);
328
+ const pubB = PublicKey.fromBase58(participantB);
329
+ const nonceField = Field(nonce);
330
+ const txn = await Mina.transaction(signerPublicKey, async () => {
331
+ await zkApp.settle(balA, balB, saltField, pubA, pubB, nonceField);
332
+ });
333
+ await txn.prove();
334
+ const sentTx = await txn.sign([signerPrivateKey]).send();
335
+ const txHash = sentTx.hash ?? '';
336
+ this._logger.info({ event: 'settle_channel', channelAddress, txHash }, 'Mina payment channel settled');
337
+ return { txHash };
338
+ }
339
+ catch (err) {
340
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.TRANSACTION_FAILED, 'TRANSACTION_FAILED');
341
+ }
342
+ }
343
+ async getChannelState(channelAddress) {
344
+ try {
345
+ const { PublicKey, fetchAccount } = await getO1js();
346
+ const Contract = await getPaymentChannelContract();
347
+ const zkAppPublicKey = PublicKey.fromBase58(channelAddress);
348
+ const result = await fetchAccount({ publicKey: zkAppPublicKey });
349
+ if (result.error) {
350
+ throw new MinaChannelError(`Failed to fetch account at ${channelAddress}: ${String(result.error)}`, exports.MINA_ERROR_CODES.ACCOUNT_NOT_FOUND, 'ACCOUNT_NOT_FOUND');
351
+ }
352
+ const zkApp = new Contract(zkAppPublicKey);
353
+ const channelHash = zkApp.channelHash.get();
354
+ const balanceCommitment = zkApp.balanceCommitment.get();
355
+ const nonceField = zkApp.nonceField.get();
356
+ const channelState = zkApp.channelState.get();
357
+ const depositTotal = zkApp.depositTotal.get();
358
+ const closedAtSlot = zkApp.closedAtSlot.get();
359
+ const settlementTimeout = zkApp.settlementTimeout.get();
360
+ const tokenIdField = zkApp.tokenId_.get();
361
+ const cached = this._participantCache.get(channelAddress);
362
+ return {
363
+ participantA: cached?.participantA ?? '',
364
+ participantB: cached?.participantB ?? '',
365
+ channelState: Number(channelState.toBigInt()),
366
+ depositTotal: depositTotal.toBigInt(),
367
+ balanceCommitment: balanceCommitment.toString(),
368
+ nonceField: nonceField.toBigInt(),
369
+ closedAtSlot: closedAtSlot.toBigInt(),
370
+ settlementTimeout: settlementTimeout.toBigInt(),
371
+ tokenId: tokenIdField.toString(),
372
+ channelHash: channelHash.toString(),
373
+ };
374
+ }
375
+ catch (err) {
376
+ if (err instanceof MinaChannelError)
377
+ throw err;
378
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.ACCOUNT_NOT_FOUND, 'ACCOUNT_NOT_FOUND');
379
+ }
380
+ }
381
+ async getChannelEvents(channelAddress) {
382
+ try {
383
+ const zkApp = await this._getZkApp(channelAddress);
384
+ let events = [];
385
+ if (typeof zkApp.fetchEvents === 'function') {
386
+ events = await zkApp.fetchEvents();
387
+ }
388
+ return events.map((event) => ({
389
+ type: String(event.type ?? 'unknown'),
390
+ data: (event.event?.data ?? event.data ?? {}),
391
+ }));
392
+ }
393
+ catch (err) {
394
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.ARCHIVE_NODE_ERROR, 'ARCHIVE_NODE_ERROR');
395
+ }
396
+ }
397
+ async signBalanceProof(channelAddress, balanceA, balanceB, salt, nonce) {
398
+ if (!this._signerPrivateKey) {
399
+ throw new MinaChannelError('signer private key required for signBalanceProof', exports.MINA_ERROR_CODES.INVALID_PARAMETERS, 'INVALID_PARAMETERS');
400
+ }
401
+ try {
402
+ const { PrivateKey, PublicKey, Field, Poseidon, Signature } = await getO1js();
403
+ const commitment = Poseidon.hash([Field(balanceA), Field(balanceB), Field(salt)]);
404
+ const channelPubKey = PublicKey.fromBase58(channelAddress);
405
+ const channelHashField = Poseidon.hash([channelPubKey.x]);
406
+ const privateKey = PrivateKey.fromBase58(this._signerPrivateKey);
407
+ const signature = Signature.create(privateKey, [commitment, Field(nonce), channelHashField]);
408
+ const sigJson = signature.toJSON();
409
+ return JSON.stringify({
410
+ commitment: commitment.toString(),
411
+ signature: { r: sigJson.r, s: sigJson.s },
412
+ nonce: nonce.toString(),
413
+ });
414
+ }
415
+ catch (err) {
416
+ if (err instanceof MinaChannelError)
417
+ throw err;
418
+ throw this._wrapError(err, exports.MINA_ERROR_CODES.PROOF_GENERATION_FAILED, 'PROOF_GENERATION_FAILED');
419
+ }
420
+ }
421
+ async verifyBalanceProof(channelAddress, balanceCommitment, proof, nonce) {
422
+ try {
423
+ const { Field, Poseidon, Signature, PublicKey, PrivateKey } = await getO1js();
424
+ let proofData;
425
+ try {
426
+ proofData = JSON.parse(proof);
427
+ }
428
+ catch {
429
+ this._logger.warn({ event: 'verify_balance_proof_parse_error', channelAddress }, 'Balance proof is not valid JSON');
430
+ return false;
431
+ }
432
+ if (typeof proofData !== 'object' ||
433
+ proofData === null ||
434
+ typeof proofData.commitment !== 'string' ||
435
+ typeof proofData.nonce !== 'string' ||
436
+ typeof proofData.signature !== 'object' ||
437
+ proofData.signature === null ||
438
+ typeof proofData.signature.r !== 'string' ||
439
+ typeof proofData.signature.s !== 'string') {
440
+ this._logger.warn({ event: 'verify_balance_proof_invalid_structure', channelAddress }, 'Balance proof has invalid structure: expected { commitment, signature: { r, s }, nonce }');
441
+ return false;
442
+ }
443
+ if (balanceCommitment && proofData.commitment !== balanceCommitment) {
444
+ this._logger.warn({
445
+ event: 'verify_balance_proof_commitment_mismatch',
446
+ channelAddress,
447
+ expected: balanceCommitment,
448
+ actual: proofData.commitment,
449
+ }, 'Balance proof commitment does not match expected on-chain commitment');
450
+ return false;
451
+ }
452
+ if (BigInt(proofData.nonce) !== nonce) {
453
+ this._logger.warn({
454
+ event: 'verify_balance_proof_nonce_mismatch',
455
+ channelAddress,
456
+ expected: nonce.toString(),
457
+ actual: proofData.nonce,
458
+ }, 'Balance proof nonce does not match expected nonce');
459
+ return false;
460
+ }
461
+ const commitment = Field(proofData.commitment);
462
+ const channelPubKey = PublicKey.fromBase58(channelAddress);
463
+ const channelHashField = Poseidon.hash([channelPubKey.x]);
464
+ const message = [commitment, Field(proofData.nonce), channelHashField];
465
+ const signature = Signature.fromJSON({
466
+ r: proofData.signature.r,
467
+ s: proofData.signature.s,
468
+ });
469
+ if (proofData.signerPublicKey) {
470
+ const signerPubKey = PublicKey.fromBase58(proofData.signerPublicKey);
471
+ const isValid = signature.verify(signerPubKey, message);
472
+ return isValid.toBoolean();
473
+ }
474
+ if (this._signerPrivateKey) {
475
+ const privateKey = PrivateKey.fromBase58(this._signerPrivateKey);
476
+ const publicKey = privateKey.toPublicKey();
477
+ const isValid = signature.verify(publicKey, message);
478
+ return isValid.toBoolean();
479
+ }
480
+ this._logger.warn({ event: 'verify_balance_proof_no_key', channelAddress }, 'Cannot verify balance proof: no signer key or public key available');
481
+ return false;
482
+ }
483
+ catch (err) {
484
+ this._logger.warn({
485
+ event: 'verify_balance_proof_error',
486
+ channelAddress,
487
+ error: err instanceof Error ? err.message : String(err),
488
+ }, 'Balance proof verification failed');
489
+ return false;
490
+ }
491
+ }
492
+ subscribeToChannel(channelAddress, callback, pollIntervalMs = DEFAULT_POLL_INTERVAL_MS) {
493
+ let disposed = false;
494
+ let pollInFlight = false;
495
+ let previousState;
496
+ const poll = async () => {
497
+ if (disposed || pollInFlight)
498
+ return;
499
+ pollInFlight = true;
500
+ try {
501
+ const currentState = await this.getChannelState(channelAddress);
502
+ if (disposed)
503
+ return;
504
+ const changed = !previousState ||
505
+ previousState.channelState !== currentState.channelState ||
506
+ previousState.nonceField !== currentState.nonceField ||
507
+ previousState.balanceCommitment !== currentState.balanceCommitment ||
508
+ previousState.depositTotal !== currentState.depositTotal;
509
+ if (changed) {
510
+ previousState = currentState;
511
+ callback(currentState);
512
+ }
513
+ }
514
+ catch (err) {
515
+ this._logger.warn({
516
+ event: 'subscription_poll_error',
517
+ channelAddress,
518
+ error: err instanceof Error ? err.message : String(err),
519
+ }, 'Failed to poll channel state');
520
+ }
521
+ finally {
522
+ pollInFlight = false;
523
+ }
524
+ };
525
+ void poll();
526
+ const intervalId = setInterval(() => {
527
+ void poll();
528
+ }, pollIntervalMs);
529
+ return {
530
+ unsubscribe: () => {
531
+ disposed = true;
532
+ clearInterval(intervalId);
533
+ },
534
+ };
535
+ }
536
+ }
537
+ exports.MinaPaymentChannelSDK = MinaPaymentChannelSDK;
538
+ //# sourceMappingURL=mina-payment-channel-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mina-payment-channel-sdk.js","sourceRoot":"","sources":["../../src/settlement/mina-payment-channel-sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { Provider } from 'ethers';
2
+ import type { ChannelState, BalanceProof, ChannelOpenedEvent, ChannelClosedEvent, ChannelSettledEvent, ChannelCooperativeSettledEvent } from '@toon-protocol/shared';
3
+ import type { Logger } from '../utils/logger';
4
+ import type { KeyManager } from '../security/key-manager';
5
+ import type { EVMRPCConnectionPool } from '../utils/evm-rpc-connection-pool';
6
+ export declare class ChallengeNotExpiredError extends Error {
7
+ readonly channelId: string;
8
+ readonly closedAt: number;
9
+ readonly settlementTimeout: number;
10
+ constructor(message: string, channelId: string, closedAt: number, settlementTimeout: number);
11
+ }
12
+ export declare class PaymentChannelSDK {
13
+ private provider;
14
+ private signer;
15
+ private keyManager;
16
+ private evmKeyId;
17
+ private registryAddress;
18
+ private registryContract;
19
+ private tokenNetworkCache;
20
+ private channelStateCache;
21
+ private logger;
22
+ private eventListeners;
23
+ private _initPromise;
24
+ constructor(provider: Provider, keyManager: KeyManager, evmKeyId: string, registryAddress: string, logger: Logger);
25
+ private _ensureInitialized;
26
+ static fromConnectionPool(pool: EVMRPCConnectionPool, keyManager: KeyManager, evmKeyId: string, registryAddress: string, logger: Logger): PaymentChannelSDK;
27
+ private getTokenNetworkContract;
28
+ getTokenNetworkAddress(tokenAddress: string): Promise<string>;
29
+ getChainId(): Promise<number>;
30
+ getTokenSymbol(tokenAddress: string): Promise<string>;
31
+ getSignerAddress(): Promise<string>;
32
+ openChannel(participant2: string, tokenAddress: string, settlementTimeout: number, initialDeposit: bigint): Promise<{
33
+ channelId: string;
34
+ txHash: string;
35
+ }>;
36
+ deposit(channelId: string, tokenAddress: string, amount: bigint): Promise<void>;
37
+ signBalanceProof(channelId: string, nonce: number, transferredAmount: bigint, lockedAmount?: bigint, locksRoot?: string): Promise<string>;
38
+ verifyBalanceProof(balanceProof: BalanceProof, signature: string, expectedSigner: string): Promise<boolean>;
39
+ closeChannel(channelId: string, tokenAddress: string): Promise<void>;
40
+ claimFromChannel(channelId: string, tokenAddress: string, balanceProof: BalanceProof, signature: string): Promise<void>;
41
+ getClaimedAmount(channelId: string, tokenAddress: string, participant: string): Promise<bigint>;
42
+ settleChannel(channelId: string, tokenAddress: string): Promise<void>;
43
+ getChannelState(channelId: string, tokenAddress: string): Promise<ChannelState>;
44
+ getChannelStateByNetwork(channelId: string, tokenNetworkAddress: string): Promise<{
45
+ exists: boolean;
46
+ state: number;
47
+ participant1: string;
48
+ participant2: string;
49
+ settlementTimeout: number;
50
+ }>;
51
+ verifyBalanceProofWithDomain(balanceProof: BalanceProof, signature: string, expectedSigner: string, chainId: number, tokenNetworkAddress: string): Promise<boolean>;
52
+ getMyChannels(tokenAddress: string): Promise<string[]>;
53
+ onChannelOpened(tokenAddress: string, callback: (event: ChannelOpenedEvent) => void): Promise<void>;
54
+ onChannelClosed(tokenAddress: string, callback: (event: ChannelClosedEvent) => void): Promise<void>;
55
+ onChannelSettled(tokenAddress: string, callback: (event: ChannelSettledEvent) => void): Promise<void>;
56
+ onChannelCooperativeSettled(tokenAddress: string, callback: (event: ChannelCooperativeSettledEvent) => void): Promise<void>;
57
+ removeAllListeners(): void;
58
+ }
59
+ //# sourceMappingURL=payment-channel-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-channel-sdk.d.ts","sourceRoot":"","sources":["../../src/settlement/payment-channel-sdk.ts"],"names":[],"mappings":"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"}