xrpl 4.3.0-smartescrow.3 → 4.4.0-smartescrow.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 (476) hide show
  1. package/README.md +2 -2
  2. package/build/xrpl-latest-min.js +3 -0
  3. package/build/xrpl-latest-min.js.map +1 -0
  4. package/build/xrpl-latest.js +1457 -1505
  5. package/build/xrpl-latest.js.map +1 -1
  6. package/dist/npm/Wallet/batchSigner.d.ts +8 -0
  7. package/dist/npm/Wallet/batchSigner.d.ts.map +1 -0
  8. package/dist/npm/Wallet/batchSigner.js +111 -0
  9. package/dist/npm/Wallet/batchSigner.js.map +1 -0
  10. package/dist/npm/Wallet/defaultFaucets.d.ts +3 -2
  11. package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
  12. package/dist/npm/Wallet/defaultFaucets.js +16 -15
  13. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  14. package/dist/npm/Wallet/fundWallet.d.ts.map +1 -1
  15. package/dist/npm/Wallet/fundWallet.js +8 -16
  16. package/dist/npm/Wallet/fundWallet.js.map +1 -1
  17. package/dist/npm/Wallet/index.d.ts.map +1 -1
  18. package/dist/npm/Wallet/index.js +10 -4
  19. package/dist/npm/Wallet/index.js.map +1 -1
  20. package/dist/npm/Wallet/signer.d.ts.map +1 -1
  21. package/dist/npm/Wallet/signer.js +4 -20
  22. package/dist/npm/Wallet/signer.js.map +1 -1
  23. package/dist/npm/Wallet/utils.d.ts +9 -0
  24. package/dist/npm/Wallet/utils.d.ts.map +1 -0
  25. package/dist/npm/Wallet/utils.js +28 -0
  26. package/dist/npm/Wallet/utils.js.map +1 -0
  27. package/dist/npm/client/RequestManager.d.ts.map +1 -1
  28. package/dist/npm/client/RequestManager.js +3 -3
  29. package/dist/npm/client/RequestManager.js.map +1 -1
  30. package/dist/npm/client/connection.d.ts.map +1 -1
  31. package/dist/npm/client/connection.js.map +1 -1
  32. package/dist/npm/client/index.d.ts +3 -3
  33. package/dist/npm/client/index.d.ts.map +1 -1
  34. package/dist/npm/client/index.js +14 -14
  35. package/dist/npm/client/index.js.map +1 -1
  36. package/dist/npm/client/partialPayment.d.ts.map +1 -1
  37. package/dist/npm/client/partialPayment.js +2 -2
  38. package/dist/npm/client/partialPayment.js.map +1 -1
  39. package/dist/npm/models/common/index.d.ts +1 -0
  40. package/dist/npm/models/common/index.d.ts.map +1 -1
  41. package/dist/npm/models/ledger/AccountRoot.d.ts +1 -1
  42. package/dist/npm/models/ledger/AccountRoot.d.ts.map +1 -1
  43. package/dist/npm/models/ledger/Credential.d.ts +2 -2
  44. package/dist/npm/models/ledger/Credential.d.ts.map +1 -1
  45. package/dist/npm/models/ledger/LedgerEntry.d.ts +3 -2
  46. package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
  47. package/dist/npm/models/ledger/Vault.d.ts +21 -0
  48. package/dist/npm/models/ledger/Vault.d.ts.map +1 -0
  49. package/dist/npm/models/ledger/Vault.js +3 -0
  50. package/dist/npm/models/ledger/Vault.js.map +1 -0
  51. package/dist/npm/models/ledger/XChainOwnedClaimID.d.ts +1 -2
  52. package/dist/npm/models/ledger/XChainOwnedClaimID.d.ts.map +1 -1
  53. package/dist/npm/models/ledger/index.d.ts +2 -1
  54. package/dist/npm/models/ledger/index.d.ts.map +1 -1
  55. package/dist/npm/models/ledger/index.js.map +1 -1
  56. package/dist/npm/models/methods/baseMethod.d.ts +1 -0
  57. package/dist/npm/models/methods/baseMethod.d.ts.map +1 -1
  58. package/dist/npm/models/methods/index.d.ts +5 -4
  59. package/dist/npm/models/methods/index.d.ts.map +1 -1
  60. package/dist/npm/models/methods/vaultInfo.d.ts +46 -0
  61. package/dist/npm/models/methods/vaultInfo.d.ts.map +1 -0
  62. package/dist/npm/models/methods/vaultInfo.js +3 -0
  63. package/dist/npm/models/methods/vaultInfo.js.map +1 -0
  64. package/dist/npm/models/transactions/AMMBid.d.ts.map +1 -1
  65. package/dist/npm/models/transactions/AMMBid.js +7 -5
  66. package/dist/npm/models/transactions/AMMBid.js.map +1 -1
  67. package/dist/npm/models/transactions/AMMClawback.d.ts +2 -2
  68. package/dist/npm/models/transactions/AMMClawback.d.ts.map +1 -1
  69. package/dist/npm/models/transactions/AMMClawback.js +5 -6
  70. package/dist/npm/models/transactions/AMMClawback.js.map +1 -1
  71. package/dist/npm/models/transactions/AMMDelete.d.ts.map +1 -1
  72. package/dist/npm/models/transactions/AMMDelete.js +2 -2
  73. package/dist/npm/models/transactions/AMMDelete.js.map +1 -1
  74. package/dist/npm/models/transactions/AMMDeposit.d.ts +2 -2
  75. package/dist/npm/models/transactions/AMMDeposit.d.ts.map +1 -1
  76. package/dist/npm/models/transactions/AMMDeposit.js +3 -3
  77. package/dist/npm/models/transactions/AMMDeposit.js.map +1 -1
  78. package/dist/npm/models/transactions/AMMVote.d.ts.map +1 -1
  79. package/dist/npm/models/transactions/AMMVote.js +2 -2
  80. package/dist/npm/models/transactions/AMMVote.js.map +1 -1
  81. package/dist/npm/models/transactions/AMMWithdraw.d.ts +2 -2
  82. package/dist/npm/models/transactions/AMMWithdraw.d.ts.map +1 -1
  83. package/dist/npm/models/transactions/AMMWithdraw.js +3 -3
  84. package/dist/npm/models/transactions/AMMWithdraw.js.map +1 -1
  85. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts +2 -2
  86. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  87. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  88. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  89. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js +3 -3
  90. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  91. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  92. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  93. package/dist/npm/models/transactions/MPTokenIssuanceSet.js +4 -4
  94. package/dist/npm/models/transactions/MPTokenIssuanceSet.js.map +1 -1
  95. package/dist/npm/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
  96. package/dist/npm/models/transactions/NFTokenCancelOffer.js +1 -1
  97. package/dist/npm/models/transactions/NFTokenCancelOffer.js.map +1 -1
  98. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  99. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  100. package/dist/npm/models/transactions/NFTokenCreateOffer.js +6 -2
  101. package/dist/npm/models/transactions/NFTokenCreateOffer.js.map +1 -1
  102. package/dist/npm/models/transactions/NFTokenMint.d.ts +2 -2
  103. package/dist/npm/models/transactions/NFTokenMint.d.ts.map +1 -1
  104. package/dist/npm/models/transactions/XChainAddAccountCreateAttestation.js.map +1 -1
  105. package/dist/npm/models/transactions/XChainAddClaimAttestation.js.map +1 -1
  106. package/dist/npm/models/transactions/XChainClaim.js.map +1 -1
  107. package/dist/npm/models/transactions/XChainCommit.js.map +1 -1
  108. package/dist/npm/models/transactions/XChainModifyBridge.d.ts +2 -2
  109. package/dist/npm/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  110. package/dist/npm/models/transactions/accountDelete.d.ts.map +1 -1
  111. package/dist/npm/models/transactions/accountDelete.js.map +1 -1
  112. package/dist/npm/models/transactions/accountSet.d.ts +2 -2
  113. package/dist/npm/models/transactions/accountSet.d.ts.map +1 -1
  114. package/dist/npm/models/transactions/accountSet.js.map +1 -1
  115. package/dist/npm/models/transactions/batch.d.ts +39 -0
  116. package/dist/npm/models/transactions/batch.d.ts.map +1 -0
  117. package/dist/npm/models/transactions/batch.js +64 -0
  118. package/dist/npm/models/transactions/batch.js.map +1 -0
  119. package/dist/npm/models/transactions/checkCreate.d.ts.map +1 -1
  120. package/dist/npm/models/transactions/checkCreate.js +1 -2
  121. package/dist/npm/models/transactions/checkCreate.js.map +1 -1
  122. package/dist/npm/models/transactions/clawback.d.ts +2 -2
  123. package/dist/npm/models/transactions/clawback.d.ts.map +1 -1
  124. package/dist/npm/models/transactions/clawback.js +4 -6
  125. package/dist/npm/models/transactions/clawback.js.map +1 -1
  126. package/dist/npm/models/transactions/common.d.ts +30 -9
  127. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  128. package/dist/npm/models/transactions/common.js +74 -36
  129. package/dist/npm/models/transactions/common.js.map +1 -1
  130. package/dist/npm/models/transactions/delegateSet.d.ts.map +1 -1
  131. package/dist/npm/models/transactions/delegateSet.js +1 -0
  132. package/dist/npm/models/transactions/delegateSet.js.map +1 -1
  133. package/dist/npm/models/transactions/depositPreauth.d.ts.map +1 -1
  134. package/dist/npm/models/transactions/depositPreauth.js.map +1 -1
  135. package/dist/npm/models/transactions/escrowFinish.d.ts.map +1 -1
  136. package/dist/npm/models/transactions/escrowFinish.js.map +1 -1
  137. package/dist/npm/models/transactions/index.d.ts +9 -2
  138. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  139. package/dist/npm/models/transactions/index.js +4 -1
  140. package/dist/npm/models/transactions/index.js.map +1 -1
  141. package/dist/npm/models/transactions/metadata.d.ts +1 -0
  142. package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
  143. package/dist/npm/models/transactions/offerCreate.d.ts +2 -2
  144. package/dist/npm/models/transactions/offerCreate.d.ts.map +1 -1
  145. package/dist/npm/models/transactions/oracleSet.d.ts.map +1 -1
  146. package/dist/npm/models/transactions/oracleSet.js +22 -21
  147. package/dist/npm/models/transactions/oracleSet.js.map +1 -1
  148. package/dist/npm/models/transactions/payment.d.ts +3 -2
  149. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  150. package/dist/npm/models/transactions/payment.js +9 -4
  151. package/dist/npm/models/transactions/payment.js.map +1 -1
  152. package/dist/npm/models/transactions/paymentChannelClaim.d.ts +2 -2
  153. package/dist/npm/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  154. package/dist/npm/models/transactions/paymentChannelClaim.js.map +1 -1
  155. package/dist/npm/models/transactions/permissionedDomainSet.d.ts.map +1 -1
  156. package/dist/npm/models/transactions/permissionedDomainSet.js +1 -1
  157. package/dist/npm/models/transactions/permissionedDomainSet.js.map +1 -1
  158. package/dist/npm/models/transactions/signerListSet.d.ts.map +1 -1
  159. package/dist/npm/models/transactions/signerListSet.js +10 -16
  160. package/dist/npm/models/transactions/signerListSet.js.map +1 -1
  161. package/dist/npm/models/transactions/transaction.d.ts +8 -1
  162. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  163. package/dist/npm/models/transactions/transaction.js +35 -35
  164. package/dist/npm/models/transactions/transaction.js.map +1 -1
  165. package/dist/npm/models/transactions/trustSet.d.ts +2 -2
  166. package/dist/npm/models/transactions/trustSet.d.ts.map +1 -1
  167. package/dist/npm/models/transactions/vaultClawback.d.ts +10 -0
  168. package/dist/npm/models/transactions/vaultClawback.d.ts.map +1 -0
  169. package/dist/npm/models/transactions/vaultClawback.js +12 -0
  170. package/dist/npm/models/transactions/vaultClawback.js.map +1 -0
  171. package/dist/npm/models/transactions/vaultCreate.d.ts +24 -0
  172. package/dist/npm/models/transactions/vaultCreate.d.ts.map +1 -0
  173. package/dist/npm/models/transactions/vaultCreate.js +51 -0
  174. package/dist/npm/models/transactions/vaultCreate.js.map +1 -0
  175. package/dist/npm/models/transactions/vaultDelete.d.ts +7 -0
  176. package/dist/npm/models/transactions/vaultDelete.d.ts.map +1 -0
  177. package/dist/npm/models/transactions/vaultDelete.js +10 -0
  178. package/dist/npm/models/transactions/vaultDelete.js.map +1 -0
  179. package/dist/npm/models/transactions/vaultDeposit.d.ts +9 -0
  180. package/dist/npm/models/transactions/vaultDeposit.d.ts.map +1 -0
  181. package/dist/npm/models/transactions/vaultDeposit.js +11 -0
  182. package/dist/npm/models/transactions/vaultDeposit.js.map +1 -0
  183. package/dist/npm/models/transactions/vaultSet.d.ts +10 -0
  184. package/dist/npm/models/transactions/vaultSet.d.ts.map +1 -0
  185. package/dist/npm/models/transactions/vaultSet.js +25 -0
  186. package/dist/npm/models/transactions/vaultSet.js.map +1 -0
  187. package/dist/npm/models/transactions/vaultWithdraw.d.ts +10 -0
  188. package/dist/npm/models/transactions/vaultWithdraw.d.ts.map +1 -0
  189. package/dist/npm/models/transactions/vaultWithdraw.js +12 -0
  190. package/dist/npm/models/transactions/vaultWithdraw.js.map +1 -0
  191. package/dist/npm/models/utils/flags.d.ts.map +1 -1
  192. package/dist/npm/models/utils/flags.js +26 -9
  193. package/dist/npm/models/utils/flags.js.map +1 -1
  194. package/dist/npm/models/utils/index.d.ts +2 -0
  195. package/dist/npm/models/utils/index.d.ts.map +1 -1
  196. package/dist/npm/models/utils/index.js +11 -1
  197. package/dist/npm/models/utils/index.js.map +1 -1
  198. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  199. package/dist/npm/src/Wallet/batchSigner.d.ts +8 -0
  200. package/dist/npm/src/Wallet/batchSigner.d.ts.map +1 -0
  201. package/dist/npm/src/Wallet/batchSigner.js +111 -0
  202. package/dist/npm/src/Wallet/batchSigner.js.map +1 -0
  203. package/dist/npm/src/Wallet/defaultFaucets.d.ts +3 -2
  204. package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
  205. package/dist/npm/src/Wallet/defaultFaucets.js +16 -15
  206. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  207. package/dist/npm/src/Wallet/fundWallet.d.ts.map +1 -1
  208. package/dist/npm/src/Wallet/fundWallet.js +8 -16
  209. package/dist/npm/src/Wallet/fundWallet.js.map +1 -1
  210. package/dist/npm/src/Wallet/index.d.ts.map +1 -1
  211. package/dist/npm/src/Wallet/index.js +10 -4
  212. package/dist/npm/src/Wallet/index.js.map +1 -1
  213. package/dist/npm/src/Wallet/signer.d.ts.map +1 -1
  214. package/dist/npm/src/Wallet/signer.js +4 -20
  215. package/dist/npm/src/Wallet/signer.js.map +1 -1
  216. package/dist/npm/src/Wallet/utils.d.ts +9 -0
  217. package/dist/npm/src/Wallet/utils.d.ts.map +1 -0
  218. package/dist/npm/src/Wallet/utils.js +28 -0
  219. package/dist/npm/src/Wallet/utils.js.map +1 -0
  220. package/dist/npm/src/client/RequestManager.d.ts.map +1 -1
  221. package/dist/npm/src/client/RequestManager.js +3 -3
  222. package/dist/npm/src/client/RequestManager.js.map +1 -1
  223. package/dist/npm/src/client/connection.d.ts.map +1 -1
  224. package/dist/npm/src/client/connection.js.map +1 -1
  225. package/dist/npm/src/client/index.d.ts +3 -3
  226. package/dist/npm/src/client/index.d.ts.map +1 -1
  227. package/dist/npm/src/client/index.js +14 -14
  228. package/dist/npm/src/client/index.js.map +1 -1
  229. package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
  230. package/dist/npm/src/client/partialPayment.js +2 -2
  231. package/dist/npm/src/client/partialPayment.js.map +1 -1
  232. package/dist/npm/src/models/common/index.d.ts +1 -0
  233. package/dist/npm/src/models/common/index.d.ts.map +1 -1
  234. package/dist/npm/src/models/ledger/AccountRoot.d.ts +1 -1
  235. package/dist/npm/src/models/ledger/AccountRoot.d.ts.map +1 -1
  236. package/dist/npm/src/models/ledger/Credential.d.ts +2 -2
  237. package/dist/npm/src/models/ledger/Credential.d.ts.map +1 -1
  238. package/dist/npm/src/models/ledger/LedgerEntry.d.ts +3 -2
  239. package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
  240. package/dist/npm/src/models/ledger/Vault.d.ts +21 -0
  241. package/dist/npm/src/models/ledger/Vault.d.ts.map +1 -0
  242. package/dist/npm/src/models/ledger/Vault.js +3 -0
  243. package/dist/npm/src/models/ledger/Vault.js.map +1 -0
  244. package/dist/npm/src/models/ledger/XChainOwnedClaimID.d.ts +1 -2
  245. package/dist/npm/src/models/ledger/XChainOwnedClaimID.d.ts.map +1 -1
  246. package/dist/npm/src/models/ledger/index.d.ts +2 -1
  247. package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
  248. package/dist/npm/src/models/ledger/index.js.map +1 -1
  249. package/dist/npm/src/models/methods/baseMethod.d.ts +1 -0
  250. package/dist/npm/src/models/methods/baseMethod.d.ts.map +1 -1
  251. package/dist/npm/src/models/methods/index.d.ts +5 -4
  252. package/dist/npm/src/models/methods/index.d.ts.map +1 -1
  253. package/dist/npm/src/models/methods/vaultInfo.d.ts +46 -0
  254. package/dist/npm/src/models/methods/vaultInfo.d.ts.map +1 -0
  255. package/dist/npm/src/models/methods/vaultInfo.js +3 -0
  256. package/dist/npm/src/models/methods/vaultInfo.js.map +1 -0
  257. package/dist/npm/src/models/transactions/AMMBid.d.ts.map +1 -1
  258. package/dist/npm/src/models/transactions/AMMBid.js +7 -5
  259. package/dist/npm/src/models/transactions/AMMBid.js.map +1 -1
  260. package/dist/npm/src/models/transactions/AMMClawback.d.ts +2 -2
  261. package/dist/npm/src/models/transactions/AMMClawback.d.ts.map +1 -1
  262. package/dist/npm/src/models/transactions/AMMClawback.js +5 -6
  263. package/dist/npm/src/models/transactions/AMMClawback.js.map +1 -1
  264. package/dist/npm/src/models/transactions/AMMDelete.d.ts.map +1 -1
  265. package/dist/npm/src/models/transactions/AMMDelete.js +2 -2
  266. package/dist/npm/src/models/transactions/AMMDelete.js.map +1 -1
  267. package/dist/npm/src/models/transactions/AMMDeposit.d.ts +2 -2
  268. package/dist/npm/src/models/transactions/AMMDeposit.d.ts.map +1 -1
  269. package/dist/npm/src/models/transactions/AMMDeposit.js +3 -3
  270. package/dist/npm/src/models/transactions/AMMDeposit.js.map +1 -1
  271. package/dist/npm/src/models/transactions/AMMVote.d.ts.map +1 -1
  272. package/dist/npm/src/models/transactions/AMMVote.js +2 -2
  273. package/dist/npm/src/models/transactions/AMMVote.js.map +1 -1
  274. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts +2 -2
  275. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts.map +1 -1
  276. package/dist/npm/src/models/transactions/AMMWithdraw.js +3 -3
  277. package/dist/npm/src/models/transactions/AMMWithdraw.js.map +1 -1
  278. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts +2 -2
  279. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  280. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  281. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  282. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js +3 -3
  283. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  284. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  285. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  286. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js +4 -4
  287. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js.map +1 -1
  288. package/dist/npm/src/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
  289. package/dist/npm/src/models/transactions/NFTokenCancelOffer.js +1 -1
  290. package/dist/npm/src/models/transactions/NFTokenCancelOffer.js.map +1 -1
  291. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  292. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  293. package/dist/npm/src/models/transactions/NFTokenCreateOffer.js +6 -2
  294. package/dist/npm/src/models/transactions/NFTokenCreateOffer.js.map +1 -1
  295. package/dist/npm/src/models/transactions/NFTokenMint.d.ts +2 -2
  296. package/dist/npm/src/models/transactions/NFTokenMint.d.ts.map +1 -1
  297. package/dist/npm/src/models/transactions/XChainAddAccountCreateAttestation.js.map +1 -1
  298. package/dist/npm/src/models/transactions/XChainAddClaimAttestation.js.map +1 -1
  299. package/dist/npm/src/models/transactions/XChainClaim.js.map +1 -1
  300. package/dist/npm/src/models/transactions/XChainCommit.js.map +1 -1
  301. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts +2 -2
  302. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  303. package/dist/npm/src/models/transactions/accountDelete.d.ts.map +1 -1
  304. package/dist/npm/src/models/transactions/accountDelete.js.map +1 -1
  305. package/dist/npm/src/models/transactions/accountSet.d.ts +2 -2
  306. package/dist/npm/src/models/transactions/accountSet.d.ts.map +1 -1
  307. package/dist/npm/src/models/transactions/accountSet.js.map +1 -1
  308. package/dist/npm/src/models/transactions/batch.d.ts +39 -0
  309. package/dist/npm/src/models/transactions/batch.d.ts.map +1 -0
  310. package/dist/npm/src/models/transactions/batch.js +64 -0
  311. package/dist/npm/src/models/transactions/batch.js.map +1 -0
  312. package/dist/npm/src/models/transactions/checkCreate.d.ts.map +1 -1
  313. package/dist/npm/src/models/transactions/checkCreate.js +1 -2
  314. package/dist/npm/src/models/transactions/checkCreate.js.map +1 -1
  315. package/dist/npm/src/models/transactions/clawback.d.ts +2 -2
  316. package/dist/npm/src/models/transactions/clawback.d.ts.map +1 -1
  317. package/dist/npm/src/models/transactions/clawback.js +4 -6
  318. package/dist/npm/src/models/transactions/clawback.js.map +1 -1
  319. package/dist/npm/src/models/transactions/common.d.ts +30 -9
  320. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  321. package/dist/npm/src/models/transactions/common.js +74 -36
  322. package/dist/npm/src/models/transactions/common.js.map +1 -1
  323. package/dist/npm/src/models/transactions/delegateSet.d.ts.map +1 -1
  324. package/dist/npm/src/models/transactions/delegateSet.js +1 -0
  325. package/dist/npm/src/models/transactions/delegateSet.js.map +1 -1
  326. package/dist/npm/src/models/transactions/depositPreauth.d.ts.map +1 -1
  327. package/dist/npm/src/models/transactions/depositPreauth.js.map +1 -1
  328. package/dist/npm/src/models/transactions/escrowFinish.d.ts.map +1 -1
  329. package/dist/npm/src/models/transactions/escrowFinish.js.map +1 -1
  330. package/dist/npm/src/models/transactions/index.d.ts +9 -2
  331. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  332. package/dist/npm/src/models/transactions/index.js +4 -1
  333. package/dist/npm/src/models/transactions/index.js.map +1 -1
  334. package/dist/npm/src/models/transactions/metadata.d.ts +1 -0
  335. package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
  336. package/dist/npm/src/models/transactions/offerCreate.d.ts +2 -2
  337. package/dist/npm/src/models/transactions/offerCreate.d.ts.map +1 -1
  338. package/dist/npm/src/models/transactions/oracleSet.d.ts.map +1 -1
  339. package/dist/npm/src/models/transactions/oracleSet.js +22 -21
  340. package/dist/npm/src/models/transactions/oracleSet.js.map +1 -1
  341. package/dist/npm/src/models/transactions/payment.d.ts +3 -2
  342. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  343. package/dist/npm/src/models/transactions/payment.js +9 -4
  344. package/dist/npm/src/models/transactions/payment.js.map +1 -1
  345. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts +2 -2
  346. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  347. package/dist/npm/src/models/transactions/paymentChannelClaim.js.map +1 -1
  348. package/dist/npm/src/models/transactions/permissionedDomainSet.d.ts.map +1 -1
  349. package/dist/npm/src/models/transactions/permissionedDomainSet.js +1 -1
  350. package/dist/npm/src/models/transactions/permissionedDomainSet.js.map +1 -1
  351. package/dist/npm/src/models/transactions/signerListSet.d.ts.map +1 -1
  352. package/dist/npm/src/models/transactions/signerListSet.js +10 -16
  353. package/dist/npm/src/models/transactions/signerListSet.js.map +1 -1
  354. package/dist/npm/src/models/transactions/transaction.d.ts +8 -1
  355. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  356. package/dist/npm/src/models/transactions/transaction.js +35 -35
  357. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  358. package/dist/npm/src/models/transactions/trustSet.d.ts +2 -2
  359. package/dist/npm/src/models/transactions/trustSet.d.ts.map +1 -1
  360. package/dist/npm/src/models/transactions/vaultClawback.d.ts +10 -0
  361. package/dist/npm/src/models/transactions/vaultClawback.d.ts.map +1 -0
  362. package/dist/npm/src/models/transactions/vaultClawback.js +12 -0
  363. package/dist/npm/src/models/transactions/vaultClawback.js.map +1 -0
  364. package/dist/npm/src/models/transactions/vaultCreate.d.ts +24 -0
  365. package/dist/npm/src/models/transactions/vaultCreate.d.ts.map +1 -0
  366. package/dist/npm/src/models/transactions/vaultCreate.js +51 -0
  367. package/dist/npm/src/models/transactions/vaultCreate.js.map +1 -0
  368. package/dist/npm/src/models/transactions/vaultDelete.d.ts +7 -0
  369. package/dist/npm/src/models/transactions/vaultDelete.d.ts.map +1 -0
  370. package/dist/npm/src/models/transactions/vaultDelete.js +10 -0
  371. package/dist/npm/src/models/transactions/vaultDelete.js.map +1 -0
  372. package/dist/npm/src/models/transactions/vaultDeposit.d.ts +9 -0
  373. package/dist/npm/src/models/transactions/vaultDeposit.d.ts.map +1 -0
  374. package/dist/npm/src/models/transactions/vaultDeposit.js +11 -0
  375. package/dist/npm/src/models/transactions/vaultDeposit.js.map +1 -0
  376. package/dist/npm/src/models/transactions/vaultSet.d.ts +10 -0
  377. package/dist/npm/src/models/transactions/vaultSet.d.ts.map +1 -0
  378. package/dist/npm/src/models/transactions/vaultSet.js +25 -0
  379. package/dist/npm/src/models/transactions/vaultSet.js.map +1 -0
  380. package/dist/npm/src/models/transactions/vaultWithdraw.d.ts +10 -0
  381. package/dist/npm/src/models/transactions/vaultWithdraw.d.ts.map +1 -0
  382. package/dist/npm/src/models/transactions/vaultWithdraw.js +12 -0
  383. package/dist/npm/src/models/transactions/vaultWithdraw.js.map +1 -0
  384. package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
  385. package/dist/npm/src/models/utils/flags.js +26 -9
  386. package/dist/npm/src/models/utils/flags.js.map +1 -1
  387. package/dist/npm/src/models/utils/index.d.ts +2 -0
  388. package/dist/npm/src/models/utils/index.d.ts.map +1 -1
  389. package/dist/npm/src/models/utils/index.js +11 -1
  390. package/dist/npm/src/models/utils/index.js.map +1 -1
  391. package/dist/npm/src/sugar/autofill.d.ts +4 -2
  392. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  393. package/dist/npm/src/sugar/autofill.js +109 -16
  394. package/dist/npm/src/sugar/autofill.js.map +1 -1
  395. package/dist/npm/src/sugar/submit.d.ts.map +1 -1
  396. package/dist/npm/src/sugar/submit.js.map +1 -1
  397. package/dist/npm/src/utils/hashes/hashLedger.d.ts.map +1 -1
  398. package/dist/npm/src/utils/hashes/hashLedger.js +4 -1
  399. package/dist/npm/src/utils/hashes/hashLedger.js.map +1 -1
  400. package/dist/npm/sugar/autofill.d.ts +4 -2
  401. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  402. package/dist/npm/sugar/autofill.js +109 -16
  403. package/dist/npm/sugar/autofill.js.map +1 -1
  404. package/dist/npm/sugar/submit.d.ts.map +1 -1
  405. package/dist/npm/sugar/submit.js.map +1 -1
  406. package/dist/npm/utils/hashes/hashLedger.d.ts.map +1 -1
  407. package/dist/npm/utils/hashes/hashLedger.js +4 -1
  408. package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
  409. package/package.json +7 -6
  410. package/src/Wallet/batchSigner.ts +198 -0
  411. package/src/Wallet/defaultFaucets.ts +20 -18
  412. package/src/Wallet/fundWallet.ts +17 -28
  413. package/src/Wallet/index.ts +9 -3
  414. package/src/Wallet/signer.ts +4 -39
  415. package/src/Wallet/utils.ts +58 -0
  416. package/src/client/RequestManager.ts +4 -1
  417. package/src/client/connection.ts +0 -1
  418. package/src/client/index.ts +50 -66
  419. package/src/client/partialPayment.ts +2 -4
  420. package/src/models/common/index.ts +2 -0
  421. package/src/models/ledger/AccountRoot.ts +1 -1
  422. package/src/models/ledger/Credential.ts +2 -2
  423. package/src/models/ledger/LedgerEntry.ts +3 -0
  424. package/src/models/ledger/Vault.ts +83 -0
  425. package/src/models/ledger/XChainOwnedClaimID.ts +1 -3
  426. package/src/models/ledger/index.ts +3 -1
  427. package/src/models/methods/baseMethod.ts +1 -0
  428. package/src/models/methods/index.ts +10 -0
  429. package/src/models/methods/vaultInfo.ts +193 -0
  430. package/src/models/transactions/AMMBid.ts +12 -21
  431. package/src/models/transactions/AMMClawback.ts +10 -13
  432. package/src/models/transactions/AMMDelete.ts +7 -3
  433. package/src/models/transactions/AMMDeposit.ts +6 -6
  434. package/src/models/transactions/AMMVote.ts +7 -3
  435. package/src/models/transactions/AMMWithdraw.ts +6 -6
  436. package/src/models/transactions/MPTokenAuthorize.ts +2 -2
  437. package/src/models/transactions/MPTokenIssuanceCreate.ts +6 -3
  438. package/src/models/transactions/MPTokenIssuanceSet.ts +3 -3
  439. package/src/models/transactions/NFTokenCancelOffer.ts +2 -2
  440. package/src/models/transactions/NFTokenCreateOffer.ts +10 -6
  441. package/src/models/transactions/NFTokenMint.ts +2 -2
  442. package/src/models/transactions/XChainAddAccountCreateAttestation.ts +2 -2
  443. package/src/models/transactions/XChainAddClaimAttestation.ts +2 -2
  444. package/src/models/transactions/XChainClaim.ts +1 -1
  445. package/src/models/transactions/XChainCommit.ts +1 -1
  446. package/src/models/transactions/XChainModifyBridge.ts +2 -2
  447. package/src/models/transactions/accountDelete.ts +1 -2
  448. package/src/models/transactions/accountSet.ts +2 -1
  449. package/src/models/transactions/batch.ts +151 -0
  450. package/src/models/transactions/checkCreate.ts +2 -6
  451. package/src/models/transactions/clawback.ts +9 -10
  452. package/src/models/transactions/common.ts +194 -69
  453. package/src/models/transactions/delegateSet.ts +1 -0
  454. package/src/models/transactions/depositPreauth.ts +2 -4
  455. package/src/models/transactions/escrowFinish.ts +1 -2
  456. package/src/models/transactions/index.ts +14 -3
  457. package/src/models/transactions/metadata.ts +2 -0
  458. package/src/models/transactions/offerCreate.ts +2 -2
  459. package/src/models/transactions/oracleSet.ts +88 -91
  460. package/src/models/transactions/payment.ts +21 -13
  461. package/src/models/transactions/paymentChannelClaim.ts +4 -4
  462. package/src/models/transactions/permissionedDomainSet.ts +3 -7
  463. package/src/models/transactions/signerListSet.ts +21 -21
  464. package/src/models/transactions/transaction.ts +61 -43
  465. package/src/models/transactions/trustSet.ts +2 -2
  466. package/src/models/transactions/vaultClawback.ts +55 -0
  467. package/src/models/transactions/vaultCreate.ts +142 -0
  468. package/src/models/transactions/vaultDelete.ts +32 -0
  469. package/src/models/transactions/vaultDeposit.ts +41 -0
  470. package/src/models/transactions/vaultSet.ts +71 -0
  471. package/src/models/transactions/vaultWithdraw.ts +50 -0
  472. package/src/models/utils/flags.ts +30 -10
  473. package/src/models/utils/index.ts +24 -0
  474. package/src/sugar/autofill.ts +165 -35
  475. package/src/sugar/submit.ts +1 -2
  476. package/src/utils/hashes/hashLedger.ts +5 -2
