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,135 @@
1
+ import { isAccount, isHex, isNumber, isString } from '../../validation/helpers.js';
2
+ import { ValidationError } from '../../errors.js';
3
+ import { buildFrozenTx, mergeForWith, require } from '../shape.js';
4
+ // ─── Spec constants ──────────────────────────────────────────────────
5
+ // Maximum allowed transfer fee in basis points (0.000% — 50.000%).
6
+ const MAX_TRANSFER_FEE = 50_000;
7
+ // Maximum amount per the current spec (2^63 - 1, encoded as a base-10 string).
8
+ const MAX_ISSUANCE_AMOUNT = '9223372036854775807';
9
+ // Maximum encoded metadata length in bytes.
10
+ const MAX_METADATA_BYTES = 1024;
11
+ // Bitmask of all known `tif*` bits (used to validate `ImmutableFlags`).
12
+ // Mirrors the values defined in `MPTokenImmutableFlags` (src/types/flags.ts).
13
+ const KNOWN_IMMUTABLE_FLAG_BITS = 0x00000002 | // tifMPTCanLock
14
+ 0x00000004 | // tifMPTRequireAuth
15
+ 0x00000008 | // tifMPTCanEscrow
16
+ 0x00000010 | // tifMPTCanTrade
17
+ 0x00000020 | // tifMPTCanTransfer
18
+ 0x00000040 | // tifMPTCanClawback
19
+ 0x00000080 | // tifMPTCanHoldConfidentialBalance
20
+ 0x00010000 | // tifMPTMetadata
21
+ 0x00020000; // tifMPTTransferFee
22
+ // Capable-flag bitmask for `tfMPTCanTransfer` (gates non-zero TransferFee).
23
+ const TF_MPT_CAN_TRANSFER = 0x00000020;
24
+ // Capable-flag bitmask for `tfMPTRequireAuth` (gates DomainID).
25
+ const TF_MPT_REQUIRE_AUTH = 0x00000004;
26
+ // ─── Factory ─────────────────────────────────────────────────────────
27
+ /**
28
+ * Build a frozen MPTokenIssuanceCreate. Throws ValidationError on
29
+ * construction if fields are missing or malformed.
30
+ *
31
+ * The class-based version validates lazily (caller must invoke
32
+ * `.validate()`); this functional version validates at construction.
33
+ * There is no way to build an invalid tx — `with()` re-runs the factory,
34
+ * so overrides are re-validated too.
35
+ */
36
+ export function mptokenIssuanceCreate(props) {
37
+ // ─── Account ─── required, must be a valid XRPL address (empty
38
+ // strings and invalid formats fail the regex inside isAccount).
39
+ require(props.Account, 'MPTokenIssuanceCreate: Account is required', isAccount);
40
+ // Numeric flags for cross-field gating. When the caller supplies a
41
+ // boolean-map `Flags` object, we treat it as "no flag bits set" for the
42
+ // purpose of bitwise checks — same policy as the class version, which
43
+ // only inspects numeric flags for the gating rules below.
44
+ const flags = (typeof props.Flags === 'number' ? props.Flags : 0);
45
+ // ─── TransferFee ───
46
+ if (props.TransferFee !== undefined) {
47
+ if (!isNumber(props.TransferFee)) {
48
+ throw new ValidationError('MPTokenIssuanceCreate: TransferFee must be a number');
49
+ }
50
+ if (props.TransferFee < 0 || props.TransferFee > MAX_TRANSFER_FEE) {
51
+ throw new ValidationError(`MPTokenIssuanceCreate: TransferFee must be in [0, ${MAX_TRANSFER_FEE}]`);
52
+ }
53
+ if (props.TransferFee !== 0 && (flags & TF_MPT_CAN_TRANSFER) === 0) {
54
+ throw new ValidationError('MPTokenIssuanceCreate: non-zero TransferFee requires tfMPTCanTransfer flag');
55
+ }
56
+ }
57
+ // ─── MaximumAmount ───
58
+ if (props.MaximumAmount !== undefined) {
59
+ if (!isString(props.MaximumAmount)) {
60
+ throw new ValidationError('MPTokenIssuanceCreate: MaximumAmount must be a string');
61
+ }
62
+ if (props.MaximumAmount === '0') {
63
+ throw new ValidationError('MPTokenIssuanceCreate: MaximumAmount must be > 0');
64
+ }
65
+ // BigInt throws SyntaxError on invalid integer strings; we wrap that
66
+ // in ValidationError but DO NOT swallow our own out-of-range errors.
67
+ let n;
68
+ try {
69
+ n = BigInt(props.MaximumAmount);
70
+ }
71
+ catch (e) {
72
+ if (e instanceof SyntaxError) {
73
+ throw new ValidationError('MPTokenIssuanceCreate: MaximumAmount must be a base-10 integer string');
74
+ }
75
+ throw e;
76
+ }
77
+ const max = BigInt(MAX_ISSUANCE_AMOUNT);
78
+ if (n > max) {
79
+ throw new ValidationError(`MPTokenIssuanceCreate: MaximumAmount must be <= ${MAX_ISSUANCE_AMOUNT}`);
80
+ }
81
+ }
82
+ // ─── MPTokenMetadata ───
83
+ if (props.MPTokenMetadata !== undefined) {
84
+ if (!isString(props.MPTokenMetadata) || !isHex(props.MPTokenMetadata)) {
85
+ throw new ValidationError('MPTokenIssuanceCreate: MPTokenMetadata must be a hex string');
86
+ }
87
+ const lenBytes = props.MPTokenMetadata.length / 2;
88
+ if (lenBytes === 0 || lenBytes > MAX_METADATA_BYTES) {
89
+ throw new ValidationError(`MPTokenIssuanceCreate: MPTokenMetadata length must be in (0, ${MAX_METADATA_BYTES}] bytes`);
90
+ }
91
+ }
92
+ // ─── DomainID ───
93
+ // The class treats empty string and "0" as "not set" and skips the
94
+ // flag check in those cases. Mirror that behavior exactly.
95
+ if (props.DomainID !== undefined &&
96
+ props.DomainID !== '' &&
97
+ props.DomainID !== '0') {
98
+ if ((flags & TF_MPT_REQUIRE_AUTH) === 0) {
99
+ throw new ValidationError('MPTokenIssuanceCreate: DomainID requires tfMPTRequireAuth flag');
100
+ }
101
+ }
102
+ // ─── ImmutableFlags ───
103
+ if (props.ImmutableFlags !== undefined) {
104
+ if (!isNumber(props.ImmutableFlags)) {
105
+ throw new ValidationError('MPTokenIssuanceCreate: ImmutableFlags must be a number');
106
+ }
107
+ if (props.ImmutableFlags === 0) {
108
+ throw new ValidationError('MPTokenIssuanceCreate: ImmutableFlags must be non-zero when present');
109
+ }
110
+ if ((props.ImmutableFlags & ~KNOWN_IMMUTABLE_FLAG_BITS) !== 0) {
111
+ throw new ValidationError('MPTokenIssuanceCreate: ImmutableFlags contains undefined bits');
112
+ }
113
+ }
114
+ // ─── Build frozen shape ───
115
+ return buildFrozenTx('MPTokenIssuanceCreate', props, {
116
+ validate() {
117
+ // Construction-time validation is the contract.
118
+ },
119
+ toJSON() {
120
+ const json = {};
121
+ for (const k of Object.keys(this)) {
122
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
123
+ continue;
124
+ const v = this[k];
125
+ if (v !== undefined)
126
+ json[k] = v;
127
+ }
128
+ return json;
129
+ },
130
+ with(overrides) {
131
+ return mptokenIssuanceCreate(mergeForWith(this, overrides));
132
+ },
133
+ });
134
+ }
135
+ //# sourceMappingURL=mptoken-issuance-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mptoken-issuance-create.js","sourceRoot":"","sources":["../../../src/fp/factories/mptoken-issuance-create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface MptokenIssuanceDestroyProps {
2
+ /** The unique address of the transaction sender (must be the MPT issuer). */
3
+ Account: string;
4
+ /**
5
+ * The id of the MPTokenIssuance ledger entry to remove. UINT192 —
6
+ * exactly 48 hex chars; must not be all-zero.
7
+ */
8
+ MPTokenIssuanceID: string;
9
+ /** Bit-flags for this transaction. The spec defines none — must be 0. */
10
+ Flags?: number | undefined;
11
+ /** Fee in XRP (drops), base-10 integer string. */
12
+ Fee?: string | undefined;
13
+ /** Account sequence number. */
14
+ Sequence?: number | undefined;
15
+ }
16
+ export interface MptokenIssuanceDestroy extends Readonly<MptokenIssuanceDestroyProps> {
17
+ readonly TransactionType: 'MPTokenIssuanceDestroy';
18
+ validate(): void;
19
+ toJSON(): Record<string, unknown>;
20
+ with(overrides: Partial<MptokenIssuanceDestroyProps>): MptokenIssuanceDestroy;
21
+ }
22
+ /**
23
+ * Build a frozen MPTokenIssuanceDestroy. Throws ValidationError on
24
+ * construction if fields are missing or malformed.
25
+ *
26
+ * The class-based version validates lazily (caller must invoke
27
+ * `.validate()`); this functional version validates at construction.
28
+ * There is no way to build an invalid tx — `with()` re-runs the factory,
29
+ * so overrides are re-validated too.
30
+ */
31
+ export declare function mptokenIssuanceDestroy(props: MptokenIssuanceDestroyProps): MptokenIssuanceDestroy;
32
+ //# sourceMappingURL=mptoken-issuance-destroy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mptoken-issuance-destroy.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/mptoken-issuance-destroy.ts"],"names":[],"mappings":"AAmEA,MAAM,WAAW,2BAA2B;IAC1C,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,sBACf,SAAQ,QAAQ,CAAC,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;IACnD,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,sBAAsB,CAAC;CAC/E;AAID;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,CAgDxB"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Functional MPTokenIssuanceDestroy factory — frozen-object style.
3
+ *
4
+ * Permanently removes an MPTokenIssuance ledger entry. Only the issuer
5
+ * of the MPT can submit this transaction, and only if no holders have
6
+ * non-zero balances. Validation happens at construction; there is no
7
+ * way to construct an invalid tx.
8
+ *
9
+ * import { mptokenIssuanceDestroy } from 'xrplt/fp';
10
+ * const tx = mptokenIssuanceDestroy({ Account, MPTokenIssuanceID });
11
+ * const j = tx.toJSON();
12
+ *
13
+ * Affected amendments:
14
+ * - `MPTokensV1` — base MPTokenIssuanceDestroy.
15
+ *
16
+ * @see https://xrpl.org/docs/references/protocol/transactions/types/mptokenissuancedestroy
17
+ * @see XLS-0033 §3.2 (Transaction: `MPTokenIssuanceDestroy`)
18
+ * in `~/.mavis/docs.local/xrpl-standards/repo/XLS-0033-multi-purpose-tokens/README.md`
19
+ * @see ripple-binary-codec `definitions.json`:
20
+ * `MPTokenIssuanceDestroy: [ { name: "MPTokenIssuanceID", optionality: 0 } ]`
21
+ * (transaction type id 55; only required field is `MPTokenIssuanceID`).
22
+ *
23
+ * ## Divergences
24
+ *
25
+ * The factory enforces three preclaim checks that the class API
26
+ * (`src/transactions/mptoken-issuance-destroy.ts`) and xrpl.js both skip:
27
+ *
28
+ * 1. `MPTokenIssuanceID` must be a 48-character hex string (24 bytes /
29
+ * UINT192). The class only calls `isString(this.MPTokenIssuanceID)`,
30
+ * so any string passes — including malformed or wrong-length values.
31
+ * The ripple-binary-codec serializer requires exactly 24 bytes.
32
+ * Source: XLS-0033 §3.2.1 (`MPTokenIssuanceID` — `UINT192`);
33
+ * ripple-binary-codec `definitions.json`
34
+ * (`MPTokenIssuanceDestroy` field schema).
35
+ *
36
+ * 2. `MPTokenIssuanceID` must NOT be the all-zeros UINT192 value.
37
+ * A 48-char string of zeros would otherwise pass the hex+length
38
+ * check. The spec does not assign ledger entries an all-zero id;
39
+ * rippled would reject this with `temMALFORMED` at submit time.
40
+ * Source: XLS-0033 §2.1.1.1 (MPTokenIssuanceID derivation —
41
+ * contains a 4-byte sequence plus a 20-byte AccountID, so
42
+ * an all-zero value cannot be a valid issuance id);
43
+ * analogue with XLS-66 §3.4.3.1 (HASH256 zero rejection).
44
+ *
45
+ * 3. `Account` is validated as a classic/X-address via `isAccount`,
46
+ * not just as a non-empty string. The class API delegates Account
47
+ * checking to the base class's `validateBaseTransaction`, which
48
+ * only requires `typeof Account === 'string'`. The factory is
49
+ * consistent with other MPT factories (`mptokenIssuanceCreate`,
50
+ * `loanBrokerDelete`).
51
+ * Source: `src/validation/base.ts` (validateBaseTransaction —
52
+ * only `isString(Account)`); `src/fp/factories/
53
+ * mptoken-issuance-create.ts` precedent.
54
+ */
55
+ import { isAccount, isHex, isString } from '../../validation/helpers.js';
56
+ import { ValidationError } from '../../errors.js';
57
+ import { buildFrozenTx, mergeForWith, require } from '../shape.js';
58
+ // ─── Spec constants ──────────────────────────────────────────────────
59
+ // UINT192 = 192 bits = 24 bytes = 48 hex chars.
60
+ const MP_TOKEN_ISSUANCE_ID_LENGTH = 48;
61
+ // All-zeros UINT192 — never a valid MPTokenIssuanceID.
62
+ const MP_TOKEN_ISSUANCE_ID_ZERO = '0'.repeat(MP_TOKEN_ISSUANCE_ID_LENGTH);
63
+ // ─── Factory ─────────────────────────────────────────────────────────
64
+ /**
65
+ * Build a frozen MPTokenIssuanceDestroy. Throws ValidationError on
66
+ * construction if fields are missing or malformed.
67
+ *
68
+ * The class-based version validates lazily (caller must invoke
69
+ * `.validate()`); this functional version validates at construction.
70
+ * There is no way to build an invalid tx — `with()` re-runs the factory,
71
+ * so overrides are re-validated too.
72
+ */
73
+ export function mptokenIssuanceDestroy(props) {
74
+ // ── Account ── required, must be a valid XRPL classic or X-address.
75
+ require(props.Account, 'MPTokenIssuanceDestroy: Account is required', isAccount);
76
+ // ── MPTokenIssuanceID ── required, 48-char hex (UINT192), non-zero.
77
+ if (!isString(props.MPTokenIssuanceID) ||
78
+ !isHex(props.MPTokenIssuanceID) ||
79
+ props.MPTokenIssuanceID.length !== MP_TOKEN_ISSUANCE_ID_LENGTH) {
80
+ throw new ValidationError(`MPTokenIssuanceDestroy: MPTokenIssuanceID must be a ${MP_TOKEN_ISSUANCE_ID_LENGTH}-character hex string (UINT192)`);
81
+ }
82
+ if (props.MPTokenIssuanceID === MP_TOKEN_ISSUANCE_ID_ZERO) {
83
+ throw new ValidationError('MPTokenIssuanceDestroy: MPTokenIssuanceID must not be zero');
84
+ }
85
+ return buildFrozenTx('MPTokenIssuanceDestroy', props, {
86
+ validate() {
87
+ // Validated at construction.
88
+ },
89
+ toJSON() {
90
+ const json = {};
91
+ for (const k of Object.keys(this)) {
92
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
93
+ continue;
94
+ const v = this[k];
95
+ if (v !== undefined)
96
+ json[k] = v;
97
+ }
98
+ return json;
99
+ },
100
+ with(overrides) {
101
+ return mptokenIssuanceDestroy(mergeForWith(this, overrides));
102
+ },
103
+ });
104
+ }
105
+ //# sourceMappingURL=mptoken-issuance-destroy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mptoken-issuance-destroy.js","sourceRoot":"","sources":["../../../src/fp/factories/mptoken-issuance-destroy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEnE,wEAAwE;AAExE,gDAAgD;AAChD,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,uDAAuD;AACvD,MAAM,yBAAyB,GAAG,GAAG,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;AA4B1E,wEAAwE;AAExE;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAkC;IAElC,qEAAqE;IACrE,OAAO,CACL,KAAK,CAAC,OAAO,EACb,6CAA6C,EAC7C,SAAS,CACV,CAAC;IAEF,qEAAqE;IACrE,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAClC,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC/B,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,2BAA2B,EAC9D,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,uDAAuD,2BAA2B,iCAAiC,CACpH,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,yBAAyB,EAAE,CAAC;QAC1D,MAAM,IAAI,eAAe,CACvB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAClB,wBAAwB,EACxB,KAAK,EACL;QACE,QAAQ;YACN,6BAA6B;QAC/B,CAAC;QACD,MAAM;YACJ,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,MAAM;oBAAE,SAAS;gBACjE,MAAM,CAAC,GAAI,IAA2C,CAAC,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,SAAS;oBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAEF,SAA+C;YAE/C,OAAO,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/D,CAAC;KACF,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Functional MPTokenIssuanceSet factory — frozen-object style.
3
+ *
4
+ * Updates the mutable properties of an existing Multi-Purpose Token
5
+ * (MPT) issuance. Supports per-holder or global lock/unlock, capability
6
+ * flag enabling (`tfMPTSet*`), field updates (TransferFee,
7
+ * MPTokenMetadata, ImmutableFlags, encryption keys), and DomainID
8
+ * binding. Validation happens at construction; there is no way to
9
+ * construct an invalid tx.
10
+ *
11
+ * import { mptokenIssuanceSet } from 'xrplt/fp';
12
+ * const tx = mptokenIssuanceSet({
13
+ * Account: ISSUER,
14
+ * MPTokenIssuanceID,
15
+ * Flags: { tfMPTLock: true },
16
+ * });
17
+ * const j = tx.toJSON();
18
+ * const tx2 = tx.with({ TransferFee: 50 });
19
+ *
20
+ * Affected amendments:
21
+ * - `MPTokensV1` — base transaction.
22
+ * - `DynamicMPT` — adds TransferFee / MPTokenMetadata /
23
+ * ImmutableFlags / `tfMPTSet*` capability flags.
24
+ * - `PermissionedDomains + SingleAssetVault` — adds `DomainID`.
25
+ * - `ConfidentialTransfer` — adds encryption keys +
26
+ * `tfMPTSetCanHoldConfidentialBalance`.
27
+ *
28
+ * @see https://xrpl.org/docs/references/protocol/transactions/types/mptokenissuanceset
29
+ * @see XLS-0033 §3.3 (MPTokenIssuanceSet Transaction)
30
+ * in `~/.mavis/docs.local/xrpl-standards/repo/XLS-0033-multi-purpose-tokens/README.md`
31
+ *
32
+ * ## Divergences
33
+ *
34
+ * The class-based API at `src/transactions/mptoken-issuance-set.ts` and
35
+ * xrpl.js's `validateMPTokenIssuanceSet` are missing seven rules that
36
+ * the canonical sources require. The factory fills them:
37
+ *
38
+ * 1. `Account` is validated as a classic/X-address via `isAccount`.
39
+ * The class delegates Account validation to its `Transaction`
40
+ * base, which only requires `typeof === 'string'`. A malformed
41
+ * Account passes class validation and only fails at submit time
42
+ * with `temINVALID_ACCOUNT`. The factory validates the format at
43
+ * construction.
44
+ * Source: xrpl.js `validateBaseTransaction`
45
+ * (`~/.mavis/docs.local/xrpl.js/repo/packages/xrpl/src/models/transactions/common.ts:987`)
46
+ * — only `isString(Account)`.
47
+ * Source: local `isAccount` at `src/validation/helpers.ts:55–60`.
48
+ *
49
+ * 2. `MPTokenIssuanceID` must be a 48-character hex `UInt192`, and
50
+ * must not be all-zero. xrpl.js only checks `isString`; the class
51
+ * only checks `isString`. Wrong-length, non-hex, and all-zero
52
+ * values all pass.
53
+ * Source: XLS-0033 §3.3.1 (`MPTokenIssuanceID` Internal Type:
54
+ * `UINT192`); ripple-binary-codec `definitions.json`
55
+ * (`~/.mavis/docs.local/xrpl.js/repo/packages/ripple-binary-codec/src/enums/definitions.json`)
56
+ * line 6093–6125 (`MPTokenIssuanceID` declared required
57
+ * for `MPTokenIssuanceSet`).
58
+ *
59
+ * 3. `Holder` must differ from `Account`.
60
+ * xrpl.js `validateMPTokenIssuanceSet` (lines 245–249) throws on
61
+ * this; the class does not. The spec Error Cases table lists
62
+ * `temMALFORMED` — "You specified the same account for both
63
+ * `Account` and `Holder`" — so we treat this as a hard guard.
64
+ * Source: xrpl-dev-portal `mptokenissuanceset.md`
65
+ * (`~/.mavis/docs.local/xrpl-dev-portal/repo/docs/references/protocol/transactions/types/mptokenissuanceset.md`)
66
+ * Error Cases — `temMALFORMED` clause "same account for
67
+ * both `Account` and `Holder`".
68
+ *
69
+ * 4. `tfMPTLock` and `tfMPTUnlock` cannot coexist with non-zero
70
+ * `TransferFee` combined with `tfMPTSetCanHoldConfidentialBalance`.
71
+ * The class only checks Lock/Unlock mutual exclusivity plus a
72
+ * loose field-update incompatibility; it does NOT enforce the
73
+ * `temBAD_TRANSFER_FEE` pairing "non-zero TransferFee together
74
+ * with `tfMPTSetCanHoldConfidentialBalance`".
75
+ * Source: xrpl-dev-portal `mptokenissuanceset.md` Error Cases —
76
+ * `temBAD_TRANSFER_FEE` clause "A non-zero `TransferFee`
77
+ * is set in the same transaction that enables
78
+ * confidential balances with
79
+ * `tfMPTSetCanHoldConfidentialBalance`".
80
+ * Source: xrpl.js `validateMPTokenIssuanceSet` (lines 299–311) —
81
+ * throws `MPTokenIssuanceSet: TransferFee cannot be
82
+ * provided together with the
83
+ * tfMPTSetCanHoldConfidentialBalance flag`.
84
+ *
85
+ * 5. The transaction must actually mutate state.
86
+ * If no flags are set AND `DomainID` is absent AND no mutation
87
+ * field is present AND no encryption keys are set, the tx is a
88
+ * no-op and should be rejected with `temMALFORMED` per the spec.
89
+ * The class does not enforce this — the empty `MPTokenIssuanceSet`
90
+ * passes class validation.
91
+ * Source: xrpl-dev-portal `mptokenissuanceset.md` Error Cases —
92
+ * `temMALFORMED` clause "The transaction isn't changing
93
+ * anything; it must either update a flag or modify the
94
+ * DomainID."
95
+ * Source: xrpl.js `validateMPTokenIssuanceSet` (lines 261–270) —
96
+ * throws when `flagsNum === 0 && DomainID == null &&
97
+ * !isMutate && !isSetConfidentialKeys`.
98
+ *
99
+ * 6. Encryption key field-pairing with `IssuerEncryptionKey`.
100
+ * The class checks "Auditor requires Issuer" but does NOT enforce
101
+ * that both encryption keys are 33-byte (66 hex-char) compressed
102
+ * EC points. xrpl.js uses `isHexWithByteLength(CONFIDENTIAL_EC_POINT_BYTES)`
103
+ * (lines 195–203). Malformed keys would only fail at submit time.
104
+ * The factory enforces both the pair rule AND the byte-length
105
+ * shape.
106
+ * Source: xrpl.js `validateMPTokenIssuanceSet` (lines 195–208);
107
+ * xrpl.js `common.ts:35` — `CONFIDENTIAL_EC_POINT_BYTES = 33`;
108
+ * xrpl-dev-portal `mptokenissuanceset.md` Error Cases —
109
+ * `temMALFORMED` clause "The `IssuerEncryptionKey` or
110
+ * `AuditorEncryptionKey` is not a valid 33-byte compressed
111
+ * public key".
112
+ *
113
+ * 7. The `Flags` boolean-map shape is validated.
114
+ * The class's `MPTokenIssuanceSetFlagsInterface` documents the
115
+ * allowed set, but neither the class nor xrpl.js's
116
+ * `validateMPTokenIssuanceSet` rejects unknown boolean keys (e.g.
117
+ * `tfNotARealFlag: true`). The factory checks every key on a
118
+ * boolean-map `Flags` against the closed set of known flags.
119
+ * Source: xrpl.js `MPTokenIssuanceSetFlagsInterface`
120
+ * (`~/.mavis/docs.local/xrpl.js/repo/packages/xrpl/src/models/transactions/MPTokenIssuanceSet.ts`)
121
+ * lines 100–123.
122
+ */
123
+ import type { MPTokenIssuanceSetFlagsInterface } from '../../types/flags.js';
124
+ export interface MptokenIssuanceSetProps {
125
+ /** The issuer of the MPT issuance (the transaction sender). */
126
+ Account: string;
127
+ /** The ID of the MPTokenIssuance to update. UINT192 (24 bytes / 48 hex chars). */
128
+ MPTokenIssuanceID: string;
129
+ /**
130
+ * Optional holder address. If omitted, the operation applies globally
131
+ * to all holders of the issuance. Cannot be the same as `Account`.
132
+ */
133
+ Holder?: string | undefined;
134
+ /**
135
+ * Optional 64-char hex permissioned domain ID. Empty string / '0'
136
+ * clears the domain. Requires `tfMPTRequireAuth` flag on this tx
137
+ * (a local proxy for the issuance's existing flag state).
138
+ */
139
+ DomainID?: string | undefined;
140
+ /**
141
+ * Issuer's 33-byte compressed EC-ElGamal public key (66 hex chars).
142
+ * Required (when `ConfidentialTransfer` is active) to register the
143
+ * issuer for confidential transfers.
144
+ */
145
+ IssuerEncryptionKey?: string | undefined;
146
+ /**
147
+ * Optional auditor's 33-byte compressed EC-ElGamal public key (66 hex
148
+ * chars). Requires `IssuerEncryptionKey` to be set in the same tx.
149
+ */
150
+ AuditorEncryptionKey?: string | undefined;
151
+ /**
152
+ * New metadata in hex format. Replaces the existing value. Setting an
153
+ * empty string (`''`) clears the field; otherwise 0 < length/2 ≤ 1024.
154
+ */
155
+ MPTokenMetadata?: string | undefined;
156
+ /**
157
+ * New transfer fee in basis points. UInt16 per spec (0..50000).
158
+ * Setting to zero clears the field.
159
+ */
160
+ TransferFee?: number | undefined;
161
+ /**
162
+ * Bitmask declaring which fields / capability flags become immutable.
163
+ * Non-zero when present; uses only known `tif*` bits.
164
+ */
165
+ ImmutableFlags?: number | undefined;
166
+ /**
167
+ * Optional bit-flags. Either a numeric bitmask or a boolean-map
168
+ * shape. When a map is supplied, keys must be a member of the closed
169
+ * set defined by `MPTokenIssuanceSetFlagsInterface`.
170
+ */
171
+ Flags?: number | MPTokenIssuanceSetFlagsInterface | undefined;
172
+ /** Fee in XRP (drops), base-10 integer string. */
173
+ Fee?: string | undefined;
174
+ /** Account sequence number. */
175
+ Sequence?: number | undefined;
176
+ }
177
+ export interface MptokenIssuanceSet extends Readonly<MptokenIssuanceSetProps> {
178
+ readonly TransactionType: 'MPTokenIssuanceSet';
179
+ /** No-op: validation already happened at construction. */
180
+ validate(): void;
181
+ /** Serialize to a plain object matching `xrpl.js` input shape. */
182
+ toJSON(): Record<string, unknown>;
183
+ /** Derive a new MptokenIssuanceSet with overrides applied; re-validates. */
184
+ with(overrides: Partial<MptokenIssuanceSetProps>): MptokenIssuanceSet;
185
+ }
186
+ /**
187
+ * Build a frozen MPTokenIssuanceSet. Throws ValidationError on
188
+ * construction if fields are missing or malformed.
189
+ *
190
+ * The class-based version validates lazily (caller must invoke
191
+ * `.validate()`); this functional version validates at construction.
192
+ * There is no way to build an invalid tx — `with()` re-runs the
193
+ * factory, so overrides are re-validated too.
194
+ */
195
+ export declare function mptokenIssuanceSet(props: MptokenIssuanceSetProps): MptokenIssuanceSet;
196
+ //# sourceMappingURL=mptoken-issuance-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mptoken-issuance-set.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/mptoken-issuance-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyHG;AACH,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAuG7E,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,gCAAgC,GAAG,SAAS,CAAC;IAC9D,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,kBACf,SAAQ,QAAQ,CAAC,uBAAuB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAC/C,0DAA0D;IAC1D,QAAQ,IAAI,IAAI,CAAC;IACjB,kEAAkE;IAClE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,4EAA4E;IAC5E,IAAI,CACF,SAAS,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC1C,kBAAkB,CAAC;CACvB;AAqED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,CAiSpB"}