xrpl 4.4.0-smartescrow.0 → 4.4.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 (195) 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 +407 -268
  4. package/build/xrpl-latest.js.map +1 -1
  5. package/dist/npm/Wallet/defaultFaucets.d.ts +1 -2
  6. package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
  7. package/dist/npm/Wallet/defaultFaucets.js +0 -3
  8. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  9. package/dist/npm/models/common/index.d.ts +16 -0
  10. package/dist/npm/models/common/index.d.ts.map +1 -1
  11. package/dist/npm/models/ledger/AccountRoot.d.ts +3 -1
  12. package/dist/npm/models/ledger/AccountRoot.d.ts.map +1 -1
  13. package/dist/npm/models/ledger/AccountRoot.js +1 -0
  14. package/dist/npm/models/ledger/AccountRoot.js.map +1 -1
  15. package/dist/npm/models/ledger/DirectoryNode.d.ts +1 -0
  16. package/dist/npm/models/ledger/DirectoryNode.d.ts.map +1 -1
  17. package/dist/npm/models/ledger/Escrow.d.ts +2 -2
  18. package/dist/npm/models/ledger/Escrow.d.ts.map +1 -1
  19. package/dist/npm/models/ledger/FeeSettings.d.ts +0 -2
  20. package/dist/npm/models/ledger/FeeSettings.d.ts.map +1 -1
  21. package/dist/npm/models/ledger/MPToken.d.ts +1 -0
  22. package/dist/npm/models/ledger/MPToken.d.ts.map +1 -1
  23. package/dist/npm/models/ledger/MPTokenIssuance.d.ts +1 -0
  24. package/dist/npm/models/ledger/MPTokenIssuance.d.ts.map +1 -1
  25. package/dist/npm/models/ledger/Offer.d.ts +10 -1
  26. package/dist/npm/models/ledger/Offer.d.ts.map +1 -1
  27. package/dist/npm/models/ledger/Offer.js +1 -0
  28. package/dist/npm/models/ledger/Offer.js.map +1 -1
  29. package/dist/npm/models/methods/bookOffers.d.ts +1 -0
  30. package/dist/npm/models/methods/bookOffers.d.ts.map +1 -1
  31. package/dist/npm/models/methods/pathFind.d.ts +2 -0
  32. package/dist/npm/models/methods/pathFind.d.ts.map +1 -1
  33. package/dist/npm/models/methods/ripplePathFind.d.ts +1 -0
  34. package/dist/npm/models/methods/ripplePathFind.d.ts.map +1 -1
  35. package/dist/npm/models/methods/serverInfo.d.ts +0 -6
  36. package/dist/npm/models/methods/serverInfo.d.ts.map +1 -1
  37. package/dist/npm/models/methods/serverState.d.ts +0 -6
  38. package/dist/npm/models/methods/serverState.d.ts.map +1 -1
  39. package/dist/npm/models/methods/subscribe.d.ts +4 -0
  40. package/dist/npm/models/methods/subscribe.d.ts.map +1 -1
  41. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +1 -1
  42. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  43. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js +14 -5
  44. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  45. package/dist/npm/models/transactions/accountSet.d.ts +2 -1
  46. package/dist/npm/models/transactions/accountSet.d.ts.map +1 -1
  47. package/dist/npm/models/transactions/accountSet.js +1 -0
  48. package/dist/npm/models/transactions/accountSet.js.map +1 -1
  49. package/dist/npm/models/transactions/common.d.ts +4 -0
  50. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  51. package/dist/npm/models/transactions/common.js +134 -1
  52. package/dist/npm/models/transactions/common.js.map +1 -1
  53. package/dist/npm/models/transactions/escrowCreate.d.ts +2 -3
  54. package/dist/npm/models/transactions/escrowCreate.d.ts.map +1 -1
  55. package/dist/npm/models/transactions/escrowCreate.js +3 -10
  56. package/dist/npm/models/transactions/escrowCreate.js.map +1 -1
  57. package/dist/npm/models/transactions/escrowFinish.d.ts +0 -1
  58. package/dist/npm/models/transactions/escrowFinish.d.ts.map +1 -1
  59. package/dist/npm/models/transactions/escrowFinish.js.map +1 -1
  60. package/dist/npm/models/transactions/index.d.ts +1 -1
  61. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  62. package/dist/npm/models/transactions/index.js +2 -1
  63. package/dist/npm/models/transactions/index.js.map +1 -1
  64. package/dist/npm/models/transactions/offerCreate.d.ts +4 -1
  65. package/dist/npm/models/transactions/offerCreate.d.ts.map +1 -1
  66. package/dist/npm/models/transactions/offerCreate.js +10 -0
  67. package/dist/npm/models/transactions/offerCreate.js.map +1 -1
  68. package/dist/npm/models/transactions/payment.d.ts +1 -0
  69. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  70. package/dist/npm/models/transactions/payment.js +4 -3
  71. package/dist/npm/models/transactions/payment.js.map +1 -1
  72. package/dist/npm/models/transactions/vaultCreate.d.ts.map +1 -1
  73. package/dist/npm/models/transactions/vaultCreate.js +13 -4
  74. package/dist/npm/models/transactions/vaultCreate.js.map +1 -1
  75. package/dist/npm/models/transactions/vaultDeposit.d.ts +2 -2
  76. package/dist/npm/models/transactions/vaultDeposit.d.ts.map +1 -1
  77. package/dist/npm/models/transactions/vaultDeposit.js.map +1 -1
  78. package/dist/npm/models/transactions/vaultWithdraw.d.ts +2 -2
  79. package/dist/npm/models/transactions/vaultWithdraw.d.ts.map +1 -1
  80. package/dist/npm/models/transactions/vaultWithdraw.js.map +1 -1
  81. package/dist/npm/snippets/src/permissionedDEX.d.ts +2 -0
  82. package/dist/npm/snippets/src/permissionedDEX.d.ts.map +1 -0
  83. package/dist/npm/snippets/src/permissionedDEX.js +173 -0
  84. package/dist/npm/snippets/src/permissionedDEX.js.map +1 -0
  85. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  86. package/dist/npm/src/Wallet/defaultFaucets.d.ts +1 -2
  87. package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
  88. package/dist/npm/src/Wallet/defaultFaucets.js +0 -3
  89. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  90. package/dist/npm/src/models/common/index.d.ts +16 -0
  91. package/dist/npm/src/models/common/index.d.ts.map +1 -1
  92. package/dist/npm/src/models/ledger/AccountRoot.d.ts +3 -1
  93. package/dist/npm/src/models/ledger/AccountRoot.d.ts.map +1 -1
  94. package/dist/npm/src/models/ledger/AccountRoot.js +1 -0
  95. package/dist/npm/src/models/ledger/AccountRoot.js.map +1 -1
  96. package/dist/npm/src/models/ledger/DirectoryNode.d.ts +1 -0
  97. package/dist/npm/src/models/ledger/DirectoryNode.d.ts.map +1 -1
  98. package/dist/npm/src/models/ledger/Escrow.d.ts +2 -2
  99. package/dist/npm/src/models/ledger/Escrow.d.ts.map +1 -1
  100. package/dist/npm/src/models/ledger/FeeSettings.d.ts +0 -2
  101. package/dist/npm/src/models/ledger/FeeSettings.d.ts.map +1 -1
  102. package/dist/npm/src/models/ledger/MPToken.d.ts +1 -0
  103. package/dist/npm/src/models/ledger/MPToken.d.ts.map +1 -1
  104. package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts +1 -0
  105. package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts.map +1 -1
  106. package/dist/npm/src/models/ledger/Offer.d.ts +10 -1
  107. package/dist/npm/src/models/ledger/Offer.d.ts.map +1 -1
  108. package/dist/npm/src/models/ledger/Offer.js +1 -0
  109. package/dist/npm/src/models/ledger/Offer.js.map +1 -1
  110. package/dist/npm/src/models/methods/bookOffers.d.ts +1 -0
  111. package/dist/npm/src/models/methods/bookOffers.d.ts.map +1 -1
  112. package/dist/npm/src/models/methods/pathFind.d.ts +2 -0
  113. package/dist/npm/src/models/methods/pathFind.d.ts.map +1 -1
  114. package/dist/npm/src/models/methods/ripplePathFind.d.ts +1 -0
  115. package/dist/npm/src/models/methods/ripplePathFind.d.ts.map +1 -1
  116. package/dist/npm/src/models/methods/serverInfo.d.ts +0 -6
  117. package/dist/npm/src/models/methods/serverInfo.d.ts.map +1 -1
  118. package/dist/npm/src/models/methods/serverState.d.ts +0 -6
  119. package/dist/npm/src/models/methods/serverState.d.ts.map +1 -1
  120. package/dist/npm/src/models/methods/subscribe.d.ts +4 -0
  121. package/dist/npm/src/models/methods/subscribe.d.ts.map +1 -1
  122. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +1 -1
  123. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  124. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js +14 -5
  125. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  126. package/dist/npm/src/models/transactions/accountSet.d.ts +2 -1
  127. package/dist/npm/src/models/transactions/accountSet.d.ts.map +1 -1
  128. package/dist/npm/src/models/transactions/accountSet.js +1 -0
  129. package/dist/npm/src/models/transactions/accountSet.js.map +1 -1
  130. package/dist/npm/src/models/transactions/common.d.ts +4 -0
  131. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  132. package/dist/npm/src/models/transactions/common.js +134 -1
  133. package/dist/npm/src/models/transactions/common.js.map +1 -1
  134. package/dist/npm/src/models/transactions/escrowCreate.d.ts +2 -3
  135. package/dist/npm/src/models/transactions/escrowCreate.d.ts.map +1 -1
  136. package/dist/npm/src/models/transactions/escrowCreate.js +3 -10
  137. package/dist/npm/src/models/transactions/escrowCreate.js.map +1 -1
  138. package/dist/npm/src/models/transactions/escrowFinish.d.ts +0 -1
  139. package/dist/npm/src/models/transactions/escrowFinish.d.ts.map +1 -1
  140. package/dist/npm/src/models/transactions/escrowFinish.js.map +1 -1
  141. package/dist/npm/src/models/transactions/index.d.ts +1 -1
  142. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  143. package/dist/npm/src/models/transactions/index.js +2 -1
  144. package/dist/npm/src/models/transactions/index.js.map +1 -1
  145. package/dist/npm/src/models/transactions/offerCreate.d.ts +4 -1
  146. package/dist/npm/src/models/transactions/offerCreate.d.ts.map +1 -1
  147. package/dist/npm/src/models/transactions/offerCreate.js +10 -0
  148. package/dist/npm/src/models/transactions/offerCreate.js.map +1 -1
  149. package/dist/npm/src/models/transactions/payment.d.ts +1 -0
  150. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  151. package/dist/npm/src/models/transactions/payment.js +4 -3
  152. package/dist/npm/src/models/transactions/payment.js.map +1 -1
  153. package/dist/npm/src/models/transactions/vaultCreate.d.ts.map +1 -1
  154. package/dist/npm/src/models/transactions/vaultCreate.js +13 -4
  155. package/dist/npm/src/models/transactions/vaultCreate.js.map +1 -1
  156. package/dist/npm/src/models/transactions/vaultDeposit.d.ts +2 -2
  157. package/dist/npm/src/models/transactions/vaultDeposit.d.ts.map +1 -1
  158. package/dist/npm/src/models/transactions/vaultDeposit.js.map +1 -1
  159. package/dist/npm/src/models/transactions/vaultWithdraw.d.ts +2 -2
  160. package/dist/npm/src/models/transactions/vaultWithdraw.d.ts.map +1 -1
  161. package/dist/npm/src/models/transactions/vaultWithdraw.js.map +1 -1
  162. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  163. package/dist/npm/src/sugar/autofill.js +11 -32
  164. package/dist/npm/src/sugar/autofill.js.map +1 -1
  165. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  166. package/dist/npm/sugar/autofill.js +11 -32
  167. package/dist/npm/sugar/autofill.js.map +1 -1
  168. package/package.json +4 -4
  169. package/src/Wallet/defaultFaucets.ts +0 -5
  170. package/src/models/common/index.ts +25 -0
  171. package/src/models/ledger/AccountRoot.ts +10 -0
  172. package/src/models/ledger/DirectoryNode.ts +3 -0
  173. package/src/models/ledger/Escrow.ts +12 -3
  174. package/src/models/ledger/FeeSettings.ts +0 -4
  175. package/src/models/ledger/MPToken.ts +1 -0
  176. package/src/models/ledger/MPTokenIssuance.ts +1 -0
  177. package/src/models/ledger/Offer.ts +21 -0
  178. package/src/models/methods/bookOffers.ts +7 -0
  179. package/src/models/methods/pathFind.ts +10 -0
  180. package/src/models/methods/ripplePathFind.ts +5 -0
  181. package/src/models/methods/serverInfo.ts +0 -9
  182. package/src/models/methods/serverState.ts +0 -10
  183. package/src/models/methods/subscribe.ts +21 -0
  184. package/src/models/transactions/MPTokenIssuanceCreate.ts +33 -10
  185. package/src/models/transactions/accountSet.ts +2 -0
  186. package/src/models/transactions/common.ts +236 -1
  187. package/src/models/transactions/escrowCreate.ts +10 -22
  188. package/src/models/transactions/escrowFinish.ts +0 -2
  189. package/src/models/transactions/index.ts +1 -1
  190. package/src/models/transactions/offerCreate.ts +25 -0
  191. package/src/models/transactions/payment.ts +18 -6
  192. package/src/models/transactions/vaultCreate.ts +30 -6
  193. package/src/models/transactions/vaultDeposit.ts +3 -2
  194. package/src/models/transactions/vaultWithdraw.ts +3 -2
  195. package/src/sugar/autofill.ts +25 -39
