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
@@ -2,8 +2,6 @@
|
|
2
2
|
/* eslint-disable max-lines-per-function -- need to work with a lot of Tx verifications */
|
3
3
|
|
4
4
|
import { ValidationError } from '../../errors'
|
5
|
-
import { IssuedCurrencyAmount, Memo } from '../common'
|
6
|
-
import { isHex } from '../utils'
|
7
5
|
import { convertTxFlagsToNumber } from '../utils/flags'
|
8
6
|
|
9
7
|
import { AccountDelete, validateAccountDelete } from './accountDelete'
|
@@ -20,7 +18,11 @@ import { CheckCancel, validateCheckCancel } from './checkCancel'
|
|
20
18
|
import { CheckCash, validateCheckCash } from './checkCash'
|
21
19
|
import { CheckCreate, validateCheckCreate } from './checkCreate'
|
22
20
|
import { Clawback, validateClawback } from './clawback'
|
23
|
-
import {
|
21
|
+
import {
|
22
|
+
BaseTransaction,
|
23
|
+
isIssuedCurrencyAmount,
|
24
|
+
validateBaseTransaction,
|
25
|
+
} from './common'
|
24
26
|
import { CredentialAccept, validateCredentialAccept } from './CredentialAccept'
|
25
27
|
import { CredentialCreate, validateCredentialCreate } from './CredentialCreate'
|
26
28
|
import { CredentialDelete, validateCredentialDelete } from './CredentialDelete'
|
@@ -92,6 +94,12 @@ import { SignerListSet, validateSignerListSet } from './signerListSet'
|
|
92
94
|
import { TicketCreate, validateTicketCreate } from './ticketCreate'
|
93
95
|
import { TrustSet, validateTrustSet } from './trustSet'
|
94
96
|
import { UNLModify } from './UNLModify'
|
97
|
+
import { VaultClawback, validateVaultClawback } from './vaultClawback'
|
98
|
+
import { VaultCreate, validateVaultCreate } from './vaultCreate'
|
99
|
+
import { VaultDelete, validateVaultDelete } from './vaultDelete'
|
100
|
+
import { VaultDeposit, validateVaultDeposit } from './vaultDeposit'
|
101
|
+
import { VaultSet, validateVaultSet } from './vaultSet'
|
102
|
+
import { VaultWithdraw, validateVaultWithdraw } from './vaultWithdraw'
|
95
103
|
import {
|
96
104
|
XChainAccountCreateCommit,
|
97
105
|
validateXChainAccountCreateCommit,
|
@@ -173,6 +181,12 @@ export type SubmittableTransaction =
|
|
173
181
|
| SignerListSet
|
174
182
|
| TicketCreate
|
175
183
|
| TrustSet
|
184
|
+
| VaultClawback
|
185
|
+
| VaultCreate
|
186
|
+
| VaultDelete
|
187
|
+
| VaultDeposit
|
188
|
+
| VaultSet
|
189
|
+
| VaultWithdraw
|
176
190
|
| XChainAccountCreateCommit
|
177
191
|
| XChainAddAccountCreateAttestation
|
178
192
|
| XChainAddClaimAttestation
|
@@ -216,50 +230,15 @@ export interface TransactionAndMetadata<
|
|
216
230
|
*/
|
217
231
|
export function validate(transaction: Record<string, unknown>): void {
|
218
232
|
const tx = { ...transaction }
|
219
|
-
if (tx.TransactionType == null) {
|
220
|
-
throw new ValidationError('Object does not have a `TransactionType`')
|
221
|
-
}
|
222
|
-
if (typeof tx.TransactionType !== 'string') {
|
223
|
-
throw new ValidationError("Object's `TransactionType` is not a string")
|
224
|
-
}
|
225
|
-
|
226
|
-
/*
|
227
|
-
* - Memos have exclusively hex data.
|
228
|
-
*/
|
229
|
-
if (tx.Memos != null && typeof tx.Memos !== 'object') {
|
230
|
-
throw new ValidationError('Memo must be array')
|
231
|
-
}
|
232
|
-
if (tx.Memos != null) {
|
233
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- needed here
|
234
|
-
;(tx.Memos as Array<Memo | null>).forEach((memo) => {
|
235
|
-
if (memo?.Memo == null) {
|
236
|
-
throw new ValidationError('Memo data must be in a `Memo` field')
|
237
|
-
}
|
238
|
-
if (memo.Memo.MemoData) {
|
239
|
-
if (!isHex(memo.Memo.MemoData)) {
|
240
|
-
throw new ValidationError('MemoData field must be a hex value')
|
241
|
-
}
|
242
|
-
}
|
243
|
-
|
244
|
-
if (memo.Memo.MemoType) {
|
245
|
-
if (!isHex(memo.Memo.MemoType)) {
|
246
|
-
throw new ValidationError('MemoType field must be a hex value')
|
247
|
-
}
|
248
|
-
}
|
249
233
|
|
250
|
-
|
251
|
-
|
252
|
-
throw new ValidationError('MemoFormat field must be a hex value')
|
253
|
-
}
|
254
|
-
}
|
255
|
-
})
|
256
|
-
}
|
234
|
+
// should already be done in the tx-specific validation, but doesn't hurt to check again
|
235
|
+
validateBaseTransaction(tx)
|
257
236
|
|
258
237
|
Object.keys(tx).forEach((key) => {
|
259
238
|
const standard_currency_code_len = 3
|
260
|
-
|
261
|
-
|
262
|
-
const txCurrency =
|
239
|
+
const value = tx[key]
|
240
|
+
if (value && isIssuedCurrencyAmount(value)) {
|
241
|
+
const txCurrency = value.currency
|
263
242
|
|
264
243
|
if (
|
265
244
|
txCurrency.length === standard_currency_code_len &&
|
@@ -476,6 +455,30 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
476
455
|
validateTrustSet(tx)
|
477
456
|
break
|
478
457
|
|
458
|
+
case 'VaultClawback':
|
459
|
+
validateVaultClawback(tx)
|
460
|
+
break
|
461
|
+
|
462
|
+
case 'VaultCreate':
|
463
|
+
validateVaultCreate(tx)
|
464
|
+
break
|
465
|
+
|
466
|
+
case 'VaultDelete':
|
467
|
+
validateVaultDelete(tx)
|
468
|
+
break
|
469
|
+
|
470
|
+
case 'VaultDeposit':
|
471
|
+
validateVaultDeposit(tx)
|
472
|
+
break
|
473
|
+
|
474
|
+
case 'VaultSet':
|
475
|
+
validateVaultSet(tx)
|
476
|
+
break
|
477
|
+
|
478
|
+
case 'VaultWithdraw':
|
479
|
+
validateVaultWithdraw(tx)
|
480
|
+
break
|
481
|
+
|
479
482
|
case 'XChainAccountCreateCommit':
|
480
483
|
validateXChainAccountCreateCommit(tx)
|
481
484
|
break
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { ClawbackAmount } from '../common'
|
2
|
+
|
3
|
+
import {
|
4
|
+
BaseTransaction,
|
5
|
+
validateBaseTransaction,
|
6
|
+
validateRequiredField,
|
7
|
+
isString,
|
8
|
+
Account,
|
9
|
+
isAccount,
|
10
|
+
validateOptionalField,
|
11
|
+
isClawbackAmount,
|
12
|
+
} from './common'
|
13
|
+
|
14
|
+
/**
|
15
|
+
* The VaultClawback transaction performs a Clawback from the Vault, exchanging the shares of an account.
|
16
|
+
*
|
17
|
+
* Conceptually, the transaction performs VaultWithdraw on behalf of the Holder, sending the funds to the
|
18
|
+
* Issuer account of the asset. In case there are insufficient funds for the entire Amount the transaction
|
19
|
+
* will perform a partial Clawback, up to the Vault.AssetsAvailable. The Clawback transaction must respect
|
20
|
+
* any future fees or penalties.
|
21
|
+
*
|
22
|
+
* @category Transaction Models
|
23
|
+
*/
|
24
|
+
export interface VaultClawback extends BaseTransaction {
|
25
|
+
TransactionType: 'VaultClawback'
|
26
|
+
|
27
|
+
/**
|
28
|
+
* The ID of the vault from which assets are withdrawn.
|
29
|
+
*/
|
30
|
+
VaultID: string
|
31
|
+
|
32
|
+
/**
|
33
|
+
* The account ID from which to clawback the assets.
|
34
|
+
*/
|
35
|
+
Holder: Account
|
36
|
+
|
37
|
+
/**
|
38
|
+
* The asset amount to clawback. When Amount is 0 clawback all funds, up to the total shares the Holder owns.
|
39
|
+
*/
|
40
|
+
Amount?: ClawbackAmount
|
41
|
+
}
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Verify the form and type of a {@link VaultClawback} at runtime.
|
45
|
+
*
|
46
|
+
* @param tx - A {@link VaultClawback} Transaction.
|
47
|
+
* @throws When the {@link VaultClawback} is malformed.
|
48
|
+
*/
|
49
|
+
export function validateVaultClawback(tx: Record<string, unknown>): void {
|
50
|
+
validateBaseTransaction(tx)
|
51
|
+
|
52
|
+
validateRequiredField(tx, 'VaultID', isString)
|
53
|
+
validateRequiredField(tx, 'Holder', isAccount)
|
54
|
+
validateOptionalField(tx, 'Amount', isClawbackAmount)
|
55
|
+
}
|
@@ -0,0 +1,142 @@
|
|
1
|
+
import { ValidationError } from '../../errors'
|
2
|
+
import { Currency } from '../common'
|
3
|
+
import { hasFlag, isHex } from '../utils'
|
4
|
+
|
5
|
+
import {
|
6
|
+
BaseTransaction,
|
7
|
+
validateBaseTransaction,
|
8
|
+
GlobalFlagsInterface,
|
9
|
+
validateOptionalField,
|
10
|
+
isNumber,
|
11
|
+
isCurrency,
|
12
|
+
validateRequiredField,
|
13
|
+
isString,
|
14
|
+
VAULT_DATA_MAX_BYTE_LENGTH,
|
15
|
+
XRPLNumber,
|
16
|
+
isXRPLNumber,
|
17
|
+
} from './common'
|
18
|
+
|
19
|
+
const META_MAX_BYTE_LENGTH = 1024
|
20
|
+
|
21
|
+
/**
|
22
|
+
* Enum representing withdrawal strategies for a Vault.
|
23
|
+
*/
|
24
|
+
export enum VaultWithdrawalPolicy {
|
25
|
+
vaultStrategyFirstComeFirstServe = 0x0001,
|
26
|
+
}
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Enum representing values of {@link VaultCreate} transaction flags.
|
30
|
+
*
|
31
|
+
* @category Transaction Flags
|
32
|
+
*/
|
33
|
+
export enum VaultCreateFlags {
|
34
|
+
tfVaultPrivate = 0x00010000,
|
35
|
+
tfVaultShareNonTransferable = 0x00020000,
|
36
|
+
}
|
37
|
+
|
38
|
+
/**
|
39
|
+
* Map of flags to boolean values representing {@link VaultCreate} transaction
|
40
|
+
* flags.
|
41
|
+
*
|
42
|
+
* @category Transaction Flags
|
43
|
+
*/
|
44
|
+
export interface VaultCreateFlagsInterface extends GlobalFlagsInterface {
|
45
|
+
tfVaultPrivate?: boolean
|
46
|
+
tfVaultShareNonTransferable?: boolean
|
47
|
+
}
|
48
|
+
|
49
|
+
/**
|
50
|
+
* The VaultCreate transaction creates a new Vault object.
|
51
|
+
*
|
52
|
+
* @category Transaction Models
|
53
|
+
*/
|
54
|
+
export interface VaultCreate extends BaseTransaction {
|
55
|
+
TransactionType: 'VaultCreate'
|
56
|
+
|
57
|
+
/**
|
58
|
+
* The asset (XRP, IOU or MPT) of the Vault.
|
59
|
+
*/
|
60
|
+
Asset: Currency
|
61
|
+
|
62
|
+
/**
|
63
|
+
* Arbitrary Vault metadata, limited to 256 bytes.
|
64
|
+
*/
|
65
|
+
Data?: string
|
66
|
+
|
67
|
+
/**
|
68
|
+
* The maximum asset amount that can be held in a vault.
|
69
|
+
*/
|
70
|
+
AssetsMaximum?: XRPLNumber
|
71
|
+
|
72
|
+
/**
|
73
|
+
* Arbitrary metadata about the share MPT, in hex format, limited to 1024 bytes.
|
74
|
+
*/
|
75
|
+
MPTokenMetadata?: string
|
76
|
+
|
77
|
+
/**
|
78
|
+
* Indicates the withdrawal strategy used by the Vault.
|
79
|
+
*/
|
80
|
+
WithdrawalPolicy?: number
|
81
|
+
|
82
|
+
/**
|
83
|
+
* The PermissionedDomain object ID associated with the shares of this Vault.
|
84
|
+
*/
|
85
|
+
DomainID?: string
|
86
|
+
}
|
87
|
+
|
88
|
+
/**
|
89
|
+
* Verify the form and type of an {@link VaultCreate} at runtime.
|
90
|
+
*
|
91
|
+
* @param tx - A {@link VaultCreate} Transaction.
|
92
|
+
* @throws When the {@link VaultCreate} is malformed.
|
93
|
+
*/
|
94
|
+
// eslint-disable-next-line max-lines-per-function -- required to do all field validations
|
95
|
+
export function validateVaultCreate(tx: Record<string, unknown>): void {
|
96
|
+
validateBaseTransaction(tx)
|
97
|
+
|
98
|
+
validateRequiredField(tx, 'Asset', isCurrency)
|
99
|
+
validateOptionalField(tx, 'Data', isString)
|
100
|
+
validateOptionalField(tx, 'AssetsMaximum', isXRPLNumber)
|
101
|
+
validateOptionalField(tx, 'MPTokenMetadata', isString)
|
102
|
+
validateOptionalField(tx, 'WithdrawalPolicy', isNumber)
|
103
|
+
validateOptionalField(tx, 'DomainID', isString)
|
104
|
+
|
105
|
+
if (tx.Data !== undefined) {
|
106
|
+
const dataHex = tx.Data
|
107
|
+
if (!isHex(dataHex)) {
|
108
|
+
throw new ValidationError('VaultCreate: Data must be a valid hex string')
|
109
|
+
}
|
110
|
+
const dataByteLength = dataHex.length / 2
|
111
|
+
if (dataByteLength > VAULT_DATA_MAX_BYTE_LENGTH) {
|
112
|
+
throw new ValidationError(
|
113
|
+
`VaultCreate: Data exceeds ${VAULT_DATA_MAX_BYTE_LENGTH} bytes (actual: ${dataByteLength})`,
|
114
|
+
)
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
if (tx.MPTokenMetadata !== undefined) {
|
119
|
+
const metaHex = tx.MPTokenMetadata
|
120
|
+
if (!isHex(metaHex)) {
|
121
|
+
throw new ValidationError(
|
122
|
+
'VaultCreate: MPTokenMetadata must be a valid hex string',
|
123
|
+
)
|
124
|
+
}
|
125
|
+
const metaByteLength = metaHex.length / 2
|
126
|
+
if (metaByteLength > META_MAX_BYTE_LENGTH) {
|
127
|
+
throw new ValidationError(
|
128
|
+
`VaultCreate: MPTokenMetadata exceeds ${META_MAX_BYTE_LENGTH} bytes (actual: ${metaByteLength})`,
|
129
|
+
)
|
130
|
+
}
|
131
|
+
}
|
132
|
+
|
133
|
+
// If DomainID present, tfVaultPrivate must be set
|
134
|
+
if (
|
135
|
+
tx.DomainID !== undefined &&
|
136
|
+
!hasFlag(tx, VaultCreateFlags.tfVaultPrivate, 'tfVaultPrivate')
|
137
|
+
) {
|
138
|
+
throw new ValidationError(
|
139
|
+
'VaultCreate: Cannot set DomainID unless tfVaultPrivate flag is set.',
|
140
|
+
)
|
141
|
+
}
|
142
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import {
|
2
|
+
BaseTransaction,
|
3
|
+
validateBaseTransaction,
|
4
|
+
validateRequiredField,
|
5
|
+
isString,
|
6
|
+
} from './common'
|
7
|
+
|
8
|
+
/**
|
9
|
+
* The VaultDelete transaction deletes an existing vault object.
|
10
|
+
*
|
11
|
+
* @category Transaction Models
|
12
|
+
*/
|
13
|
+
export interface VaultDelete extends BaseTransaction {
|
14
|
+
TransactionType: 'VaultDelete'
|
15
|
+
|
16
|
+
/**
|
17
|
+
* The ID of the vault to be deleted.
|
18
|
+
*/
|
19
|
+
VaultID: string
|
20
|
+
}
|
21
|
+
|
22
|
+
/**
|
23
|
+
* Verify the form and type of a {@link VaultDelete} at runtime.
|
24
|
+
*
|
25
|
+
* @param tx - A {@link VaultDelete} Transaction.
|
26
|
+
* @throws When the {@link VaultDelete} is malformed.
|
27
|
+
*/
|
28
|
+
export function validateVaultDelete(tx: Record<string, unknown>): void {
|
29
|
+
validateBaseTransaction(tx)
|
30
|
+
|
31
|
+
validateRequiredField(tx, 'VaultID', isString)
|
32
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { Amount } from '../common'
|
2
|
+
|
3
|
+
import {
|
4
|
+
BaseTransaction,
|
5
|
+
validateBaseTransaction,
|
6
|
+
validateRequiredField,
|
7
|
+
isString,
|
8
|
+
isAmount,
|
9
|
+
} from './common'
|
10
|
+
|
11
|
+
/**
|
12
|
+
* The VaultDeposit transaction adds liqudity in exchange for vault shares.
|
13
|
+
*
|
14
|
+
* @category Transaction Models
|
15
|
+
*/
|
16
|
+
export interface VaultDeposit extends BaseTransaction {
|
17
|
+
TransactionType: 'VaultDeposit'
|
18
|
+
|
19
|
+
/**
|
20
|
+
* The ID of the vault to which the assets are deposited.
|
21
|
+
*/
|
22
|
+
VaultID: string
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Asset amount to deposit.
|
26
|
+
*/
|
27
|
+
Amount: Amount
|
28
|
+
}
|
29
|
+
|
30
|
+
/**
|
31
|
+
* Verify the form and type of a {@link VaultDeposit} at runtime.
|
32
|
+
*
|
33
|
+
* @param tx - A {@link VaultDeposit} Transaction.
|
34
|
+
* @throws When the {@link VaultDeposit} is malformed.
|
35
|
+
*/
|
36
|
+
export function validateVaultDeposit(tx: Record<string, unknown>): void {
|
37
|
+
validateBaseTransaction(tx)
|
38
|
+
|
39
|
+
validateRequiredField(tx, 'VaultID', isString)
|
40
|
+
validateRequiredField(tx, 'Amount', isAmount)
|
41
|
+
}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { ValidationError } from '../../errors'
|
2
|
+
import { isHex } from '../utils'
|
3
|
+
|
4
|
+
import {
|
5
|
+
BaseTransaction,
|
6
|
+
validateBaseTransaction,
|
7
|
+
validateOptionalField,
|
8
|
+
validateRequiredField,
|
9
|
+
isString,
|
10
|
+
VAULT_DATA_MAX_BYTE_LENGTH,
|
11
|
+
XRPLNumber,
|
12
|
+
isXRPLNumber,
|
13
|
+
} from './common'
|
14
|
+
|
15
|
+
/**
|
16
|
+
* The VaultSet transaction modifies mutable fields on an existing Vault object.
|
17
|
+
*
|
18
|
+
* @category Transaction Models
|
19
|
+
*/
|
20
|
+
export interface VaultSet extends BaseTransaction {
|
21
|
+
TransactionType: 'VaultSet'
|
22
|
+
|
23
|
+
/**
|
24
|
+
* The ID of the Vault to be modified. Must be included when updating the Vault.
|
25
|
+
*/
|
26
|
+
VaultID: string
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Arbitrary Vault metadata, limited to 256 bytes.
|
30
|
+
*/
|
31
|
+
Data?: string
|
32
|
+
|
33
|
+
/**
|
34
|
+
* The maximum asset amount that can be held in a vault. The value cannot be lower than the
|
35
|
+
* current AssetsTotal unless the value is 0.
|
36
|
+
*/
|
37
|
+
AssetsMaximum?: XRPLNumber
|
38
|
+
|
39
|
+
/**
|
40
|
+
* The PermissionedDomain object ID associated with the shares of this Vault.
|
41
|
+
*/
|
42
|
+
DomainID?: string
|
43
|
+
}
|
44
|
+
|
45
|
+
/**
|
46
|
+
* Verify the form and type of a {@link VaultSet} at runtime.
|
47
|
+
*
|
48
|
+
* @param tx - A {@link VaultSet} Transaction.
|
49
|
+
* @throws When the {@link VaultSet} is malformed.
|
50
|
+
*/
|
51
|
+
export function validateVaultSet(tx: Record<string, unknown>): void {
|
52
|
+
validateBaseTransaction(tx)
|
53
|
+
|
54
|
+
validateRequiredField(tx, 'VaultID', isString)
|
55
|
+
validateOptionalField(tx, 'Data', isString)
|
56
|
+
validateOptionalField(tx, 'AssetsMaximum', isXRPLNumber)
|
57
|
+
validateOptionalField(tx, 'DomainID', isString)
|
58
|
+
|
59
|
+
if (tx.Data !== undefined) {
|
60
|
+
const dataHex = tx.Data
|
61
|
+
if (!isHex(dataHex)) {
|
62
|
+
throw new ValidationError('VaultSet: Data must be a valid hex string')
|
63
|
+
}
|
64
|
+
const dataByteLength = dataHex.length / 2
|
65
|
+
if (dataByteLength > VAULT_DATA_MAX_BYTE_LENGTH) {
|
66
|
+
throw new ValidationError(
|
67
|
+
`VaultSet: Data exceeds ${VAULT_DATA_MAX_BYTE_LENGTH} bytes (actual: ${dataByteLength})`,
|
68
|
+
)
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { Amount } from '../common'
|
2
|
+
|
3
|
+
import {
|
4
|
+
BaseTransaction,
|
5
|
+
validateBaseTransaction,
|
6
|
+
validateRequiredField,
|
7
|
+
isString,
|
8
|
+
isAmount,
|
9
|
+
Account,
|
10
|
+
validateOptionalField,
|
11
|
+
isAccount,
|
12
|
+
} from './common'
|
13
|
+
|
14
|
+
/**
|
15
|
+
* The VaultWithdraw transaction withdraws assets in exchange for the vault's shares.
|
16
|
+
*
|
17
|
+
* @category Transaction Models
|
18
|
+
*/
|
19
|
+
export interface VaultWithdraw extends BaseTransaction {
|
20
|
+
TransactionType: 'VaultWithdraw'
|
21
|
+
|
22
|
+
/**
|
23
|
+
* The ID of the vault from which assets are withdrawn.
|
24
|
+
*/
|
25
|
+
VaultID: string
|
26
|
+
|
27
|
+
/**
|
28
|
+
* The exact amount of Vault asset to withdraw.
|
29
|
+
*/
|
30
|
+
Amount: Amount
|
31
|
+
|
32
|
+
/**
|
33
|
+
* An account to receive the assets. It must be able to receive the asset.
|
34
|
+
*/
|
35
|
+
Destination?: Account
|
36
|
+
}
|
37
|
+
|
38
|
+
/**
|
39
|
+
* Verify the form and type of a {@link VaultWithdraw} at runtime.
|
40
|
+
*
|
41
|
+
* @param tx - A {@link VaultWithdraw} Transaction.
|
42
|
+
* @throws When the {@link VaultWithdraw} is malformed.
|
43
|
+
*/
|
44
|
+
export function validateVaultWithdraw(tx: Record<string, unknown>): void {
|
45
|
+
validateBaseTransaction(tx)
|
46
|
+
|
47
|
+
validateRequiredField(tx, 'VaultID', isString)
|
48
|
+
validateRequiredField(tx, 'Amount', isAmount)
|
49
|
+
validateOptionalField(tx, 'Destination', isAccount)
|
50
|
+
}
|
@@ -20,6 +20,7 @@ import { PaymentFlags } from '../transactions/payment'
|
|
20
20
|
import { PaymentChannelClaimFlags } from '../transactions/paymentChannelClaim'
|
21
21
|
import type { Transaction } from '../transactions/transaction'
|
22
22
|
import { TrustSetFlags } from '../transactions/trustSet'
|
23
|
+
import { VaultCreateFlags } from '../transactions/vaultCreate'
|
23
24
|
import { XChainModifyBridgeFlags } from '../transactions/XChainModifyBridge'
|
24
25
|
|
25
26
|
import { isFlagEnabled } from '.'
|
@@ -63,6 +64,7 @@ const txToFlag = {
|
|
63
64
|
PaymentChannelClaim: PaymentChannelClaimFlags,
|
64
65
|
Payment: PaymentFlags,
|
65
66
|
TrustSet: TrustSetFlags,
|
67
|
+
VaultCreate: VaultCreateFlags,
|
66
68
|
XChainModifyBridge: XChainModifyBridgeFlags,
|
67
69
|
}
|
68
70
|
|