xrpl 2.14.0 → 3.0.0-beta.1

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 (407) 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 +15451 -74357
  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/rfc1751.d.ts +1 -2
  20. package/dist/npm/Wallet/rfc1751.d.ts.map +1 -1
  21. package/dist/npm/Wallet/rfc1751.js +21 -5
  22. package/dist/npm/Wallet/rfc1751.js.map +1 -1
  23. package/dist/npm/Wallet/signer.d.ts +2 -4
  24. package/dist/npm/Wallet/signer.d.ts.map +1 -1
  25. package/dist/npm/Wallet/signer.js +19 -14
  26. package/dist/npm/Wallet/signer.js.map +1 -1
  27. package/dist/npm/Wallet/walletFromSecretNumbers.js +2 -2
  28. package/dist/npm/Wallet/walletFromSecretNumbers.js.map +1 -1
  29. package/dist/npm/client/RequestManager.d.ts +3 -2
  30. package/dist/npm/client/RequestManager.d.ts.map +1 -1
  31. package/dist/npm/client/RequestManager.js +25 -1
  32. package/dist/npm/client/RequestManager.js.map +1 -1
  33. package/dist/npm/client/connection.d.ts +8 -11
  34. package/dist/npm/client/connection.d.ts.map +1 -1
  35. package/dist/npm/client/connection.js +11 -57
  36. package/dist/npm/client/connection.js.map +1 -1
  37. package/dist/npm/client/index.d.ts +56 -79
  38. package/dist/npm/client/index.d.ts.map +1 -1
  39. package/dist/npm/client/index.js +155 -42
  40. package/dist/npm/client/index.js.map +1 -1
  41. package/dist/npm/client/partialPayment.d.ts +4 -2
  42. package/dist/npm/client/partialPayment.d.ts.map +1 -1
  43. package/dist/npm/client/partialPayment.js.map +1 -1
  44. package/dist/npm/errors.d.ts.map +1 -1
  45. package/dist/npm/errors.js +1 -2
  46. package/dist/npm/errors.js.map +1 -1
  47. package/dist/npm/index.d.ts +1 -1
  48. package/dist/npm/index.d.ts.map +1 -1
  49. package/dist/npm/index.js +1 -3
  50. package/dist/npm/index.js.map +1 -1
  51. package/dist/npm/models/ledger/AccountRoot.js +1 -1
  52. package/dist/npm/models/ledger/AccountRoot.js.map +1 -1
  53. package/dist/npm/models/ledger/Ledger.d.ts +2 -2
  54. package/dist/npm/models/ledger/Ledger.d.ts.map +1 -1
  55. package/dist/npm/models/ledger/Offer.js +1 -1
  56. package/dist/npm/models/ledger/Offer.js.map +1 -1
  57. package/dist/npm/models/ledger/RippleState.js +1 -1
  58. package/dist/npm/models/ledger/RippleState.js.map +1 -1
  59. package/dist/npm/models/ledger/SignerList.js +1 -1
  60. package/dist/npm/models/ledger/SignerList.js.map +1 -1
  61. package/dist/npm/models/methods/index.d.ts +12 -1
  62. package/dist/npm/models/methods/index.d.ts.map +1 -1
  63. package/dist/npm/models/methods/ledger.d.ts +35 -7
  64. package/dist/npm/models/methods/ledger.d.ts.map +1 -1
  65. package/dist/npm/models/methods/submit.d.ts +2 -2
  66. package/dist/npm/models/methods/submit.d.ts.map +1 -1
  67. package/dist/npm/models/methods/subscribe.d.ts +3 -0
  68. package/dist/npm/models/methods/subscribe.d.ts.map +1 -1
  69. package/dist/npm/models/methods/tx.d.ts +2 -3
  70. package/dist/npm/models/methods/tx.d.ts.map +1 -1
  71. package/dist/npm/models/transactions/AMMDeposit.js +1 -1
  72. package/dist/npm/models/transactions/AMMDeposit.js.map +1 -1
  73. package/dist/npm/models/transactions/AMMWithdraw.js +1 -1
  74. package/dist/npm/models/transactions/AMMWithdraw.js.map +1 -1
  75. package/dist/npm/models/transactions/NFTokenAcceptOffer.d.ts +4 -0
  76. package/dist/npm/models/transactions/NFTokenAcceptOffer.d.ts.map +1 -1
  77. package/dist/npm/models/transactions/NFTokenAcceptOffer.js.map +1 -1
  78. package/dist/npm/models/transactions/NFTokenCancelOffer.d.ts +4 -0
  79. package/dist/npm/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
  80. package/dist/npm/models/transactions/NFTokenCancelOffer.js.map +1 -1
  81. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts +4 -0
  82. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  83. package/dist/npm/models/transactions/NFTokenCreateOffer.js +1 -1
  84. package/dist/npm/models/transactions/NFTokenCreateOffer.js.map +1 -1
  85. package/dist/npm/models/transactions/NFTokenMint.d.ts +4 -0
  86. package/dist/npm/models/transactions/NFTokenMint.d.ts.map +1 -1
  87. package/dist/npm/models/transactions/NFTokenMint.js +1 -1
  88. package/dist/npm/models/transactions/NFTokenMint.js.map +1 -1
  89. package/dist/npm/models/transactions/XChainModifyBridge.js +1 -1
  90. package/dist/npm/models/transactions/XChainModifyBridge.js.map +1 -1
  91. package/dist/npm/models/transactions/accountSet.js +2 -2
  92. package/dist/npm/models/transactions/accountSet.js.map +1 -1
  93. package/dist/npm/models/transactions/enableAmendment.js +1 -1
  94. package/dist/npm/models/transactions/enableAmendment.js.map +1 -1
  95. package/dist/npm/models/transactions/index.d.ts +1 -1
  96. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  97. package/dist/npm/models/transactions/index.js.map +1 -1
  98. package/dist/npm/models/transactions/metadata.d.ts +9 -1
  99. package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
  100. package/dist/npm/models/transactions/metadata.js.map +1 -1
  101. package/dist/npm/models/transactions/offerCreate.js +1 -1
  102. package/dist/npm/models/transactions/offerCreate.js.map +1 -1
  103. package/dist/npm/models/transactions/payment.d.ts +5 -0
  104. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  105. package/dist/npm/models/transactions/payment.js +1 -1
  106. package/dist/npm/models/transactions/payment.js.map +1 -1
  107. package/dist/npm/models/transactions/paymentChannelClaim.js +1 -1
  108. package/dist/npm/models/transactions/paymentChannelClaim.js.map +1 -1
  109. package/dist/npm/models/transactions/transaction.d.ts +6 -4
  110. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  111. package/dist/npm/models/transactions/transaction.js.map +1 -1
  112. package/dist/npm/models/transactions/trustSet.js +1 -1
  113. package/dist/npm/models/transactions/trustSet.js.map +1 -1
  114. package/dist/npm/snippets/src/bridgeTransfer.js +2 -2
  115. package/dist/npm/snippets/src/bridgeTransfer.js.map +1 -1
  116. package/dist/npm/snippets/src/getTransaction.js +1 -1
  117. package/dist/npm/snippets/src/getTransaction.js.map +1 -1
  118. package/dist/npm/snippets/src/paths.js +2 -3
  119. package/dist/npm/snippets/src/paths.js.map +1 -1
  120. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  121. package/dist/npm/src/Wallet/authorizeChannel.d.ts +3 -0
  122. package/dist/npm/src/Wallet/authorizeChannel.d.ts.map +1 -0
  123. package/dist/npm/src/Wallet/authorizeChannel.js +14 -0
  124. package/dist/npm/src/Wallet/authorizeChannel.js.map +1 -0
  125. package/dist/npm/src/Wallet/defaultFaucets.js +1 -1
  126. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  127. package/dist/npm/src/Wallet/fundWallet.d.ts +17 -3
  128. package/dist/npm/src/Wallet/fundWallet.d.ts.map +1 -1
  129. package/dist/npm/src/Wallet/fundWallet.js +53 -78
  130. package/dist/npm/src/Wallet/fundWallet.js.map +1 -1
  131. package/dist/npm/src/Wallet/index.d.ts.map +1 -1
  132. package/dist/npm/src/Wallet/index.js +24 -23
  133. package/dist/npm/src/Wallet/index.js.map +1 -1
  134. package/dist/npm/src/Wallet/rfc1751.d.ts +1 -2
  135. package/dist/npm/src/Wallet/rfc1751.d.ts.map +1 -1
  136. package/dist/npm/src/Wallet/rfc1751.js +21 -5
  137. package/dist/npm/src/Wallet/rfc1751.js.map +1 -1
  138. package/dist/npm/src/Wallet/signer.d.ts +2 -4
  139. package/dist/npm/src/Wallet/signer.d.ts.map +1 -1
  140. package/dist/npm/src/Wallet/signer.js +19 -14
  141. package/dist/npm/src/Wallet/signer.js.map +1 -1
  142. package/dist/npm/src/Wallet/walletFromSecretNumbers.js +2 -2
  143. package/dist/npm/src/Wallet/walletFromSecretNumbers.js.map +1 -1
  144. package/dist/npm/src/client/RequestManager.d.ts +3 -2
  145. package/dist/npm/src/client/RequestManager.d.ts.map +1 -1
  146. package/dist/npm/src/client/RequestManager.js +25 -1
  147. package/dist/npm/src/client/RequestManager.js.map +1 -1
  148. package/dist/npm/src/client/connection.d.ts +8 -11
  149. package/dist/npm/src/client/connection.d.ts.map +1 -1
  150. package/dist/npm/src/client/connection.js +11 -57
  151. package/dist/npm/src/client/connection.js.map +1 -1
  152. package/dist/npm/src/client/index.d.ts +56 -79
  153. package/dist/npm/src/client/index.d.ts.map +1 -1
  154. package/dist/npm/src/client/index.js +155 -42
  155. package/dist/npm/src/client/index.js.map +1 -1
  156. package/dist/npm/src/client/partialPayment.d.ts +4 -2
  157. package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
  158. package/dist/npm/src/client/partialPayment.js.map +1 -1
  159. package/dist/npm/src/errors.d.ts.map +1 -1
  160. package/dist/npm/src/errors.js +1 -2
  161. package/dist/npm/src/errors.js.map +1 -1
  162. package/dist/npm/src/index.d.ts +1 -1
  163. package/dist/npm/src/index.d.ts.map +1 -1
  164. package/dist/npm/src/index.js +1 -3
  165. package/dist/npm/src/index.js.map +1 -1
  166. package/dist/npm/src/models/ledger/AccountRoot.js +1 -1
  167. package/dist/npm/src/models/ledger/AccountRoot.js.map +1 -1
  168. package/dist/npm/src/models/ledger/Ledger.d.ts +2 -2
  169. package/dist/npm/src/models/ledger/Ledger.d.ts.map +1 -1
  170. package/dist/npm/src/models/ledger/Offer.js +1 -1
  171. package/dist/npm/src/models/ledger/Offer.js.map +1 -1
  172. package/dist/npm/src/models/ledger/RippleState.js +1 -1
  173. package/dist/npm/src/models/ledger/RippleState.js.map +1 -1
  174. package/dist/npm/src/models/ledger/SignerList.js +1 -1
  175. package/dist/npm/src/models/ledger/SignerList.js.map +1 -1
  176. package/dist/npm/src/models/methods/index.d.ts +12 -1
  177. package/dist/npm/src/models/methods/index.d.ts.map +1 -1
  178. package/dist/npm/src/models/methods/ledger.d.ts +35 -7
  179. package/dist/npm/src/models/methods/ledger.d.ts.map +1 -1
  180. package/dist/npm/src/models/methods/submit.d.ts +2 -2
  181. package/dist/npm/src/models/methods/submit.d.ts.map +1 -1
  182. package/dist/npm/src/models/methods/subscribe.d.ts +3 -0
  183. package/dist/npm/src/models/methods/subscribe.d.ts.map +1 -1
  184. package/dist/npm/src/models/methods/tx.d.ts +2 -3
  185. package/dist/npm/src/models/methods/tx.d.ts.map +1 -1
  186. package/dist/npm/src/models/transactions/AMMDeposit.js +1 -1
  187. package/dist/npm/src/models/transactions/AMMDeposit.js.map +1 -1
  188. package/dist/npm/src/models/transactions/AMMWithdraw.js +1 -1
  189. package/dist/npm/src/models/transactions/AMMWithdraw.js.map +1 -1
  190. package/dist/npm/src/models/transactions/NFTokenAcceptOffer.d.ts +4 -0
  191. package/dist/npm/src/models/transactions/NFTokenAcceptOffer.d.ts.map +1 -1
  192. package/dist/npm/src/models/transactions/NFTokenAcceptOffer.js.map +1 -1
  193. package/dist/npm/src/models/transactions/NFTokenCancelOffer.d.ts +4 -0
  194. package/dist/npm/src/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
  195. package/dist/npm/src/models/transactions/NFTokenCancelOffer.js.map +1 -1
  196. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts +4 -0
  197. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  198. package/dist/npm/src/models/transactions/NFTokenCreateOffer.js +1 -1
  199. package/dist/npm/src/models/transactions/NFTokenCreateOffer.js.map +1 -1
  200. package/dist/npm/src/models/transactions/NFTokenMint.d.ts +4 -0
  201. package/dist/npm/src/models/transactions/NFTokenMint.d.ts.map +1 -1
  202. package/dist/npm/src/models/transactions/NFTokenMint.js +1 -1
  203. package/dist/npm/src/models/transactions/NFTokenMint.js.map +1 -1
  204. package/dist/npm/src/models/transactions/XChainModifyBridge.js +1 -1
  205. package/dist/npm/src/models/transactions/XChainModifyBridge.js.map +1 -1
  206. package/dist/npm/src/models/transactions/accountSet.js +2 -2
  207. package/dist/npm/src/models/transactions/accountSet.js.map +1 -1
  208. package/dist/npm/src/models/transactions/enableAmendment.js +1 -1
  209. package/dist/npm/src/models/transactions/enableAmendment.js.map +1 -1
  210. package/dist/npm/src/models/transactions/index.d.ts +1 -1
  211. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  212. package/dist/npm/src/models/transactions/index.js.map +1 -1
  213. package/dist/npm/src/models/transactions/metadata.d.ts +9 -1
  214. package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
  215. package/dist/npm/src/models/transactions/metadata.js.map +1 -1
  216. package/dist/npm/src/models/transactions/offerCreate.js +1 -1
  217. package/dist/npm/src/models/transactions/offerCreate.js.map +1 -1
  218. package/dist/npm/src/models/transactions/payment.d.ts +5 -0
  219. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  220. package/dist/npm/src/models/transactions/payment.js +1 -1
  221. package/dist/npm/src/models/transactions/payment.js.map +1 -1
  222. package/dist/npm/src/models/transactions/paymentChannelClaim.js +1 -1
  223. package/dist/npm/src/models/transactions/paymentChannelClaim.js.map +1 -1
  224. package/dist/npm/src/models/transactions/transaction.d.ts +6 -4
  225. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  226. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  227. package/dist/npm/src/models/transactions/trustSet.js +1 -1
  228. package/dist/npm/src/models/transactions/trustSet.js.map +1 -1
  229. package/dist/npm/src/sugar/autofill.d.ts +6 -2
  230. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  231. package/dist/npm/src/sugar/autofill.js +9 -28
  232. package/dist/npm/src/sugar/autofill.js.map +1 -1
  233. package/dist/npm/src/sugar/balances.d.ts +2 -17
  234. package/dist/npm/src/sugar/balances.d.ts.map +1 -1
  235. package/dist/npm/src/sugar/balances.js +2 -60
  236. package/dist/npm/src/sugar/balances.js.map +1 -1
  237. package/dist/npm/src/sugar/getOrderbook.d.ts +19 -5
  238. package/dist/npm/src/sugar/getOrderbook.d.ts.map +1 -1
  239. package/dist/npm/src/sugar/getOrderbook.js +72 -53
  240. package/dist/npm/src/sugar/getOrderbook.js.map +1 -1
  241. package/dist/npm/src/sugar/index.d.ts +0 -4
  242. package/dist/npm/src/sugar/index.d.ts.map +1 -1
  243. package/dist/npm/src/sugar/index.js +0 -13
  244. package/dist/npm/src/sugar/index.js.map +1 -1
  245. package/dist/npm/src/sugar/submit.d.ts +7 -11
  246. package/dist/npm/src/sugar/submit.d.ts.map +1 -1
  247. package/dist/npm/src/sugar/submit.js +5 -22
  248. package/dist/npm/src/sugar/submit.js.map +1 -1
  249. package/dist/npm/src/utils/collections.d.ts +5 -0
  250. package/dist/npm/src/utils/collections.d.ts.map +1 -0
  251. package/dist/npm/src/utils/collections.js +24 -0
  252. package/dist/npm/src/utils/collections.js.map +1 -0
  253. package/dist/npm/src/utils/getBalanceChanges.d.ts.map +1 -1
  254. package/dist/npm/src/utils/getBalanceChanges.js +3 -4
  255. package/dist/npm/src/utils/getBalanceChanges.js.map +1 -1
  256. package/dist/npm/src/utils/getNFTokenID.d.ts.map +1 -1
  257. package/dist/npm/src/utils/getNFTokenID.js +8 -8
  258. package/dist/npm/src/utils/getNFTokenID.js.map +1 -1
  259. package/dist/npm/src/utils/hashes/SHAMap/node.js +1 -1
  260. package/dist/npm/src/utils/hashes/SHAMap/node.js.map +1 -1
  261. package/dist/npm/src/utils/hashes/hashLedger.d.ts +1 -2
  262. package/dist/npm/src/utils/hashes/hashLedger.d.ts.map +1 -1
  263. package/dist/npm/src/utils/hashes/hashLedger.js +7 -7
  264. package/dist/npm/src/utils/hashes/hashLedger.js.map +1 -1
  265. package/dist/npm/src/utils/hashes/index.d.ts.map +1 -1
  266. package/dist/npm/src/utils/hashes/index.js +3 -2
  267. package/dist/npm/src/utils/hashes/index.js.map +1 -1
  268. package/dist/npm/src/utils/hashes/sha512Half.d.ts.map +1 -1
  269. package/dist/npm/src/utils/hashes/sha512Half.js +4 -7
  270. package/dist/npm/src/utils/hashes/sha512Half.js.map +1 -1
  271. package/dist/npm/src/utils/index.d.ts.map +1 -1
  272. package/dist/npm/src/utils/index.js +6 -29
  273. package/dist/npm/src/utils/index.js.map +1 -1
  274. package/dist/npm/src/utils/parseNFTokenID.d.ts.map +1 -1
  275. package/dist/npm/src/utils/parseNFTokenID.js +2 -1
  276. package/dist/npm/src/utils/parseNFTokenID.js.map +1 -1
  277. package/dist/npm/src/utils/stringConversion.d.ts +1 -2
  278. package/dist/npm/src/utils/stringConversion.d.ts.map +1 -1
  279. package/dist/npm/src/utils/stringConversion.js +3 -2
  280. package/dist/npm/src/utils/stringConversion.js.map +1 -1
  281. package/dist/npm/src/utils/xrpConversion.d.ts +1 -1
  282. package/dist/npm/src/utils/xrpConversion.js +1 -1
  283. package/dist/npm/src/utils/xrpConversion.js.map +1 -1
  284. package/dist/npm/sugar/autofill.d.ts +6 -2
  285. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  286. package/dist/npm/sugar/autofill.js +9 -28
  287. package/dist/npm/sugar/autofill.js.map +1 -1
  288. package/dist/npm/sugar/balances.d.ts +2 -17
  289. package/dist/npm/sugar/balances.d.ts.map +1 -1
  290. package/dist/npm/sugar/balances.js +2 -60
  291. package/dist/npm/sugar/balances.js.map +1 -1
  292. package/dist/npm/sugar/getOrderbook.d.ts +19 -5
  293. package/dist/npm/sugar/getOrderbook.d.ts.map +1 -1
  294. package/dist/npm/sugar/getOrderbook.js +72 -53
  295. package/dist/npm/sugar/getOrderbook.js.map +1 -1
  296. package/dist/npm/sugar/index.d.ts +0 -4
  297. package/dist/npm/sugar/index.d.ts.map +1 -1
  298. package/dist/npm/sugar/index.js +0 -13
  299. package/dist/npm/sugar/index.js.map +1 -1
  300. package/dist/npm/sugar/submit.d.ts +7 -11
  301. package/dist/npm/sugar/submit.d.ts.map +1 -1
  302. package/dist/npm/sugar/submit.js +5 -22
  303. package/dist/npm/sugar/submit.js.map +1 -1
  304. package/dist/npm/utils/collections.d.ts +5 -0
  305. package/dist/npm/utils/collections.d.ts.map +1 -0
  306. package/dist/npm/utils/collections.js +24 -0
  307. package/dist/npm/utils/collections.js.map +1 -0
  308. package/dist/npm/utils/getBalanceChanges.d.ts.map +1 -1
  309. package/dist/npm/utils/getBalanceChanges.js +3 -4
  310. package/dist/npm/utils/getBalanceChanges.js.map +1 -1
  311. package/dist/npm/utils/getNFTokenID.d.ts.map +1 -1
  312. package/dist/npm/utils/getNFTokenID.js +8 -8
  313. package/dist/npm/utils/getNFTokenID.js.map +1 -1
  314. package/dist/npm/utils/hashes/SHAMap/node.js +1 -1
  315. package/dist/npm/utils/hashes/SHAMap/node.js.map +1 -1
  316. package/dist/npm/utils/hashes/hashLedger.d.ts +1 -2
  317. package/dist/npm/utils/hashes/hashLedger.d.ts.map +1 -1
  318. package/dist/npm/utils/hashes/hashLedger.js +7 -7
  319. package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
  320. package/dist/npm/utils/hashes/index.d.ts.map +1 -1
  321. package/dist/npm/utils/hashes/index.js +3 -2
  322. package/dist/npm/utils/hashes/index.js.map +1 -1
  323. package/dist/npm/utils/hashes/sha512Half.d.ts.map +1 -1
  324. package/dist/npm/utils/hashes/sha512Half.js +4 -7
  325. package/dist/npm/utils/hashes/sha512Half.js.map +1 -1
  326. package/dist/npm/utils/index.d.ts.map +1 -1
  327. package/dist/npm/utils/index.js +6 -29
  328. package/dist/npm/utils/index.js.map +1 -1
  329. package/dist/npm/utils/parseNFTokenID.d.ts.map +1 -1
  330. package/dist/npm/utils/parseNFTokenID.js +2 -1
  331. package/dist/npm/utils/parseNFTokenID.js.map +1 -1
  332. package/dist/npm/utils/stringConversion.d.ts +1 -2
  333. package/dist/npm/utils/stringConversion.d.ts.map +1 -1
  334. package/dist/npm/utils/stringConversion.js +3 -2
  335. package/dist/npm/utils/stringConversion.js.map +1 -1
  336. package/dist/npm/utils/xrpConversion.d.ts +1 -1
  337. package/dist/npm/utils/xrpConversion.js +1 -1
  338. package/dist/npm/utils/xrpConversion.js.map +1 -1
  339. package/package.json +23 -25
  340. package/src/Wallet/authorizeChannel.ts +26 -0
  341. package/src/Wallet/fundWallet.ts +153 -214
  342. package/src/Wallet/index.ts +28 -25
  343. package/src/Wallet/rfc1751.ts +45 -16
  344. package/src/Wallet/signer.ts +34 -44
  345. package/src/Wallet/walletFromSecretNumbers.ts +1 -1
  346. package/src/client/RequestManager.ts +40 -14
  347. package/src/client/connection.ts +26 -93
  348. package/src/client/index.ts +706 -274
  349. package/src/client/partialPayment.ts +16 -14
  350. package/src/errors.ts +1 -3
  351. package/src/index.ts +1 -3
  352. package/src/models/ledger/Ledger.ts +3 -9
  353. package/src/models/methods/index.ts +177 -0
  354. package/src/models/methods/ledger.ts +149 -20
  355. package/src/models/methods/submit.ts +2 -2
  356. package/src/models/methods/subscribe.ts +36 -0
  357. package/src/models/methods/tx.ts +3 -5
  358. package/src/models/transactions/NFTokenAcceptOffer.ts +6 -0
  359. package/src/models/transactions/NFTokenCancelOffer.ts +6 -0
  360. package/src/models/transactions/NFTokenCreateOffer.ts +6 -0
  361. package/src/models/transactions/NFTokenMint.ts +6 -0
  362. package/src/models/transactions/index.ts +1 -0
  363. package/src/models/transactions/metadata.ts +31 -1
  364. package/src/models/transactions/payment.ts +6 -0
  365. package/src/models/transactions/transaction.ts +21 -5
  366. package/src/sugar/autofill.ts +84 -88
  367. package/src/sugar/balances.ts +8 -116
  368. package/src/sugar/getOrderbook.ts +138 -61
  369. package/src/sugar/index.ts +0 -8
  370. package/src/sugar/submit.ts +128 -140
  371. package/src/utils/collections.ts +57 -0
  372. package/src/utils/getBalanceChanges.ts +2 -3
  373. package/src/utils/getNFTokenID.ts +18 -16
  374. package/src/utils/hashes/hashLedger.ts +7 -9
  375. package/src/utils/hashes/index.ts +3 -2
  376. package/src/utils/hashes/sha512Half.ts +4 -7
  377. package/src/utils/index.ts +12 -6
  378. package/src/utils/parseNFTokenID.ts +2 -1
  379. package/src/utils/stringConversion.ts +11 -6
  380. package/src/utils/xrpConversion.ts +2 -2
  381. package/dist/npm/client/BroadcastClient.d.ts +0 -7
  382. package/dist/npm/client/BroadcastClient.d.ts.map +0 -1
  383. package/dist/npm/client/BroadcastClient.js +0 -49
  384. package/dist/npm/client/BroadcastClient.js.map +0 -1
  385. package/dist/npm/client/WSWrapper.d.ts +0 -25
  386. package/dist/npm/client/WSWrapper.d.ts.map +0 -1
  387. package/dist/npm/client/WSWrapper.js +0 -44
  388. package/dist/npm/client/WSWrapper.js.map +0 -1
  389. package/dist/npm/src/client/BroadcastClient.d.ts +0 -7
  390. package/dist/npm/src/client/BroadcastClient.d.ts.map +0 -1
  391. package/dist/npm/src/client/BroadcastClient.js +0 -49
  392. package/dist/npm/src/client/BroadcastClient.js.map +0 -1
  393. package/dist/npm/src/client/WSWrapper.d.ts +0 -25
  394. package/dist/npm/src/client/WSWrapper.d.ts.map +0 -1
  395. package/dist/npm/src/client/WSWrapper.js +0 -44
  396. package/dist/npm/src/client/WSWrapper.js.map +0 -1
  397. package/dist/npm/src/sugar/getLedgerIndex.d.ts +0 -3
  398. package/dist/npm/src/sugar/getLedgerIndex.d.ts.map +0 -1
  399. package/dist/npm/src/sugar/getLedgerIndex.js +0 -22
  400. package/dist/npm/src/sugar/getLedgerIndex.js.map +0 -1
  401. package/dist/npm/sugar/getLedgerIndex.d.ts +0 -3
  402. package/dist/npm/sugar/getLedgerIndex.d.ts.map +0 -1
  403. package/dist/npm/sugar/getLedgerIndex.js +0 -22
  404. package/dist/npm/sugar/getLedgerIndex.js.map +0 -1
  405. package/src/client/BroadcastClient.ts +0 -84
  406. package/src/client/WSWrapper.ts +0 -106
  407. package/src/sugar/getLedgerIndex.ts +0 -15