@@ -19,8 +19,6 @@ 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
-
24
22
  /**
25
23
  * Determines whether the source rippled version is not later than the target rippled version.
26
24
  * Example usage: isNotLaterRippledVersion('1.10.0', '1.11.0') returns true.
@@ -260,17 +258,6 @@ async function fetchOwnerReserveFee(client: Client): Promise<BigNumber> {
260
258
  return new BigNumber(fee)
261
259
  }
262
260
 
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
-
274
261
  /**
275
262
  * Calculates the fee per transaction type.
276
263
  *
@@ -279,40 +266,30 @@ async function fetchGasPrice(client: Client): Promise<BigNumber> {
279
266
  * @param [signersCount=0] - The number of signers (default is 0). Only used for multisigning.
280
267
  * @returns A promise that returns the fee.
281
268
  */
282
- // eslint-disable-next-line max-lines-per-function -- needed here due to the complexity of the fee calculation
269
+
283
270
  async function calculateFeePerTransactionType(
284
271
  client: Client,
285
272
  tx: Transaction,
286
273
  signersCount = 0,
287
274
  ): Promise<BigNumber> {
288
275
  const netFeeXRP = await getFeeXrp(client)
289
- const netFeeDrops = new BigNumber(xrpToDrops(netFeeXRP))
290
- let baseFee = netFeeDrops
276
+ const netFeeDrops = xrpToDrops(netFeeXRP)
277
+ let baseFee = new BigNumber(netFeeDrops)
291
278
 
292
279
  const isSpecialTxCost = ['AccountDelete', 'AMMCreate'].includes(
293
280
  tx.TransactionType,
294
281
  )
295
282
 
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
- }
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)
316
293
  } else if (tx.TransactionType === 'Batch') {
317
294
  const rawTxFees = await tx.RawTransactions.reduce(async (acc, rawTxn) => {
318
295
  const resolvedAcc = await acc
@@ -323,8 +300,6 @@ async function calculateFeePerTransactionType(
323
300
  return BigNumber.sum(resolvedAcc, fee)
324
301
  }, Promise.resolve(new BigNumber(0)))
325
302
  baseFee = BigNumber.sum(baseFee.times(2), rawTxFees)
326
- } else if (isSpecialTxCost) {
327
- baseFee = await fetchOwnerReserveFee(client)
328
303
  }
329
304
 
330
305
  /*
@@ -332,7 +307,7 @@ async function calculateFeePerTransactionType(
332
307
  * BaseFee × (1 + Number of Signatures Provided)
333
308
  */
334
309
  if (signersCount > 0) {
335
- baseFee = BigNumber.sum(baseFee, netFeeDrops.multipliedBy(signersCount))
310
+ baseFee = BigNumber.sum(baseFee, scaleValue(netFeeDrops, signersCount))
336
311
  }
337
312
 
338
313
  const maxFeeDrops = xrpToDrops(client.maxFeeXRP)
@@ -362,6 +337,17 @@ export async function getTransactionFee(
362
337
  tx.Fee = fee.toString(10)
363
338
  }
364
339
 
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
+
365
351
  /**
366
352
  * Sets the latest validated ledger sequence for the transaction.
367
353
  *