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