@@ -2,6 +2,7 @@ export { BaseTransaction } from './common'
2
2
  export {
3
3
  validate,
4
4
  PseudoTransaction,
5
+ SubmittableTransaction,
5
6
  TransactionAndMetadata,
6
7
  Transaction,
7
8
  } from './transaction'
@@ -1,5 +1,22 @@
1
1
  import { Amount } from '../common'
2
2
 
3
+ import { BaseTransaction } from './common'
4
+ import {
5
+ NFTokenAcceptOffer,
6
+ NFTokenAcceptOfferMetadata,
7
+ } from './NFTokenAcceptOffer'
8
+ import {
9
+ NFTokenCancelOffer,
10
+ NFTokenCancelOfferMetadata,
11
+ } from './NFTokenCancelOffer'
12
+ import {
13
+ NFTokenCreateOffer,
14
+ NFTokenCreateOfferMetadata,
15
+ } from './NFTokenCreateOffer'
16
+ import { NFTokenMint, NFTokenMintMetadata } from './NFTokenMint'
17
+ import { Payment, PaymentMetadata } from './payment'
18
+ import type { Transaction } from './transaction'
19
+
3
20
  export interface CreatedNode {
4
21
  CreatedNode: {
5
22
  LedgerEntryType: string
@@ -59,7 +76,7 @@ export function isDeletedNode(node: Node): node is DeletedNode {
59
76
  return Object.prototype.hasOwnProperty.call(node, `DeletedNode`)
60
77
  }
61
78
 
62
- export interface TransactionMetadata {
79
+ export interface TransactionMetadataBase {
63
80
  AffectedNodes: Node[]
64
81
  DeliveredAmount?: Amount
65
82
  // "unavailable" possible for transactions before 2014-01-20
@@ -67,3 +84,16 @@ export interface TransactionMetadata {
67
84
  TransactionIndex: number
68
85
  TransactionResult: string
69
86
  }
87
+
88
+ export type TransactionMetadata<T extends BaseTransaction = Transaction> =
89
+ T extends Payment
90
+ ? PaymentMetadata
91
+ : T extends NFTokenMint
92
+ ? NFTokenMintMetadata
93
+ : T extends NFTokenCreateOffer
94
+ ? NFTokenCreateOfferMetadata
95
+ : T extends NFTokenAcceptOffer
96
+ ? NFTokenAcceptOfferMetadata
97
+ : T extends NFTokenCancelOffer
98
+ ? NFTokenCancelOfferMetadata
99
+ : TransactionMetadataBase
@@ -13,6 +13,7 @@ import {
13
13
  isNumber,
14
14
  Account,
15
15
  } from './common'
16
+ import type { TransactionMetadataBase } from './metadata'
16
17
 
17
18
  /**
18
19
  * Enum representing values for Payment Transaction Flags.
@@ -151,6 +152,11 @@ export interface Payment extends BaseTransaction {
151
152
  Flags?: number | PaymentFlagsInterface
152
153
  }
153
154
 
155
+ export interface PaymentMetadata extends TransactionMetadataBase {
156
+ DeliveredAmount?: Amount
157
+ delivered_amount?: Amount | 'unavailable'
158
+ }
159
+
154
160
  /**
155
161
  * Verify the form and type of a Payment at runtime.
156
162
  *
@@ -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 { DIDDelete, validateDIDDelete } from './DIDDelete'
24
24
  import { DIDSet, validateDIDSet } from './DIDSet'
@@ -90,9 +90,11 @@ import {
90
90
  } from './XChainModifyBridge'
91
91
 
92
92
  /**
93
+ * Transactions that can be submitted by clients
94
+ *
93
95
  * @category Transaction Models
94
96
  */
95
- export type Transaction =
97
+ export type SubmittableTransaction =
96
98
  | AMMBid
97
99
  | AMMCreate
98
100
  | AMMDelete
@@ -135,14 +137,28 @@ export type Transaction =
135
137
  | XChainCreateClaimID
136
138
  | XChainModifyBridge
137
139
 
140
+ /**
141
+ * Transactions that can only be created by validators.
142
+ *
143
+ * @category Transaction Models
144
+ */
138
145
  export type PseudoTransaction = EnableAmendment | SetFee | UNLModify
139
146
 
147
+ /**
148
+ * All transactions that can live on the XRPL
149
+ *
150
+ * @category Transaction Models
151
+ */
152
+ export type Transaction = SubmittableTransaction | PseudoTransaction
153
+
140
154
  /**
141
155
  * @category Transaction Models
142
156
  */
143
- export interface TransactionAndMetadata {
144
- transaction: Transaction
145
- metadata: TransactionMetadata
157
+ export interface TransactionAndMetadata<
158
+ T extends BaseTransaction = Transaction,
159
+ > {
160
+ transaction: T
161
+ metadata: TransactionMetadata<T>
146
162
  }
147
163
 
148
164
  /**
@@ -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 }