xrpl 4.3.0-smartescrow.2 → 4.3.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 (367) hide show
  1. package/README.md +2 -2
  2. package/build/xrpl-latest-min.js +3 -0
  3. package/build/xrpl-latest-min.js.map +1 -0
  4. package/build/xrpl-latest.js +494 -145
  5. package/build/xrpl-latest.js.map +1 -1
  6. package/dist/npm/Wallet/batchSigner.d.ts +8 -0
  7. package/dist/npm/Wallet/batchSigner.d.ts.map +1 -0
  8. package/dist/npm/Wallet/batchSigner.js +111 -0
  9. package/dist/npm/Wallet/batchSigner.js.map +1 -0
  10. package/dist/npm/Wallet/defaultFaucets.d.ts +4 -4
  11. package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
  12. package/dist/npm/Wallet/defaultFaucets.js +15 -17
  13. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  14. package/dist/npm/Wallet/fundWallet.d.ts.map +1 -1
  15. package/dist/npm/Wallet/fundWallet.js +8 -16
  16. package/dist/npm/Wallet/fundWallet.js.map +1 -1
  17. package/dist/npm/Wallet/index.d.ts.map +1 -1
  18. package/dist/npm/Wallet/index.js +10 -4
  19. package/dist/npm/Wallet/index.js.map +1 -1
  20. package/dist/npm/Wallet/signer.d.ts.map +1 -1
  21. package/dist/npm/Wallet/signer.js +4 -20
  22. package/dist/npm/Wallet/signer.js.map +1 -1
  23. package/dist/npm/Wallet/utils.d.ts +9 -0
  24. package/dist/npm/Wallet/utils.d.ts.map +1 -0
  25. package/dist/npm/Wallet/utils.js +28 -0
  26. package/dist/npm/Wallet/utils.js.map +1 -0
  27. package/dist/npm/client/RequestManager.d.ts.map +1 -1
  28. package/dist/npm/client/RequestManager.js +3 -3
  29. package/dist/npm/client/RequestManager.js.map +1 -1
  30. package/dist/npm/client/connection.d.ts.map +1 -1
  31. package/dist/npm/client/connection.js.map +1 -1
  32. package/dist/npm/client/index.d.ts.map +1 -1
  33. package/dist/npm/client/index.js +6 -9
  34. package/dist/npm/client/index.js.map +1 -1
  35. package/dist/npm/client/partialPayment.d.ts.map +1 -1
  36. package/dist/npm/client/partialPayment.js.map +1 -1
  37. package/dist/npm/models/ledger/Credential.d.ts +2 -2
  38. package/dist/npm/models/ledger/Credential.d.ts.map +1 -1
  39. package/dist/npm/models/ledger/Delegate.d.ts +11 -0
  40. package/dist/npm/models/ledger/Delegate.d.ts.map +1 -0
  41. package/dist/npm/models/ledger/Delegate.js +3 -0
  42. package/dist/npm/models/ledger/Delegate.js.map +1 -0
  43. package/dist/npm/models/ledger/Escrow.d.ts +0 -2
  44. package/dist/npm/models/ledger/Escrow.d.ts.map +1 -1
  45. package/dist/npm/models/ledger/FeeSettings.d.ts +0 -2
  46. package/dist/npm/models/ledger/FeeSettings.d.ts.map +1 -1
  47. package/dist/npm/models/ledger/LedgerEntry.d.ts +3 -2
  48. package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
  49. package/dist/npm/models/ledger/XChainOwnedClaimID.d.ts +1 -2
  50. package/dist/npm/models/ledger/XChainOwnedClaimID.d.ts.map +1 -1
  51. package/dist/npm/models/ledger/index.d.ts +2 -1
  52. package/dist/npm/models/ledger/index.d.ts.map +1 -1
  53. package/dist/npm/models/ledger/index.js.map +1 -1
  54. package/dist/npm/models/methods/baseMethod.d.ts +1 -0
  55. package/dist/npm/models/methods/baseMethod.d.ts.map +1 -1
  56. package/dist/npm/models/methods/ledgerEntry.d.ts +4 -0
  57. package/dist/npm/models/methods/ledgerEntry.d.ts.map +1 -1
  58. package/dist/npm/models/methods/serverInfo.d.ts +0 -6
  59. package/dist/npm/models/methods/serverInfo.d.ts.map +1 -1
  60. package/dist/npm/models/methods/serverState.d.ts +0 -6
  61. package/dist/npm/models/methods/serverState.d.ts.map +1 -1
  62. package/dist/npm/models/transactions/AMMBid.d.ts.map +1 -1
  63. package/dist/npm/models/transactions/AMMBid.js.map +1 -1
  64. package/dist/npm/models/transactions/AMMClawback.d.ts +2 -2
  65. package/dist/npm/models/transactions/AMMClawback.d.ts.map +1 -1
  66. package/dist/npm/models/transactions/AMMDeposit.d.ts +2 -2
  67. package/dist/npm/models/transactions/AMMDeposit.d.ts.map +1 -1
  68. package/dist/npm/models/transactions/AMMWithdraw.d.ts +2 -2
  69. package/dist/npm/models/transactions/AMMWithdraw.d.ts.map +1 -1
  70. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts +2 -2
  71. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  72. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  73. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  74. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  75. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  76. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  77. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  78. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  79. package/dist/npm/models/transactions/NFTokenMint.d.ts +2 -2
  80. package/dist/npm/models/transactions/NFTokenMint.d.ts.map +1 -1
  81. package/dist/npm/models/transactions/XChainAddAccountCreateAttestation.js.map +1 -1
  82. package/dist/npm/models/transactions/XChainAddClaimAttestation.js.map +1 -1
  83. package/dist/npm/models/transactions/XChainClaim.js.map +1 -1
  84. package/dist/npm/models/transactions/XChainCommit.js.map +1 -1
  85. package/dist/npm/models/transactions/XChainModifyBridge.d.ts +2 -2
  86. package/dist/npm/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  87. package/dist/npm/models/transactions/accountDelete.d.ts.map +1 -1
  88. package/dist/npm/models/transactions/accountDelete.js.map +1 -1
  89. package/dist/npm/models/transactions/accountSet.d.ts +2 -2
  90. package/dist/npm/models/transactions/accountSet.d.ts.map +1 -1
  91. package/dist/npm/models/transactions/accountSet.js.map +1 -1
  92. package/dist/npm/models/transactions/batch.d.ts +39 -0
  93. package/dist/npm/models/transactions/batch.d.ts.map +1 -0
  94. package/dist/npm/models/transactions/batch.js +64 -0
  95. package/dist/npm/models/transactions/batch.js.map +1 -0
  96. package/dist/npm/models/transactions/common.d.ts +23 -6
  97. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  98. package/dist/npm/models/transactions/common.js +30 -10
  99. package/dist/npm/models/transactions/common.js.map +1 -1
  100. package/dist/npm/models/transactions/delegateSet.d.ts +13 -0
  101. package/dist/npm/models/transactions/delegateSet.d.ts.map +1 -0
  102. package/dist/npm/models/transactions/delegateSet.js +54 -0
  103. package/dist/npm/models/transactions/delegateSet.js.map +1 -0
  104. package/dist/npm/models/transactions/depositPreauth.d.ts.map +1 -1
  105. package/dist/npm/models/transactions/depositPreauth.js.map +1 -1
  106. package/dist/npm/models/transactions/escrowCreate.d.ts +0 -2
  107. package/dist/npm/models/transactions/escrowCreate.d.ts.map +1 -1
  108. package/dist/npm/models/transactions/escrowCreate.js +2 -4
  109. package/dist/npm/models/transactions/escrowCreate.js.map +1 -1
  110. package/dist/npm/models/transactions/escrowFinish.d.ts +0 -1
  111. package/dist/npm/models/transactions/escrowFinish.d.ts.map +1 -1
  112. package/dist/npm/models/transactions/escrowFinish.js.map +1 -1
  113. package/dist/npm/models/transactions/index.d.ts +4 -2
  114. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  115. package/dist/npm/models/transactions/index.js.map +1 -1
  116. package/dist/npm/models/transactions/metadata.d.ts +1 -0
  117. package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
  118. package/dist/npm/models/transactions/offerCreate.d.ts +2 -2
  119. package/dist/npm/models/transactions/offerCreate.d.ts.map +1 -1
  120. package/dist/npm/models/transactions/oracleSet.d.ts.map +1 -1
  121. package/dist/npm/models/transactions/oracleSet.js.map +1 -1
  122. package/dist/npm/models/transactions/payment.d.ts +2 -2
  123. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  124. package/dist/npm/models/transactions/payment.js +3 -0
  125. package/dist/npm/models/transactions/payment.js.map +1 -1
  126. package/dist/npm/models/transactions/paymentChannelClaim.d.ts +2 -2
  127. package/dist/npm/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  128. package/dist/npm/models/transactions/paymentChannelClaim.js.map +1 -1
  129. package/dist/npm/models/transactions/permissionedDomainSet.d.ts.map +1 -1
  130. package/dist/npm/models/transactions/permissionedDomainSet.js +1 -1
  131. package/dist/npm/models/transactions/permissionedDomainSet.js.map +1 -1
  132. package/dist/npm/models/transactions/signerListSet.d.ts.map +1 -1
  133. package/dist/npm/models/transactions/signerListSet.js +1 -1
  134. package/dist/npm/models/transactions/signerListSet.js.map +1 -1
  135. package/dist/npm/models/transactions/transaction.d.ts +3 -1
  136. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  137. package/dist/npm/models/transactions/transaction.js +11 -0
  138. package/dist/npm/models/transactions/transaction.js.map +1 -1
  139. package/dist/npm/models/transactions/trustSet.d.ts +2 -2
  140. package/dist/npm/models/transactions/trustSet.d.ts.map +1 -1
  141. package/dist/npm/models/utils/flags.d.ts.map +1 -1
  142. package/dist/npm/models/utils/flags.js +24 -9
  143. package/dist/npm/models/utils/flags.js.map +1 -1
  144. package/dist/npm/models/utils/index.d.ts +2 -0
  145. package/dist/npm/models/utils/index.d.ts.map +1 -1
  146. package/dist/npm/models/utils/index.js +11 -1
  147. package/dist/npm/models/utils/index.js.map +1 -1
  148. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  149. package/dist/npm/src/Wallet/batchSigner.d.ts +8 -0
  150. package/dist/npm/src/Wallet/batchSigner.d.ts.map +1 -0
  151. package/dist/npm/src/Wallet/batchSigner.js +111 -0
  152. package/dist/npm/src/Wallet/batchSigner.js.map +1 -0
  153. package/dist/npm/src/Wallet/defaultFaucets.d.ts +4 -4
  154. package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
  155. package/dist/npm/src/Wallet/defaultFaucets.js +15 -17
  156. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  157. package/dist/npm/src/Wallet/fundWallet.d.ts.map +1 -1
  158. package/dist/npm/src/Wallet/fundWallet.js +8 -16
  159. package/dist/npm/src/Wallet/fundWallet.js.map +1 -1
  160. package/dist/npm/src/Wallet/index.d.ts.map +1 -1
  161. package/dist/npm/src/Wallet/index.js +10 -4
  162. package/dist/npm/src/Wallet/index.js.map +1 -1
  163. package/dist/npm/src/Wallet/signer.d.ts.map +1 -1
  164. package/dist/npm/src/Wallet/signer.js +4 -20
  165. package/dist/npm/src/Wallet/signer.js.map +1 -1
  166. package/dist/npm/src/Wallet/utils.d.ts +9 -0
  167. package/dist/npm/src/Wallet/utils.d.ts.map +1 -0
  168. package/dist/npm/src/Wallet/utils.js +28 -0
  169. package/dist/npm/src/Wallet/utils.js.map +1 -0
  170. package/dist/npm/src/client/RequestManager.d.ts.map +1 -1
  171. package/dist/npm/src/client/RequestManager.js +3 -3
  172. package/dist/npm/src/client/RequestManager.js.map +1 -1
  173. package/dist/npm/src/client/connection.d.ts.map +1 -1
  174. package/dist/npm/src/client/connection.js.map +1 -1
  175. package/dist/npm/src/client/index.d.ts.map +1 -1
  176. package/dist/npm/src/client/index.js +6 -9
  177. package/dist/npm/src/client/index.js.map +1 -1
  178. package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
  179. package/dist/npm/src/client/partialPayment.js.map +1 -1
  180. package/dist/npm/src/models/ledger/Credential.d.ts +2 -2
  181. package/dist/npm/src/models/ledger/Credential.d.ts.map +1 -1
  182. package/dist/npm/src/models/ledger/Delegate.d.ts +11 -0
  183. package/dist/npm/src/models/ledger/Delegate.d.ts.map +1 -0
  184. package/dist/npm/src/models/ledger/Delegate.js +3 -0
  185. package/dist/npm/src/models/ledger/Delegate.js.map +1 -0
  186. package/dist/npm/src/models/ledger/Escrow.d.ts +0 -2
  187. package/dist/npm/src/models/ledger/Escrow.d.ts.map +1 -1
  188. package/dist/npm/src/models/ledger/FeeSettings.d.ts +0 -2
  189. package/dist/npm/src/models/ledger/FeeSettings.d.ts.map +1 -1
  190. package/dist/npm/src/models/ledger/LedgerEntry.d.ts +3 -2
  191. package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
  192. package/dist/npm/src/models/ledger/XChainOwnedClaimID.d.ts +1 -2
  193. package/dist/npm/src/models/ledger/XChainOwnedClaimID.d.ts.map +1 -1
  194. package/dist/npm/src/models/ledger/index.d.ts +2 -1
  195. package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
  196. package/dist/npm/src/models/ledger/index.js.map +1 -1
  197. package/dist/npm/src/models/methods/baseMethod.d.ts +1 -0
  198. package/dist/npm/src/models/methods/baseMethod.d.ts.map +1 -1
  199. package/dist/npm/src/models/methods/ledgerEntry.d.ts +4 -0
  200. package/dist/npm/src/models/methods/ledgerEntry.d.ts.map +1 -1
  201. package/dist/npm/src/models/methods/serverInfo.d.ts +0 -6
  202. package/dist/npm/src/models/methods/serverInfo.d.ts.map +1 -1
  203. package/dist/npm/src/models/methods/serverState.d.ts +0 -6
  204. package/dist/npm/src/models/methods/serverState.d.ts.map +1 -1
  205. package/dist/npm/src/models/transactions/AMMBid.d.ts.map +1 -1
  206. package/dist/npm/src/models/transactions/AMMBid.js.map +1 -1
  207. package/dist/npm/src/models/transactions/AMMClawback.d.ts +2 -2
  208. package/dist/npm/src/models/transactions/AMMClawback.d.ts.map +1 -1
  209. package/dist/npm/src/models/transactions/AMMDeposit.d.ts +2 -2
  210. package/dist/npm/src/models/transactions/AMMDeposit.d.ts.map +1 -1
  211. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts +2 -2
  212. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts.map +1 -1
  213. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts +2 -2
  214. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  215. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  216. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  217. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  218. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  219. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  220. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  221. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  222. package/dist/npm/src/models/transactions/NFTokenMint.d.ts +2 -2
  223. package/dist/npm/src/models/transactions/NFTokenMint.d.ts.map +1 -1
  224. package/dist/npm/src/models/transactions/XChainAddAccountCreateAttestation.js.map +1 -1
  225. package/dist/npm/src/models/transactions/XChainAddClaimAttestation.js.map +1 -1
  226. package/dist/npm/src/models/transactions/XChainClaim.js.map +1 -1
  227. package/dist/npm/src/models/transactions/XChainCommit.js.map +1 -1
  228. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts +2 -2
  229. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  230. package/dist/npm/src/models/transactions/accountDelete.d.ts.map +1 -1
  231. package/dist/npm/src/models/transactions/accountDelete.js.map +1 -1
  232. package/dist/npm/src/models/transactions/accountSet.d.ts +2 -2
  233. package/dist/npm/src/models/transactions/accountSet.d.ts.map +1 -1
  234. package/dist/npm/src/models/transactions/accountSet.js.map +1 -1
  235. package/dist/npm/src/models/transactions/batch.d.ts +39 -0
  236. package/dist/npm/src/models/transactions/batch.d.ts.map +1 -0
  237. package/dist/npm/src/models/transactions/batch.js +64 -0
  238. package/dist/npm/src/models/transactions/batch.js.map +1 -0
  239. package/dist/npm/src/models/transactions/common.d.ts +23 -6
  240. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  241. package/dist/npm/src/models/transactions/common.js +30 -10
  242. package/dist/npm/src/models/transactions/common.js.map +1 -1
  243. package/dist/npm/src/models/transactions/delegateSet.d.ts +13 -0
  244. package/dist/npm/src/models/transactions/delegateSet.d.ts.map +1 -0
  245. package/dist/npm/src/models/transactions/delegateSet.js +54 -0
  246. package/dist/npm/src/models/transactions/delegateSet.js.map +1 -0
  247. package/dist/npm/src/models/transactions/depositPreauth.d.ts.map +1 -1
  248. package/dist/npm/src/models/transactions/depositPreauth.js.map +1 -1
  249. package/dist/npm/src/models/transactions/escrowCreate.d.ts +0 -2
  250. package/dist/npm/src/models/transactions/escrowCreate.d.ts.map +1 -1
  251. package/dist/npm/src/models/transactions/escrowCreate.js +2 -4
  252. package/dist/npm/src/models/transactions/escrowCreate.js.map +1 -1
  253. package/dist/npm/src/models/transactions/escrowFinish.d.ts +0 -1
  254. package/dist/npm/src/models/transactions/escrowFinish.d.ts.map +1 -1
  255. package/dist/npm/src/models/transactions/escrowFinish.js.map +1 -1
  256. package/dist/npm/src/models/transactions/index.d.ts +4 -2
  257. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  258. package/dist/npm/src/models/transactions/index.js.map +1 -1
  259. package/dist/npm/src/models/transactions/metadata.d.ts +1 -0
  260. package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
  261. package/dist/npm/src/models/transactions/offerCreate.d.ts +2 -2
  262. package/dist/npm/src/models/transactions/offerCreate.d.ts.map +1 -1
  263. package/dist/npm/src/models/transactions/oracleSet.d.ts.map +1 -1
  264. package/dist/npm/src/models/transactions/oracleSet.js.map +1 -1
  265. package/dist/npm/src/models/transactions/payment.d.ts +2 -2
  266. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  267. package/dist/npm/src/models/transactions/payment.js +3 -0
  268. package/dist/npm/src/models/transactions/payment.js.map +1 -1
  269. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts +2 -2
  270. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  271. package/dist/npm/src/models/transactions/paymentChannelClaim.js.map +1 -1
  272. package/dist/npm/src/models/transactions/permissionedDomainSet.d.ts.map +1 -1
  273. package/dist/npm/src/models/transactions/permissionedDomainSet.js +1 -1
  274. package/dist/npm/src/models/transactions/permissionedDomainSet.js.map +1 -1
  275. package/dist/npm/src/models/transactions/signerListSet.d.ts.map +1 -1
  276. package/dist/npm/src/models/transactions/signerListSet.js +1 -1
  277. package/dist/npm/src/models/transactions/signerListSet.js.map +1 -1
  278. package/dist/npm/src/models/transactions/transaction.d.ts +3 -1
  279. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  280. package/dist/npm/src/models/transactions/transaction.js +11 -0
  281. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  282. package/dist/npm/src/models/transactions/trustSet.d.ts +2 -2
  283. package/dist/npm/src/models/transactions/trustSet.d.ts.map +1 -1
  284. package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
  285. package/dist/npm/src/models/utils/flags.js +24 -9
  286. package/dist/npm/src/models/utils/flags.js.map +1 -1
  287. package/dist/npm/src/models/utils/index.d.ts +2 -0
  288. package/dist/npm/src/models/utils/index.d.ts.map +1 -1
  289. package/dist/npm/src/models/utils/index.js +11 -1
  290. package/dist/npm/src/models/utils/index.js.map +1 -1
  291. package/dist/npm/src/sugar/autofill.d.ts +4 -2
  292. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  293. package/dist/npm/src/sugar/autofill.js +114 -42
  294. package/dist/npm/src/sugar/autofill.js.map +1 -1
  295. package/dist/npm/src/sugar/submit.d.ts.map +1 -1
  296. package/dist/npm/src/sugar/submit.js.map +1 -1
  297. package/dist/npm/src/utils/hashes/hashLedger.d.ts.map +1 -1
  298. package/dist/npm/src/utils/hashes/hashLedger.js +4 -1
  299. package/dist/npm/src/utils/hashes/hashLedger.js.map +1 -1
  300. package/dist/npm/sugar/autofill.d.ts +4 -2
  301. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  302. package/dist/npm/sugar/autofill.js +114 -42
  303. package/dist/npm/sugar/autofill.js.map +1 -1
  304. package/dist/npm/sugar/submit.d.ts.map +1 -1
  305. package/dist/npm/sugar/submit.js.map +1 -1
  306. package/dist/npm/utils/hashes/hashLedger.d.ts.map +1 -1
  307. package/dist/npm/utils/hashes/hashLedger.js +4 -1
  308. package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
  309. package/package.json +5 -5
  310. package/src/Wallet/batchSigner.ts +198 -0
  311. package/src/Wallet/defaultFaucets.ts +17 -20
  312. package/src/Wallet/fundWallet.ts +17 -28
  313. package/src/Wallet/index.ts +9 -3
  314. package/src/Wallet/signer.ts +4 -39
  315. package/src/Wallet/utils.ts +58 -0
  316. package/src/client/RequestManager.ts +4 -1
  317. package/src/client/connection.ts +0 -1
  318. package/src/client/index.ts +9 -30
  319. package/src/client/partialPayment.ts +3 -4
  320. package/src/models/ledger/Credential.ts +2 -2
  321. package/src/models/ledger/Delegate.ts +39 -0
  322. package/src/models/ledger/Escrow.ts +0 -4
  323. package/src/models/ledger/FeeSettings.ts +0 -4
  324. package/src/models/ledger/LedgerEntry.ts +3 -0
  325. package/src/models/ledger/XChainOwnedClaimID.ts +1 -3
  326. package/src/models/ledger/index.ts +2 -0
  327. package/src/models/methods/baseMethod.ts +1 -0
  328. package/src/models/methods/ledgerEntry.ts +5 -0
  329. package/src/models/methods/serverInfo.ts +0 -9
  330. package/src/models/methods/serverState.ts +0 -10
  331. package/src/models/transactions/AMMBid.ts +1 -2
  332. package/src/models/transactions/AMMClawback.ts +2 -2
  333. package/src/models/transactions/AMMDeposit.ts +2 -2
  334. package/src/models/transactions/AMMWithdraw.ts +2 -2
  335. package/src/models/transactions/MPTokenAuthorize.ts +2 -2
  336. package/src/models/transactions/MPTokenIssuanceCreate.ts +3 -2
  337. package/src/models/transactions/MPTokenIssuanceSet.ts +2 -2
  338. package/src/models/transactions/NFTokenCreateOffer.ts +2 -2
  339. package/src/models/transactions/NFTokenMint.ts +2 -2
  340. package/src/models/transactions/XChainAddAccountCreateAttestation.ts +2 -2
  341. package/src/models/transactions/XChainAddClaimAttestation.ts +2 -2
  342. package/src/models/transactions/XChainClaim.ts +1 -1
  343. package/src/models/transactions/XChainCommit.ts +1 -1
  344. package/src/models/transactions/XChainModifyBridge.ts +2 -2
  345. package/src/models/transactions/accountDelete.ts +1 -2
  346. package/src/models/transactions/accountSet.ts +2 -1
  347. package/src/models/transactions/batch.ts +151 -0
  348. package/src/models/transactions/common.ts +95 -29
  349. package/src/models/transactions/delegateSet.ts +112 -0
  350. package/src/models/transactions/depositPreauth.ts +2 -4
  351. package/src/models/transactions/escrowCreate.ts +2 -10
  352. package/src/models/transactions/escrowFinish.ts +1 -4
  353. package/src/models/transactions/index.ts +4 -3
  354. package/src/models/transactions/metadata.ts +2 -0
  355. package/src/models/transactions/offerCreate.ts +2 -2
  356. package/src/models/transactions/oracleSet.ts +95 -91
  357. package/src/models/transactions/payment.ts +8 -6
  358. package/src/models/transactions/paymentChannelClaim.ts +4 -4
  359. package/src/models/transactions/permissionedDomainSet.ts +3 -7
  360. package/src/models/transactions/signerListSet.ts +2 -2
  361. package/src/models/transactions/transaction.ts +21 -0
  362. package/src/models/transactions/trustSet.ts +2 -2
  363. package/src/models/utils/flags.ts +28 -10
  364. package/src/models/utils/index.ts +24 -0
  365. package/src/sugar/autofill.ts +178 -61
  366. package/src/sugar/submit.ts +1 -2
  367. package/src/utils/hashes/hashLedger.ts +5 -2
