xrpl 2.13.0 → 3.0.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 (334) hide show
  1. package/README.md +2 -2
  2. package/build/xrpl-latest-min.js +1 -1
  3. package/build/xrpl-latest-min.js.map +1 -1
  4. package/build/xrpl-latest.js +18279 -74867
  5. package/build/xrpl-latest.js.map +1 -1
  6. package/dist/npm/Wallet/authorizeChannel.d.ts +3 -0
  7. package/dist/npm/Wallet/authorizeChannel.d.ts.map +1 -0
  8. package/dist/npm/Wallet/authorizeChannel.js +14 -0
  9. package/dist/npm/Wallet/authorizeChannel.js.map +1 -0
  10. package/dist/npm/Wallet/defaultFaucets.js +1 -1
  11. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  12. package/dist/npm/Wallet/fundWallet.d.ts +17 -3
  13. package/dist/npm/Wallet/fundWallet.d.ts.map +1 -1
  14. package/dist/npm/Wallet/fundWallet.js +53 -78
  15. package/dist/npm/Wallet/fundWallet.js.map +1 -1
  16. package/dist/npm/Wallet/index.d.ts.map +1 -1
  17. package/dist/npm/Wallet/index.js +24 -23
  18. package/dist/npm/Wallet/index.js.map +1 -1
  19. package/dist/npm/Wallet/signer.d.ts +2 -4
  20. package/dist/npm/Wallet/signer.d.ts.map +1 -1
  21. package/dist/npm/Wallet/signer.js +17 -13
  22. package/dist/npm/Wallet/signer.js.map +1 -1
  23. package/dist/npm/Wallet/walletFromSecretNumbers.js +2 -2
  24. package/dist/npm/Wallet/walletFromSecretNumbers.js.map +1 -1
  25. package/dist/npm/client/RequestManager.d.ts +3 -2
  26. package/dist/npm/client/RequestManager.d.ts.map +1 -1
  27. package/dist/npm/client/RequestManager.js +25 -1
  28. package/dist/npm/client/RequestManager.js.map +1 -1
  29. package/dist/npm/client/connection.d.ts +8 -11
  30. package/dist/npm/client/connection.d.ts.map +1 -1
  31. package/dist/npm/client/connection.js +8 -54
  32. package/dist/npm/client/connection.js.map +1 -1
  33. package/dist/npm/client/index.d.ts +56 -78
  34. package/dist/npm/client/index.d.ts.map +1 -1
  35. package/dist/npm/client/index.js +155 -42
  36. package/dist/npm/client/index.js.map +1 -1
  37. package/dist/npm/client/partialPayment.d.ts +4 -2
  38. package/dist/npm/client/partialPayment.d.ts.map +1 -1
  39. package/dist/npm/client/partialPayment.js.map +1 -1
  40. package/dist/npm/errors.d.ts.map +1 -1
  41. package/dist/npm/errors.js +1 -2
  42. package/dist/npm/errors.js.map +1 -1
  43. package/dist/npm/index.d.ts +1 -1
  44. package/dist/npm/index.d.ts.map +1 -1
  45. package/dist/npm/index.js +1 -3
  46. package/dist/npm/index.js.map +1 -1
  47. package/dist/npm/models/ledger/AccountRoot.js +1 -1
  48. package/dist/npm/models/ledger/AccountRoot.js.map +1 -1
  49. package/dist/npm/models/ledger/Offer.js +1 -1
  50. package/dist/npm/models/ledger/Offer.js.map +1 -1
  51. package/dist/npm/models/ledger/RippleState.js +1 -1
  52. package/dist/npm/models/ledger/RippleState.js.map +1 -1
  53. package/dist/npm/models/ledger/SignerList.js +1 -1
  54. package/dist/npm/models/ledger/SignerList.js.map +1 -1
  55. package/dist/npm/models/methods/index.d.ts +12 -1
  56. package/dist/npm/models/methods/index.d.ts.map +1 -1
  57. package/dist/npm/models/methods/ledger.d.ts +35 -7
  58. package/dist/npm/models/methods/ledger.d.ts.map +1 -1
  59. package/dist/npm/models/methods/subscribe.d.ts +3 -0
  60. package/dist/npm/models/methods/subscribe.d.ts.map +1 -1
  61. package/dist/npm/models/methods/tx.d.ts +1 -1
  62. package/dist/npm/models/methods/tx.d.ts.map +1 -1
  63. package/dist/npm/models/transactions/AMMDeposit.js +1 -1
  64. package/dist/npm/models/transactions/AMMDeposit.js.map +1 -1
  65. package/dist/npm/models/transactions/AMMWithdraw.js +1 -1
  66. package/dist/npm/models/transactions/AMMWithdraw.js.map +1 -1
  67. package/dist/npm/models/transactions/NFTokenAcceptOffer.d.ts +4 -0
  68. package/dist/npm/models/transactions/NFTokenAcceptOffer.d.ts.map +1 -1
  69. package/dist/npm/models/transactions/NFTokenAcceptOffer.js.map +1 -1
  70. package/dist/npm/models/transactions/NFTokenCancelOffer.d.ts +4 -0
  71. package/dist/npm/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
  72. package/dist/npm/models/transactions/NFTokenCancelOffer.js.map +1 -1
  73. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts +4 -0
  74. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  75. package/dist/npm/models/transactions/NFTokenCreateOffer.js +1 -1
  76. package/dist/npm/models/transactions/NFTokenCreateOffer.js.map +1 -1
  77. package/dist/npm/models/transactions/NFTokenMint.d.ts +4 -0
  78. package/dist/npm/models/transactions/NFTokenMint.d.ts.map +1 -1
  79. package/dist/npm/models/transactions/NFTokenMint.js +1 -1
  80. package/dist/npm/models/transactions/NFTokenMint.js.map +1 -1
  81. package/dist/npm/models/transactions/XChainModifyBridge.js +1 -1
  82. package/dist/npm/models/transactions/XChainModifyBridge.js.map +1 -1
  83. package/dist/npm/models/transactions/accountSet.js +2 -2
  84. package/dist/npm/models/transactions/accountSet.js.map +1 -1
  85. package/dist/npm/models/transactions/enableAmendment.js +1 -1
  86. package/dist/npm/models/transactions/enableAmendment.js.map +1 -1
  87. package/dist/npm/models/transactions/metadata.d.ts +9 -1
  88. package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
  89. package/dist/npm/models/transactions/metadata.js.map +1 -1
  90. package/dist/npm/models/transactions/offerCreate.js +1 -1
  91. package/dist/npm/models/transactions/offerCreate.js.map +1 -1
  92. package/dist/npm/models/transactions/payment.d.ts +5 -0
  93. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  94. package/dist/npm/models/transactions/payment.js +1 -1
  95. package/dist/npm/models/transactions/payment.js.map +1 -1
  96. package/dist/npm/models/transactions/paymentChannelClaim.js +1 -1
  97. package/dist/npm/models/transactions/paymentChannelClaim.js.map +1 -1
  98. package/dist/npm/models/transactions/transaction.d.ts +4 -3
  99. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  100. package/dist/npm/models/transactions/transaction.js.map +1 -1
  101. package/dist/npm/models/transactions/trustSet.js +1 -1
  102. package/dist/npm/models/transactions/trustSet.js.map +1 -1
  103. package/dist/npm/snippets/src/getTransaction.js +1 -1
  104. package/dist/npm/snippets/src/getTransaction.js.map +1 -1
  105. package/dist/npm/snippets/src/paths.js +2 -3
  106. package/dist/npm/snippets/src/paths.js.map +1 -1
  107. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  108. package/dist/npm/src/Wallet/authorizeChannel.d.ts +3 -0
  109. package/dist/npm/src/Wallet/authorizeChannel.d.ts.map +1 -0
  110. package/dist/npm/src/Wallet/authorizeChannel.js +14 -0
  111. package/dist/npm/src/Wallet/authorizeChannel.js.map +1 -0
  112. package/dist/npm/src/Wallet/defaultFaucets.js +1 -1
  113. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  114. package/dist/npm/src/Wallet/fundWallet.d.ts +17 -3
  115. package/dist/npm/src/Wallet/fundWallet.d.ts.map +1 -1
  116. package/dist/npm/src/Wallet/fundWallet.js +53 -78
  117. package/dist/npm/src/Wallet/fundWallet.js.map +1 -1
  118. package/dist/npm/src/Wallet/index.d.ts.map +1 -1
  119. package/dist/npm/src/Wallet/index.js +24 -23
  120. package/dist/npm/src/Wallet/index.js.map +1 -1
  121. package/dist/npm/src/Wallet/signer.d.ts +2 -4
  122. package/dist/npm/src/Wallet/signer.d.ts.map +1 -1
  123. package/dist/npm/src/Wallet/signer.js +17 -13
  124. package/dist/npm/src/Wallet/signer.js.map +1 -1
  125. package/dist/npm/src/Wallet/walletFromSecretNumbers.js +2 -2
  126. package/dist/npm/src/Wallet/walletFromSecretNumbers.js.map +1 -1
  127. package/dist/npm/src/client/RequestManager.d.ts +3 -2
  128. package/dist/npm/src/client/RequestManager.d.ts.map +1 -1
  129. package/dist/npm/src/client/RequestManager.js +25 -1
  130. package/dist/npm/src/client/RequestManager.js.map +1 -1
  131. package/dist/npm/src/client/connection.d.ts +8 -11
  132. package/dist/npm/src/client/connection.d.ts.map +1 -1
  133. package/dist/npm/src/client/connection.js +8 -54
  134. package/dist/npm/src/client/connection.js.map +1 -1
  135. package/dist/npm/src/client/index.d.ts +56 -78
  136. package/dist/npm/src/client/index.d.ts.map +1 -1
  137. package/dist/npm/src/client/index.js +155 -42
  138. package/dist/npm/src/client/index.js.map +1 -1
  139. package/dist/npm/src/client/partialPayment.d.ts +4 -2
  140. package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
  141. package/dist/npm/src/client/partialPayment.js.map +1 -1
  142. package/dist/npm/src/errors.d.ts.map +1 -1
  143. package/dist/npm/src/errors.js +1 -2
  144. package/dist/npm/src/errors.js.map +1 -1
  145. package/dist/npm/src/index.d.ts +1 -1
  146. package/dist/npm/src/index.d.ts.map +1 -1
  147. package/dist/npm/src/index.js +1 -3
  148. package/dist/npm/src/index.js.map +1 -1
  149. package/dist/npm/src/models/ledger/AccountRoot.js +1 -1
  150. package/dist/npm/src/models/ledger/AccountRoot.js.map +1 -1
  151. package/dist/npm/src/models/ledger/Offer.js +1 -1
  152. package/dist/npm/src/models/ledger/Offer.js.map +1 -1
  153. package/dist/npm/src/models/ledger/RippleState.js +1 -1
  154. package/dist/npm/src/models/ledger/RippleState.js.map +1 -1
  155. package/dist/npm/src/models/ledger/SignerList.js +1 -1
  156. package/dist/npm/src/models/ledger/SignerList.js.map +1 -1
  157. package/dist/npm/src/models/methods/index.d.ts +12 -1
  158. package/dist/npm/src/models/methods/index.d.ts.map +1 -1
  159. package/dist/npm/src/models/methods/ledger.d.ts +35 -7
  160. package/dist/npm/src/models/methods/ledger.d.ts.map +1 -1
  161. package/dist/npm/src/models/methods/subscribe.d.ts +3 -0
  162. package/dist/npm/src/models/methods/subscribe.d.ts.map +1 -1
  163. package/dist/npm/src/models/methods/tx.d.ts +1 -1
  164. package/dist/npm/src/models/methods/tx.d.ts.map +1 -1
  165. package/dist/npm/src/models/transactions/AMMDeposit.js +1 -1
  166. package/dist/npm/src/models/transactions/AMMDeposit.js.map +1 -1
  167. package/dist/npm/src/models/transactions/AMMWithdraw.js +1 -1
  168. package/dist/npm/src/models/transactions/AMMWithdraw.js.map +1 -1
  169. package/dist/npm/src/models/transactions/NFTokenAcceptOffer.d.ts +4 -0
  170. package/dist/npm/src/models/transactions/NFTokenAcceptOffer.d.ts.map +1 -1
  171. package/dist/npm/src/models/transactions/NFTokenAcceptOffer.js.map +1 -1
  172. package/dist/npm/src/models/transactions/NFTokenCancelOffer.d.ts +4 -0
  173. package/dist/npm/src/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
  174. package/dist/npm/src/models/transactions/NFTokenCancelOffer.js.map +1 -1
  175. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts +4 -0
  176. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  177. package/dist/npm/src/models/transactions/NFTokenCreateOffer.js +1 -1
  178. package/dist/npm/src/models/transactions/NFTokenCreateOffer.js.map +1 -1
  179. package/dist/npm/src/models/transactions/NFTokenMint.d.ts +4 -0
  180. package/dist/npm/src/models/transactions/NFTokenMint.d.ts.map +1 -1
  181. package/dist/npm/src/models/transactions/NFTokenMint.js +1 -1
  182. package/dist/npm/src/models/transactions/NFTokenMint.js.map +1 -1
  183. package/dist/npm/src/models/transactions/XChainModifyBridge.js +1 -1
  184. package/dist/npm/src/models/transactions/XChainModifyBridge.js.map +1 -1
  185. package/dist/npm/src/models/transactions/accountSet.js +2 -2
  186. package/dist/npm/src/models/transactions/accountSet.js.map +1 -1
  187. package/dist/npm/src/models/transactions/enableAmendment.js +1 -1
  188. package/dist/npm/src/models/transactions/enableAmendment.js.map +1 -1
  189. package/dist/npm/src/models/transactions/metadata.d.ts +9 -1
  190. package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
  191. package/dist/npm/src/models/transactions/metadata.js.map +1 -1
  192. package/dist/npm/src/models/transactions/offerCreate.js +1 -1
  193. package/dist/npm/src/models/transactions/offerCreate.js.map +1 -1
  194. package/dist/npm/src/models/transactions/payment.d.ts +5 -0
  195. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  196. package/dist/npm/src/models/transactions/payment.js +1 -1
  197. package/dist/npm/src/models/transactions/payment.js.map +1 -1
  198. package/dist/npm/src/models/transactions/paymentChannelClaim.js +1 -1
  199. package/dist/npm/src/models/transactions/paymentChannelClaim.js.map +1 -1
  200. package/dist/npm/src/models/transactions/transaction.d.ts +4 -3
  201. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  202. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  203. package/dist/npm/src/models/transactions/trustSet.js +1 -1
  204. package/dist/npm/src/models/transactions/trustSet.js.map +1 -1
  205. package/dist/npm/src/sugar/autofill.d.ts +6 -2
  206. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  207. package/dist/npm/src/sugar/autofill.js +9 -28
  208. package/dist/npm/src/sugar/autofill.js.map +1 -1
  209. package/dist/npm/src/sugar/balances.d.ts +2 -17
  210. package/dist/npm/src/sugar/balances.d.ts.map +1 -1
  211. package/dist/npm/src/sugar/balances.js +2 -60
  212. package/dist/npm/src/sugar/balances.js.map +1 -1
  213. package/dist/npm/src/sugar/getOrderbook.d.ts +19 -5
  214. package/dist/npm/src/sugar/getOrderbook.d.ts.map +1 -1
  215. package/dist/npm/src/sugar/getOrderbook.js +72 -53
  216. package/dist/npm/src/sugar/getOrderbook.js.map +1 -1
  217. package/dist/npm/src/sugar/index.d.ts +0 -4
  218. package/dist/npm/src/sugar/index.d.ts.map +1 -1
  219. package/dist/npm/src/sugar/index.js +0 -13
  220. package/dist/npm/src/sugar/index.js.map +1 -1
  221. package/dist/npm/src/sugar/submit.d.ts +6 -9
  222. package/dist/npm/src/sugar/submit.d.ts.map +1 -1
  223. package/dist/npm/src/sugar/submit.js +5 -22
  224. package/dist/npm/src/sugar/submit.js.map +1 -1
  225. package/dist/npm/src/utils/collections.d.ts +7 -0
  226. package/dist/npm/src/utils/collections.d.ts.map +1 -0
  227. package/dist/npm/src/utils/collections.js +22 -0
  228. package/dist/npm/src/utils/collections.js.map +1 -0
  229. package/dist/npm/src/utils/getBalanceChanges.d.ts.map +1 -1
  230. package/dist/npm/src/utils/getBalanceChanges.js +3 -4
  231. package/dist/npm/src/utils/getBalanceChanges.js.map +1 -1
  232. package/dist/npm/src/utils/getNFTokenID.d.ts.map +1 -1
  233. package/dist/npm/src/utils/getNFTokenID.js +8 -8
  234. package/dist/npm/src/utils/getNFTokenID.js.map +1 -1
  235. package/dist/npm/src/utils/hashes/SHAMap/node.js +1 -1
  236. package/dist/npm/src/utils/hashes/SHAMap/node.js.map +1 -1
  237. package/dist/npm/src/utils/hashes/sha512Half.d.ts.map +1 -1
  238. package/dist/npm/src/utils/hashes/sha512Half.js +4 -7
  239. package/dist/npm/src/utils/hashes/sha512Half.js.map +1 -1
  240. package/dist/npm/sugar/autofill.d.ts +6 -2
  241. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  242. package/dist/npm/sugar/autofill.js +9 -28
  243. package/dist/npm/sugar/autofill.js.map +1 -1
  244. package/dist/npm/sugar/balances.d.ts +2 -17
  245. package/dist/npm/sugar/balances.d.ts.map +1 -1
  246. package/dist/npm/sugar/balances.js +2 -60
  247. package/dist/npm/sugar/balances.js.map +1 -1
  248. package/dist/npm/sugar/getOrderbook.d.ts +19 -5
  249. package/dist/npm/sugar/getOrderbook.d.ts.map +1 -1
  250. package/dist/npm/sugar/getOrderbook.js +72 -53
  251. package/dist/npm/sugar/getOrderbook.js.map +1 -1
  252. package/dist/npm/sugar/index.d.ts +0 -4
  253. package/dist/npm/sugar/index.d.ts.map +1 -1
  254. package/dist/npm/sugar/index.js +0 -13
  255. package/dist/npm/sugar/index.js.map +1 -1
  256. package/dist/npm/sugar/submit.d.ts +6 -9
  257. package/dist/npm/sugar/submit.d.ts.map +1 -1
  258. package/dist/npm/sugar/submit.js +5 -22
  259. package/dist/npm/sugar/submit.js.map +1 -1
  260. package/dist/npm/utils/collections.d.ts +7 -0
  261. package/dist/npm/utils/collections.d.ts.map +1 -0
  262. package/dist/npm/utils/collections.js +22 -0
  263. package/dist/npm/utils/collections.js.map +1 -0
  264. package/dist/npm/utils/getBalanceChanges.d.ts.map +1 -1
  265. package/dist/npm/utils/getBalanceChanges.js +3 -4
  266. package/dist/npm/utils/getBalanceChanges.js.map +1 -1
  267. package/dist/npm/utils/getNFTokenID.d.ts.map +1 -1
  268. package/dist/npm/utils/getNFTokenID.js +8 -8
  269. package/dist/npm/utils/getNFTokenID.js.map +1 -1
  270. package/dist/npm/utils/hashes/SHAMap/node.js +1 -1
  271. package/dist/npm/utils/hashes/SHAMap/node.js.map +1 -1
  272. package/dist/npm/utils/hashes/sha512Half.d.ts.map +1 -1
  273. package/dist/npm/utils/hashes/sha512Half.js +4 -7
  274. package/dist/npm/utils/hashes/sha512Half.js.map +1 -1
  275. package/package.json +23 -25
  276. package/src/Wallet/authorizeChannel.ts +26 -0
  277. package/src/Wallet/fundWallet.ts +151 -212
  278. package/src/Wallet/index.ts +28 -25
  279. package/src/Wallet/signer.ts +32 -43
  280. package/src/Wallet/walletFromSecretNumbers.ts +1 -1
  281. package/src/client/RequestManager.ts +40 -14
  282. package/src/client/connection.ts +20 -89
  283. package/src/client/index.ts +704 -269
  284. package/src/client/partialPayment.ts +14 -8
  285. package/src/errors.ts +1 -3
  286. package/src/index.ts +1 -3
  287. package/src/models/ledger/Ledger.ts +1 -1
  288. package/src/models/methods/index.ts +175 -0
  289. package/src/models/methods/ledger.ts +149 -20
  290. package/src/models/methods/subscribe.ts +36 -0
  291. package/src/models/methods/tx.ts +2 -1
  292. package/src/models/transactions/NFTokenAcceptOffer.ts +6 -0
  293. package/src/models/transactions/NFTokenCancelOffer.ts +6 -0
  294. package/src/models/transactions/NFTokenCreateOffer.ts +6 -0
  295. package/src/models/transactions/NFTokenMint.ts +6 -0
  296. package/src/models/transactions/metadata.ts +31 -1
  297. package/src/models/transactions/payment.ts +6 -0
  298. package/src/models/transactions/transaction.ts +6 -4
  299. package/src/sugar/autofill.ts +84 -88
  300. package/src/sugar/balances.ts +8 -116
  301. package/src/sugar/getOrderbook.ts +138 -61
  302. package/src/sugar/index.ts +0 -8
  303. package/src/sugar/submit.ts +114 -132
  304. package/src/utils/collections.ts +53 -0
  305. package/src/utils/getBalanceChanges.ts +2 -3
  306. package/src/utils/getNFTokenID.ts +18 -16
  307. package/src/utils/hashes/sha512Half.ts +4 -7
  308. package/dist/npm/client/BroadcastClient.d.ts +0 -7
  309. package/dist/npm/client/BroadcastClient.d.ts.map +0 -1
  310. package/dist/npm/client/BroadcastClient.js +0 -49
  311. package/dist/npm/client/BroadcastClient.js.map +0 -1
  312. package/dist/npm/client/WSWrapper.d.ts +0 -25
  313. package/dist/npm/client/WSWrapper.d.ts.map +0 -1
  314. package/dist/npm/client/WSWrapper.js +0 -44
  315. package/dist/npm/client/WSWrapper.js.map +0 -1
  316. package/dist/npm/src/client/BroadcastClient.d.ts +0 -7
  317. package/dist/npm/src/client/BroadcastClient.d.ts.map +0 -1
  318. package/dist/npm/src/client/BroadcastClient.js +0 -49
  319. package/dist/npm/src/client/BroadcastClient.js.map +0 -1
  320. package/dist/npm/src/client/WSWrapper.d.ts +0 -25
  321. package/dist/npm/src/client/WSWrapper.d.ts.map +0 -1
  322. package/dist/npm/src/client/WSWrapper.js +0 -44
  323. package/dist/npm/src/client/WSWrapper.js.map +0 -1
  324. package/dist/npm/src/sugar/getLedgerIndex.d.ts +0 -3
  325. package/dist/npm/src/sugar/getLedgerIndex.d.ts.map +0 -1
  326. package/dist/npm/src/sugar/getLedgerIndex.js +0 -22
  327. package/dist/npm/src/sugar/getLedgerIndex.js.map +0 -1
  328. package/dist/npm/sugar/getLedgerIndex.d.ts +0 -3
  329. package/dist/npm/sugar/getLedgerIndex.d.ts.map +0 -1
  330. package/dist/npm/sugar/getLedgerIndex.js +0 -22
  331. package/dist/npm/sugar/getLedgerIndex.js.map +0 -1
  332. package/src/client/BroadcastClient.ts +0 -84
  333. package/src/client/WSWrapper.ts +0 -106
  334. package/src/sugar/getLedgerIndex.ts +0 -15
