xrpl 4.1.0 → 4.2.0-batch.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 (333) hide show
  1. package/build/xrpl-latest-min.js +3 -0
  2. package/build/xrpl-latest-min.js.map +1 -0
  3. package/build/xrpl-latest.js +528 -83
  4. package/build/xrpl-latest.js.map +1 -1
  5. package/dist/npm/Wallet/batchSigner.d.ts +8 -0
  6. package/dist/npm/Wallet/batchSigner.d.ts.map +1 -0
  7. package/dist/npm/Wallet/batchSigner.js +124 -0
  8. package/dist/npm/Wallet/batchSigner.js.map +1 -0
  9. package/dist/npm/Wallet/defaultFaucets.d.ts +2 -1
  10. package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
  11. package/dist/npm/Wallet/defaultFaucets.js +5 -0
  12. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  13. package/dist/npm/Wallet/index.d.ts.map +1 -1
  14. package/dist/npm/Wallet/index.js +8 -2
  15. package/dist/npm/Wallet/index.js.map +1 -1
  16. package/dist/npm/client/RequestManager.d.ts.map +1 -1
  17. package/dist/npm/client/RequestManager.js +3 -3
  18. package/dist/npm/client/RequestManager.js.map +1 -1
  19. package/dist/npm/client/connection.d.ts.map +1 -1
  20. package/dist/npm/client/connection.js.map +1 -1
  21. package/dist/npm/client/index.d.ts +4 -0
  22. package/dist/npm/client/index.d.ts.map +1 -1
  23. package/dist/npm/client/index.js +16 -9
  24. package/dist/npm/client/index.js.map +1 -1
  25. package/dist/npm/models/index.d.ts +1 -1
  26. package/dist/npm/models/index.d.ts.map +1 -1
  27. package/dist/npm/models/index.js +3 -2
  28. package/dist/npm/models/index.js.map +1 -1
  29. package/dist/npm/models/ledger/Credential.d.ts +2 -2
  30. package/dist/npm/models/ledger/Credential.d.ts.map +1 -1
  31. package/dist/npm/models/ledger/LedgerEntry.d.ts +3 -2
  32. package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
  33. package/dist/npm/models/ledger/PermissionedDomain.d.ts +11 -0
  34. package/dist/npm/models/ledger/PermissionedDomain.d.ts.map +1 -0
  35. package/dist/npm/models/ledger/PermissionedDomain.js +3 -0
  36. package/dist/npm/models/ledger/PermissionedDomain.js.map +1 -0
  37. package/dist/npm/models/ledger/RippleState.d.ts +3 -1
  38. package/dist/npm/models/ledger/RippleState.d.ts.map +1 -1
  39. package/dist/npm/models/ledger/RippleState.js +2 -0
  40. package/dist/npm/models/ledger/RippleState.js.map +1 -1
  41. package/dist/npm/models/methods/baseMethod.d.ts +1 -0
  42. package/dist/npm/models/methods/baseMethod.d.ts.map +1 -1
  43. package/dist/npm/models/methods/index.d.ts +5 -4
  44. package/dist/npm/models/methods/index.d.ts.map +1 -1
  45. package/dist/npm/models/methods/ledger.d.ts +2 -2
  46. package/dist/npm/models/methods/ledger.d.ts.map +1 -1
  47. package/dist/npm/models/methods/serverState.d.ts +1 -0
  48. package/dist/npm/models/methods/serverState.d.ts.map +1 -1
  49. package/dist/npm/models/methods/simulate.d.ts +42 -0
  50. package/dist/npm/models/methods/simulate.d.ts.map +1 -0
  51. package/dist/npm/models/methods/simulate.js +3 -0
  52. package/dist/npm/models/methods/simulate.js.map +1 -0
  53. package/dist/npm/models/transactions/AMMClawback.d.ts +17 -0
  54. package/dist/npm/models/transactions/AMMClawback.d.ts.map +1 -0
  55. package/dist/npm/models/transactions/AMMClawback.js +34 -0
  56. package/dist/npm/models/transactions/AMMClawback.js.map +1 -0
  57. package/dist/npm/models/transactions/AMMDeposit.d.ts +2 -2
  58. package/dist/npm/models/transactions/AMMDeposit.d.ts.map +1 -1
  59. package/dist/npm/models/transactions/AMMWithdraw.d.ts +2 -2
  60. package/dist/npm/models/transactions/AMMWithdraw.d.ts.map +1 -1
  61. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts +2 -2
  62. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  63. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  64. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  65. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  66. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  67. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  68. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  69. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  70. package/dist/npm/models/transactions/NFTokenMint.d.ts +5 -3
  71. package/dist/npm/models/transactions/NFTokenMint.d.ts.map +1 -1
  72. package/dist/npm/models/transactions/NFTokenMint.js +1 -0
  73. package/dist/npm/models/transactions/NFTokenMint.js.map +1 -1
  74. package/dist/npm/models/transactions/NFTokenModify.d.ts +9 -0
  75. package/dist/npm/models/transactions/NFTokenModify.d.ts.map +1 -0
  76. package/dist/npm/models/transactions/NFTokenModify.js +22 -0
  77. package/dist/npm/models/transactions/NFTokenModify.js.map +1 -0
  78. package/dist/npm/models/transactions/XChainModifyBridge.d.ts +2 -2
  79. package/dist/npm/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  80. package/dist/npm/models/transactions/accountDelete.d.ts.map +1 -1
  81. package/dist/npm/models/transactions/accountDelete.js +1 -1
  82. package/dist/npm/models/transactions/accountDelete.js.map +1 -1
  83. package/dist/npm/models/transactions/accountSet.d.ts +2 -2
  84. package/dist/npm/models/transactions/accountSet.d.ts.map +1 -1
  85. package/dist/npm/models/transactions/accountSet.js.map +1 -1
  86. package/dist/npm/models/transactions/batch.d.ts +39 -0
  87. package/dist/npm/models/transactions/batch.d.ts.map +1 -0
  88. package/dist/npm/models/transactions/batch.js +62 -0
  89. package/dist/npm/models/transactions/batch.js.map +1 -0
  90. package/dist/npm/models/transactions/common.d.ts +21 -6
  91. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  92. package/dist/npm/models/transactions/common.js +52 -16
  93. package/dist/npm/models/transactions/common.js.map +1 -1
  94. package/dist/npm/models/transactions/depositPreauth.d.ts.map +1 -1
  95. package/dist/npm/models/transactions/depositPreauth.js +2 -2
  96. package/dist/npm/models/transactions/depositPreauth.js.map +1 -1
  97. package/dist/npm/models/transactions/escrowFinish.d.ts.map +1 -1
  98. package/dist/npm/models/transactions/escrowFinish.js +1 -1
  99. package/dist/npm/models/transactions/escrowFinish.js.map +1 -1
  100. package/dist/npm/models/transactions/index.d.ts +6 -1
  101. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  102. package/dist/npm/models/transactions/index.js +5 -1
  103. package/dist/npm/models/transactions/index.js.map +1 -1
  104. package/dist/npm/models/transactions/metadata.d.ts +1 -0
  105. package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
  106. package/dist/npm/models/transactions/offerCreate.d.ts +2 -2
  107. package/dist/npm/models/transactions/offerCreate.d.ts.map +1 -1
  108. package/dist/npm/models/transactions/payment.d.ts +2 -2
  109. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  110. package/dist/npm/models/transactions/payment.js +1 -1
  111. package/dist/npm/models/transactions/payment.js.map +1 -1
  112. package/dist/npm/models/transactions/paymentChannelClaim.d.ts +2 -2
  113. package/dist/npm/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  114. package/dist/npm/models/transactions/paymentChannelClaim.js +1 -1
  115. package/dist/npm/models/transactions/paymentChannelClaim.js.map +1 -1
  116. package/dist/npm/models/transactions/permissionedDomainDelete.d.ts +7 -0
  117. package/dist/npm/models/transactions/permissionedDomainDelete.d.ts.map +1 -0
  118. package/dist/npm/models/transactions/permissionedDomainDelete.js +10 -0
  119. package/dist/npm/models/transactions/permissionedDomainDelete.js.map +1 -0
  120. package/dist/npm/models/transactions/permissionedDomainSet.d.ts +9 -0
  121. package/dist/npm/models/transactions/permissionedDomainSet.d.ts.map +1 -0
  122. package/dist/npm/models/transactions/permissionedDomainSet.js +13 -0
  123. package/dist/npm/models/transactions/permissionedDomainSet.js.map +1 -0
  124. package/dist/npm/models/transactions/transaction.d.ts +6 -1
  125. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  126. package/dist/npm/models/transactions/transaction.js +24 -1
  127. package/dist/npm/models/transactions/transaction.js.map +1 -1
  128. package/dist/npm/models/transactions/trustSet.d.ts +7 -3
  129. package/dist/npm/models/transactions/trustSet.d.ts.map +1 -1
  130. package/dist/npm/models/transactions/trustSet.js +2 -0
  131. package/dist/npm/models/transactions/trustSet.js.map +1 -1
  132. package/dist/npm/models/utils/flags.d.ts +2 -0
  133. package/dist/npm/models/utils/flags.d.ts.map +1 -1
  134. package/dist/npm/models/utils/flags.js +59 -26
  135. package/dist/npm/models/utils/flags.js.map +1 -1
  136. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  137. package/dist/npm/src/Wallet/batchSigner.d.ts +8 -0
  138. package/dist/npm/src/Wallet/batchSigner.d.ts.map +1 -0
  139. package/dist/npm/src/Wallet/batchSigner.js +124 -0
  140. package/dist/npm/src/Wallet/batchSigner.js.map +1 -0
  141. package/dist/npm/src/Wallet/defaultFaucets.d.ts +2 -1
  142. package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
  143. package/dist/npm/src/Wallet/defaultFaucets.js +5 -0
  144. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  145. package/dist/npm/src/Wallet/index.d.ts.map +1 -1
  146. package/dist/npm/src/Wallet/index.js +8 -2
  147. package/dist/npm/src/Wallet/index.js.map +1 -1
  148. package/dist/npm/src/client/RequestManager.d.ts.map +1 -1
  149. package/dist/npm/src/client/RequestManager.js +3 -3
  150. package/dist/npm/src/client/RequestManager.js.map +1 -1
  151. package/dist/npm/src/client/connection.d.ts.map +1 -1
  152. package/dist/npm/src/client/connection.js.map +1 -1
  153. package/dist/npm/src/client/index.d.ts +4 -0
  154. package/dist/npm/src/client/index.d.ts.map +1 -1
  155. package/dist/npm/src/client/index.js +16 -9
  156. package/dist/npm/src/client/index.js.map +1 -1
  157. package/dist/npm/src/models/index.d.ts +1 -1
  158. package/dist/npm/src/models/index.d.ts.map +1 -1
  159. package/dist/npm/src/models/index.js +3 -2
  160. package/dist/npm/src/models/index.js.map +1 -1
  161. package/dist/npm/src/models/ledger/Credential.d.ts +2 -2
  162. package/dist/npm/src/models/ledger/Credential.d.ts.map +1 -1
  163. package/dist/npm/src/models/ledger/LedgerEntry.d.ts +3 -2
  164. package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
  165. package/dist/npm/src/models/ledger/PermissionedDomain.d.ts +11 -0
  166. package/dist/npm/src/models/ledger/PermissionedDomain.d.ts.map +1 -0
  167. package/dist/npm/src/models/ledger/PermissionedDomain.js +3 -0
  168. package/dist/npm/src/models/ledger/PermissionedDomain.js.map +1 -0
  169. package/dist/npm/src/models/ledger/RippleState.d.ts +3 -1
  170. package/dist/npm/src/models/ledger/RippleState.d.ts.map +1 -1
  171. package/dist/npm/src/models/ledger/RippleState.js +2 -0
  172. package/dist/npm/src/models/ledger/RippleState.js.map +1 -1
  173. package/dist/npm/src/models/methods/baseMethod.d.ts +1 -0
  174. package/dist/npm/src/models/methods/baseMethod.d.ts.map +1 -1
  175. package/dist/npm/src/models/methods/index.d.ts +5 -4
  176. package/dist/npm/src/models/methods/index.d.ts.map +1 -1
  177. package/dist/npm/src/models/methods/ledger.d.ts +2 -2
  178. package/dist/npm/src/models/methods/ledger.d.ts.map +1 -1
  179. package/dist/npm/src/models/methods/serverState.d.ts +1 -0
  180. package/dist/npm/src/models/methods/serverState.d.ts.map +1 -1
  181. package/dist/npm/src/models/methods/simulate.d.ts +42 -0
  182. package/dist/npm/src/models/methods/simulate.d.ts.map +1 -0
  183. package/dist/npm/src/models/methods/simulate.js +3 -0
  184. package/dist/npm/src/models/methods/simulate.js.map +1 -0
  185. package/dist/npm/src/models/transactions/AMMClawback.d.ts +17 -0
  186. package/dist/npm/src/models/transactions/AMMClawback.d.ts.map +1 -0
  187. package/dist/npm/src/models/transactions/AMMClawback.js +34 -0
  188. package/dist/npm/src/models/transactions/AMMClawback.js.map +1 -0
  189. package/dist/npm/src/models/transactions/AMMDeposit.d.ts +2 -2
  190. package/dist/npm/src/models/transactions/AMMDeposit.d.ts.map +1 -1
  191. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts +2 -2
  192. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts.map +1 -1
  193. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts +2 -2
  194. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  195. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  196. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  197. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  198. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  199. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  200. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  201. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  202. package/dist/npm/src/models/transactions/NFTokenMint.d.ts +5 -3
  203. package/dist/npm/src/models/transactions/NFTokenMint.d.ts.map +1 -1
  204. package/dist/npm/src/models/transactions/NFTokenMint.js +1 -0
  205. package/dist/npm/src/models/transactions/NFTokenMint.js.map +1 -1
  206. package/dist/npm/src/models/transactions/NFTokenModify.d.ts +9 -0
  207. package/dist/npm/src/models/transactions/NFTokenModify.d.ts.map +1 -0
  208. package/dist/npm/src/models/transactions/NFTokenModify.js +22 -0
  209. package/dist/npm/src/models/transactions/NFTokenModify.js.map +1 -0
  210. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts +2 -2
  211. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  212. package/dist/npm/src/models/transactions/accountDelete.d.ts.map +1 -1
  213. package/dist/npm/src/models/transactions/accountDelete.js +1 -1
  214. package/dist/npm/src/models/transactions/accountDelete.js.map +1 -1
  215. package/dist/npm/src/models/transactions/accountSet.d.ts +2 -2
  216. package/dist/npm/src/models/transactions/accountSet.d.ts.map +1 -1
  217. package/dist/npm/src/models/transactions/accountSet.js.map +1 -1
  218. package/dist/npm/src/models/transactions/batch.d.ts +39 -0
  219. package/dist/npm/src/models/transactions/batch.d.ts.map +1 -0
  220. package/dist/npm/src/models/transactions/batch.js +62 -0
  221. package/dist/npm/src/models/transactions/batch.js.map +1 -0
  222. package/dist/npm/src/models/transactions/common.d.ts +21 -6
  223. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  224. package/dist/npm/src/models/transactions/common.js +52 -16
  225. package/dist/npm/src/models/transactions/common.js.map +1 -1
  226. package/dist/npm/src/models/transactions/depositPreauth.d.ts.map +1 -1
  227. package/dist/npm/src/models/transactions/depositPreauth.js +2 -2
  228. package/dist/npm/src/models/transactions/depositPreauth.js.map +1 -1
  229. package/dist/npm/src/models/transactions/escrowFinish.d.ts.map +1 -1
  230. package/dist/npm/src/models/transactions/escrowFinish.js +1 -1
  231. package/dist/npm/src/models/transactions/escrowFinish.js.map +1 -1
  232. package/dist/npm/src/models/transactions/index.d.ts +6 -1
  233. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  234. package/dist/npm/src/models/transactions/index.js +5 -1
  235. package/dist/npm/src/models/transactions/index.js.map +1 -1
  236. package/dist/npm/src/models/transactions/metadata.d.ts +1 -0
  237. package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
  238. package/dist/npm/src/models/transactions/offerCreate.d.ts +2 -2
  239. package/dist/npm/src/models/transactions/offerCreate.d.ts.map +1 -1
  240. package/dist/npm/src/models/transactions/payment.d.ts +2 -2
  241. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  242. package/dist/npm/src/models/transactions/payment.js +1 -1
  243. package/dist/npm/src/models/transactions/payment.js.map +1 -1
  244. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts +2 -2
  245. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  246. package/dist/npm/src/models/transactions/paymentChannelClaim.js +1 -1
  247. package/dist/npm/src/models/transactions/paymentChannelClaim.js.map +1 -1
  248. package/dist/npm/src/models/transactions/permissionedDomainDelete.d.ts +7 -0
  249. package/dist/npm/src/models/transactions/permissionedDomainDelete.d.ts.map +1 -0
  250. package/dist/npm/src/models/transactions/permissionedDomainDelete.js +10 -0
  251. package/dist/npm/src/models/transactions/permissionedDomainDelete.js.map +1 -0
  252. package/dist/npm/src/models/transactions/permissionedDomainSet.d.ts +9 -0
  253. package/dist/npm/src/models/transactions/permissionedDomainSet.d.ts.map +1 -0
  254. package/dist/npm/src/models/transactions/permissionedDomainSet.js +13 -0
  255. package/dist/npm/src/models/transactions/permissionedDomainSet.js.map +1 -0
  256. package/dist/npm/src/models/transactions/transaction.d.ts +6 -1
  257. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  258. package/dist/npm/src/models/transactions/transaction.js +24 -1
  259. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  260. package/dist/npm/src/models/transactions/trustSet.d.ts +7 -3
  261. package/dist/npm/src/models/transactions/trustSet.d.ts.map +1 -1
  262. package/dist/npm/src/models/transactions/trustSet.js +2 -0
  263. package/dist/npm/src/models/transactions/trustSet.js.map +1 -1
  264. package/dist/npm/src/models/utils/flags.d.ts +2 -0
  265. package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
  266. package/dist/npm/src/models/utils/flags.js +59 -26
  267. package/dist/npm/src/models/utils/flags.js.map +1 -1
  268. package/dist/npm/src/sugar/autofill.d.ts +3 -1
  269. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  270. package/dist/npm/src/sugar/autofill.js +100 -5
  271. package/dist/npm/src/sugar/autofill.js.map +1 -1
  272. package/dist/npm/src/sugar/submit.d.ts.map +1 -1
  273. package/dist/npm/src/sugar/submit.js +7 -7
  274. package/dist/npm/src/sugar/submit.js.map +1 -1
  275. package/dist/npm/src/utils/hashes/hashLedger.d.ts.map +1 -1
  276. package/dist/npm/src/utils/hashes/hashLedger.js +4 -1
  277. package/dist/npm/src/utils/hashes/hashLedger.js.map +1 -1
  278. package/dist/npm/sugar/autofill.d.ts +3 -1
  279. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  280. package/dist/npm/sugar/autofill.js +100 -5
  281. package/dist/npm/sugar/autofill.js.map +1 -1
  282. package/dist/npm/sugar/submit.d.ts.map +1 -1
  283. package/dist/npm/sugar/submit.js +7 -7
  284. package/dist/npm/sugar/submit.js.map +1 -1
  285. package/dist/npm/utils/hashes/hashLedger.d.ts.map +1 -1
  286. package/dist/npm/utils/hashes/hashLedger.js +4 -1
  287. package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
  288. package/package.json +5 -5
  289. package/src/Wallet/batchSigner.ts +222 -0
  290. package/src/Wallet/defaultFaucets.ts +6 -0
  291. package/src/Wallet/index.ts +9 -3
  292. package/src/client/RequestManager.ts +4 -1
  293. package/src/client/connection.ts +0 -1
  294. package/src/client/index.ts +49 -30
  295. package/src/models/index.ts +2 -1
  296. package/src/models/ledger/Credential.ts +2 -2
  297. package/src/models/ledger/LedgerEntry.ts +3 -0
  298. package/src/models/ledger/PermissionedDomain.ts +29 -0
  299. package/src/models/ledger/RippleState.ts +4 -0
  300. package/src/models/methods/baseMethod.ts +1 -0
  301. package/src/models/methods/index.ts +18 -0
  302. package/src/models/methods/ledger.ts +2 -2
  303. package/src/models/methods/serverState.ts +1 -0
  304. package/src/models/methods/simulate.ts +88 -0
  305. package/src/models/transactions/AMMClawback.ts +120 -0
  306. package/src/models/transactions/AMMDeposit.ts +2 -2
  307. package/src/models/transactions/AMMWithdraw.ts +2 -2
  308. package/src/models/transactions/MPTokenAuthorize.ts +2 -2
  309. package/src/models/transactions/MPTokenIssuanceCreate.ts +3 -2
  310. package/src/models/transactions/MPTokenIssuanceSet.ts +2 -2
  311. package/src/models/transactions/NFTokenCreateOffer.ts +2 -2
  312. package/src/models/transactions/NFTokenMint.ts +7 -2
  313. package/src/models/transactions/NFTokenModify.ts +67 -0
  314. package/src/models/transactions/XChainModifyBridge.ts +2 -2
  315. package/src/models/transactions/accountDelete.ts +2 -0
  316. package/src/models/transactions/accountSet.ts +2 -1
  317. package/src/models/transactions/batch.ts +147 -0
  318. package/src/models/transactions/common.ts +110 -30
  319. package/src/models/transactions/depositPreauth.ts +3 -0
  320. package/src/models/transactions/escrowFinish.ts +2 -0
  321. package/src/models/transactions/index.ts +10 -1
  322. package/src/models/transactions/metadata.ts +2 -0
  323. package/src/models/transactions/offerCreate.ts +2 -2
  324. package/src/models/transactions/payment.ts +4 -2
  325. package/src/models/transactions/paymentChannelClaim.ts +5 -2
  326. package/src/models/transactions/permissionedDomainDelete.ts +28 -0
  327. package/src/models/transactions/permissionedDomainSet.ts +54 -0
  328. package/src/models/transactions/transaction.ts +47 -2
  329. package/src/models/transactions/trustSet.ts +12 -2
  330. package/src/models/utils/flags.ts +85 -30
  331. package/src/sugar/autofill.ts +140 -11
  332. package/src/sugar/submit.ts +3 -5
  333. package/src/utils/hashes/hashLedger.ts +5 -2
