xrpl 3.0.0 → 4.0.0-mpt-beta

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 (402) hide show
  1. package/README.md +3 -3
  2. package/build/xrpl-latest-min.js +1 -1
  3. package/build/xrpl-latest-min.js.map +1 -1
  4. package/build/xrpl-latest.js +781 -909
  5. package/build/xrpl-latest.js.map +1 -1
  6. package/dist/npm/Wallet/defaultFaucets.d.ts +1 -2
  7. package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
  8. package/dist/npm/Wallet/defaultFaucets.js +0 -5
  9. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  10. package/dist/npm/Wallet/fundWallet.d.ts.map +1 -1
  11. package/dist/npm/Wallet/fundWallet.js +1 -5
  12. package/dist/npm/Wallet/fundWallet.js.map +1 -1
  13. package/dist/npm/client/RequestManager.d.ts +5 -4
  14. package/dist/npm/client/RequestManager.d.ts.map +1 -1
  15. package/dist/npm/client/RequestManager.js.map +1 -1
  16. package/dist/npm/client/connection.d.ts +2 -2
  17. package/dist/npm/client/connection.d.ts.map +1 -1
  18. package/dist/npm/client/connection.js.map +1 -1
  19. package/dist/npm/client/index.d.ts +4 -3
  20. package/dist/npm/client/index.d.ts.map +1 -1
  21. package/dist/npm/client/index.js +17 -10
  22. package/dist/npm/client/index.js.map +1 -1
  23. package/dist/npm/client/partialPayment.d.ts +2 -1
  24. package/dist/npm/client/partialPayment.d.ts.map +1 -1
  25. package/dist/npm/client/partialPayment.js +19 -3
  26. package/dist/npm/client/partialPayment.js.map +1 -1
  27. package/dist/npm/models/common/index.d.ts +17 -0
  28. package/dist/npm/models/common/index.d.ts.map +1 -1
  29. package/dist/npm/models/common/index.js +4 -0
  30. package/dist/npm/models/common/index.js.map +1 -1
  31. package/dist/npm/models/index.d.ts +1 -1
  32. package/dist/npm/models/index.d.ts.map +1 -1
  33. package/dist/npm/models/index.js +2 -1
  34. package/dist/npm/models/index.js.map +1 -1
  35. package/dist/npm/models/ledger/AMM.d.ts +2 -2
  36. package/dist/npm/models/ledger/AMM.d.ts.map +1 -1
  37. package/dist/npm/models/ledger/Amendments.d.ts +2 -2
  38. package/dist/npm/models/ledger/Amendments.d.ts.map +1 -1
  39. package/dist/npm/models/ledger/BaseLedgerEntry.d.ts +3 -3
  40. package/dist/npm/models/ledger/BaseLedgerEntry.d.ts.map +1 -1
  41. package/dist/npm/models/ledger/DirectoryNode.d.ts +2 -2
  42. package/dist/npm/models/ledger/DirectoryNode.d.ts.map +1 -1
  43. package/dist/npm/models/ledger/FeeSettings.d.ts +2 -2
  44. package/dist/npm/models/ledger/FeeSettings.d.ts.map +1 -1
  45. package/dist/npm/models/ledger/Ledger.d.ts +11 -2
  46. package/dist/npm/models/ledger/Ledger.d.ts.map +1 -1
  47. package/dist/npm/models/ledger/LedgerEntry.d.ts +3 -2
  48. package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
  49. package/dist/npm/models/ledger/LedgerHashes.d.ts +2 -2
  50. package/dist/npm/models/ledger/LedgerHashes.d.ts.map +1 -1
  51. package/dist/npm/models/ledger/MPToken.d.ts +11 -0
  52. package/dist/npm/models/ledger/MPToken.d.ts.map +1 -0
  53. package/dist/npm/models/ledger/MPToken.js +3 -0
  54. package/dist/npm/models/ledger/MPToken.js.map +1 -0
  55. package/dist/npm/models/ledger/MPTokenIssuance.d.ts +14 -0
  56. package/dist/npm/models/ledger/MPTokenIssuance.d.ts.map +1 -0
  57. package/dist/npm/models/ledger/MPTokenIssuance.js +3 -0
  58. package/dist/npm/models/ledger/MPTokenIssuance.js.map +1 -0
  59. package/dist/npm/models/ledger/NegativeUNL.d.ts +2 -2
  60. package/dist/npm/models/ledger/NegativeUNL.d.ts.map +1 -1
  61. package/dist/npm/models/ledger/Oracle.d.ts +12 -0
  62. package/dist/npm/models/ledger/Oracle.d.ts.map +1 -0
  63. package/dist/npm/models/ledger/Oracle.js +3 -0
  64. package/dist/npm/models/ledger/Oracle.js.map +1 -0
  65. package/dist/npm/models/ledger/RippleState.d.ts +2 -1
  66. package/dist/npm/models/ledger/RippleState.d.ts.map +1 -1
  67. package/dist/npm/models/ledger/RippleState.js +1 -0
  68. package/dist/npm/models/ledger/RippleState.js.map +1 -1
  69. package/dist/npm/models/ledger/index.d.ts +5 -2
  70. package/dist/npm/models/ledger/index.d.ts.map +1 -1
  71. package/dist/npm/models/ledger/index.js.map +1 -1
  72. package/dist/npm/models/methods/accountChannels.d.ts +1 -1
  73. package/dist/npm/models/methods/accountChannels.d.ts.map +1 -1
  74. package/dist/npm/models/methods/accountInfo.d.ts +17 -4
  75. package/dist/npm/models/methods/accountInfo.d.ts.map +1 -1
  76. package/dist/npm/models/methods/accountTx.d.ts +11 -5
  77. package/dist/npm/models/methods/accountTx.d.ts.map +1 -1
  78. package/dist/npm/models/methods/feature.d.ts +28 -0
  79. package/dist/npm/models/methods/feature.d.ts.map +1 -0
  80. package/dist/npm/models/methods/feature.js +3 -0
  81. package/dist/npm/models/methods/feature.js.map +1 -0
  82. package/dist/npm/models/methods/getAggregatePrice.d.ts +31 -0
  83. package/dist/npm/models/methods/getAggregatePrice.d.ts.map +1 -0
  84. package/dist/npm/models/methods/getAggregatePrice.js +3 -0
  85. package/dist/npm/models/methods/getAggregatePrice.js.map +1 -0
  86. package/dist/npm/models/methods/index.d.ts +15 -11
  87. package/dist/npm/models/methods/index.d.ts.map +1 -1
  88. package/dist/npm/models/methods/ledger.d.ts +17 -5
  89. package/dist/npm/models/methods/ledger.d.ts.map +1 -1
  90. package/dist/npm/models/methods/ledgerEntry.d.ts +5 -0
  91. package/dist/npm/models/methods/ledgerEntry.d.ts.map +1 -1
  92. package/dist/npm/models/methods/nftsByIssuer.d.ts +19 -0
  93. package/dist/npm/models/methods/nftsByIssuer.d.ts.map +1 -0
  94. package/dist/npm/models/methods/nftsByIssuer.js +3 -0
  95. package/dist/npm/models/methods/nftsByIssuer.js.map +1 -0
  96. package/dist/npm/models/methods/submitMultisigned.d.ts +16 -5
  97. package/dist/npm/models/methods/submitMultisigned.d.ts.map +1 -1
  98. package/dist/npm/models/methods/tx.d.ts +20 -8
  99. package/dist/npm/models/methods/tx.d.ts.map +1 -1
  100. package/dist/npm/models/transactions/AMMDeposit.d.ts +3 -1
  101. package/dist/npm/models/transactions/AMMDeposit.d.ts.map +1 -1
  102. package/dist/npm/models/transactions/AMMDeposit.js +1 -0
  103. package/dist/npm/models/transactions/AMMDeposit.js.map +1 -1
  104. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts +15 -0
  105. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts.map +1 -0
  106. package/dist/npm/models/transactions/MPTokenAuthorize.js +15 -0
  107. package/dist/npm/models/transactions/MPTokenAuthorize.js.map +1 -0
  108. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +31 -0
  109. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -0
  110. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js +26 -0
  111. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -0
  112. package/dist/npm/models/transactions/MPTokenIssuanceDestroy.d.ts +7 -0
  113. package/dist/npm/models/transactions/MPTokenIssuanceDestroy.d.ts.map +1 -0
  114. package/dist/npm/models/transactions/MPTokenIssuanceDestroy.js +10 -0
  115. package/dist/npm/models/transactions/MPTokenIssuanceDestroy.js.map +1 -0
  116. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts +17 -0
  117. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -0
  118. package/dist/npm/models/transactions/MPTokenIssuanceSet.js +22 -0
  119. package/dist/npm/models/transactions/MPTokenIssuanceSet.js.map +1 -0
  120. package/dist/npm/models/transactions/clawback.d.ts +3 -2
  121. package/dist/npm/models/transactions/clawback.d.ts.map +1 -1
  122. package/dist/npm/models/transactions/clawback.js +11 -1
  123. package/dist/npm/models/transactions/clawback.js.map +1 -1
  124. package/dist/npm/models/transactions/common.d.ts +2 -1
  125. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  126. package/dist/npm/models/transactions/common.js +12 -2
  127. package/dist/npm/models/transactions/common.js.map +1 -1
  128. package/dist/npm/models/transactions/index.d.ts +7 -1
  129. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  130. package/dist/npm/models/transactions/index.js +9 -1
  131. package/dist/npm/models/transactions/index.js.map +1 -1
  132. package/dist/npm/models/transactions/metadata.d.ts +8 -4
  133. package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
  134. package/dist/npm/models/transactions/metadata.js.map +1 -1
  135. package/dist/npm/models/transactions/oracleDelete.d.ts +7 -0
  136. package/dist/npm/models/transactions/oracleDelete.d.ts.map +1 -0
  137. package/dist/npm/models/transactions/oracleDelete.js +10 -0
  138. package/dist/npm/models/transactions/oracleDelete.js.map +1 -0
  139. package/dist/npm/models/transactions/oracleSet.d.ts +13 -0
  140. package/dist/npm/models/transactions/oracleSet.d.ts.map +1 -0
  141. package/dist/npm/models/transactions/oracleSet.js +59 -0
  142. package/dist/npm/models/transactions/oracleSet.js.map +1 -0
  143. package/dist/npm/models/transactions/payment.d.ts +6 -6
  144. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  145. package/dist/npm/models/transactions/payment.js +1 -1
  146. package/dist/npm/models/transactions/transaction.d.ts +7 -1
  147. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  148. package/dist/npm/models/transactions/transaction.js +24 -0
  149. package/dist/npm/models/transactions/transaction.js.map +1 -1
  150. package/dist/npm/models/utils/flags.d.ts +1 -0
  151. package/dist/npm/models/utils/flags.d.ts.map +1 -1
  152. package/dist/npm/models/utils/flags.js +23 -1
  153. package/dist/npm/models/utils/flags.js.map +1 -1
  154. package/dist/npm/snippets/src/claimPayChannel.js +1 -1
  155. package/dist/npm/snippets/src/claimPayChannel.js.map +1 -1
  156. package/dist/npm/snippets/src/sendEscrow.js +1 -1
  157. package/dist/npm/snippets/src/sendEscrow.js.map +1 -1
  158. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  159. package/dist/npm/src/Wallet/defaultFaucets.d.ts +1 -2
  160. package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
  161. package/dist/npm/src/Wallet/defaultFaucets.js +0 -5
  162. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  163. package/dist/npm/src/Wallet/fundWallet.d.ts.map +1 -1
  164. package/dist/npm/src/Wallet/fundWallet.js +1 -5
  165. package/dist/npm/src/Wallet/fundWallet.js.map +1 -1
  166. package/dist/npm/src/client/RequestManager.d.ts +5 -4
  167. package/dist/npm/src/client/RequestManager.d.ts.map +1 -1
  168. package/dist/npm/src/client/RequestManager.js.map +1 -1
  169. package/dist/npm/src/client/connection.d.ts +2 -2
  170. package/dist/npm/src/client/connection.d.ts.map +1 -1
  171. package/dist/npm/src/client/connection.js.map +1 -1
  172. package/dist/npm/src/client/index.d.ts +4 -3
  173. package/dist/npm/src/client/index.d.ts.map +1 -1
  174. package/dist/npm/src/client/index.js +17 -10
  175. package/dist/npm/src/client/index.js.map +1 -1
  176. package/dist/npm/src/client/partialPayment.d.ts +2 -1
  177. package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
  178. package/dist/npm/src/client/partialPayment.js +19 -3
  179. package/dist/npm/src/client/partialPayment.js.map +1 -1
  180. package/dist/npm/src/models/common/index.d.ts +17 -0
  181. package/dist/npm/src/models/common/index.d.ts.map +1 -1
  182. package/dist/npm/src/models/common/index.js +4 -0
  183. package/dist/npm/src/models/common/index.js.map +1 -1
  184. package/dist/npm/src/models/index.d.ts +1 -1
  185. package/dist/npm/src/models/index.d.ts.map +1 -1
  186. package/dist/npm/src/models/index.js +2 -1
  187. package/dist/npm/src/models/index.js.map +1 -1
  188. package/dist/npm/src/models/ledger/AMM.d.ts +2 -2
  189. package/dist/npm/src/models/ledger/AMM.d.ts.map +1 -1
  190. package/dist/npm/src/models/ledger/Amendments.d.ts +2 -2
  191. package/dist/npm/src/models/ledger/Amendments.d.ts.map +1 -1
  192. package/dist/npm/src/models/ledger/BaseLedgerEntry.d.ts +3 -3
  193. package/dist/npm/src/models/ledger/BaseLedgerEntry.d.ts.map +1 -1
  194. package/dist/npm/src/models/ledger/DirectoryNode.d.ts +2 -2
  195. package/dist/npm/src/models/ledger/DirectoryNode.d.ts.map +1 -1
  196. package/dist/npm/src/models/ledger/FeeSettings.d.ts +2 -2
  197. package/dist/npm/src/models/ledger/FeeSettings.d.ts.map +1 -1
  198. package/dist/npm/src/models/ledger/Ledger.d.ts +11 -2
  199. package/dist/npm/src/models/ledger/Ledger.d.ts.map +1 -1
  200. package/dist/npm/src/models/ledger/LedgerEntry.d.ts +3 -2
  201. package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
  202. package/dist/npm/src/models/ledger/LedgerHashes.d.ts +2 -2
  203. package/dist/npm/src/models/ledger/LedgerHashes.d.ts.map +1 -1
  204. package/dist/npm/src/models/ledger/MPToken.d.ts +11 -0
  205. package/dist/npm/src/models/ledger/MPToken.d.ts.map +1 -0
  206. package/dist/npm/src/models/ledger/MPToken.js +3 -0
  207. package/dist/npm/src/models/ledger/MPToken.js.map +1 -0
  208. package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts +14 -0
  209. package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts.map +1 -0
  210. package/dist/npm/src/models/ledger/MPTokenIssuance.js +3 -0
  211. package/dist/npm/src/models/ledger/MPTokenIssuance.js.map +1 -0
  212. package/dist/npm/src/models/ledger/NegativeUNL.d.ts +2 -2
  213. package/dist/npm/src/models/ledger/NegativeUNL.d.ts.map +1 -1
  214. package/dist/npm/src/models/ledger/Oracle.d.ts +12 -0
  215. package/dist/npm/src/models/ledger/Oracle.d.ts.map +1 -0
  216. package/dist/npm/src/models/ledger/Oracle.js +3 -0
  217. package/dist/npm/src/models/ledger/Oracle.js.map +1 -0
  218. package/dist/npm/src/models/ledger/RippleState.d.ts +2 -1
  219. package/dist/npm/src/models/ledger/RippleState.d.ts.map +1 -1
  220. package/dist/npm/src/models/ledger/RippleState.js +1 -0
  221. package/dist/npm/src/models/ledger/RippleState.js.map +1 -1
  222. package/dist/npm/src/models/ledger/index.d.ts +5 -2
  223. package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
  224. package/dist/npm/src/models/ledger/index.js.map +1 -1
  225. package/dist/npm/src/models/methods/accountChannels.d.ts +1 -1
  226. package/dist/npm/src/models/methods/accountChannels.d.ts.map +1 -1
  227. package/dist/npm/src/models/methods/accountInfo.d.ts +17 -4
  228. package/dist/npm/src/models/methods/accountInfo.d.ts.map +1 -1
  229. package/dist/npm/src/models/methods/accountTx.d.ts +11 -5
  230. package/dist/npm/src/models/methods/accountTx.d.ts.map +1 -1
  231. package/dist/npm/src/models/methods/feature.d.ts +28 -0
  232. package/dist/npm/src/models/methods/feature.d.ts.map +1 -0
  233. package/dist/npm/src/models/methods/feature.js +3 -0
  234. package/dist/npm/src/models/methods/feature.js.map +1 -0
  235. package/dist/npm/src/models/methods/getAggregatePrice.d.ts +31 -0
  236. package/dist/npm/src/models/methods/getAggregatePrice.d.ts.map +1 -0
  237. package/dist/npm/src/models/methods/getAggregatePrice.js +3 -0
  238. package/dist/npm/src/models/methods/getAggregatePrice.js.map +1 -0
  239. package/dist/npm/src/models/methods/index.d.ts +15 -11
  240. package/dist/npm/src/models/methods/index.d.ts.map +1 -1
  241. package/dist/npm/src/models/methods/ledger.d.ts +17 -5
  242. package/dist/npm/src/models/methods/ledger.d.ts.map +1 -1
  243. package/dist/npm/src/models/methods/ledgerEntry.d.ts +5 -0
  244. package/dist/npm/src/models/methods/ledgerEntry.d.ts.map +1 -1
  245. package/dist/npm/src/models/methods/nftsByIssuer.d.ts +19 -0
  246. package/dist/npm/src/models/methods/nftsByIssuer.d.ts.map +1 -0
  247. package/dist/npm/src/models/methods/nftsByIssuer.js +3 -0
  248. package/dist/npm/src/models/methods/nftsByIssuer.js.map +1 -0
  249. package/dist/npm/src/models/methods/submitMultisigned.d.ts +16 -5
  250. package/dist/npm/src/models/methods/submitMultisigned.d.ts.map +1 -1
  251. package/dist/npm/src/models/methods/tx.d.ts +20 -8
  252. package/dist/npm/src/models/methods/tx.d.ts.map +1 -1
  253. package/dist/npm/src/models/transactions/AMMDeposit.d.ts +3 -1
  254. package/dist/npm/src/models/transactions/AMMDeposit.d.ts.map +1 -1
  255. package/dist/npm/src/models/transactions/AMMDeposit.js +1 -0
  256. package/dist/npm/src/models/transactions/AMMDeposit.js.map +1 -1
  257. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts +15 -0
  258. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts.map +1 -0
  259. package/dist/npm/src/models/transactions/MPTokenAuthorize.js +15 -0
  260. package/dist/npm/src/models/transactions/MPTokenAuthorize.js.map +1 -0
  261. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +31 -0
  262. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -0
  263. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js +26 -0
  264. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -0
  265. package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.d.ts +7 -0
  266. package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.d.ts.map +1 -0
  267. package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.js +10 -0
  268. package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.js.map +1 -0
  269. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts +17 -0
  270. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -0
  271. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js +22 -0
  272. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js.map +1 -0
  273. package/dist/npm/src/models/transactions/clawback.d.ts +3 -2
  274. package/dist/npm/src/models/transactions/clawback.d.ts.map +1 -1
  275. package/dist/npm/src/models/transactions/clawback.js +11 -1
  276. package/dist/npm/src/models/transactions/clawback.js.map +1 -1
  277. package/dist/npm/src/models/transactions/common.d.ts +2 -1
  278. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  279. package/dist/npm/src/models/transactions/common.js +12 -2
  280. package/dist/npm/src/models/transactions/common.js.map +1 -1
  281. package/dist/npm/src/models/transactions/index.d.ts +7 -1
  282. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  283. package/dist/npm/src/models/transactions/index.js +9 -1
  284. package/dist/npm/src/models/transactions/index.js.map +1 -1
  285. package/dist/npm/src/models/transactions/metadata.d.ts +8 -4
  286. package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
  287. package/dist/npm/src/models/transactions/metadata.js.map +1 -1
  288. package/dist/npm/src/models/transactions/oracleDelete.d.ts +7 -0
  289. package/dist/npm/src/models/transactions/oracleDelete.d.ts.map +1 -0
  290. package/dist/npm/src/models/transactions/oracleDelete.js +10 -0
  291. package/dist/npm/src/models/transactions/oracleDelete.js.map +1 -0
  292. package/dist/npm/src/models/transactions/oracleSet.d.ts +13 -0
  293. package/dist/npm/src/models/transactions/oracleSet.d.ts.map +1 -0
  294. package/dist/npm/src/models/transactions/oracleSet.js +59 -0
  295. package/dist/npm/src/models/transactions/oracleSet.js.map +1 -0
  296. package/dist/npm/src/models/transactions/payment.d.ts +6 -6
  297. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  298. package/dist/npm/src/models/transactions/payment.js +1 -1
  299. package/dist/npm/src/models/transactions/transaction.d.ts +7 -1
  300. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  301. package/dist/npm/src/models/transactions/transaction.js +24 -0
  302. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  303. package/dist/npm/src/models/utils/flags.d.ts +1 -0
  304. package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
  305. package/dist/npm/src/models/utils/flags.js +23 -1
  306. package/dist/npm/src/models/utils/flags.js.map +1 -1
  307. package/dist/npm/src/sugar/autofill.d.ts +1 -1
  308. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  309. package/dist/npm/src/sugar/autofill.js +2 -4
  310. package/dist/npm/src/sugar/autofill.js.map +1 -1
  311. package/dist/npm/src/sugar/getFeeXrp.d.ts +1 -1
  312. package/dist/npm/src/sugar/getFeeXrp.d.ts.map +1 -1
  313. package/dist/npm/src/sugar/getFeeXrp.js +3 -2
  314. package/dist/npm/src/sugar/getFeeXrp.js.map +1 -1
  315. package/dist/npm/src/sugar/submit.d.ts.map +1 -1
  316. package/dist/npm/src/sugar/submit.js.map +1 -1
  317. package/dist/npm/src/utils/hashes/hashLedger.d.ts +4 -3
  318. package/dist/npm/src/utils/hashes/hashLedger.d.ts.map +1 -1
  319. package/dist/npm/src/utils/hashes/hashLedger.js.map +1 -1
  320. package/dist/npm/src/utils/index.d.ts +4 -2
  321. package/dist/npm/src/utils/index.d.ts.map +1 -1
  322. package/dist/npm/src/utils/index.js +3 -1
  323. package/dist/npm/src/utils/index.js.map +1 -1
  324. package/dist/npm/src/utils/mptConversion.d.ts +2 -0
  325. package/dist/npm/src/utils/mptConversion.d.ts.map +1 -0
  326. package/dist/npm/src/utils/mptConversion.js +31 -0
  327. package/dist/npm/src/utils/mptConversion.js.map +1 -0
  328. package/dist/npm/sugar/autofill.d.ts +1 -1
  329. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  330. package/dist/npm/sugar/autofill.js +2 -4
  331. package/dist/npm/sugar/autofill.js.map +1 -1
  332. package/dist/npm/sugar/getFeeXrp.d.ts +1 -1
  333. package/dist/npm/sugar/getFeeXrp.d.ts.map +1 -1
  334. package/dist/npm/sugar/getFeeXrp.js +3 -2
  335. package/dist/npm/sugar/getFeeXrp.js.map +1 -1
  336. package/dist/npm/sugar/submit.d.ts.map +1 -1
  337. package/dist/npm/sugar/submit.js.map +1 -1
  338. package/dist/npm/utils/hashes/hashLedger.d.ts +4 -3
  339. package/dist/npm/utils/hashes/hashLedger.d.ts.map +1 -1
  340. package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
  341. package/dist/npm/utils/index.d.ts +4 -2
  342. package/dist/npm/utils/index.d.ts.map +1 -1
  343. package/dist/npm/utils/index.js +3 -1
  344. package/dist/npm/utils/index.js.map +1 -1
  345. package/dist/npm/utils/mptConversion.d.ts +2 -0
  346. package/dist/npm/utils/mptConversion.d.ts.map +1 -0
  347. package/dist/npm/utils/mptConversion.js +31 -0
  348. package/dist/npm/utils/mptConversion.js.map +1 -0
  349. package/package.json +7 -8
  350. package/src/Wallet/defaultFaucets.ts +0 -6
  351. package/src/Wallet/fundWallet.ts +0 -1
  352. package/src/client/RequestManager.ts +17 -12
  353. package/src/client/connection.ts +7 -5
  354. package/src/client/index.ts +79 -21
  355. package/src/client/partialPayment.ts +55 -17
  356. package/src/models/common/index.ts +46 -0
  357. package/src/models/index.ts +1 -0
  358. package/src/models/ledger/AMM.ts +2 -2
  359. package/src/models/ledger/Amendments.ts +2 -2
  360. package/src/models/ledger/BaseLedgerEntry.ts +9 -5
  361. package/src/models/ledger/DirectoryNode.ts +2 -2
  362. package/src/models/ledger/FeeSettings.ts +4 -2
  363. package/src/models/ledger/Ledger.ts +46 -9
  364. package/src/models/ledger/LedgerEntry.ts +5 -0
  365. package/src/models/ledger/LedgerHashes.ts +2 -4
  366. package/src/models/ledger/MPToken.ts +12 -0
  367. package/src/models/ledger/MPTokenIssuance.ts +14 -0
  368. package/src/models/ledger/NegativeUNL.ts +2 -2
  369. package/src/models/ledger/Oracle.ts +43 -0
  370. package/src/models/ledger/RippleState.ts +2 -0
  371. package/src/models/ledger/index.ts +8 -1
  372. package/src/models/methods/accountChannels.ts +64 -1
  373. package/src/models/methods/accountInfo.ts +58 -12
  374. package/src/models/methods/accountTx.ts +49 -8
  375. package/src/models/methods/feature.ts +68 -0
  376. package/src/models/methods/getAggregatePrice.ts +119 -0
  377. package/src/models/methods/index.ts +79 -23
  378. package/src/models/methods/ledger.ts +41 -5
  379. package/src/models/methods/ledgerEntry.ts +16 -0
  380. package/src/models/methods/nftsByIssuer.ts +68 -0
  381. package/src/models/methods/submitMultisigned.ts +48 -16
  382. package/src/models/methods/tx.ts +74 -22
  383. package/src/models/transactions/AMMDeposit.ts +2 -0
  384. package/src/models/transactions/MPTokenAuthorize.ts +67 -0
  385. package/src/models/transactions/MPTokenIssuanceCreate.ts +132 -0
  386. package/src/models/transactions/MPTokenIssuanceDestroy.ts +34 -0
  387. package/src/models/transactions/MPTokenIssuanceSet.ts +76 -0
  388. package/src/models/transactions/clawback.ts +29 -6
  389. package/src/models/transactions/common.ts +22 -1
  390. package/src/models/transactions/index.ts +19 -1
  391. package/src/models/transactions/metadata.ts +10 -3
  392. package/src/models/transactions/oracleDelete.ts +32 -0
  393. package/src/models/transactions/oracleSet.ts +176 -0
  394. package/src/models/transactions/payment.ts +6 -6
  395. package/src/models/transactions/transaction.ts +45 -0
  396. package/src/models/utils/flags.ts +33 -1
  397. package/src/sugar/autofill.ts +4 -10
  398. package/src/sugar/getFeeXrp.ts +6 -3
  399. package/src/sugar/submit.ts +5 -3
  400. package/src/utils/hashes/hashLedger.ts +8 -5
  401. package/src/utils/index.ts +4 -1
  402. package/src/utils/mptConversion.ts +61 -0
