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,250 @@
1
+ /**
2
+ * Functional SignerListSet factory — frozen-object style.
3
+ *
4
+ * Create, replace, or remove a list of signers that can be used to
5
+ * multi-sign transactions on the ledger.
6
+ *
7
+ * import { signerListSet } from 'xrplt/fp';
8
+ * const tx = signerListSet({
9
+ * Account,
10
+ * SignerQuorum: 3,
11
+ * SignerEntries: [
12
+ * { SignerEntry: { Account: SIGNER_A, SignerWeight: 2 } },
13
+ * { SignerEntry: { Account: SIGNER_B, SignerWeight: 1 } },
14
+ * ],
15
+ * });
16
+ * const j = tx.toJSON();
17
+ * const tx2 = tx.with({ Fee: '12', Sequence: 42 });
18
+ *
19
+ * To **delete** a signer list, omit `SignerEntries` and pass
20
+ * `SignerQuorum: 0`. xrpl.org: "To delete a signer list, you must set
21
+ * `SignerQuorum` to `0` _and_ omit the `SignerEntries` field.
22
+ * Otherwise, the transaction fails with the error `temMALFORMED`."
23
+ *
24
+ * @see https://xrpl.org/docs/references/protocol/transactions/types/signerlistset
25
+ * @see https://xrpl.org/docs/references/protocol/ledger-data/ledger-entry-types/signerlist
26
+ * @see xrpl.js `validateSignerListSet` — packages/xrpl/src/models/transactions/signerListSet.ts
27
+ *
28
+ * ## Divergences
29
+ *
30
+ * The factory implements the canonical XRPL SignerListSet shape from
31
+ * xrpl.org + rippled + xrpl.js, which is a strict superset of the
32
+ * current class API at `src/transactions/signer-list-set.ts`. The class
33
+ * is a thin skeleton — it only checks `SignerQuorum` is a number and
34
+ * that `SignerEntries` (when present) is an array of `SignerEntry`
35
+ * objects. It does NOT enforce any of the ledger-level guardrails
36
+ * below, so malformed transactions currently sail through class
37
+ * validation and only fail at the ledger with `temMALFORMED` /
38
+ * `temBAD_QUORUM` / `temBAD_SIGNER` / `temBAD_WEIGHT`. Concretely:
39
+ *
40
+ * 1. **`SignerEntries` is required when `SignerQuorum > 0`.**
41
+ * xrpl.js `validateSignerListSet.ts:53-62` short-circuits on
42
+ * `tx.SignerQuorum === 0`, but for any non-zero quorum it then
43
+ * runs `validateRequiredField(tx, 'SignerEntries', isArray)` and
44
+ * rejects an empty array with `'SignerListSet: need at least 1
45
+ * member in SignerEntries'`. xrpl.org
46
+ * (`docs/.../signerlistset.md` Fields table) says the list "must
47
+ * have at least 1 member and no more than 32 members". The class
48
+ * does not enforce either rule.
49
+ *
50
+ * 2. **`SignerEntries` cap is 32 members.** xrpl.js throws
51
+ * `'SignerListSet: maximum of 32 members allowed in
52
+ * SignerEntries'` when `tx.SignerEntries.length > MAX_SIGNERS =
53
+ * 32` (xrpl.js `signerListSet.ts:64-68`). rippled enforces the
54
+ * same cap via `temMALFORMED`. The class does not check length.
55
+ *
56
+ * 3. **`SignerWeight` must be a positive integer.**
57
+ * xrpl.js does not check the SignerWeight value itself, but the
58
+ * rippled `SignerListSet` preflight raises `temBAD_WEIGHT` when
59
+ * any `SignerWeight` is zero or negative
60
+ * (`xrpl-dev-portal/.../tem-codes.md`: "The SignerListSet
61
+ * transaction includes a SignerWeight that is invalid, for
62
+ * example a zero or negative value."). The factory rejects
63
+ * non-integer, zero, and negative weights at construction.
64
+ * The class only checks `isNumber(entry['SignerWeight'])`, which
65
+ * accepts `-1` and `0`.
66
+ *
67
+ * 4. **`SignerQuorum` must be in `[1, sum(SignerWeights)]`.**
68
+ * xrpl.org (`signerlistset.md`): "The `SignerQuorum` must be
69
+ * greater than 0 but less than or equal to the sum of the
70
+ * `SignerWeight` values in the list. Otherwise, the transaction
71
+ * fails with the error `temMALFORMED`." rippled raises
72
+ * `temBAD_QUORUM` (tem-codes.md: "Either the value is not greater
73
+ * than zero, or it is more than the sum of all signers in the
74
+ * list."). The factory rejects `SignerQuorum > sumWeight` at
75
+ * construction. Note: the SignerQuorum === 0 deletion path is
76
+ * still permitted when `SignerEntries` is omitted — that is
77
+ * explicitly allowed by rippled (see #1 above).
78
+ *
79
+ * 5. **Each `SignerEntry.Account` must be a valid XRPL address.**
80
+ * The class accepts any string (`isString(entry['Account'])`),
81
+ * which lets malformed addresses through. rippled rejects with
82
+ * `temMALFORMED` ("...malformed address..."). The factory runs
83
+ * `isAccount()` per entry.
84
+ *
85
+ * 6. **No duplicate `SignerEntry.Account` values.** xrpl.org
86
+ * (`signerlistset.md`): "No address may appear more than once in
87
+ * the list". rippled raises `temBAD_SIGNER` (tem-codes.md:
88
+ * "there may be duplicate entries..."). The factory enforces
89
+ * uniqueness via a `Set` and rejects duplicates. The class does
90
+ * not check.
91
+ *
92
+ * 7. **`SignerEntry.Account` must not equal the sending `Account`.**
93
+ * xrpl.org (`signerlistset.md`): "nor may the `Account`
94
+ * submitting the transaction appear in the list". rippled raises
95
+ * `temBAD_SIGNER`. The factory rejects the sending account as
96
+ * one of its own signers at construction. The class does not
97
+ * check.
98
+ *
99
+ * 8. **`WalletLocator`, when present, must be a 256-bit (32-byte)
100
+ * hex string.** xrpl.js enforces `HEX_WALLET_LOCATOR_REGEX =
101
+ * /^[0-9A-Fa-f]{64}$/u` (xrpl.js `signerListSet.ts:39, 78-86`)
102
+ * and rejects non-hex or wrong-length values. The factory mirrors
103
+ * this regex.
104
+ *
105
+ * 9. **`Account` is validated as a classic/X-address via
106
+ * `isAccount`, not just as a non-empty string.** The class
107
+ * delegates `Account` to the base class's
108
+ * `validateBaseTransaction`, which only requires
109
+ * `typeof Account === 'string'` (`src/validation/base.ts:36-42`).
110
+ * The factory is consistent with all other fp factories.
111
+ */
112
+ import { isAccount, isNumber, isString } from '../../validation/helpers.js';
113
+ import { ValidationError } from '../../errors.js';
114
+ import { buildFrozenTx, mergeForWith, require } from '../shape.js';
115
+ // ─── Spec constants ──────────────────────────────────────────────────
116
+ /**
117
+ * Maximum number of `SignerEntry` entries in a single SignerListSet
118
+ * transaction. Mirrors xrpl.js `MAX_SIGNERS`.
119
+ *
120
+ * @see xrpl.js `signerListSet.ts:37`
121
+ * @see rippled `SignerListSet` preflight
122
+ */
123
+ const MAX_SIGNERS = 32;
124
+ /**
125
+ * `WalletLocator` is a 256-bit (32-byte) hex value. Mirrors xrpl.js
126
+ * `HEX_WALLET_LOCATOR_REGEX`.
127
+ *
128
+ * @see xrpl.js `signerListSet.ts:39`
129
+ */
130
+ const HEX_WALLET_LOCATOR_REGEX = /^[0-9A-Fa-f]{64}$/u;
131
+ // ─── Factory ─────────────────────────────────────────────────────────
132
+ export function signerListSet(props) {
133
+ // ── Account ── required, must be a valid XRPL classic or X-address.
134
+ require(props.Account, 'SignerListSet: missing or invalid Account', isAccount);
135
+ // ── SignerQuorum ── required, must be a number. Range and zero-
136
+ // branch handling come after we've decided whether the tx is a
137
+ // create/replace (Signers present) or a delete (Quorum === 0).
138
+ require(props.SignerQuorum, 'SignerListSet: missing or invalid SignerQuorum', isNumber);
139
+ // ── Deletion path: SignerQuorum === 0 must NOT have SignerEntries.
140
+ // xrpl.org: "To delete a signer list, you must set SignerQuorum
141
+ // to 0 AND omit the SignerEntries field. Otherwise, the
142
+ // transaction fails with the error temMALFORMED."
143
+ if (props.SignerQuorum === 0) {
144
+ if (props.SignerEntries !== undefined && props.SignerEntries.length > 0) {
145
+ throw new ValidationError('SignerListSet: SignerQuorum must be > 0 when SignerEntries are present');
146
+ }
147
+ // Deletion path is otherwise complete — no SignerEntries validation.
148
+ return buildFrozenTx('SignerListSet', props, {
149
+ validate() {
150
+ // Validated at construction.
151
+ },
152
+ toJSON() {
153
+ const json = {};
154
+ for (const k of Object.keys(this)) {
155
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
156
+ continue;
157
+ const v = this[k];
158
+ if (v !== undefined)
159
+ json[k] = v;
160
+ }
161
+ return json;
162
+ },
163
+ with(overrides) {
164
+ return signerListSet(mergeForWith(this, overrides));
165
+ },
166
+ });
167
+ }
168
+ // ── Non-zero quorum: SignerEntries is required.
169
+ if (!Array.isArray(props.SignerEntries)) {
170
+ throw new ValidationError('SignerListSet: missing or invalid SignerEntries (array required when SignerQuorum > 0)');
171
+ }
172
+ if (props.SignerEntries.length === 0) {
173
+ throw new ValidationError('SignerListSet: need at least 1 member in SignerEntries');
174
+ }
175
+ if (props.SignerEntries.length > MAX_SIGNERS) {
176
+ throw new ValidationError(`SignerListSet: maximum of ${MAX_SIGNERS} members allowed in SignerEntries (actual: ${props.SignerEntries.length})`);
177
+ }
178
+ // ── SignerEntries ── shape, weight range, account format,
179
+ // uniqueness, owner-not-in-list.
180
+ let weightSum = 0;
181
+ const seenAccounts = new Set();
182
+ for (let i = 0; i < props.SignerEntries.length; i++) {
183
+ const entry = props.SignerEntries[i];
184
+ if (entry === null || typeof entry !== 'object' || Array.isArray(entry)) {
185
+ throw new ValidationError(`SignerListSet: SignerEntries[${i}] must be an object with a SignerEntry field`);
186
+ }
187
+ const inner = entry['SignerEntry'];
188
+ if (inner === null ||
189
+ typeof inner !== 'object' ||
190
+ Array.isArray(inner)) {
191
+ throw new ValidationError(`SignerListSet: SignerEntries[${i}].SignerEntry must be an object`);
192
+ }
193
+ const acc = inner['Account'];
194
+ if (!isAccount(acc)) {
195
+ throw new ValidationError(`SignerListSet: SignerEntries[${i}].SignerEntry.Account must be a valid XRPL address`);
196
+ }
197
+ // ── Owner-in-list guard ── rippled temBAD_SIGNER.
198
+ if (acc === props.Account) {
199
+ throw new ValidationError(`SignerListSet: SignerEntries[${i}].SignerEntry.Account must not equal the sending Account (temBAD_SIGNER)`);
200
+ }
201
+ // ── Duplicate-account guard ── rippled temBAD_SIGNER.
202
+ if (seenAccounts.has(acc)) {
203
+ throw new ValidationError(`SignerListSet: duplicate signer Account in SignerEntries (${acc}) (temBAD_SIGNER)`);
204
+ }
205
+ seenAccounts.add(acc);
206
+ const weight = inner['SignerWeight'];
207
+ if (!isNumber(weight) ||
208
+ !Number.isInteger(weight) ||
209
+ weight < 1) {
210
+ throw new ValidationError(`SignerListSet: SignerEntries[${i}].SignerEntry.SignerWeight must be a positive integer (temBAD_WEIGHT)`);
211
+ }
212
+ weightSum += weight;
213
+ // ── WalletLocator ── optional, must be 64-char hex if present.
214
+ const locator = inner['WalletLocator'];
215
+ if (locator !== undefined) {
216
+ if (!isString(locator) ||
217
+ !HEX_WALLET_LOCATOR_REGEX.test(locator)) {
218
+ throw new ValidationError(`SignerListSet: SignerEntries[${i}].SignerEntry.WalletLocator must be a 256-bit (32-byte) hexadecimal value`);
219
+ }
220
+ }
221
+ }
222
+ // ── SignerQuorum cap: 1 <= Quorum <= sum(SignerWeights).
223
+ // xrpl.org "must be greater than 0 but less than or equal to
224
+ // the sum of the SignerWeight values in the list. Otherwise,
225
+ // the transaction fails with temMALFORMED." (mirrored by
226
+ // rippled's temBAD_QUORUM).
227
+ if (props.SignerQuorum > weightSum) {
228
+ throw new ValidationError(`SignerListSet: SignerQuorum (${props.SignerQuorum}) must not exceed the sum of SignerWeights (${weightSum}) (temBAD_QUORUM)`);
229
+ }
230
+ return buildFrozenTx('SignerListSet', props, {
231
+ validate() {
232
+ // Validated at construction.
233
+ },
234
+ toJSON() {
235
+ const json = {};
236
+ for (const k of Object.keys(this)) {
237
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
238
+ continue;
239
+ const v = this[k];
240
+ if (v !== undefined)
241
+ json[k] = v;
242
+ }
243
+ return json;
244
+ },
245
+ with(overrides) {
246
+ return signerListSet(mergeForWith(this, overrides));
247
+ },
248
+ });
249
+ }
250
+ //# sourceMappingURL=signer-list-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer-list-set.js","sourceRoot":"","sources":["../../../src/fp/factories/signer-list-set.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Functional SponsorshipSet factory — frozen-object style.
3
+ *
4
+ * Creates, updates, or deletes a `Sponsorship` ledger entry that defines a
5
+ * fee-and-reserve sponsorship relationship between two accounts. Validation
6
+ * happens at construction; there is no way to construct an invalid tx.
7
+ *
8
+ * import { sponsorshipSet } from 'xrplt/fp';
9
+ * // Create (sponsor allocates a 5-reserve budget to the sponsee)
10
+ * const tx = sponsorshipSet({
11
+ * Account: SPONSOR,
12
+ * Sponsee: SPONSEE,
13
+ * RemainingOwnerCountDelta: 5,
14
+ * FeeAmountDelta: '1000000',
15
+ * });
16
+ * // Sponsee deletes via CounterpartySponsor (only valid with tfDeleteObject)
17
+ * const tx2 = sponsorshipSet({
18
+ * Account: SPONSEE,
19
+ * CounterpartySponsor: SPONSOR,
20
+ * Flags: SponsorshipSetFlags.tfDeleteObject,
21
+ * });
22
+ * const j = tx.toJSON();
23
+ * const tx3 = tx.with({ MaxFee: '1000' });
24
+ *
25
+ * Affected amendments:
26
+ * - `Sponsor` (base SponsorshipSet)
27
+ *
28
+ * @see https://xrpl.org/docs/references/protocol/transactions/types/sponsorshipset
29
+ * @see xrpl.js `validateSponsorshipSet`
30
+ * (`~/.mavis/docs.local/xrpl.js/repo/packages/xrpl/src/models/transactions/sponsorshipSet.ts`)
31
+ *
32
+ * ## Divergences
33
+ *
34
+ * The factory enforces six preclaim rules that the class API
35
+ * (`src/transactions/sponsorship-set.ts`) skips. Each one is mandated by
36
+ * the Sponsor amendment / `validateSponsorshipSet`.
37
+ *
38
+ * 1. `CounterpartySponsor` may only be supplied with `tfDeleteObject`.
39
+ * Source: xrpl-dev-portal `sponsorshipset.md` Error Cases table —
40
+ * `temMALFORMED`: "Both `CounterpartySponsor` and `Sponsee` are
41
+ * specified." and the in-C++ preflight (`SponsorshipSet.cpp`) which
42
+ * enforces "`CounterpartySponsor` implies tfDeleteObject".
43
+ * xrpl.js `validateSponsorshipSet` (lines 304–308) enforces this; the
44
+ * class does not.
45
+ *
46
+ * 2. With `tfDeleteObject`, none of `FeeAmountDelta`, `MaxFee`, or
47
+ * `RemainingOwnerCountDelta` may be supplied.
48
+ * Source: xrpl-dev-portal `sponsorshipset.md` Error Cases table —
49
+ * `temMALFORMED`: "The `tfDeleteObject` flag is enabled and
50
+ * `FeeAmountDelta`, `MaxFee`, or `RemainingOwnerCountDelta` is
51
+ * specified."
52
+ * xrpl.js `validateSponsorshipSet` (lines 310–326) enforces this; the
53
+ * class does not.
54
+ *
55
+ * 3. `Account` must not equal `Sponsee` (and must not equal
56
+ * `CounterpartySponsor`).
57
+ * Source: xrpl-dev-portal `sponsorshipset.md` Error Cases table —
58
+ * `temMALFORMED`: "The sponsor and sponsee are the same account."
59
+ * xrpl.js `validateSponsorshipSet` (lines 244–248 and 266–273)
60
+ * enforces both via `areAddressesEqual`; the class does not.
61
+ *
62
+ * 4. `FeeAmountDelta` must be a strictly canonical signed integer string
63
+ * (no leading zeros beyond "0" itself; no whitespace; no scientific
64
+ * notation; no decimals). `-0` and `007` and `1.5` are all rejected.
65
+ * Source: xrpl.js `SIGNED_INTEGER_SANITY_CHECK` regex
66
+ * `^-?(?:0|[1-9][0-9]*)$/u` (`sponsorshipSet.ts` line 19). The class
67
+ * only checks `isString(FeeAmountDelta)`.
68
+ *
69
+ * 5. `MaxFee` must be a strictly canonical non-negative integer string
70
+ * (no leading zeros, no whitespace, no scientific notation, no
71
+ * decimals).
72
+ * Source: xrpl.js `INTEGER_SANITY_CHECK` regex
73
+ * `^(?:0|[1-9][0-9]*)$/u` (used at `sponsorshipSet.ts` line 358) and
74
+ * xrpl-dev-portal `sponsorshipset.md` Error Cases table —
75
+ * `temBAD_AMOUNT`: "`MaxFee` is negative or not denominated in XRP."
76
+ * The class only checks `isString(MaxFee)`.
77
+ *
78
+ * 6. `RemainingOwnerCountDelta` must be an integer in `[INT32_MIN,
79
+ * INT32_MAX]` (no fractional values, no overflow). A value of `0` is
80
+ * rejected.
81
+ * Source: xrpl-dev-portal `sponsorshipset.md` Error Cases table —
82
+ * `temINVALID`: "`RemainingOwnerCountDelta` value is zero" and
83
+ * `tecLIMIT_EXCEEDED`: "`Sponsorship.RemainingOwnerCount` exceeds
84
+ * the maximum value of an unsigned 32-bit integer." The class only
85
+ * checks `typeof === 'number'` and `=== 0`.
86
+ *
87
+ * 7. When not deleting, at least one of `FeeAmountDelta`,
88
+ * `RemainingOwnerCountDelta`, `MaxFee`, or a `RequireSignFor*` flag
89
+ * must be supplied.
90
+ * Source: xrpl.js `validateSponsorshipSet` (lines 398–408) and the
91
+ * xrpl-dev-portal sponsorshipset spec ("A sponsorship entry must keep
92
+ * at least some fee budget or reserve budget. … the transaction
93
+ * fails"). The class does not check this; passing only `Sponsee` (or
94
+ * only `CounterpartySponsor` plus `tfDeleteObject`) would be
95
+ * accepted locally and rejected by the ledger with `temMALFORMED` /
96
+ * `temEMPTY_DEST`.
97
+ *
98
+ * Note: the factory is the **only** place that validates
99
+ * `Sponsee`/`CounterpartySponsor` against `Account` for the
100
+ * "sponsee cannot create or modify" rule. The class lets you build a tx
101
+ * with `Account = sponsee`, `Sponsee = sponsor` and no delete flag, which
102
+ * the ledger will reject with `temMALFORMED`. The factory catches that at
103
+ * construction time by combining checks 1 and 3.
104
+ */
105
+ import type { SponsorshipSetFlagsInterface } from '../../types/flags.js';
106
+ export interface SponsorshipSetProps {
107
+ /** The unique address of the transaction sender (must be the sponsor). */
108
+ Account: string;
109
+ /** The sponsee to sponsor. If present, Account is the sponsor. */
110
+ Sponsee?: string | undefined;
111
+ /**
112
+ * The sponsor's address. Identifies the sponsor when the sponsee
113
+ * (`Account`) is submitting the transaction. Only valid together with
114
+ * `tfDeleteObject`; the sponsee cannot create or modify a Sponsorship,
115
+ * only delete one.
116
+ */
117
+ CounterpartySponsor?: string | undefined;
118
+ /**
119
+ * A signed delta (in drops of XRP) to apply to the sponsorship's fee
120
+ * allocation. Positive tops up the budget the sponsee can draw on for
121
+ * transaction fees; negative draws it down. Must not be zero.
122
+ */
123
+ FeeAmountDelta?: string | undefined;
124
+ /**
125
+ * The maximum fee (in drops of XRP) the sponsor is willing to pay per
126
+ * transaction on behalf of the sponsee. Replaces (not adds to) the
127
+ * current value. Must be a non-negative integer string of drops.
128
+ */
129
+ MaxFee?: string | undefined;
130
+ /**
131
+ * A signed delta to apply to `Sponsorship.RemainingOwnerCount` (the
132
+ * number of reserve units the sponsor agrees to cover). Positive to
133
+ * add coverage, negative to reduce it. Must be a non-zero integer.
134
+ */
135
+ RemainingOwnerCountDelta?: number | undefined;
136
+ /** Bit-flags for this transaction. */
137
+ Flags?: number | SponsorshipSetFlagsInterface | undefined;
138
+ Fee?: string | undefined;
139
+ Sequence?: number | undefined;
140
+ }
141
+ export interface SponsorshipSet extends Readonly<SponsorshipSetProps> {
142
+ readonly TransactionType: 'SponsorshipSet';
143
+ validate(): void;
144
+ toJSON(): Record<string, unknown>;
145
+ with(overrides: Partial<SponsorshipSetProps>): SponsorshipSet;
146
+ }
147
+ export declare function sponsorshipSet(props: SponsorshipSetProps): SponsorshipSet;
148
+ //# sourceMappingURL=sponsorship-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sponsorship-set.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/sponsorship-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuGG;AACH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AA6BzE,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,GAAG,4BAA4B,GAAG,SAAS,CAAC;IAC1D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ,CAAC,mBAAmB,CAAC;IACnE,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,cAAc,CAAC;CAC/D;AAiED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAyMzE"}
@@ -0,0 +1,201 @@
1
+ import { SponsorshipSetFlags } from '../../types/flags.js';
2
+ import { isAccount, isRecord, isString } from '../../validation/helpers.js';
3
+ import { ValidationError } from '../../errors.js';
4
+ import { buildFrozenTx, mergeForWith, require } from '../shape.js';
5
+ // ─── Spec constants ──────────────────────────────────────────────────
6
+ // Matches an optionally negative, canonical integer string (no whitespace,
7
+ // scientific notation, decimals, or leading zeros other than "0" itself).
8
+ // Mirrors xrpl.js `SIGNED_INTEGER_SANITY_CHECK`.
9
+ const SIGNED_INTEGER_SANITY_CHECK = /^-?(?:0|[1-9][0-9]*)$/u;
10
+ // Matches a non-negative canonical integer string.
11
+ const INTEGER_SANITY_CHECK = /^(?:0|[1-9][0-9]*)$/u;
12
+ // INT32 range per the SponsorshipSet spec (`tecLIMIT_EXCEEDED`).
13
+ const INT32_MIN = -2_147_483_648;
14
+ const INT32_MAX = 2_147_483_647;
15
+ // Bitmask covering every "modify" flag (RequireSignFor* set/clear). These
16
+ // conflict with tfDeleteObject per the spec (`temINVALID_FLAG`).
17
+ const SPONSORSHIP_SET_MODIFY_FLAGS = SponsorshipSetFlags.tfSponsorshipSetRequireSignForFee |
18
+ SponsorshipSetFlags.tfSponsorshipClearRequireSignForFee |
19
+ SponsorshipSetFlags.tfSponsorshipSetRequireSignForReserve |
20
+ SponsorshipSetFlags.tfSponsorshipClearRequireSignForReserve;
21
+ // ─── Helpers ─────────────────────────────────────────────────────────
22
+ /**
23
+ * Extract flag booleans from a transaction's `Flags` field, handling both
24
+ * the numeric bitmask form and the boolean-map form. Mirrors
25
+ * xrpl.js `getSponsorshipSetFlags` (sponsorshipSet.ts lines 156–209) but
26
+ * without the `isDelete` decision (we return it directly).
27
+ */
28
+ function getFlags(rawFlags) {
29
+ let flagsValue = 0;
30
+ let hasModifyFlag = false;
31
+ let hasFeeSignConflict = false;
32
+ let hasReserveSignConflict = false;
33
+ if (typeof rawFlags === 'number') {
34
+ flagsValue = rawFlags;
35
+ hasModifyFlag = (rawFlags & SPONSORSHIP_SET_MODIFY_FLAGS) !== 0;
36
+ hasFeeSignConflict =
37
+ (rawFlags &
38
+ SponsorshipSetFlags.tfSponsorshipSetRequireSignForFee) !==
39
+ 0 &&
40
+ (rawFlags &
41
+ SponsorshipSetFlags.tfSponsorshipClearRequireSignForFee) !== 0;
42
+ hasReserveSignConflict =
43
+ (rawFlags &
44
+ SponsorshipSetFlags.tfSponsorshipSetRequireSignForReserve) !==
45
+ 0 &&
46
+ (rawFlags &
47
+ SponsorshipSetFlags.tfSponsorshipClearRequireSignForReserve) !==
48
+ 0;
49
+ }
50
+ else if (isRecord(rawFlags)) {
51
+ if (rawFlags['tfDeleteObject'] === true) {
52
+ flagsValue = SponsorshipSetFlags.tfDeleteObject;
53
+ }
54
+ hasModifyFlag = Boolean(rawFlags['tfSponsorshipSetRequireSignForFee'] ||
55
+ rawFlags['tfSponsorshipClearRequireSignForFee'] ||
56
+ rawFlags['tfSponsorshipSetRequireSignForReserve'] ||
57
+ rawFlags['tfSponsorshipClearRequireSignForReserve']);
58
+ hasFeeSignConflict = Boolean(rawFlags['tfSponsorshipSetRequireSignForFee'] === true &&
59
+ rawFlags['tfSponsorshipClearRequireSignForFee'] === true);
60
+ hasReserveSignConflict = Boolean(rawFlags['tfSponsorshipSetRequireSignForReserve'] === true &&
61
+ rawFlags['tfSponsorshipClearRequireSignForReserve'] === true);
62
+ }
63
+ const isDelete = (flagsValue & SponsorshipSetFlags.tfDeleteObject) !== 0;
64
+ return { isDelete, hasModifyFlag, hasFeeSignConflict, hasReserveSignConflict };
65
+ }
66
+ // ─── Factory ─────────────────────────────────────────────────────────
67
+ export function sponsorshipSet(props) {
68
+ // ── Account ── required, must be a valid XRPL classic or X-address.
69
+ require(props.Account, 'SponsorshipSet: Account is required', isAccount);
70
+ // ── Sponsee / CounterpartySponsor ── exactly one of the two must
71
+ // be present.
72
+ const hasSponsee = props.Sponsee !== undefined;
73
+ const hasCounterpartySponsor = props.CounterpartySponsor !== undefined;
74
+ if (!hasSponsee && !hasCounterpartySponsor) {
75
+ throw new ValidationError('SponsorshipSet: must specify either Sponsee or CounterpartySponsor');
76
+ }
77
+ if (hasSponsee && hasCounterpartySponsor) {
78
+ throw new ValidationError('SponsorshipSet: cannot specify both Sponsee and CounterpartySponsor');
79
+ }
80
+ // ── Sponsee ── string + valid account + identity check vs Account.
81
+ if (hasSponsee) {
82
+ if (!isString(props.Sponsee)) {
83
+ throw new ValidationError('SponsorshipSet: Sponsee must be a string');
84
+ }
85
+ if (props.Sponsee === props.Account) {
86
+ throw new ValidationError('SponsorshipSet: Account and Sponsee cannot be the same');
87
+ }
88
+ if (!isAccount(props.Sponsee)) {
89
+ throw new ValidationError('SponsorshipSet: Sponsee must be a valid account address');
90
+ }
91
+ }
92
+ // ── CounterpartySponsor ── string + valid account + identity check.
93
+ if (hasCounterpartySponsor) {
94
+ if (!isString(props.CounterpartySponsor)) {
95
+ throw new ValidationError('SponsorshipSet: CounterpartySponsor must be a string');
96
+ }
97
+ if (props.CounterpartySponsor === props.Account) {
98
+ throw new ValidationError('SponsorshipSet: Account and CounterpartySponsor cannot be the same');
99
+ }
100
+ if (!isAccount(props.CounterpartySponsor)) {
101
+ throw new ValidationError('SponsorshipSet: CounterpartySponsor must be a valid account address');
102
+ }
103
+ }
104
+ const { isDelete, hasModifyFlag, hasFeeSignConflict, hasReserveSignConflict, } = getFlags(props.Flags);
105
+ // ── Flag pair conflicts ── both Set+Clear on the same RequireSignFor*
106
+ // dimension are invalid (`temINVALID_FLAG`).
107
+ if (hasFeeSignConflict) {
108
+ throw new ValidationError('SponsorshipSet: cannot set both tfSponsorshipSetRequireSignForFee and tfSponsorshipClearRequireSignForFee');
109
+ }
110
+ if (hasReserveSignConflict) {
111
+ throw new ValidationError('SponsorshipSet: cannot set both tfSponsorshipSetRequireSignForReserve and tfSponsorshipClearRequireSignForReserve');
112
+ }
113
+ // ── Sponsee-only-create-or-modify rule ── a sponsee cannot
114
+ // create/modify a Sponsorship, only delete one. So
115
+ // CounterpartySponsor is only valid with tfDeleteObject.
116
+ if (hasCounterpartySponsor && !isDelete) {
117
+ throw new ValidationError('SponsorshipSet: CounterpartySponsor can only be used with tfDeleteObject (only the sponsor can create or modify a Sponsorship)');
118
+ }
119
+ // ── tfDeleteObject constraints ── no modify flags, no data deltas.
120
+ if (isDelete) {
121
+ if (hasModifyFlag) {
122
+ throw new ValidationError('SponsorshipSet: cannot set RequireSignForFee/RequireSignForReserve flags together with tfDeleteObject');
123
+ }
124
+ if (props.FeeAmountDelta !== undefined ||
125
+ props.RemainingOwnerCountDelta !== undefined ||
126
+ props.MaxFee !== undefined) {
127
+ throw new ValidationError('SponsorshipSet: cannot include FeeAmountDelta, RemainingOwnerCountDelta, or MaxFee together with tfDeleteObject');
128
+ }
129
+ }
130
+ // ── FeeAmountDelta ── signed delta, strict integer string, non-zero.
131
+ if (props.FeeAmountDelta !== undefined) {
132
+ if (!isString(props.FeeAmountDelta)) {
133
+ throw new ValidationError('SponsorshipSet: FeeAmountDelta must be a string');
134
+ }
135
+ if (!SIGNED_INTEGER_SANITY_CHECK.test(props.FeeAmountDelta)) {
136
+ throw new ValidationError('SponsorshipSet: FeeAmountDelta must be a numeric string');
137
+ }
138
+ // BigInt so "-0" parses to 0n and is caught here.
139
+ if (BigInt(props.FeeAmountDelta) === BigInt(0)) {
140
+ throw new ValidationError('SponsorshipSet: FeeAmountDelta must not be zero');
141
+ }
142
+ }
143
+ // ── MaxFee ── unsigned, strict non-negative integer string.
144
+ if (props.MaxFee !== undefined) {
145
+ if (!isString(props.MaxFee)) {
146
+ throw new ValidationError('SponsorshipSet: MaxFee must be a string');
147
+ }
148
+ if (!INTEGER_SANITY_CHECK.test(props.MaxFee)) {
149
+ throw new ValidationError('SponsorshipSet: MaxFee must be a non-negative numeric string');
150
+ }
151
+ }
152
+ // ── RemainingOwnerCountDelta ── integer, non-zero, INT32 range.
153
+ if (props.RemainingOwnerCountDelta !== undefined) {
154
+ if (typeof props.RemainingOwnerCountDelta !== 'number') {
155
+ throw new ValidationError('SponsorshipSet: RemainingOwnerCountDelta must be a number');
156
+ }
157
+ if (!Number.isInteger(props.RemainingOwnerCountDelta)) {
158
+ throw new ValidationError('SponsorshipSet: RemainingOwnerCountDelta must be an integer');
159
+ }
160
+ if (props.RemainingOwnerCountDelta === 0) {
161
+ throw new ValidationError('SponsorshipSet: RemainingOwnerCountDelta must not be zero');
162
+ }
163
+ if (props.RemainingOwnerCountDelta > INT32_MAX ||
164
+ props.RemainingOwnerCountDelta < INT32_MIN) {
165
+ throw new ValidationError(`SponsorshipSet: RemainingOwnerCountDelta must be between ${INT32_MIN} and ${INT32_MAX}`);
166
+ }
167
+ }
168
+ // ── At-least-one-mutable-field rule (when not deleting) ──
169
+ // "A sponsorship entry must keep at least some fee budget or
170
+ // reserve budget." (xrpl-dev-portal `sponsorshipset.md`).
171
+ // This matches xrpl.js `validateSponsorshipSet` (lines 398–408) and
172
+ // is the canonical preclaim check; the class skips it.
173
+ if (!isDelete) {
174
+ if (props.FeeAmountDelta === undefined &&
175
+ props.RemainingOwnerCountDelta === undefined &&
176
+ props.MaxFee === undefined &&
177
+ !hasModifyFlag) {
178
+ throw new ValidationError('SponsorshipSet: must specify at least one of FeeAmountDelta, RemainingOwnerCountDelta, MaxFee, or a RequireSignFor flag');
179
+ }
180
+ }
181
+ return buildFrozenTx('SponsorshipSet', props, {
182
+ validate() {
183
+ // Validated at construction.
184
+ },
185
+ toJSON() {
186
+ const json = {};
187
+ for (const k of Object.keys(this)) {
188
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
189
+ continue;
190
+ const v = this[k];
191
+ if (v !== undefined)
192
+ json[k] = v;
193
+ }
194
+ return json;
195
+ },
196
+ with(overrides) {
197
+ return sponsorshipSet(mergeForWith(this, overrides));
198
+ },
199
+ });
200
+ }
201
+ //# sourceMappingURL=sponsorship-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sponsorship-set.js","sourceRoot":"","sources":["../../../src/fp/factories/sponsorship-set.ts"],"names":[],"mappings":"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"}