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,230 @@
1
+ import { isAccount, isAmount, isFlagEnabled, isHex, isIssuedCurrencyAmount, isMPTAmount, isNumber, isRecord, isString, } from '../../validation/helpers.js';
2
+ import { ValidationError } from '../../errors.js';
3
+ import { buildFrozenTx, mergeForWith, require } from '../shape.js';
4
+ // ─── Spec constants ──────────────────────────────────────────────────
5
+ // OfferCreate flag bits (per xrpl-dev-portal offercreate.md and
6
+ // xrpl.js OfferCreateFlags enum).
7
+ const TF_PASSIVE = 0x00010000;
8
+ const TF_IMMEDIATE_OR_CANCEL = 0x00020000;
9
+ const TF_FILL_OR_KILL = 0x00040000;
10
+ const TF_SELL = 0x00080000;
11
+ const TF_HYBRID = 0x00100000;
12
+ // UInt32 bounds (per xrpl-dev-portal offercreate.md Fields table).
13
+ const UINT32_MIN = 0;
14
+ const UINT32_MAX = 0xffffffff;
15
+ // Currency code shapes (per xrpl.org generic Amount spec).
16
+ const CURRENCY_ASCII_LENGTH = 3;
17
+ const CURRENCY_HEX_LENGTH = 40;
18
+ // MPT issuance IDs are 192-bit, hex-encoded (≤ 48 chars). We accept
19
+ // 24–48 to leave slack for future widenings / leading-zero encoders.
20
+ // (XLS-0033; matches the policy used by ammCreate and vaultClawback.)
21
+ const MPT_ISSUANCE_ID_MIN = 24;
22
+ const MPT_ISSUANCE_ID_MAX = 48;
23
+ // DomainID is a 64-char hex (UInt256).
24
+ const DOMAIN_ID_LENGTH = 64;
25
+ // ─── Helpers ─────────────────────────────────────────────────────────
26
+ /**
27
+ * XRPLNumber: a non-negative base-10 integer string. Matches the policy
28
+ * used across other factories (loanSet, ammCreate, vaultCreate,
29
+ * vaultClawback).
30
+ */
31
+ function isXrplNumber(value) {
32
+ return isString(value) && /^[0-9]+$/u.test(value);
33
+ }
34
+ /**
35
+ * True iff the given Amount is a positive amount (currency string for
36
+ * XRP, IssuedCurrencyAmount, or MPTAmount).
37
+ */
38
+ function isPositiveAmount(amount, path) {
39
+ if (!isAmount(amount)) {
40
+ throw new ValidationError(`OfferCreate: ${path} must be a valid Amount (XRP string, IOU, or MPT form)`);
41
+ }
42
+ // XRP path: positive base-10 integer string.
43
+ if (isString(amount)) {
44
+ if (!isXrplNumber(amount)) {
45
+ throw new ValidationError(`OfferCreate: ${path} (XRP) must be a non-negative base-10 integer string`);
46
+ }
47
+ if (amount === '0') {
48
+ throw new ValidationError(`OfferCreate: ${path} must be a positive amount (got "0")`);
49
+ }
50
+ return;
51
+ }
52
+ // IOU path.
53
+ if (isIssuedCurrencyAmount(amount)) {
54
+ const ccy = amount.currency;
55
+ if (ccy.length !== CURRENCY_ASCII_LENGTH &&
56
+ ccy.length !== CURRENCY_HEX_LENGTH) {
57
+ throw new ValidationError(`OfferCreate: ${path}.currency must be ${CURRENCY_ASCII_LENGTH} ASCII characters or ${CURRENCY_HEX_LENGTH} hex characters (actual: ${ccy.length})`);
58
+ }
59
+ if (ccy.length === CURRENCY_HEX_LENGTH && !isHex(ccy)) {
60
+ throw new ValidationError(`OfferCreate: ${path}.currency (40-char form) must be hex`);
61
+ }
62
+ if (!isAccount(amount.issuer)) {
63
+ throw new ValidationError(`OfferCreate: ${path}.issuer must be a valid XRPL account address`);
64
+ }
65
+ if (!isXrplNumber(amount.value)) {
66
+ throw new ValidationError(`OfferCreate: ${path}.value must be a non-negative base-10 integer string`);
67
+ }
68
+ if (amount.value === '0') {
69
+ throw new ValidationError(`OfferCreate: ${path} must be a positive amount (got "0")`);
70
+ }
71
+ return;
72
+ }
73
+ // MPT path.
74
+ if (isMPTAmount(amount)) {
75
+ const mptid = amount.mpt_issuance_id;
76
+ if (mptid.length < MPT_ISSUANCE_ID_MIN ||
77
+ mptid.length > MPT_ISSUANCE_ID_MAX ||
78
+ !isHex(mptid)) {
79
+ throw new ValidationError(`OfferCreate: ${path}.mpt_issuance_id must be a ${MPT_ISSUANCE_ID_MIN}-${MPT_ISSUANCE_ID_MAX} character hex string`);
80
+ }
81
+ if (!isXrplNumber(amount.value)) {
82
+ throw new ValidationError(`OfferCreate: ${path}.value must be a non-negative base-10 integer string`);
83
+ }
84
+ if (amount.value === '0') {
85
+ throw new ValidationError(`OfferCreate: ${path} must be a positive amount (got "0")`);
86
+ }
87
+ return;
88
+ }
89
+ // Unreachable — defensive.
90
+ throw new ValidationError(`OfferCreate: ${path} must be a valid Amount (XRP string, IOU, or MPT form)`);
91
+ }
92
+ /**
93
+ * True if the two amounts trade the same currency. Used to reject
94
+ * XRP-for-XRP and same-IOU-for-same-IOU offers.
95
+ */
96
+ function isSameCurrency(a, b) {
97
+ // XRP-for-XRP.
98
+ if (isString(a) && isString(b))
99
+ return true;
100
+ // IOU-for-IOU with matching currency and issuer.
101
+ if (isIssuedCurrencyAmount(a) && isIssuedCurrencyAmount(b)) {
102
+ return a.currency === b.currency && a.issuer === b.issuer;
103
+ }
104
+ // MPT-for-MPT with matching mpt_issuance_id.
105
+ if (isMPTAmount(a) && isMPTAmount(b)) {
106
+ return a.mpt_issuance_id === b.mpt_issuance_id;
107
+ }
108
+ // Mixed forms (XRP/IOU/MPT) are different currencies.
109
+ return false;
110
+ }
111
+ /**
112
+ * Decode the bit-set for a numeric Flags value, returning the names of
113
+ * each known tfHybrid / tfFillOrKill / tfImmediateOrCancel / tfPassive /
114
+ * tfSell bit. Unknown bits are ignored — rippled will reject them, but
115
+ * we don't second-guess the flag schema here.
116
+ */
117
+ function decodeOfferCreateFlags(flags) {
118
+ return {
119
+ hybrid: isFlagEnabled(flags, TF_HYBRID),
120
+ fillOrKill: isFlagEnabled(flags, TF_FILL_OR_KILL),
121
+ immediateOrCancel: isFlagEnabled(flags, TF_IMMEDIATE_OR_CANCEL),
122
+ passive: isFlagEnabled(flags, TF_PASSIVE),
123
+ sell: isFlagEnabled(flags, TF_SELL),
124
+ };
125
+ }
126
+ /**
127
+ * Decode the bit-set for a FlagsInterface object. Returns the same
128
+ * shape as `decodeOfferCreateFlags` for uniform downstream checks.
129
+ */
130
+ function decodeOfferCreateFlagsInterface(flags) {
131
+ return {
132
+ hybrid: flags.tfHybrid === true,
133
+ fillOrKill: flags.tfFillOrKill === true,
134
+ immediateOrCancel: flags.tfImmediateOrCancel === true,
135
+ passive: flags.tfPassive === true,
136
+ sell: flags.tfSell === true,
137
+ };
138
+ }
139
+ // ─── Factory ─────────────────────────────────────────────────────────
140
+ export function offerCreate(props) {
141
+ // ── Account ── required, must be a valid XRPL classic / X-address.
142
+ require(props.Account, 'OfferCreate: Account is required', isAccount);
143
+ // ── TakerGets / TakerPays ── required, must be a strictly positive Amount.
144
+ isPositiveAmount(props.TakerGets, 'TakerGets');
145
+ isPositiveAmount(props.TakerPays, 'TakerPays');
146
+ // ── Cross-field: must not trade the same currency for itself.
147
+ // (xrpl-dev-portal offercreate.md Error Cases: temBAD_OFFER
148
+ // "The offer tries to trade XRP for XRP" + temREDUNDANT
149
+ // "The transaction would trade a token for the same token".)
150
+ if (isSameCurrency(props.TakerGets, props.TakerPays)) {
151
+ throw new ValidationError('OfferCreate: TakerGets and TakerPays must not be the same currency');
152
+ }
153
+ // ── Expiration ── optional UInt32.
154
+ if (props.Expiration !== undefined) {
155
+ if (!isNumber(props.Expiration) ||
156
+ !Number.isInteger(props.Expiration) ||
157
+ props.Expiration < UINT32_MIN ||
158
+ props.Expiration > UINT32_MAX) {
159
+ throw new ValidationError(`OfferCreate: Expiration must be a UInt32 in [${UINT32_MIN}, ${UINT32_MAX}] (seconds since the Ripple Epoch)`);
160
+ }
161
+ }
162
+ // ── OfferSequence ── optional UInt32, must be ≤ Sequence.
163
+ if (props.OfferSequence !== undefined) {
164
+ if (!isNumber(props.OfferSequence) ||
165
+ !Number.isInteger(props.OfferSequence) ||
166
+ props.OfferSequence < UINT32_MIN ||
167
+ props.OfferSequence > UINT32_MAX) {
168
+ throw new ValidationError(`OfferCreate: OfferSequence must be a UInt32 in [${UINT32_MIN}, ${UINT32_MAX}]`);
169
+ }
170
+ if (props.Sequence !== undefined &&
171
+ isNumber(props.Sequence) &&
172
+ props.OfferSequence > props.Sequence) {
173
+ throw new ValidationError('OfferCreate: OfferSequence must not be greater than the transaction Sequence');
174
+ }
175
+ }
176
+ // ── DomainID ── optional 64-char hex.
177
+ if (props.DomainID !== undefined) {
178
+ if (!isString(props.DomainID) ||
179
+ !isHex(props.DomainID) ||
180
+ props.DomainID.length !== DOMAIN_ID_LENGTH) {
181
+ throw new ValidationError(`OfferCreate: DomainID must be a ${DOMAIN_ID_LENGTH}-character hex string`);
182
+ }
183
+ }
184
+ // ── Flags ── decode, then enforce spec invariants.
185
+ let decoded = null;
186
+ if (props.Flags !== undefined) {
187
+ if (typeof props.Flags === 'number') {
188
+ if (!Number.isInteger(props.Flags) || props.Flags < 0) {
189
+ throw new ValidationError('OfferCreate: Flags must be a non-negative integer');
190
+ }
191
+ decoded = decodeOfferCreateFlags(props.Flags);
192
+ }
193
+ else if (isRecord(props.Flags)) {
194
+ decoded = decodeOfferCreateFlagsInterface(props.Flags);
195
+ }
196
+ else {
197
+ throw new ValidationError('OfferCreate: Flags must be a number or OfferCreateFlagsInterface object');
198
+ }
199
+ }
200
+ if (decoded !== null) {
201
+ // tfImmediateOrCancel and tfFillOrKill are mutually exclusive.
202
+ if (decoded.immediateOrCancel && decoded.fillOrKill) {
203
+ throw new ValidationError('OfferCreate: tfImmediateOrCancel and tfFillOrKill cannot both be set');
204
+ }
205
+ // tfHybrid requires DomainID.
206
+ if (decoded.hybrid && props.DomainID === undefined) {
207
+ throw new ValidationError('OfferCreate: tfHybrid requires DomainID');
208
+ }
209
+ }
210
+ return buildFrozenTx('OfferCreate', props, {
211
+ validate() {
212
+ // Validated at construction.
213
+ },
214
+ toJSON() {
215
+ const json = {};
216
+ for (const k of Object.keys(this)) {
217
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
218
+ continue;
219
+ const v = this[k];
220
+ if (v !== undefined)
221
+ json[k] = v;
222
+ }
223
+ return json;
224
+ },
225
+ with(overrides) {
226
+ return offerCreate(mergeForWith(this, overrides));
227
+ },
228
+ });
229
+ }
230
+ //# sourceMappingURL=offer-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offer-create.js","sourceRoot":"","sources":["../../../src/fp/factories/offer-create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface OracleDeleteProps {
2
+ /** The owner of the PriceOracle (must equal `PriceOracle.Owner`). */
3
+ Account: string;
4
+ /**
5
+ * The unique identifier of the price oracle for `Account`.
6
+ * UInt32 — integer in [0, 0xFFFFFFFF].
7
+ */
8
+ OracleDocumentID: number;
9
+ /** Fee in XRP (drops), base-10 integer string. */
10
+ Fee?: string | undefined;
11
+ /** Account sequence number. */
12
+ Sequence?: number | undefined;
13
+ }
14
+ export interface OracleDelete extends Readonly<OracleDeleteProps> {
15
+ readonly TransactionType: 'OracleDelete';
16
+ validate(): void;
17
+ toJSON(): Record<string, unknown>;
18
+ with(overrides: Partial<OracleDeleteProps>): OracleDelete;
19
+ }
20
+ export declare function oracleDelete(props: OracleDeleteProps): OracleDelete;
21
+ //# sourceMappingURL=oracle-delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle-delete.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/oracle-delete.ts"],"names":[],"mappings":"AA0EA,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,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,YAAa,SAAQ,QAAQ,CAAC,iBAAiB,CAAC;IAC/D,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;IACzC,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;CAC3D;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CA4CnE"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Functional OracleDelete factory — frozen-object style.
3
+ *
4
+ * Deletes a `PriceOracle` ledger entry. Only the owner of the oracle can
5
+ * send this transaction. Validation happens at construction; there is no
6
+ * way to construct an invalid tx.
7
+ *
8
+ * import { oracleDelete } from 'xrplt/fp';
9
+ * const tx = oracleDelete({ Account, OracleDocumentID: 34 });
10
+ * const j = tx.toJSON();
11
+ * const tx2 = tx.with({ Fee: '15' });
12
+ *
13
+ * Affected amendments:
14
+ * - `PriceOracle` — base OracleDelete.
15
+ *
16
+ * @see https://xrpl.org/docs/references/protocol/transactions/types/oracledelete
17
+ * @see XLS-0047 (Price Oracles) §"Transaction for deleting Oracle instance"
18
+ * in `~/.mavis/docs.local/xrpl-standards/repo/XLS-0047-PriceOracles/README.md`
19
+ * (lines 191–223).
20
+ *
21
+ * ## Divergences
22
+ *
23
+ * The class-based API at `src/transactions/oracle-delete.ts` and xrpl.js's
24
+ * `validateOracleDelete` both skip two rules that the canonical sources
25
+ * require. The factory fills them:
26
+ *
27
+ * 1. `OracleDocumentID` must be an unsigned 32-bit integer.
28
+ * The class and xrpl.js only check `typeof === 'number'` (the class
29
+ * uses the local `isNumber`, xrpl.js's `isNumber` is identical).
30
+ * That allows NaN, ±Infinity, fractional values, negative numbers,
31
+ * and values > 2^32 − 1 to pass. XLS-0047 and the on-ledger codec
32
+ * both require `UINT32` (an integer in [0, 0xFFFFFFFF]).
33
+ * The factory rejects anything that fails that range/integer check.
34
+ * Source: XLS-0047 §"Transaction for deleting Oracle instance"
35
+ * (`~/.mavis/docs.local/xrpl-standards/repo/XLS-0047-PriceOracles/README.md`)
36
+ * line 209 (`UINT32` Internal Type for `OracleDocumentID`).
37
+ * Source: xrpl.js `validateOracleDelete`
38
+ * (`~/.mavis/docs.local/xrpl.js/repo/packages/xrpl/src/models/transactions/oracleDelete.ts`)
39
+ * lines 28–32 — `validateRequiredField(tx, 'OracleDocumentID', isNumber)`
40
+ * with `isNumber = (n) => typeof n === 'number'` (common.ts
41
+ * line 209). No integer/range check.
42
+ * Source: ripple-binary-codec `definitions.json`
43
+ * (`~/.mavis/docs.local/xrpl.js/repo/packages/ripple-binary-codec/src/enums/definitions.json`)
44
+ * line 4722 (OracleDelete field declaration) — `OracleDocumentID`
45
+ * is a `UInt32` STInteger.
46
+ *
47
+ * 2. `Account` must be a valid XRPL classic or X-address.
48
+ * The class does not validate `Account` at all (it relies on the
49
+ * base `Transaction.validate()`). The factory validates it via
50
+ * `isAccount`, consistent with every other fp factory. The on-ledger
51
+ * `temINVALID_ACCOUNT` check would otherwise only fire at submit
52
+ * time.
53
+ * Source: XLS-0047 §"Transaction for deleting Oracle instance"
54
+ * (`~/.mavis/docs.local/xrpl-standards/repo/XLS-0047-PriceOracles/README.md`)
55
+ * line 208 (`ACCOUNTID` Internal Type for `Account`) and
56
+ * line 220 ("The `Account` account doesn't exist").
57
+ * Source: xrpl.org `oracledelete.md`
58
+ * (`~/.mavis/docs.local/xrpl-dev-portal/repo/docs/references/protocol/transactions/types/oracledelete.md`)
59
+ * line 13 ("Only the owner of the price oracle can send
60
+ * this transaction") — implying the Account must be a
61
+ * valid XRPL account.
62
+ */
63
+ import { isAccount, isNumber } from '../../validation/helpers.js';
64
+ import { ValidationError } from '../../errors.js';
65
+ import { buildFrozenTx, mergeForWith, require } from '../shape.js';
66
+ // ─── Spec constants ──────────────────────────────────────────────────
67
+ // OracleDocumentID is a UInt32 per XLS-0047 §"Transaction for deleting
68
+ // Oracle instance" (line 209: `UINT32` Internal Type).
69
+ const MAX_UINT32 = 0xffffffff;
70
+ // ─── Factory ─────────────────────────────────────────────────────────
71
+ export function oracleDelete(props) {
72
+ // ── Account ── required, must be a valid XRPL classic or X-address.
73
+ require(props.Account, 'OracleDelete: Account is required', isAccount);
74
+ // ── OracleDocumentID ── required, UInt32 (integer in [0, 0xFFFFFFFF]).
75
+ if (!isNumber(props.OracleDocumentID) ||
76
+ !Number.isInteger(props.OracleDocumentID) ||
77
+ props.OracleDocumentID < 0 ||
78
+ props.OracleDocumentID > MAX_UINT32) {
79
+ throw new ValidationError(`OracleDelete: OracleDocumentID must be an integer in [0, ${MAX_UINT32}] (UInt32)`);
80
+ }
81
+ return buildFrozenTx('OracleDelete', props, {
82
+ validate() {
83
+ // Validated at construction.
84
+ },
85
+ toJSON() {
86
+ const json = {};
87
+ for (const k of Object.keys(this)) {
88
+ if (k === 'validate' || k === 'toJSON' || k === 'with')
89
+ continue;
90
+ const v = this[k];
91
+ if (v !== undefined)
92
+ json[k] = v;
93
+ }
94
+ return json;
95
+ },
96
+ with(overrides) {
97
+ return oracleDelete(mergeForWith(this, overrides));
98
+ },
99
+ });
100
+ }
101
+ //# sourceMappingURL=oracle-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle-delete.js","sourceRoot":"","sources":["../../../src/fp/factories/oracle-delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEnE,wEAAwE;AAExE,uEAAuE;AACvE,uDAAuD;AACvD,MAAM,UAAU,GAAG,UAAU,CAAC;AAyB9B,wEAAwE;AAExE,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,qEAAqE;IACrE,OAAO,CACL,KAAK,CAAC,OAAO,EACb,mCAAmC,EACnC,SAAS,CACV,CAAC;IAEF,wEAAwE;IACxE,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACjC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACzC,KAAK,CAAC,gBAAgB,GAAG,CAAC;QAC1B,KAAK,CAAC,gBAAgB,GAAG,UAAU,EACnC,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,4DAA4D,UAAU,YAAY,CACnF,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAClB,cAAc,EACd,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,SAAqC;YAErC,OAAO,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACrD,CAAC;KACF,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A single `PriceDataSeries` element. Per XLS-47 / xrpl.js 5.3.0,
3
+ * each element wraps the inner object under a `PriceData` key.
4
+ */
5
+ export interface PriceData {
6
+ readonly PriceData: {
7
+ readonly BaseAsset: string;
8
+ readonly QuoteAsset: string;
9
+ readonly AssetPrice?: string | number;
10
+ readonly Scale?: number;
11
+ };
12
+ }
13
+ export interface OracleSetProps {
14
+ /** The XRPL account with create/update/delete privileges on the oracle. */
15
+ Account: string;
16
+ /** Unique identifier of the price oracle for the Account. UINT32. */
17
+ OracleDocumentID: number;
18
+ /** Unix time (seconds) when the data was last updated. UINT32. */
19
+ LastUpdateTime: number;
20
+ /** Up to 10 PriceData objects, each describing a token-pair quote. */
21
+ PriceDataSeries: PriceData[];
22
+ /** Oracle Provider identifier, hex-encoded ASCII (0x20-0x7E), ≤256 bytes. */
23
+ Provider?: string | undefined;
24
+ /** Off-chain URI reference, hex-encoded, ≤256 bytes. */
25
+ URI?: string | undefined;
26
+ /** Asset type, hex-encoded ASCII (0x20-0x7E), ≤16 bytes. */
27
+ AssetClass?: string | undefined;
28
+ /** Bit-flags for this transaction. OracleSet has no defined flags. */
29
+ Flags?: number | undefined;
30
+ Fee?: string | undefined;
31
+ Sequence?: number | undefined;
32
+ }
33
+ export interface OracleSet extends Readonly<OracleSetProps> {
34
+ readonly TransactionType: 'OracleSet';
35
+ validate(): void;
36
+ toJSON(): Record<string, unknown>;
37
+ with(overrides: Partial<OracleSetProps>): OracleSet;
38
+ }
39
+ export declare function oracleSet(props: OracleSetProps): OracleSet;
40
+ //# sourceMappingURL=oracle-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle-set.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/oracle-set.ts"],"names":[],"mappings":"AA0HA;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,eAAe,EAAE,SAAS,EAAE,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,SAAU,SAAQ,QAAQ,CAAC,cAAc,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC;IACtC,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;CACrD;AAwHD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAuF1D"}