@@ -1,4 +1,3 @@
1
- /* eslint-disable no-param-reassign -- param reassign is safe */
2
1
  /* eslint-disable no-bitwise -- flags require bitwise operations */
3
2
  import { ValidationError } from '../../errors'
4
3
  import {
@@ -6,8 +5,10 @@ import {
6
5
  AccountRootFlags,
7
6
  } from '../ledger/AccountRoot'
8
7
  import { AccountSetTfFlags } from '../transactions/accountSet'
8
+ import { AMMClawbackFlags } from '../transactions/AMMClawback'
9
9
  import { AMMDepositFlags } from '../transactions/AMMDeposit'
10
10
  import { AMMWithdrawFlags } from '../transactions/AMMWithdraw'
11
+ import { BatchFlags } from '../transactions/batch'
11
12
  import { GlobalFlags } from '../transactions/common'
12
13
  import { MPTokenAuthorizeFlags } from '../transactions/MPTokenAuthorize'
13
14
  import { MPTokenIssuanceCreateFlags } from '../transactions/MPTokenIssuanceCreate'
@@ -49,8 +50,10 @@ export function parseAccountRootFlags(
49
50
 
50
51
  const txToFlag = {
51
52
  AccountSet: AccountSetTfFlags,
53
+ AMMClawback: AMMClawbackFlags,
52
54
  AMMDeposit: AMMDepositFlags,
53
55
  AMMWithdraw: AMMWithdrawFlags,
56
+ Batch: BatchFlags,
54
57
  MPTokenAuthorize: MPTokenAuthorizeFlags,
55
58
  MPTokenIssuanceCreate: MPTokenIssuanceCreateFlags,
56
59
  MPTokenIssuanceSet: MPTokenIssuanceSetFlags,
@@ -63,36 +66,68 @@ const txToFlag = {
63
66
  XChainModifyBridge: XChainModifyBridgeFlags,
64
67
  }
65
68
 
69
+ function isTxToFlagKey(
70
+ transactionType: string,
71
+ ): transactionType is keyof typeof txToFlag {
72
+ return transactionType in txToFlag
73
+ }
74
+
66
75
  /**
67
76
  * Sets a transaction's flags to its numeric representation.
68
77
  *
78
+ * @deprecated
79
+ * This utility function is deprecated.
80
+ * Use convertTxFlagsToNumber() instead and use the returned value to modify the Transaction.Flags from the caller.
81
+ *
69
82
  * @param tx - A transaction to set its flags to its numeric representation.
70
83
  */
71
84
  export function setTransactionFlagsToNumber(tx: Transaction): void {
72
- if (tx.Flags == null) {
73
- tx.Flags = 0
74
- return
85
+ // eslint-disable-next-line no-console -- intended deprecation warning
86
+ console.warn(
87
+ 'This function is deprecated. Use convertTxFlagsToNumber() instead and use the returned value to modify the Transaction.Flags from the caller.',
88
+ )
89
+
90
+ if (tx.Flags) {
91
+ // eslint-disable-next-line no-param-reassign -- intended param reassign in setter, retain old functionality for compatibility
92
+ tx.Flags = convertTxFlagsToNumber(tx)
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Returns a Transaction's Flags as its numeric representation.
98
+ *
99
+ * @param tx - A Transaction to parse Flags for
100
+ * @returns A numerical representation of a Transaction's Flags
101
+ */
102
+ export function convertTxFlagsToNumber(tx: Transaction): number {
103
+ if (!tx.Flags) {
104
+ return 0
75
105
  }
76
106
  if (typeof tx.Flags === 'number') {
77
- return
107
+ return tx.Flags
78
108
  }
79
109
 
80
- tx.Flags = txToFlag[tx.TransactionType]
81
- ? convertFlagsToNumber(tx.Flags, txToFlag[tx.TransactionType])
82
- : 0
83
- }
110
+ if (isTxToFlagKey(tx.TransactionType)) {
111
+ const flagEnum = txToFlag[tx.TransactionType]
112
+ return Object.keys(tx.Flags).reduce((resultFlags, flag) => {
113
+ if (flagEnum[flag] == null) {
114
+ throw new ValidationError(
115
+ `Invalid flag ${flag}. Valid flags are ${JSON.stringify(flagEnum)}`,
116
+ )
117
+ }
118
+
119
+ return tx.Flags?.[flag] ? resultFlags | flagEnum[flag] : resultFlags
120
+ }, 0)
121
+ }
84
122
 
85
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- added ValidationError check for flagEnum
86
- function convertFlagsToNumber(flags: GlobalFlags, flagEnum: any): number {
87
- return Object.keys(flags).reduce((resultFlags, flag) => {
88
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- safe member access
89
- if (flagEnum[flag] == null) {
123
+ return Object.keys(tx.Flags).reduce((resultFlags, flag) => {
124
+ if (GlobalFlags[flag] == null) {
90
125
  throw new ValidationError(
91
- `flag ${flag} doesn't exist in flagEnum: ${JSON.stringify(flagEnum)}`,
126
+ `Invalid flag ${flag}. Valid flags are ${JSON.stringify(GlobalFlags)}`,
92
127
  )
93
128
  }
94
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- safe member access
95
- return flags[flag] ? resultFlags | flagEnum[flag] : resultFlags
129
+
130
+ return tx.Flags?.[flag] ? resultFlags | GlobalFlags[flag] : resultFlags
96
131
  }, 0)
97
132
  }
98
133
 
@@ -103,22 +138,42 @@ function convertFlagsToNumber(flags: GlobalFlags, flagEnum: any): number {
103
138
  * @returns A map with all flags as booleans.
104
139
  */
105
140
  export function parseTransactionFlags(tx: Transaction): object {
106
- setTransactionFlagsToNumber(tx)
107
- if (typeof tx.Flags !== 'number' || !tx.Flags || tx.Flags === 0) {
141
+ const flags = convertTxFlagsToNumber(tx)
142
+ if (flags === 0) {
108
143
  return {}
109
144
  }
110
145
 
111
- const flags = tx.Flags
112
- const flagsMap = {}
146
+ const booleanFlagMap = {}
113
147
 
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
- })
148
+ if (isTxToFlagKey(tx.TransactionType)) {
149
+ const transactionTypeFlags = txToFlag[tx.TransactionType]
150
+ Object.values(transactionTypeFlags).forEach((flag) => {
151
+ if (
152
+ typeof flag === 'string' &&
153
+ isFlagEnabled(flags, transactionTypeFlags[flag])
154
+ ) {
155
+ booleanFlagMap[flag] = true
156
+ }
157
+ })
158
+ }
122
159
 
123
- return flagsMap
160
+ return booleanFlagMap
161
+ }
162
+
163
+ /**
164
+ * Determines whether a transaction has a certain flag enabled.
165
+ *
166
+ * @param tx The transaction.
167
+ * @param flag The flag to check.
168
+ * @returns Whether `flag` is enabled on `tx`.
169
+ */
170
+ export function hasFlag(tx: Transaction, flag: number): boolean {
171
+ if (tx.Flags == null) {
172
+ return false
173
+ }
174
+ if (typeof tx.Flags === 'number') {
175
+ return isFlagEnabled(tx.Flags, flag)
176
+ }
177
+ const txFlagNum = convertTxFlagsToNumber(tx)
178
+ return isFlagEnabled(txFlagNum, flag)
124
179
  }
@@ -1,10 +1,12 @@
1
+ /* eslint-disable max-lines -- lots of helper functions needed for autofill */
1
2
  import BigNumber from 'bignumber.js'
2
3
  import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec'
3
4
 
4
5
  import { type Client } from '..'
5
6
  import { ValidationError, XrplError } from '../errors'
6
7
  import { AccountInfoRequest, AccountObjectsRequest } from '../models/methods'
7
- import { Transaction } from '../models/transactions'
8
+ import { Batch, Payment, Transaction } from '../models/transactions'
9
+ import { GlobalFlags } from '../models/transactions/common'
8
10
  import { xrpToDrops } from '../utils'
9
11
 
10
12
  import getFeeXrp from './getFeeXrp'
@@ -207,6 +209,20 @@ function convertToClassicAddress(tx: Transaction, fieldName: string): void {
207
209
  }
208
210
  }
209
211
 
212
+ // Helper function to get the next valid sequence number for an account.
213
+ async function getNextValidSequenceNumber(
214
+ client: Client,
215
+ account: string,
216
+ ): Promise<number> {
217
+ const request: AccountInfoRequest = {
218
+ command: 'account_info',
219
+ account,
220
+ ledger_index: 'current',
221
+ }
222
+ const data = await client.request(request)
223
+ return data.result.account_data.Sequence
224
+ }
225
+
210
226
  /**
211
227
  * Sets the next valid sequence number for a transaction.
212
228
  *
@@ -219,14 +235,8 @@ export async function setNextValidSequenceNumber(
219
235
  client: Client,
220
236
  tx: Transaction,
221
237
  ): Promise<void> {
222
- const request: AccountInfoRequest = {
223
- command: 'account_info',
224
- account: tx.Account,
225
- ledger_index: 'current',
226
- }
227
- const data = await client.request(request)
228
238
  // eslint-disable-next-line no-param-reassign, require-atomic-updates -- param reassign is safe with no race condition
229
- tx.Sequence = data.result.account_data.Sequence
239
+ tx.Sequence = await getNextValidSequenceNumber(client, tx.Account)
230
240
  }
231
241
 
232
242
  /**
@@ -274,13 +284,16 @@ export async function calculateFeePerTransactionType(
274
284
  scaleValue(netFeeDrops, 33 + fulfillmentBytesSize / 16),
275
285
  )
276
286
  baseFee = product.dp(0, BigNumber.ROUND_CEIL)
277
- }
278
-
279
- if (
287
+ } else if (
280
288
  tx.TransactionType === 'AccountDelete' ||
281
289
  tx.TransactionType === 'AMMCreate'
282
290
  ) {
283
291
  baseFee = await fetchAccountDeleteFee(client)
292
+ } else if (tx.TransactionType === 'Batch') {
293
+ baseFee = BigNumber.sum(
294
+ baseFee.times(2),
295
+ baseFee.times(tx.RawTransactions.length + (tx.BatchSigners?.length ?? 0)),
296
+ )
284
297
  }
285
298
 
286
299
  /*
@@ -359,3 +372,119 @@ export async function checkAccountDeleteBlockers(
359
372
  resolve()
360
373
  })
361
374
  }
375
+ /**
376
+ * Replaces Amount with DeliverMax if needed.
377
+ *
378
+ * @param tx - The transaction object.
379
+ * @throws ValidationError if Amount and DeliverMax are both provided but do not match.
380
+ */
381
+ export function handleDeliverMax(tx: Payment): void {
382
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
383
+ // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
384
+ if (tx.DeliverMax != null) {
385
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed here
386
+ if (tx.Amount == null) {
387
+ // If only DeliverMax is provided, use it to populate the Amount field
388
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
389
+ // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
390
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, no-param-reassign -- known RPC-level property
391
+ tx.Amount = tx.DeliverMax
392
+ }
393
+
394
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
395
+ // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
396
+
397
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed here
398
+ if (tx.Amount != null && tx.Amount !== tx.DeliverMax) {
399
+ throw new ValidationError(
400
+ 'PaymentTransaction: Amount and DeliverMax fields must be identical when both are provided',
401
+ )
402
+ }
403
+
404
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
405
+ // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
406
+ // eslint-disable-next-line no-param-reassign -- needed here
407
+ delete tx.DeliverMax
408
+ }
409
+ }
410
+
411
+ /**
412
+ * Autofills all the relevant `x` fields.
413
+ *
414
+ * @param client - The client object.
415
+ * @param tx - The transaction object.
416
+ * @returns A promise that resolves with void if there are no blockers, or rejects with an XrplError if there are blockers.
417
+ */
418
+ // eslint-disable-next-line complexity, max-lines-per-function, max-statements -- needed here, lots to check
419
+ export async function autofillBatchTxn(
420
+ client: Client,
421
+ tx: Batch,
422
+ ): Promise<void> {
423
+ const accountSequences: Record<string, number> = {}
424
+
425
+ for await (const rawTxn of tx.RawTransactions) {
426
+ const txn = rawTxn.RawTransaction
427
+
428
+ // Flag processing
429
+ /* eslint-disable no-bitwise -- needed here for flag parsing */
430
+ if (txn.Flags == null) {
431
+ txn.Flags = GlobalFlags.tfInnerBatchTxn
432
+ } else if (typeof txn.Flags === 'number') {
433
+ if (!((txn.Flags & GlobalFlags.tfInnerBatchTxn) === 0)) {
434
+ txn.Flags |= GlobalFlags.tfInnerBatchTxn
435
+ }
436
+ } else if (!txn.Flags.tfInnerBatchTxn) {
437
+ txn.Flags.tfInnerBatchTxn = true
438
+ }
439
+ /* eslint-enable no-bitwise */
440
+
441
+ // Sequence processing
442
+ if (txn.Sequence == null && txn.TicketSequence == null) {
443
+ if (txn.Account in accountSequences) {
444
+ txn.Sequence = accountSequences[txn.Account]
445
+ accountSequences[txn.Account] += 1
446
+ } else {
447
+ const nextSequence = await getNextValidSequenceNumber(
448
+ client,
449
+ txn.Account,
450
+ )
451
+ const sequence =
452
+ txn.Account === tx.Account ? nextSequence + 1 : nextSequence
453
+ accountSequences[txn.Account] = sequence + 1
454
+ txn.Sequence = sequence
455
+ }
456
+ }
457
+
458
+ if (txn.Fee == null) {
459
+ txn.Fee = '0'
460
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- JS check
461
+ } else if (txn.Fee !== '0') {
462
+ throw new XrplError('Must have `Fee of "0" in inner Batch transaction.')
463
+ }
464
+
465
+ if (txn.SigningPubKey == null) {
466
+ txn.SigningPubKey = ''
467
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- JS check
468
+ } else if (txn.SigningPubKey !== '') {
469
+ throw new XrplError(
470
+ 'Must have `SigningPubKey` of "" in inner Batch transaction.',
471
+ )
472
+ }
473
+
474
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS
475
+ if (txn.TxnSignature != null) {
476
+ throw new XrplError(
477
+ 'Must not have `TxnSignature` in inner Batch transaction.',
478
+ )
479
+ }
480
+
481
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS
482
+ if (txn.Signers != null) {
483
+ throw new XrplError('Must not have `Signers` in inner Batch transaction.')
484
+ }
485
+
486
+ if (txn.NetworkID == null) {
487
+ txn.NetworkID = txNeedsNetworkID(client) ? client.networkID : undefined
488
+ }
489
+ }
490
+ }
@@ -1,5 +1,3 @@
1
- import { decode, encode } from 'ripple-binary-codec'
2
-
3
1
  import type {
4
2
  Client,
5
3
  SubmitRequest,
@@ -12,6 +10,7 @@ import { ValidationError, XrplError } from '../errors'
12
10
  import { Signer } from '../models/common'
13
11
  import { TxResponse } from '../models/methods'
14
12
  import { BaseTransaction } from '../models/transactions/common'
13
+ import { decode, encode } from '../utils'
15
14
 
16
15
  /** Approximate time for a ledger to close, in milliseconds */
17
16
  const LEDGER_CLOSE_TIME = 1000
@@ -52,7 +51,7 @@ export async function submitRequest(
52
51
  failHard = false,
53
52
  ): Promise<SubmitResponse> {
54
53
  if (!isSigned(signedTransaction)) {
55
- throw new ValidationError('Transaction must be signed')
54
+ throw new ValidationError('Transaction must be signed.')
56
55
  }
57
56
 
58
57
  const signedTxEncoded =
@@ -176,7 +175,6 @@ function isSigned(transaction: SubmittableTransaction | string): boolean {
176
175
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- we know that tx.Signers is an array of Signers
177
176
  const signers = tx.Signers as Signer[]
178
177
  for (const signer of signers) {
179
- // eslint-disable-next-line max-depth -- necessary for checking if signer is signed
180
178
  if (
181
179
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- necessary check
182
180
  signer.Signer.SigningPubKey == null ||
@@ -284,7 +282,7 @@ export function getLastLedgerSequence(
284
282
  transaction: Transaction | string,
285
283
  ): number | null {
286
284
  const tx = typeof transaction === 'string' ? decode(transaction) : transaction
287
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- converts LastLedgSeq to number if present.
285
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- converts LastLedgerSeq to number if present.
288
286
  return tx.LastLedgerSequence as number | null
289
287
  }
290
288
 
@@ -12,6 +12,8 @@ import { APIVersion } from '../../models'
12
12
  import { LedgerEntry } from '../../models/ledger'
13
13
  import { LedgerVersionMap } from '../../models/ledger/Ledger'
14
14
  import { Transaction, TransactionMetadata } from '../../models/transactions'
15
+ import { GlobalFlags } from '../../models/transactions/common'
16
+ import { hasFlag } from '../../models/utils/flags'
15
17
 
16
18
  import HashPrefix from './HashPrefix'
17
19
  import sha512Half from './sha512Half'
@@ -66,7 +68,7 @@ function addLengthPrefix(hex: string): string {
66
68
  *
67
69
  * @param tx - A transaction to hash. Tx may be in binary blob form. Tx must be signed.
68
70
  * @returns A hash of tx.
69
- * @throws ValidationError if the Transaction is unsigned.\
71
+ * @throws ValidationError if the Transaction is unsigned.
70
72
  * @category Utilities
71
73
  */
72
74
  export function hashSignedTx(tx: Transaction | string): string {
@@ -84,7 +86,8 @@ export function hashSignedTx(tx: Transaction | string): string {
84
86
  if (
85
87
  txObject.TxnSignature === undefined &&
86
88
  txObject.Signers === undefined &&
87
- txObject.SigningPubKey === undefined
89
+ txObject.SigningPubKey === undefined &&
90
+ !hasFlag(txObject, GlobalFlags.tfInnerBatchTxn)
88
91
  ) {
89
92
  throw new ValidationError('The transaction must be signed to hash it.')
90
93
  }