xrpl 4.3.0 → 4.4.0-smartescrow.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/build/xrpl-latest-min.js +1 -1
  2. package/build/xrpl-latest-min.js.map +1 -1
  3. package/build/xrpl-latest.js +1293 -1596
  4. package/build/xrpl-latest.js.map +1 -1
  5. package/dist/npm/Wallet/defaultFaucets.d.ts +2 -1
  6. package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
  7. package/dist/npm/Wallet/defaultFaucets.js +3 -0
  8. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  9. package/dist/npm/client/index.d.ts +3 -3
  10. package/dist/npm/client/index.d.ts.map +1 -1
  11. package/dist/npm/client/index.js +10 -7
  12. package/dist/npm/client/index.js.map +1 -1
  13. package/dist/npm/client/partialPayment.d.ts.map +1 -1
  14. package/dist/npm/client/partialPayment.js +2 -2
  15. package/dist/npm/client/partialPayment.js.map +1 -1
  16. package/dist/npm/models/common/index.d.ts +1 -0
  17. package/dist/npm/models/common/index.d.ts.map +1 -1
  18. package/dist/npm/models/ledger/AccountRoot.d.ts +1 -1
  19. package/dist/npm/models/ledger/AccountRoot.d.ts.map +1 -1
  20. package/dist/npm/models/ledger/Escrow.d.ts +2 -0
  21. package/dist/npm/models/ledger/Escrow.d.ts.map +1 -1
  22. package/dist/npm/models/ledger/FeeSettings.d.ts +2 -0
  23. package/dist/npm/models/ledger/FeeSettings.d.ts.map +1 -1
  24. package/dist/npm/models/ledger/LedgerEntry.d.ts +3 -2
  25. package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
  26. package/dist/npm/models/ledger/Vault.d.ts +21 -0
  27. package/dist/npm/models/ledger/Vault.d.ts.map +1 -0
  28. package/dist/npm/models/ledger/Vault.js +3 -0
  29. package/dist/npm/models/ledger/Vault.js.map +1 -0
  30. package/dist/npm/models/ledger/index.d.ts +2 -1
  31. package/dist/npm/models/ledger/index.d.ts.map +1 -1
  32. package/dist/npm/models/ledger/index.js.map +1 -1
  33. package/dist/npm/models/methods/index.d.ts +5 -4
  34. package/dist/npm/models/methods/index.d.ts.map +1 -1
  35. package/dist/npm/models/methods/serverInfo.d.ts +6 -0
  36. package/dist/npm/models/methods/serverInfo.d.ts.map +1 -1
  37. package/dist/npm/models/methods/serverState.d.ts +6 -0
  38. package/dist/npm/models/methods/serverState.d.ts.map +1 -1
  39. package/dist/npm/models/methods/vaultInfo.d.ts +46 -0
  40. package/dist/npm/models/methods/vaultInfo.d.ts.map +1 -0
  41. package/dist/npm/models/methods/vaultInfo.js +3 -0
  42. package/dist/npm/models/methods/vaultInfo.js.map +1 -0
  43. package/dist/npm/models/transactions/AMMBid.d.ts.map +1 -1
  44. package/dist/npm/models/transactions/AMMBid.js +7 -5
  45. package/dist/npm/models/transactions/AMMBid.js.map +1 -1
  46. package/dist/npm/models/transactions/AMMClawback.d.ts.map +1 -1
  47. package/dist/npm/models/transactions/AMMClawback.js +5 -6
  48. package/dist/npm/models/transactions/AMMClawback.js.map +1 -1
  49. package/dist/npm/models/transactions/AMMDelete.d.ts.map +1 -1
  50. package/dist/npm/models/transactions/AMMDelete.js +2 -2
  51. package/dist/npm/models/transactions/AMMDelete.js.map +1 -1
  52. package/dist/npm/models/transactions/AMMDeposit.js +3 -3
  53. package/dist/npm/models/transactions/AMMDeposit.js.map +1 -1
  54. package/dist/npm/models/transactions/AMMVote.d.ts.map +1 -1
  55. package/dist/npm/models/transactions/AMMVote.js +2 -2
  56. package/dist/npm/models/transactions/AMMVote.js.map +1 -1
  57. package/dist/npm/models/transactions/AMMWithdraw.js +3 -3
  58. package/dist/npm/models/transactions/AMMWithdraw.js.map +1 -1
  59. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  60. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js +3 -3
  61. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  62. package/dist/npm/models/transactions/MPTokenIssuanceSet.js +4 -4
  63. package/dist/npm/models/transactions/MPTokenIssuanceSet.js.map +1 -1
  64. package/dist/npm/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
  65. package/dist/npm/models/transactions/NFTokenCancelOffer.js +1 -1
  66. package/dist/npm/models/transactions/NFTokenCancelOffer.js.map +1 -1
  67. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  68. package/dist/npm/models/transactions/NFTokenCreateOffer.js +6 -2
  69. package/dist/npm/models/transactions/NFTokenCreateOffer.js.map +1 -1
  70. package/dist/npm/models/transactions/checkCreate.d.ts.map +1 -1
  71. package/dist/npm/models/transactions/checkCreate.js +1 -2
  72. package/dist/npm/models/transactions/checkCreate.js.map +1 -1
  73. package/dist/npm/models/transactions/clawback.d.ts +2 -2
  74. package/dist/npm/models/transactions/clawback.d.ts.map +1 -1
  75. package/dist/npm/models/transactions/clawback.js +4 -6
  76. package/dist/npm/models/transactions/clawback.js.map +1 -1
  77. package/dist/npm/models/transactions/common.d.ts +9 -4
  78. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  79. package/dist/npm/models/transactions/common.js +51 -28
  80. package/dist/npm/models/transactions/common.js.map +1 -1
  81. package/dist/npm/models/transactions/escrowCreate.d.ts +2 -0
  82. package/dist/npm/models/transactions/escrowCreate.d.ts.map +1 -1
  83. package/dist/npm/models/transactions/escrowCreate.js +4 -2
  84. package/dist/npm/models/transactions/escrowCreate.js.map +1 -1
  85. package/dist/npm/models/transactions/escrowFinish.d.ts +1 -0
  86. package/dist/npm/models/transactions/escrowFinish.d.ts.map +1 -1
  87. package/dist/npm/models/transactions/escrowFinish.js.map +1 -1
  88. package/dist/npm/models/transactions/index.d.ts +8 -2
  89. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  90. package/dist/npm/models/transactions/index.js +4 -1
  91. package/dist/npm/models/transactions/index.js.map +1 -1
  92. package/dist/npm/models/transactions/oracleSet.d.ts.map +1 -1
  93. package/dist/npm/models/transactions/oracleSet.js +22 -21
  94. package/dist/npm/models/transactions/oracleSet.js.map +1 -1
  95. package/dist/npm/models/transactions/payment.d.ts +1 -0
  96. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  97. package/dist/npm/models/transactions/payment.js +6 -4
  98. package/dist/npm/models/transactions/payment.js.map +1 -1
  99. package/dist/npm/models/transactions/signerListSet.d.ts.map +1 -1
  100. package/dist/npm/models/transactions/signerListSet.js +10 -16
  101. package/dist/npm/models/transactions/signerListSet.js.map +1 -1
  102. package/dist/npm/models/transactions/transaction.d.ts +7 -1
  103. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  104. package/dist/npm/models/transactions/transaction.js +28 -35
  105. package/dist/npm/models/transactions/transaction.js.map +1 -1
  106. package/dist/npm/models/transactions/vaultClawback.d.ts +10 -0
  107. package/dist/npm/models/transactions/vaultClawback.d.ts.map +1 -0
  108. package/dist/npm/models/transactions/vaultClawback.js +12 -0
  109. package/dist/npm/models/transactions/vaultClawback.js.map +1 -0
  110. package/dist/npm/models/transactions/vaultCreate.d.ts +24 -0
  111. package/dist/npm/models/transactions/vaultCreate.d.ts.map +1 -0
  112. package/dist/npm/models/transactions/vaultCreate.js +51 -0
  113. package/dist/npm/models/transactions/vaultCreate.js.map +1 -0
  114. package/dist/npm/models/transactions/vaultDelete.d.ts +7 -0
  115. package/dist/npm/models/transactions/vaultDelete.d.ts.map +1 -0
  116. package/dist/npm/models/transactions/vaultDelete.js +10 -0
  117. package/dist/npm/models/transactions/vaultDelete.js.map +1 -0
  118. package/dist/npm/models/transactions/vaultDeposit.d.ts +9 -0
  119. package/dist/npm/models/transactions/vaultDeposit.d.ts.map +1 -0
  120. package/dist/npm/models/transactions/vaultDeposit.js +11 -0
  121. package/dist/npm/models/transactions/vaultDeposit.js.map +1 -0
  122. package/dist/npm/models/transactions/vaultSet.d.ts +10 -0
  123. package/dist/npm/models/transactions/vaultSet.d.ts.map +1 -0
  124. package/dist/npm/models/transactions/vaultSet.js +25 -0
  125. package/dist/npm/models/transactions/vaultSet.js.map +1 -0
  126. package/dist/npm/models/transactions/vaultWithdraw.d.ts +10 -0
  127. package/dist/npm/models/transactions/vaultWithdraw.d.ts.map +1 -0
  128. package/dist/npm/models/transactions/vaultWithdraw.js +12 -0
  129. package/dist/npm/models/transactions/vaultWithdraw.js.map +1 -0
  130. package/dist/npm/models/utils/flags.d.ts.map +1 -1
  131. package/dist/npm/models/utils/flags.js +2 -0
  132. package/dist/npm/models/utils/flags.js.map +1 -1
  133. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  134. package/dist/npm/src/Wallet/defaultFaucets.d.ts +2 -1
  135. package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
  136. package/dist/npm/src/Wallet/defaultFaucets.js +3 -0
  137. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  138. package/dist/npm/src/client/index.d.ts +3 -3
  139. package/dist/npm/src/client/index.d.ts.map +1 -1
  140. package/dist/npm/src/client/index.js +10 -7
  141. package/dist/npm/src/client/index.js.map +1 -1
  142. package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
  143. package/dist/npm/src/client/partialPayment.js +2 -2
  144. package/dist/npm/src/client/partialPayment.js.map +1 -1
  145. package/dist/npm/src/models/common/index.d.ts +1 -0
  146. package/dist/npm/src/models/common/index.d.ts.map +1 -1
  147. package/dist/npm/src/models/ledger/AccountRoot.d.ts +1 -1
  148. package/dist/npm/src/models/ledger/AccountRoot.d.ts.map +1 -1
  149. package/dist/npm/src/models/ledger/Escrow.d.ts +2 -0
  150. package/dist/npm/src/models/ledger/Escrow.d.ts.map +1 -1
  151. package/dist/npm/src/models/ledger/FeeSettings.d.ts +2 -0
  152. package/dist/npm/src/models/ledger/FeeSettings.d.ts.map +1 -1
  153. package/dist/npm/src/models/ledger/LedgerEntry.d.ts +3 -2
  154. package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
  155. package/dist/npm/src/models/ledger/Vault.d.ts +21 -0
  156. package/dist/npm/src/models/ledger/Vault.d.ts.map +1 -0
  157. package/dist/npm/src/models/ledger/Vault.js +3 -0
  158. package/dist/npm/src/models/ledger/Vault.js.map +1 -0
  159. package/dist/npm/src/models/ledger/index.d.ts +2 -1
  160. package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
  161. package/dist/npm/src/models/ledger/index.js.map +1 -1
  162. package/dist/npm/src/models/methods/index.d.ts +5 -4
  163. package/dist/npm/src/models/methods/index.d.ts.map +1 -1
  164. package/dist/npm/src/models/methods/serverInfo.d.ts +6 -0
  165. package/dist/npm/src/models/methods/serverInfo.d.ts.map +1 -1
  166. package/dist/npm/src/models/methods/serverState.d.ts +6 -0
  167. package/dist/npm/src/models/methods/serverState.d.ts.map +1 -1
  168. package/dist/npm/src/models/methods/vaultInfo.d.ts +46 -0
  169. package/dist/npm/src/models/methods/vaultInfo.d.ts.map +1 -0
  170. package/dist/npm/src/models/methods/vaultInfo.js +3 -0
  171. package/dist/npm/src/models/methods/vaultInfo.js.map +1 -0
  172. package/dist/npm/src/models/transactions/AMMBid.d.ts.map +1 -1
  173. package/dist/npm/src/models/transactions/AMMBid.js +7 -5
  174. package/dist/npm/src/models/transactions/AMMBid.js.map +1 -1
  175. package/dist/npm/src/models/transactions/AMMClawback.d.ts.map +1 -1
  176. package/dist/npm/src/models/transactions/AMMClawback.js +5 -6
  177. package/dist/npm/src/models/transactions/AMMClawback.js.map +1 -1
  178. package/dist/npm/src/models/transactions/AMMDelete.d.ts.map +1 -1
  179. package/dist/npm/src/models/transactions/AMMDelete.js +2 -2
  180. package/dist/npm/src/models/transactions/AMMDelete.js.map +1 -1
  181. package/dist/npm/src/models/transactions/AMMDeposit.js +3 -3
  182. package/dist/npm/src/models/transactions/AMMDeposit.js.map +1 -1
  183. package/dist/npm/src/models/transactions/AMMVote.d.ts.map +1 -1
  184. package/dist/npm/src/models/transactions/AMMVote.js +2 -2
  185. package/dist/npm/src/models/transactions/AMMVote.js.map +1 -1
  186. package/dist/npm/src/models/transactions/AMMWithdraw.js +3 -3
  187. package/dist/npm/src/models/transactions/AMMWithdraw.js.map +1 -1
  188. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  189. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js +3 -3
  190. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  191. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js +4 -4
  192. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js.map +1 -1
  193. package/dist/npm/src/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
  194. package/dist/npm/src/models/transactions/NFTokenCancelOffer.js +1 -1
  195. package/dist/npm/src/models/transactions/NFTokenCancelOffer.js.map +1 -1
  196. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  197. package/dist/npm/src/models/transactions/NFTokenCreateOffer.js +6 -2
  198. package/dist/npm/src/models/transactions/NFTokenCreateOffer.js.map +1 -1
  199. package/dist/npm/src/models/transactions/checkCreate.d.ts.map +1 -1
  200. package/dist/npm/src/models/transactions/checkCreate.js +1 -2
  201. package/dist/npm/src/models/transactions/checkCreate.js.map +1 -1
  202. package/dist/npm/src/models/transactions/clawback.d.ts +2 -2
  203. package/dist/npm/src/models/transactions/clawback.d.ts.map +1 -1
  204. package/dist/npm/src/models/transactions/clawback.js +4 -6
  205. package/dist/npm/src/models/transactions/clawback.js.map +1 -1
  206. package/dist/npm/src/models/transactions/common.d.ts +9 -4
  207. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  208. package/dist/npm/src/models/transactions/common.js +51 -28
  209. package/dist/npm/src/models/transactions/common.js.map +1 -1
  210. package/dist/npm/src/models/transactions/escrowCreate.d.ts +2 -0
  211. package/dist/npm/src/models/transactions/escrowCreate.d.ts.map +1 -1
  212. package/dist/npm/src/models/transactions/escrowCreate.js +4 -2
  213. package/dist/npm/src/models/transactions/escrowCreate.js.map +1 -1
  214. package/dist/npm/src/models/transactions/escrowFinish.d.ts +1 -0
  215. package/dist/npm/src/models/transactions/escrowFinish.d.ts.map +1 -1
  216. package/dist/npm/src/models/transactions/escrowFinish.js.map +1 -1
  217. package/dist/npm/src/models/transactions/index.d.ts +8 -2
  218. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  219. package/dist/npm/src/models/transactions/index.js +4 -1
  220. package/dist/npm/src/models/transactions/index.js.map +1 -1
  221. package/dist/npm/src/models/transactions/oracleSet.d.ts.map +1 -1
  222. package/dist/npm/src/models/transactions/oracleSet.js +22 -21
  223. package/dist/npm/src/models/transactions/oracleSet.js.map +1 -1
  224. package/dist/npm/src/models/transactions/payment.d.ts +1 -0
  225. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  226. package/dist/npm/src/models/transactions/payment.js +6 -4
  227. package/dist/npm/src/models/transactions/payment.js.map +1 -1
  228. package/dist/npm/src/models/transactions/signerListSet.d.ts.map +1 -1
  229. package/dist/npm/src/models/transactions/signerListSet.js +10 -16
  230. package/dist/npm/src/models/transactions/signerListSet.js.map +1 -1
  231. package/dist/npm/src/models/transactions/transaction.d.ts +7 -1
  232. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  233. package/dist/npm/src/models/transactions/transaction.js +28 -35
  234. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  235. package/dist/npm/src/models/transactions/vaultClawback.d.ts +10 -0
  236. package/dist/npm/src/models/transactions/vaultClawback.d.ts.map +1 -0
  237. package/dist/npm/src/models/transactions/vaultClawback.js +12 -0
  238. package/dist/npm/src/models/transactions/vaultClawback.js.map +1 -0
  239. package/dist/npm/src/models/transactions/vaultCreate.d.ts +24 -0
  240. package/dist/npm/src/models/transactions/vaultCreate.d.ts.map +1 -0
  241. package/dist/npm/src/models/transactions/vaultCreate.js +51 -0
  242. package/dist/npm/src/models/transactions/vaultCreate.js.map +1 -0
  243. package/dist/npm/src/models/transactions/vaultDelete.d.ts +7 -0
  244. package/dist/npm/src/models/transactions/vaultDelete.d.ts.map +1 -0
  245. package/dist/npm/src/models/transactions/vaultDelete.js +10 -0
  246. package/dist/npm/src/models/transactions/vaultDelete.js.map +1 -0
  247. package/dist/npm/src/models/transactions/vaultDeposit.d.ts +9 -0
  248. package/dist/npm/src/models/transactions/vaultDeposit.d.ts.map +1 -0
  249. package/dist/npm/src/models/transactions/vaultDeposit.js +11 -0
  250. package/dist/npm/src/models/transactions/vaultDeposit.js.map +1 -0
  251. package/dist/npm/src/models/transactions/vaultSet.d.ts +10 -0
  252. package/dist/npm/src/models/transactions/vaultSet.d.ts.map +1 -0
  253. package/dist/npm/src/models/transactions/vaultSet.js +25 -0
  254. package/dist/npm/src/models/transactions/vaultSet.js.map +1 -0
  255. package/dist/npm/src/models/transactions/vaultWithdraw.d.ts +10 -0
  256. package/dist/npm/src/models/transactions/vaultWithdraw.d.ts.map +1 -0
  257. package/dist/npm/src/models/transactions/vaultWithdraw.js +12 -0
  258. package/dist/npm/src/models/transactions/vaultWithdraw.js.map +1 -0
  259. package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
  260. package/dist/npm/src/models/utils/flags.js +2 -0
  261. package/dist/npm/src/models/utils/flags.js.map +1 -1
  262. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  263. package/dist/npm/src/sugar/autofill.js +32 -11
  264. package/dist/npm/src/sugar/autofill.js.map +1 -1
  265. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  266. package/dist/npm/sugar/autofill.js +32 -11
  267. package/dist/npm/sugar/autofill.js.map +1 -1
  268. package/package.json +5 -4
  269. package/src/Wallet/defaultFaucets.ts +5 -0
  270. package/src/client/index.ts +43 -38
  271. package/src/client/partialPayment.ts +1 -2
  272. package/src/models/common/index.ts +2 -0
  273. package/src/models/ledger/AccountRoot.ts +1 -1
  274. package/src/models/ledger/Escrow.ts +4 -0
  275. package/src/models/ledger/FeeSettings.ts +4 -0
  276. package/src/models/ledger/LedgerEntry.ts +3 -0
  277. package/src/models/ledger/Vault.ts +83 -0
  278. package/src/models/ledger/index.ts +3 -1
  279. package/src/models/methods/index.ts +10 -0
  280. package/src/models/methods/serverInfo.ts +9 -0
  281. package/src/models/methods/serverState.ts +10 -0
  282. package/src/models/methods/vaultInfo.ts +193 -0
  283. package/src/models/transactions/AMMBid.ts +12 -20
  284. package/src/models/transactions/AMMClawback.ts +8 -11
  285. package/src/models/transactions/AMMDelete.ts +7 -3
  286. package/src/models/transactions/AMMDeposit.ts +4 -4
  287. package/src/models/transactions/AMMVote.ts +7 -3
  288. package/src/models/transactions/AMMWithdraw.ts +4 -4
  289. package/src/models/transactions/MPTokenIssuanceCreate.ts +3 -1
  290. package/src/models/transactions/MPTokenIssuanceSet.ts +1 -1
  291. package/src/models/transactions/NFTokenCancelOffer.ts +2 -2
  292. package/src/models/transactions/NFTokenCreateOffer.ts +8 -4
  293. package/src/models/transactions/checkCreate.ts +2 -6
  294. package/src/models/transactions/clawback.ts +9 -10
  295. package/src/models/transactions/common.ts +114 -41
  296. package/src/models/transactions/escrowCreate.ts +10 -2
  297. package/src/models/transactions/escrowFinish.ts +2 -0
  298. package/src/models/transactions/index.ts +13 -2
  299. package/src/models/transactions/oracleSet.ts +32 -39
  300. package/src/models/transactions/payment.ts +13 -7
  301. package/src/models/transactions/signerListSet.ts +21 -21
  302. package/src/models/transactions/transaction.ts +46 -43
  303. package/src/models/transactions/vaultClawback.ts +55 -0
  304. package/src/models/transactions/vaultCreate.ts +142 -0
  305. package/src/models/transactions/vaultDelete.ts +32 -0
  306. package/src/models/transactions/vaultDeposit.ts +41 -0
  307. package/src/models/transactions/vaultSet.ts +71 -0
  308. package/src/models/transactions/vaultWithdraw.ts +50 -0
  309. package/src/models/utils/flags.ts +2 -0
  310. package/src/sugar/autofill.ts +44 -31