@@ -86,113 +86,117 @@ export function validateOracleSet(tx: Record<string, unknown>): void {
86
86
  validateOptionalField(tx, 'AssetClass', isString)
87
87
 
88
88
  /* eslint-disable max-statements, max-lines-per-function -- necessary to validate many fields */
89
- validateRequiredField(tx, 'PriceDataSeries', (value) => {
90
- if (!Array.isArray(value)) {
91
- throw new ValidationError('OracleSet: PriceDataSeries must be an array')
92
- }
93
-
94
- if (value.length > PRICE_DATA_SERIES_MAX_LENGTH) {
95
- throw new ValidationError(
96
- `OracleSet: PriceDataSeries must have at most ${PRICE_DATA_SERIES_MAX_LENGTH} PriceData objects`,
97
- )
98
- }
99
-
100
- // TODO: add support for handling inner objects easier (similar to validateRequiredField/validateOptionalField)
101
- for (const priceData of value) {
102
- if (typeof priceData !== 'object') {
103
- throw new ValidationError(
104
- 'OracleSet: PriceDataSeries must be an array of objects',
105
- )
89
+ validateRequiredField(
90
+ tx,
91
+ 'PriceDataSeries',
92
+ (value: unknown): value is PriceData => {
93
+ if (!Array.isArray(value)) {
94
+ throw new ValidationError('OracleSet: PriceDataSeries must be an array')
106
95
  }
107
96
 
108
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
109
- if (priceData.PriceData == null) {
97
+ if (value.length > PRICE_DATA_SERIES_MAX_LENGTH) {
110
98
  throw new ValidationError(
111
- 'OracleSet: PriceDataSeries must have a `PriceData` object',
99
+ `OracleSet: PriceDataSeries must have at most ${PRICE_DATA_SERIES_MAX_LENGTH} PriceData objects`,
112
100
  )
113
101
  }
114
102
 
115
- // check if priceData only has PriceData
116
- if (Object.keys(priceData).length !== 1) {
117
- throw new ValidationError(
118
- 'OracleSet: PriceDataSeries must only have a single PriceData object',
119
- )
120
- }
103
+ // TODO: add support for handling inner objects easier (similar to validateRequiredField/validateOptionalField)
104
+ for (const priceData of value) {
105
+ if (typeof priceData !== 'object') {
106
+ throw new ValidationError(
107
+ 'OracleSet: PriceDataSeries must be an array of objects',
108
+ )
109
+ }
121
110
 
122
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
123
- if (typeof priceData.PriceData.BaseAsset !== 'string') {
124
- throw new ValidationError(
125
- 'OracleSet: PriceDataSeries must have a `BaseAsset` string',
126
- )
127
- }
111
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
112
+ if (priceData.PriceData == null) {
113
+ throw new ValidationError(
114
+ 'OracleSet: PriceDataSeries must have a `PriceData` object',
115
+ )
116
+ }
128
117
 
129
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
130
- if (typeof priceData.PriceData.QuoteAsset !== 'string') {
131
- throw new ValidationError(
132
- 'OracleSet: PriceDataSeries must have a `QuoteAsset` string',
133
- )
134
- }
118
+ // check if priceData only has PriceData
119
+ if (Object.keys(priceData).length !== 1) {
120
+ throw new ValidationError(
121
+ 'OracleSet: PriceDataSeries must only have a single PriceData object',
122
+ )
123
+ }
135
124
 
136
- // Either AssetPrice and Scale are both present or both excluded
137
- if (
138
125
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
139
- (priceData.PriceData.AssetPrice == null) !==
126
+ if (typeof priceData.PriceData.BaseAsset !== 'string') {
127
+ throw new ValidationError(
128
+ 'OracleSet: PriceDataSeries must have a `BaseAsset` string',
129
+ )
130
+ }
131
+
140
132
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
141
- (priceData.PriceData.Scale == null)
142
- ) {
143
- throw new ValidationError(
144
- 'OracleSet: PriceDataSeries must have both `AssetPrice` and `Scale` if any are present',
145
- )
146
- }
133
+ if (typeof priceData.PriceData.QuoteAsset !== 'string') {
134
+ throw new ValidationError(
135
+ 'OracleSet: PriceDataSeries must have a `QuoteAsset` string',
136
+ )
137
+ }
138
+
139
+ // Either AssetPrice and Scale are both present or both excluded
140
+ if (
141
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
142
+ (priceData.PriceData.AssetPrice == null) !==
143
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
144
+ (priceData.PriceData.Scale == null)
145
+ ) {
146
+ throw new ValidationError(
147
+ 'OracleSet: PriceDataSeries must have both `AssetPrice` and `Scale` if any are present',
148
+ )
149
+ }
147
150
 
148
- /* eslint-disable @typescript-eslint/no-unsafe-member-access, max-depth --
151
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access, max-depth --
149
152
  we need to validate priceData.PriceData.AssetPrice value */
150
- if ('AssetPrice' in priceData.PriceData) {
151
- if (!isNumber(priceData.PriceData.AssetPrice)) {
152
- if (typeof priceData.PriceData.AssetPrice !== 'string') {
153
- throw new ValidationError(
154
- 'OracleSet: Field AssetPrice must be a string or a number',
155
- )
156
- }
157
- if (!isHex(priceData.PriceData.AssetPrice)) {
158
- throw new ValidationError(
159
- 'OracleSet: Field AssetPrice must be a valid hex string',
160
- )
161
- }
162
- if (
163
- priceData.PriceData.AssetPrice.length <
164
- MINIMUM_ASSET_PRICE_LENGTH ||
165
- priceData.PriceData.AssetPrice.length > MAXIMUM_ASSET_PRICE_LENGTH
166
- ) {
167
- throw new ValidationError(
168
- `OracleSet: Length of AssetPrice field must be between ${MINIMUM_ASSET_PRICE_LENGTH} and ${MAXIMUM_ASSET_PRICE_LENGTH} characters long`,
169
- )
153
+ if ('AssetPrice' in priceData.PriceData) {
154
+ if (!isNumber(priceData.PriceData.AssetPrice)) {
155
+ if (typeof priceData.PriceData.AssetPrice !== 'string') {
156
+ throw new ValidationError(
157
+ 'OracleSet: Field AssetPrice must be a string or a number',
158
+ )
159
+ }
160
+ if (!isHex(priceData.PriceData.AssetPrice)) {
161
+ throw new ValidationError(
162
+ 'OracleSet: Field AssetPrice must be a valid hex string',
163
+ )
164
+ }
165
+ if (
166
+ priceData.PriceData.AssetPrice.length <
167
+ MINIMUM_ASSET_PRICE_LENGTH ||
168
+ priceData.PriceData.AssetPrice.length > MAXIMUM_ASSET_PRICE_LENGTH
169
+ ) {
170
+ throw new ValidationError(
171
+ `OracleSet: Length of AssetPrice field must be between ${MINIMUM_ASSET_PRICE_LENGTH} and ${MAXIMUM_ASSET_PRICE_LENGTH} characters long`,
172
+ )
173
+ }
170
174
  }
171
175
  }
172
- }
173
- /* eslint-enable @typescript-eslint/no-unsafe-member-access, max-depth */
174
-
175
- if (
176
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
177
- 'Scale' in priceData.PriceData &&
178
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
179
- !isNumber(priceData.PriceData.Scale)
180
- ) {
181
- throw new ValidationError('OracleSet: invalid field Scale')
182
- }
176
+ /* eslint-enable @typescript-eslint/no-unsafe-member-access, max-depth */
177
+
178
+ if (
179
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
180
+ 'Scale' in priceData.PriceData &&
181
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
182
+ !isNumber(priceData.PriceData.Scale)
183
+ ) {
184
+ throw new ValidationError('OracleSet: invalid field Scale')
185
+ }
183
186
 
184
- if (
185
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
186
- priceData.PriceData.Scale < 0 ||
187
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
188
- priceData.PriceData.Scale > SCALE_MAX
189
- ) {
190
- throw new ValidationError(
191
- `OracleSet: Scale must be in range 0-${SCALE_MAX}`,
192
- )
187
+ if (
188
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
189
+ priceData.PriceData.Scale < 0 ||
190
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
191
+ priceData.PriceData.Scale > SCALE_MAX
192
+ ) {
193
+ throw new ValidationError(
194
+ `OracleSet: Scale must be in range 0-${SCALE_MAX}`,
195
+ )
196
+ }
193
197
  }
194
- }
195
- return true
196
- })
198
+ return true
199
+ },
200
+ )
197
201
  /* eslint-enable max-statements, max-lines-per-function */
198
202
  }
@@ -5,7 +5,7 @@ import { isFlagEnabled } from '../utils'
5
5
  import {
6
6
  BaseTransaction,
7
7
  isAmount,
8
- GlobalFlags,
8
+ GlobalFlagsInterface,
9
9
  validateBaseTransaction,
10
10
  isAccount,
11
11
  validateRequiredField,
@@ -84,7 +84,7 @@ export enum PaymentFlags {
84
84
  * // }
85
85
  * ```
86
86
  */
87
- export interface PaymentFlagsInterface extends GlobalFlags {
87
+ export interface PaymentFlagsInterface extends GlobalFlagsInterface {
88
88
  /**
89
89
  * Do not use the default path; only use paths included in the Paths field.
90
90
  * This is intended to force the transaction to take arbitrage opportunities.
@@ -186,8 +186,7 @@ export function validatePayment(tx: Record<string, unknown>): void {
186
186
 
187
187
  validateCredentialsList(
188
188
  tx.CredentialIDs,
189
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- known from base check
190
- tx.TransactionType as string,
189
+ tx.TransactionType,
191
190
  true,
192
191
  MAX_AUTHORIZED_CREDENTIALS,
193
192
  )
@@ -264,7 +263,10 @@ function isPathStep(pathStep: Record<string, unknown>): boolean {
264
263
  return false
265
264
  }
266
265
 
267
- function isPath(path: Array<Record<string, unknown>>): boolean {
266
+ function isPath(path: unknown): path is Path {
267
+ if (!Array.isArray(path) || path.length === 0) {
268
+ return false
269
+ }
268
270
  for (const pathStep of path) {
269
271
  if (!isPathStep(pathStep)) {
270
272
  return false
@@ -273,7 +275,7 @@ function isPath(path: Array<Record<string, unknown>>): boolean {
273
275
  return true
274
276
  }
275
277
 
276
- function isPaths(paths: Array<Array<Record<string, unknown>>>): boolean {
278
+ function isPaths(paths: unknown): paths is Path[] {
277
279
  if (!Array.isArray(paths) || paths.length === 0) {
278
280
  return false
279
281
  }
@@ -2,7 +2,7 @@ import { ValidationError } from '../../errors'
2
2
 
3
3
  import {
4
4
  BaseTransaction,
5
- GlobalFlags,
5
+ GlobalFlagsInterface,
6
6
  validateBaseTransaction,
7
7
  validateCredentialsList,
8
8
  MAX_AUTHORIZED_CREDENTIALS,
@@ -73,7 +73,8 @@ export enum PaymentChannelClaimFlags {
73
73
  * // }
74
74
  * ```
75
75
  */
76
- export interface PaymentChannelClaimFlagsInterface extends GlobalFlags {
76
+ export interface PaymentChannelClaimFlagsInterface
77
+ extends GlobalFlagsInterface {
77
78
  /**
78
79
  * Clear the channel's Expiration time. (Expiration is different from the
79
80
  * channel's immutable CancelAfter time.) Only the source address of the
@@ -151,8 +152,7 @@ export function validatePaymentChannelClaim(tx: Record<string, unknown>): void {
151
152
 
152
153
  validateCredentialsList(
153
154
  tx.CredentialIDs,
154
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- known from base check
155
- tx.TransactionType as string,
155
+ tx.TransactionType,
156
156
  true,
157
157
  MAX_AUTHORIZED_CREDENTIALS,
158
158
  )
@@ -7,6 +7,7 @@ import {
7
7
  validateOptionalField,
8
8
  validateRequiredField,
9
9
  validateCredentialsList,
10
+ isArray,
10
11
  } from './common'
11
12
 
12
13
  const MAX_ACCEPTED_CREDENTIALS = 10
@@ -36,16 +37,11 @@ export function validatePermissionedDomainSet(
36
37
  validateBaseTransaction(tx)
37
38
 
38
39
  validateOptionalField(tx, 'DomainID', isString)
39
- validateRequiredField(
40
- tx,
41
- 'AcceptedCredentials',
42
- () => tx.AcceptedCredentials instanceof Array,
43
- )
40
+ validateRequiredField(tx, 'AcceptedCredentials', isArray)
44
41
 
45
42
  validateCredentialsList(
46
43
  tx.AcceptedCredentials,
47
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- known from base check
48
- tx.TransactionType as string,
44
+ tx.TransactionType,
49
45
  // PermissionedDomainSet uses AuthorizeCredential nested objects only, strings are not allowed
50
46
  false,
51
47
  // PermissionedDomainSet uses at most 10 accepted credentials. This is different from Credential-feature transactions.
@@ -1,7 +1,7 @@
1
1
  import { ValidationError } from '../../errors'
2
2
  import { SignerEntry } from '../common'
3
3
 
4
- import { BaseTransaction, validateBaseTransaction } from './common'
4
+ import { BaseTransaction, isArray, validateBaseTransaction } from './common'
5
5
 
6
6
  /**
7
7
  * The SignerListSet transaction creates, replaces, or removes a list of
@@ -56,7 +56,7 @@ export function validateSignerListSet(tx: Record<string, unknown>): void {
56
56
  throw new ValidationError('SignerListSet: missing field SignerEntries')
57
57
  }
58
58
 
59
- if (!Array.isArray(tx.SignerEntries)) {
59
+ if (!isArray(tx.SignerEntries)) {
60
60
  throw new ValidationError('SignerListSet: invalid SignerEntries')
61
61
  }
62
62
 
@@ -15,6 +15,7 @@ import { AMMDelete, validateAMMDelete } from './AMMDelete'
15
15
  import { AMMDeposit, validateAMMDeposit } from './AMMDeposit'
16
16
  import { AMMVote, validateAMMVote } from './AMMVote'
17
17
  import { AMMWithdraw, validateAMMWithdraw } from './AMMWithdraw'
18
+ import { Batch, validateBatch } from './batch'
18
19
  import { CheckCancel, validateCheckCancel } from './checkCancel'
19
20
  import { CheckCash, validateCheckCash } from './checkCash'
20
21
  import { CheckCreate, validateCheckCreate } from './checkCreate'
@@ -23,6 +24,7 @@ import { BaseTransaction, isIssuedCurrency } from './common'
23
24
  import { CredentialAccept, validateCredentialAccept } from './CredentialAccept'
24
25
  import { CredentialCreate, validateCredentialCreate } from './CredentialCreate'
25
26
  import { CredentialDelete, validateCredentialDelete } from './CredentialDelete'
27
+ import { DelegateSet, validateDelegateSet } from './delegateSet'
26
28
  import { DepositPreauth, validateDepositPreauth } from './depositPreauth'
27
29
  import { DIDDelete, validateDIDDelete } from './DIDDelete'
28
30
  import { DIDSet, validateDIDSet } from './DIDSet'
@@ -132,6 +134,7 @@ export type SubmittableTransaction =
132
134
  | AMMWithdraw
133
135
  | AccountDelete
134
136
  | AccountSet
137
+ | Batch
135
138
  | CheckCancel
136
139
  | CheckCash
137
140
  | CheckCreate
@@ -141,6 +144,7 @@ export type SubmittableTransaction =
141
144
  | CredentialDelete
142
145
  | DIDDelete
143
146
  | DIDSet
147
+ | DelegateSet
144
148
  | DepositPreauth
145
149
  | EscrowCancel
146
150
  | EscrowCreate
@@ -307,6 +311,19 @@ export function validate(transaction: Record<string, unknown>): void {
307
311
  validateAccountSet(tx)
308
312
  break
309
313
 
314
+ case 'Batch':
315
+ validateBatch(tx)
316
+ // This is done here to avoid issues with dependency cycles
317
+
318
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- okay here
319
+ // @ts-expect-error -- already checked
320
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call -- already checked above
321
+ tx.RawTransactions.forEach((innerTx: Record<string, unknown>) => {
322
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- already checked above
323
+ validate(innerTx.RawTransaction as Record<string, unknown>)
324
+ })
325
+ break
326
+
310
327
  case 'CheckCancel':
311
328
  validateCheckCancel(tx)
312
329
  break
@@ -343,6 +360,10 @@ export function validate(transaction: Record<string, unknown>): void {
343
360
  validateDIDSet(tx)
344
361
  break
345
362
 
363
+ case 'DelegateSet':
364
+ validateDelegateSet(tx)
365
+ break
366
+
346
367
  case 'DepositPreauth':
347
368
  validateDepositPreauth(tx)
348
369
  break
@@ -3,7 +3,7 @@ import { IssuedCurrencyAmount } from '../common'
3
3
 
4
4
  import {
5
5
  BaseTransaction,
6
- GlobalFlags,
6
+ GlobalFlagsInterface,
7
7
  isAmount,
8
8
  validateBaseTransaction,
9
9
  } from './common'
@@ -77,7 +77,7 @@ export enum TrustSetFlags {
77
77
  * // }
78
78
  * ```
79
79
  */
80
- export interface TrustSetFlagsInterface extends GlobalFlags {
80
+ export interface TrustSetFlagsInterface extends GlobalFlagsInterface {
81
81
  /**
82
82
  * Authorize the other party to hold currency issued by this account. (No
83
83
  * effect unless using the asfRequireAuth AccountSet flag.) Cannot be unset.
@@ -8,6 +8,8 @@ import { AccountSetTfFlags } from '../transactions/accountSet'
8
8
  import { AMMClawbackFlags } from '../transactions/AMMClawback'
9
9
  import { AMMDepositFlags } from '../transactions/AMMDeposit'
10
10
  import { AMMWithdrawFlags } from '../transactions/AMMWithdraw'
11
+ import { BatchFlags } from '../transactions/batch'
12
+ import { GlobalFlags } from '../transactions/common'
11
13
  import { MPTokenAuthorizeFlags } from '../transactions/MPTokenAuthorize'
12
14
  import { MPTokenIssuanceCreateFlags } from '../transactions/MPTokenIssuanceCreate'
13
15
  import { MPTokenIssuanceSetFlags } from '../transactions/MPTokenIssuanceSet'
@@ -51,6 +53,7 @@ const txToFlag = {
51
53
  AMMClawback: AMMClawbackFlags,
52
54
  AMMDeposit: AMMDepositFlags,
53
55
  AMMWithdraw: AMMWithdrawFlags,
56
+ Batch: BatchFlags,
54
57
  MPTokenAuthorize: MPTokenAuthorizeFlags,
55
58
  MPTokenIssuanceCreate: MPTokenIssuanceCreateFlags,
56
59
  MPTokenIssuanceSet: MPTokenIssuanceSetFlags,
@@ -97,27 +100,36 @@ export function setTransactionFlagsToNumber(tx: Transaction): void {
97
100
  * @returns A numerical representation of a Transaction's Flags
98
101
  */
99
102
  export function convertTxFlagsToNumber(tx: Transaction): number {
100
- if (!tx.Flags) {
103
+ const txFlags = tx.Flags
104
+ if (txFlags == null) {
101
105
  return 0
102
106
  }
103
- if (typeof tx.Flags === 'number') {
104
- return tx.Flags
107
+ if (typeof txFlags === 'number') {
108
+ return txFlags
105
109
  }
106
110
 
107
111
  if (isTxToFlagKey(tx.TransactionType)) {
108
112
  const flagEnum = txToFlag[tx.TransactionType]
109
- return Object.keys(tx.Flags).reduce((resultFlags, flag) => {
110
- if (flagEnum[flag] == null) {
111
- throw new ValidationError(
112
- `Invalid flag ${flag}. Valid flags are ${JSON.stringify(flagEnum)}`,
113
- )
113
+ return Object.keys(txFlags).reduce((resultFlags, flag) => {
114
+ if (flagEnum[flag] == null && GlobalFlags[flag] == null) {
115
+ throw new ValidationError(`Invalid flag ${flag}.`)
114
116
  }
115
117
 
116
- return tx.Flags?.[flag] ? resultFlags | flagEnum[flag] : resultFlags
118
+ return txFlags[flag]
119
+ ? resultFlags | (flagEnum[flag] || GlobalFlags[flag])
120
+ : resultFlags
117
121
  }, 0)
118
122
  }
119
123
 
120
- return 0
124
+ return Object.keys(txFlags).reduce((resultFlags, flag) => {
125
+ if (GlobalFlags[flag] == null) {
126
+ throw new ValidationError(
127
+ `Invalid flag ${flag}. Valid flags are ${JSON.stringify(GlobalFlags)}`,
128
+ )
129
+ }
130
+
131
+ return txFlags[flag] ? resultFlags | GlobalFlags[flag] : resultFlags
132
+ }, 0)
121
133
  }
122
134
 
123
135
  /**
@@ -146,5 +158,11 @@ export function parseTransactionFlags(tx: Transaction): object {
146
158
  })
147
159
  }
148
160
 
161
+ Object.values(GlobalFlags).forEach((flag) => {
162
+ if (typeof flag === 'string' && isFlagEnabled(flags, GlobalFlags[flag])) {
163
+ booleanFlagMap[flag] = true
164
+ }
165
+ })
166
+
149
167
  return booleanFlagMap
150
168
  }
@@ -1,3 +1,5 @@
1
+ import type { Transaction } from '../transactions'
2
+
1
3
  const HEX_REGEX = /^[0-9A-Fa-f]+$/u
2
4
  export const INTEGER_SANITY_CHECK = /^[0-9]+$/u
3
5
 
@@ -27,6 +29,28 @@ export function isFlagEnabled(Flags: number, checkFlag: number): boolean {
27
29
  return (BigInt(checkFlag) & BigInt(Flags)) === BigInt(checkFlag)
28
30
  }
29
31
 
32
+ /**
33
+ * Determines whether a transaction has a certain flag enabled.
34
+ *
35
+ * @param tx The transaction to check for the flag.
36
+ * @param flag The flag to check.
37
+ * @param flagName The name of the flag to check, used for object flags.
38
+ * @returns Whether `flag` is enabled on `tx`.
39
+ */
40
+ export function hasFlag(
41
+ tx: Transaction | Record<string, unknown>,
42
+ flag: number,
43
+ flagName: string,
44
+ ): boolean {
45
+ if (tx.Flags == null) {
46
+ return false
47
+ }
48
+ if (typeof tx.Flags === 'number') {
49
+ return isFlagEnabled(tx.Flags, flag)
50
+ }
51
+ return tx.Flags[flagName] === true
52
+ }
53
+
30
54
  /**
31
55
  * Check if string is in hex format.
32
56
  *