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.
- package/build/xrpl-latest-min.js +1 -1
- package/build/xrpl-latest-min.js.map +1 -1
- package/build/xrpl-latest.js +1293 -1596
- package/build/xrpl-latest.js.map +1 -1
- package/dist/npm/Wallet/defaultFaucets.d.ts +2 -1
- package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
- package/dist/npm/Wallet/defaultFaucets.js +3 -0
- package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
- package/dist/npm/client/index.d.ts +3 -3
- package/dist/npm/client/index.d.ts.map +1 -1
- package/dist/npm/client/index.js +10 -7
- package/dist/npm/client/index.js.map +1 -1
- package/dist/npm/client/partialPayment.d.ts.map +1 -1
- package/dist/npm/client/partialPayment.js +2 -2
- package/dist/npm/client/partialPayment.js.map +1 -1
- package/dist/npm/models/common/index.d.ts +1 -0
- package/dist/npm/models/common/index.d.ts.map +1 -1
- package/dist/npm/models/ledger/AccountRoot.d.ts +1 -1
- package/dist/npm/models/ledger/AccountRoot.d.ts.map +1 -1
- package/dist/npm/models/ledger/Escrow.d.ts +2 -0
- package/dist/npm/models/ledger/Escrow.d.ts.map +1 -1
- package/dist/npm/models/ledger/FeeSettings.d.ts +2 -0
- package/dist/npm/models/ledger/FeeSettings.d.ts.map +1 -1
- package/dist/npm/models/ledger/LedgerEntry.d.ts +3 -2
- package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
- package/dist/npm/models/ledger/Vault.d.ts +21 -0
- package/dist/npm/models/ledger/Vault.d.ts.map +1 -0
- package/dist/npm/models/ledger/Vault.js +3 -0
- package/dist/npm/models/ledger/Vault.js.map +1 -0
- package/dist/npm/models/ledger/index.d.ts +2 -1
- package/dist/npm/models/ledger/index.d.ts.map +1 -1
- package/dist/npm/models/ledger/index.js.map +1 -1
- package/dist/npm/models/methods/index.d.ts +5 -4
- package/dist/npm/models/methods/index.d.ts.map +1 -1
- package/dist/npm/models/methods/serverInfo.d.ts +6 -0
- package/dist/npm/models/methods/serverInfo.d.ts.map +1 -1
- package/dist/npm/models/methods/serverState.d.ts +6 -0
- package/dist/npm/models/methods/serverState.d.ts.map +1 -1
- package/dist/npm/models/methods/vaultInfo.d.ts +46 -0
- package/dist/npm/models/methods/vaultInfo.d.ts.map +1 -0
- package/dist/npm/models/methods/vaultInfo.js +3 -0
- package/dist/npm/models/methods/vaultInfo.js.map +1 -0
- package/dist/npm/models/transactions/AMMBid.d.ts.map +1 -1
- package/dist/npm/models/transactions/AMMBid.js +7 -5
- package/dist/npm/models/transactions/AMMBid.js.map +1 -1
- package/dist/npm/models/transactions/AMMClawback.d.ts.map +1 -1
- package/dist/npm/models/transactions/AMMClawback.js +5 -6
- package/dist/npm/models/transactions/AMMClawback.js.map +1 -1
- package/dist/npm/models/transactions/AMMDelete.d.ts.map +1 -1
- package/dist/npm/models/transactions/AMMDelete.js +2 -2
- package/dist/npm/models/transactions/AMMDelete.js.map +1 -1
- package/dist/npm/models/transactions/AMMDeposit.js +3 -3
- package/dist/npm/models/transactions/AMMDeposit.js.map +1 -1
- package/dist/npm/models/transactions/AMMVote.d.ts.map +1 -1
- package/dist/npm/models/transactions/AMMVote.js +2 -2
- package/dist/npm/models/transactions/AMMVote.js.map +1 -1
- package/dist/npm/models/transactions/AMMWithdraw.js +3 -3
- package/dist/npm/models/transactions/AMMWithdraw.js.map +1 -1
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.js +3 -3
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
- package/dist/npm/models/transactions/MPTokenIssuanceSet.js +4 -4
- package/dist/npm/models/transactions/MPTokenIssuanceSet.js.map +1 -1
- package/dist/npm/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
- package/dist/npm/models/transactions/NFTokenCancelOffer.js +1 -1
- package/dist/npm/models/transactions/NFTokenCancelOffer.js.map +1 -1
- package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
- package/dist/npm/models/transactions/NFTokenCreateOffer.js +6 -2
- package/dist/npm/models/transactions/NFTokenCreateOffer.js.map +1 -1
- package/dist/npm/models/transactions/checkCreate.d.ts.map +1 -1
- package/dist/npm/models/transactions/checkCreate.js +1 -2
- package/dist/npm/models/transactions/checkCreate.js.map +1 -1
- package/dist/npm/models/transactions/clawback.d.ts +2 -2
- package/dist/npm/models/transactions/clawback.d.ts.map +1 -1
- package/dist/npm/models/transactions/clawback.js +4 -6
- package/dist/npm/models/transactions/clawback.js.map +1 -1
- package/dist/npm/models/transactions/common.d.ts +9 -4
- package/dist/npm/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/models/transactions/common.js +51 -28
- package/dist/npm/models/transactions/common.js.map +1 -1
- package/dist/npm/models/transactions/escrowCreate.d.ts +2 -0
- package/dist/npm/models/transactions/escrowCreate.d.ts.map +1 -1
- package/dist/npm/models/transactions/escrowCreate.js +4 -2
- package/dist/npm/models/transactions/escrowCreate.js.map +1 -1
- package/dist/npm/models/transactions/escrowFinish.d.ts +1 -0
- package/dist/npm/models/transactions/escrowFinish.d.ts.map +1 -1
- package/dist/npm/models/transactions/escrowFinish.js.map +1 -1
- package/dist/npm/models/transactions/index.d.ts +8 -2
- package/dist/npm/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/models/transactions/index.js +4 -1
- package/dist/npm/models/transactions/index.js.map +1 -1
- package/dist/npm/models/transactions/oracleSet.d.ts.map +1 -1
- package/dist/npm/models/transactions/oracleSet.js +22 -21
- package/dist/npm/models/transactions/oracleSet.js.map +1 -1
- package/dist/npm/models/transactions/payment.d.ts +1 -0
- package/dist/npm/models/transactions/payment.d.ts.map +1 -1
- package/dist/npm/models/transactions/payment.js +6 -4
- package/dist/npm/models/transactions/payment.js.map +1 -1
- package/dist/npm/models/transactions/signerListSet.d.ts.map +1 -1
- package/dist/npm/models/transactions/signerListSet.js +10 -16
- package/dist/npm/models/transactions/signerListSet.js.map +1 -1
- package/dist/npm/models/transactions/transaction.d.ts +7 -1
- package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/models/transactions/transaction.js +28 -35
- package/dist/npm/models/transactions/transaction.js.map +1 -1
- package/dist/npm/models/transactions/vaultClawback.d.ts +10 -0
- package/dist/npm/models/transactions/vaultClawback.d.ts.map +1 -0
- package/dist/npm/models/transactions/vaultClawback.js +12 -0
- package/dist/npm/models/transactions/vaultClawback.js.map +1 -0
- package/dist/npm/models/transactions/vaultCreate.d.ts +24 -0
- package/dist/npm/models/transactions/vaultCreate.d.ts.map +1 -0
- package/dist/npm/models/transactions/vaultCreate.js +51 -0
- package/dist/npm/models/transactions/vaultCreate.js.map +1 -0
- package/dist/npm/models/transactions/vaultDelete.d.ts +7 -0
- package/dist/npm/models/transactions/vaultDelete.d.ts.map +1 -0
- package/dist/npm/models/transactions/vaultDelete.js +10 -0
- package/dist/npm/models/transactions/vaultDelete.js.map +1 -0
- package/dist/npm/models/transactions/vaultDeposit.d.ts +9 -0
- package/dist/npm/models/transactions/vaultDeposit.d.ts.map +1 -0
- package/dist/npm/models/transactions/vaultDeposit.js +11 -0
- package/dist/npm/models/transactions/vaultDeposit.js.map +1 -0
- package/dist/npm/models/transactions/vaultSet.d.ts +10 -0
- package/dist/npm/models/transactions/vaultSet.d.ts.map +1 -0
- package/dist/npm/models/transactions/vaultSet.js +25 -0
- package/dist/npm/models/transactions/vaultSet.js.map +1 -0
- package/dist/npm/models/transactions/vaultWithdraw.d.ts +10 -0
- package/dist/npm/models/transactions/vaultWithdraw.d.ts.map +1 -0
- package/dist/npm/models/transactions/vaultWithdraw.js +12 -0
- package/dist/npm/models/transactions/vaultWithdraw.js.map +1 -0
- package/dist/npm/models/utils/flags.d.ts.map +1 -1
- package/dist/npm/models/utils/flags.js +2 -0
- package/dist/npm/models/utils/flags.js.map +1 -1
- package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
- package/dist/npm/src/Wallet/defaultFaucets.d.ts +2 -1
- package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
- package/dist/npm/src/Wallet/defaultFaucets.js +3 -0
- package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
- package/dist/npm/src/client/index.d.ts +3 -3
- package/dist/npm/src/client/index.d.ts.map +1 -1
- package/dist/npm/src/client/index.js +10 -7
- package/dist/npm/src/client/index.js.map +1 -1
- package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
- package/dist/npm/src/client/partialPayment.js +2 -2
- package/dist/npm/src/client/partialPayment.js.map +1 -1
- package/dist/npm/src/models/common/index.d.ts +1 -0
- package/dist/npm/src/models/common/index.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/AccountRoot.d.ts +1 -1
- package/dist/npm/src/models/ledger/AccountRoot.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/Escrow.d.ts +2 -0
- package/dist/npm/src/models/ledger/Escrow.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/FeeSettings.d.ts +2 -0
- package/dist/npm/src/models/ledger/FeeSettings.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/LedgerEntry.d.ts +3 -2
- package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/Vault.d.ts +21 -0
- package/dist/npm/src/models/ledger/Vault.d.ts.map +1 -0
- package/dist/npm/src/models/ledger/Vault.js +3 -0
- package/dist/npm/src/models/ledger/Vault.js.map +1 -0
- package/dist/npm/src/models/ledger/index.d.ts +2 -1
- package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/index.js.map +1 -1
- package/dist/npm/src/models/methods/index.d.ts +5 -4
- package/dist/npm/src/models/methods/index.d.ts.map +1 -1
- package/dist/npm/src/models/methods/serverInfo.d.ts +6 -0
- package/dist/npm/src/models/methods/serverInfo.d.ts.map +1 -1
- package/dist/npm/src/models/methods/serverState.d.ts +6 -0
- package/dist/npm/src/models/methods/serverState.d.ts.map +1 -1
- package/dist/npm/src/models/methods/vaultInfo.d.ts +46 -0
- package/dist/npm/src/models/methods/vaultInfo.d.ts.map +1 -0
- package/dist/npm/src/models/methods/vaultInfo.js +3 -0
- package/dist/npm/src/models/methods/vaultInfo.js.map +1 -0
- package/dist/npm/src/models/transactions/AMMBid.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/AMMBid.js +7 -5
- package/dist/npm/src/models/transactions/AMMBid.js.map +1 -1
- package/dist/npm/src/models/transactions/AMMClawback.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/AMMClawback.js +5 -6
- package/dist/npm/src/models/transactions/AMMClawback.js.map +1 -1
- package/dist/npm/src/models/transactions/AMMDelete.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/AMMDelete.js +2 -2
- package/dist/npm/src/models/transactions/AMMDelete.js.map +1 -1
- package/dist/npm/src/models/transactions/AMMDeposit.js +3 -3
- package/dist/npm/src/models/transactions/AMMDeposit.js.map +1 -1
- package/dist/npm/src/models/transactions/AMMVote.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/AMMVote.js +2 -2
- package/dist/npm/src/models/transactions/AMMVote.js.map +1 -1
- package/dist/npm/src/models/transactions/AMMWithdraw.js +3 -3
- package/dist/npm/src/models/transactions/AMMWithdraw.js.map +1 -1
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js +3 -3
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js +4 -4
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js.map +1 -1
- package/dist/npm/src/models/transactions/NFTokenCancelOffer.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/NFTokenCancelOffer.js +1 -1
- package/dist/npm/src/models/transactions/NFTokenCancelOffer.js.map +1 -1
- package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/NFTokenCreateOffer.js +6 -2
- package/dist/npm/src/models/transactions/NFTokenCreateOffer.js.map +1 -1
- package/dist/npm/src/models/transactions/checkCreate.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/checkCreate.js +1 -2
- package/dist/npm/src/models/transactions/checkCreate.js.map +1 -1
- package/dist/npm/src/models/transactions/clawback.d.ts +2 -2
- package/dist/npm/src/models/transactions/clawback.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/clawback.js +4 -6
- package/dist/npm/src/models/transactions/clawback.js.map +1 -1
- package/dist/npm/src/models/transactions/common.d.ts +9 -4
- package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/common.js +51 -28
- package/dist/npm/src/models/transactions/common.js.map +1 -1
- package/dist/npm/src/models/transactions/escrowCreate.d.ts +2 -0
- package/dist/npm/src/models/transactions/escrowCreate.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/escrowCreate.js +4 -2
- package/dist/npm/src/models/transactions/escrowCreate.js.map +1 -1
- package/dist/npm/src/models/transactions/escrowFinish.d.ts +1 -0
- package/dist/npm/src/models/transactions/escrowFinish.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/escrowFinish.js.map +1 -1
- package/dist/npm/src/models/transactions/index.d.ts +8 -2
- package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/index.js +4 -1
- package/dist/npm/src/models/transactions/index.js.map +1 -1
- package/dist/npm/src/models/transactions/oracleSet.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/oracleSet.js +22 -21
- package/dist/npm/src/models/transactions/oracleSet.js.map +1 -1
- package/dist/npm/src/models/transactions/payment.d.ts +1 -0
- package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/payment.js +6 -4
- package/dist/npm/src/models/transactions/payment.js.map +1 -1
- package/dist/npm/src/models/transactions/signerListSet.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/signerListSet.js +10 -16
- package/dist/npm/src/models/transactions/signerListSet.js.map +1 -1
- package/dist/npm/src/models/transactions/transaction.d.ts +7 -1
- package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/transaction.js +28 -35
- package/dist/npm/src/models/transactions/transaction.js.map +1 -1
- package/dist/npm/src/models/transactions/vaultClawback.d.ts +10 -0
- package/dist/npm/src/models/transactions/vaultClawback.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/vaultClawback.js +12 -0
- package/dist/npm/src/models/transactions/vaultClawback.js.map +1 -0
- package/dist/npm/src/models/transactions/vaultCreate.d.ts +24 -0
- package/dist/npm/src/models/transactions/vaultCreate.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/vaultCreate.js +51 -0
- package/dist/npm/src/models/transactions/vaultCreate.js.map +1 -0
- package/dist/npm/src/models/transactions/vaultDelete.d.ts +7 -0
- package/dist/npm/src/models/transactions/vaultDelete.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/vaultDelete.js +10 -0
- package/dist/npm/src/models/transactions/vaultDelete.js.map +1 -0
- package/dist/npm/src/models/transactions/vaultDeposit.d.ts +9 -0
- package/dist/npm/src/models/transactions/vaultDeposit.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/vaultDeposit.js +11 -0
- package/dist/npm/src/models/transactions/vaultDeposit.js.map +1 -0
- package/dist/npm/src/models/transactions/vaultSet.d.ts +10 -0
- package/dist/npm/src/models/transactions/vaultSet.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/vaultSet.js +25 -0
- package/dist/npm/src/models/transactions/vaultSet.js.map +1 -0
- package/dist/npm/src/models/transactions/vaultWithdraw.d.ts +10 -0
- package/dist/npm/src/models/transactions/vaultWithdraw.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/vaultWithdraw.js +12 -0
- package/dist/npm/src/models/transactions/vaultWithdraw.js.map +1 -0
- package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
- package/dist/npm/src/models/utils/flags.js +2 -0
- package/dist/npm/src/models/utils/flags.js.map +1 -1
- package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
- package/dist/npm/src/sugar/autofill.js +32 -11
- package/dist/npm/src/sugar/autofill.js.map +1 -1
- package/dist/npm/sugar/autofill.d.ts.map +1 -1
- package/dist/npm/sugar/autofill.js +32 -11
- package/dist/npm/sugar/autofill.js.map +1 -1
- package/package.json +5 -4
- package/src/Wallet/defaultFaucets.ts +5 -0
- package/src/client/index.ts +43 -38
- package/src/client/partialPayment.ts +1 -2
- package/src/models/common/index.ts +2 -0
- package/src/models/ledger/AccountRoot.ts +1 -1
- package/src/models/ledger/Escrow.ts +4 -0
- package/src/models/ledger/FeeSettings.ts +4 -0
- package/src/models/ledger/LedgerEntry.ts +3 -0
- package/src/models/ledger/Vault.ts +83 -0
- package/src/models/ledger/index.ts +3 -1
- package/src/models/methods/index.ts +10 -0
- package/src/models/methods/serverInfo.ts +9 -0
- package/src/models/methods/serverState.ts +10 -0
- package/src/models/methods/vaultInfo.ts +193 -0
- package/src/models/transactions/AMMBid.ts +12 -20
- package/src/models/transactions/AMMClawback.ts +8 -11
- package/src/models/transactions/AMMDelete.ts +7 -3
- package/src/models/transactions/AMMDeposit.ts +4 -4
- package/src/models/transactions/AMMVote.ts +7 -3
- package/src/models/transactions/AMMWithdraw.ts +4 -4
- package/src/models/transactions/MPTokenIssuanceCreate.ts +3 -1
- package/src/models/transactions/MPTokenIssuanceSet.ts +1 -1
- package/src/models/transactions/NFTokenCancelOffer.ts +2 -2
- package/src/models/transactions/NFTokenCreateOffer.ts +8 -4
- package/src/models/transactions/checkCreate.ts +2 -6
- package/src/models/transactions/clawback.ts +9 -10
- package/src/models/transactions/common.ts +114 -41
- package/src/models/transactions/escrowCreate.ts +10 -2
- package/src/models/transactions/escrowFinish.ts +2 -0
- package/src/models/transactions/index.ts +13 -2
- package/src/models/transactions/oracleSet.ts +32 -39
- package/src/models/transactions/payment.ts +13 -7
- package/src/models/transactions/signerListSet.ts +21 -21
- package/src/models/transactions/transaction.ts +46 -43
- package/src/models/transactions/vaultClawback.ts +55 -0
- package/src/models/transactions/vaultCreate.ts +142 -0
- package/src/models/transactions/vaultDelete.ts +32 -0
- package/src/models/transactions/vaultDeposit.ts +41 -0
- package/src/models/transactions/vaultSet.ts +71 -0
- package/src/models/transactions/vaultWithdraw.ts +50 -0
- package/src/models/utils/flags.ts +2 -0
- package/src/sugar/autofill.ts +44 -31
package/src/sugar/autofill.ts
CHANGED
@@ -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 =
|
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
|
-
//
|
284
|
-
if (tx.TransactionType === '
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
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,
|
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
|
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
|
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
|
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
|
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
|
}
|