xrpl 2.10.0 → 2.12.0-beta.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 (414) hide show
  1. package/build/xrpl-latest-min.js +1 -1
  2. package/build/xrpl-latest-min.js.map +1 -1
  3. package/build/xrpl-latest.js +1308 -33
  4. package/build/xrpl-latest.js.map +1 -1
  5. package/dist/npm/Wallet/walletFromSecretNumbers.d.ts +7 -0
  6. package/dist/npm/Wallet/walletFromSecretNumbers.d.ts.map +1 -0
  7. package/dist/npm/Wallet/walletFromSecretNumbers.js +27 -0
  8. package/dist/npm/Wallet/walletFromSecretNumbers.js.map +1 -0
  9. package/dist/npm/client/index.d.ts +2 -1
  10. package/dist/npm/client/index.d.ts.map +1 -1
  11. package/dist/npm/client/index.js.map +1 -1
  12. package/dist/npm/index.d.ts +1 -0
  13. package/dist/npm/index.d.ts.map +1 -1
  14. package/dist/npm/index.js +3 -1
  15. package/dist/npm/index.js.map +1 -1
  16. package/dist/npm/models/common/index.d.ts +11 -0
  17. package/dist/npm/models/common/index.d.ts.map +1 -1
  18. package/dist/npm/models/ledger/AMM.d.ts +27 -0
  19. package/dist/npm/models/ledger/AMM.d.ts.map +1 -0
  20. package/dist/npm/models/ledger/AMM.js +3 -0
  21. package/dist/npm/models/ledger/AMM.js.map +1 -0
  22. package/dist/npm/models/ledger/AccountRoot.d.ts +2 -0
  23. package/dist/npm/models/ledger/AccountRoot.d.ts.map +1 -1
  24. package/dist/npm/models/ledger/AccountRoot.js +1 -0
  25. package/dist/npm/models/ledger/AccountRoot.js.map +1 -1
  26. package/dist/npm/models/ledger/Bridge.d.ts +17 -0
  27. package/dist/npm/models/ledger/Bridge.d.ts.map +1 -0
  28. package/dist/npm/models/ledger/Bridge.js +3 -0
  29. package/dist/npm/models/ledger/Bridge.js.map +1 -0
  30. package/dist/npm/models/ledger/LedgerEntry.d.ts +5 -1
  31. package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
  32. package/dist/npm/models/ledger/XChainOwnedClaimID.d.ts +16 -0
  33. package/dist/npm/models/ledger/XChainOwnedClaimID.d.ts.map +1 -0
  34. package/dist/npm/models/ledger/XChainOwnedClaimID.js +3 -0
  35. package/dist/npm/models/ledger/XChainOwnedClaimID.js.map +1 -0
  36. package/dist/npm/models/ledger/XChainOwnedCreateAccountClaimID.d.ts +14 -0
  37. package/dist/npm/models/ledger/XChainOwnedCreateAccountClaimID.d.ts.map +1 -0
  38. package/dist/npm/models/ledger/XChainOwnedCreateAccountClaimID.js +3 -0
  39. package/dist/npm/models/ledger/XChainOwnedCreateAccountClaimID.js.map +1 -0
  40. package/dist/npm/models/ledger/index.d.ts +4 -1
  41. package/dist/npm/models/ledger/index.d.ts.map +1 -1
  42. package/dist/npm/models/ledger/index.js.map +1 -1
  43. package/dist/npm/models/methods/accountObjects.d.ts +3 -3
  44. package/dist/npm/models/methods/accountObjects.d.ts.map +1 -1
  45. package/dist/npm/models/methods/ammInfo.d.ts +39 -0
  46. package/dist/npm/models/methods/ammInfo.d.ts.map +1 -0
  47. package/dist/npm/models/methods/ammInfo.js +3 -0
  48. package/dist/npm/models/methods/ammInfo.js.map +1 -0
  49. package/dist/npm/models/methods/index.d.ts +4 -3
  50. package/dist/npm/models/methods/index.d.ts.map +1 -1
  51. package/dist/npm/models/methods/ledgerEntry.d.ts +27 -0
  52. package/dist/npm/models/methods/ledgerEntry.d.ts.map +1 -1
  53. package/dist/npm/models/transactions/AMMBid.d.ts +12 -0
  54. package/dist/npm/models/transactions/AMMBid.d.ts.map +1 -0
  55. package/dist/npm/models/transactions/AMMBid.js +56 -0
  56. package/dist/npm/models/transactions/AMMBid.js.map +1 -0
  57. package/dist/npm/models/transactions/AMMCreate.d.ts +11 -0
  58. package/dist/npm/models/transactions/AMMCreate.d.ts.map +1 -0
  59. package/dist/npm/models/transactions/AMMCreate.js +32 -0
  60. package/dist/npm/models/transactions/AMMCreate.js.map +1 -0
  61. package/dist/npm/models/transactions/AMMDelete.d.ts +9 -0
  62. package/dist/npm/models/transactions/AMMDelete.d.ts.map +1 -0
  63. package/dist/npm/models/transactions/AMMDelete.js +22 -0
  64. package/dist/npm/models/transactions/AMMDelete.js.map +1 -0
  65. package/dist/npm/models/transactions/AMMDeposit.d.ts +27 -0
  66. package/dist/npm/models/transactions/AMMDeposit.d.ts.map +1 -0
  67. package/dist/npm/models/transactions/AMMDeposit.js +51 -0
  68. package/dist/npm/models/transactions/AMMDeposit.js.map +1 -0
  69. package/dist/npm/models/transactions/AMMVote.d.ts +10 -0
  70. package/dist/npm/models/transactions/AMMVote.d.ts.map +1 -0
  71. package/dist/npm/models/transactions/AMMVote.js +32 -0
  72. package/dist/npm/models/transactions/AMMVote.js.map +1 -0
  73. package/dist/npm/models/transactions/AMMWithdraw.d.ts +31 -0
  74. package/dist/npm/models/transactions/AMMWithdraw.d.ts.map +1 -0
  75. package/dist/npm/models/transactions/AMMWithdraw.js +50 -0
  76. package/dist/npm/models/transactions/AMMWithdraw.js.map +1 -0
  77. package/dist/npm/models/transactions/XChainAccountCreateCommit.d.ts +11 -0
  78. package/dist/npm/models/transactions/XChainAccountCreateCommit.d.ts.map +1 -0
  79. package/dist/npm/models/transactions/XChainAccountCreateCommit.js +35 -0
  80. package/dist/npm/models/transactions/XChainAccountCreateCommit.js.map +1 -0
  81. package/dist/npm/models/transactions/XChainAddAccountCreateAttestation.d.ts +18 -0
  82. package/dist/npm/models/transactions/XChainAddAccountCreateAttestation.d.ts.map +1 -0
  83. package/dist/npm/models/transactions/XChainAddAccountCreateAttestation.js +77 -0
  84. package/dist/npm/models/transactions/XChainAddAccountCreateAttestation.js.map +1 -0
  85. package/dist/npm/models/transactions/XChainAddClaimAttestation.d.ts +17 -0
  86. package/dist/npm/models/transactions/XChainAddClaimAttestation.d.ts.map +1 -0
  87. package/dist/npm/models/transactions/XChainAddClaimAttestation.js +68 -0
  88. package/dist/npm/models/transactions/XChainAddClaimAttestation.js.map +1 -0
  89. package/dist/npm/models/transactions/XChainClaim.d.ts +12 -0
  90. package/dist/npm/models/transactions/XChainClaim.d.ts.map +1 -0
  91. package/dist/npm/models/transactions/XChainClaim.js +39 -0
  92. package/dist/npm/models/transactions/XChainClaim.js.map +1 -0
  93. package/dist/npm/models/transactions/XChainCommit.d.ts +11 -0
  94. package/dist/npm/models/transactions/XChainCommit.d.ts.map +1 -0
  95. package/dist/npm/models/transactions/XChainCommit.js +33 -0
  96. package/dist/npm/models/transactions/XChainCommit.js.map +1 -0
  97. package/dist/npm/models/transactions/XChainCreateBridge.d.ts +10 -0
  98. package/dist/npm/models/transactions/XChainCreateBridge.d.ts.map +1 -0
  99. package/dist/npm/models/transactions/XChainCreateBridge.js +26 -0
  100. package/dist/npm/models/transactions/XChainCreateBridge.js.map +1 -0
  101. package/dist/npm/models/transactions/XChainCreateClaimID.d.ts +10 -0
  102. package/dist/npm/models/transactions/XChainCreateClaimID.d.ts.map +1 -0
  103. package/dist/npm/models/transactions/XChainCreateClaimID.js +28 -0
  104. package/dist/npm/models/transactions/XChainCreateClaimID.js.map +1 -0
  105. package/dist/npm/models/transactions/XChainModifyBridge.d.ts +17 -0
  106. package/dist/npm/models/transactions/XChainModifyBridge.d.ts.map +1 -0
  107. package/dist/npm/models/transactions/XChainModifyBridge.js +27 -0
  108. package/dist/npm/models/transactions/XChainModifyBridge.js.map +1 -0
  109. package/dist/npm/models/transactions/common.d.ts +3 -1
  110. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  111. package/dist/npm/models/transactions/common.js +22 -1
  112. package/dist/npm/models/transactions/common.js.map +1 -1
  113. package/dist/npm/models/transactions/index.d.ts +15 -1
  114. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  115. package/dist/npm/models/transactions/index.js +7 -1
  116. package/dist/npm/models/transactions/index.js.map +1 -1
  117. package/dist/npm/models/transactions/transaction.d.ts +15 -1
  118. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  119. package/dist/npm/models/transactions/transaction.js +56 -0
  120. package/dist/npm/models/transactions/transaction.js.map +1 -1
  121. package/dist/npm/models/utils/flags.d.ts.map +1 -1
  122. package/dist/npm/models/utils/flags.js +18 -21
  123. package/dist/npm/models/utils/flags.js.map +1 -1
  124. package/dist/npm/snippets/src/bridgeTransfer.d.ts +2 -0
  125. package/dist/npm/snippets/src/bridgeTransfer.d.ts.map +1 -0
  126. package/dist/npm/snippets/src/bridgeTransfer.js +124 -0
  127. package/dist/npm/snippets/src/bridgeTransfer.js.map +1 -0
  128. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  129. package/dist/npm/src/Wallet/walletFromSecretNumbers.d.ts +7 -0
  130. package/dist/npm/src/Wallet/walletFromSecretNumbers.d.ts.map +1 -0
  131. package/dist/npm/src/Wallet/walletFromSecretNumbers.js +27 -0
  132. package/dist/npm/src/Wallet/walletFromSecretNumbers.js.map +1 -0
  133. package/dist/npm/src/client/index.d.ts +2 -1
  134. package/dist/npm/src/client/index.d.ts.map +1 -1
  135. package/dist/npm/src/client/index.js.map +1 -1
  136. package/dist/npm/src/index.d.ts +1 -0
  137. package/dist/npm/src/index.d.ts.map +1 -1
  138. package/dist/npm/src/index.js +3 -1
  139. package/dist/npm/src/index.js.map +1 -1
  140. package/dist/npm/src/models/common/index.d.ts +11 -0
  141. package/dist/npm/src/models/common/index.d.ts.map +1 -1
  142. package/dist/npm/src/models/ledger/AMM.d.ts +27 -0
  143. package/dist/npm/src/models/ledger/AMM.d.ts.map +1 -0
  144. package/dist/npm/src/models/ledger/AMM.js +3 -0
  145. package/dist/npm/src/models/ledger/AMM.js.map +1 -0
  146. package/dist/npm/src/models/ledger/AccountRoot.d.ts +2 -0
  147. package/dist/npm/src/models/ledger/AccountRoot.d.ts.map +1 -1
  148. package/dist/npm/src/models/ledger/AccountRoot.js +1 -0
  149. package/dist/npm/src/models/ledger/AccountRoot.js.map +1 -1
  150. package/dist/npm/src/models/ledger/Bridge.d.ts +17 -0
  151. package/dist/npm/src/models/ledger/Bridge.d.ts.map +1 -0
  152. package/dist/npm/src/models/ledger/Bridge.js +3 -0
  153. package/dist/npm/src/models/ledger/Bridge.js.map +1 -0
  154. package/dist/npm/src/models/ledger/LedgerEntry.d.ts +5 -1
  155. package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
  156. package/dist/npm/src/models/ledger/XChainOwnedClaimID.d.ts +16 -0
  157. package/dist/npm/src/models/ledger/XChainOwnedClaimID.d.ts.map +1 -0
  158. package/dist/npm/src/models/ledger/XChainOwnedClaimID.js +3 -0
  159. package/dist/npm/src/models/ledger/XChainOwnedClaimID.js.map +1 -0
  160. package/dist/npm/src/models/ledger/XChainOwnedCreateAccountClaimID.d.ts +14 -0
  161. package/dist/npm/src/models/ledger/XChainOwnedCreateAccountClaimID.d.ts.map +1 -0
  162. package/dist/npm/src/models/ledger/XChainOwnedCreateAccountClaimID.js +3 -0
  163. package/dist/npm/src/models/ledger/XChainOwnedCreateAccountClaimID.js.map +1 -0
  164. package/dist/npm/src/models/ledger/index.d.ts +4 -1
  165. package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
  166. package/dist/npm/src/models/ledger/index.js.map +1 -1
  167. package/dist/npm/src/models/methods/accountObjects.d.ts +3 -3
  168. package/dist/npm/src/models/methods/accountObjects.d.ts.map +1 -1
  169. package/dist/npm/src/models/methods/ammInfo.d.ts +39 -0
  170. package/dist/npm/src/models/methods/ammInfo.d.ts.map +1 -0
  171. package/dist/npm/src/models/methods/ammInfo.js +3 -0
  172. package/dist/npm/src/models/methods/ammInfo.js.map +1 -0
  173. package/dist/npm/src/models/methods/index.d.ts +4 -3
  174. package/dist/npm/src/models/methods/index.d.ts.map +1 -1
  175. package/dist/npm/src/models/methods/ledgerEntry.d.ts +27 -0
  176. package/dist/npm/src/models/methods/ledgerEntry.d.ts.map +1 -1
  177. package/dist/npm/src/models/transactions/AMMBid.d.ts +12 -0
  178. package/dist/npm/src/models/transactions/AMMBid.d.ts.map +1 -0
  179. package/dist/npm/src/models/transactions/AMMBid.js +56 -0
  180. package/dist/npm/src/models/transactions/AMMBid.js.map +1 -0
  181. package/dist/npm/src/models/transactions/AMMCreate.d.ts +11 -0
  182. package/dist/npm/src/models/transactions/AMMCreate.d.ts.map +1 -0
  183. package/dist/npm/src/models/transactions/AMMCreate.js +32 -0
  184. package/dist/npm/src/models/transactions/AMMCreate.js.map +1 -0
  185. package/dist/npm/src/models/transactions/AMMDelete.d.ts +9 -0
  186. package/dist/npm/src/models/transactions/AMMDelete.d.ts.map +1 -0
  187. package/dist/npm/src/models/transactions/AMMDelete.js +22 -0
  188. package/dist/npm/src/models/transactions/AMMDelete.js.map +1 -0
  189. package/dist/npm/src/models/transactions/AMMDeposit.d.ts +27 -0
  190. package/dist/npm/src/models/transactions/AMMDeposit.d.ts.map +1 -0
  191. package/dist/npm/src/models/transactions/AMMDeposit.js +51 -0
  192. package/dist/npm/src/models/transactions/AMMDeposit.js.map +1 -0
  193. package/dist/npm/src/models/transactions/AMMVote.d.ts +10 -0
  194. package/dist/npm/src/models/transactions/AMMVote.d.ts.map +1 -0
  195. package/dist/npm/src/models/transactions/AMMVote.js +32 -0
  196. package/dist/npm/src/models/transactions/AMMVote.js.map +1 -0
  197. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts +31 -0
  198. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts.map +1 -0
  199. package/dist/npm/src/models/transactions/AMMWithdraw.js +50 -0
  200. package/dist/npm/src/models/transactions/AMMWithdraw.js.map +1 -0
  201. package/dist/npm/src/models/transactions/XChainAccountCreateCommit.d.ts +11 -0
  202. package/dist/npm/src/models/transactions/XChainAccountCreateCommit.d.ts.map +1 -0
  203. package/dist/npm/src/models/transactions/XChainAccountCreateCommit.js +35 -0
  204. package/dist/npm/src/models/transactions/XChainAccountCreateCommit.js.map +1 -0
  205. package/dist/npm/src/models/transactions/XChainAddAccountCreateAttestation.d.ts +18 -0
  206. package/dist/npm/src/models/transactions/XChainAddAccountCreateAttestation.d.ts.map +1 -0
  207. package/dist/npm/src/models/transactions/XChainAddAccountCreateAttestation.js +77 -0
  208. package/dist/npm/src/models/transactions/XChainAddAccountCreateAttestation.js.map +1 -0
  209. package/dist/npm/src/models/transactions/XChainAddClaimAttestation.d.ts +17 -0
  210. package/dist/npm/src/models/transactions/XChainAddClaimAttestation.d.ts.map +1 -0
  211. package/dist/npm/src/models/transactions/XChainAddClaimAttestation.js +68 -0
  212. package/dist/npm/src/models/transactions/XChainAddClaimAttestation.js.map +1 -0
  213. package/dist/npm/src/models/transactions/XChainClaim.d.ts +12 -0
  214. package/dist/npm/src/models/transactions/XChainClaim.d.ts.map +1 -0
  215. package/dist/npm/src/models/transactions/XChainClaim.js +39 -0
  216. package/dist/npm/src/models/transactions/XChainClaim.js.map +1 -0
  217. package/dist/npm/src/models/transactions/XChainCommit.d.ts +11 -0
  218. package/dist/npm/src/models/transactions/XChainCommit.d.ts.map +1 -0
  219. package/dist/npm/src/models/transactions/XChainCommit.js +33 -0
  220. package/dist/npm/src/models/transactions/XChainCommit.js.map +1 -0
  221. package/dist/npm/src/models/transactions/XChainCreateBridge.d.ts +10 -0
  222. package/dist/npm/src/models/transactions/XChainCreateBridge.d.ts.map +1 -0
  223. package/dist/npm/src/models/transactions/XChainCreateBridge.js +26 -0
  224. package/dist/npm/src/models/transactions/XChainCreateBridge.js.map +1 -0
  225. package/dist/npm/src/models/transactions/XChainCreateClaimID.d.ts +10 -0
  226. package/dist/npm/src/models/transactions/XChainCreateClaimID.d.ts.map +1 -0
  227. package/dist/npm/src/models/transactions/XChainCreateClaimID.js +28 -0
  228. package/dist/npm/src/models/transactions/XChainCreateClaimID.js.map +1 -0
  229. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts +17 -0
  230. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts.map +1 -0
  231. package/dist/npm/src/models/transactions/XChainModifyBridge.js +27 -0
  232. package/dist/npm/src/models/transactions/XChainModifyBridge.js.map +1 -0
  233. package/dist/npm/src/models/transactions/common.d.ts +3 -1
  234. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  235. package/dist/npm/src/models/transactions/common.js +22 -1
  236. package/dist/npm/src/models/transactions/common.js.map +1 -1
  237. package/dist/npm/src/models/transactions/index.d.ts +15 -1
  238. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  239. package/dist/npm/src/models/transactions/index.js +7 -1
  240. package/dist/npm/src/models/transactions/index.js.map +1 -1
  241. package/dist/npm/src/models/transactions/transaction.d.ts +15 -1
  242. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  243. package/dist/npm/src/models/transactions/transaction.js +56 -0
  244. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  245. package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
  246. package/dist/npm/src/models/utils/flags.js +18 -21
  247. package/dist/npm/src/models/utils/flags.js.map +1 -1
  248. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  249. package/dist/npm/src/sugar/autofill.js +4 -3
  250. package/dist/npm/src/sugar/autofill.js.map +1 -1
  251. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  252. package/dist/npm/sugar/autofill.js +4 -3
  253. package/dist/npm/sugar/autofill.js.map +1 -1
  254. package/package.json +8 -6
  255. package/src/ECDSA.ts +6 -0
  256. package/src/Wallet/defaultFaucets.ts +82 -0
  257. package/src/Wallet/fundWallet.ts +344 -0
  258. package/src/Wallet/index.ts +504 -0
  259. package/src/Wallet/rfc1751.ts +190 -0
  260. package/src/Wallet/rfc1751Words.json +243 -0
  261. package/src/Wallet/signer.ts +173 -0
  262. package/src/Wallet/walletFromSecretNumbers.ts +37 -0
  263. package/src/client/BroadcastClient.ts +84 -0
  264. package/src/client/ConnectionManager.ts +40 -0
  265. package/src/client/ExponentialBackoff.ts +71 -0
  266. package/src/client/RequestManager.ts +194 -0
  267. package/src/client/WSWrapper.ts +106 -0
  268. package/src/client/connection.ts +593 -0
  269. package/src/client/index.ts +712 -0
  270. package/src/client/partialPayment.ts +153 -0
  271. package/src/errors.ts +161 -0
  272. package/src/index.ts +20 -0
  273. package/src/models/common/index.ts +156 -0
  274. package/src/models/index.ts +16 -0
  275. package/src/models/ledger/AMM.ts +78 -0
  276. package/src/models/ledger/AccountRoot.ts +217 -0
  277. package/src/models/ledger/Amendments.ts +45 -0
  278. package/src/models/ledger/BaseLedgerEntry.ts +3 -0
  279. package/src/models/ledger/Bridge.ts +84 -0
  280. package/src/models/ledger/Check.ts +70 -0
  281. package/src/models/ledger/DepositPreauth.ts +35 -0
  282. package/src/models/ledger/DirectoryNode.ts +46 -0
  283. package/src/models/ledger/Escrow.ts +74 -0
  284. package/src/models/ledger/FeeSettings.ts +52 -0
  285. package/src/models/ledger/Ledger.ts +65 -0
  286. package/src/models/ledger/LedgerEntry.ts +40 -0
  287. package/src/models/ledger/LedgerHashes.ts +24 -0
  288. package/src/models/ledger/NFTokenOffer.ts +16 -0
  289. package/src/models/ledger/NFTokenPage.ts +20 -0
  290. package/src/models/ledger/NegativeUNL.ts +34 -0
  291. package/src/models/ledger/Offer.ts +52 -0
  292. package/src/models/ledger/PayChannel.ts +107 -0
  293. package/src/models/ledger/RippleState.ts +88 -0
  294. package/src/models/ledger/SignerList.ts +56 -0
  295. package/src/models/ledger/Ticket.ts +36 -0
  296. package/src/models/ledger/XChainOwnedClaimID.ts +73 -0
  297. package/src/models/ledger/XChainOwnedCreateAccountClaimID.ts +60 -0
  298. package/src/models/ledger/index.ts +64 -0
  299. package/src/models/methods/accountChannels.ts +93 -0
  300. package/src/models/methods/accountCurrencies.ts +45 -0
  301. package/src/models/methods/accountInfo.ts +182 -0
  302. package/src/models/methods/accountLines.ts +137 -0
  303. package/src/models/methods/accountNFTs.ts +72 -0
  304. package/src/models/methods/accountObjects.ts +129 -0
  305. package/src/models/methods/accountOffers.ts +100 -0
  306. package/src/models/methods/accountTx.ts +109 -0
  307. package/src/models/methods/ammInfo.ts +145 -0
  308. package/src/models/methods/baseMethod.ts +58 -0
  309. package/src/models/methods/bookOffers.ts +96 -0
  310. package/src/models/methods/channelVerify.ts +41 -0
  311. package/src/models/methods/depositAuthorized.ts +56 -0
  312. package/src/models/methods/fee.ts +91 -0
  313. package/src/models/methods/gatewayBalances.ts +85 -0
  314. package/src/models/methods/index.ts +391 -0
  315. package/src/models/methods/ledger.ts +125 -0
  316. package/src/models/methods/ledgerClosed.ts +32 -0
  317. package/src/models/methods/ledgerCurrent.ts +31 -0
  318. package/src/models/methods/ledgerData.ts +78 -0
  319. package/src/models/methods/ledgerEntry.ts +202 -0
  320. package/src/models/methods/manifest.ts +54 -0
  321. package/src/models/methods/nftBuyOffers.ts +37 -0
  322. package/src/models/methods/nftHistory.ts +113 -0
  323. package/src/models/methods/nftInfo.ts +25 -0
  324. package/src/models/methods/nftSellOffers.ts +37 -0
  325. package/src/models/methods/norippleCheck.ts +82 -0
  326. package/src/models/methods/pathFind.ts +116 -0
  327. package/src/models/methods/ping.ts +21 -0
  328. package/src/models/methods/random.ts +23 -0
  329. package/src/models/methods/ripplePathFind.ts +81 -0
  330. package/src/models/methods/serverInfo.ts +257 -0
  331. package/src/models/methods/serverState.ts +77 -0
  332. package/src/models/methods/submit.ts +94 -0
  333. package/src/models/methods/submitMultisigned.ts +51 -0
  334. package/src/models/methods/subscribe.ts +435 -0
  335. package/src/models/methods/transactionEntry.ts +47 -0
  336. package/src/models/methods/tx.ts +69 -0
  337. package/src/models/methods/unsubscribe.ts +49 -0
  338. package/src/models/transactions/AMMBid.ts +140 -0
  339. package/src/models/transactions/AMMCreate.ts +80 -0
  340. package/src/models/transactions/AMMDelete.ts +55 -0
  341. package/src/models/transactions/AMMDeposit.ts +130 -0
  342. package/src/models/transactions/AMMVote.ts +71 -0
  343. package/src/models/transactions/AMMWithdraw.ts +126 -0
  344. package/src/models/transactions/NFTokenAcceptOffer.ts +104 -0
  345. package/src/models/transactions/NFTokenBurn.ts +48 -0
  346. package/src/models/transactions/NFTokenCancelOffer.ts +45 -0
  347. package/src/models/transactions/NFTokenCreateOffer.ts +145 -0
  348. package/src/models/transactions/NFTokenMint.ts +123 -0
  349. package/src/models/transactions/UNLModify.ts +20 -0
  350. package/src/models/transactions/XChainAccountCreateCommit.ts +107 -0
  351. package/src/models/transactions/XChainAddAccountCreateAttestation.ts +225 -0
  352. package/src/models/transactions/XChainAddClaimAttestation.ts +198 -0
  353. package/src/models/transactions/XChainClaim.ts +103 -0
  354. package/src/models/transactions/XChainCommit.ts +95 -0
  355. package/src/models/transactions/XChainCreateBridge.ts +78 -0
  356. package/src/models/transactions/XChainCreateClaimID.ts +78 -0
  357. package/src/models/transactions/XChainModifyBridge.ts +93 -0
  358. package/src/models/transactions/accountDelete.ts +50 -0
  359. package/src/models/transactions/accountSet.ts +228 -0
  360. package/src/models/transactions/checkCancel.ts +34 -0
  361. package/src/models/transactions/checkCash.ts +73 -0
  362. package/src/models/transactions/checkCreate.ts +90 -0
  363. package/src/models/transactions/clawback.ts +49 -0
  364. package/src/models/transactions/common.ts +320 -0
  365. package/src/models/transactions/depositPreauth.ts +68 -0
  366. package/src/models/transactions/enableAmendment.ts +26 -0
  367. package/src/models/transactions/escrowCancel.ts +45 -0
  368. package/src/models/transactions/escrowCreate.ts +100 -0
  369. package/src/models/transactions/escrowFinish.ts +63 -0
  370. package/src/models/transactions/index.ts +78 -0
  371. package/src/models/transactions/metadata.ts +69 -0
  372. package/src/models/transactions/offerCancel.ts +37 -0
  373. package/src/models/transactions/offerCreate.ts +144 -0
  374. package/src/models/transactions/payment.ts +278 -0
  375. package/src/models/transactions/paymentChannelClaim.ts +165 -0
  376. package/src/models/transactions/paymentChannelCreate.ts +116 -0
  377. package/src/models/transactions/paymentChannelFund.ts +65 -0
  378. package/src/models/transactions/setFee.ts +48 -0
  379. package/src/models/transactions/setRegularKey.ts +33 -0
  380. package/src/models/transactions/signerListSet.ts +89 -0
  381. package/src/models/transactions/ticketCreate.ts +50 -0
  382. package/src/models/transactions/transaction.ts +370 -0
  383. package/src/models/transactions/trustSet.ts +146 -0
  384. package/src/models/utils/flags.ts +103 -0
  385. package/src/models/utils/index.ts +37 -0
  386. package/src/sugar/autofill.ts +373 -0
  387. package/src/sugar/balances.ts +123 -0
  388. package/src/sugar/getFeeXrp.ts +45 -0
  389. package/src/sugar/getLedgerIndex.ts +15 -0
  390. package/src/sugar/getOrderbook.ts +152 -0
  391. package/src/sugar/index.ts +11 -0
  392. package/src/sugar/submit.ts +305 -0
  393. package/src/sugar/utils.ts +29 -0
  394. package/src/utils/derive.ts +23 -0
  395. package/src/utils/getBalanceChanges.ts +186 -0
  396. package/src/utils/getNFTokenID.ts +97 -0
  397. package/src/utils/hashes/HashPrefix.ts +40 -0
  398. package/src/utils/hashes/README.md +65 -0
  399. package/src/utils/hashes/SHAMap/InnerNode.ts +124 -0
  400. package/src/utils/hashes/SHAMap/LeafNode.ts +69 -0
  401. package/src/utils/hashes/SHAMap/index.ts +41 -0
  402. package/src/utils/hashes/SHAMap/node.ts +14 -0
  403. package/src/utils/hashes/hashLedger.ts +236 -0
  404. package/src/utils/hashes/index.ts +187 -0
  405. package/src/utils/hashes/ledgerSpaces.ts +34 -0
  406. package/src/utils/hashes/sha512Half.ts +19 -0
  407. package/src/utils/index.ts +223 -0
  408. package/src/utils/parseNFTokenID.ts +84 -0
  409. package/src/utils/quality.ts +169 -0
  410. package/src/utils/signPaymentChannelClaim.ts +27 -0
  411. package/src/utils/stringConversion.ts +27 -0
  412. package/src/utils/timeConversion.ts +53 -0
  413. package/src/utils/verifyPaymentChannelClaim.ts +30 -0
  414. package/src/utils/xrpConversion.ts +104 -0