@@ -4,7 +4,9 @@ import { isHex } from '../utils'
4
4
 
5
5
  import {
6
6
  BaseTransaction,
7
+ isArray,
7
8
  isNumber,
9
+ isRecord,
8
10
  isString,
9
11
  validateBaseTransaction,
10
12
  validateOptionalField,
@@ -86,113 +88,108 @@ export function validateOracleSet(tx: Record<string, unknown>): void {
86
88
  validateOptionalField(tx, 'AssetClass', isString)
87
89
 
88
90
  /* eslint-disable max-statements, max-lines-per-function -- necessary to validate many fields */
89
- validateRequiredField(tx, 'PriceDataSeries', (value) => {
90
- if (!Array.isArray(value)) {
91
- throw new ValidationError('OracleSet: PriceDataSeries must be an array')
92
- }
93
-
94
- if (value.length > PRICE_DATA_SERIES_MAX_LENGTH) {
95
- throw new ValidationError(
96
- `OracleSet: PriceDataSeries must have at most ${PRICE_DATA_SERIES_MAX_LENGTH} PriceData objects`,
97
- )
98
- }
99
-
100
- // TODO: add support for handling inner objects easier (similar to validateRequiredField/validateOptionalField)
101
- for (const priceData of value) {
102
- if (typeof priceData !== 'object') {
103
- throw new ValidationError(
104
- 'OracleSet: PriceDataSeries must be an array of objects',
105
- )
91
+ validateRequiredField(
92
+ tx,
93
+ 'PriceDataSeries',
94
+ (value: unknown): value is PriceData => {
95
+ if (!isArray(value)) {
96
+ throw new ValidationError('OracleSet: PriceDataSeries must be an array')
106
97
  }
107
98
 
108
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
109
- if (priceData.PriceData == null) {
99
+ if (value.length > PRICE_DATA_SERIES_MAX_LENGTH) {
110
100
  throw new ValidationError(
111
- 'OracleSet: PriceDataSeries must have a `PriceData` object',
101
+ `OracleSet: PriceDataSeries must have at most ${PRICE_DATA_SERIES_MAX_LENGTH} PriceData objects`,
112
102
  )
113
103
  }
114
104
 
115
- // check if priceData only has PriceData
116
- if (Object.keys(priceData).length !== 1) {
117
- throw new ValidationError(
118
- 'OracleSet: PriceDataSeries must only have a single PriceData object',
119
- )
120
- }
105
+ // TODO: add support for handling inner objects easier (similar to validateRequiredField/validateOptionalField)
106
+ for (const priceData of value) {
107
+ if (!isRecord(priceData)) {
108
+ throw new ValidationError(
109
+ 'OracleSet: PriceDataSeries must be an array of objects',
110
+ )
111
+ }
121
112
 
122
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
123
- if (typeof priceData.PriceData.BaseAsset !== 'string') {
124
- throw new ValidationError(
125
- 'OracleSet: PriceDataSeries must have a `BaseAsset` string',
126
- )
127
- }
113
+ const priceDataInner = priceData.PriceData
128
114
 
129
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
130
- if (typeof priceData.PriceData.QuoteAsset !== 'string') {
131
- throw new ValidationError(
132
- 'OracleSet: PriceDataSeries must have a `QuoteAsset` string',
133
- )
134
- }
115
+ if (!isRecord(priceDataInner)) {
116
+ throw new ValidationError(
117
+ 'OracleSet: PriceDataSeries must have a `PriceData` object',
118
+ )
119
+ }
135
120
 
136
- // Either AssetPrice and Scale are both present or both excluded
137
- if (
138
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
139
- (priceData.PriceData.AssetPrice == null) !==
140
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
141
- (priceData.PriceData.Scale == null)
142
- ) {
143
- throw new ValidationError(
144
- 'OracleSet: PriceDataSeries must have both `AssetPrice` and `Scale` if any are present',
145
- )
146
- }
121
+ // check if priceData only has PriceData
122
+ if (Object.keys(priceData).length !== 1) {
123
+ throw new ValidationError(
124
+ 'OracleSet: PriceDataSeries must only have a single PriceData object',
125
+ )
126
+ }
147
127
 
148
- /* eslint-disable @typescript-eslint/no-unsafe-member-access, max-depth --
149
- we need to validate priceData.PriceData.AssetPrice value */
150
- if ('AssetPrice' in priceData.PriceData) {
151
- if (!isNumber(priceData.PriceData.AssetPrice)) {
152
- if (typeof priceData.PriceData.AssetPrice !== 'string') {
153
- throw new ValidationError(
154
- 'OracleSet: Field AssetPrice must be a string or a number',
155
- )
128
+ if (
129
+ priceDataInner.BaseAsset == null ||
130
+ typeof priceDataInner.BaseAsset !== 'string'
131
+ ) {
132
+ throw new ValidationError(
133
+ 'OracleSet: PriceDataSeries must have a `BaseAsset` string',
134
+ )
135
+ }
136
+
137
+ if (typeof priceDataInner.QuoteAsset !== 'string') {
138
+ throw new ValidationError(
139
+ 'OracleSet: PriceDataSeries must have a `QuoteAsset` string',
140
+ )
141
+ }
142
+
143
+ // Either AssetPrice and Scale are both present or both excluded
144
+ if (
145
+ (priceDataInner.AssetPrice == null) !==
146
+ (priceDataInner.Scale == null)
147
+ ) {
148
+ throw new ValidationError(
149
+ 'OracleSet: PriceDataSeries must have both `AssetPrice` and `Scale` if any are present',
150
+ )
151
+ }
152
+
153
+ /* eslint-disable max-depth --
154
+ we need to validate priceDataInner.AssetPrice value */
155
+ if ('AssetPrice' in priceDataInner) {
156
+ if (!isNumber(priceDataInner.AssetPrice)) {
157
+ if (typeof priceDataInner.AssetPrice !== 'string') {
158
+ throw new ValidationError(
159
+ 'OracleSet: Field AssetPrice must be a string or a number',
160
+ )
161
+ }
162
+ if (!isHex(priceDataInner.AssetPrice)) {
163
+ throw new ValidationError(
164
+ 'OracleSet: Field AssetPrice must be a valid hex string',
165
+ )
166
+ }
167
+ if (
168
+ priceDataInner.AssetPrice.length < MINIMUM_ASSET_PRICE_LENGTH ||
169
+ priceDataInner.AssetPrice.length > MAXIMUM_ASSET_PRICE_LENGTH
170
+ ) {
171
+ throw new ValidationError(
172
+ `OracleSet: Length of AssetPrice field must be between ${MINIMUM_ASSET_PRICE_LENGTH} and ${MAXIMUM_ASSET_PRICE_LENGTH} characters long`,
173
+ )
174
+ }
156
175
  }
157
- if (!isHex(priceData.PriceData.AssetPrice)) {
158
- throw new ValidationError(
159
- 'OracleSet: Field AssetPrice must be a valid hex string',
160
- )
176
+ }
177
+
178
+ if ('Scale' in priceDataInner) {
179
+ if (!isNumber(priceDataInner.Scale)) {
180
+ throw new ValidationError('OracleSet: invalid field Scale')
161
181
  }
162
- if (
163
- priceData.PriceData.AssetPrice.length <
164
- MINIMUM_ASSET_PRICE_LENGTH ||
165
- priceData.PriceData.AssetPrice.length > MAXIMUM_ASSET_PRICE_LENGTH
166
- ) {
182
+
183
+ if (priceDataInner.Scale < 0 || priceDataInner.Scale > SCALE_MAX) {
167
184
  throw new ValidationError(
168
- `OracleSet: Length of AssetPrice field must be between ${MINIMUM_ASSET_PRICE_LENGTH} and ${MAXIMUM_ASSET_PRICE_LENGTH} characters long`,
185
+ `OracleSet: Scale must be in range 0-${SCALE_MAX}`,
169
186
  )
170
187
  }
188
+ /* eslint-enable max-depth */
171
189
  }
172
190
  }
173
- /* eslint-enable @typescript-eslint/no-unsafe-member-access, max-depth */
174
-
175
- if (
176
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
177
- 'Scale' in priceData.PriceData &&
178
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
179
- !isNumber(priceData.PriceData.Scale)
180
- ) {
181
- throw new ValidationError('OracleSet: invalid field Scale')
182
- }
183
-
184
- if (
185
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
186
- priceData.PriceData.Scale < 0 ||
187
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
188
- priceData.PriceData.Scale > SCALE_MAX
189
- ) {
190
- throw new ValidationError(
191
- `OracleSet: Scale must be in range 0-${SCALE_MAX}`,
192
- )
193
- }
194
- }
195
- return true
196
- })
191
+ return true
192
+ },
193
+ )
197
194
  /* eslint-enable max-statements, max-lines-per-function */
198
195
  }
@@ -5,7 +5,7 @@ import { isFlagEnabled } from '../utils'
5
5
  import {
6
6
  BaseTransaction,
7
7
  isAmount,
8
- GlobalFlags,
8
+ GlobalFlagsInterface,
9
9
  validateBaseTransaction,
10
10
  isAccount,
11
11
  validateRequiredField,
@@ -14,6 +14,7 @@ import {
14
14
  Account,
15
15
  validateCredentialsList,
16
16
  MAX_AUTHORIZED_CREDENTIALS,
17
+ isArray,
17
18
  } from './common'
18
19
  import type { TransactionMetadataBase } from './metadata'
19
20
 
@@ -84,7 +85,7 @@ export enum PaymentFlags {
84
85
  * // }
85
86
  * ```
86
87
  */
87
- export interface PaymentFlagsInterface extends GlobalFlags {
88
+ export interface PaymentFlagsInterface extends GlobalFlagsInterface {
88
89
  /**
89
90
  * Do not use the default path; only use paths included in the Paths field.
90
91
  * This is intended to force the transaction to take arbitrage opportunities.
@@ -119,6 +120,9 @@ export interface Payment extends BaseTransaction {
119
120
  * to this amount instead.
120
121
  */
121
122
  Amount: Amount | MPTAmount
123
+
124
+ DeliverMax?: Amount | MPTAmount
125
+
122
126
  /** The unique address of the account receiving the payment. */
123
127
  Destination: Account
124
128
  /**
@@ -186,8 +190,7 @@ export function validatePayment(tx: Record<string, unknown>): void {
186
190
 
187
191
  validateCredentialsList(
188
192
  tx.CredentialIDs,
189
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- known from base check
190
- tx.TransactionType as string,
193
+ tx.TransactionType,
191
194
  true,
192
195
  MAX_AUTHORIZED_CREDENTIALS,
193
196
  )
@@ -196,11 +199,7 @@ export function validatePayment(tx: Record<string, unknown>): void {
196
199
  throw new ValidationError('PaymentTransaction: InvoiceID must be a string')
197
200
  }
198
201
 
199
- if (
200
- tx.Paths !== undefined &&
201
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Only used by JS
202
- !isPaths(tx.Paths as Array<Array<Record<string, unknown>>>)
203
- ) {
202
+ if (tx.Paths !== undefined && !isPaths(tx.Paths)) {
204
203
  throw new ValidationError('PaymentTransaction: invalid Paths')
205
204
  }
206
205
 
@@ -209,6 +208,12 @@ export function validatePayment(tx: Record<string, unknown>): void {
209
208
  }
210
209
 
211
210
  checkPartialPayment(tx)
211
+
212
+ if (tx.DeliverMax != null) {
213
+ throw new ValidationError(
214
+ 'PaymentTransaction: Cannot have DeliverMax in a submitted transaction',
215
+ )
216
+ }
212
217
  }
213
218
 
214
219
  function checkPartialPayment(tx: Record<string, unknown>): void {
@@ -264,7 +269,10 @@ function isPathStep(pathStep: Record<string, unknown>): boolean {
264
269
  return false
265
270
  }
266
271
 
267
- function isPath(path: Array<Record<string, unknown>>): boolean {
272
+ function isPath(path: unknown): path is Path {
273
+ if (!Array.isArray(path) || path.length === 0) {
274
+ return false
275
+ }
268
276
  for (const pathStep of path) {
269
277
  if (!isPathStep(pathStep)) {
270
278
  return false
@@ -273,13 +281,13 @@ function isPath(path: Array<Record<string, unknown>>): boolean {
273
281
  return true
274
282
  }
275
283
 
276
- function isPaths(paths: Array<Array<Record<string, unknown>>>): boolean {
277
- if (!Array.isArray(paths) || paths.length === 0) {
284
+ function isPaths(paths: unknown): paths is Path[] {
285
+ if (!isArray(paths) || paths.length === 0) {
278
286
  return false
279
287
  }
280
288
 
281
289
  for (const path of paths) {
282
- if (!Array.isArray(path) || path.length === 0) {
290
+ if (!isArray(path) || path.length === 0) {
283
291
  return false
284
292
  }
285
293
 
@@ -2,7 +2,7 @@ import { ValidationError } from '../../errors'
2
2
 
3
3
  import {
4
4
  BaseTransaction,
5
- GlobalFlags,
5
+ GlobalFlagsInterface,
6
6
  validateBaseTransaction,
7
7
  validateCredentialsList,
8
8
  MAX_AUTHORIZED_CREDENTIALS,
@@ -73,7 +73,8 @@ export enum PaymentChannelClaimFlags {
73
73
  * // }
74
74
  * ```
75
75
  */
76
- export interface PaymentChannelClaimFlagsInterface extends GlobalFlags {
76
+ export interface PaymentChannelClaimFlagsInterface
77
+ extends GlobalFlagsInterface {
77
78
  /**
78
79
  * Clear the channel's Expiration time. (Expiration is different from the
79
80
  * channel's immutable CancelAfter time.) Only the source address of the
@@ -151,8 +152,7 @@ export function validatePaymentChannelClaim(tx: Record<string, unknown>): void {
151
152
 
152
153
  validateCredentialsList(
153
154
  tx.CredentialIDs,
154
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- known from base check
155
- tx.TransactionType as string,
155
+ tx.TransactionType,
156
156
  true,
157
157
  MAX_AUTHORIZED_CREDENTIALS,
158
158
  )
@@ -7,6 +7,7 @@ import {
7
7
  validateOptionalField,
8
8
  validateRequiredField,
9
9
  validateCredentialsList,
10
+ isArray,
10
11
  } from './common'
11
12
 
12
13
  const MAX_ACCEPTED_CREDENTIALS = 10
@@ -36,16 +37,11 @@ export function validatePermissionedDomainSet(
36
37
  validateBaseTransaction(tx)
37
38
 
38
39
  validateOptionalField(tx, 'DomainID', isString)
39
- validateRequiredField(
40
- tx,
41
- 'AcceptedCredentials',
42
- () => tx.AcceptedCredentials instanceof Array,
43
- )
40
+ validateRequiredField(tx, 'AcceptedCredentials', isArray)
44
41
 
45
42
  validateCredentialsList(
46
43
  tx.AcceptedCredentials,
47
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- known from base check
48
- tx.TransactionType as string,
44
+ tx.TransactionType,
49
45
  // PermissionedDomainSet uses AuthorizeCredential nested objects only, strings are not allowed
50
46
  false,
51
47
  // PermissionedDomainSet uses at most 10 accepted credentials. This is different from Credential-feature transactions.
@@ -1,7 +1,15 @@
1
1
  import { ValidationError } from '../../errors'
2
2
  import { SignerEntry } from '../common'
3
3
 
4
- import { BaseTransaction, validateBaseTransaction } from './common'
4
+ import {
5
+ BaseTransaction,
6
+ isArray,
7
+ isNumber,
8
+ isRecord,
9
+ isString,
10
+ validateBaseTransaction,
11
+ validateRequiredField,
12
+ } from './common'
5
13
 
6
14
  /**
7
15
  * The SignerListSet transaction creates, replaces, or removes a list of
@@ -39,27 +47,14 @@ const HEX_WALLET_LOCATOR_REGEX = /^[0-9A-Fa-f]{64}$/u
39
47
  export function validateSignerListSet(tx: Record<string, unknown>): void {
40
48
  validateBaseTransaction(tx)
41
49
 
42
- if (tx.SignerQuorum === undefined) {
43
- throw new ValidationError('SignerListSet: missing field SignerQuorum')
44
- }
45
-
46
- if (typeof tx.SignerQuorum !== 'number') {
47
- throw new ValidationError('SignerListSet: invalid SignerQuorum')
48
- }
50
+ validateRequiredField(tx, 'SignerQuorum', isNumber)
49
51
 
50
52
  // All other checks are for if SignerQuorum is greater than 0
51
53
  if (tx.SignerQuorum === 0) {
52
54
  return
53
55
  }
54
56
 
55
- if (tx.SignerEntries === undefined) {
56
- throw new ValidationError('SignerListSet: missing field SignerEntries')
57
- }
58
-
59
- if (!Array.isArray(tx.SignerEntries)) {
60
- throw new ValidationError('SignerListSet: invalid SignerEntries')
61
- }
62
-
57
+ validateRequiredField(tx, 'SignerEntries', isArray)
63
58
  if (tx.SignerEntries.length === 0) {
64
59
  throw new ValidationError(
65
60
  'SignerListSet: need at least 1 member in SignerEntries',
@@ -73,12 +68,17 @@ export function validateSignerListSet(tx: Record<string, unknown>): void {
73
68
  }
74
69
 
75
70
  for (const entry of tx.SignerEntries) {
76
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Should be a SignerEntry
77
- const signerEntry = entry as SignerEntry
78
- const { WalletLocator } = signerEntry.SignerEntry
71
+ if (!isRecord(entry) || !isRecord(entry.SignerEntry)) {
72
+ throw new ValidationError(
73
+ 'SignerListSet: SignerEntries must be an array of SignerEntry objects',
74
+ )
75
+ }
76
+ const signerEntry = entry.SignerEntry
77
+ const { WalletLocator } = signerEntry
79
78
  if (
80
- WalletLocator !== undefined &&
81
- !HEX_WALLET_LOCATOR_REGEX.test(WalletLocator)
79
+ WalletLocator != null &&
80
+ (!isString(WalletLocator) ||
81
+ !HEX_WALLET_LOCATOR_REGEX.test(WalletLocator))
82
82
  ) {
83
83
  throw new ValidationError(
84
84
  `SignerListSet: WalletLocator in SignerEntry must be a 256-bit (32-byte) hexadecimal value`,
@@ -2,8 +2,6 @@
2
2
  /* eslint-disable max-lines-per-function -- need to work with a lot of Tx verifications */
3
3
 
4
4
  import { ValidationError } from '../../errors'
5
- import { IssuedCurrencyAmount, Memo } from '../common'
6
- import { isHex } from '../utils'
7
5
  import { convertTxFlagsToNumber } from '../utils/flags'
8
6
 
9
7
  import { AccountDelete, validateAccountDelete } from './accountDelete'
@@ -15,11 +13,16 @@ import { AMMDelete, validateAMMDelete } from './AMMDelete'
15
13
  import { AMMDeposit, validateAMMDeposit } from './AMMDeposit'
16
14
  import { AMMVote, validateAMMVote } from './AMMVote'
17
15
  import { AMMWithdraw, validateAMMWithdraw } from './AMMWithdraw'
16
+ import { Batch, validateBatch } from './batch'
18
17
  import { CheckCancel, validateCheckCancel } from './checkCancel'
19
18
  import { CheckCash, validateCheckCash } from './checkCash'
20
19
  import { CheckCreate, validateCheckCreate } from './checkCreate'
21
20
  import { Clawback, validateClawback } from './clawback'
22
- import { BaseTransaction, isIssuedCurrency } from './common'
21
+ import {
22
+ BaseTransaction,
23
+ isIssuedCurrencyAmount,
24
+ validateBaseTransaction,
25
+ } from './common'
23
26
  import { CredentialAccept, validateCredentialAccept } from './CredentialAccept'
24
27
  import { CredentialCreate, validateCredentialCreate } from './CredentialCreate'
25
28
  import { CredentialDelete, validateCredentialDelete } from './CredentialDelete'
@@ -91,6 +94,12 @@ import { SignerListSet, validateSignerListSet } from './signerListSet'
91
94
  import { TicketCreate, validateTicketCreate } from './ticketCreate'
92
95
  import { TrustSet, validateTrustSet } from './trustSet'
93
96
  import { UNLModify } from './UNLModify'
97
+ import { VaultClawback, validateVaultClawback } from './vaultClawback'
98
+ import { VaultCreate, validateVaultCreate } from './vaultCreate'
99
+ import { VaultDelete, validateVaultDelete } from './vaultDelete'
100
+ import { VaultDeposit, validateVaultDeposit } from './vaultDeposit'
101
+ import { VaultSet, validateVaultSet } from './vaultSet'
102
+ import { VaultWithdraw, validateVaultWithdraw } from './vaultWithdraw'
94
103
  import {
95
104
  XChainAccountCreateCommit,
96
105
  validateXChainAccountCreateCommit,
@@ -133,6 +142,7 @@ export type SubmittableTransaction =
133
142
  | AMMWithdraw
134
143
  | AccountDelete
135
144
  | AccountSet
145
+ | Batch
136
146
  | CheckCancel
137
147
  | CheckCash
138
148
  | CheckCreate
@@ -171,6 +181,12 @@ export type SubmittableTransaction =
171
181
  | SignerListSet
172
182
  | TicketCreate
173
183
  | TrustSet
184
+ | VaultClawback
185
+ | VaultCreate
186
+ | VaultDelete
187
+ | VaultDeposit
188
+ | VaultSet
189
+ | VaultWithdraw
174
190
  | XChainAccountCreateCommit
175
191
  | XChainAddAccountCreateAttestation
176
192
  | XChainAddClaimAttestation
@@ -214,50 +230,15 @@ export interface TransactionAndMetadata<
214
230
  */
215
231
  export function validate(transaction: Record<string, unknown>): void {
216
232
  const tx = { ...transaction }
217
- if (tx.TransactionType == null) {
218
- throw new ValidationError('Object does not have a `TransactionType`')
219
- }
220
- if (typeof tx.TransactionType !== 'string') {
221
- throw new ValidationError("Object's `TransactionType` is not a string")
222
- }
223
233
 
224
- /*
225
- * - Memos have exclusively hex data.
226
- */
227
- if (tx.Memos != null && typeof tx.Memos !== 'object') {
228
- throw new ValidationError('Memo must be array')
229
- }
230
- if (tx.Memos != null) {
231
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- needed here
232
- ;(tx.Memos as Array<Memo | null>).forEach((memo) => {
233
- if (memo?.Memo == null) {
234
- throw new ValidationError('Memo data must be in a `Memo` field')
235
- }
236
- if (memo.Memo.MemoData) {
237
- if (!isHex(memo.Memo.MemoData)) {
238
- throw new ValidationError('MemoData field must be a hex value')
239
- }
240
- }
241
-
242
- if (memo.Memo.MemoType) {
243
- if (!isHex(memo.Memo.MemoType)) {
244
- throw new ValidationError('MemoType field must be a hex value')
245
- }
246
- }
247
-
248
- if (memo.Memo.MemoFormat) {
249
- if (!isHex(memo.Memo.MemoFormat)) {
250
- throw new ValidationError('MemoFormat field must be a hex value')
251
- }
252
- }
253
- })
254
- }
234
+ // should already be done in the tx-specific validation, but doesn't hurt to check again
235
+ validateBaseTransaction(tx)
255
236
 
256
237
  Object.keys(tx).forEach((key) => {
257
238
  const standard_currency_code_len = 3
258
- if (tx[key] && isIssuedCurrency(tx[key])) {
259
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- needed
260
- const txCurrency = (tx[key] as IssuedCurrencyAmount).currency
239
+ const value = tx[key]
240
+ if (value && isIssuedCurrencyAmount(value)) {
241
+ const txCurrency = value.currency
261
242
 
262
243
  if (
263
244
  txCurrency.length === standard_currency_code_len &&
@@ -309,6 +290,19 @@ export function validate(transaction: Record<string, unknown>): void {
309
290
  validateAccountSet(tx)
310
291
  break
311
292
 
293
+ case 'Batch':
294
+ validateBatch(tx)
295
+ // This is done here to avoid issues with dependency cycles
296
+
297
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- okay here
298
+ // @ts-expect-error -- already checked
299
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call -- already checked above
300
+ tx.RawTransactions.forEach((innerTx: Record<string, unknown>) => {
301
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- already checked above
302
+ validate(innerTx.RawTransaction as Record<string, unknown>)
303
+ })
304
+ break
305
+
312
306
  case 'CheckCancel':
313
307
  validateCheckCancel(tx)
314
308
  break
@@ -461,6 +455,30 @@ export function validate(transaction: Record<string, unknown>): void {
461
455
  validateTrustSet(tx)
462
456
  break
463
457
 
458
+ case 'VaultClawback':
459
+ validateVaultClawback(tx)
460
+ break
461
+
462
+ case 'VaultCreate':
463
+ validateVaultCreate(tx)
464
+ break
465
+
466
+ case 'VaultDelete':
467
+ validateVaultDelete(tx)
468
+ break
469
+
470
+ case 'VaultDeposit':
471
+ validateVaultDeposit(tx)
472
+ break
473
+
474
+ case 'VaultSet':
475
+ validateVaultSet(tx)
476
+ break
477
+
478
+ case 'VaultWithdraw':
479
+ validateVaultWithdraw(tx)
480
+ break
481
+
464
482
  case 'XChainAccountCreateCommit':
465
483
  validateXChainAccountCreateCommit(tx)
466
484
  break
@@ -3,7 +3,7 @@ import { IssuedCurrencyAmount } from '../common'
3
3
 
4
4
  import {
5
5
  BaseTransaction,
6
- GlobalFlags,
6
+ GlobalFlagsInterface,
7
7
  isAmount,
8
8
  validateBaseTransaction,
9
9
  } from './common'
@@ -77,7 +77,7 @@ export enum TrustSetFlags {
77
77
  * // }
78
78
  * ```
79
79
  */
80
- export interface TrustSetFlagsInterface extends GlobalFlags {
80
+ export interface TrustSetFlagsInterface extends GlobalFlagsInterface {
81
81
  /**
82
82
  * Authorize the other party to hold currency issued by this account. (No
83
83
  * effect unless using the asfRequireAuth AccountSet flag.) Cannot be unset.
@@ -0,0 +1,55 @@
1
+ import { ClawbackAmount } from '../common'
2
+
3
+ import {
4
+ BaseTransaction,
5
+ validateBaseTransaction,
6
+ validateRequiredField,
7
+ isString,
8
+ Account,
9
+ isAccount,
10
+ validateOptionalField,
11
+ isClawbackAmount,
12
+ } from './common'
13
+
14
+ /**
15
+ * The VaultClawback transaction performs a Clawback from the Vault, exchanging the shares of an account.
16
+ *
17
+ * Conceptually, the transaction performs VaultWithdraw on behalf of the Holder, sending the funds to the
18
+ * Issuer account of the asset. In case there are insufficient funds for the entire Amount the transaction
19
+ * will perform a partial Clawback, up to the Vault.AssetsAvailable. The Clawback transaction must respect
20
+ * any future fees or penalties.
21
+ *
22
+ * @category Transaction Models
23
+ */
24
+ export interface VaultClawback extends BaseTransaction {
25
+ TransactionType: 'VaultClawback'
26
+
27
+ /**
28
+ * The ID of the vault from which assets are withdrawn.
29
+ */
30
+ VaultID: string
31
+
32
+ /**
33
+ * The account ID from which to clawback the assets.
34
+ */
35
+ Holder: Account
36
+
37
+ /**
38
+ * The asset amount to clawback. When Amount is 0 clawback all funds, up to the total shares the Holder owns.
39
+ */
40
+ Amount?: ClawbackAmount
41
+ }
42
+
43
+ /**
44
+ * Verify the form and type of a {@link VaultClawback} at runtime.
45
+ *
46
+ * @param tx - A {@link VaultClawback} Transaction.
47
+ * @throws When the {@link VaultClawback} is malformed.
48
+ */
49
+ export function validateVaultClawback(tx: Record<string, unknown>): void {
50
+ validateBaseTransaction(tx)
51
+
52
+ validateRequiredField(tx, 'VaultID', isString)
53
+ validateRequiredField(tx, 'Holder', isAccount)
54
+ validateOptionalField(tx, 'Amount', isClawbackAmount)
55
+ }