@@ -19,6 +19,8 @@ const LEDGER_OFFSET = 20
19
19
  const RESTRICTED_NETWORKS = 1024
20
20
  const REQUIRED_NETWORKID_VERSION = '1.11.0'
21
21
 
22
+ const MICRO_DROPS_PER_DROP = 1_000_000
23
+
22
24
  /**
23
25
  * Determines whether the source rippled version is not later than the target rippled version.
24
26
  * Example usage: isNotLaterRippledVersion('1.10.0', '1.11.0') returns true.
@@ -258,6 +260,17 @@ async function fetchOwnerReserveFee(client: Client): Promise<BigNumber> {
258
260
  return new BigNumber(fee)
259
261
  }
260
262
 
263
+ async function fetchGasPrice(client: Client): Promise<BigNumber> {
264
+ const response = await client.request({ command: 'server_state' })
265
+ const gasPrice = response.result.state.validated_ledger?.gas_price
266
+
267
+ if (gasPrice == null) {
268
+ return Promise.reject(new Error('Could not fetch Owner Reserve.'))
269
+ }
270
+
271
+ return new BigNumber(gasPrice)
272
+ }
273
+
261
274
  /**
262
275
  * Calculates the fee per transaction type.
263
276
  *
@@ -266,30 +279,40 @@ async function fetchOwnerReserveFee(client: Client): Promise<BigNumber> {
266
279
  * @param [signersCount=0] - The number of signers (default is 0). Only used for multisigning.
267
280
  * @returns A promise that returns the fee.
268
281
  */
