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,147 @@
1
+ import { isAccount, isAmount, isCurrency, isIssuedCurrencyAmount, isString, } from '../../validation/helpers.js';
2
+ import { ValidationError } from '../../errors.js';
3
+ import { buildFrozenTx, mergeForWith } from '../shape.js';
4
+ // ─── Spec constants ──────────────────────────────────────────────────
5
+ // xrpl.js `AMMWithdrawFlags` enum — these seven mode flags identify
6
+ // the mutually-exclusive AMM-withdraw modes.
7
+ // tfLPToken = 0x00010000
8
+ // tfWithdrawAll = 0x00020000
9
+ // tfOneAssetWithdrawAll = 0x00040000
10
+ // tfSingleAsset = 0x00080000
11
+ // tfTwoAsset = 0x00100000
12
+ // tfOneAssetLPToken = 0x00200000
13
+ // tfLimitLPToken = 0x00400000
14
+ //
15
+ // They are non-overlapping single bits, so a "exactly one" check
16
+ // reduces to: popcount(flags & MASK) === 1.
17
+ const AMM_WITHDRAW_FLAG_BITS = [
18
+ 0x00010000, // tfLPToken
19
+ 0x00020000, // tfWithdrawAll
20
+ 0x00040000, // tfOneAssetWithdrawAll
21
+ 0x00080000, // tfSingleAsset
22
+ 0x00100000, // tfTwoAsset
23
+ 0x00200000, // tfOneAssetLPToken
24
+ 0x00400000, // tfLimitLPToken
25
+ ];
26
+ const AMM_WITHDRAW_FLAGS_MASK = AMM_WITHDRAW_FLAG_BITS.reduce((acc, bit) => acc | bit, 0);
27
+ // ─── Helpers ─────────────────────────────────────────────────────────
28
+ /**
29
+ * Bit-count of a 32-bit integer (popcount). Used to verify that
30
+ * exactly one of the seven AMM-withdraw mode flag bits is set.
31
+ */
32
+ function popcount32(n) {
33
+ // Brian Kernighan's algorithm.
34
+ let v = n >>> 0;
35
+ let count = 0;
36
+ while (v !== 0) {
37
+ v &= v - 1;
38
+ count++;
39
+ }
40
+ return count;
41
+ }
42
+ /**
43
+ * Extract the numeric bitmask from `Flags` regardless of whether the
44
+ * caller passed a numeric value or a boolean `AMMWithdrawFlagsInterface`.
45
+ */
46
+ function flagsToNumber(flags) {
47
+ if (flags === undefined)
48
+ return 0;
49
+ if (typeof flags === 'number')
50
+ return flags;
51
+ let n = 0;
52
+ if (flags.tfLPToken)
53
+ n |= 0x00010000;
54
+ if (flags.tfWithdrawAll)
55
+ n |= 0x00020000;
56
+ if (flags.tfOneAssetWithdrawAll)
57
+ n |= 0x00040000;
58
+ if (flags.tfSingleAsset)
59
+ n |= 0x00080000;
60
+ if (flags.tfTwoAsset)
61
+ n |= 0x00100000;
62
+ if (flags.tfOneAssetLPToken)
63
+ n |= 0x00200000;
64
+ if (flags.tfLimitLPToken)
65
+ n |= 0x00400000;
66
+ return n;
67
+ }
68
+ // ─── Factory ─────────────────────────────────────────────────────────
69
+ export function ammWithdraw(props) {
70
+ // ── Account ── required, must be a valid XRPL classic address.
71
+ if (!isString(props.Account) || !isAccount(props.Account)) {
72
+ throw new ValidationError('AMMWithdraw: Account is required and must be a valid XRPL account address');
73
+ }
74
+ // ── Asset ── required, must be a valid Currency.
75
+ if (!isCurrency(props.Asset)) {
76
+ throw new ValidationError('AMMWithdraw: Asset must be a valid Currency (XRP, trust line, or MPT form)');
77
+ }
78
+ // ── Asset2 ── required, must be a valid Currency.
79
+ if (!isCurrency(props.Asset2)) {
80
+ throw new ValidationError('AMMWithdraw: Asset2 must be a valid Currency (XRP, trust line, or MPT form)');
81
+ }
82
+ // ── Amount ── optional; when present, must be a valid Amount.
83
+ if (props.Amount !== undefined && !isAmount(props.Amount)) {
84
+ throw new ValidationError('AMMWithdraw: Amount must be a valid Amount (XRP drops, trust line, or MPT form)');
85
+ }
86
+ // ── Amount2 ── optional; when present, must be a valid Amount AND
87
+ // Amount must also be present (XLS-0030 §2.4.2.3 — "Amount and
88
+ // Amount2" is the only Amount2-bearing mode).
89
+ if (props.Amount2 !== undefined) {
90
+ if (!isAmount(props.Amount2)) {
91
+ throw new ValidationError('AMMWithdraw: Amount2 must be a valid Amount (XRP drops, trust line, or MPT form)');
92
+ }
93
+ if (props.Amount === undefined) {
94
+ throw new ValidationError('AMMWithdraw: Amount2 requires Amount to be set (XLS-0030 §2.4.2.3 "Amount and Amount2" mode)');
95
+ }
96
+ }
97
+ // ── EPrice ── optional; when present, must be a valid Amount AND
98
+ // Amount must also be present (XLS-0030 §2.4.2.3 — "Amount and
99
+ // EPrice" is the only EPrice-bearing mode).
100
+ if (props.EPrice !== undefined) {
101
+ if (!isAmount(props.EPrice)) {
102
+ throw new ValidationError('AMMWithdraw: EPrice must be a valid Amount (XRP drops, trust line, or MPT form)');
103
+ }
104
+ if (props.Amount === undefined) {
105
+ throw new ValidationError('AMMWithdraw: EPrice requires Amount to be set (XLS-0030 §2.4.2.3 "Amount and EPrice" mode)');
106
+ }
107
+ }
108
+ // ── LPTokenIn ── optional; when present, must be an
109
+ // IssuedCurrencyAmount. LP tokens are always issued currencies —
110
+ // never XRP and never an MPT.
111
+ if (props.LPTokenIn !== undefined && !isIssuedCurrencyAmount(props.LPTokenIn)) {
112
+ throw new ValidationError('AMMWithdraw: LPTokenIn must be an IssuedCurrencyAmount (currency + issuer + value)');
113
+ }
114
+ // ── Flags ── exactly one AMM-withdraw mode flag bit must be set
115
+ // (xrpl.org `ammwithdraw.md`: "You must specify **exactly one**
116
+ // of these flags, plus any global flags"). We always validate —
117
+ // an absent `Flags`, an explicit `undefined`, and `Flags: 0` all
118
+ // represent "no mode flag set" and must throw.
119
+ const numericFlags = flagsToNumber(props.Flags);
120
+ const ammFlagBits = numericFlags & AMM_WITHDRAW_FLAGS_MASK;
121
+ if (ammFlagBits === 0) {
122
+ throw new ValidationError('AMMWithdraw: Flags must specify exactly one AMM-withdraw mode flag (tfLPToken, tfWithdrawAll, tfOneAssetWithdrawAll, tfSingleAsset, tfTwoAsset, tfOneAssetLPToken, or tfLimitLPToken)');
123
+ }
124
+ if (popcount32(ammFlagBits) !== 1) {
125
+ throw new ValidationError('AMMWithdraw: Flags must specify exactly one AMM-withdraw mode flag (got multiple)');
126
+ }
127
+ return buildFrozenTx('AMMWithdraw', props, {
128
+ validate() {
129
+ // Validated at construction.
130
+ },
131
+ toJSON() {
132
+ const json = {};
133
+ for (const k of Object.keys(this)) {
134
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
135
+ continue;
136
+ const v = this[k];
137
+ if (v !== undefined)
138
+ json[k] = v;
139
+ }
140
+ return json;
141
+ },
142
+ with(overrides) {
143
+ return ammWithdraw(mergeForWith(this, overrides));
144
+ },
145
+ });
146
+ }
147
+ //# sourceMappingURL=amm-withdraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amm-withdraw.js","sourceRoot":"","sources":["../../../src/fp/factories/amm-withdraw.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Functional Batch factory — frozen-object style.
3
+ *
4
+ * The Batch transaction (`BatchV1_1` amendment) wraps a list of inner
5
+ * transactions (`RawTransactions`) into a single atomic submission. The
6
+ * factory validates at construction; an invalid Batch can never exist.
7
+ *
8
+ * import { batch } from 'xrplt/fp';
9
+ * const tx = batch({ Account, Flags, RawTransactions: [...] });
10
+ * const j = tx.toJSON();
11
+ * const tx2 = tx.with({ Flags: 0x00020000 }); // tfOnlyOne
12
+ *
13
+ * Compare with the class-based equivalent:
14
+ *
15
+ * import { Batch } from 'xrplt';
16
+ * const tx = new Batch({ Account, Flags, RawTransactions: [...] });
17
+ * tx.validate(); // must be called explicitly
18
+ *
19
+ * @see https://xrpl.org/docs/references/protocol/transactions/types/batch
20
+ * @see https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0056-batch
21
+ *
22
+ * ## Divergences
23
+ * The factory enforces seven preclaim checks that the class API
24
+ * (`src/transactions/batch.ts`) explicitly skips. Each is documented
25
+ * inline with the corresponding citation.
26
+ *
27
+ * 1. `RawTransactions` length must be **2–8** (class: only non-empty).
28
+ * Source: XLS-56 §2.1.2 — "There can be up to 8 transactions
29
+ * included. There must be at least 2 transactions." Cross-checked
30
+ * against xrpl.org error table for `temARRAY_EMPTY` and
31
+ * `temARRAY_TOO_LARGE`.
32
+ *
33
+ * 2. Outer `Flags` must contain **exactly one** batch-mode flag
34
+ * (`tfAllOrNothing` | `tfOnlyOne` | `tfUntilFailure` | `tfIndependent`).
35
+ * Source: XLS-56 §2.1.1 — "Exactly one must be specified in a Batch
36
+ * transaction." Cross-checked against xrpl.org error table for
37
+ * `temINVALID_FLAG` (first clause). The class source comment
38
+ * (`src/transactions/batch.ts:33-38`) explicitly defers this to the
39
+ * ledger.
40
+ *
41
+ * 3. Each inner transaction must set **either** `Sequence` (non-zero)
42
+ * **or** `TicketSequence` (positive integer), but not both and not
43
+ * neither. Source: XLS-56 §2.3.2.12 — "exactly one of the two must
44
+ * be used: a ticketed inner transaction sets `TicketSequence` and
45
+ * `Sequence: 0`, and a sequence-based inner transaction sets a
46
+ * non-zero `Sequence` and omits `TicketSequence`." Cross-checked
47
+ * against xrpl.org error table for `temSEQ_AND_TICKET`.
48
+ *
49
+ * 4. No duplicate inner transactions in `RawTransactions` (deep-equal
50
+ * by canonical JSON serialization with sorted keys).
51
+ * Source: XLS-56 §2.3.2.10 — "There is a duplicate transaction in
52
+ * the `RawTransactions` field (`temREDUNDANT`)."
53
+ *
54
+ * 5. `BatchSigners` length must be ≤ 24 entries.
55
+ * Source: XLS-56 §2.3.3.1 — "The length of `BatchSigners` is greater
56
+ * than 24 (`temARRAY_TOO_LARGE`). This is three times the maximum
57
+ * number of inner transactions."
58
+ *
59
+ * 6. `BatchSigners` must be sorted strictly ascending by `Account` and
60
+ * contain no duplicate accounts. Source: XLS-56 §2.1.3 — "The
61
+ * entries in `BatchSigners` must be sorted in strictly ascending
62
+ * order by `Account`. Duplicate entries are not permitted."
63
+ * Cross-checked against xrpl.org `temBAD_SIGNER` (third and fourth
64
+ * clauses).
65
+ *
66
+ * 7. The outer `Account` may not appear as a `BatchSigner.Account`
67
+ * Source: XLS-56 §2.3.3.2 — "The `BatchSigners` field contains a
68
+ * signature from the account signing the outer transaction
69
+ * (`temBAD_SIGNER`)."
70
+ *
71
+ * 8. Each `BatchSigner` must be exclusively either single-sign
72
+ * (`SigningPubKey` + `TxnSignature`) or multi-sign (`Signers`); the
73
+ * two forms cannot be mixed on the same entry.
74
+ * Source: XLS-56 §2.1.3 — "Either the `SigningPubKey` and
75
+ * `TxnSignature` fields must be included, or the `Signers` field."
76
+ * Cross-checked against xrpl.org note on the `BatchSigners` table.
77
+ *
78
+ * Where the class enforces a rule, the factory matches its error wording
79
+ * so consumers can rely on either API for the same set of guard checks.
80
+ */
81
+ import type { Signer } from '../../types/common.js';
82
+ import type { BatchFlagsInterface } from '../../types/flags.js';
83
+ /**
84
+ * A single inner transaction wrapped in the Batch's `RawTransactions`
85
+ * array. Per BatchV1_1, the wrapping object has exactly one key:
86
+ * `RawTransaction`.
87
+ */
88
+ export interface RawTransaction {
89
+ readonly RawTransaction: Record<string, unknown>;
90
+ }
91
+ /**
92
+ * A counterparty signature for a multi-account Batch tx. The wrapper
93
+ * carries a single `BatchSigner` record.
94
+ */
95
+ export interface BatchSigner {
96
+ readonly BatchSigner: {
97
+ readonly Account: string;
98
+ readonly SigningPubKey?: string;
99
+ readonly TxnSignature?: string;
100
+ readonly Signers?: Signer[];
101
+ };
102
+ }
103
+ export interface BatchProps {
104
+ /** The unique address of the transaction sender (outer Batch signer). */
105
+ Account: string;
106
+ /**
107
+ * Batch mode flags. Exactly one of `tfAllOrNothing`, `tfOnlyOne`,
108
+ * `tfUntilFailure`, or `tfIndependent` must be set (XLS-56 §2.1.1).
109
+ */
110
+ Flags?: number | BatchFlagsInterface | undefined;
111
+ /**
112
+ * 2–8 inner transactions to apply. Each must include the
113
+ * `tfInnerBatchTxn` flag, `Fee: "0"`, and `SigningPubKey: ""`.
114
+ */
115
+ RawTransactions: RawTransaction[];
116
+ /**
117
+ * Counterparty signatures for multi-account batches. Optional; if any
118
+ * inner-tx account is not the outer `Account`, the corresponding
119
+ * `BatchSigner` entry is required (XLS-56 §2.1.3).
120
+ */
121
+ BatchSigners?: BatchSigner[] | undefined;
122
+ /** Common base fields — pass-through only. */
123
+ Fee?: string | undefined;
124
+ Sequence?: number | undefined;
125
+ }
126
+ export interface Batch extends Readonly<BatchProps> {
127
+ readonly TransactionType: 'Batch';
128
+ validate(): void;
129
+ toJSON(): Record<string, unknown>;
130
+ with(overrides: Partial<BatchProps>): Batch;
131
+ }
132
+ export declare function batch(props: BatchProps): Batch;
133
+ //# sourceMappingURL=batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAsBhE;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IACjD;;;OAGG;IACH,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IACzC,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,KAAM,SAAQ,QAAQ,CAAC,UAAU,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;CAC7C;AA4ED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CA4Q9C"}
@@ -0,0 +1,264 @@
1
+ import { GlobalFlags } from '../../types/flags.js';
2
+ import { isAccount, isArray, isRecord, isString, } from '../../validation/helpers.js';
3
+ import { ValidationError } from '../../errors.js';
4
+ import { buildFrozenTx, mergeForWith, require } from '../shape.js';
5
+ // ─── Spec constants ──────────────────────────────────────────────────
6
+ // Minimum number of inner transactions in a Batch (XLS-56 §2.1.2).
7
+ const MIN_RAW_TRANSACTIONS = 2;
8
+ // Maximum number of inner transactions in a Batch (XLS-56 §2.1.2).
9
+ const MAX_RAW_TRANSACTIONS = 8;
10
+ // Maximum number of BatchSigner entries (XLS-56 §2.3.3.1).
11
+ const MAX_BATCH_SIGNERS = 24;
12
+ // ─── Helpers ─────────────────────────────────────────────────────────
13
+ /**
14
+ * Count how many of the four batch-mode flags are set in `flags`.
15
+ * Returns 0–4.
16
+ */
17
+ function countBatchModeFlags(flags) {
18
+ let count = 0;
19
+ for (const bit of [
20
+ 0x00010000,
21
+ 0x00020000,
22
+ 0x00040000,
23
+ 0x00080000,
24
+ ]) {
25
+ if ((flags & bit) === bit)
26
+ count += 1;
27
+ }
28
+ return count;
29
+ }
30
+ /**
31
+ * Resolve a possibly-boolean-map `Flags` value to a numeric bitmask.
32
+ * Falls back to 0 when neither form is supplied.
33
+ */
34
+ function flagsToNumber(flags) {
35
+ if (flags === undefined)
36
+ return 0;
37
+ if (typeof flags === 'number')
38
+ return flags;
39
+ let n = 0;
40
+ if (flags.tfAllOrNothing)
41
+ n |= 0x00010000;
42
+ if (flags.tfOnlyOne)
43
+ n |= 0x00020000;
44
+ if (flags.tfUntilFailure)
45
+ n |= 0x00040000;
46
+ if (flags.tfIndependent)
47
+ n |= 0x00080000;
48
+ if (flags.tfInnerBatchTxn)
49
+ n |= GlobalFlags.tfInnerBatchTxn;
50
+ return n;
51
+ }
52
+ /**
53
+ * Canonical JSON serialization for inner-tx duplicate detection. Sorts
54
+ * object keys recursively so `{a:1,b:2}` and `{b:2,a:1}` compare equal.
55
+ *
56
+ * Not for use as a wire serializer — only as a hash key.
57
+ */
58
+ function stableStringify(value) {
59
+ if (value === null)
60
+ return 'null';
61
+ if (typeof value === 'number') {
62
+ if (!Number.isFinite(value))
63
+ return 'null';
64
+ return JSON.stringify(value);
65
+ }
66
+ if (typeof value === 'string')
67
+ return JSON.stringify(value);
68
+ if (typeof value === 'boolean')
69
+ return value ? 'true' : 'false';
70
+ if (Array.isArray(value)) {
71
+ return '[' + value.map(stableStringify).join(',') + ']';
72
+ }
73
+ if (typeof value === 'object') {
74
+ const keys = Object.keys(value).sort();
75
+ return ('{' +
76
+ keys
77
+ .map((k) => JSON.stringify(k) +
78
+ ':' +
79
+ stableStringify(value[k]))
80
+ .join(',') +
81
+ '}');
82
+ }
83
+ return JSON.stringify(String(value));
84
+ }
85
+ // ─── Factory ─────────────────────────────────────────────────────────
86
+ export function batch(props) {
87
+ // ── Account ── required, valid XRPL address.
88
+ require(props.Account, 'Batch: Account is required', isAccount);
89
+ // ── Outer Flags ── exactly one batch-mode flag must be set.
90
+ // XLS-56 §2.1.1 ("Exactly one must be specified").
91
+ const outerFlags = flagsToNumber(props.Flags);
92
+ const modeCount = countBatchModeFlags(outerFlags);
93
+ if (modeCount !== 1) {
94
+ throw new ValidationError(`Batch: Flags must contain exactly one of tfAllOrNothing, tfOnlyOne, tfUntilFailure, or tfIndependent (found ${modeCount})`);
95
+ }
96
+ // ── RawTransactions ── required, 2–8 entries.
97
+ if (!isArray(props.RawTransactions)) {
98
+ throw new ValidationError('Batch: RawTransactions must be an array');
99
+ }
100
+ if (props.RawTransactions.length < MIN_RAW_TRANSACTIONS) {
101
+ throw new ValidationError(`Batch: RawTransactions must contain at least ${MIN_RAW_TRANSACTIONS} transactions (found ${props.RawTransactions.length})`);
102
+ }
103
+ if (props.RawTransactions.length > MAX_RAW_TRANSACTIONS) {
104
+ throw new ValidationError(`Batch: RawTransactions must contain at most ${MAX_RAW_TRANSACTIONS} transactions (found ${props.RawTransactions.length})`);
105
+ }
106
+ // ── Each inner transaction: shape + inner-tx invariants.
107
+ const seen = new Set();
108
+ props.RawTransactions.forEach((wrapper, index) => {
109
+ if (!isRecord(wrapper)) {
110
+ throw new ValidationError(`Batch: RawTransactions[${index}] is not an object`);
111
+ }
112
+ const inner = wrapper['RawTransaction'];
113
+ if (inner === undefined) {
114
+ throw new ValidationError(`Batch: RawTransactions[${index}] is missing the 'RawTransaction' key`);
115
+ }
116
+ if (!isRecord(inner)) {
117
+ throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction is not an object`);
118
+ }
119
+ // No nesting: an inner tx cannot itself be a Batch.
120
+ if (inner['TransactionType'] === 'Batch') {
121
+ throw new ValidationError(`Batch: RawTransactions[${index}] is a Batch transaction. Cannot nest Batch transactions.`);
122
+ }
123
+ // tfInnerBatchTxn flag must be set.
124
+ const innerFlags = inner['Flags'];
125
+ if (typeof innerFlags !== 'number' ||
126
+ (innerFlags & GlobalFlags.tfInnerBatchTxn) !== GlobalFlags.tfInnerBatchTxn) {
127
+ throw new ValidationError(`Batch: RawTransactions[${index}] must contain the tfInnerBatchTxn flag`);
128
+ }
129
+ // Fee must be "0" (or null/undefined, per xrpl.js compatibility).
130
+ const fee = inner['Fee'];
131
+ if (fee !== undefined && fee !== null && fee !== '0') {
132
+ throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.Fee must be "0" (outer tx pays all fees)`);
133
+ }
134
+ // SigningPubKey must be "" (or null/undefined, per xrpl.js).
135
+ const spk = inner['SigningPubKey'];
136
+ if (spk !== undefined && spk !== null && spk !== '') {
137
+ throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.SigningPubKey must be ""`);
138
+ }
139
+ // TxnSignature must be absent.
140
+ if (inner['TxnSignature'] !== undefined) {
141
+ throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.TxnSignature must be absent`);
142
+ }
143
+ // Signers must be absent.
144
+ if (inner['Signers'] !== undefined) {
145
+ throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.Signers must be absent`);
146
+ }
147
+ // Sequence XOR TicketSequence: exactly one, and Sequence must be
148
+ // non-zero when used (XLS-56 §2.3.2.12 → temSEQ_AND_TICKET).
149
+ const hasSeq = inner['Sequence'] !== undefined;
150
+ const hasTicket = inner['TicketSequence'] !== undefined;
151
+ if (hasSeq && hasTicket) {
152
+ throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction must set either Sequence or TicketSequence, not both`);
153
+ }
154
+ if (!hasSeq && !hasTicket) {
155
+ throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction must set either Sequence or TicketSequence`);
156
+ }
157
+ if (hasSeq) {
158
+ const seq = inner['Sequence'];
159
+ if (typeof seq !== 'number' ||
160
+ !Number.isInteger(seq) ||
161
+ seq <= 0) {
162
+ throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.Sequence must be a positive integer when used`);
163
+ }
164
+ }
165
+ if (hasTicket) {
166
+ const ts = inner['TicketSequence'];
167
+ if (typeof ts !== 'number' ||
168
+ !Number.isInteger(ts) ||
169
+ ts <= 0) {
170
+ throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.TicketSequence must be a positive integer when used`);
171
+ }
172
+ }
173
+ // Duplicate detection (XLS-56 §2.3.2.10 → temREDUNDANT).
174
+ const key = stableStringify(inner);
175
+ if (seen.has(key)) {
176
+ throw new ValidationError(`Batch: RawTransactions[${index}] is a duplicate of a previous inner transaction`);
177
+ }
178
+ seen.add(key);
179
+ });
180
+ // ── BatchSigners ── optional; if present, validate fully.
181
+ if (props.BatchSigners !== undefined) {
182
+ if (!isArray(props.BatchSigners)) {
183
+ throw new ValidationError('Batch: BatchSigners must be an array');
184
+ }
185
+ if (props.BatchSigners.length > MAX_BATCH_SIGNERS) {
186
+ throw new ValidationError(`Batch: BatchSigners must contain at most ${MAX_BATCH_SIGNERS} entries (found ${props.BatchSigners.length})`);
187
+ }
188
+ const seenAccounts = [];
189
+ props.BatchSigners.forEach((signerWrapper, index) => {
190
+ if (!isRecord(signerWrapper)) {
191
+ throw new ValidationError(`Batch: BatchSigners[${index}] is not an object`);
192
+ }
193
+ const signer = signerWrapper['BatchSigner'];
194
+ if (!isRecord(signer)) {
195
+ throw new ValidationError(`Batch: BatchSigners[${index}] is missing the 'BatchSigner' key`);
196
+ }
197
+ // Account required, must be a valid XRPL address.
198
+ const acct = signer['Account'];
199
+ if (!isString(acct) || !isAccount(acct)) {
200
+ throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.Account is required and must be a valid XRPL account address`);
201
+ }
202
+ // Outer Account may not appear here (XLS-56 §2.3.3.2).
203
+ if (acct === props.Account) {
204
+ throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.Account must not equal the outer Account (the outer signer is implicit)`);
205
+ }
206
+ // Strictly ascending by Account; no duplicates (XLS-56 §2.1.3).
207
+ for (const prior of seenAccounts) {
208
+ if (prior >= acct) {
209
+ throw new ValidationError(`Batch: BatchSigners must be sorted in strictly ascending order by Account (BatchSigners[${index}] out of order)`);
210
+ }
211
+ }
212
+ seenAccounts.push(acct);
213
+ // Single-sign XOR multi-sign exclusivity
214
+ // (XLS-56 §2.1.3: "Either ... or ...").
215
+ const hasSigningPubKey = signer['SigningPubKey'] !== undefined &&
216
+ signer['SigningPubKey'] !== null;
217
+ const hasTxnSignature = signer['TxnSignature'] !== undefined &&
218
+ signer['TxnSignature'] !== null;
219
+ const hasSigners = signer['Signers'] !== undefined &&
220
+ signer['Signers'] !== null;
221
+ // Single-sign requires both SigningPubKey and TxnSignature;
222
+ // multi-sign uses Signers only. Mixing is forbidden.
223
+ if (hasSigningPubKey !== hasTxnSignature) {
224
+ throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner single-sign form requires both SigningPubKey and TxnSignature (or neither — use Signers for multi-sign)`);
225
+ }
226
+ if (hasSigners && (hasSigningPubKey || hasTxnSignature)) {
227
+ throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner cannot mix single-sign fields with Signers`);
228
+ }
229
+ if (!hasSigners && !hasSigningPubKey && !hasTxnSignature) {
230
+ throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner must carry either (SigningPubKey + TxnSignature) or Signers`);
231
+ }
232
+ // Field type checks (mirror xrpl.js models/batch.ts:151-162).
233
+ if (hasSigningPubKey && !isString(signer['SigningPubKey'])) {
234
+ throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.SigningPubKey must be a string`);
235
+ }
236
+ if (hasTxnSignature && !isString(signer['TxnSignature'])) {
237
+ throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.TxnSignature must be a string`);
238
+ }
239
+ if (hasSigners && !isArray(signer['Signers'])) {
240
+ throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.Signers must be an array`);
241
+ }
242
+ });
243
+ }
244
+ return buildFrozenTx('Batch', props, {
245
+ validate() {
246
+ // Validated at construction.
247
+ },
248
+ toJSON() {
249
+ const json = {};
250
+ for (const k of Object.keys(this)) {
251
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
252
+ continue;
253
+ const v = this[k];
254
+ if (v !== undefined)
255
+ json[k] = v;
256
+ }
257
+ return json;
258
+ },
259
+ with(overrides) {
260
+ return batch(mergeForWith(this, overrides));
261
+ },
262
+ });
263
+ }
264
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/fp/factories/batch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface CheckCancelProps {
2
+ /** The transaction submitter (the Check source, destination, or any
3
+ * address if the Check has expired). */
4
+ Account: string;
5
+ /** The ID of the Check ledger object to cancel (UInt256, 64-char hex,
6
+ * must not be all-zeros). */
7
+ CheckID: string;
8
+ /** Bit-flags for this transaction. CheckCancel has no defined
9
+ * flags; only `tfFullyCanonicalSig` (global) is meaningful. Accepted
10
+ * for parity with the base tx shape. */
11
+ Flags?: number | undefined;
12
+ Fee?: string | undefined;
13
+ Sequence?: number | undefined;
14
+ }
15
+ export interface CheckCancel extends Readonly<CheckCancelProps> {
16
+ readonly TransactionType: 'CheckCancel';
17
+ validate(): void;
18
+ toJSON(): Record<string, unknown>;
19
+ with(overrides: Partial<CheckCancelProps>): CheckCancel;
20
+ }
21
+ export declare function checkCancel(props: CheckCancelProps): CheckCancel;
22
+ //# sourceMappingURL=check-cancel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-cancel.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/check-cancel.ts"],"names":[],"mappings":"AAwFA,MAAM,WAAW,gBAAgB;IAC/B;6CACyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB;kCAC8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB;;6CAEyC;IACzC,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,WAAY,SAAQ,QAAQ,CAAC,gBAAgB,CAAC;IAC7D,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC;IACxC,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC;CACzD;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CA+ChE"}