xrpl 4.3.0-smartescrow.3 → 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 +395 -140
- 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/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/XChainOwnedClaimID.d.ts +1 -2
- package/dist/npm/models/ledger/XChainOwnedClaimID.d.ts.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/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 +22 -6
- package/dist/npm/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/models/transactions/common.js +25 -10
- package/dist/npm/models/transactions/common.js.map +1 -1
- package/dist/npm/models/transactions/delegateSet.d.ts.map +1 -1
- package/dist/npm/models/transactions/delegateSet.js +1 -0
- package/dist/npm/models/transactions/delegateSet.js.map +1 -1
- 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 +3 -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 +2 -1
- package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/models/transactions/transaction.js +7 -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/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/XChainOwnedClaimID.d.ts +1 -2
- package/dist/npm/src/models/ledger/XChainOwnedClaimID.d.ts.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/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 +22 -6
- package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/common.js +25 -10
- package/dist/npm/src/models/transactions/common.js.map +1 -1
- package/dist/npm/src/models/transactions/delegateSet.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/delegateSet.js +1 -0
- package/dist/npm/src/models/transactions/delegateSet.js.map +1 -1
- 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 +3 -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 +2 -1
- package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/transaction.js +7 -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/Escrow.ts +0 -4
- package/src/models/ledger/FeeSettings.ts +0 -4
- package/src/models/ledger/XChainOwnedClaimID.ts +1 -3
- package/src/models/methods/baseMethod.ts +1 -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 +82 -30
- package/src/models/transactions/delegateSet.ts +1 -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 +3 -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 +15 -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
@@ -47,10 +47,6 @@ export interface EscrowCreate extends BaseTransaction {
|
|
47
47
|
* payment, such as a hosted recipient at the destination address.
|
48
48
|
*/
|
49
49
|
DestinationTag?: number
|
50
|
-
|
51
|
-
FinishFunction?: string
|
52
|
-
|
53
|
-
Data?: string
|
54
50
|
}
|
55
51
|
|
56
52
|
/**
|
@@ -79,13 +75,9 @@ export function validateEscrowCreate(tx: Record<string, unknown>): void {
|
|
79
75
|
)
|
80
76
|
}
|
81
77
|
|
82
|
-
if (
|
83
|
-
tx.FinishAfter === undefined &&
|
84
|
-
tx.Condition === undefined &&
|
85
|
-
tx.FinishFunction === undefined
|
86
|
-
) {
|
78
|
+
if (tx.FinishAfter === undefined && tx.Condition === undefined) {
|
87
79
|
throw new ValidationError(
|
88
|
-
'EscrowCreate: Either
|
80
|
+
'EscrowCreate: Either Condition or FinishAfter must be specified',
|
89
81
|
)
|
90
82
|
}
|
91
83
|
|
@@ -38,8 +38,6 @@ export interface EscrowFinish extends BaseTransaction {
|
|
38
38
|
* The credentials included must not be expired.
|
39
39
|
*/
|
40
40
|
CredentialIDs?: string[]
|
41
|
-
|
42
|
-
ComputationAllowance?: number
|
43
41
|
}
|
44
42
|
|
45
43
|
/**
|
@@ -55,8 +53,7 @@ export function validateEscrowFinish(tx: Record<string, unknown>): void {
|
|
55
53
|
|
56
54
|
validateCredentialsList(
|
57
55
|
tx.CredentialIDs,
|
58
|
-
|
59
|
-
tx.TransactionType as string,
|
56
|
+
tx.TransactionType,
|
60
57
|
true,
|
61
58
|
MAX_AUTHORIZED_CREDENTIALS,
|
62
59
|
)
|
@@ -33,6 +33,7 @@ export {
|
|
33
33
|
AMMWithdrawFlagsInterface,
|
34
34
|
AMMWithdraw,
|
35
35
|
} from './AMMWithdraw'
|
36
|
+
export { Batch } from './batch'
|
36
37
|
export { CheckCancel } from './checkCancel'
|
37
38
|
export { CheckCash } from './checkCash'
|
38
39
|
export { CheckCreate } from './checkCreate'
|
@@ -100,6 +101,8 @@ export { SignerListSet } from './signerListSet'
|
|
100
101
|
export { TicketCreate } from './ticketCreate'
|
101
102
|
export { TrustSetFlagsInterface, TrustSetFlags, TrustSet } from './trustSet'
|
102
103
|
export { UNLModify } from './UNLModify'
|
104
|
+
export { PermissionedDomainSet } from './permissionedDomainSet'
|
105
|
+
export { PermissionedDomainDelete } from './permissionedDomainDelete'
|
103
106
|
export { XChainAddAccountCreateAttestation } from './XChainAddAccountCreateAttestation'
|
104
107
|
export { XChainAddClaimAttestation } from './XChainAddClaimAttestation'
|
105
108
|
export { XChainClaim } from './XChainClaim'
|
@@ -112,6 +115,3 @@ export {
|
|
112
115
|
XChainModifyBridgeFlags,
|
113
116
|
XChainModifyBridgeFlagsInterface,
|
114
117
|
} from './XChainModifyBridge'
|
115
|
-
|
116
|
-
export { PermissionedDomainSet } from './permissionedDomainSet'
|
117
|
-
export { PermissionedDomainDelete } from './permissionedDomainDelete'
|
@@ -88,6 +88,8 @@ export interface TransactionMetadataBase {
|
|
88
88
|
delivered_amount?: Amount | MPTAmount | 'unavailable'
|
89
89
|
TransactionIndex: number
|
90
90
|
TransactionResult: string
|
91
|
+
|
92
|
+
ParentBatchID?: string
|
91
93
|
}
|
92
94
|
|
93
95
|
export type TransactionMetadata<T extends BaseTransaction = Transaction> =
|
@@ -3,7 +3,7 @@ import { Amount } from '../common'
|
|
3
3
|
|
4
4
|
import {
|
5
5
|
BaseTransaction,
|
6
|
-
|
6
|
+
GlobalFlagsInterface,
|
7
7
|
validateBaseTransaction,
|
8
8
|
isAmount,
|
9
9
|
} from './common'
|
@@ -78,7 +78,7 @@ export enum OfferCreateFlags {
|
|
78
78
|
* // }
|
79
79
|
* ```
|
80
80
|
*/
|
81
|
-
export interface OfferCreateFlagsInterface extends
|
81
|
+
export interface OfferCreateFlagsInterface extends GlobalFlagsInterface {
|
82
82
|
tfPassive?: boolean
|
83
83
|
tfImmediateOrCancel?: boolean
|
84
84
|
tfFillOrKill?: boolean
|
@@ -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'
|
@@ -133,6 +134,7 @@ export type SubmittableTransaction =
|
|
133
134
|
| AMMWithdraw
|
134
135
|
| AccountDelete
|
135
136
|
| AccountSet
|
137
|
+
| Batch
|
136
138
|
| CheckCancel
|
137
139
|
| CheckCash
|
138
140
|
| CheckCreate
|
@@ -309,6 +311,19 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
309
311
|
validateAccountSet(tx)
|
310
312
|
break
|
311
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
|
+
|
312
327
|
case 'CheckCancel':
|
313
328
|
validateCheckCancel(tx)
|
314
329
|
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
|
*
|