@@ -0,0 +1,225 @@
1
+ import { ValidationError } from '../../errors'
2
+ import { Amount, XChainBridge } from '../common'
3
+
4
+ import {
5
+ BaseTransaction,
6
+ isAmount,
7
+ isXChainBridge,
8
+ validateBaseTransaction,
9
+ } from './common'
10
+
11
+ /**
12
+ * The XChainAddAccountCreateAttestation transaction provides an attestation
13
+ * from a witness server that a {@link XChainAccountCreateCommit} transaction
14
+ * occurred on the other chain.
15
+ *
16
+ * @category Transaction Models
17
+ */
18
+ export interface XChainAddAccountCreateAttestation extends BaseTransaction {
19
+ TransactionType: 'XChainAddAccountCreateAttestation'
20
+
21
+ /**
22
+ * The amount committed by the {@link XChainAccountCreateCommit} transaction
23
+ * on the source chain.
24
+ */
25
+ Amount: Amount
26
+
27
+ /**
28
+ * The account that should receive this signer's share of the SignatureReward.
29
+ */
30
+ AttestationRewardAccount: string
31
+
32
+ /**
33
+ * The account on the door account's signer list that is signing the transaction.
34
+ */
35
+ AttestationSignerAccount: string
36
+
37
+ /**
38
+ * The destination account for the funds on the destination chain.
39
+ */
40
+ Destination: string
41
+
42
+ /**
43
+ * The account on the source chain that submitted the {@link XChainAccountCreateCommit}
44
+ * transaction that triggered the event associated with the attestation.
45
+ */
46
+ OtherChainSource: string
47
+
48
+ /**
49
+ * The public key used to verify the signature.
50
+ */
51
+ PublicKey: string
52
+
53
+ /**
54
+ * The signature attesting to the event on the other chain.
55
+ */
56
+ Signature: string
57
+
58
+ /**
59
+ * The signature reward paid in the {@link XChainAccountCreateCommit} transaction.
60
+ */
61
+ SignatureReward: Amount
62
+
63
+ /**
64
+ * A boolean representing the chain where the event occurred.
65
+ */
66
+ WasLockingChainSend: 0 | 1
67
+
68
+ /**
69
+ * The counter that represents the order that the claims must be processed in.
70
+ */
71
+ XChainAccountCreateCount: number | string
72
+
73
+ /**
74
+ * The bridge associated with the attestation.
75
+ */
76
+ XChainBridge: XChainBridge
77
+ }
78
+
79
+ /**
80
+ * Verify the form and type of a XChainAddAccountCreateAttestation at runtime.
81
+ *
82
+ * @param tx - A XChainAddAccountCreateAttestation Transaction.
83
+ * @throws When the XChainAddAccountCreateAttestation is malformed.
84
+ */
85
+ // eslint-disable-next-line max-lines-per-function, max-statements, complexity -- okay for this function, lots of things to check
86
+ export function validateXChainAddAccountCreateAttestation(
87
+ tx: Record<string, unknown>,
88
+ ): void {
89
+ validateBaseTransaction(tx)
90
+
91
+ if (tx.Amount == null) {
92
+ throw new ValidationError(
93
+ 'XChainAddAccountCreateAttestation: missing field Amount',
94
+ )
95
+ }
96
+
97
+ if (!isAmount(tx.Amount)) {
98
+ throw new ValidationError(
99
+ 'XChainAddAccountCreateAttestation: invalid field Amount',
100
+ )
101
+ }
102
+
103
+ if (tx.AttestationRewardAccount == null) {
104
+ throw new ValidationError(
105
+ 'XChainAddAccountCreateAttestation: missing field AttestationRewardAccount',
106
+ )
107
+ }
108
+
109
+ if (typeof tx.AttestationRewardAccount !== 'string') {
110
+ throw new ValidationError(
111
+ 'XChainAddAccountCreateAttestation: invalid field AttestationRewardAccount',
112
+ )
113
+ }
114
+
115
+ if (tx.AttestationSignerAccount == null) {
116
+ throw new ValidationError(
117
+ 'XChainAddAccountCreateAttestation: missing field AttestationSignerAccount',
118
+ )
119
+ }
120
+
121
+ if (typeof tx.AttestationSignerAccount !== 'string') {
122
+ throw new ValidationError(
123
+ 'XChainAddAccountCreateAttestation: invalid field AttestationSignerAccount',
124
+ )
125
+ }
126
+
127
+ if (tx.Destination == null) {
128
+ throw new ValidationError(
129
+ 'XChainAddAccountCreateAttestation: missing field Destination',
130
+ )
131
+ }
132
+
133
+ if (typeof tx.Destination !== 'string') {
134
+ throw new ValidationError(
135
+ 'XChainAddAccountCreateAttestation: invalid field Destination',
136
+ )
137
+ }
138
+
139
+ if (tx.OtherChainSource == null) {
140
+ throw new ValidationError(
141
+ 'XChainAddAccountCreateAttestation: missing field OtherChainSource',
142
+ )
143
+ }
144
+
145
+ if (typeof tx.OtherChainSource !== 'string') {
146
+ throw new ValidationError(
147
+ 'XChainAddAccountCreateAttestation: invalid field OtherChainSource',
148
+ )
149
+ }
150
+
151
+ if (tx.PublicKey == null) {
152
+ throw new ValidationError(
153
+ 'XChainAddAccountCreateAttestation: missing field PublicKey',
154
+ )
155
+ }
156
+
157
+ if (typeof tx.PublicKey !== 'string') {
158
+ throw new ValidationError(
159
+ 'XChainAddAccountCreateAttestation: invalid field PublicKey',
160
+ )
161
+ }
162
+
163
+ if (tx.Signature == null) {
164
+ throw new ValidationError(
165
+ 'XChainAddAccountCreateAttestation: missing field Signature',
166
+ )
167
+ }
168
+
169
+ if (typeof tx.Signature !== 'string') {
170
+ throw new ValidationError(
171
+ 'XChainAddAccountCreateAttestation: invalid field Signature',
172
+ )
173
+ }
174
+
175
+ if (tx.SignatureReward == null) {
176
+ throw new ValidationError(
177
+ 'XChainAddAccountCreateAttestation: missing field SignatureReward',
178
+ )
179
+ }
180
+
181
+ if (!isAmount(tx.SignatureReward)) {
182
+ throw new ValidationError(
183
+ 'XChainAddAccountCreateAttestation: invalid field SignatureReward',
184
+ )
185
+ }
186
+
187
+ if (tx.WasLockingChainSend == null) {
188
+ throw new ValidationError(
189
+ 'XChainAddAccountCreateAttestation: missing field WasLockingChainSend',
190
+ )
191
+ }
192
+
193
+ if (tx.WasLockingChainSend !== 0 && tx.WasLockingChainSend !== 1) {
194
+ throw new ValidationError(
195
+ 'XChainAddAccountCreateAttestation: invalid field WasLockingChainSend',
196
+ )
197
+ }
198
+
199
+ if (tx.XChainAccountCreateCount == null) {
200
+ throw new ValidationError(
201
+ 'XChainAddAccountCreateAttestation: missing field XChainAccountCreateCount',
202
+ )
203
+ }
204
+
205
+ if (
206
+ typeof tx.XChainAccountCreateCount !== 'string' &&
207
+ typeof tx.XChainAccountCreateCount !== 'number'
208
+ ) {
209
+ throw new ValidationError(
210
+ 'XChainAddAccountCreateAttestation: invalid field XChainAccountCreateCount',
211
+ )
212
+ }
213
+
214
+ if (tx.XChainBridge == null) {
215
+ throw new ValidationError(
216
+ 'XChainAddAccountCreateAttestation: missing field XChainBridge',
217
+ )
218
+ }
219
+
220
+ if (!isXChainBridge(tx.XChainBridge)) {
221
+ throw new ValidationError(
222
+ 'XChainAddAccountCreateAttestation: invalid field XChainBridge',
223
+ )
224
+ }
225
+ }
@@ -0,0 +1,198 @@
1
+ import { ValidationError } from '../../errors'
2
+ import { Amount, XChainBridge } from '../common'
3
+
4
+ import {
5
+ BaseTransaction,
6
+ isAmount,
7
+ isXChainBridge,
8
+ validateBaseTransaction,
9
+ } from './common'
10
+
11
+ /**
12
+ * The XChainAddClaimAttestation transaction provides proof from a witness server,
13
+ * attesting to an {@link XChainCommit} transaction.
14
+ *
15
+ * @category Transaction Models
16
+ */
17
+ export interface XChainAddClaimAttestation extends BaseTransaction {
18
+ TransactionType: 'XChainAddClaimAttestation'
19
+
20
+ /**
21
+ * The amount committed by the {@link XChainCommit} transaction on the source chain.
22
+ */
23
+ Amount: Amount
24
+
25
+ /**
26
+ * The account that should receive this signer's share of the SignatureReward.
27
+ */
28
+ AttestationRewardAccount: string
29
+
30
+ /**
31
+ * The account on the door account's signer list that is signing the transaction.
32
+ */
33
+ AttestationSignerAccount: string
34
+
35
+ /**
36
+ * The destination account for the funds on the destination chain (taken from
37
+ * the {@link XChainCommit} transaction).
38
+ */
39
+ Destination?: string
40
+
41
+ /**
42
+ * The account on the source chain that submitted the {@link XChainCommit}
43
+ * transaction that triggered the event associated with the attestation.
44
+ */
45
+ OtherChainSource: string
46
+
47
+ /**
48
+ * The public key used to verify the attestation signature.
49
+ */
50
+ PublicKey: string
51
+
52
+ /**
53
+ * The signature attesting to the event on the other chain.
54
+ */
55
+ Signature: string
56
+
57
+ /**
58
+ * A boolean representing the chain where the event occurred.
59
+ */
60
+ WasLockingChainSend: 0 | 1
61
+
62
+ /**
63
+ * The bridge to use to transfer funds.
64
+ */
65
+ XChainBridge: XChainBridge
66
+
67
+ /**
68
+ * The XChainClaimID associated with the transfer, which was included in the
69
+ * {@link XChainCommit} transaction.
70
+ */
71
+ XChainClaimID: number | string
72
+ }
73
+
74
+ /**
75
+ * Verify the form and type of a XChainAddClaimAttestation at runtime.
76
+ *
77
+ * @param tx - A XChainAddClaimAttestation Transaction.
78
+ * @throws When the XChainAddClaimAttestation is malformed.
79
+ */
80
+ // eslint-disable-next-line max-lines-per-function, max-statements, complexity -- okay for this function, lots of things to check
81
+ export function validateXChainAddClaimAttestation(
82
+ tx: Record<string, unknown>,
83
+ ): void {
84
+ validateBaseTransaction(tx)
85
+
86
+ if (tx.Amount == null) {
87
+ throw new ValidationError('XChainAddClaimAttestation: missing field Amount')
88
+ }
89
+
90
+ if (!isAmount(tx.Amount)) {
91
+ throw new ValidationError('XChainAddClaimAttestation: invalid field Amount')
92
+ }
93
+
94
+ if (tx.AttestationRewardAccount == null) {
95
+ throw new ValidationError(
96
+ 'XChainAddClaimAttestation: missing field AttestationRewardAccount',
97
+ )
98
+ }
99
+
100
+ if (typeof tx.AttestationRewardAccount !== 'string') {
101
+ throw new ValidationError(
102
+ 'XChainAddClaimAttestation: invalid field AttestationRewardAccount',
103
+ )
104
+ }
105
+
106
+ if (tx.AttestationSignerAccount == null) {
107
+ throw new ValidationError(
108
+ 'XChainAddClaimAttestation: missing field AttestationSignerAccount',
109
+ )
110
+ }
111
+
112
+ if (typeof tx.AttestationSignerAccount !== 'string') {
113
+ throw new ValidationError(
114
+ 'XChainAddClaimAttestation: invalid field AttestationSignerAccount',
115
+ )
116
+ }
117
+
118
+ if (tx.Destination !== undefined && typeof tx.Destination !== 'string') {
119
+ throw new ValidationError(
120
+ 'XChainAddClaimAttestation: invalid field Destination',
121
+ )
122
+ }
123
+
124
+ if (tx.OtherChainSource == null) {
125
+ throw new ValidationError(
126
+ 'XChainAddClaimAttestation: missing field OtherChainSource',
127
+ )
128
+ }
129
+
130
+ if (typeof tx.OtherChainSource !== 'string') {
131
+ throw new ValidationError(
132
+ 'XChainAddClaimAttestation: invalid field OtherChainSource',
133
+ )
134
+ }
135
+
136
+ if (tx.PublicKey == null) {
137
+ throw new ValidationError(
138
+ 'XChainAddClaimAttestation: missing field PublicKey',
139
+ )
140
+ }
141
+
142
+ if (typeof tx.PublicKey !== 'string') {
143
+ throw new ValidationError(
144
+ 'XChainAddClaimAttestation: invalid field PublicKey',
145
+ )
146
+ }
147
+
148
+ if (tx.Signature == null) {
149
+ throw new ValidationError(
150
+ 'XChainAddClaimAttestation: missing field Signature',
151
+ )
152
+ }
153
+
154
+ if (typeof tx.Signature !== 'string') {
155
+ throw new ValidationError(
156
+ 'XChainAddClaimAttestation: invalid field Signature',
157
+ )
158
+ }
159
+
160
+ if (tx.WasLockingChainSend == null) {
161
+ throw new ValidationError(
162
+ 'XChainAddClaimAttestation: missing field WasLockingChainSend',
163
+ )
164
+ }
165
+
166
+ if (tx.WasLockingChainSend !== 0 && tx.WasLockingChainSend !== 1) {
167
+ throw new ValidationError(
168
+ 'XChainAddClaimAttestation: invalid field WasLockingChainSend',
169
+ )
170
+ }
171
+
172
+ if (tx.XChainBridge == null) {
173
+ throw new ValidationError(
174
+ 'XChainAddClaimAttestation: missing field XChainBridge',
175
+ )
176
+ }
177
+
178
+ if (!isXChainBridge(tx.XChainBridge)) {
179
+ throw new ValidationError(
180
+ 'XChainAddClaimAttestation: invalid field XChainBridge',
181
+ )
182
+ }
183
+
184
+ if (tx.XChainClaimID == null) {
185
+ throw new ValidationError(
186
+ 'XChainAddClaimAttestation: missing field XChainClaimID',
187
+ )
188
+ }
189
+
190
+ if (
191
+ typeof tx.XChainClaimID !== 'string' &&
192
+ typeof tx.XChainClaimID !== 'number'
193
+ ) {
194
+ throw new ValidationError(
195
+ 'XChainAddClaimAttestation: invalid field XChainClaimID',
196
+ )
197
+ }
198
+ }
@@ -0,0 +1,103 @@
1
+ import { ValidationError } from '../../errors'
2
+ import { Amount, XChainBridge } from '../common'
3
+
4
+ import {
5
+ BaseTransaction,
6
+ isAmount,
7
+ isXChainBridge,
8
+ validateBaseTransaction,
9
+ } from './common'
10
+
11
+ /**
12
+ * The XChainClaim transaction completes a cross-chain transfer of value. It
13
+ * allows a user to claim the value on the destination chain - the equivalent
14
+ * of the value locked on the source chain.
15
+ *
16
+ * @category Transaction Models
17
+ */
18
+ export interface XChainClaim extends BaseTransaction {
19
+ TransactionType: 'XChainClaim'
20
+
21
+ /**
22
+ * The bridge to use for the transfer.
23
+ */
24
+ XChainBridge: XChainBridge
25
+
26
+ /**
27
+ * The unique integer ID for the cross-chain transfer that was referenced in the
28
+ * corresponding {@link XChainCommit} transaction.
29
+ */
30
+ XChainClaimID: number | string
31
+
32
+ /**
33
+ * The destination account on the destination chain. It must exist or the
34
+ * transaction will fail. However, if the transaction fails in this case, the
35
+ * sequence number and collected signatures won't be destroyed, and the
36
+ * transaction can be rerun with a different destination.
37
+ */
38
+ Destination: string
39
+
40
+ /**
41
+ * An integer destination tag.
42
+ */
43
+ DestinationTag?: number
44
+
45
+ /**
46
+ * The amount to claim on the destination chain. This must match the amount
47
+ * attested to on the attestations associated with this XChainClaimID.
48
+ */
49
+ Amount: Amount
50
+ }
51
+
52
+ /**
53
+ * Verify the form and type of a XChainClaim at runtime.
54
+ *
55
+ * @param tx - A XChainClaim Transaction.
56
+ * @throws When the XChainClaim is malformed.
57
+ */
58
+ // eslint-disable-next-line complexity -- okay for this function, lots of things to check
59
+ export function validateXChainClaim(tx: Record<string, unknown>): void {
60
+ validateBaseTransaction(tx)
61
+
62
+ if (tx.XChainBridge == null) {
63
+ throw new ValidationError('XChainClaim: missing field XChainBridge')
64
+ }
65
+
66
+ if (!isXChainBridge(tx.XChainBridge)) {
67
+ throw new ValidationError('XChainClaim: invalid field XChainBridge')
68
+ }
69
+
70
+ if (tx.XChainClaimID == null) {
71
+ throw new ValidationError('XChainClaim: missing field XChainClaimID')
72
+ }
73
+
74
+ if (
75
+ typeof tx.XChainClaimID !== 'number' &&
76
+ typeof tx.XChainClaimID !== 'string'
77
+ ) {
78
+ throw new ValidationError('XChainClaim: invalid field XChainClaimID')
79
+ }
80
+
81
+ if (tx.Destination == null) {
82
+ throw new ValidationError('XChainClaim: missing field Destination')
83
+ }
84
+
85
+ if (typeof tx.Destination !== 'string') {
86
+ throw new ValidationError('XChainClaim: invalid field Destination')
87
+ }
88
+
89
+ if (
90
+ tx.DestinationTag !== undefined &&
91
+ typeof tx.DestinationTag !== 'number'
92
+ ) {
93
+ throw new ValidationError('XChainClaim: invalid field DestinationTag')
94
+ }
95
+
96
+ if (tx.Amount == null) {
97
+ throw new ValidationError('XChainClaim: missing field Amount')
98
+ }
99
+
100
+ if (!isAmount(tx.Amount)) {
101
+ throw new ValidationError('XChainClaim: invalid field Amount')
102
+ }
103
+ }
@@ -0,0 +1,95 @@
1
+ import { ValidationError } from '../../errors'
2
+ import { Amount, XChainBridge } from '../common'
3
+
4
+ import {
5
+ BaseTransaction,
6
+ isAmount,
7
+ isXChainBridge,
8
+ validateBaseTransaction,
9
+ } from './common'
10
+
11
+ /**
12
+ * The XChainCommit is the second step in a cross-chain transfer. It puts assets
13
+ * into trust on the locking chain so that they can be wrapped on the issuing
14
+ * chain, or burns wrapped assets on the issuing chain so that they can be returned
15
+ * on the locking chain.
16
+ *
17
+ * @category Transaction Models
18
+ */
19
+ export interface XChainCommit extends BaseTransaction {
20
+ TransactionType: 'XChainCommit'
21
+
22
+ /**
23
+ * The bridge to use to transfer funds.
24
+ */
25
+ XChainBridge: XChainBridge
26
+
27
+ /**
28
+ * The unique integer ID for a cross-chain transfer. This must be acquired on
29
+ * the destination chain (via a {@link XChainCreateClaimID} transaction) and
30
+ * checked from a validated ledger before submitting this transaction. If an
31
+ * incorrect sequence number is specified, the funds will be lost.
32
+ */
33
+ XChainClaimID: number | string
34
+
35
+ /**
36
+ * The destination account on the destination chain. If this is not specified,
37
+ * the account that submitted the {@link XChainCreateClaimID} transaction on the
38
+ * destination chain will need to submit a {@link XChainClaim} transaction to
39
+ * claim the funds.
40
+ */
41
+ OtherChainDestination?: string
42
+
43
+ /**
44
+ * The asset to commit, and the quantity. This must match the door account's
45
+ * LockingChainIssue (if on the locking chain) or the door account's
46
+ * IssuingChainIssue (if on the issuing chain).
47
+ */
48
+ Amount: Amount
49
+ }
50
+
51
+ /**
52
+ * Verify the form and type of a XChainCommit at runtime.
53
+ *
54
+ * @param tx - A XChainCommit Transaction.
55
+ * @throws When the XChainCommit is malformed.
56
+ */
57
+ export function validateXChainCommit(tx: Record<string, unknown>): void {
58
+ validateBaseTransaction(tx)
59
+
60
+ if (tx.XChainBridge == null) {
61
+ throw new ValidationError('XChainCommit: missing field XChainBridge')
62
+ }
63
+
64
+ if (!isXChainBridge(tx.XChainBridge)) {
65
+ throw new ValidationError('XChainCommit: invalid field XChainBridge')
66
+ }
67
+
68
+ if (tx.XChainClaimID == null) {
69
+ throw new ValidationError('XChainCommit: missing field XChainClaimID')
70
+ }
71
+
72
+ if (
73
+ typeof tx.XChainClaimID !== 'number' &&
74
+ typeof tx.XChainClaimID !== 'string'
75
+ ) {
76
+ throw new ValidationError('XChainCommit: invalid field XChainClaimID')
77
+ }
78
+
79
+ if (
80
+ tx.OtherChainDestination !== undefined &&
81
+ typeof tx.OtherChainDestination !== 'string'
82
+ ) {
83
+ throw new ValidationError(
84
+ 'XChainCommit: invalid field OtherChainDestination',
85
+ )
86
+ }
87
+
88
+ if (tx.Amount == null) {
89
+ throw new ValidationError('XChainCommit: missing field Amount')
90
+ }
91
+
92
+ if (!isAmount(tx.Amount)) {
93
+ throw new ValidationError('XChainCommit: invalid field Amount')
94
+ }
95
+ }
@@ -0,0 +1,78 @@
1
+ import { ValidationError } from '../../errors'
2
+ import { Amount, XChainBridge } from '../common'
3
+
4
+ import {
5
+ BaseTransaction,
6
+ isAmount,
7
+ isXChainBridge,
8
+ validateBaseTransaction,
9
+ } from './common'
10
+
11
+ /**
12
+ * The XChainCreateBridge transaction creates a new {@link Bridge} ledger object
13
+ * and defines a new cross-chain bridge entrance on the chain that the transaction
14
+ * is submitted on. It includes information about door accounts and assets for the
15
+ * bridge.
16
+ *
17
+ * @category Transaction Models
18
+ */
19
+ export interface XChainCreateBridge extends BaseTransaction {
20
+ TransactionType: 'XChainCreateBridge'
21
+
22
+ /**
23
+ * The bridge (door accounts and assets) to create.
24
+ */
25
+ XChainBridge: XChainBridge
26
+
27
+ /**
28
+ * The total amount to pay the witness servers for their signatures. This amount
29
+ * will be split among the signers.
30
+ */
31
+ SignatureReward: Amount
32
+
33
+ /**
34
+ * The minimum amount, in XRP, required for a {@link XChainAccountCreateCommit}
35
+ * transaction. If this isn't present, the {@link XChainAccountCreateCommit}
36
+ * transaction will fail. This field can only be present on XRP-XRP bridges.
37
+ */
38
+ MinAccountCreateAmount?: Amount
39
+ }
40
+
41
+ /**
42
+ * Verify the form and type of a XChainCreateBridge at runtime.
43
+ *
44
+ * @param tx - A XChainCreateBridge Transaction.
45
+ * @throws When the XChainCreateBridge is malformed.
46
+ */
47
+ export function validateXChainCreateBridge(tx: Record<string, unknown>): void {
48
+ validateBaseTransaction(tx)
49
+
50
+ if (tx.XChainBridge == null) {
51
+ throw new ValidationError('XChainCreateBridge: missing field XChainBridge')
52
+ }
53
+
54
+ if (!isXChainBridge(tx.XChainBridge)) {
55
+ throw new ValidationError('XChainCreateBridge: invalid field XChainBridge')
56
+ }
57
+
58
+ if (tx.SignatureReward == null) {
59
+ throw new ValidationError(
60
+ 'XChainCreateBridge: missing field SignatureReward',
61
+ )
62
+ }
63
+
64
+ if (!isAmount(tx.SignatureReward)) {
65
+ throw new ValidationError(
66
+ 'XChainCreateBridge: invalid field SignatureReward',
67
+ )
68
+ }
69
+
70
+ if (
71
+ tx.MinAccountCreateAmount !== undefined &&
72
+ !isAmount(tx.MinAccountCreateAmount)
73
+ ) {
74
+ throw new ValidationError(
75
+ 'XChainCreateBridge: invalid field MinAccountCreateAmount',
76
+ )
77
+ }
78
+ }