@@ -18,7 +18,7 @@ import { CheckCancel, validateCheckCancel } from './checkCancel'
18
18
  import { CheckCash, validateCheckCash } from './checkCash'
19
19
  import { CheckCreate, validateCheckCreate } from './checkCreate'
20
20
  import { Clawback, validateClawback } from './clawback'
21
- import { isIssuedCurrency } from './common'
21
+ import { BaseTransaction, isIssuedCurrency } from './common'
22
22
  import { DepositPreauth, validateDepositPreauth } from './depositPreauth'
23
23
  import { EnableAmendment } from './enableAmendment'
24
24
  import { EscrowCancel, validateEscrowCancel } from './escrowCancel'
@@ -136,9 +136,11 @@ export type PseudoTransaction = EnableAmendment | SetFee | UNLModify
136
136
  /**
137
137
  * @category Transaction Models
138
138
  */
139
- export interface TransactionAndMetadata {
140
- transaction: Transaction
141
- metadata: TransactionMetadata
139
+ export interface TransactionAndMetadata<
140
+ T extends BaseTransaction = Transaction,
141
+ > {
142
+ transaction: T
143
+ metadata: TransactionMetadata<T>
142
144
  }
143
145
 
144
146
  /**
@@ -5,7 +5,6 @@ import type { Client } from '..'
5
5
  import { ValidationError, XrplError } from '../errors'
6
6
  import { AccountInfoRequest, AccountObjectsRequest } from '../models/methods'
7
7
  import { Transaction } from '../models/transactions'
8
- import { setTransactionFlagsToNumber } from '../models/utils/flags'
9
8
  import { xrpToDrops } from '../utils'
10
9
 
11
10
  import getFeeXrp from './getFeeXrp'
@@ -19,83 +18,6 @@ const LEDGER_OFFSET = 20
19
18
  const RESTRICTED_NETWORKS = 1024
20
19
  const REQUIRED_NETWORKID_VERSION = '1.11.0'
21
20
  const HOOKS_TESTNET_ID = 21338
22
- interface ClassicAccountAndTag {
23
- classicAccount: string
24
- tag: number | false | undefined
25
- }
26
-
27
- /**
28
- * Autofills fields in a transaction. This will set `Sequence`, `Fee`,
29
- * `lastLedgerSequence` according to the current state of the server this Client
30
- * is connected to. It also converts all X-Addresses to classic addresses and
31
- * flags interfaces into numbers.
32
- *
33
- * @example
34
- *
35
- * ```ts
36
- * const { Client } = require('xrpl')
37
- *
38
- * const client = new Client('wss://s.altnet.rippletest.net:51233')
39
- *
40
- * async function createAndAutofillTransaction() {
41
- * const transaction = {
42
- * TransactionType: 'Payment',
43
- * Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh',
44
- * Destination: 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59',
45
- * Amount: '10000000' // 10 XRP in drops (1/1,000,000th of an XRP)
46
- * }
47
- *
48
- * try {
49
- * const autofilledTransaction = await client.autofill(transaction)
50
- * console.log(autofilledTransaction)
51
- * } catch (error) {
52
- * console.error(`Failed to autofill transaction: ${error}`)
53
- * }
54
- * }
55
- *
56
- * createAndAutofillTransaction()
57
- * ```
58
- *
59
- * Autofill helps fill in fields which should be included in a transaction, but can be determined automatically
60
- * such as `LastLedgerSequence` and `Fee`. If you override one of the fields `autofill` changes, your explicit
61
- * values will be used instead. By default, this is done as part of `submit` and `submitAndWait` when you pass
62
- * in an unsigned transaction along with your wallet to be submitted.
63
- *
64
- * @param this - A client.
65
- * @param transaction - A {@link Transaction} in JSON format
66
- * @param signersCount - The expected number of signers for this transaction.
67
- * Only used for multisigned transactions.
68
- * @returns The autofilled transaction.
69
- */
70
- async function autofill<T extends Transaction>(
71
- this: Client,
72
- transaction: T,
73
- signersCount?: number,
74
- ): Promise<T> {
75
- const tx = { ...transaction }
76
-
77
- setValidAddresses(tx)
78
-
79
- setTransactionFlagsToNumber(tx)
80
- const promises: Array<Promise<void>> = []
81
- if (tx.NetworkID == null) {
82
- tx.NetworkID = txNeedsNetworkID(this) ? this.networkID : undefined
83
- }
84
- if (tx.Sequence == null) {
85
- promises.push(setNextValidSequenceNumber(this, tx))
86
- }
87
- if (tx.Fee == null) {
88
- promises.push(calculateFeePerTransactionType(this, tx, signersCount))
89
- }
90
- if (tx.LastLedgerSequence == null) {
91
- promises.push(setLatestValidatedLedgerSequence(this, tx))
92
- }
93
- if (tx.TransactionType === 'AccountDelete') {
94
- promises.push(checkAccountDeleteBlockers(this, tx))
95
- }
96
-
97
- return Promise.all(promises).then(() => tx)
98
- }
99
21
 
100
22
  /**
101
23
  * Determines whether the source rippled version is not later than the target rippled version.
@@ -171,7 +93,7 @@ function isNotLaterRippledVersion(source: string, target: string): boolean {
171
93
  * @param client -- The connected client.
172
94
  * @returns True if required networkID, false otherwise.
173
95
  */
174
- function txNeedsNetworkID(client: Client): boolean {
96
+ export function txNeedsNetworkID(client: Client): boolean {
175
97
  if (
176
98
  client.networkID !== undefined &&
177
99
  client.networkID > RESTRICTED_NETWORKS
@@ -190,7 +112,17 @@ function txNeedsNetworkID(client: Client): boolean {
190
112
  return false
191
113
  }
192
114
 
193
- function setValidAddresses(tx: Transaction): void {
115
+ interface ClassicAccountAndTag {
116
+ classicAccount: string
117
+ tag: number | false | undefined
118
+ }
119
+
120
+ /**
121
+ * Sets valid addresses for the transaction.
122
+ *
123
+ * @param tx - The transaction object.
124
+ */
125
+ export function setValidAddresses(tx: Transaction): void {
194
126
  validateAccountAddress(tx, 'Account', 'SourceTag')
195
127
  // eslint-disable-next-line @typescript-eslint/dot-notation -- Destination can exist on Transaction
196
128
  if (tx['Destination'] != null) {
@@ -206,6 +138,14 @@ function setValidAddresses(tx: Transaction): void {
206
138
  convertToClassicAddress(tx, 'RegularKey')
207
139
  }
208
140
 
141
+ /**
142
+ * Validates the account address in a transaction object.
143
+ *
144
+ * @param tx - The transaction object.
145
+ * @param accountField - The field name for the account address in the transaction object.
146
+ * @param tagField - The field name for the tag in the transaction object.
147
+ * @throws {ValidationError} If the tag field does not match the tag of the account address.
148
+ */
209
149
  function validateAccountAddress(
210
150
  tx: Transaction,
211
151
  accountField: string,
@@ -227,6 +167,14 @@ function validateAccountAddress(
227
167
  }
228
168
  }
229
169
 
170
+ /**
171
+ * Retrieves the classic account and tag from an account address.
172
+ *
173
+ * @param Account - The account address.
174
+ * @param [expectedTag] - The expected tag for the account address.
175
+ * @returns The classic account and tag.
176
+ * @throws {ValidationError} If the address includes a tag that does not match the tag specified in the transaction.
177
+ */
230
178
  function getClassicAccountAndTag(
231
179
  Account: string,
232
180
  expectedTag?: number,
@@ -249,6 +197,12 @@ function getClassicAccountAndTag(
249
197
  }
250
198
  }
251
199
 
200
+ /**
201
+ * Converts the specified field of a transaction object to a classic address format.
202
+ *
203
+ * @param tx - The transaction object.
204
+ * @param fieldName - The name of the field to convert.export
205
+ */
252
206
  function convertToClassicAddress(tx: Transaction, fieldName: string): void {
253
207
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- assignment is safe
254
208
  const account = tx[fieldName]
@@ -259,7 +213,15 @@ function convertToClassicAddress(tx: Transaction, fieldName: string): void {
259
213
  }
260
214
  }
261
215
 
262
- async function setNextValidSequenceNumber(
216
+ /**
217
+ * Sets the next valid sequence number for a transaction.
218
+ *
219
+ * @param client - The client object used for making requests.
220
+ * @param tx - The transaction object for which the sequence number needs to be set.
221
+ * @returns A Promise that resolves when the sequence number is set.
222
+ * @throws {Error} If there is an error retrieving the account information.
223
+ */
224
+ export async function setNextValidSequenceNumber(
263
225
  client: Client,
264
226
  tx: Transaction,
265
227
  ): Promise<void> {
@@ -273,7 +235,14 @@ async function setNextValidSequenceNumber(
273
235
  tx.Sequence = data.result.account_data.Sequence
274
236
  }
275
237
 
276
- async function fetchOwnerReserveFee(client: Client): Promise<BigNumber> {
238
+ /**
239
+ * Fetches the account deletion fee from the server state using the provided client.
240
+ *
241
+ * @param client - The client object used to make the request.
242
+ * @returns A Promise that resolves to the account deletion fee as a BigNumber.
243
+ * @throws {Error} Throws an error if the account deletion fee cannot be fetched.
244
+ */
245
+ async function fetchAccountDeleteFee(client: Client): Promise<BigNumber> {
277
246
  const response = await client.request({ command: 'server_state' })
278
247
  const fee = response.result.state.validated_ledger?.reserve_inc
279
248
 
@@ -284,7 +253,15 @@ async function fetchOwnerReserveFee(client: Client): Promise<BigNumber> {
284
253
  return new BigNumber(fee)
285
254
  }
286
255
 
287
- async function calculateFeePerTransactionType(
256
+ /**
257
+ * Calculates the fee per transaction type.
258
+ *
259
+ * @param client - The client object.
260
+ * @param tx - The transaction object.
261
+ * @param [signersCount=0] - The number of signers (default is 0). Only used for multisigning.
262
+ * @returns A promise that resolves with void. Modifies the `tx` parameter to give it the calculated fee.
263
+ */
264
+ export async function calculateFeePerTransactionType(
288
265
  client: Client,
289
266
  tx: Transaction,
290
267
  signersCount = 0,
@@ -309,7 +286,7 @@ async function calculateFeePerTransactionType(
309
286
  tx.TransactionType === 'AccountDelete' ||
310
287
  tx.TransactionType === 'AMMCreate'
311
288
  ) {
312
- baseFee = await fetchOwnerReserveFee(client)
289
+ baseFee = await fetchAccountDeleteFee(client)
313
290
  }
314
291
 
315
292
  /*
@@ -331,11 +308,25 @@ async function calculateFeePerTransactionType(
331
308
  tx.Fee = totalFee.dp(0, BigNumber.ROUND_CEIL).toString(10)
332
309
  }
333
310
 
311
+ /**
312
+ * Scales the given value by multiplying it with the provided multiplier.
313
+ *
314
+ * @param value - The value to be scaled.
315
+ * @param multiplier - The multiplier to scale the value.
316
+ * @returns The scaled value as a string.
317
+ */
334
318
  function scaleValue(value, multiplier): string {
335
319
  return new BigNumber(value).times(multiplier).toString()
336
320
  }
337
321
 
338
- async function setLatestValidatedLedgerSequence(
322
+ /**
323
+ * Sets the latest validated ledger sequence for the transaction.
324
+ *
325
+ * @param client - The client object.
326
+ * @param tx - The transaction object.
327
+ * @returns A promise that resolves with void. Modifies the `tx` parameter setting `LastLedgerSequence`.
328
+ */
329
+ export async function setLatestValidatedLedgerSequence(
339
330
  client: Client,
340
331
  tx: Transaction,
341
332
  ): Promise<void> {
@@ -344,7 +335,14 @@ async function setLatestValidatedLedgerSequence(
344
335
  tx.LastLedgerSequence = ledgerSequence + LEDGER_OFFSET
345
336
  }
346
337
 
347
- async function checkAccountDeleteBlockers(
338
+ /**
339
+ * Checks for any blockers that prevent the deletion of an account.
340
+ *
341
+ * @param client - The client object.
342
+ * @param tx - The transaction object.
343
+ * @returns A promise that resolves with void if there are no blockers, or rejects with an XrplError if there are blockers.
344
+ */
345
+ export async function checkAccountDeleteBlockers(
348
346
  client: Client,
349
347
  tx: Transaction,
350
348
  ): Promise<void> {
@@ -367,5 +365,3 @@ async function checkAccountDeleteBlockers(
367
365
  resolve()
368
366
  })
369
367
  }
370
-
371
- export default autofill
@@ -1,123 +1,15 @@
1
- import flatMap from 'lodash/flatMap'
1
+ import { AccountLinesTrustline, Balance } from '../models'
2
2
 
3
- import type { Balance, Client } from '..'
4
- import {
5
- AccountLinesRequest,
6
- AccountLinesTrustline,
7
- LedgerIndex,
8
- AccountInfoRequest,
9
- } from '../models'
10
- import { dropsToXrp } from '../utils'
11
-
12
- function formatBalances(trustlines: AccountLinesTrustline[]): Balance[] {
3
+ /**
4
+ * Formats an array of trustlines into an array of balances.
5
+ *
6
+ * @param trustlines - The array of trustlines to format.
7
+ * @returns An array of balances, each containing the value, currency, and issuer.
8
+ */
9
+ export function formatBalances(trustlines: AccountLinesTrustline[]): Balance[] {
13
10
  return trustlines.map((trustline) => ({
14
11
  value: trustline.balance,
15
12
  currency: trustline.currency,
16
13
  issuer: trustline.account,
17
14
  }))
18
15
  }
19
-
20
- /**
21
- * Get the XRP balance for an account.
22
- *
23
- * @example
24
- * ```ts
25
- * const client = new Client(wss://s.altnet.rippletest.net:51233)
26
- * const balance = await client.getXrpBalance('rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn')
27
- * console.log(balance)
28
- * /// '200'
29
- * ```
30
- *
31
- * @param this - Client.
32
- * @param address - Address of the account to retrieve XRP balance.
33
- * @param options - Options to include for getting the XRP balance.
34
- * @param options.ledger_index - Retrieve the account balances at a given
35
- * ledger_index.
36
- * @param options.ledger_hash - Retrieve the account balances at the ledger with
37
- * a given ledger_hash.
38
- * @returns The XRP balance of the account (as a string).
39
- */
40
- async function getXrpBalance(
41
- this: Client,
42
- address: string,
43
- options: {
44
- ledger_hash?: string
45
- ledger_index?: LedgerIndex
46
- } = {},
47
- ): Promise<string> {
48
- const xrpRequest: AccountInfoRequest = {
49
- command: 'account_info',
50
- account: address,
51
- ledger_index: options.ledger_index ?? 'validated',
52
- ledger_hash: options.ledger_hash,
53
- }
54
- const response = await this.request(xrpRequest)
55
- return dropsToXrp(response.result.account_data.Balance)
56
- }
57
-
58
- /**
59
- * Get XRP/non-XRP balances for an account.
60
- *
61
- * @param this - Client.
62
- * @param address - Address of the account to retrieve balances for.
63
- * @param options - Allows the client to specify a ledger_hash, ledger_index,
64
- * filter by peer, and/or limit number of balances.
65
- * @param options.ledger_index - Retrieve the account balances at a given
66
- * ledger_index.
67
- * @param options.ledger_hash - Retrieve the account balances at the ledger with
68
- * a given ledger_hash.
69
- * @param options.peer - Filter balances by peer.
70
- * @param options.limit - Limit number of balances to return.
71
- * @returns An array of XRP/non-XRP balances for the given account.
72
- */
73
- // eslint-disable-next-line max-lines-per-function -- Longer definition is required for end users to see the definition.
74
- async function getBalances(
75
- this: Client,
76
- address: string,
77
- options: {
78
- ledger_hash?: string
79
- ledger_index?: LedgerIndex
80
- peer?: string
81
- limit?: number
82
- } = {},
83
- ): Promise<
84
- Array<{ value: string; currency: string; issuer?: string | undefined }>
85
- > {
86
- const balances: Balance[] = []
87
-
88
- // get XRP balance
89
- let xrpPromise: Promise<string> = Promise.resolve('')
90
- if (!options.peer) {
91
- xrpPromise = this.getXrpBalance(address, {
92
- ledger_hash: options.ledger_hash,
93
- ledger_index: options.ledger_index,
94
- })
95
- }
96
-
97
- // get non-XRP balances
98
- const linesRequest: AccountLinesRequest = {
99
- command: 'account_lines',
100
- account: address,
101
- ledger_index: options.ledger_index ?? 'validated',
102
- ledger_hash: options.ledger_hash,
103
- peer: options.peer,
104
- limit: options.limit,
105
- }
106
- const linesPromise = this.requestAll(linesRequest)
107
-
108
- // combine results
109
- await Promise.all([xrpPromise, linesPromise]).then(
110
- ([xrpBalance, linesResponses]) => {
111
- const accountLinesBalance = flatMap(linesResponses, (response) =>
112
- formatBalances(response.result.lines),
113
- )
114
- if (xrpBalance !== '') {
115
- balances.push({ currency: 'XRP', value: xrpBalance })
116
- }
117
- balances.push(...accountLinesBalance)
118
- },
119
- )
120
- return balances.slice(0, options.limit)
121
- }
122
-
123
- export { getXrpBalance, getBalances }
@@ -1,6 +1,4 @@
1
- /* eslint-disable max-lines-per-function -- Needs to process orderbooks. */
2
1
  import BigNumber from 'bignumber.js'
3
- import flatMap from 'lodash/flatMap'
4
2
 
5
3
  import type { Client } from '../client'
6
4
  import { ValidationError } from '../errors'
@@ -31,43 +29,40 @@ const getOrderbookOptionsSet = new Set([
31
29
  ])
32
30
 
33
31
  /**
34
- * Fetch orderbook (buy/sell orders) between two currency pairs. This checks both sides of the orderbook
35
- * by making two `order_book` requests (with the second reversing takerPays and takerGets). Returned offers are
36
- * not normalized in this function, so either currency could be takerGets or takerPays.
32
+ * Represents the options for retrieving the order book.
33
+ */
34
+ export interface GetOrderBookOptions {
35
+ /**
36
+ * The limit on the number of offers to return.
37
+ */
38
+ limit?: number
39
+ /**
40
+ * The ledger index of the ledger to use.
41
+ */
42
+ ledger_index?: LedgerIndex
43
+ /**
44
+ * The ledger hash of the ledger to use.
45
+ */
46
+ ledger_hash?: string | null
47
+ /**
48
+ * The account that takes the offers.
49
+ */
50
+ taker?: string | null
51
+ }
52
+
53
+ /**
54
+ * Validates the options for retrieving the order book.
37
55
  *
38
- * @param this - Client.
39
- * @param currency1 - Specification of one currency involved. (With a currency code and optionally an issuer)
40
- * @param currency2 - Specification of a second currency involved. (With a currency code and optionally an issuer)
41
- * @param options - Options allowing the client to specify ledger_index,
42
- * ledger_hash, filter by taker, and/or limit number of orders.
43
- * @param options.ledger_index - Retrieve the orderbook at a given ledger_index.
44
- * @param options.ledger_hash - Retrieve the orderbook at the ledger with a
45
- * given ledger_hash.
46
- * @param options.taker - Filter orders by taker.
47
- * @param options.limit - The limit passed into each book_offers request.
48
- * Can return more than this due to two calls being made. Defaults to 20.
49
- * @returns An object containing buy and sell objects.
56
+ * @param options - The options to validate.
57
+ * @throws {ValidationError} If any validation errors occur.
50
58
  */
51
- // eslint-disable-next-line max-params, complexity -- Once bound to Client, getOrderbook only has 3 parameters.
52
- async function getOrderbook(
53
- this: Client,
54
- currency1: BookOfferCurrency,
55
- currency2: BookOfferCurrency,
56
- options: {
57
- limit?: number
58
- ledger_index?: LedgerIndex
59
- ledger_hash?: string | null
60
- taker?: string | null
61
- } = {},
62
- ): Promise<{
63
- buy: BookOffer[]
64
- sell: BookOffer[]
65
- }> {
66
- Object.keys(options).forEach((key) => {
59
+ // eslint-disable-next-line complexity -- Necessary for validation.
60
+ export function validateOrderbookOptions(options: GetOrderBookOptions): void {
61
+ for (const key of Object.keys(options)) {
67
62
  if (!getOrderbookOptionsSet.has(key)) {
68
63
  throw new ValidationError(`Unexpected option: ${key}`, options)
69
64
  }
70
- })
65
+ }
71
66
 
72
67
  if (options.limit && typeof options.limit !== 'number') {
73
68
  throw new ValidationError('limit must be a number', options.limit)
@@ -101,7 +96,30 @@ async function getOrderbook(
101
96
  if (options.taker !== undefined && typeof options.taker !== 'string') {
102
97
  throw new ValidationError('taker must be a string', options.taker)
103
98
  }
99
+ }
104
100
 
101
+ /**
102
+ * Creates a request object for retrieving book offers.
103
+ *
104
+ * @param currency1 - The first currency in the pair.
105
+ * @param currency2 - The second currency in the pair.
106
+ * @param options - Additional options for the request.
107
+ * @param [options.limit] - The maximum number of offers to retrieve.
108
+ * @param [options.ledger_index] - The ledger index to use for retrieval.
109
+ * @param [options.ledger_hash] - The ledger hash to use for retrieval.
110
+ * @param [options.taker] - The taker address for retrieval.
111
+ * @returns The created request object.
112
+ */
113
+ export function createBookOffersRequest(
114
+ currency1: BookOfferCurrency,
115
+ currency2: BookOfferCurrency,
116
+ options: {
117
+ limit?: number
118
+ ledger_index?: LedgerIndex
119
+ ledger_hash?: string | null
120
+ taker?: string | null
121
+ },
122
+ ): BookOffersRequest {
105
123
  const request: BookOffersRequest = {
106
124
  command: 'book_offers',
107
125
  taker_pays: currency1,
@@ -111,25 +129,78 @@ async function getOrderbook(
111
129
  limit: options.limit ?? DEFAULT_LIMIT,
112
130
  taker: options.taker ? options.taker : undefined,
113
131
  }
114
- // 2. Make Request
115
- const directOfferResults = await this.requestAll(request)
116
- request.taker_gets = currency1
117
- request.taker_pays = currency2
118
- const reverseOfferResults = await this.requestAll(request)
119
- // 3. Return Formatted Response
120
- const directOffers = flatMap(
121
- directOfferResults,
122
- (directOfferResult) => directOfferResult.result.offers,
123
- )
124
- const reverseOffers = flatMap(
125
- reverseOfferResults,
126
- (reverseOfferResult) => reverseOfferResult.result.offers,
127
- )
128
-
129
- const orders = [...directOffers, ...reverseOffers]
130
- // separate out the buy and sell orders
132
+
133
+ return request
134
+ }
135
+
136
+ type BookOfferResult = BookOffer[]
137
+
138
+ /**
139
+ * Retrieves all book offer results using the given request.
140
+ *
141
+ * @param client - The Ripple client.
142
+ * @param request - The request object.
143
+ * @returns The array of book offer results.
144
+ */
145
+ export async function requestAllOffers(
146
+ client: Client,
147
+ request: BookOffersRequest,
148
+ ): Promise<BookOfferResult[]> {
149
+ const results = await client.requestAll(request)
150
+ return results.map((result) => result.result.offers)
151
+ }
152
+
153
+ /**
154
+ * Creates a reverse request object by swapping the taker pays and taker gets amounts.
155
+ *
156
+ * @param request - The original request object.
157
+ * @returns The reverse request object.
158
+ */
159
+ export function reverseRequest(request: BookOffersRequest): BookOffersRequest {
160
+ return {
161
+ ...request,
162
+ taker_pays: request.taker_gets,
163
+ taker_gets: request.taker_pays,
164
+ }
165
+ }
166
+
167
+ /**
168
+ * Extracts the offers from the book offer results.
169
+ *
170
+ * @param offerResults - The array of book offer results.
171
+ * @returns The extracted offers.
172
+ */
173
+ export function extractOffers(offerResults: BookOfferResult[]): BookOffer[] {
174
+ return offerResults.flatMap((offerResult) => offerResult)
175
+ }
176
+
177
+ /**
178
+ * Combines the direct and reverse offers into a single array.
179
+ *
180
+ * @param directOffers - The direct offers.
181
+ * @param reverseOffers - The reverse offers.
182
+ * @returns The combined array of offers.
183
+ */
184
+ export function combineOrders(
185
+ directOffers: BookOffer[],
186
+ reverseOffers: BookOffer[],
187
+ ): BookOffer[] {
188
+ return [...directOffers, ...reverseOffers]
189
+ }
190
+
191
+ /**
192
+ * Separates the buy and sell orders from the given array of orders.
193
+ *
194
+ * @param orders - The array of orders.
195
+ * @returns The separated buy and sell orders.
196
+ */
197
+ export function separateBuySellOrders(orders: BookOffer[]): {
198
+ buy: BookOffer[]
199
+ sell: BookOffer[]
200
+ } {
131
201
  const buy: BookOffer[] = []
132
202
  const sell: BookOffer[] = []
203
+
133
204
  orders.forEach((order) => {
134
205
  // eslint-disable-next-line no-bitwise -- necessary for flags check
135
206
  if ((order.Flags & OfferFlags.lsfSell) === 0) {
@@ -138,15 +209,21 @@ async function getOrderbook(
138
209
  sell.push(order)
139
210
  }
140
211
  })
141
- /*
142
- * Sort the orders
143
- * for both buys and sells, lowest quality is closest to mid-market
144
- * we sort the orders so that earlier orders are closer to mid-market
145
- */
146
- return {
147
- buy: sortOffers(buy).slice(0, options.limit),
148
- sell: sortOffers(sell).slice(0, options.limit),
149
- }
212
+
213
+ return { buy, sell }
150
214
  }
151
215
 
152
- export default getOrderbook
216
+ /**
217
+ * Sorts and limits the given array of offers.
218
+ *
219
+ * @param offers - The array of offers to sort and limit.
220
+ * @param [limit] - The maximum number of offers to include.
221
+ * @returns The sorted and limited array of offers.
222
+ */
223
+ export function sortAndLimitOffers(
224
+ offers: BookOffer[],
225
+ limit?: number,
226
+ ): BookOffer[] {
227
+ const sortedOffers = sortOffers(offers)
228
+ return sortedOffers.slice(0, limit)
229
+ }
@@ -1,11 +1,3 @@
1
- export { default as autofill } from './autofill'
2
-
3
- export { getBalances, getXrpBalance } from './balances'
4
-
5
- export { default as getLedgerIndex } from './getLedgerIndex'
6
-
7
- export { default as getOrderbook } from './getOrderbook'
8
-
9
1
  export * from './submit'
10
2
 
11
3
  export * from './utils'