269
-
282
+ // eslint-disable-next-line max-lines-per-function -- needed here due to the complexity of the fee calculation
270
283
  async function calculateFeePerTransactionType(
271
284
  client: Client,
272
285
  tx: Transaction,
273
286
  signersCount = 0,
274
287
  ): Promise<BigNumber> {
275
288
  const netFeeXRP = await getFeeXrp(client)
276
- const netFeeDrops = xrpToDrops(netFeeXRP)
277
- let baseFee = new BigNumber(netFeeDrops)
289
+ const netFeeDrops = new BigNumber(xrpToDrops(netFeeXRP))
290
+ let baseFee = netFeeDrops
278
291
 
279
292
  const isSpecialTxCost = ['AccountDelete', 'AMMCreate'].includes(
280
293
  tx.TransactionType,
281
294
  )
282
295
 
283
- // EscrowFinish Transaction with Fulfillment
284
- if (tx.TransactionType === 'EscrowFinish' && tx.Fulfillment != null) {
285
- const fulfillmentBytesSize: number = Math.ceil(tx.Fulfillment.length / 2)
286
- // BaseFee × (33 + (Fulfillment size in bytes / 16))
287
- baseFee = new BigNumber(
288
- // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- expected use of magic numbers
289
- scaleValue(netFeeDrops, 33 + fulfillmentBytesSize / 16),
290
- )
291
- } else if (isSpecialTxCost) {
292
- baseFee = await fetchOwnerReserveFee(client)
296
+ // EscrowCreate transaction with FinishFunction
297
+ if (tx.TransactionType === 'EscrowCreate' && tx.FinishFunction != null) {
298
+ baseFee = baseFee.plus(1000)
299
+ } else if (tx.TransactionType === 'EscrowFinish') {
300
+ // EscrowFinish Transaction with Fulfillment/ComputationAllowance
301
+ if (tx.Fulfillment != null) {
302
+ const fulfillmentBytesSize: number = Math.ceil(tx.Fulfillment.length / 2)
303
+ // BaseFee × (33 + (Fulfillment size in bytes / 16))
304
+ baseFee = netFeeDrops.multipliedBy(
305
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- expected use of magic numbers
306
+ 33 + fulfillmentBytesSize / 16,
307
+ )
308
+ }
309
+ if (tx.ComputationAllowance != null) {
310
+ const gasPrice = await fetchGasPrice(client)
311
+ const extraFee: BigNumber = gasPrice
312
+ .multipliedBy(tx.ComputationAllowance)
313
+ .dividedBy(MICRO_DROPS_PER_DROP)
314
+ baseFee = baseFee.plus(extraFee)
315
+ }
293
316
  } else if (tx.TransactionType === 'Batch') {
294
317
  const rawTxFees = await tx.RawTransactions.reduce(async (acc, rawTxn) => {
295
318
  const resolvedAcc = await acc
@@ -300,6 +323,8 @@ async function calculateFeePerTransactionType(
300
323
  return BigNumber.sum(resolvedAcc, fee)
301
324
  }, Promise.resolve(new BigNumber(0)))
302
325
  baseFee = BigNumber.sum(baseFee.times(2), rawTxFees)
326
+ } else if (isSpecialTxCost) {
327
+ baseFee = await fetchOwnerReserveFee(client)
303
328
  }
304
329
 
305
330
  /*
@@ -307,7 +332,7 @@ async function calculateFeePerTransactionType(
307
332
  * BaseFee × (1 + Number of Signatures Provided)
308
333
  */
309
334
  if (signersCount > 0) {
310
- baseFee = BigNumber.sum(baseFee, scaleValue(netFeeDrops, signersCount))
335
+ baseFee = BigNumber.sum(baseFee, netFeeDrops.multipliedBy(signersCount))
311
336
  }
312
337
 
313
338
  const maxFeeDrops = xrpToDrops(client.maxFeeXRP)
@@ -337,17 +362,6 @@ export async function getTransactionFee(
337
362
  tx.Fee = fee.toString(10)
338
363
  }
339
364
 
340
- /**
341
- * Scales the given value by multiplying it with the provided multiplier.
342
- *
343
- * @param value - The value to be scaled.
344
- * @param multiplier - The multiplier to scale the value.
345
- * @returns The scaled value as a string.
346
- */
347
- function scaleValue(value, multiplier): string {
348
- return new BigNumber(value).times(multiplier).toString()
349
- }
350
-
351
365
  /**
352
366
  * Sets the latest validated ledger sequence for the transaction.
353
367
  *
@@ -394,6 +408,7 @@ export async function checkAccountDeleteBlockers(
394
408
  resolve()
395
409
  })
396
410
  }
411
+
397
412
  /**
398
413
  * Replaces Amount with DeliverMax if needed.
399
414
  *
@@ -405,8 +420,6 @@ export function handleDeliverMax(tx: Payment): void {
405
420
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed here
406
421
  if (tx.Amount == null) {
407
422
  // If only DeliverMax is provided, use it to populate the Amount field
408
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
409
- // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
410
423
  // eslint-disable-next-line no-param-reassign -- known RPC-level property
411
424
  tx.Amount = tx.DeliverMax
412
425
  }
@@ -459,28 +472,28 @@ export async function autofillBatchTxn(
459
472
 
460
473
  if (txn.Fee == null) {
461
474
  txn.Fee = '0'
462
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- for JS purposes
475
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS checks
463
476
  } else if (txn.Fee !== '0') {
464
477
  throw new XrplError('Must have `Fee of "0" in inner Batch transaction.')
465
478
  }
466
479
 
467
480
  if (txn.SigningPubKey == null) {
468
481
  txn.SigningPubKey = ''
469
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- for JS purposes
482
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS checks
470
483
  } else if (txn.SigningPubKey !== '') {
471
484
  throw new XrplError(
472
485
  'Must have `SigningPubKey` of "" in inner Batch transaction.',
473
486
  )
474
487
  }
475
488
 
476
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- for JS purposes
489
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS checks
477
490
  if (txn.TxnSignature != null) {
478
491
  throw new XrplError(
479
492
  'Must not have `TxnSignature` in inner Batch transaction.',
480
493
  )
481
494
  }
482
495
 
483
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- for JS purposes
496
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS checks
484
497
  if (txn.Signers != null) {
485
498
  throw new XrplError('Must not have `Signers` in inner Batch transaction.')
486
499
  }