@@ -1,10 +1,13 @@
1
1
  import { ValidationError } from '../../errors'
2
- import { IssuedCurrencyAmount } from '../common'
2
+ import { IssuedCurrencyAmount, MPTAmount } from '../common'
3
3
 
4
4
  import {
5
5
  BaseTransaction,
6
6
  validateBaseTransaction,
7
7
  isIssuedCurrency,
8
+ isMPTAmount,
9
+ isAccount,
10
+ validateOptionalField,
8
11
  } from './common'
9
12
 
10
13
  /**
@@ -15,15 +18,20 @@ export interface Clawback extends BaseTransaction {
15
18
  TransactionType: 'Clawback'
16
19
  /**
17
20
  * Indicates the AccountID that submitted this transaction. The account MUST
18
- * be the issuer of the currency.
21
+ * be the issuer of the currency or MPT.
19
22
  */
20
23
  Account: string
21
24
  /**
22
- * The amount of currency to deliver, and it must be non-XRP. The nested field
23
- * names MUST be lower-case. The `issuer` field MUST be the holder's address,
25
+ * The amount of currency or MPT to clawback, and it must be non-XRP. The nested field
26
+ * names MUST be lower-case. If the amount is IOU, the `issuer` field MUST be the holder's address,
24
27
  * whom to be clawed back.
25
28
  */
