xrpl 4.1.0 → 4.2.0-batch.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 +3 -0
- package/build/xrpl-latest-min.js.map +1 -0
- package/build/xrpl-latest.js +528 -83
- 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 +124 -0
- package/dist/npm/Wallet/batchSigner.js.map +1 -0
- 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 +5 -0
- package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
- package/dist/npm/Wallet/index.d.ts.map +1 -1
- package/dist/npm/Wallet/index.js +8 -2
- package/dist/npm/Wallet/index.js.map +1 -1
- 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 +4 -0
- package/dist/npm/client/index.d.ts.map +1 -1
- package/dist/npm/client/index.js +16 -9
- package/dist/npm/client/index.js.map +1 -1
- package/dist/npm/models/index.d.ts +1 -1
- package/dist/npm/models/index.d.ts.map +1 -1
- package/dist/npm/models/index.js +3 -2
- package/dist/npm/models/index.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/LedgerEntry.d.ts +3 -2
- package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
- package/dist/npm/models/ledger/PermissionedDomain.d.ts +11 -0
- package/dist/npm/models/ledger/PermissionedDomain.d.ts.map +1 -0
- package/dist/npm/models/ledger/PermissionedDomain.js +3 -0
- package/dist/npm/models/ledger/PermissionedDomain.js.map +1 -0
- package/dist/npm/models/ledger/RippleState.d.ts +3 -1
- package/dist/npm/models/ledger/RippleState.d.ts.map +1 -1
- package/dist/npm/models/ledger/RippleState.js +2 -0
- package/dist/npm/models/ledger/RippleState.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/index.d.ts +5 -4
- package/dist/npm/models/methods/index.d.ts.map +1 -1
- package/dist/npm/models/methods/ledger.d.ts +2 -2
- package/dist/npm/models/methods/ledger.d.ts.map +1 -1
- package/dist/npm/models/methods/serverState.d.ts +1 -0
- package/dist/npm/models/methods/serverState.d.ts.map +1 -1
- package/dist/npm/models/methods/simulate.d.ts +42 -0
- package/dist/npm/models/methods/simulate.d.ts.map +1 -0
- package/dist/npm/models/methods/simulate.js +3 -0
- package/dist/npm/models/methods/simulate.js.map +1 -0
- package/dist/npm/models/transactions/AMMClawback.d.ts +17 -0
- package/dist/npm/models/transactions/AMMClawback.d.ts.map +1 -0
- package/dist/npm/models/transactions/AMMClawback.js +34 -0
- package/dist/npm/models/transactions/AMMClawback.js.map +1 -0
- 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 +5 -3
- package/dist/npm/models/transactions/NFTokenMint.d.ts.map +1 -1
- package/dist/npm/models/transactions/NFTokenMint.js +1 -0
- package/dist/npm/models/transactions/NFTokenMint.js.map +1 -1
- package/dist/npm/models/transactions/NFTokenModify.d.ts +9 -0
- package/dist/npm/models/transactions/NFTokenModify.d.ts.map +1 -0
- package/dist/npm/models/transactions/NFTokenModify.js +22 -0
- package/dist/npm/models/transactions/NFTokenModify.js.map +1 -0
- 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 +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 +62 -0
- package/dist/npm/models/transactions/batch.js.map +1 -0
- package/dist/npm/models/transactions/common.d.ts +21 -6
- package/dist/npm/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/models/transactions/common.js +52 -16
- package/dist/npm/models/transactions/common.js.map +1 -1
- package/dist/npm/models/transactions/depositPreauth.d.ts.map +1 -1
- package/dist/npm/models/transactions/depositPreauth.js +2 -2
- package/dist/npm/models/transactions/depositPreauth.js.map +1 -1
- package/dist/npm/models/transactions/escrowFinish.d.ts.map +1 -1
- package/dist/npm/models/transactions/escrowFinish.js +1 -1
- package/dist/npm/models/transactions/escrowFinish.js.map +1 -1
- package/dist/npm/models/transactions/index.d.ts +6 -1
- package/dist/npm/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/models/transactions/index.js +5 -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/payment.d.ts +2 -2
- package/dist/npm/models/transactions/payment.d.ts.map +1 -1
- package/dist/npm/models/transactions/payment.js +1 -1
- 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 +1 -1
- package/dist/npm/models/transactions/paymentChannelClaim.js.map +1 -1
- package/dist/npm/models/transactions/permissionedDomainDelete.d.ts +7 -0
- package/dist/npm/models/transactions/permissionedDomainDelete.d.ts.map +1 -0
- package/dist/npm/models/transactions/permissionedDomainDelete.js +10 -0
- package/dist/npm/models/transactions/permissionedDomainDelete.js.map +1 -0
- package/dist/npm/models/transactions/permissionedDomainSet.d.ts +9 -0
- package/dist/npm/models/transactions/permissionedDomainSet.d.ts.map +1 -0
- package/dist/npm/models/transactions/permissionedDomainSet.js +13 -0
- package/dist/npm/models/transactions/permissionedDomainSet.js.map +1 -0
- package/dist/npm/models/transactions/transaction.d.ts +6 -1
- package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/models/transactions/transaction.js +24 -1
- package/dist/npm/models/transactions/transaction.js.map +1 -1
- package/dist/npm/models/transactions/trustSet.d.ts +7 -3
- package/dist/npm/models/transactions/trustSet.d.ts.map +1 -1
- package/dist/npm/models/transactions/trustSet.js +2 -0
- package/dist/npm/models/transactions/trustSet.js.map +1 -1
- package/dist/npm/models/utils/flags.d.ts +2 -0
- package/dist/npm/models/utils/flags.d.ts.map +1 -1
- package/dist/npm/models/utils/flags.js +59 -26
- package/dist/npm/models/utils/flags.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 +124 -0
- package/dist/npm/src/Wallet/batchSigner.js.map +1 -0
- 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 +5 -0
- package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
- package/dist/npm/src/Wallet/index.d.ts.map +1 -1
- package/dist/npm/src/Wallet/index.js +8 -2
- package/dist/npm/src/Wallet/index.js.map +1 -1
- 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 +4 -0
- package/dist/npm/src/client/index.d.ts.map +1 -1
- package/dist/npm/src/client/index.js +16 -9
- package/dist/npm/src/client/index.js.map +1 -1
- package/dist/npm/src/models/index.d.ts +1 -1
- package/dist/npm/src/models/index.d.ts.map +1 -1
- package/dist/npm/src/models/index.js +3 -2
- package/dist/npm/src/models/index.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/LedgerEntry.d.ts +3 -2
- package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/PermissionedDomain.d.ts +11 -0
- package/dist/npm/src/models/ledger/PermissionedDomain.d.ts.map +1 -0
- package/dist/npm/src/models/ledger/PermissionedDomain.js +3 -0
- package/dist/npm/src/models/ledger/PermissionedDomain.js.map +1 -0
- package/dist/npm/src/models/ledger/RippleState.d.ts +3 -1
- package/dist/npm/src/models/ledger/RippleState.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/RippleState.js +2 -0
- package/dist/npm/src/models/ledger/RippleState.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/index.d.ts +5 -4
- package/dist/npm/src/models/methods/index.d.ts.map +1 -1
- package/dist/npm/src/models/methods/ledger.d.ts +2 -2
- package/dist/npm/src/models/methods/ledger.d.ts.map +1 -1
- package/dist/npm/src/models/methods/serverState.d.ts +1 -0
- package/dist/npm/src/models/methods/serverState.d.ts.map +1 -1
- package/dist/npm/src/models/methods/simulate.d.ts +42 -0
- package/dist/npm/src/models/methods/simulate.d.ts.map +1 -0
- package/dist/npm/src/models/methods/simulate.js +3 -0
- package/dist/npm/src/models/methods/simulate.js.map +1 -0
- package/dist/npm/src/models/transactions/AMMClawback.d.ts +17 -0
- package/dist/npm/src/models/transactions/AMMClawback.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/AMMClawback.js +34 -0
- package/dist/npm/src/models/transactions/AMMClawback.js.map +1 -0
- 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 +5 -3
- package/dist/npm/src/models/transactions/NFTokenMint.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/NFTokenMint.js +1 -0
- package/dist/npm/src/models/transactions/NFTokenMint.js.map +1 -1
- package/dist/npm/src/models/transactions/NFTokenModify.d.ts +9 -0
- package/dist/npm/src/models/transactions/NFTokenModify.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/NFTokenModify.js +22 -0
- package/dist/npm/src/models/transactions/NFTokenModify.js.map +1 -0
- 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 +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 +62 -0
- package/dist/npm/src/models/transactions/batch.js.map +1 -0
- package/dist/npm/src/models/transactions/common.d.ts +21 -6
- package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/common.js +52 -16
- package/dist/npm/src/models/transactions/common.js.map +1 -1
- package/dist/npm/src/models/transactions/depositPreauth.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/depositPreauth.js +2 -2
- package/dist/npm/src/models/transactions/depositPreauth.js.map +1 -1
- package/dist/npm/src/models/transactions/escrowFinish.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/escrowFinish.js +1 -1
- package/dist/npm/src/models/transactions/escrowFinish.js.map +1 -1
- package/dist/npm/src/models/transactions/index.d.ts +6 -1
- package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/index.js +5 -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/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 +1 -1
- 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 +1 -1
- package/dist/npm/src/models/transactions/paymentChannelClaim.js.map +1 -1
- package/dist/npm/src/models/transactions/permissionedDomainDelete.d.ts +7 -0
- package/dist/npm/src/models/transactions/permissionedDomainDelete.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/permissionedDomainDelete.js +10 -0
- package/dist/npm/src/models/transactions/permissionedDomainDelete.js.map +1 -0
- package/dist/npm/src/models/transactions/permissionedDomainSet.d.ts +9 -0
- package/dist/npm/src/models/transactions/permissionedDomainSet.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/permissionedDomainSet.js +13 -0
- package/dist/npm/src/models/transactions/permissionedDomainSet.js.map +1 -0
- package/dist/npm/src/models/transactions/transaction.d.ts +6 -1
- package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/transaction.js +24 -1
- package/dist/npm/src/models/transactions/transaction.js.map +1 -1
- package/dist/npm/src/models/transactions/trustSet.d.ts +7 -3
- package/dist/npm/src/models/transactions/trustSet.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/trustSet.js +2 -0
- package/dist/npm/src/models/transactions/trustSet.js.map +1 -1
- package/dist/npm/src/models/utils/flags.d.ts +2 -0
- package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
- package/dist/npm/src/models/utils/flags.js +59 -26
- package/dist/npm/src/models/utils/flags.js.map +1 -1
- package/dist/npm/src/sugar/autofill.d.ts +3 -1
- package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
- package/dist/npm/src/sugar/autofill.js +100 -5
- 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 +7 -7
- 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 +3 -1
- package/dist/npm/sugar/autofill.d.ts.map +1 -1
- package/dist/npm/sugar/autofill.js +100 -5
- 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 +7 -7
- 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 +222 -0
- package/src/Wallet/defaultFaucets.ts +6 -0
- package/src/Wallet/index.ts +9 -3
- package/src/client/RequestManager.ts +4 -1
- package/src/client/connection.ts +0 -1
- package/src/client/index.ts +49 -30
- package/src/models/index.ts +2 -1
- package/src/models/ledger/Credential.ts +2 -2
- package/src/models/ledger/LedgerEntry.ts +3 -0
- package/src/models/ledger/PermissionedDomain.ts +29 -0
- package/src/models/ledger/RippleState.ts +4 -0
- package/src/models/methods/baseMethod.ts +1 -0
- package/src/models/methods/index.ts +18 -0
- package/src/models/methods/ledger.ts +2 -2
- package/src/models/methods/serverState.ts +1 -0
- package/src/models/methods/simulate.ts +88 -0
- package/src/models/transactions/AMMClawback.ts +120 -0
- 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 +7 -2
- package/src/models/transactions/NFTokenModify.ts +67 -0
- package/src/models/transactions/XChainModifyBridge.ts +2 -2
- package/src/models/transactions/accountDelete.ts +2 -0
- package/src/models/transactions/accountSet.ts +2 -1
- package/src/models/transactions/batch.ts +147 -0
- package/src/models/transactions/common.ts +110 -30
- package/src/models/transactions/depositPreauth.ts +3 -0
- package/src/models/transactions/escrowFinish.ts +2 -0
- package/src/models/transactions/index.ts +10 -1
- package/src/models/transactions/metadata.ts +2 -0
- package/src/models/transactions/offerCreate.ts +2 -2
- package/src/models/transactions/payment.ts +4 -2
- package/src/models/transactions/paymentChannelClaim.ts +5 -2
- package/src/models/transactions/permissionedDomainDelete.ts +28 -0
- package/src/models/transactions/permissionedDomainSet.ts +54 -0
- package/src/models/transactions/transaction.ts +47 -2
- package/src/models/transactions/trustSet.ts +12 -2
- package/src/models/utils/flags.ts +85 -30
- package/src/sugar/autofill.ts +140 -11
- package/src/sugar/submit.ts +3 -5
- package/src/utils/hashes/hashLedger.ts +5 -2
@@ -1,4 +1,3 @@
|
|
1
|
-
/* eslint-disable no-param-reassign -- param reassign is safe */
|
2
1
|
/* eslint-disable no-bitwise -- flags require bitwise operations */
|
3
2
|
import { ValidationError } from '../../errors'
|
4
3
|
import {
|
@@ -6,8 +5,10 @@ import {
|
|
6
5
|
AccountRootFlags,
|
7
6
|
} from '../ledger/AccountRoot'
|
8
7
|
import { AccountSetTfFlags } from '../transactions/accountSet'
|
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'
|
11
12
|
import { GlobalFlags } from '../transactions/common'
|
12
13
|
import { MPTokenAuthorizeFlags } from '../transactions/MPTokenAuthorize'
|
13
14
|
import { MPTokenIssuanceCreateFlags } from '../transactions/MPTokenIssuanceCreate'
|
@@ -49,8 +50,10 @@ export function parseAccountRootFlags(
|
|
49
50
|
|
50
51
|
const txToFlag = {
|
51
52
|
AccountSet: AccountSetTfFlags,
|
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,
|
@@ -63,36 +66,68 @@ const txToFlag = {
|
|
63
66
|
XChainModifyBridge: XChainModifyBridgeFlags,
|
64
67
|
}
|
65
68
|
|
69
|
+
function isTxToFlagKey(
|
70
|
+
transactionType: string,
|
71
|
+
): transactionType is keyof typeof txToFlag {
|
72
|
+
return transactionType in txToFlag
|
73
|
+
}
|
74
|
+
|
66
75
|
/**
|
67
76
|
* Sets a transaction's flags to its numeric representation.
|
68
77
|
*
|
78
|
+
* @deprecated
|
79
|
+
* This utility function is deprecated.
|
80
|
+
* Use convertTxFlagsToNumber() instead and use the returned value to modify the Transaction.Flags from the caller.
|
81
|
+
*
|
69
82
|
* @param tx - A transaction to set its flags to its numeric representation.
|
70
83
|
*/
|
71
84
|
export function setTransactionFlagsToNumber(tx: Transaction): void {
|
72
|
-
|
73
|
-
|
74
|
-
|
85
|
+
// eslint-disable-next-line no-console -- intended deprecation warning
|
86
|
+
console.warn(
|
87
|
+
'This function is deprecated. Use convertTxFlagsToNumber() instead and use the returned value to modify the Transaction.Flags from the caller.',
|
88
|
+
)
|
89
|
+
|
90
|
+
if (tx.Flags) {
|
91
|
+
// eslint-disable-next-line no-param-reassign -- intended param reassign in setter, retain old functionality for compatibility
|
92
|
+
tx.Flags = convertTxFlagsToNumber(tx)
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
/**
|
97
|
+
* Returns a Transaction's Flags as its numeric representation.
|
98
|
+
*
|
99
|
+
* @param tx - A Transaction to parse Flags for
|
100
|
+
* @returns A numerical representation of a Transaction's Flags
|
101
|
+
*/
|
102
|
+
export function convertTxFlagsToNumber(tx: Transaction): number {
|
103
|
+
if (!tx.Flags) {
|
104
|
+
return 0
|
75
105
|
}
|
76
106
|
if (typeof tx.Flags === 'number') {
|
77
|
-
return
|
107
|
+
return tx.Flags
|
78
108
|
}
|
79
109
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
110
|
+
if (isTxToFlagKey(tx.TransactionType)) {
|
111
|
+
const flagEnum = txToFlag[tx.TransactionType]
|
112
|
+
return Object.keys(tx.Flags).reduce((resultFlags, flag) => {
|
113
|
+
if (flagEnum[flag] == null) {
|
114
|
+
throw new ValidationError(
|
115
|
+
`Invalid flag ${flag}. Valid flags are ${JSON.stringify(flagEnum)}`,
|
116
|
+
)
|
117
|
+
}
|
118
|
+
|
119
|
+
return tx.Flags?.[flag] ? resultFlags | flagEnum[flag] : resultFlags
|
120
|
+
}, 0)
|
121
|
+
}
|
84
122
|
|
85
|
-
|
86
|
-
|
87
|
-
return Object.keys(flags).reduce((resultFlags, flag) => {
|
88
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- safe member access
|
89
|
-
if (flagEnum[flag] == null) {
|
123
|
+
return Object.keys(tx.Flags).reduce((resultFlags, flag) => {
|
124
|
+
if (GlobalFlags[flag] == null) {
|
90
125
|
throw new ValidationError(
|
91
|
-
`flag ${flag}
|
126
|
+
`Invalid flag ${flag}. Valid flags are ${JSON.stringify(GlobalFlags)}`,
|
92
127
|
)
|
93
128
|
}
|
94
|
-
|
95
|
-
return
|
129
|
+
|
130
|
+
return tx.Flags?.[flag] ? resultFlags | GlobalFlags[flag] : resultFlags
|
96
131
|
}, 0)
|
97
132
|
}
|
98
133
|
|
@@ -103,22 +138,42 @@ function convertFlagsToNumber(flags: GlobalFlags, flagEnum: any): number {
|
|
103
138
|
* @returns A map with all flags as booleans.
|
104
139
|
*/
|
105
140
|
export function parseTransactionFlags(tx: Transaction): object {
|
106
|
-
|
107
|
-
if (
|
141
|
+
const flags = convertTxFlagsToNumber(tx)
|
142
|
+
if (flags === 0) {
|
108
143
|
return {}
|
109
144
|
}
|
110
145
|
|
111
|
-
const
|
112
|
-
const flagsMap = {}
|
146
|
+
const booleanFlagMap = {}
|
113
147
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
148
|
+
if (isTxToFlagKey(tx.TransactionType)) {
|
149
|
+
const transactionTypeFlags = txToFlag[tx.TransactionType]
|
150
|
+
Object.values(transactionTypeFlags).forEach((flag) => {
|
151
|
+
if (
|
152
|
+
typeof flag === 'string' &&
|
153
|
+
isFlagEnabled(flags, transactionTypeFlags[flag])
|
154
|
+
) {
|
155
|
+
booleanFlagMap[flag] = true
|
156
|
+
}
|
157
|
+
})
|
158
|
+
}
|
122
159
|
|
123
|
-
return
|
160
|
+
return booleanFlagMap
|
161
|
+
}
|
162
|
+
|
163
|
+
/**
|
164
|
+
* Determines whether a transaction has a certain flag enabled.
|
165
|
+
*
|
166
|
+
* @param tx The transaction.
|
167
|
+
* @param flag The flag to check.
|
168
|
+
* @returns Whether `flag` is enabled on `tx`.
|
169
|
+
*/
|
170
|
+
export function hasFlag(tx: Transaction, flag: number): boolean {
|
171
|
+
if (tx.Flags == null) {
|
172
|
+
return false
|
173
|
+
}
|
174
|
+
if (typeof tx.Flags === 'number') {
|
175
|
+
return isFlagEnabled(tx.Flags, flag)
|
176
|
+
}
|
177
|
+
const txFlagNum = convertTxFlagsToNumber(tx)
|
178
|
+
return isFlagEnabled(txFlagNum, flag)
|
124
179
|
}
|
package/src/sugar/autofill.ts
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
+
/* eslint-disable max-lines -- lots of helper functions needed for autofill */
|
1
2
|
import BigNumber from 'bignumber.js'
|
2
3
|
import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec'
|
3
4
|
|
4
5
|
import { type Client } from '..'
|
5
6
|
import { ValidationError, XrplError } from '../errors'
|
6
7
|
import { AccountInfoRequest, AccountObjectsRequest } from '../models/methods'
|
7
|
-
import { Transaction } from '../models/transactions'
|
8
|
+
import { Batch, Payment, Transaction } from '../models/transactions'
|
9
|
+
import { GlobalFlags } from '../models/transactions/common'
|
8
10
|
import { xrpToDrops } from '../utils'
|
9
11
|
|
10
12
|
import getFeeXrp from './getFeeXrp'
|
@@ -207,6 +209,20 @@ function convertToClassicAddress(tx: Transaction, fieldName: string): void {
|
|
207
209
|
}
|
208
210
|
}
|
209
211
|
|
212
|
+
// Helper function to get the next valid sequence number for an account.
|
213
|
+
async function getNextValidSequenceNumber(
|
214
|
+
client: Client,
|
215
|
+
account: string,
|
216
|
+
): Promise<number> {
|
217
|
+
const request: AccountInfoRequest = {
|
218
|
+
command: 'account_info',
|
219
|
+
account,
|
220
|
+
ledger_index: 'current',
|
221
|
+
}
|
222
|
+
const data = await client.request(request)
|
223
|
+
return data.result.account_data.Sequence
|
224
|
+
}
|
225
|
+
|
210
226
|
/**
|
211
227
|
* Sets the next valid sequence number for a transaction.
|
212
228
|
*
|
@@ -219,14 +235,8 @@ export async function setNextValidSequenceNumber(
|
|
219
235
|
client: Client,
|
220
236
|
tx: Transaction,
|
221
237
|
): Promise<void> {
|
222
|
-
const request: AccountInfoRequest = {
|
223
|
-
command: 'account_info',
|
224
|
-
account: tx.Account,
|
225
|
-
ledger_index: 'current',
|
226
|
-
}
|
227
|
-
const data = await client.request(request)
|
228
238
|
// eslint-disable-next-line no-param-reassign, require-atomic-updates -- param reassign is safe with no race condition
|
229
|
-
tx.Sequence =
|
239
|
+
tx.Sequence = await getNextValidSequenceNumber(client, tx.Account)
|
230
240
|
}
|
231
241
|
|
232
242
|
/**
|
@@ -274,13 +284,16 @@ export async function calculateFeePerTransactionType(
|
|
274
284
|
scaleValue(netFeeDrops, 33 + fulfillmentBytesSize / 16),
|
275
285
|
)
|
276
286
|
baseFee = product.dp(0, BigNumber.ROUND_CEIL)
|
277
|
-
}
|
278
|
-
|
279
|
-
if (
|
287
|
+
} else if (
|
280
288
|
tx.TransactionType === 'AccountDelete' ||
|
281
289
|
tx.TransactionType === 'AMMCreate'
|
282
290
|
) {
|
283
291
|
baseFee = await fetchAccountDeleteFee(client)
|
292
|
+
} else if (tx.TransactionType === 'Batch') {
|
293
|
+
baseFee = BigNumber.sum(
|
294
|
+
baseFee.times(2),
|
295
|
+
baseFee.times(tx.RawTransactions.length + (tx.BatchSigners?.length ?? 0)),
|
296
|
+
)
|
284
297
|
}
|
285
298
|
|
286
299
|
/*
|
@@ -359,3 +372,119 @@ export async function checkAccountDeleteBlockers(
|
|
359
372
|
resolve()
|
360
373
|
})
|
361
374
|
}
|
375
|
+
/**
|
376
|
+
* Replaces Amount with DeliverMax if needed.
|
377
|
+
*
|
378
|
+
* @param tx - The transaction object.
|
379
|
+
* @throws ValidationError if Amount and DeliverMax are both provided but do not match.
|
380
|
+
*/
|
381
|
+
export function handleDeliverMax(tx: Payment): void {
|
382
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
|
383
|
+
// @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
|
384
|
+
if (tx.DeliverMax != null) {
|
385
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed here
|
386
|
+
if (tx.Amount == null) {
|
387
|
+
// If only DeliverMax is provided, use it to populate the Amount field
|
388
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
|
389
|
+
// @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
|
390
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, no-param-reassign -- known RPC-level property
|
391
|
+
tx.Amount = tx.DeliverMax
|
392
|
+
}
|
393
|
+
|
394
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
|
395
|
+
// @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
|
396
|
+
|
397
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed here
|
398
|
+
if (tx.Amount != null && tx.Amount !== tx.DeliverMax) {
|
399
|
+
throw new ValidationError(
|
400
|
+
'PaymentTransaction: Amount and DeliverMax fields must be identical when both are provided',
|
401
|
+
)
|
402
|
+
}
|
403
|
+
|
404
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
|
405
|
+
// @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
|
406
|
+
// eslint-disable-next-line no-param-reassign -- needed here
|
407
|
+
delete tx.DeliverMax
|
408
|
+
}
|
409
|
+
}
|
410
|
+
|
411
|
+
/**
|
412
|
+
* Autofills all the relevant `x` fields.
|
413
|
+
*
|
414
|
+
* @param client - The client object.
|
415
|
+
* @param tx - The transaction object.
|
416
|
+
* @returns A promise that resolves with void if there are no blockers, or rejects with an XrplError if there are blockers.
|
417
|
+
*/
|
418
|
+
// eslint-disable-next-line complexity, max-lines-per-function, max-statements -- needed here, lots to check
|
419
|
+
export async function autofillBatchTxn(
|
420
|
+
client: Client,
|
421
|
+
tx: Batch,
|
422
|
+
): Promise<void> {
|
423
|
+
const accountSequences: Record<string, number> = {}
|
424
|
+
|
425
|
+
for await (const rawTxn of tx.RawTransactions) {
|
426
|
+
const txn = rawTxn.RawTransaction
|
427
|
+
|
428
|
+
// Flag processing
|
429
|
+
/* eslint-disable no-bitwise -- needed here for flag parsing */
|
430
|
+
if (txn.Flags == null) {
|
431
|
+
txn.Flags = GlobalFlags.tfInnerBatchTxn
|
432
|
+
} else if (typeof txn.Flags === 'number') {
|
433
|
+
if (!((txn.Flags & GlobalFlags.tfInnerBatchTxn) === 0)) {
|
434
|
+
txn.Flags |= GlobalFlags.tfInnerBatchTxn
|
435
|
+
}
|
436
|
+
} else if (!txn.Flags.tfInnerBatchTxn) {
|
437
|
+
txn.Flags.tfInnerBatchTxn = true
|
438
|
+
}
|
439
|
+
/* eslint-enable no-bitwise */
|
440
|
+
|
441
|
+
// Sequence processing
|
442
|
+
if (txn.Sequence == null && txn.TicketSequence == null) {
|
443
|
+
if (txn.Account in accountSequences) {
|
444
|
+
txn.Sequence = accountSequences[txn.Account]
|
445
|
+
accountSequences[txn.Account] += 1
|
446
|
+
} else {
|
447
|
+
const nextSequence = await getNextValidSequenceNumber(
|
448
|
+
client,
|
449
|
+
txn.Account,
|
450
|
+
)
|
451
|
+
const sequence =
|
452
|
+
txn.Account === tx.Account ? nextSequence + 1 : nextSequence
|
453
|
+
accountSequences[txn.Account] = sequence + 1
|
454
|
+
txn.Sequence = sequence
|
455
|
+
}
|
456
|
+
}
|
457
|
+
|
458
|
+
if (txn.Fee == null) {
|
459
|
+
txn.Fee = '0'
|
460
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- JS check
|
461
|
+
} else if (txn.Fee !== '0') {
|
462
|
+
throw new XrplError('Must have `Fee of "0" in inner Batch transaction.')
|
463
|
+
}
|
464
|
+
|
465
|
+
if (txn.SigningPubKey == null) {
|
466
|
+
txn.SigningPubKey = ''
|
467
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- JS check
|
468
|
+
} else if (txn.SigningPubKey !== '') {
|
469
|
+
throw new XrplError(
|
470
|
+
'Must have `SigningPubKey` of "" in inner Batch transaction.',
|
471
|
+
)
|
472
|
+
}
|
473
|
+
|
474
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS
|
475
|
+
if (txn.TxnSignature != null) {
|
476
|
+
throw new XrplError(
|
477
|
+
'Must not have `TxnSignature` in inner Batch transaction.',
|
478
|
+
)
|
479
|
+
}
|
480
|
+
|
481
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS
|
482
|
+
if (txn.Signers != null) {
|
483
|
+
throw new XrplError('Must not have `Signers` in inner Batch transaction.')
|
484
|
+
}
|
485
|
+
|
486
|
+
if (txn.NetworkID == null) {
|
487
|
+
txn.NetworkID = txNeedsNetworkID(client) ? client.networkID : undefined
|
488
|
+
}
|
489
|
+
}
|
490
|
+
}
|
package/src/sugar/submit.ts
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
import { decode, encode } from 'ripple-binary-codec'
|
2
|
-
|
3
1
|
import type {
|
4
2
|
Client,
|
5
3
|
SubmitRequest,
|
@@ -12,6 +10,7 @@ import { ValidationError, XrplError } from '../errors'
|
|
12
10
|
import { Signer } from '../models/common'
|
13
11
|
import { TxResponse } from '../models/methods'
|
14
12
|
import { BaseTransaction } from '../models/transactions/common'
|
13
|
+
import { decode, encode } from '../utils'
|
15
14
|
|
16
15
|
/** Approximate time for a ledger to close, in milliseconds */
|
17
16
|
const LEDGER_CLOSE_TIME = 1000
|
@@ -52,7 +51,7 @@ export async function submitRequest(
|
|
52
51
|
failHard = false,
|
53
52
|
): Promise<SubmitResponse> {
|
54
53
|
if (!isSigned(signedTransaction)) {
|
55
|
-
throw new ValidationError('Transaction must be signed')
|
54
|
+
throw new ValidationError('Transaction must be signed.')
|
56
55
|
}
|
57
56
|
|
58
57
|
const signedTxEncoded =
|
@@ -176,7 +175,6 @@ function isSigned(transaction: SubmittableTransaction | string): boolean {
|
|
176
175
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- we know that tx.Signers is an array of Signers
|
177
176
|
const signers = tx.Signers as Signer[]
|
178
177
|
for (const signer of signers) {
|
179
|
-
// eslint-disable-next-line max-depth -- necessary for checking if signer is signed
|
180
178
|
if (
|
181
179
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- necessary check
|
182
180
|
signer.Signer.SigningPubKey == null ||
|
@@ -284,7 +282,7 @@ export function getLastLedgerSequence(
|
|
284
282
|
transaction: Transaction | string,
|
285
283
|
): number | null {
|
286
284
|
const tx = typeof transaction === 'string' ? decode(transaction) : transaction
|
287
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- converts
|
285
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- converts LastLedgerSeq to number if present.
|
288
286
|
return tx.LastLedgerSequence as number | null
|
289
287
|
}
|
290
288
|
|
@@ -12,6 +12,8 @@ import { APIVersion } from '../../models'
|
|
12
12
|
import { LedgerEntry } from '../../models/ledger'
|
13
13
|
import { LedgerVersionMap } from '../../models/ledger/Ledger'
|
14
14
|
import { Transaction, TransactionMetadata } from '../../models/transactions'
|
15
|
+
import { GlobalFlags } from '../../models/transactions/common'
|
16
|
+
import { hasFlag } from '../../models/utils/flags'
|
15
17
|
|
16
18
|
import HashPrefix from './HashPrefix'
|
17
19
|
import sha512Half from './sha512Half'
|
@@ -66,7 +68,7 @@ function addLengthPrefix(hex: string): string {
|
|
66
68
|
*
|
67
69
|
* @param tx - A transaction to hash. Tx may be in binary blob form. Tx must be signed.
|
68
70
|
* @returns A hash of tx.
|
69
|
-
* @throws ValidationError if the Transaction is unsigned
|
71
|
+
* @throws ValidationError if the Transaction is unsigned.
|
70
72
|
* @category Utilities
|
71
73
|
*/
|
72
74
|
export function hashSignedTx(tx: Transaction | string): string {
|
@@ -84,7 +86,8 @@ export function hashSignedTx(tx: Transaction | string): string {
|
|
84
86
|
if (
|
85
87
|
txObject.TxnSignature === undefined &&
|
86
88
|
txObject.Signers === undefined &&
|
87
|
-
txObject.SigningPubKey === undefined
|
89
|
+
txObject.SigningPubKey === undefined &&
|
90
|
+
!hasFlag(txObject, GlobalFlags.tfInnerBatchTxn)
|
88
91
|
) {
|
89
92
|
throw new ValidationError('The transaction must be signed to hash it.')
|
90
93
|
}
|