@toon-protocol/connector 2.6.1 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/package.json +2 -2
  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,636 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateKeyPairSigner = exports.SolanaPaymentChannelSDK = exports.SolanaChannelError = void 0;
4
- exports.mapProgramError = mapProgramError;
5
- exports.parseSolanaError = parseSolanaError;
6
- exports.deserializeChannelState = deserializeChannelState;
7
- exports.buildEd25519PrecompileInstruction = buildEd25519PrecompileInstruction;
8
- const tslib_1 = require("tslib");
9
- const crypto = tslib_1.__importStar(require("crypto"));
10
- const kit_1 = require("@solana/kit");
11
- Object.defineProperty(exports, "generateKeyPairSigner", { enumerable: true, get: function () { return kit_1.generateKeyPairSigner; } });
12
- const CHANNEL_DISCRIMINATOR = new Uint8Array([0x70, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c]);
13
- const DISCRIMINATORS = {
14
- INITIALIZE_CHANNEL: new Uint8Array([0x01, 0, 0, 0, 0, 0, 0, 0]),
15
- DEPOSIT: new Uint8Array([0x02, 0, 0, 0, 0, 0, 0, 0]),
16
- CLOSE_CHANNEL: new Uint8Array([0x03, 0, 0, 0, 0, 0, 0, 0]),
17
- SETTLE_CHANNEL: new Uint8Array([0x04, 0, 0, 0, 0, 0, 0, 0]),
18
- FORCE_CLOSE_EXPIRED: new Uint8Array([0x05, 0, 0, 0, 0, 0, 0, 0]),
19
- CLAIM_FROM_CHANNEL: new Uint8Array([0x06, 0, 0, 0, 0, 0, 0, 0]),
20
- };
21
- const ACCOUNT_SIZE = 178;
22
- const SYSTEM_PROGRAM = '11111111111111111111111111111111';
23
- const TOKEN_PROGRAM = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
24
- const RENT_SYSVAR = 'SysvarRent111111111111111111111111111111111';
25
- const CLOCK_SYSVAR = 'SysvarC1ock11111111111111111111111111111111';
26
- const INSTRUCTIONS_SYSVAR = 'Sysvar1nstructions1111111111111111111111111';
27
- const ED25519_PROGRAM = 'Ed25519SigVerify111111111111111111111111111';
28
- const ERROR_CODE_MAP = {
29
- 0: 'ChannelAlreadyExists',
30
- 1: 'ChannelNotOpened',
31
- 2: 'ChannelNotClosed',
32
- 3: 'ChannelChallengeNotExpired',
33
- 4: 'InvalidParticipant',
34
- 5: 'ZeroAmountDeposit',
35
- 6: 'NonceNotMonotonic',
36
- 7: 'TransferredAmountDecreased',
37
- 8: 'InvalidSignature',
38
- 9: 'UnauthorizedSigner',
39
- 10: 'ArithmeticOverflow',
40
- 11: 'InvalidPDA',
41
- 12: 'InvalidVaultPDA',
42
- };
43
- class SolanaChannelError extends Error {
44
- code;
45
- errorName;
46
- constructor(message, code, errorName) {
47
- super(message);
48
- this.code = code;
49
- this.errorName = errorName;
50
- this.name = 'SolanaChannelError';
51
- Error.captureStackTrace(this, SolanaChannelError);
52
- }
53
- }
54
- exports.SolanaChannelError = SolanaChannelError;
55
- function toMutableBytes(readonly) {
56
- return new Uint8Array(readonly);
57
- }
58
- const MAX_U64 = (1n << 64n) - 1n;
59
- function writeUint64LE(buf, offset, value) {
60
- if (value < 0n || value > MAX_U64) {
61
- throw new RangeError(`Value ${value} is outside u64 range [0, 2^64-1]`);
62
- }
63
- for (let i = 0; i < 8; i++) {
64
- buf[offset + i] = Number((value >> BigInt(i * 8)) & 0xffn);
65
- }
66
- }
67
- function readUint64LE(buf, offset) {
68
- let result = 0n;
69
- for (let i = 0; i < 8; i++) {
70
- result |= BigInt(buf[offset + i] ?? 0) << BigInt(i * 8);
71
- }
72
- return result;
73
- }
74
- function readInt64LE(buf, offset) {
75
- const unsigned = readUint64LE(buf, offset);
76
- if (unsigned >= 1n << 63n) {
77
- return unsigned - (1n << 64n);
78
- }
79
- return unsigned;
80
- }
81
- function sortParticipants(a, b) {
82
- const encoder = (0, kit_1.getAddressEncoder)();
83
- const aBytes = toMutableBytes(encoder.encode(a));
84
- const bBytes = toMutableBytes(encoder.encode(b));
85
- for (let i = 0; i < 32; i++) {
86
- const aByte = aBytes[i] ?? 0;
87
- const bByte = bBytes[i] ?? 0;
88
- if (aByte < bByte)
89
- return [a, b];
90
- if (aByte > bByte)
91
- return [b, a];
92
- }
93
- return [a, b];
94
- }
95
- function mapStateU8(val) {
96
- switch (val) {
97
- case 0:
98
- return 'opened';
99
- case 1:
100
- return 'closed';
101
- case 2:
102
- return 'settled';
103
- default:
104
- throw new Error(`Unknown channel state byte: ${val}`);
105
- }
106
- }
107
- function mapProgramError(code) {
108
- const errorName = ERROR_CODE_MAP[code] ?? `UnknownError(${code})`;
109
- return new SolanaChannelError(`Solana payment channel program error: ${errorName} (code ${code})`, code, errorName);
110
- }
111
- function parseSolanaError(err) {
112
- if (err instanceof Error) {
113
- const message = err.message;
114
- const hexMatch = /custom program error: 0x([0-9a-fA-F]+)/.exec(message);
115
- if (hexMatch?.[1]) {
116
- const code = parseInt(hexMatch[1], 16);
117
- if (code >= 0 && code <= 12) {
118
- throw mapProgramError(code);
119
- }
120
- }
121
- const customMatch = /Custom:\s*(\d+)/.exec(message);
122
- if (customMatch?.[1]) {
123
- const code = parseInt(customMatch[1], 10);
124
- if (code >= 0 && code <= 12) {
125
- throw mapProgramError(code);
126
- }
127
- }
128
- const instructionErrorMatch = /InstructionError.*Custom.*?(\d+)/.exec(message);
129
- if (instructionErrorMatch?.[1]) {
130
- const code = parseInt(instructionErrorMatch[1], 10);
131
- if (code >= 0 && code <= 12) {
132
- throw mapProgramError(code);
133
- }
134
- }
135
- }
136
- throw err;
137
- }
138
- function deserializeChannelState(data) {
139
- if (data.length < ACCOUNT_SIZE) {
140
- throw new Error(`Channel account data too short: expected ${ACCOUNT_SIZE} bytes, got ${data.length}`);
141
- }
142
- for (let i = 0; i < 8; i++) {
143
- if (data[i] !== CHANNEL_DISCRIMINATOR[i]) {
144
- throw new Error('Invalid channel account discriminator: expected "pchannel"');
145
- }
146
- }
147
- const decoder = (0, kit_1.getAddressDecoder)();
148
- return {
149
- participantA: decoder.decode(data.slice(8, 40)),
150
- participantB: decoder.decode(data.slice(40, 72)),
151
- tokenMint: decoder.decode(data.slice(72, 104)),
152
- depositA: readUint64LE(data, 104),
153
- depositB: readUint64LE(data, 112),
154
- transferredAmountA: readUint64LE(data, 120),
155
- transferredAmountB: readUint64LE(data, 128),
156
- nonceA: readUint64LE(data, 136),
157
- nonceB: readUint64LE(data, 144),
158
- challengeDuration: readUint64LE(data, 152),
159
- state: mapStateU8(data[160] ?? 0),
160
- closeTimestamp: readInt64LE(data, 161),
161
- bump: data[169] ?? 0,
162
- };
163
- }
164
- function buildEd25519PrecompileInstruction(signature, pubkey, message) {
165
- if (signature.length !== 64) {
166
- throw new Error(`Ed25519 signature must be 64 bytes, got ${signature.length}`);
167
- }
168
- if (pubkey.length !== 32) {
169
- throw new Error(`Ed25519 public key must be 32 bytes, got ${pubkey.length}`);
170
- }
171
- if (message.length === 0) {
172
- throw new Error('Ed25519 precompile message must not be empty');
173
- }
174
- const HEADER_SIZE = 16;
175
- const totalSize = HEADER_SIZE + 64 + 32 + message.length;
176
- const instructionData = new Uint8Array(totalSize);
177
- instructionData[0] = 1;
178
- instructionData[1] = 0;
179
- const sigOffset = HEADER_SIZE;
180
- const pkOffset = sigOffset + 64;
181
- const msgOffset = pkOffset + 32;
182
- instructionData[2] = sigOffset & 0xff;
183
- instructionData[3] = (sigOffset >> 8) & 0xff;
184
- instructionData[4] = 0xff;
185
- instructionData[5] = 0xff;
186
- instructionData[6] = pkOffset & 0xff;
187
- instructionData[7] = (pkOffset >> 8) & 0xff;
188
- instructionData[8] = 0xff;
189
- instructionData[9] = 0xff;
190
- instructionData[10] = msgOffset & 0xff;
191
- instructionData[11] = (msgOffset >> 8) & 0xff;
192
- instructionData[12] = message.length & 0xff;
193
- instructionData[13] = (message.length >> 8) & 0xff;
194
- instructionData[14] = 0xff;
195
- instructionData[15] = 0xff;
196
- instructionData.set(signature, sigOffset);
197
- instructionData.set(pubkey, pkOffset);
198
- instructionData.set(message, msgOffset);
199
- return {
200
- programAddress: ED25519_PROGRAM,
201
- accounts: [],
202
- data: instructionData,
203
- };
204
- }
205
- class SolanaPaymentChannelSDK {
206
- _rpc;
207
- _rpcSubscriptions;
208
- _programId;
209
- _logger;
210
- constructor(rpcUrl, programId, logger) {
211
- this._programId = (0, kit_1.address)(programId);
212
- this._logger = logger.child({ component: 'solana-payment-channel-sdk' });
213
- this._rpc = (0, kit_1.createSolanaRpc)(rpcUrl);
214
- this._rpcSubscriptions = (0, kit_1.createSolanaRpcSubscriptions)(rpcUrl.replace('http', 'ws'));
215
- }
216
- static deriveChannelPDA(participantA, participantB, tokenMint, programId) {
217
- const addrA = (0, kit_1.address)(participantA);
218
- const addrB = (0, kit_1.address)(participantB);
219
- const mint = (0, kit_1.address)(tokenMint);
220
- const program = (0, kit_1.address)(programId);
221
- const [min, max] = sortParticipants(addrA, addrB);
222
- const encoder = (0, kit_1.getAddressEncoder)();
223
- const seeds = [
224
- new TextEncoder().encode('channel'),
225
- toMutableBytes(encoder.encode(min)),
226
- toMutableBytes(encoder.encode(max)),
227
- toMutableBytes(encoder.encode(mint)),
228
- ];
229
- const pdaResult = findProgramDerivedAddressSync(seeds, program);
230
- return { pda: pdaResult[0], bump: pdaResult[1] };
231
- }
232
- static deriveVaultPDA(channelPDA, programId) {
233
- const channel = (0, kit_1.address)(channelPDA);
234
- const program = (0, kit_1.address)(programId);
235
- const encoder = (0, kit_1.getAddressEncoder)();
236
- const seeds = [
237
- new TextEncoder().encode('vault'),
238
- toMutableBytes(encoder.encode(channel)),
239
- ];
240
- const pdaResult = findProgramDerivedAddressSync(seeds, program);
241
- return { pda: pdaResult[0], bump: pdaResult[1] };
242
- }
243
- static _buildBalanceProofMessage(channelPDA, nonce, transferredAmount) {
244
- const message = new Uint8Array(48);
245
- const encoder = (0, kit_1.getAddressEncoder)();
246
- const pdaBytes = toMutableBytes(encoder.encode((0, kit_1.address)(channelPDA)));
247
- message.set(pdaBytes, 0);
248
- writeUint64LE(message, 32, nonce);
249
- writeUint64LE(message, 40, transferredAmount);
250
- return message;
251
- }
252
- static async signBalanceProof(channelPDA, nonce, transferredAmount, keypair) {
253
- const message = SolanaPaymentChannelSDK._buildBalanceProofMessage(channelPDA, nonce, transferredAmount);
254
- const signature = await (0, kit_1.signBytes)(keypair.privateKey, message);
255
- return new Uint8Array(signature);
256
- }
257
- async openChannel(payer, participantA, participantB, tokenMint, challengeDuration) {
258
- this._logger.info({
259
- event: 'open_channel_start',
260
- participantA,
261
- participantB,
262
- tokenMint,
263
- challengeDuration: challengeDuration.toString(),
264
- }, 'Opening Solana payment channel');
265
- const { pda: channelPDA } = SolanaPaymentChannelSDK.deriveChannelPDA(participantA, participantB, tokenMint, this._programId);
266
- const { pda: vaultPDA } = SolanaPaymentChannelSDK.deriveVaultPDA(channelPDA, this._programId);
267
- const instructionData = new Uint8Array(16);
268
- instructionData.set(DISCRIMINATORS.INITIALIZE_CHANNEL, 0);
269
- writeUint64LE(instructionData, 8, challengeDuration);
270
- const accounts = [
271
- { address: payer.address, role: kit_1.AccountRole.WRITABLE_SIGNER },
272
- { address: (0, kit_1.address)(participantA), role: kit_1.AccountRole.READONLY },
273
- { address: (0, kit_1.address)(participantB), role: kit_1.AccountRole.READONLY },
274
- { address: (0, kit_1.address)(tokenMint), role: kit_1.AccountRole.READONLY },
275
- { address: (0, kit_1.address)(channelPDA), role: kit_1.AccountRole.WRITABLE },
276
- { address: (0, kit_1.address)(vaultPDA), role: kit_1.AccountRole.WRITABLE },
277
- { address: SYSTEM_PROGRAM, role: kit_1.AccountRole.READONLY },
278
- { address: TOKEN_PROGRAM, role: kit_1.AccountRole.READONLY },
279
- { address: RENT_SYSVAR, role: kit_1.AccountRole.READONLY },
280
- ];
281
- const instruction = {
282
- programAddress: this._programId,
283
- accounts,
284
- data: instructionData,
285
- };
286
- try {
287
- const txSignature = await this._sendTransaction(payer, [instruction]);
288
- this._logger.info({
289
- event: 'open_channel_success',
290
- channelPDA,
291
- txSignature,
292
- }, 'Solana payment channel opened');
293
- return { channelPDA, txSignature };
294
- }
295
- catch (err) {
296
- this._logger.error({ event: 'open_channel_error', error: String(err) }, 'Failed to open Solana payment channel');
297
- parseSolanaError(err);
298
- }
299
- }
300
- async deposit(depositor, channelPDA, depositorTokenAccount, amount) {
301
- this._logger.info({
302
- event: 'deposit_start',
303
- channelPDA,
304
- amount: amount.toString(),
305
- }, 'Depositing to Solana payment channel');
306
- const { pda: vaultPDA } = SolanaPaymentChannelSDK.deriveVaultPDA(channelPDA, this._programId);
307
- const instructionData = new Uint8Array(16);
308
- instructionData.set(DISCRIMINATORS.DEPOSIT, 0);
309
- writeUint64LE(instructionData, 8, amount);
310
- const accounts = [
311
- { address: depositor.address, role: kit_1.AccountRole.READONLY_SIGNER },
312
- { address: (0, kit_1.address)(depositorTokenAccount), role: kit_1.AccountRole.WRITABLE },
313
- { address: (0, kit_1.address)(vaultPDA), role: kit_1.AccountRole.WRITABLE },
314
- { address: (0, kit_1.address)(channelPDA), role: kit_1.AccountRole.WRITABLE },
315
- { address: TOKEN_PROGRAM, role: kit_1.AccountRole.READONLY },
316
- ];
317
- const instruction = {
318
- programAddress: this._programId,
319
- accounts,
320
- data: instructionData,
321
- };
322
- try {
323
- const txSignature = await this._sendTransaction(depositor, [instruction]);
324
- this._logger.info({ event: 'deposit_success', channelPDA, txSignature }, 'Deposit to Solana payment channel succeeded');
325
- return { txSignature };
326
- }
327
- catch (err) {
328
- this._logger.error({ event: 'deposit_error', error: String(err) }, 'Failed to deposit to Solana payment channel');
329
- parseSolanaError(err);
330
- }
331
- }
332
- async claimFromChannel(claimer, channelPDA, nonce, transferredAmount, signature) {
333
- this._logger.info({
334
- event: 'claim_start',
335
- channelPDA,
336
- nonce: nonce.toString(),
337
- transferredAmount: transferredAmount.toString(),
338
- }, 'Claiming from Solana payment channel');
339
- const encoder = (0, kit_1.getAddressEncoder)();
340
- const claimerPubkey = toMutableBytes(encoder.encode(claimer.address));
341
- const balanceProofMessage = SolanaPaymentChannelSDK._buildBalanceProofMessage(channelPDA, nonce, transferredAmount);
342
- const ed25519Instruction = buildEd25519PrecompileInstruction(signature, claimerPubkey, balanceProofMessage);
343
- const claimData = new Uint8Array(24);
344
- claimData.set(DISCRIMINATORS.CLAIM_FROM_CHANNEL, 0);
345
- writeUint64LE(claimData, 8, nonce);
346
- writeUint64LE(claimData, 16, transferredAmount);
347
- const claimAccounts = [
348
- { address: claimer.address, role: kit_1.AccountRole.READONLY_SIGNER },
349
- { address: (0, kit_1.address)(channelPDA), role: kit_1.AccountRole.WRITABLE },
350
- { address: INSTRUCTIONS_SYSVAR, role: kit_1.AccountRole.READONLY },
351
- ];
352
- const claimInstruction = {
353
- programAddress: this._programId,
354
- accounts: claimAccounts,
355
- data: claimData,
356
- };
357
- try {
358
- const txSignature = await this._sendTransaction(claimer, [
359
- ed25519Instruction,
360
- claimInstruction,
361
- ]);
362
- this._logger.info({ event: 'claim_success', channelPDA, txSignature }, 'Claim from Solana payment channel succeeded');
363
- return { txSignature };
364
- }
365
- catch (err) {
366
- this._logger.error({ event: 'claim_error', error: String(err) }, 'Failed to claim from Solana payment channel');
367
- parseSolanaError(err);
368
- }
369
- }
370
- async closeChannel(closer, channelPDA) {
371
- this._logger.info({ event: 'close_channel_start', channelPDA }, 'Closing Solana payment channel');
372
- const accounts = [
373
- { address: closer.address, role: kit_1.AccountRole.READONLY_SIGNER },
374
- { address: (0, kit_1.address)(channelPDA), role: kit_1.AccountRole.WRITABLE },
375
- { address: CLOCK_SYSVAR, role: kit_1.AccountRole.READONLY },
376
- ];
377
- const instruction = {
378
- programAddress: this._programId,
379
- accounts,
380
- data: DISCRIMINATORS.CLOSE_CHANNEL,
381
- };
382
- try {
383
- const txSignature = await this._sendTransaction(closer, [instruction]);
384
- this._logger.info({ event: 'close_channel_success', channelPDA, txSignature }, 'Solana payment channel closed');
385
- return { txSignature };
386
- }
387
- catch (err) {
388
- this._logger.error({ event: 'close_channel_error', error: String(err) }, 'Failed to close Solana payment channel');
389
- parseSolanaError(err);
390
- }
391
- }
392
- async settleChannel(caller, channelPDA, participantAToken, participantBToken, rentRecipient) {
393
- this._logger.info({ event: 'settle_channel_start', channelPDA }, 'Settling Solana payment channel');
394
- const { pda: vaultPDA } = SolanaPaymentChannelSDK.deriveVaultPDA(channelPDA, this._programId);
395
- const accounts = [
396
- { address: caller.address, role: kit_1.AccountRole.READONLY_SIGNER },
397
- { address: (0, kit_1.address)(channelPDA), role: kit_1.AccountRole.WRITABLE },
398
- { address: (0, kit_1.address)(vaultPDA), role: kit_1.AccountRole.WRITABLE },
399
- { address: (0, kit_1.address)(participantAToken), role: kit_1.AccountRole.WRITABLE },
400
- { address: (0, kit_1.address)(participantBToken), role: kit_1.AccountRole.WRITABLE },
401
- { address: (0, kit_1.address)(rentRecipient), role: kit_1.AccountRole.WRITABLE },
402
- { address: TOKEN_PROGRAM, role: kit_1.AccountRole.READONLY },
403
- { address: CLOCK_SYSVAR, role: kit_1.AccountRole.READONLY },
404
- ];
405
- const instruction = {
406
- programAddress: this._programId,
407
- accounts,
408
- data: DISCRIMINATORS.SETTLE_CHANNEL,
409
- };
410
- try {
411
- const txSignature = await this._sendTransaction(caller, [instruction]);
412
- this._logger.info({ event: 'settle_channel_success', channelPDA, txSignature }, 'Solana payment channel settled');
413
- return { txSignature };
414
- }
415
- catch (err) {
416
- this._logger.error({ event: 'settle_channel_error', error: String(err) }, 'Failed to settle Solana payment channel');
417
- parseSolanaError(err);
418
- }
419
- }
420
- async forceCloseExpired(caller, channelPDA, participantAToken, participantBToken, rentRecipient) {
421
- this._logger.info({ event: 'force_close_start', channelPDA }, 'Force closing expired Solana payment channel');
422
- const { pda: vaultPDA } = SolanaPaymentChannelSDK.deriveVaultPDA(channelPDA, this._programId);
423
- const accounts = [
424
- { address: caller.address, role: kit_1.AccountRole.READONLY_SIGNER },
425
- { address: (0, kit_1.address)(channelPDA), role: kit_1.AccountRole.WRITABLE },
426
- { address: (0, kit_1.address)(vaultPDA), role: kit_1.AccountRole.WRITABLE },
427
- { address: (0, kit_1.address)(participantAToken), role: kit_1.AccountRole.WRITABLE },
428
- { address: (0, kit_1.address)(participantBToken), role: kit_1.AccountRole.WRITABLE },
429
- { address: (0, kit_1.address)(rentRecipient), role: kit_1.AccountRole.WRITABLE },
430
- { address: TOKEN_PROGRAM, role: kit_1.AccountRole.READONLY },
431
- { address: CLOCK_SYSVAR, role: kit_1.AccountRole.READONLY },
432
- ];
433
- const instruction = {
434
- programAddress: this._programId,
435
- accounts,
436
- data: DISCRIMINATORS.FORCE_CLOSE_EXPIRED,
437
- };
438
- try {
439
- const txSignature = await this._sendTransaction(caller, [instruction]);
440
- this._logger.info({ event: 'force_close_success', channelPDA, txSignature }, 'Force close expired Solana payment channel succeeded');
441
- return { txSignature };
442
- }
443
- catch (err) {
444
- this._logger.error({ event: 'force_close_error', error: String(err) }, 'Failed to force close expired Solana payment channel');
445
- parseSolanaError(err);
446
- }
447
- }
448
- async getMintMetadata(mintAddress) {
449
- const fallback = { assetCode: mintAddress, assetScale: 0 };
450
- try {
451
- const accountInfo = await this._rpc
452
- .getAccountInfo((0, kit_1.address)(mintAddress), { encoding: 'jsonParsed' })
453
- .send();
454
- if (!accountInfo.value) {
455
- this._logger.warn({ event: 'spl_mint_not_found', mintAddress }, 'SPL mint account not found on-chain; using raw-address fallback');
456
- return fallback;
457
- }
458
- const data = accountInfo.value.data;
459
- if (data &&
460
- typeof data === 'object' &&
461
- 'parsed' in data &&
462
- data.parsed &&
463
- typeof data.parsed === 'object' &&
464
- 'info' in data.parsed &&
465
- data.parsed.info &&
466
- typeof data.parsed.info === 'object' &&
467
- 'decimals' in data.parsed.info &&
468
- typeof data.parsed.info.decimals === 'number') {
469
- const decimals = data.parsed.info.decimals;
470
- return { assetCode: mintAddress, assetScale: decimals };
471
- }
472
- this._logger.warn({ event: 'spl_mint_unparseable', mintAddress }, 'SPL mint account parsed data missing decimals; using raw-address fallback');
473
- return fallback;
474
- }
475
- catch (err) {
476
- this._logger.warn({
477
- event: 'spl_mint_rpc_failed',
478
- mintAddress,
479
- error: err instanceof Error ? err.message : String(err),
480
- }, 'SPL mint RPC lookup failed; using raw-address fallback');
481
- return fallback;
482
- }
483
- }
484
- async getChannelState(channelPDA) {
485
- this._logger.debug({ event: 'get_channel_state', channelPDA }, 'Fetching Solana channel state');
486
- const accountInfo = await this._rpc
487
- .getAccountInfo((0, kit_1.address)(channelPDA), { encoding: 'base64' })
488
- .send();
489
- if (!accountInfo.value) {
490
- throw new Error(`Channel account not found: ${channelPDA}`);
491
- }
492
- const data = accountInfo.value.data;
493
- let rawBytes;
494
- if (Array.isArray(data)) {
495
- const base64Str = data[0];
496
- rawBytes = Uint8Array.from(Buffer.from(base64Str, 'base64'));
497
- }
498
- else if (data instanceof Uint8Array) {
499
- rawBytes = data;
500
- }
501
- else {
502
- throw new Error(`Unexpected account data format for ${channelPDA}`);
503
- }
504
- return deserializeChannelState(rawBytes);
505
- }
506
- subscribeToChannel(channelPDA, callback) {
507
- const abortController = new AbortController();
508
- this._logger.info({ event: 'subscribe_channel', channelPDA }, 'Subscribing to Solana channel account changes');
509
- void this._runSubscriptionLoop(channelPDA, callback, abortController.signal);
510
- return {
511
- unsubscribe: () => {
512
- this._logger.info({ event: 'unsubscribe_channel', channelPDA }, 'Unsubscribing from Solana channel account changes');
513
- abortController.abort();
514
- },
515
- };
516
- }
517
- async _runSubscriptionLoop(channelPDA, callback, signal) {
518
- try {
519
- const notifications = await this._rpcSubscriptions
520
- .accountNotifications((0, kit_1.address)(channelPDA), { commitment: 'confirmed' })
521
- .subscribe({ abortSignal: signal });
522
- for await (const notification of notifications) {
523
- try {
524
- const notificationValue = notification;
525
- const data = notificationValue.value?.data;
526
- let rawBytes;
527
- if (Array.isArray(data)) {
528
- const base64Str = data[0];
529
- rawBytes = Uint8Array.from(Buffer.from(base64Str, 'base64'));
530
- }
531
- else if (data instanceof Uint8Array) {
532
- rawBytes = data;
533
- }
534
- else {
535
- this._logger.warn({ event: 'subscription_data_format_unknown', channelPDA }, 'Unknown account data format in subscription notification');
536
- continue;
537
- }
538
- const state = deserializeChannelState(rawBytes);
539
- callback(state);
540
- }
541
- catch (deserError) {
542
- this._logger.warn({
543
- event: 'subscription_deserialize_error',
544
- channelPDA,
545
- error: String(deserError),
546
- }, 'Failed to deserialize channel state from subscription notification');
547
- }
548
- }
549
- }
550
- catch (err) {
551
- if (signal.aborted) {
552
- return;
553
- }
554
- this._logger.error({ event: 'subscription_error', channelPDA, error: String(err) }, 'Subscription loop failed');
555
- }
556
- }
557
- async _sendTransaction(feePayer, instructions) {
558
- const { value: latestBlockhash } = await this._rpc.getLatestBlockhash().send();
559
- const txMessage = (0, kit_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), (m) => (0, kit_1.setTransactionMessageFeePayerSigner)(feePayer, m), (m) => (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(latestBlockhash, m), (m) => instructions.reduce((msg, ix) => (0, kit_1.appendTransactionMessageInstruction)(ix, msg), m));
560
- const signatureBytes = await (0, kit_1.signAndSendTransactionMessageWithSigners)(txMessage);
561
- const base58Decoder = (0, kit_1.getBase58Decoder)();
562
- return base58Decoder.decode(signatureBytes);
563
- }
564
- }
565
- exports.SolanaPaymentChannelSDK = SolanaPaymentChannelSDK;
566
- function findProgramDerivedAddressSync(seeds, programId) {
567
- const encoder = (0, kit_1.getAddressEncoder)();
568
- const decoder = (0, kit_1.getAddressDecoder)();
569
- const programIdBytes = toMutableBytes(encoder.encode(programId));
570
- const PDA_MARKER = new TextEncoder().encode('ProgramDerivedAddress');
571
- for (let bump = 255; bump >= 0; bump--) {
572
- const bumpSeed = new Uint8Array([bump]);
573
- const allSeeds = [...seeds, bumpSeed];
574
- let totalLen = 0;
575
- for (const s of allSeeds) {
576
- totalLen += s.length;
577
- }
578
- totalLen += programIdBytes.length + PDA_MARKER.length;
579
- const hashInput = new Uint8Array(totalLen);
580
- let offset = 0;
581
- for (const s of allSeeds) {
582
- hashInput.set(s, offset);
583
- offset += s.length;
584
- }
585
- hashInput.set(programIdBytes, offset);
586
- offset += programIdBytes.length;
587
- hashInput.set(PDA_MARKER, offset);
588
- const hash = crypto.createHash('sha256').update(hashInput).digest();
589
- const hashBytes = new Uint8Array(hash);
590
- if (!isOnCurve(hashBytes)) {
591
- const pdaAddress = decoder.decode(hashBytes);
592
- return [pdaAddress, bump];
593
- }
594
- }
595
- throw new Error('Could not find a viable PDA bump seed');
596
- }
597
- function isOnCurve(bytes) {
598
- const P = (1n << 255n) - 19n;
599
- const yBytes = new Uint8Array(32);
600
- yBytes.set(bytes);
601
- yBytes[31] = (yBytes[31] ?? 0) & 0x7f;
602
- let y = 0n;
603
- for (let i = 0; i < 32; i++) {
604
- y |= BigInt(yBytes[i] ?? 0) << BigInt(i * 8);
605
- }
606
- if (y >= P) {
607
- return false;
608
- }
609
- const D = modP(-121665n * modInverse(121666n, P), P);
610
- const y2 = modP(y * y, P);
611
- const u = modP(y2 - 1n, P);
612
- const v = modP(D * y2 + 1n, P);
613
- const vInv = modInverse(v, P);
614
- const ratio = modP(u * vInv, P);
615
- const euler = modPow(ratio, (P - 1n) / 2n, P);
616
- return euler === 0n || euler === 1n;
617
- }
618
- function modP(a, p) {
619
- return ((a % p) + p) % p;
620
- }
621
- function modInverse(a, p) {
622
- return modPow(modP(a, p), p - 2n, p);
623
- }
624
- function modPow(base, exp, modulus) {
625
- let result = 1n;
626
- base = modP(base, modulus);
627
- while (exp > 0n) {
628
- if (exp & 1n) {
629
- result = modP(result * base, modulus);
630
- }
631
- exp >>= 1n;
632
- base = modP(base * base, modulus);
633
- }
634
- return result;
635
- }
636
- //# sourceMappingURL=solana-payment-channel-sdk.js.map