xrpjson 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +183 -0
  3. package/dist/errors.d.ts +20 -0
  4. package/dist/errors.d.ts.map +1 -0
  5. package/dist/errors.js +27 -0
  6. package/dist/errors.js.map +1 -0
  7. package/dist/fp/factories/account-delete.d.ts +33 -0
  8. package/dist/fp/factories/account-delete.d.ts.map +1 -0
  9. package/dist/fp/factories/account-delete.js +138 -0
  10. package/dist/fp/factories/account-delete.js.map +1 -0
  11. package/dist/fp/factories/account-set.d.ts +31 -0
  12. package/dist/fp/factories/account-set.d.ts.map +1 -0
  13. package/dist/fp/factories/account-set.js +44 -0
  14. package/dist/fp/factories/account-set.js.map +1 -0
  15. package/dist/fp/factories/amm-bid.d.ts +134 -0
  16. package/dist/fp/factories/amm-bid.d.ts.map +1 -0
  17. package/dist/fp/factories/amm-bid.js +82 -0
  18. package/dist/fp/factories/amm-bid.js.map +1 -0
  19. package/dist/fp/factories/amm-clawback.d.ts +166 -0
  20. package/dist/fp/factories/amm-clawback.d.ts.map +1 -0
  21. package/dist/fp/factories/amm-clawback.js +143 -0
  22. package/dist/fp/factories/amm-clawback.js.map +1 -0
  23. package/dist/fp/factories/amm-create.d.ts +91 -0
  24. package/dist/fp/factories/amm-create.d.ts.map +1 -0
  25. package/dist/fp/factories/amm-create.js +140 -0
  26. package/dist/fp/factories/amm-create.js.map +1 -0
  27. package/dist/fp/factories/amm-delete.d.ts +84 -0
  28. package/dist/fp/factories/amm-delete.d.ts.map +1 -0
  29. package/dist/fp/factories/amm-delete.js +36 -0
  30. package/dist/fp/factories/amm-delete.js.map +1 -0
  31. package/dist/fp/factories/amm-deposit.d.ts +109 -0
  32. package/dist/fp/factories/amm-deposit.d.ts.map +1 -0
  33. package/dist/fp/factories/amm-deposit.js +68 -0
  34. package/dist/fp/factories/amm-deposit.js.map +1 -0
  35. package/dist/fp/factories/amm-vote.d.ts +87 -0
  36. package/dist/fp/factories/amm-vote.d.ts.map +1 -0
  37. package/dist/fp/factories/amm-vote.js +53 -0
  38. package/dist/fp/factories/amm-vote.js.map +1 -0
  39. package/dist/fp/factories/amm-withdraw.d.ts +131 -0
  40. package/dist/fp/factories/amm-withdraw.d.ts.map +1 -0
  41. package/dist/fp/factories/amm-withdraw.js +147 -0
  42. package/dist/fp/factories/amm-withdraw.js.map +1 -0
  43. package/dist/fp/factories/batch.d.ts +133 -0
  44. package/dist/fp/factories/batch.d.ts.map +1 -0
  45. package/dist/fp/factories/batch.js +264 -0
  46. package/dist/fp/factories/batch.js.map +1 -0
  47. package/dist/fp/factories/check-cancel.d.ts +22 -0
  48. package/dist/fp/factories/check-cancel.d.ts.map +1 -0
  49. package/dist/fp/factories/check-cancel.js +119 -0
  50. package/dist/fp/factories/check-cancel.js.map +1 -0
  51. package/dist/fp/factories/check-cash.d.ts +84 -0
  52. package/dist/fp/factories/check-cash.d.ts.map +1 -0
  53. package/dist/fp/factories/check-cash.js +95 -0
  54. package/dist/fp/factories/check-cash.js.map +1 -0
  55. package/dist/fp/factories/check-create.d.ts +82 -0
  56. package/dist/fp/factories/check-create.d.ts.map +1 -0
  57. package/dist/fp/factories/check-create.js +101 -0
  58. package/dist/fp/factories/check-create.js.map +1 -0
  59. package/dist/fp/factories/clawback.d.ts +160 -0
  60. package/dist/fp/factories/clawback.d.ts.map +1 -0
  61. package/dist/fp/factories/clawback.js +111 -0
  62. package/dist/fp/factories/clawback.js.map +1 -0
  63. package/dist/fp/factories/confidential-mpt-clawback.d.ts +24 -0
  64. package/dist/fp/factories/confidential-mpt-clawback.d.ts.map +1 -0
  65. package/dist/fp/factories/confidential-mpt-clawback.js +200 -0
  66. package/dist/fp/factories/confidential-mpt-clawback.js.map +1 -0
  67. package/dist/fp/factories/confidential-mpt-convert-back.d.ts +32 -0
  68. package/dist/fp/factories/confidential-mpt-convert-back.d.ts.map +1 -0
  69. package/dist/fp/factories/confidential-mpt-convert-back.js +203 -0
  70. package/dist/fp/factories/confidential-mpt-convert-back.js.map +1 -0
  71. package/dist/fp/factories/confidential-mpt-convert.d.ts +32 -0
  72. package/dist/fp/factories/confidential-mpt-convert.d.ts.map +1 -0
  73. package/dist/fp/factories/confidential-mpt-convert.js +209 -0
  74. package/dist/fp/factories/confidential-mpt-convert.js.map +1 -0
  75. package/dist/fp/factories/confidential-mpt-merge-inbox.d.ts +18 -0
  76. package/dist/fp/factories/confidential-mpt-merge-inbox.d.ts.map +1 -0
  77. package/dist/fp/factories/confidential-mpt-merge-inbox.js +130 -0
  78. package/dist/fp/factories/confidential-mpt-merge-inbox.js.map +1 -0
  79. package/dist/fp/factories/confidential-mpt-send.d.ts +38 -0
  80. package/dist/fp/factories/confidential-mpt-send.d.ts.map +1 -0
  81. package/dist/fp/factories/confidential-mpt-send.js +254 -0
  82. package/dist/fp/factories/confidential-mpt-send.js.map +1 -0
  83. package/dist/fp/factories/credential-accept.d.ts +23 -0
  84. package/dist/fp/factories/credential-accept.d.ts.map +1 -0
  85. package/dist/fp/factories/credential-accept.js +135 -0
  86. package/dist/fp/factories/credential-accept.js.map +1 -0
  87. package/dist/fp/factories/credential-create.d.ts +24 -0
  88. package/dist/fp/factories/credential-create.d.ts.map +1 -0
  89. package/dist/fp/factories/credential-create.js +204 -0
  90. package/dist/fp/factories/credential-create.js.map +1 -0
  91. package/dist/fp/factories/credential-delete.d.ts +33 -0
  92. package/dist/fp/factories/credential-delete.d.ts.map +1 -0
  93. package/dist/fp/factories/credential-delete.js +167 -0
  94. package/dist/fp/factories/credential-delete.js.map +1 -0
  95. package/dist/fp/factories/delegate-set.d.ts +52 -0
  96. package/dist/fp/factories/delegate-set.d.ts.map +1 -0
  97. package/dist/fp/factories/delegate-set.js +190 -0
  98. package/dist/fp/factories/delegate-set.js.map +1 -0
  99. package/dist/fp/factories/deposit-preauth.d.ts +183 -0
  100. package/dist/fp/factories/deposit-preauth.d.ts.map +1 -0
  101. package/dist/fp/factories/deposit-preauth.js +159 -0
  102. package/dist/fp/factories/deposit-preauth.js.map +1 -0
  103. package/dist/fp/factories/did-delete.d.ts +22 -0
  104. package/dist/fp/factories/did-delete.d.ts.map +1 -0
  105. package/dist/fp/factories/did-delete.js +126 -0
  106. package/dist/fp/factories/did-delete.js.map +1 -0
  107. package/dist/fp/factories/did-set.d.ts +68 -0
  108. package/dist/fp/factories/did-set.d.ts.map +1 -0
  109. package/dist/fp/factories/did-set.js +178 -0
  110. package/dist/fp/factories/did-set.js.map +1 -0
  111. package/dist/fp/factories/escrow-cancel.d.ts +28 -0
  112. package/dist/fp/factories/escrow-cancel.d.ts.map +1 -0
  113. package/dist/fp/factories/escrow-cancel.js +127 -0
  114. package/dist/fp/factories/escrow-cancel.js.map +1 -0
  115. package/dist/fp/factories/escrow-create.d.ts +103 -0
  116. package/dist/fp/factories/escrow-create.d.ts.map +1 -0
  117. package/dist/fp/factories/escrow-create.js +133 -0
  118. package/dist/fp/factories/escrow-create.js.map +1 -0
  119. package/dist/fp/factories/escrow-finish.d.ts +39 -0
  120. package/dist/fp/factories/escrow-finish.d.ts.map +1 -0
  121. package/dist/fp/factories/escrow-finish.js +173 -0
  122. package/dist/fp/factories/escrow-finish.js.map +1 -0
  123. package/dist/fp/factories/ledger-state-fix.d.ts +31 -0
  124. package/dist/fp/factories/ledger-state-fix.d.ts.map +1 -0
  125. package/dist/fp/factories/ledger-state-fix.js +163 -0
  126. package/dist/fp/factories/ledger-state-fix.js.map +1 -0
  127. package/dist/fp/factories/loan-broker-cover-clawback.d.ts +106 -0
  128. package/dist/fp/factories/loan-broker-cover-clawback.d.ts.map +1 -0
  129. package/dist/fp/factories/loan-broker-cover-clawback.js +122 -0
  130. package/dist/fp/factories/loan-broker-cover-clawback.js.map +1 -0
  131. package/dist/fp/factories/loan-broker-cover-deposit.d.ts +65 -0
  132. package/dist/fp/factories/loan-broker-cover-deposit.d.ts.map +1 -0
  133. package/dist/fp/factories/loan-broker-cover-deposit.js +81 -0
  134. package/dist/fp/factories/loan-broker-cover-deposit.js.map +1 -0
  135. package/dist/fp/factories/loan-broker-cover-withdraw.d.ts +96 -0
  136. package/dist/fp/factories/loan-broker-cover-withdraw.d.ts.map +1 -0
  137. package/dist/fp/factories/loan-broker-cover-withdraw.js +116 -0
  138. package/dist/fp/factories/loan-broker-cover-withdraw.js.map +1 -0
  139. package/dist/fp/factories/loan-broker-delete.d.ts +20 -0
  140. package/dist/fp/factories/loan-broker-delete.d.ts.map +1 -0
  141. package/dist/fp/factories/loan-broker-delete.js +94 -0
  142. package/dist/fp/factories/loan-broker-delete.js.map +1 -0
  143. package/dist/fp/factories/loan-broker-set.d.ts +108 -0
  144. package/dist/fp/factories/loan-broker-set.d.ts.map +1 -0
  145. package/dist/fp/factories/loan-broker-set.js +133 -0
  146. package/dist/fp/factories/loan-broker-set.js.map +1 -0
  147. package/dist/fp/factories/loan-delete.d.ts +18 -0
  148. package/dist/fp/factories/loan-delete.d.ts.map +1 -0
  149. package/dist/fp/factories/loan-delete.js +95 -0
  150. package/dist/fp/factories/loan-delete.js.map +1 -0
  151. package/dist/fp/factories/loan-manage.d.ts +72 -0
  152. package/dist/fp/factories/loan-manage.d.ts.map +1 -0
  153. package/dist/fp/factories/loan-manage.js +79 -0
  154. package/dist/fp/factories/loan-manage.js.map +1 -0
  155. package/dist/fp/factories/loan-pay.d.ts +70 -0
  156. package/dist/fp/factories/loan-pay.d.ts.map +1 -0
  157. package/dist/fp/factories/loan-pay.js +115 -0
  158. package/dist/fp/factories/loan-pay.js.map +1 -0
  159. package/dist/fp/factories/loan-set.d.ts +67 -0
  160. package/dist/fp/factories/loan-set.d.ts.map +1 -0
  161. package/dist/fp/factories/loan-set.js +102 -0
  162. package/dist/fp/factories/loan-set.js.map +1 -0
  163. package/dist/fp/factories/mptoken-authorize.d.ts +83 -0
  164. package/dist/fp/factories/mptoken-authorize.d.ts.map +1 -0
  165. package/dist/fp/factories/mptoken-authorize.js +63 -0
  166. package/dist/fp/factories/mptoken-authorize.js.map +1 -0
  167. package/dist/fp/factories/mptoken-issuance-create.d.ts +71 -0
  168. package/dist/fp/factories/mptoken-issuance-create.d.ts.map +1 -0
  169. package/dist/fp/factories/mptoken-issuance-create.js +135 -0
  170. package/dist/fp/factories/mptoken-issuance-create.js.map +1 -0
  171. package/dist/fp/factories/mptoken-issuance-destroy.d.ts +32 -0
  172. package/dist/fp/factories/mptoken-issuance-destroy.d.ts.map +1 -0
  173. package/dist/fp/factories/mptoken-issuance-destroy.js +105 -0
  174. package/dist/fp/factories/mptoken-issuance-destroy.js.map +1 -0
  175. package/dist/fp/factories/mptoken-issuance-set.d.ts +196 -0
  176. package/dist/fp/factories/mptoken-issuance-set.d.ts.map +1 -0
  177. package/dist/fp/factories/mptoken-issuance-set.js +333 -0
  178. package/dist/fp/factories/mptoken-issuance-set.js.map +1 -0
  179. package/dist/fp/factories/nftoken-accept-offer.d.ts +108 -0
  180. package/dist/fp/factories/nftoken-accept-offer.d.ts.map +1 -0
  181. package/dist/fp/factories/nftoken-accept-offer.js +105 -0
  182. package/dist/fp/factories/nftoken-accept-offer.js.map +1 -0
  183. package/dist/fp/factories/nftoken-burn.d.ts +27 -0
  184. package/dist/fp/factories/nftoken-burn.d.ts.map +1 -0
  185. package/dist/fp/factories/nftoken-burn.js +125 -0
  186. package/dist/fp/factories/nftoken-burn.js.map +1 -0
  187. package/dist/fp/factories/nftoken-cancel-offer.d.ts +19 -0
  188. package/dist/fp/factories/nftoken-cancel-offer.d.ts.map +1 -0
  189. package/dist/fp/factories/nftoken-cancel-offer.js +143 -0
  190. package/dist/fp/factories/nftoken-cancel-offer.js.map +1 -0
  191. package/dist/fp/factories/nftoken-create-offer.d.ts +159 -0
  192. package/dist/fp/factories/nftoken-create-offer.d.ts.map +1 -0
  193. package/dist/fp/factories/nftoken-create-offer.js +212 -0
  194. package/dist/fp/factories/nftoken-create-offer.js.map +1 -0
  195. package/dist/fp/factories/nftoken-mint.d.ts +155 -0
  196. package/dist/fp/factories/nftoken-mint.d.ts.map +1 -0
  197. package/dist/fp/factories/nftoken-mint.js +165 -0
  198. package/dist/fp/factories/nftoken-mint.js.map +1 -0
  199. package/dist/fp/factories/nftoken-modify.d.ts +28 -0
  200. package/dist/fp/factories/nftoken-modify.d.ts.map +1 -0
  201. package/dist/fp/factories/nftoken-modify.js +209 -0
  202. package/dist/fp/factories/nftoken-modify.js.map +1 -0
  203. package/dist/fp/factories/offer-cancel.d.ts +21 -0
  204. package/dist/fp/factories/offer-cancel.d.ts.map +1 -0
  205. package/dist/fp/factories/offer-cancel.js +99 -0
  206. package/dist/fp/factories/offer-cancel.js.map +1 -0
  207. package/dist/fp/factories/offer-create.d.ts +125 -0
  208. package/dist/fp/factories/offer-create.d.ts.map +1 -0
  209. package/dist/fp/factories/offer-create.js +230 -0
  210. package/dist/fp/factories/offer-create.js.map +1 -0
  211. package/dist/fp/factories/oracle-delete.d.ts +21 -0
  212. package/dist/fp/factories/oracle-delete.d.ts.map +1 -0
  213. package/dist/fp/factories/oracle-delete.js +101 -0
  214. package/dist/fp/factories/oracle-delete.js.map +1 -0
  215. package/dist/fp/factories/oracle-set.d.ts +40 -0
  216. package/dist/fp/factories/oracle-set.d.ts.map +1 -0
  217. package/dist/fp/factories/oracle-set.js +257 -0
  218. package/dist/fp/factories/oracle-set.js.map +1 -0
  219. package/dist/fp/factories/payment-channel-claim.d.ts +153 -0
  220. package/dist/fp/factories/payment-channel-claim.d.ts.map +1 -0
  221. package/dist/fp/factories/payment-channel-claim.js +118 -0
  222. package/dist/fp/factories/payment-channel-claim.js.map +1 -0
  223. package/dist/fp/factories/payment-channel-create.d.ts +30 -0
  224. package/dist/fp/factories/payment-channel-create.d.ts.map +1 -0
  225. package/dist/fp/factories/payment-channel-create.js +172 -0
  226. package/dist/fp/factories/payment-channel-create.js.map +1 -0
  227. package/dist/fp/factories/payment-channel-fund.d.ts +25 -0
  228. package/dist/fp/factories/payment-channel-fund.d.ts.map +1 -0
  229. package/dist/fp/factories/payment-channel-fund.js +142 -0
  230. package/dist/fp/factories/payment-channel-fund.js.map +1 -0
  231. package/dist/fp/factories/payment.d.ts +65 -0
  232. package/dist/fp/factories/payment.d.ts.map +1 -0
  233. package/dist/fp/factories/payment.js +48 -0
  234. package/dist/fp/factories/payment.js.map +1 -0
  235. package/dist/fp/factories/permissioned-domain-delete.d.ts +18 -0
  236. package/dist/fp/factories/permissioned-domain-delete.d.ts.map +1 -0
  237. package/dist/fp/factories/permissioned-domain-delete.js +88 -0
  238. package/dist/fp/factories/permissioned-domain-delete.js.map +1 -0
  239. package/dist/fp/factories/permissioned-domain-set.d.ts +118 -0
  240. package/dist/fp/factories/permissioned-domain-set.d.ts.map +1 -0
  241. package/dist/fp/factories/permissioned-domain-set.js +100 -0
  242. package/dist/fp/factories/permissioned-domain-set.js.map +1 -0
  243. package/dist/fp/factories/set-regular-key.d.ts +30 -0
  244. package/dist/fp/factories/set-regular-key.d.ts.map +1 -0
  245. package/dist/fp/factories/set-regular-key.js +81 -0
  246. package/dist/fp/factories/set-regular-key.js.map +1 -0
  247. package/dist/fp/factories/signer-list-set.d.ts +61 -0
  248. package/dist/fp/factories/signer-list-set.d.ts.map +1 -0
  249. package/dist/fp/factories/signer-list-set.js +250 -0
  250. package/dist/fp/factories/signer-list-set.js.map +1 -0
  251. package/dist/fp/factories/sponsorship-set.d.ts +148 -0
  252. package/dist/fp/factories/sponsorship-set.d.ts.map +1 -0
  253. package/dist/fp/factories/sponsorship-set.js +201 -0
  254. package/dist/fp/factories/sponsorship-set.js.map +1 -0
  255. package/dist/fp/factories/sponsorship-transfer.d.ts +173 -0
  256. package/dist/fp/factories/sponsorship-transfer.d.ts.map +1 -0
  257. package/dist/fp/factories/sponsorship-transfer.js +195 -0
  258. package/dist/fp/factories/sponsorship-transfer.js.map +1 -0
  259. package/dist/fp/factories/ticket-create.d.ts +20 -0
  260. package/dist/fp/factories/ticket-create.d.ts.map +1 -0
  261. package/dist/fp/factories/ticket-create.js +120 -0
  262. package/dist/fp/factories/ticket-create.js.map +1 -0
  263. package/dist/fp/factories/trust-set.d.ts +100 -0
  264. package/dist/fp/factories/trust-set.d.ts.map +1 -0
  265. package/dist/fp/factories/trust-set.js +111 -0
  266. package/dist/fp/factories/trust-set.js.map +1 -0
  267. package/dist/fp/factories/vault-clawback.d.ts +83 -0
  268. package/dist/fp/factories/vault-clawback.d.ts.map +1 -0
  269. package/dist/fp/factories/vault-clawback.js +91 -0
  270. package/dist/fp/factories/vault-clawback.js.map +1 -0
  271. package/dist/fp/factories/vault-create.d.ts +51 -0
  272. package/dist/fp/factories/vault-create.d.ts.map +1 -0
  273. package/dist/fp/factories/vault-create.js +141 -0
  274. package/dist/fp/factories/vault-create.js.map +1 -0
  275. package/dist/fp/factories/vault-delete.d.ts +20 -0
  276. package/dist/fp/factories/vault-delete.d.ts.map +1 -0
  277. package/dist/fp/factories/vault-delete.js +103 -0
  278. package/dist/fp/factories/vault-delete.js.map +1 -0
  279. package/dist/fp/factories/vault-deposit.d.ts +56 -0
  280. package/dist/fp/factories/vault-deposit.d.ts.map +1 -0
  281. package/dist/fp/factories/vault-deposit.js +85 -0
  282. package/dist/fp/factories/vault-deposit.js.map +1 -0
  283. package/dist/fp/factories/vault-set.d.ts +32 -0
  284. package/dist/fp/factories/vault-set.d.ts.map +1 -0
  285. package/dist/fp/factories/vault-set.js +135 -0
  286. package/dist/fp/factories/vault-set.js.map +1 -0
  287. package/dist/fp/factories/vault-withdraw.d.ts +82 -0
  288. package/dist/fp/factories/vault-withdraw.d.ts.map +1 -0
  289. package/dist/fp/factories/vault-withdraw.js +122 -0
  290. package/dist/fp/factories/vault-withdraw.js.map +1 -0
  291. package/dist/fp/factories/xchain-account-create-commit.d.ts +180 -0
  292. package/dist/fp/factories/xchain-account-create-commit.d.ts.map +1 -0
  293. package/dist/fp/factories/xchain-account-create-commit.js +99 -0
  294. package/dist/fp/factories/xchain-account-create-commit.js.map +1 -0
  295. package/dist/fp/factories/xchain-add-account-create-attestation.d.ts +213 -0
  296. package/dist/fp/factories/xchain-add-account-create-attestation.d.ts.map +1 -0
  297. package/dist/fp/factories/xchain-add-account-create-attestation.js +95 -0
  298. package/dist/fp/factories/xchain-add-account-create-attestation.js.map +1 -0
  299. package/dist/fp/factories/xchain-add-claim-attestation.d.ts +206 -0
  300. package/dist/fp/factories/xchain-add-claim-attestation.d.ts.map +1 -0
  301. package/dist/fp/factories/xchain-add-claim-attestation.js +97 -0
  302. package/dist/fp/factories/xchain-add-claim-attestation.js.map +1 -0
  303. package/dist/fp/factories/xchain-claim.d.ts +187 -0
  304. package/dist/fp/factories/xchain-claim.d.ts.map +1 -0
  305. package/dist/fp/factories/xchain-claim.js +140 -0
  306. package/dist/fp/factories/xchain-claim.js.map +1 -0
  307. package/dist/fp/factories/xchain-commit.d.ts +168 -0
  308. package/dist/fp/factories/xchain-commit.d.ts.map +1 -0
  309. package/dist/fp/factories/xchain-commit.js +137 -0
  310. package/dist/fp/factories/xchain-commit.js.map +1 -0
  311. package/dist/fp/factories/xchain-create-bridge.d.ts +206 -0
  312. package/dist/fp/factories/xchain-create-bridge.d.ts.map +1 -0
  313. package/dist/fp/factories/xchain-create-bridge.js +100 -0
  314. package/dist/fp/factories/xchain-create-bridge.js.map +1 -0
  315. package/dist/fp/factories/xchain-create-claim-id.d.ts +199 -0
  316. package/dist/fp/factories/xchain-create-claim-id.d.ts.map +1 -0
  317. package/dist/fp/factories/xchain-create-claim-id.js +78 -0
  318. package/dist/fp/factories/xchain-create-claim-id.js.map +1 -0
  319. package/dist/fp/factories/xchain-modify-bridge.d.ts +198 -0
  320. package/dist/fp/factories/xchain-modify-bridge.d.ts.map +1 -0
  321. package/dist/fp/factories/xchain-modify-bridge.js +102 -0
  322. package/dist/fp/factories/xchain-modify-bridge.js.map +1 -0
  323. package/dist/fp/index.d.ts +124 -0
  324. package/dist/fp/index.d.ts.map +1 -0
  325. package/dist/fp/index.js +152 -0
  326. package/dist/fp/index.js.map +1 -0
  327. package/dist/fp/shape.d.ts +34 -0
  328. package/dist/fp/shape.d.ts.map +1 -0
  329. package/dist/fp/shape.js +80 -0
  330. package/dist/fp/shape.js.map +1 -0
  331. package/dist/types/amounts.d.ts +49 -0
  332. package/dist/types/amounts.d.ts.map +1 -0
  333. package/dist/types/amounts.js +8 -0
  334. package/dist/types/amounts.js.map +1 -0
  335. package/dist/types/base.d.ts +103 -0
  336. package/dist/types/base.d.ts.map +1 -0
  337. package/dist/types/base.js +2 -0
  338. package/dist/types/base.js.map +1 -0
  339. package/dist/types/common.d.ts +163 -0
  340. package/dist/types/common.d.ts.map +1 -0
  341. package/dist/types/common.js +5 -0
  342. package/dist/types/common.js.map +1 -0
  343. package/dist/types/flags.d.ts +317 -0
  344. package/dist/types/flags.d.ts.map +1 -0
  345. package/dist/types/flags.js +253 -0
  346. package/dist/types/flags.js.map +1 -0
  347. package/dist/types/index.d.ts +10 -0
  348. package/dist/types/index.d.ts.map +1 -0
  349. package/dist/types/index.js +2 -0
  350. package/dist/types/index.js.map +1 -0
  351. package/dist/types/transaction-types.d.ts +7 -0
  352. package/dist/types/transaction-types.d.ts.map +1 -0
  353. package/dist/types/transaction-types.js +2 -0
  354. package/dist/types/transaction-types.js.map +1 -0
  355. package/dist/validation/base.d.ts +8 -0
  356. package/dist/validation/base.d.ts.map +1 -0
  357. package/dist/validation/base.js +79 -0
  358. package/dist/validation/base.js.map +1 -0
  359. package/dist/validation/helpers.d.ts +42 -0
  360. package/dist/validation/helpers.d.ts.map +1 -0
  361. package/dist/validation/helpers.js +154 -0
  362. package/dist/validation/helpers.js.map +1 -0
  363. package/dist/validation/index.d.ts +3 -0
  364. package/dist/validation/index.d.ts.map +1 -0
  365. package/dist/validation/index.js +3 -0
  366. package/dist/validation/index.js.map +1 -0
  367. package/package.json +67 -0
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Functional OracleSet factory — frozen-object style.
3
+ *
4
+ * Creates a new `PriceOracle` ledger entry or updates an existing one,
5
+ * identified by `(Account, OracleDocumentID)`. Validation happens at
6
+ * construction; there is no way to construct an invalid tx.
7
+ *
8
+ * import { oracleSet } from 'xrplt/fp';
9
+ * const tx = oracleSet({
10
+ * Account,
11
+ * OracleDocumentID: 34,
12
+ * LastUpdateTime: 743609014,
13
+ * Provider: '70726F7669646572',
14
+ * AssetClass: '63757272656E6379',
15
+ * PriceDataSeries: [
16
+ * { PriceData: { BaseAsset: 'XRP', QuoteAsset: 'USD', AssetPrice: 740, Scale: 3 } },
17
+ * ],
18
+ * });
19
+ * const j = tx.toJSON();
20
+ * const tx2 = tx.with({ LastUpdateTime: 743700000 });
21
+ *
22
+ * Affected amendment: `PriceOracle` (XLS-47).
23
+ *
24
+ * @see https://xrpl.org/docs/references/protocol/transactions/types/oracleset
25
+ * @see https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0047-PriceOracles
26
+ *
27
+ * ## Divergences
28
+ *
29
+ * The factory enforces six preclaim guards the class API
30
+ * (`src/transactions/oracle-set.ts`) skips:
31
+ *
32
+ * 1. `PriceDataSeries` array length capped at 10 elements.
33
+ * Source: XLS-47 §"Transaction for creating or updating PriceOracle
34
+ * instance" failure conditions — "Transaction's `PriceDataSeries`
35
+ * array size is empty or exceeds ten when creating a new Oracle
36
+ * instance or Oracle's instance `PriceDataSeries` array size
37
+ * exceeds ten after updating". The class only checks
38
+ * `isArray(PriceDataSeries)` and accepts unbounded lengths.
39
+ *
40
+ * 2. Each `PriceDataSeries` element has exactly one key: `PriceData`.
41
+ * Source: XLS-47 example JSON wraps the inner object as
42
+ * `{ "PriceData": { ... } }`. xrpl.js 5.3.0 validateOracleSet()
43
+ * enforces `Object.keys(priceData).length !== 1`
44
+ * (`packages/xrpl/src/models/transactions/oracleSet.ts:122`).
45
+ *
46
+ * 3. `AssetPrice` and `Scale` inside `PriceData` must be BOTH present
47
+ * or BOTH omitted. The class does not check this coupling.
48
+ * Source: xrpl.js 5.3.0 validateOracleSet() lines 144-151
49
+ * (`packages/xrpl/src/models/transactions/oracleSet.ts:144`).
50
+ *
51
+ * 4. `Scale` is constrained to `[0, 10]` (integer).
52
+ * Source: xrpl.js 5.3.0 validateOracleSet() lines 183-187
53
+ * (`packages/xrpl/src/models/transactions/oracleSet.ts:183`).
54
+ * Note: XLS-47 README §"Transaction fields" claims valid range
55
+ * `{1-20}` but xrpl.js enforces `{0-10}` (uint8 internal type,
56
+ * practical chain limit). The factory follows xrpl.js.
57
+ *
58
+ * 5. `AssetPrice` is validated as either a number OR a hex string
59
+ * of 1-16 characters. The class accepts `Record<string, unknown>`
60
+ * for the array element with no inner checks.
61
+ * Source: xrpl.js 5.3.0 validateOracleSet() lines 155-176
62
+ * (`packages/xrpl/src/models/transactions/oracleSet.ts:155`).
63
+ *
64
+ * 6. `Provider` / `URI` / `AssetClass` byte limits (256 / 256 / 16)
65
+ * with hex-encoding and printable-ASCII range checks.
66
+ * Sources: XLS-47 §"PriceOracle Object" — "`Provider` ... string of
67
+ * up to 256 ASCII hex encoded characters (0x20-0x7E)"; "`URI` ...
68
+ * limited to 256 bytes"; "`AssetClass` ... string of up to sixteen
69
+ * ASCII hex encoded characters (0x20-0x7E)". The class accepts any
70
+ * string and does not enforce length or character range.
71
+ *
72
+ * ## Field name divergences from the class
73
+ *
74
+ * The class source (`src/transactions/oracle-set.ts`) declares two
75
+ * top-level fields — `AssetBase` and `AssetQuote` — that do NOT exist
76
+ * in either XLS-47 or xrpl.js 5.3.0. The spec/xrpl.js model puts those
77
+ * identifiers INSIDE each `PriceDataSeries[i].PriceData` element, named
78
+ * `BaseAsset` and `QuoteAsset`. The factory follows the spec; it does
79
+ * not surface `AssetBase` / `AssetQuote`. Source: XLS-47 §"PriceOracle
80
+ * Object" → `PriceData` subtable; xrpl.js 5.3.0 OracleSet interface
81
+ * (`packages/xrpl/src/models/transactions/oracleSet.ts:31`).
82
+ *
83
+ * Conversely, the class OMITS `AssetClass`, which is a required-on-
84
+ * create / optional-on-update spec field. The factory includes it.
85
+ * Source: XLS-47 §"Transaction fields for OracleSet" table;
86
+ * "The transaction fails if: ... `AssetClass` field length exceeds 16
87
+ * bytes".
88
+ */
89
+ import { isArray, isHex, isNumber, isRecord, isString, } from '../../validation/helpers.js';
90
+ import { ValidationError } from '../../errors.js';
91
+ import { buildFrozenTx, mergeForWith, require } from '../shape.js';
92
+ // ─── Spec constants ──────────────────────────────────────────────────
93
+ /** XLS-47 §"Transaction fields for OracleSet" — "array of up to ten PriceData objects". */
94
+ const PRICE_DATA_SERIES_MAX_LENGTH = 10;
95
+ /** XLS-47 §"PriceOracle Object" — Provider up to 256 bytes. */
96
+ const MAX_PROVIDER_BYTES = 256;
97
+ /** XLS-47 §"PriceOracle Object" — URI limited to 256 bytes. */
98
+ const MAX_URI_BYTES = 256;
99
+ /** XLS-47 §"PriceOracle Object" — AssetClass up to 16 bytes. */
100
+ const MAX_ASSET_CLASS_BYTES = 16;
101
+ /** XLS-47 §"PriceOracle Object" — printable-ASCII range (0x20..0x7E). */
102
+ const PRINTABLE_ASCII_MIN = 0x20;
103
+ const PRINTABLE_ASCII_MAX = 0x7e;
104
+ /** xrpl.js 5.3.0 validateOracleSet() lines 178-187 — uint8 Scale. */
105
+ const SCALE_MIN = 0;
106
+ const SCALE_MAX = 10;
107
+ /** xrpl.js 5.3.0 validateOracleSet() lines 167-173 — AssetPrice hex length. */
108
+ const MINIMUM_ASSET_PRICE_LENGTH = 1;
109
+ const MAXIMUM_ASSET_PRICE_LENGTH = 16;
110
+ /** UINT32 max (XLS-47 §"Transaction fields" — internal type UINT32). */
111
+ const UINT32_MAX = 0xffffffff;
112
+ // ─── Helpers ─────────────────────────────────────────────────────────
113
+ /**
114
+ * Validate the "ASCII hex encoded" blob fields per XLS-47 §"PriceOracle
115
+ * Object": hex-encoded string whose decoded bytes are printable ASCII
116
+ * (0x20-0x7E) and whose decoded length is ≤ maxBytes.
117
+ */
118
+ function validateAsciiHexBlob(field, value, maxBytes) {
119
+ if (!isString(value) || !isHex(value)) {
120
+ throw new ValidationError(`OracleSet: ${field} must be a hex-encoded string`);
121
+ }
122
+ if (value.length % 2 !== 0) {
123
+ throw new ValidationError(`OracleSet: ${field} must be a hex string with an even number of characters`);
124
+ }
125
+ const bytes = value.length / 2;
126
+ if (bytes > maxBytes) {
127
+ throw new ValidationError(`OracleSet: ${field} exceeds ${maxBytes} bytes (actual: ${bytes})`);
128
+ }
129
+ for (let i = 0; i < value.length; i += 2) {
130
+ const byte = parseInt(value.slice(i, i + 2), 16);
131
+ if (byte < PRINTABLE_ASCII_MIN || byte > PRINTABLE_ASCII_MAX) {
132
+ throw new ValidationError(`OracleSet: ${field} must decode to printable ASCII (0x${PRINTABLE_ASCII_MIN.toString(16)}-0x${PRINTABLE_ASCII_MAX.toString(16)})`);
133
+ }
134
+ }
135
+ }
136
+ /**
137
+ * Validate one `PriceDataSeries` element per XLS-47 and xrpl.js 5.3.0
138
+ * validateOracleSet() (`packages/xrpl/src/models/transactions/oracleSet.ts:91`).
139
+ */
140
+ function validatePriceDataSeriesElement(value, index) {
141
+ if (!isRecord(value)) {
142
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}] must be an object`);
143
+ }
144
+ if (Object.keys(value).length !== 1) {
145
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}] must contain only a single "PriceData" key`);
146
+ }
147
+ const inner = value['PriceData'];
148
+ if (!isRecord(inner)) {
149
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}].PriceData must be an object`);
150
+ }
151
+ if (!isString(inner['BaseAsset'])) {
152
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}].PriceData.BaseAsset must be a string`);
153
+ }
154
+ if (!isString(inner['QuoteAsset'])) {
155
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}].PriceData.QuoteAsset must be a string`);
156
+ }
157
+ // AssetPrice and Scale must be paired (xrpl.js lines 144-151).
158
+ const hasPrice = 'AssetPrice' in inner && inner['AssetPrice'] !== undefined;
159
+ const hasScale = 'Scale' in inner && inner['Scale'] !== undefined;
160
+ if (hasPrice !== hasScale) {
161
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}].PriceData must have both AssetPrice and Scale if any are present`);
162
+ }
163
+ if (hasPrice) {
164
+ const assetPrice = inner['AssetPrice'];
165
+ if (isNumber(assetPrice)) {
166
+ // accept numbers as-is
167
+ }
168
+ else if (isString(assetPrice)) {
169
+ if (!isHex(assetPrice)) {
170
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}].PriceData.AssetPrice must be a valid hex string when provided as a string`);
171
+ }
172
+ if (assetPrice.length < MINIMUM_ASSET_PRICE_LENGTH ||
173
+ assetPrice.length > MAXIMUM_ASSET_PRICE_LENGTH) {
174
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}].PriceData.AssetPrice hex length must be between ${MINIMUM_ASSET_PRICE_LENGTH} and ${MAXIMUM_ASSET_PRICE_LENGTH} characters`);
175
+ }
176
+ }
177
+ else {
178
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}].PriceData.AssetPrice must be a number or a string`);
179
+ }
180
+ }
181
+ if (hasScale) {
182
+ const scale = inner['Scale'];
183
+ if (!isNumber(scale) ||
184
+ !Number.isInteger(scale) ||
185
+ scale < SCALE_MIN ||
186
+ scale > SCALE_MAX) {
187
+ throw new ValidationError(`OracleSet: PriceDataSeries[${index}].PriceData.Scale must be an integer in [${SCALE_MIN}, ${SCALE_MAX}]`);
188
+ }
189
+ }
190
+ }
191
+ // ─── Factory ─────────────────────────────────────────────────────────
192
+ export function oracleSet(props) {
193
+ // ── Account ── required, must be a non-empty string.
194
+ require(props.Account, 'OracleSet: Account is required', isString);
195
+ if (props.Account.length === 0) {
196
+ throw new ValidationError('OracleSet: Account is required');
197
+ }
198
+ // ── OracleDocumentID ── required, positive integer, UINT32.
199
+ if (!isNumber(props.OracleDocumentID) || !Number.isInteger(props.OracleDocumentID)) {
200
+ throw new ValidationError('OracleSet: OracleDocumentID must be an integer');
201
+ }
202
+ if (props.OracleDocumentID < 0 || props.OracleDocumentID > UINT32_MAX) {
203
+ throw new ValidationError(`OracleSet: OracleDocumentID must be in [0, ${UINT32_MAX}] (UINT32)`);
204
+ }
205
+ // ── LastUpdateTime ── required, positive integer, UINT32.
206
+ if (!isNumber(props.LastUpdateTime) || !Number.isInteger(props.LastUpdateTime)) {
207
+ throw new ValidationError('OracleSet: LastUpdateTime must be an integer');
208
+ }
209
+ if (props.LastUpdateTime < 0 || props.LastUpdateTime > UINT32_MAX) {
210
+ throw new ValidationError(`OracleSet: LastUpdateTime must be in [0, ${UINT32_MAX}] (UINT32)`);
211
+ }
212
+ // ── PriceDataSeries ── required, non-empty (per spec), ≤10 elements.
213
+ if (!isArray(props.PriceDataSeries)) {
214
+ throw new ValidationError('OracleSet: PriceDataSeries is required and must be an array');
215
+ }
216
+ if (props.PriceDataSeries.length === 0) {
217
+ throw new ValidationError('OracleSet: PriceDataSeries must contain at least one PriceData object');
218
+ }
219
+ if (props.PriceDataSeries.length > PRICE_DATA_SERIES_MAX_LENGTH) {
220
+ throw new ValidationError(`OracleSet: PriceDataSeries must have at most ${PRICE_DATA_SERIES_MAX_LENGTH} PriceData objects`);
221
+ }
222
+ for (let i = 0; i < props.PriceDataSeries.length; i++) {
223
+ validatePriceDataSeriesElement(props.PriceDataSeries[i], i);
224
+ }
225
+ // ── Provider ── hex-encoded printable ASCII, ≤256 bytes.
226
+ if (props.Provider !== undefined) {
227
+ validateAsciiHexBlob('Provider', props.Provider, MAX_PROVIDER_BYTES);
228
+ }
229
+ // ── URI ── hex-encoded, ≤256 bytes.
230
+ if (props.URI !== undefined) {
231
+ validateAsciiHexBlob('URI', props.URI, MAX_URI_BYTES);
232
+ }
233
+ // ── AssetClass ── hex-encoded printable ASCII, ≤16 bytes.
234
+ if (props.AssetClass !== undefined) {
235
+ validateAsciiHexBlob('AssetClass', props.AssetClass, MAX_ASSET_CLASS_BYTES);
236
+ }
237
+ return buildFrozenTx('OracleSet', props, {
238
+ validate() {
239
+ // Validated at construction.
240
+ },
241
+ toJSON() {
242
+ const json = {};
243
+ for (const k of Object.keys(this)) {
244
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
245
+ continue;
246
+ const v = this[k];
247
+ if (v !== undefined)
248
+ json[k] = v;
249
+ }
250
+ return json;
251
+ },
252
+ with(overrides) {
253
+ return oracleSet(mergeForWith(this, overrides));
254
+ },
255
+ });
256
+ }
257
+ //# sourceMappingURL=oracle-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle-set.js","sourceRoot":"","sources":["../../../src/fp/factories/oracle-set.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Functional PaymentChannelClaim factory — frozen-object style.
3
+ *
4
+ * Claims XRP from a payment channel, adjusts the channel's expiration,
5
+ * or both. The transaction can be sent by the channel source, the
6
+ * channel destination, or any account when the channel has already
7
+ * expired. The destination must supply `Signature` + `PublicKey`; the
8
+ * source can omit them. Validation happens at construction; there is
9
+ * no way to construct an invalid tx.
10
+ *
11
+ * import { paymentChannelClaim } from 'xrplt/fp';
12
+ * const tx = paymentChannelClaim({ Account, Channel });
13
+ * const j = tx.toJSON();
14
+ * const tx2 = tx.with({ Balance: '2000000' });
15
+ *
16
+ * Affected amendments:
17
+ * - `PayChan` (base PaymentChannelClaim)
18
+ * - `Credentials` (CredentialIDs field for permissioned-domain auth)
19
+ * - `fixPayChanRecipientOwnerDir` (legacy channels with deleted
20
+ * destinations have relaxed delivery rules; runtime-only)
21
+ *
22
+ * @see https://xrpl.org/docs/references/protocol/transactions/types/paymentchannelclaim
23
+ * @see https://github.com/XRPLF/rippled/blob/develop/src/libxrpl/tx/transactors/payment_channel/PaymentChannelClaim.cpp
24
+ *
25
+ * ## Divergences
26
+ *
27
+ * Compared with `src/transactions/payment-channel-claim.ts`, this
28
+ * factory adds preclaim guards the class API skips:
29
+ *
30
+ * 1. **`Channel` must be a 64-character hex string (UInt256).**
31
+ * Source: xrpl.org `paymentchannelclaim.md` Fields table — "Channel
32
+ * | String - Hexadecimal | UInt256 | Yes". xrpl.js
33
+ * `validatePaymentChannelClaim`
34
+ * (`packages/xrpl/src/models/transactions/paymentChannelClaim.ts:164`)
35
+ * only checks `typeof tx.Channel === 'string'`. The class also
36
+ * only checks `isString`. The Channel ID is the SHA-512-half of
37
+ * (Account, Destination, Sequence) — i.e. the ledger object hash
38
+ * of the PayChannel entry — which is always a 64-char hex string.
39
+ *
40
+ * 2. **`Amount` and `Balance` must be strictly-positive XRP drops
41
+ * strings (XRP-only — no IOU/MPT object forms).**
42
+ * Source: xrpl.org `paymentchannelclaim.md` Fields table — both
43
+ * fields are documented as "XRP, in drops". xrpl.js
44
+ * `validatePaymentChannelClaim` only checks `typeof tx.Amount === 'string'`
45
+ * (no positive/sign guard). The class declares them as `Amount`
46
+ * (`string | IssuedCurrencyAmount | MPTAmount`) and runs them
47
+ * through `isAmount`, which accepts IOU/MPT objects and arbitrary
48
+ * numeric strings (including `'0'` and `'-1'`). The ledger rejects
49
+ * IOU/MPT forms outright (`temBAD_AMOUNT`) and a non-positive
50
+ * Balance would deliver nothing — this factory rejects both cases
51
+ * at construction.
52
+ *
53
+ * 3. **`PublicKey`, if provided, must be a hex string of 32 or 33
54
+ * bytes (Ed25519 or compressed secp256k1).**
55
+ * Source: xrpl.org `paymentchannelclaim.md` Fields table —
56
+ * "PublicKey | String - Hexadecimal | Blob". rippled's preflight
57
+ * uses `publicKeyType()` to gate this — same set of accepted
58
+ * lengths as `PaymentChannelCreate`. xrpl.js only checks
59
+ * `typeof tx.PublicKey === 'string'`; the class also only checks
60
+ * `isString`. A non-hex or wrong-length PublicKey makes signature
61
+ * verification fail with `temMALFORMED`.
62
+ *
63
+ * 4. **`Signature`, if provided, must be a hex string.**
64
+ * Source: xrpl.org `paymentchannelclaim.md` Fields table —
65
+ * "Signature | String - Hexadecimal | Blob". xrpl.js only checks
66
+ * `typeof tx.Signature === 'string'`; the class also only checks
67
+ * `isString`. Non-hex signature blobs fail signature verification
68
+ * with `temMALFORMED`.
69
+ *
70
+ * 5. **`CredentialIDs` field is supported (Credentials amendment).**
71
+ * Source: xrpl.js `PaymentChannelClaim` interface
72
+ * (`packages/xrpl/src/models/transactions/paymentChannelClaim.ts:141`)
73
+ * — "CredentialIDs?: string[] — Credentials associated with the
74
+ * sender of this transaction. The credentials included must not be
75
+ * expired." xrpl.org `paymentchannelclaim.md` Fields table also
76
+ * lists `CredentialIDs` as a `Vector256` field. The local class
77
+ * silently drops the field.
78
+ *
79
+ * 6. **`CredentialIDs` length must be in
80
+ * [1, MAX_AUTHORIZED_CREDENTIALS = 8], each entry must be a
81
+ * 64-character hex string, and duplicates are rejected.**
82
+ * Source: xrpl.js `validateCredentialsList`
83
+ * (`packages/xrpl/src/models/transactions/common.ts:1106–1148`)
84
+ * enforces empty-array reject, length cap, 64-char hex entries,
85
+ * and "Credentials cannot contain duplicate elements." The class
86
+ * does not model the field.
87
+ *
88
+ * 7. **`Account` must be a valid XRPL classic or X-address.**
89
+ * Source: protocol-level invariant — every transaction's `Account`
90
+ * field must be a parseable address. The class does not validate
91
+ * `Account` at all (its `super.validate()` delegates to
92
+ * `BaseTransaction.validate`, which performs no address format
93
+ * check).
94
+ *
95
+ * Preclaim checks that require ledger state (NOT locally checkable):
96
+ * - The `Channel` ledger object must exist (`tecNO_ENTRY`).
97
+ * - The sender's authorization (Signature/PublicKey) must verify
98
+ * against the channel's stored PublicKey and the claimed
99
+ * Amount (`temBAD_AUTH` / `temBAD_SIGNATURE`).
100
+ * - `Balance`, when delivering, must exceed channel's current
101
+ * `Balance` and must not exceed `Amount` (`temBAD_AMOUNT`).
102
+ * - The destination account must exist when this transaction
103
+ * delivers XRP (`tecNO_DST`, per XLS-0007 §3.1.3).
104
+ * - If the channel's `Expiration` or `CancelAfter` is older than the
105
+ * previous ledger's close time, the channel closes regardless of
106
+ * the transaction's contents.
107
+ */
108
+ import type { PaymentChannelClaimFlagsInterface } from '../../types/flags.js';
109
+ export interface PaymentChannelClaimProps {
110
+ /** The unique address of the transaction sender. */
111
+ Account: string;
112
+ /** The unique ID of the payment channel (64-char hex / UInt256). */
113
+ Channel: string;
114
+ /**
115
+ * Total XRP authorized by the signature, in drops. Cumulative across
116
+ * the channel's lifetime. Required when delivering XRP; must match
117
+ * the signed message. Must be > 0.
118
+ */
119
+ Amount?: string | undefined;
120
+ /**
121
+ * Total XRP delivered by the channel after this claim is processed,
122
+ * in drops. Required to deliver XRP; must be > 0 and strictly
123
+ * greater than the channel's current `Balance`.
124
+ */
125
+ Balance?: string | undefined;
126
+ /**
127
+ * Public key used to verify `Signature` (32 or 33-byte hex). Must
128
+ * match the channel's stored `PublicKey`.
129
+ */
130
+ PublicKey?: string | undefined;
131
+ /**
132
+ * Claim signature, hex-encoded. Required unless the sender is the
133
+ * channel's source address.
134
+ */
135
+ Signature?: string | undefined;
136
+ /**
137
+ * Optional credentials authorizing this claim. Each entry is a
138
+ * 64-char hex ledger entry ID. Length must be in [1, 8].
139
+ */
140
+ CredentialIDs?: string[] | undefined;
141
+ /** Bit-flags: 0, tfRenew (0x00010000), and/or tfClose (0x00020000). */
142
+ Flags?: number | PaymentChannelClaimFlagsInterface | undefined;
143
+ Fee?: string | undefined;
144
+ Sequence?: number | undefined;
145
+ }
146
+ export interface PaymentChannelClaim extends Readonly<PaymentChannelClaimProps> {
147
+ readonly TransactionType: 'PaymentChannelClaim';
148
+ validate(): void;
149
+ toJSON(): Record<string, unknown>;
150
+ with(overrides: Partial<PaymentChannelClaimProps>): PaymentChannelClaim;
151
+ }
152
+ export declare function paymentChannelClaim(props: PaymentChannelClaimProps): PaymentChannelClaim;
153
+ //# sourceMappingURL=payment-channel-claim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-channel-claim.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/payment-channel-claim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AACH,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AA2B9E,MAAM,WAAW,wBAAwB;IACvC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,GAAG,iCAAiC,GAAG,SAAS,CAAC;IAC/D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,mBACf,SAAQ,QAAQ,CAAC,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CACF,SAAS,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAC3C,mBAAmB,CAAC;CACxB;AAoBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,mBAAmB,CAoIrB"}
@@ -0,0 +1,118 @@
1
+ import { isAccount, isArray, isHex, isString, } from '../../validation/helpers.js';
2
+ import { ValidationError } from '../../errors.js';
3
+ import { buildFrozenTx, mergeForWith, require } from '../shape.js';
4
+ // ─── Spec constants ──────────────────────────────────────────────────
5
+ // HASH256 in hex is 64 characters. (xrpl.org paymentchannelclaim.md:
6
+ // "Channel | String - Hexadecimal | UInt256 | Yes".)
7
+ const HASH256_HEX_LENGTH = 64;
8
+ // Allowed public-key hex lengths — Ed25519 (32 bytes / 64 hex) or
9
+ // secp256k1 compressed (33 bytes / 66 hex). Same set as rippled's
10
+ // `publicKeyType()` accepts.
11
+ const ALLOWED_PUBLIC_KEY_HEX_LENGTHS = [64, 66];
12
+ // xrpl.js caps non-DomainSet credential arrays at 8 entries
13
+ // (`packages/xrpl/src/models/transactions/common.ts:28`).
14
+ const MAX_CREDENTIAL_IDS = 8;
15
+ // ─── Helpers ─────────────────────────────────────────────────────────
16
+ /**
17
+ * Validate a strictly-positive XRP drops string. Accepts canonical
18
+ * decimal-or-scientific mantissa form; rejects zero, negative, and
19
+ * non-numeric values. Used for `Amount` and `Balance` which are
20
+ * documented as "XRP, in drops" (XRP-only — no IOU/MPT forms).
21
+ */
22
+ function isPositiveXrpDrops(value) {
23
+ if (!isString(value))
24
+ return false;
25
+ if (!/^[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/u.test(value)) {
26
+ return false;
27
+ }
28
+ return parseFloat(value) > 0;
29
+ }
30
+ // ─── Factory ─────────────────────────────────────────────────────────
31
+ export function paymentChannelClaim(props) {
32
+ // ── Account ── required, must be a valid XRPL classic or X-address.
33
+ require(props.Account, 'PaymentChannelClaim: Account is required', isAccount);
34
+ // ── Channel ── required, 64-char hex (UInt256 — the ledger object
35
+ // hash of the PayChannel entry).
36
+ if (!isString(props.Channel) ||
37
+ !isHex(props.Channel) ||
38
+ props.Channel.length !== HASH256_HEX_LENGTH) {
39
+ throw new ValidationError('PaymentChannelClaim: Channel must be a 64-character hex string (UInt256, the PayChannel ledger object hash)');
40
+ }
41
+ // ── Amount ── optional, but if supplied must be a strictly-positive
42
+ // XRP drops string. Rejects IOU/MPT object forms (those would
43
+ // match the class's `isAmount` shape but the ledger is
44
+ // XRP-only for this tx).
45
+ if (props.Amount !== undefined && !isPositiveXrpDrops(props.Amount)) {
46
+ throw new ValidationError('PaymentChannelClaim: Amount must be a strictly-positive XRP drops string (temBAD_AMOUNT)');
47
+ }
48
+ // ── Balance ── optional, but if supplied must be a strictly-positive
49
+ // XRP drops string.
50
+ if (props.Balance !== undefined && !isPositiveXrpDrops(props.Balance)) {
51
+ throw new ValidationError('PaymentChannelClaim: Balance must be a strictly-positive XRP drops string (temBAD_AMOUNT)');
52
+ }
53
+ // ── PublicKey ── optional, but if supplied must be hex of 32 or
54
+ // 33 bytes (Ed25519 or compressed secp256k1). Matches rippled's
55
+ // `publicKeyType()` preflight check.
56
+ if (props.PublicKey !== undefined) {
57
+ if (!isString(props.PublicKey) || !isHex(props.PublicKey)) {
58
+ throw new ValidationError('PaymentChannelClaim: PublicKey must be a hex string');
59
+ }
60
+ if (!ALLOWED_PUBLIC_KEY_HEX_LENGTHS.includes(props.PublicKey.length)) {
61
+ throw new ValidationError(`PaymentChannelClaim: PublicKey hex must be 64 (Ed25519, 32 bytes) or 66 (secp256k1, 33 bytes) characters; got ${props.PublicKey.length} hex chars (temMALFORMED)`);
62
+ }
63
+ }
64
+ // ── Signature ── optional, but if supplied must be a hex string.
65
+ if (props.Signature !== undefined) {
66
+ if (!isString(props.Signature) || !isHex(props.Signature)) {
67
+ throw new ValidationError('PaymentChannelClaim: Signature must be a hex string (temMALFORMED)');
68
+ }
69
+ }
70
+ // ── CredentialIDs ── optional array, but bounds + entry-shape
71
+ // enforced when present. Per xrpl.js: length in
72
+ // [1, MAX_AUTHORIZED_CREDENTIALS]; each entry a 64-char hex
73
+ // string; no duplicates.
74
+ if (props.CredentialIDs !== undefined) {
75
+ if (!isArray(props.CredentialIDs)) {
76
+ throw new ValidationError('PaymentChannelClaim: CredentialIDs must be an array of credential ID strings');
77
+ }
78
+ if (props.CredentialIDs.length === 0) {
79
+ throw new ValidationError('PaymentChannelClaim: CredentialIDs must not be an empty array');
80
+ }
81
+ if (props.CredentialIDs.length > MAX_CREDENTIAL_IDS) {
82
+ throw new ValidationError(`PaymentChannelClaim: CredentialIDs length cannot exceed ${MAX_CREDENTIAL_IDS} elements (actual: ${props.CredentialIDs.length})`);
83
+ }
84
+ const seen = new Set();
85
+ for (let i = 0; i < props.CredentialIDs.length; i++) {
86
+ const cid = props.CredentialIDs[i];
87
+ if (!isString(cid) ||
88
+ !isHex(cid) ||
89
+ cid.length !== HASH256_HEX_LENGTH) {
90
+ throw new ValidationError(`PaymentChannelClaim: CredentialIDs[${i}] must be a ${HASH256_HEX_LENGTH}-character hex string`);
91
+ }
92
+ if (seen.has(cid)) {
93
+ throw new ValidationError(`PaymentChannelClaim: CredentialIDs[${i}] is a duplicate of an earlier entry`);
94
+ }
95
+ seen.add(cid);
96
+ }
97
+ }
98
+ return buildFrozenTx('PaymentChannelClaim', props, {
99
+ validate() {
100
+ // Validated at construction.
101
+ },
102
+ toJSON() {
103
+ const json = {};
104
+ for (const k of Object.keys(this)) {
105
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
106
+ continue;
107
+ const v = this[k];
108
+ if (v !== undefined)
109
+ json[k] = v;
110
+ }
111
+ return json;
112
+ },
113
+ with(overrides) {
114
+ return paymentChannelClaim(mergeForWith(this, overrides));
115
+ },
116
+ });
117
+ }
118
+ //# sourceMappingURL=payment-channel-claim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-channel-claim.js","sourceRoot":"","sources":["../../../src/fp/factories/payment-channel-claim.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export interface PaymentChannelCreateProps {
2
+ /** The unique address of the transaction sender (becomes the channel owner). */
3
+ Account: string;
4
+ /** Amount of XRP, in drops, to set aside in the channel. Must be > 0. */
5
+ Amount: string;
6
+ /** The account that can receive XRP claims against this channel. */
7
+ Destination: string;
8
+ /** Seconds the source must wait before closing the channel. UInt32. */
9
+ SettleDelay: number;
10
+ /**
11
+ * 33-byte (secp256k1) or 32-byte (Ed25519) public key in hex.
12
+ */
13
+ PublicKey: string;
14
+ /** Time (seconds since Ripple Epoch) when the channel expires. UInt32. */
15
+ CancelAfter?: number | undefined;
16
+ /** Arbitrary tag for the destination. UInt32. */
17
+ DestinationTag?: number | undefined;
18
+ /** Bit-flags for this transaction. PaymentChannelCreate has no defined flags. */
19
+ Flags?: number | undefined;
20
+ Fee?: string | undefined;
21
+ Sequence?: number | undefined;
22
+ }
23
+ export interface PaymentChannelCreate extends Readonly<PaymentChannelCreateProps> {
24
+ readonly TransactionType: 'PaymentChannelCreate';
25
+ validate(): void;
26
+ toJSON(): Record<string, unknown>;
27
+ with(overrides: Partial<PaymentChannelCreateProps>): PaymentChannelCreate;
28
+ }
29
+ export declare function paymentChannelCreate(props: PaymentChannelCreateProps): PaymentChannelCreate;
30
+ //# sourceMappingURL=payment-channel-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-channel-create.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/payment-channel-create.ts"],"names":[],"mappings":"AA0HA,MAAM,WAAW,yBAAyB;IACxC,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,oBACf,SAAQ,QAAQ,CAAC,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACjD,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CACF,SAAS,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC5C,oBAAoB,CAAC;CACzB;AAID,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,GAC/B,oBAAoB,CAgGtB"}