26
- Amount: IssuedCurrencyAmount
29
+ Amount: IssuedCurrencyAmount | MPTAmount
30
+ /**
31
+ * Indicates the AccountID that the issuer wants to clawback. This field is only valid for clawing back
32
+ * MPTs.
33
+ */
34
+ MPTokenHolder?: string
27
35
  }
28
36
 
29
37
  /**
@@ -34,16 +42,31 @@ export interface Clawback extends BaseTransaction {
34
42
  */
35
43
  export function validateClawback(tx: Record<string, unknown>): void {
36
44
  validateBaseTransaction(tx)
45
+ validateOptionalField(tx, 'MPTokenHolder', isAccount)
37
46
 
38
47
  if (tx.Amount == null) {
39
48
  throw new ValidationError('Clawback: missing field Amount')
40
49
  }
41
50
 
42
- if (!isIssuedCurrency(tx.Amount)) {
51
+ if (!isIssuedCurrency(tx.Amount) && !isMPTAmount(tx.Amount)) {
43
52
  throw new ValidationError('Clawback: invalid Amount')
44
53
  }
45
54
 
46
55
  if (isIssuedCurrency(tx.Amount) && tx.Account === tx.Amount.issuer) {
47
56
  throw new ValidationError('Clawback: invalid holder Account')
48
57
  }
58
+
59
+ if (isMPTAmount(tx.Amount) && tx.Account === tx.MPTokenHolder) {
60
+ throw new ValidationError('Clawback: invalid holder Account')
61
+ }
62
+
63
+ if (isIssuedCurrency(tx.Amount) && tx.MPTokenHolder) {
64
+ throw new ValidationError(
65
+ 'Clawback: cannot have MPTokenHolder for currency',
66
+ )
67
+ }
68
+
69
+ if (isMPTAmount(tx.Amount) && !tx.MPTokenHolder) {
70
+ throw new ValidationError('Clawback: missing MPTokenHolder')
71
+ }
49
72
  }
@@ -9,6 +9,7 @@ import {
9
9
  Memo,
10
10
  Signer,
11
11
  XChainBridge,
12
+ MPTAmount,
12
13
  } from '../common'
13
14
  import { onlyHasFields } from '../utils'
14
15
 
@@ -59,6 +60,7 @@ const XRP_CURRENCY_SIZE = 1
59
60
  const ISSUE_SIZE = 2
60
61
  const ISSUED_CURRENCY_SIZE = 3
61
62
  const XCHAIN_BRIDGE_SIZE = 4
63
+ const MPTOKEN_SIZE = 2
62
64
 
63
65
  function isRecord(value: unknown): value is Record<string, unknown> {
64
66
  return value !== null && typeof value === 'object'
@@ -119,6 +121,21 @@ export function isIssuedCurrency(
119
121
  )
120
122
  }
121
123
 
124
+ /**
125
+ * Verify the form and type of an MPT at runtime.
126
+ *
127
+ * @param input - The input to check the form and type of.
128
+ * @returns Whether the MPTAmount is properly formed.
129
+ */
130
+ export function isMPTAmount(input: unknown): input is MPTAmount {
131
+ return (
132
+ isRecord(input) &&
133
+ Object.keys(input).length === MPTOKEN_SIZE &&
134
+ typeof input.value === 'string' &&
135
+ typeof input.mpt_issuance_id === 'string'
136
+ )
137
+ }
138
+
122
139
  /**
123
140
  * Must be a valid account address
124
141
  */
@@ -144,7 +161,11 @@ export function isAccount(account: unknown): account is Account {
144
161
  * @returns Whether the Amount is properly formed.
145
162
  */
146
163
  export function isAmount(amount: unknown): amount is Amount {
147
- return typeof amount === 'string' || isIssuedCurrency(amount)
164
+ return (
165
+ typeof amount === 'string' ||
166
+ isIssuedCurrency(amount) ||
167
+ isMPTAmount(amount)
168
+ )
148
169
  }
149
170
 
150
171
  /**
@@ -1,4 +1,4 @@
1
- export { BaseTransaction } from './common'
1
+ export { BaseTransaction, isMPTAmount } from './common'
2
2
  export {
3
3
  validate,
4
4
  PseudoTransaction,
@@ -39,6 +39,22 @@ export { EscrowCancel } from './escrowCancel'
39
39
  export { EscrowCreate } from './escrowCreate'
40
40
  export { EscrowFinish } from './escrowFinish'
41
41
  export { EnableAmendment, EnableAmendmentFlags } from './enableAmendment'
42
+ export {
43
+ MPTokenAuthorize,
44
+ MPTokenAuthorizeFlags,
45
+ MPTokenAuthorizeFlagsInterface,
46
+ } from './MPTokenAuthorize'
47
+ export {
48
+ MPTokenIssuanceCreate,
49
+ MPTokenIssuanceCreateFlags,
50
+ MPTokenIssuanceCreateFlagsInterface,
51
+ } from './MPTokenIssuanceCreate'
52
+ export { MPTokenIssuanceDestroy } from './MPTokenIssuanceDestroy'
53
+ export {
54
+ MPTokenIssuanceSet,
55
+ MPTokenIssuanceSetFlags,
56
+ MPTokenIssuanceSetFlagsInterface,
57
+ } from './MPTokenIssuanceSet'
42
58
  export { NFTokenAcceptOffer } from './NFTokenAcceptOffer'
43
59
  export { NFTokenBurn } from './NFTokenBurn'
44
60
  export { NFTokenCancelOffer } from './NFTokenCancelOffer'
@@ -58,6 +74,8 @@ export {
58
74
  OfferCreateFlagsInterface,
59
75
  OfferCreate,
60
76
  } from './offerCreate'
77
+ export { OracleDelete } from './oracleDelete'
78
+ export { OracleSet } from './oracleSet'
61
79
  export { PaymentFlags, PaymentFlagsInterface, Payment } from './payment'
62
80
  export {
63
81
  PaymentChannelClaimFlags,
@@ -1,4 +1,4 @@
1
- import { Amount } from '../common'
1
+ import { Amount, MPTAmount } from '../common'
2
2
 
3
3
  import { BaseTransaction } from './common'
4
4
  import {
@@ -14,6 +14,10 @@ import {
14
14
  NFTokenCreateOfferMetadata,
15
15
  } from './NFTokenCreateOffer'
16
16
  import { NFTokenMint, NFTokenMintMetadata } from './NFTokenMint'
17
+ import {
18
+ MPTokenIssuanceCreate,
19
+ MPTokenIssuanceCreateMetadata,
20
+ } from './MPTokenIssuanceCreate'
17
21
  import { Payment, PaymentMetadata } from './payment'
18
22
  import type { Transaction } from './transaction'
19
23
 
@@ -40,6 +44,7 @@ export interface DeletedNode {
40
44
  DeletedNode: {
41
45
  LedgerEntryType: string
42
46
  LedgerIndex: string
47
+ PreviousFields?: { [field: string]: unknown }
43
48
  FinalFields: { [field: string]: unknown }
44
49
  }
45
50
  }
@@ -78,9 +83,9 @@ export function isDeletedNode(node: Node): node is DeletedNode {
78
83
 
79
84
  export interface TransactionMetadataBase {
80
85
  AffectedNodes: Node[]
81
- DeliveredAmount?: Amount
86
+ DeliveredAmount?: Amount | MPTAmount
82
87
  // "unavailable" possible for transactions before 2014-01-20
83
- delivered_amount?: Amount | 'unavailable'
88
+ delivered_amount?: Amount | MPTAmount | 'unavailable'
84
89
  TransactionIndex: number
85
90
  TransactionResult: string
86
91
  }
@@ -96,4 +101,6 @@ export type TransactionMetadata<T extends BaseTransaction = Transaction> =
96
101
  ? NFTokenAcceptOfferMetadata
97
102
  : T extends NFTokenCancelOffer
98
103
  ? NFTokenCancelOfferMetadata
104
+ : T extends MPTokenIssuanceCreate
105
+ ? MPTokenIssuanceCreateMetadata
99
106
  : TransactionMetadataBase
@@ -0,0 +1,32 @@
1
+ import {
2
+ BaseTransaction,
3
+ isNumber,
4
+ validateBaseTransaction,
5
+ validateRequiredField,
6
+ } from './common'
7
+
8
+ /**
9
+ * Delete an Oracle ledger entry.
10
+ *
11
+ * @category Transaction Models
12
+ */
13
+ export interface OracleDelete extends BaseTransaction {
14
+ TransactionType: 'OracleDelete'
15
+
16
+ /**
17
+ * A unique identifier of the price oracle for the Account.
18
+ */
19
+ OracleDocumentID: number
20
+ }
21
+
22
+ /**
23
+ * Verify the form and type of a OracleDelete at runtime.
24
+ *
25
+ * @param tx - A OracleDelete Transaction.
26
+ * @throws When the OracleDelete is malformed.
27
+ */
28
+ export function validateOracleDelete(tx: Record<string, unknown>): void {
29
+ validateBaseTransaction(tx)
30
+
31
+ validateRequiredField(tx, 'OracleDocumentID', isNumber)
32
+ }
@@ -0,0 +1,176 @@
1
+ import { ValidationError } from '../../errors'
2
+ import { PriceData } from '../common'
3
+
4
+ import {
5
+ BaseTransaction,
6
+ isNumber,
7
+ isString,
8
+ validateBaseTransaction,
9
+ validateOptionalField,
10
+ validateRequiredField,
11
+ } from './common'
12
+
13
+ const PRICE_DATA_SERIES_MAX_LENGTH = 10
14
+ const SCALE_MAX = 10
15
+
16
+ /**
17
+ * Creates a new Oracle ledger entry or updates the fields of an existing one, using the Oracle ID.
18
+ *
19
+ * The oracle provider must complete these steps before submitting this transaction:
20
+ * 1. Create or own the XRPL account in the Owner field and have enough XRP to meet the reserve and transaction fee requirements.
21
+ * 2. Publish the XRPL account public key, so it can be used for verification by dApps.
22
+ * 3. Publish a registry of available price oracles with their unique OracleDocumentID.
23
+ *
24
+ * @category Transaction Models
25
+ */
26
+ export interface OracleSet extends BaseTransaction {
27
+ TransactionType: 'OracleSet'
28
+
29
+ /**
30
+ * A unique identifier of the price oracle for the Account.
31
+ */
32
+ OracleDocumentID: number
33
+
34
+ /**
35
+ * The time the data was last updated, represented as a unix timestamp in seconds.
36
+ */
37
+ LastUpdateTime: number
38
+
39
+ /**
40
+ * An array of up to 10 PriceData objects, each representing the price information
41
+ * for a token pair. More than five PriceData objects require two owner reserves.
42
+ */
43
+ PriceDataSeries: PriceData[]
44
+
45
+ /**
46
+ * An arbitrary value that identifies an oracle provider, such as Chainlink, Band,
47
+ * or DIA. This field is a string, up to 256 ASCII hex encoded characters (0x20-0x7E).
48
+ * This field is required when creating a new Oracle ledger entry, but is optional for updates.
49
+ */
50
+ Provider?: string
51
+
52
+ /**
53
+ * An optional Universal Resource Identifier to reference price data off-chain. This field is limited to 256 bytes.
54
+ */
55
+ URI?: string
56
+
57
+ /**
58
+ * Describes the type of asset, such as "currency", "commodity", or "index". This field is a string, up to 16 ASCII
59
+ * hex encoded characters (0x20-0x7E). This field is required when creating a new Oracle ledger entry, but is optional
60
+ * for updates.
61
+ */
62
+ AssetClass?: string
63
+ }
64
+
65
+ /**
66
+ * Verify the form and type of a OracleSet at runtime.
67
+ *
68
+ * @param tx - A OracleSet Transaction.
69
+ * @throws When the OracleSet is malformed.
70
+ */
71
+ // eslint-disable-next-line max-lines-per-function -- necessary to validate many fields
72
+ export function validateOracleSet(tx: Record<string, unknown>): void {
73
+ validateBaseTransaction(tx)
74
+
75
+ validateRequiredField(tx, 'OracleDocumentID', isNumber)
76
+
77
+ validateRequiredField(tx, 'LastUpdateTime', isNumber)
78
+
79
+ validateOptionalField(tx, 'Provider', isString)
80
+
81
+ validateOptionalField(tx, 'URI', isString)
82
+
83
+ validateOptionalField(tx, 'AssetClass', isString)
84
+
85
+ // eslint-disable-next-line max-lines-per-function -- necessary to validate many fields
86
+ validateRequiredField(tx, 'PriceDataSeries', (value) => {
87
+ if (!Array.isArray(value)) {
88
+ throw new ValidationError('OracleSet: PriceDataSeries must be an array')
89
+ }
90
+
91
+ if (value.length > PRICE_DATA_SERIES_MAX_LENGTH) {
92
+ throw new ValidationError(
93
+ `OracleSet: PriceDataSeries must have at most ${PRICE_DATA_SERIES_MAX_LENGTH} PriceData objects`,
94
+ )
95
+ }
96
+
97
+ // TODO: add support for handling inner objects easier (similar to validateRequiredField/validateOptionalField)
98
+ for (const priceData of value) {
99
+ if (typeof priceData !== 'object') {
100
+ throw new ValidationError(
101
+ 'OracleSet: PriceDataSeries must be an array of objects',
102
+ )
103
+ }
104
+
105
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
106
+ if (priceData.PriceData == null) {
107
+ throw new ValidationError(
108
+ 'OracleSet: PriceDataSeries must have a `PriceData` object',
109
+ )
110
+ }
111
+
112
+ // check if priceData only has PriceData
113
+ if (Object.keys(priceData).length !== 1) {
114
+ throw new ValidationError(
115
+ 'OracleSet: PriceDataSeries must only have a single PriceData object',
116
+ )
117
+ }
118
+
119
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
120
+ if (typeof priceData.PriceData.BaseAsset !== 'string') {
121
+ throw new ValidationError(
122
+ 'OracleSet: PriceDataSeries must have a `BaseAsset` string',
123
+ )
124
+ }
125
+
126
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
127
+ if (typeof priceData.PriceData.QuoteAsset !== 'string') {
128
+ throw new ValidationError(
129
+ 'OracleSet: PriceDataSeries must have a `QuoteAsset` string',
130
+ )
131
+ }
132
+
133
+ // Either AssetPrice and Scale are both present or both excluded
134
+ if (
135
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
136
+ (priceData.PriceData.AssetPrice == null) !==
137
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
138
+ (priceData.PriceData.Scale == null)
139
+ ) {
140
+ throw new ValidationError(
141
+ 'OracleSet: PriceDataSeries must have both `AssetPrice` and `Scale` if any are present',
142
+ )
143
+ }
144
+
145
+ if (
146
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
147
+ 'AssetPrice' in priceData.PriceData &&
148
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
149
+ !isNumber(priceData.PriceData.AssetPrice)
150
+ ) {
151
+ throw new ValidationError('OracleSet: invalid field AssetPrice')
152
+ }
153
+
154
+ if (
155
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
156
+ 'Scale' in priceData.PriceData &&
157
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
158
+ !isNumber(priceData.PriceData.Scale)
159
+ ) {
160
+ throw new ValidationError('OracleSet: invalid field Scale')
161
+ }
162
+
163
+ if (
164
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
165
+ priceData.PriceData.Scale < 0 ||
166
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
167
+ priceData.PriceData.Scale > SCALE_MAX
168
+ ) {
169
+ throw new ValidationError(
170
+ `OracleSet: Scale must be in range 0-${SCALE_MAX}`,
171
+ )
172
+ }
173
+ }
174
+ return true
175
+ })
176
+ }
@@ -1,5 +1,5 @@
1
1
  import { ValidationError } from '../../errors'
2
- import { Amount, Path } from '../common'
2
+ import { Amount, Path, MPTAmount } from '../common'
3
3
  import { isFlagEnabled } from '../utils'
4
4
 
5
5
  import {
@@ -26,7 +26,7 @@ export enum PaymentFlags {
26
26
  * This is intended to force the transaction to take arbitrage opportunities.
27
27
  * Most clients do not need this.
28
28
  */
29
- tfNoDirectRipple = 0x00010000,
29
+ tfNoRippleDirect = 0x00010000,
30
30
  /**
31
31
  * If the specified Amount cannot be sent without spending more than SendMax,
32
32
  * reduce the received amount instead of failing outright. See Partial.
@@ -88,7 +88,7 @@ export interface PaymentFlagsInterface extends GlobalFlags {
88
88
  * This is intended to force the transaction to take arbitrage opportunities.
89
89
  * Most clients do not need this.
90
90
  */
91
- tfNoDirectRipple?: boolean
91
+ tfNoRippleDirect?: boolean
92
92
  /**
93
93
  * If the specified Amount cannot be sent without spending more than SendMax,
94
94
  * reduce the received amount instead of failing outright. See Partial.
@@ -116,7 +116,7 @@ export interface Payment extends BaseTransaction {
116
116
  * names MUST be lower-case. If the tfPartialPayment flag is set, deliver up
117
117
  * to this amount instead.
118
118
  */
119
- Amount: Amount
119
+ Amount: Amount | MPTAmount
120
120
  /** The unique address of the account receiving the payment. */
121
121
  Destination: Account
122
122
  /**
@@ -153,8 +153,8 @@ export interface Payment extends BaseTransaction {
153
153
  }
154
154
 
155
155
  export interface PaymentMetadata extends TransactionMetadataBase {
156
- DeliveredAmount?: Amount
157
- delivered_amount?: Amount | 'unavailable'
156
+ DeliveredAmount?: Amount | MPTAmount
157
+ delivered_amount?: Amount | MPTAmount | 'unavailable'
158
158
  }
159
159
 
160
160
  /**
@@ -43,6 +43,8 @@ import {
43
43
  import { NFTokenMint, validateNFTokenMint } from './NFTokenMint'
44
44
  import { OfferCancel, validateOfferCancel } from './offerCancel'
45
45
  import { OfferCreate, validateOfferCreate } from './offerCreate'
46
+ import { OracleDelete, validateOracleDelete } from './oracleDelete'
47
+ import { OracleSet, validateOracleSet } from './oracleSet'
46
48
  import { Payment, validatePayment } from './payment'
47
49
  import {
48
50
  PaymentChannelClaim,
@@ -88,6 +90,19 @@ import {
88
90
  XChainModifyBridge,
89
91
  validateXChainModifyBridge,
90
92
  } from './XChainModifyBridge'
93
+ import { MPTokenAuthorize, validateMPTokenAuthorize } from './MPTokenAuthorize'
94
+ import {
95
+ MPTokenIssuanceCreate,
96
+ validateMPTokenIssuanceCreate,
97
+ } from './MPTokenIssuanceCreate'
98
+ import {
99
+ MPTokenIssuanceDestroy,
100
+ validateMPTokenIssuanceDestroy,
101
+ } from './MPTokenIssuanceDestroy'
102
+ import {
103
+ MPTokenIssuanceSet,
104
+ validateMPTokenIssuanceSet,
105
+ } from './MPTokenIssuanceSet'
91
106
 
92
107
  /**
93
108
  * Transactions that can be submitted by clients
@@ -113,6 +128,10 @@ export type SubmittableTransaction =
113
128
  | EscrowCancel
114
129
  | EscrowCreate
115
130
  | EscrowFinish
131
+ | MPTokenAuthorize
132
+ | MPTokenIssuanceCreate
133
+ | MPTokenIssuanceDestroy
134
+ | MPTokenIssuanceSet
116
135
  | NFTokenAcceptOffer
117
136
  | NFTokenBurn
118
137
  | NFTokenCancelOffer
@@ -120,6 +139,8 @@ export type SubmittableTransaction =
120
139
  | NFTokenMint
121
140
  | OfferCancel
122
141
  | OfferCreate
142
+ | OracleDelete
143
+ | OracleSet
123
144
  | Payment
124
145
  | PaymentChannelClaim
125
146
  | PaymentChannelCreate
@@ -302,6 +323,22 @@ export function validate(transaction: Record<string, unknown>): void {
302
323
  validateEscrowFinish(tx)
303
324
  break
304
325
 
326
+ case 'MPTokenAuthorize':
327
+ validateMPTokenAuthorize(tx)
328
+ break
329
+
330
+ case 'MPTokenIssuanceCreate':
331
+ validateMPTokenIssuanceCreate(tx)
332
+ break
333
+
334
+ case 'MPTokenIssuanceDestroy':
335
+ validateMPTokenIssuanceDestroy(tx)
336
+ break
337
+
338
+ case 'MPTokenIssuanceSet':
339
+ validateMPTokenIssuanceSet(tx)
340
+ break
341
+
305
342
  case 'NFTokenAcceptOffer':
306
343
  validateNFTokenAcceptOffer(tx)
307
344
  break
@@ -330,6 +367,14 @@ export function validate(transaction: Record<string, unknown>): void {
330
367
  validateOfferCreate(tx)
331
368
  break
332
369
 
370
+ case 'OracleDelete':
371
+ validateOracleDelete(tx)
372
+ break
373
+
374
+ case 'OracleSet':
375
+ validateOracleSet(tx)
376
+ break
377
+
333
378
  case 'Payment':
334
379
  validatePayment(tx)
335
380
  break
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable no-param-reassign -- param reassign is safe */
2
2
  /* eslint-disable no-bitwise -- flags require bitwise operations */
3
-
4
3
  import { ValidationError } from '../../errors'
5
4
  import {
6
5
  AccountRootFlagsInterface,
@@ -18,6 +17,9 @@ import { PaymentChannelClaimFlags } from '../transactions/paymentChannelClaim'
18
17
  import type { Transaction } from '../transactions/transaction'
19
18
  import { TrustSetFlags } from '../transactions/trustSet'
20
19
  import { XChainModifyBridgeFlags } from '../transactions/XChainModifyBridge'
20
+ import { MPTokenAuthorizeFlags } from '../transactions/MPTokenAuthorize'
21
+ import { MPTokenIssuanceCreateFlags } from '../transactions/MPTokenIssuanceCreate'
22
+ import { MPTokenIssuanceSetFlags } from '../transactions/MPTokenIssuanceSet'
21
23
 
22
24
  import { isFlagEnabled } from '.'
23
25
 
@@ -49,6 +51,9 @@ const txToFlag = {
49
51
  AccountSet: AccountSetTfFlags,
50
52
  AMMDeposit: AMMDepositFlags,
51
53
  AMMWithdraw: AMMWithdrawFlags,
54
+ MPTokenAuthorize: MPTokenAuthorizeFlags,
55
+ MPTokenIssuanceCreate: MPTokenIssuanceCreateFlags,
56
+ MPTokenIssuanceSet: MPTokenIssuanceSetFlags,
52
57
  NFTokenCreateOffer: NFTokenCreateOfferFlags,
53
58
  NFTokenMint: NFTokenMintFlags,
54
59
  OfferCreate: OfferCreateFlags,
@@ -90,3 +95,30 @@ function convertFlagsToNumber(flags: GlobalFlags, flagEnum: any): number {
90
95
  return flags[flag] ? resultFlags | flagEnum[flag] : resultFlags
91
96
  }, 0)
92
97
  }
98
+
99
+ /**
100
+ * Convert a Transaction flags property into a map for easy interpretation.
101
+ *
102
+ * @param tx - A transaction to parse flags for.
103
+ * @returns A map with all flags as booleans.
104
+ */
105
+ export function parseTransactionFlags(tx: Transaction): object {
106
+ setTransactionFlagsToNumber(tx)
107
+ if (typeof tx.Flags !== 'number' || !tx.Flags || tx.Flags === 0) {
108
+ return {}
109
+ }
110
+
111
+ const flags = tx.Flags
112
+ const flagsMap = {}
113
+
114
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe member access
115
+ const flagEnum = txToFlag[tx.TransactionType]
116
+ Object.values(flagEnum).forEach((flag) => {
117
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- safe member access
118
+ if (typeof flag === 'string' && isFlagEnabled(flags, flagEnum[flag])) {
119
+ flagsMap[flag] = true
120
+ }
121
+ })
122
+
123
+ return flagsMap
124
+ }
@@ -1,7 +1,7 @@
1
1
  import BigNumber from 'bignumber.js'
2
2
  import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec'
3
3
 
4
- import type { Client } from '..'
4
+ import { type Client } from '..'
5
5
  import { ValidationError, XrplError } from '../errors'
6
6
  import { AccountInfoRequest, AccountObjectsRequest } from '../models/methods'
7
7
  import { Transaction } from '../models/transactions'
@@ -17,7 +17,6 @@ const LEDGER_OFFSET = 20
17
17
  // Mainnet and testnet are exceptions. More context: https://github.com/XRPLF/rippled/pull/4370
18
18
  const RESTRICTED_NETWORKS = 1024
19
19
  const REQUIRED_NETWORKID_VERSION = '1.11.0'
20
- const HOOKS_TESTNET_ID = 21338
21
20
 
22
21
  /**
23
22
  * Determines whether the source rippled version is not later than the target rippled version.
@@ -87,8 +86,7 @@ function isNotLaterRippledVersion(source: string, target: string): boolean {
87
86
 
88
87
  /**
89
88
  * Determine if the transaction required a networkID to be valid.
90
- * Transaction needs networkID if later than restricted ID and either the network is hooks testnet
91
- * or build version is >= 1.11.0
89
+ * Transaction needs networkID if later than restricted ID and build version is >= 1.11.0
92
90
  *
93
91
  * @param client -- The connected client.
94
92
  * @returns True if required networkID, false otherwise.
@@ -99,12 +97,8 @@ export function txNeedsNetworkID(client: Client): boolean {
99
97
  client.networkID > RESTRICTED_NETWORKS
100
98
  ) {
101
99
  if (
102
- (client.buildVersion &&
103
- isNotLaterRippledVersion(
104
- REQUIRED_NETWORKID_VERSION,
105
- client.buildVersion,
106
- )) ||
107
- client.networkID === HOOKS_TESTNET_ID
100
+ client.buildVersion &&
101
+ isNotLaterRippledVersion(REQUIRED_NETWORKID_VERSION, client.buildVersion)
108
102
  ) {
109
103
  return true
110
104
  }
@@ -1,6 +1,6 @@
1
1
  import BigNumber from 'bignumber.js'
2
2
 
3
- import type { Client } from '..'
3
+ import { type Client } from '..'
4
4
  import { XrplError } from '../errors'
5
5
 
6
6
  const NUM_DECIMAL_PLACES = 6
@@ -20,8 +20,11 @@ export default async function getFeeXrp(
20
20
  ): Promise<string> {
21
21
  const feeCushion = cushion ?? client.feeCushion
22
22
 
23
- const serverInfo = (await client.request({ command: 'server_info' })).result
24
- .info
23
+ const serverInfo = (
24
+ await client.request({
25
+ command: 'server_info',
26
+ })
27
+ ).result.info
25
28
 
26
29
  const baseFee = serverInfo.validated_ledger?.base_fee_xrp
27
30