xrpl 3.0.0 → 4.0.0-mpt-beta
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 +3 -3
- package/build/xrpl-latest-min.js +1 -1
- package/build/xrpl-latest-min.js.map +1 -1
- package/build/xrpl-latest.js +781 -909
- package/build/xrpl-latest.js.map +1 -1
- package/dist/npm/Wallet/defaultFaucets.d.ts +1 -2
- package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
- package/dist/npm/Wallet/defaultFaucets.js +0 -5
- 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 +1 -5
- package/dist/npm/Wallet/fundWallet.js.map +1 -1
- package/dist/npm/client/RequestManager.d.ts +5 -4
- package/dist/npm/client/RequestManager.d.ts.map +1 -1
- package/dist/npm/client/RequestManager.js.map +1 -1
- package/dist/npm/client/connection.d.ts +2 -2
- 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 -3
- package/dist/npm/client/index.d.ts.map +1 -1
- package/dist/npm/client/index.js +17 -10
- package/dist/npm/client/index.js.map +1 -1
- package/dist/npm/client/partialPayment.d.ts +2 -1
- package/dist/npm/client/partialPayment.d.ts.map +1 -1
- package/dist/npm/client/partialPayment.js +19 -3
- package/dist/npm/client/partialPayment.js.map +1 -1
- package/dist/npm/models/common/index.d.ts +17 -0
- package/dist/npm/models/common/index.d.ts.map +1 -1
- package/dist/npm/models/common/index.js +4 -0
- package/dist/npm/models/common/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 +2 -1
- package/dist/npm/models/index.js.map +1 -1
- package/dist/npm/models/ledger/AMM.d.ts +2 -2
- package/dist/npm/models/ledger/AMM.d.ts.map +1 -1
- package/dist/npm/models/ledger/Amendments.d.ts +2 -2
- package/dist/npm/models/ledger/Amendments.d.ts.map +1 -1
- package/dist/npm/models/ledger/BaseLedgerEntry.d.ts +3 -3
- package/dist/npm/models/ledger/BaseLedgerEntry.d.ts.map +1 -1
- package/dist/npm/models/ledger/DirectoryNode.d.ts +2 -2
- package/dist/npm/models/ledger/DirectoryNode.d.ts.map +1 -1
- package/dist/npm/models/ledger/FeeSettings.d.ts +2 -2
- package/dist/npm/models/ledger/FeeSettings.d.ts.map +1 -1
- package/dist/npm/models/ledger/Ledger.d.ts +11 -2
- package/dist/npm/models/ledger/Ledger.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/LedgerHashes.d.ts +2 -2
- package/dist/npm/models/ledger/LedgerHashes.d.ts.map +1 -1
- package/dist/npm/models/ledger/MPToken.d.ts +11 -0
- package/dist/npm/models/ledger/MPToken.d.ts.map +1 -0
- package/dist/npm/models/ledger/MPToken.js +3 -0
- package/dist/npm/models/ledger/MPToken.js.map +1 -0
- package/dist/npm/models/ledger/MPTokenIssuance.d.ts +14 -0
- package/dist/npm/models/ledger/MPTokenIssuance.d.ts.map +1 -0
- package/dist/npm/models/ledger/MPTokenIssuance.js +3 -0
- package/dist/npm/models/ledger/MPTokenIssuance.js.map +1 -0
- package/dist/npm/models/ledger/NegativeUNL.d.ts +2 -2
- package/dist/npm/models/ledger/NegativeUNL.d.ts.map +1 -1
- package/dist/npm/models/ledger/Oracle.d.ts +12 -0
- package/dist/npm/models/ledger/Oracle.d.ts.map +1 -0
- package/dist/npm/models/ledger/Oracle.js +3 -0
- package/dist/npm/models/ledger/Oracle.js.map +1 -0
- package/dist/npm/models/ledger/RippleState.d.ts +2 -1
- package/dist/npm/models/ledger/RippleState.d.ts.map +1 -1
- package/dist/npm/models/ledger/RippleState.js +1 -0
- package/dist/npm/models/ledger/RippleState.js.map +1 -1
- package/dist/npm/models/ledger/index.d.ts +5 -2
- 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/accountChannels.d.ts +1 -1
- package/dist/npm/models/methods/accountChannels.d.ts.map +1 -1
- package/dist/npm/models/methods/accountInfo.d.ts +17 -4
- package/dist/npm/models/methods/accountInfo.d.ts.map +1 -1
- package/dist/npm/models/methods/accountTx.d.ts +11 -5
- package/dist/npm/models/methods/accountTx.d.ts.map +1 -1
- package/dist/npm/models/methods/feature.d.ts +28 -0
- package/dist/npm/models/methods/feature.d.ts.map +1 -0
- package/dist/npm/models/methods/feature.js +3 -0
- package/dist/npm/models/methods/feature.js.map +1 -0
- package/dist/npm/models/methods/getAggregatePrice.d.ts +31 -0
- package/dist/npm/models/methods/getAggregatePrice.d.ts.map +1 -0
- package/dist/npm/models/methods/getAggregatePrice.js +3 -0
- package/dist/npm/models/methods/getAggregatePrice.js.map +1 -0
- package/dist/npm/models/methods/index.d.ts +15 -11
- package/dist/npm/models/methods/index.d.ts.map +1 -1
- package/dist/npm/models/methods/ledger.d.ts +17 -5
- package/dist/npm/models/methods/ledger.d.ts.map +1 -1
- package/dist/npm/models/methods/ledgerEntry.d.ts +5 -0
- package/dist/npm/models/methods/ledgerEntry.d.ts.map +1 -1
- package/dist/npm/models/methods/nftsByIssuer.d.ts +19 -0
- package/dist/npm/models/methods/nftsByIssuer.d.ts.map +1 -0
- package/dist/npm/models/methods/nftsByIssuer.js +3 -0
- package/dist/npm/models/methods/nftsByIssuer.js.map +1 -0
- package/dist/npm/models/methods/submitMultisigned.d.ts +16 -5
- package/dist/npm/models/methods/submitMultisigned.d.ts.map +1 -1
- package/dist/npm/models/methods/tx.d.ts +20 -8
- package/dist/npm/models/methods/tx.d.ts.map +1 -1
- package/dist/npm/models/transactions/AMMDeposit.d.ts +3 -1
- package/dist/npm/models/transactions/AMMDeposit.d.ts.map +1 -1
- package/dist/npm/models/transactions/AMMDeposit.js +1 -0
- package/dist/npm/models/transactions/AMMDeposit.js.map +1 -1
- package/dist/npm/models/transactions/MPTokenAuthorize.d.ts +15 -0
- package/dist/npm/models/transactions/MPTokenAuthorize.d.ts.map +1 -0
- package/dist/npm/models/transactions/MPTokenAuthorize.js +15 -0
- package/dist/npm/models/transactions/MPTokenAuthorize.js.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +31 -0
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.js +26 -0
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceDestroy.d.ts +7 -0
- package/dist/npm/models/transactions/MPTokenIssuanceDestroy.d.ts.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceDestroy.js +10 -0
- package/dist/npm/models/transactions/MPTokenIssuanceDestroy.js.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts +17 -0
- package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceSet.js +22 -0
- package/dist/npm/models/transactions/MPTokenIssuanceSet.js.map +1 -0
- package/dist/npm/models/transactions/clawback.d.ts +3 -2
- package/dist/npm/models/transactions/clawback.d.ts.map +1 -1
- package/dist/npm/models/transactions/clawback.js +11 -1
- package/dist/npm/models/transactions/clawback.js.map +1 -1
- package/dist/npm/models/transactions/common.d.ts +2 -1
- package/dist/npm/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/models/transactions/common.js +12 -2
- package/dist/npm/models/transactions/common.js.map +1 -1
- package/dist/npm/models/transactions/index.d.ts +7 -1
- package/dist/npm/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/models/transactions/index.js +9 -1
- package/dist/npm/models/transactions/index.js.map +1 -1
- package/dist/npm/models/transactions/metadata.d.ts +8 -4
- package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
- package/dist/npm/models/transactions/metadata.js.map +1 -1
- package/dist/npm/models/transactions/oracleDelete.d.ts +7 -0
- package/dist/npm/models/transactions/oracleDelete.d.ts.map +1 -0
- package/dist/npm/models/transactions/oracleDelete.js +10 -0
- package/dist/npm/models/transactions/oracleDelete.js.map +1 -0
- package/dist/npm/models/transactions/oracleSet.d.ts +13 -0
- package/dist/npm/models/transactions/oracleSet.d.ts.map +1 -0
- package/dist/npm/models/transactions/oracleSet.js +59 -0
- package/dist/npm/models/transactions/oracleSet.js.map +1 -0
- package/dist/npm/models/transactions/payment.d.ts +6 -6
- 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/transaction.d.ts +7 -1
- package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/models/transactions/transaction.js +24 -0
- package/dist/npm/models/transactions/transaction.js.map +1 -1
- package/dist/npm/models/utils/flags.d.ts +1 -0
- package/dist/npm/models/utils/flags.d.ts.map +1 -1
- package/dist/npm/models/utils/flags.js +23 -1
- package/dist/npm/models/utils/flags.js.map +1 -1
- package/dist/npm/snippets/src/claimPayChannel.js +1 -1
- package/dist/npm/snippets/src/claimPayChannel.js.map +1 -1
- package/dist/npm/snippets/src/sendEscrow.js +1 -1
- package/dist/npm/snippets/src/sendEscrow.js.map +1 -1
- package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
- package/dist/npm/src/Wallet/defaultFaucets.d.ts +1 -2
- package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
- package/dist/npm/src/Wallet/defaultFaucets.js +0 -5
- 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 +1 -5
- package/dist/npm/src/Wallet/fundWallet.js.map +1 -1
- package/dist/npm/src/client/RequestManager.d.ts +5 -4
- package/dist/npm/src/client/RequestManager.d.ts.map +1 -1
- package/dist/npm/src/client/RequestManager.js.map +1 -1
- package/dist/npm/src/client/connection.d.ts +2 -2
- 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 -3
- package/dist/npm/src/client/index.d.ts.map +1 -1
- package/dist/npm/src/client/index.js +17 -10
- package/dist/npm/src/client/index.js.map +1 -1
- package/dist/npm/src/client/partialPayment.d.ts +2 -1
- package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
- package/dist/npm/src/client/partialPayment.js +19 -3
- package/dist/npm/src/client/partialPayment.js.map +1 -1
- package/dist/npm/src/models/common/index.d.ts +17 -0
- package/dist/npm/src/models/common/index.d.ts.map +1 -1
- package/dist/npm/src/models/common/index.js +4 -0
- package/dist/npm/src/models/common/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 +2 -1
- package/dist/npm/src/models/index.js.map +1 -1
- package/dist/npm/src/models/ledger/AMM.d.ts +2 -2
- package/dist/npm/src/models/ledger/AMM.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/Amendments.d.ts +2 -2
- package/dist/npm/src/models/ledger/Amendments.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/BaseLedgerEntry.d.ts +3 -3
- package/dist/npm/src/models/ledger/BaseLedgerEntry.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/DirectoryNode.d.ts +2 -2
- package/dist/npm/src/models/ledger/DirectoryNode.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/FeeSettings.d.ts +2 -2
- package/dist/npm/src/models/ledger/FeeSettings.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/Ledger.d.ts +11 -2
- package/dist/npm/src/models/ledger/Ledger.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/LedgerHashes.d.ts +2 -2
- package/dist/npm/src/models/ledger/LedgerHashes.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/MPToken.d.ts +11 -0
- package/dist/npm/src/models/ledger/MPToken.d.ts.map +1 -0
- package/dist/npm/src/models/ledger/MPToken.js +3 -0
- package/dist/npm/src/models/ledger/MPToken.js.map +1 -0
- package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts +14 -0
- package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts.map +1 -0
- package/dist/npm/src/models/ledger/MPTokenIssuance.js +3 -0
- package/dist/npm/src/models/ledger/MPTokenIssuance.js.map +1 -0
- package/dist/npm/src/models/ledger/NegativeUNL.d.ts +2 -2
- package/dist/npm/src/models/ledger/NegativeUNL.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/Oracle.d.ts +12 -0
- package/dist/npm/src/models/ledger/Oracle.d.ts.map +1 -0
- package/dist/npm/src/models/ledger/Oracle.js +3 -0
- package/dist/npm/src/models/ledger/Oracle.js.map +1 -0
- package/dist/npm/src/models/ledger/RippleState.d.ts +2 -1
- package/dist/npm/src/models/ledger/RippleState.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/RippleState.js +1 -0
- package/dist/npm/src/models/ledger/RippleState.js.map +1 -1
- package/dist/npm/src/models/ledger/index.d.ts +5 -2
- 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/accountChannels.d.ts +1 -1
- package/dist/npm/src/models/methods/accountChannels.d.ts.map +1 -1
- package/dist/npm/src/models/methods/accountInfo.d.ts +17 -4
- package/dist/npm/src/models/methods/accountInfo.d.ts.map +1 -1
- package/dist/npm/src/models/methods/accountTx.d.ts +11 -5
- package/dist/npm/src/models/methods/accountTx.d.ts.map +1 -1
- package/dist/npm/src/models/methods/feature.d.ts +28 -0
- package/dist/npm/src/models/methods/feature.d.ts.map +1 -0
- package/dist/npm/src/models/methods/feature.js +3 -0
- package/dist/npm/src/models/methods/feature.js.map +1 -0
- package/dist/npm/src/models/methods/getAggregatePrice.d.ts +31 -0
- package/dist/npm/src/models/methods/getAggregatePrice.d.ts.map +1 -0
- package/dist/npm/src/models/methods/getAggregatePrice.js +3 -0
- package/dist/npm/src/models/methods/getAggregatePrice.js.map +1 -0
- package/dist/npm/src/models/methods/index.d.ts +15 -11
- package/dist/npm/src/models/methods/index.d.ts.map +1 -1
- package/dist/npm/src/models/methods/ledger.d.ts +17 -5
- package/dist/npm/src/models/methods/ledger.d.ts.map +1 -1
- package/dist/npm/src/models/methods/ledgerEntry.d.ts +5 -0
- package/dist/npm/src/models/methods/ledgerEntry.d.ts.map +1 -1
- package/dist/npm/src/models/methods/nftsByIssuer.d.ts +19 -0
- package/dist/npm/src/models/methods/nftsByIssuer.d.ts.map +1 -0
- package/dist/npm/src/models/methods/nftsByIssuer.js +3 -0
- package/dist/npm/src/models/methods/nftsByIssuer.js.map +1 -0
- package/dist/npm/src/models/methods/submitMultisigned.d.ts +16 -5
- package/dist/npm/src/models/methods/submitMultisigned.d.ts.map +1 -1
- package/dist/npm/src/models/methods/tx.d.ts +20 -8
- package/dist/npm/src/models/methods/tx.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/AMMDeposit.d.ts +3 -1
- package/dist/npm/src/models/transactions/AMMDeposit.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/AMMDeposit.js +1 -0
- package/dist/npm/src/models/transactions/AMMDeposit.js.map +1 -1
- package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts +15 -0
- package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenAuthorize.js +15 -0
- package/dist/npm/src/models/transactions/MPTokenAuthorize.js.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +31 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js +26 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.d.ts +7 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.js +10 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.js.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts +17 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js +22 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js.map +1 -0
- package/dist/npm/src/models/transactions/clawback.d.ts +3 -2
- package/dist/npm/src/models/transactions/clawback.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/clawback.js +11 -1
- package/dist/npm/src/models/transactions/clawback.js.map +1 -1
- package/dist/npm/src/models/transactions/common.d.ts +2 -1
- package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/common.js +12 -2
- package/dist/npm/src/models/transactions/common.js.map +1 -1
- package/dist/npm/src/models/transactions/index.d.ts +7 -1
- package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/index.js +9 -1
- package/dist/npm/src/models/transactions/index.js.map +1 -1
- package/dist/npm/src/models/transactions/metadata.d.ts +8 -4
- package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/metadata.js.map +1 -1
- package/dist/npm/src/models/transactions/oracleDelete.d.ts +7 -0
- package/dist/npm/src/models/transactions/oracleDelete.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/oracleDelete.js +10 -0
- package/dist/npm/src/models/transactions/oracleDelete.js.map +1 -0
- package/dist/npm/src/models/transactions/oracleSet.d.ts +13 -0
- package/dist/npm/src/models/transactions/oracleSet.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/oracleSet.js +59 -0
- package/dist/npm/src/models/transactions/oracleSet.js.map +1 -0
- package/dist/npm/src/models/transactions/payment.d.ts +6 -6
- 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/transaction.d.ts +7 -1
- package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/transaction.js +24 -0
- package/dist/npm/src/models/transactions/transaction.js.map +1 -1
- package/dist/npm/src/models/utils/flags.d.ts +1 -0
- package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
- package/dist/npm/src/models/utils/flags.js +23 -1
- package/dist/npm/src/models/utils/flags.js.map +1 -1
- package/dist/npm/src/sugar/autofill.d.ts +1 -1
- package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
- package/dist/npm/src/sugar/autofill.js +2 -4
- package/dist/npm/src/sugar/autofill.js.map +1 -1
- package/dist/npm/src/sugar/getFeeXrp.d.ts +1 -1
- package/dist/npm/src/sugar/getFeeXrp.d.ts.map +1 -1
- package/dist/npm/src/sugar/getFeeXrp.js +3 -2
- package/dist/npm/src/sugar/getFeeXrp.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 +4 -3
- package/dist/npm/src/utils/hashes/hashLedger.d.ts.map +1 -1
- package/dist/npm/src/utils/hashes/hashLedger.js.map +1 -1
- package/dist/npm/src/utils/index.d.ts +4 -2
- package/dist/npm/src/utils/index.d.ts.map +1 -1
- package/dist/npm/src/utils/index.js +3 -1
- package/dist/npm/src/utils/index.js.map +1 -1
- package/dist/npm/src/utils/mptConversion.d.ts +2 -0
- package/dist/npm/src/utils/mptConversion.d.ts.map +1 -0
- package/dist/npm/src/utils/mptConversion.js +31 -0
- package/dist/npm/src/utils/mptConversion.js.map +1 -0
- package/dist/npm/sugar/autofill.d.ts +1 -1
- package/dist/npm/sugar/autofill.d.ts.map +1 -1
- package/dist/npm/sugar/autofill.js +2 -4
- package/dist/npm/sugar/autofill.js.map +1 -1
- package/dist/npm/sugar/getFeeXrp.d.ts +1 -1
- package/dist/npm/sugar/getFeeXrp.d.ts.map +1 -1
- package/dist/npm/sugar/getFeeXrp.js +3 -2
- package/dist/npm/sugar/getFeeXrp.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 +4 -3
- package/dist/npm/utils/hashes/hashLedger.d.ts.map +1 -1
- package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
- package/dist/npm/utils/index.d.ts +4 -2
- package/dist/npm/utils/index.d.ts.map +1 -1
- package/dist/npm/utils/index.js +3 -1
- package/dist/npm/utils/index.js.map +1 -1
- package/dist/npm/utils/mptConversion.d.ts +2 -0
- package/dist/npm/utils/mptConversion.d.ts.map +1 -0
- package/dist/npm/utils/mptConversion.js +31 -0
- package/dist/npm/utils/mptConversion.js.map +1 -0
- package/package.json +7 -8
- package/src/Wallet/defaultFaucets.ts +0 -6
- package/src/Wallet/fundWallet.ts +0 -1
- package/src/client/RequestManager.ts +17 -12
- package/src/client/connection.ts +7 -5
- package/src/client/index.ts +79 -21
- package/src/client/partialPayment.ts +55 -17
- package/src/models/common/index.ts +46 -0
- package/src/models/index.ts +1 -0
- package/src/models/ledger/AMM.ts +2 -2
- package/src/models/ledger/Amendments.ts +2 -2
- package/src/models/ledger/BaseLedgerEntry.ts +9 -5
- package/src/models/ledger/DirectoryNode.ts +2 -2
- package/src/models/ledger/FeeSettings.ts +4 -2
- package/src/models/ledger/Ledger.ts +46 -9
- package/src/models/ledger/LedgerEntry.ts +5 -0
- package/src/models/ledger/LedgerHashes.ts +2 -4
- package/src/models/ledger/MPToken.ts +12 -0
- package/src/models/ledger/MPTokenIssuance.ts +14 -0
- package/src/models/ledger/NegativeUNL.ts +2 -2
- package/src/models/ledger/Oracle.ts +43 -0
- package/src/models/ledger/RippleState.ts +2 -0
- package/src/models/ledger/index.ts +8 -1
- package/src/models/methods/accountChannels.ts +64 -1
- package/src/models/methods/accountInfo.ts +58 -12
- package/src/models/methods/accountTx.ts +49 -8
- package/src/models/methods/feature.ts +68 -0
- package/src/models/methods/getAggregatePrice.ts +119 -0
- package/src/models/methods/index.ts +79 -23
- package/src/models/methods/ledger.ts +41 -5
- package/src/models/methods/ledgerEntry.ts +16 -0
- package/src/models/methods/nftsByIssuer.ts +68 -0
- package/src/models/methods/submitMultisigned.ts +48 -16
- package/src/models/methods/tx.ts +74 -22
- package/src/models/transactions/AMMDeposit.ts +2 -0
- package/src/models/transactions/MPTokenAuthorize.ts +67 -0
- package/src/models/transactions/MPTokenIssuanceCreate.ts +132 -0
- package/src/models/transactions/MPTokenIssuanceDestroy.ts +34 -0
- package/src/models/transactions/MPTokenIssuanceSet.ts +76 -0
- package/src/models/transactions/clawback.ts +29 -6
- package/src/models/transactions/common.ts +22 -1
- package/src/models/transactions/index.ts +19 -1
- package/src/models/transactions/metadata.ts +10 -3
- package/src/models/transactions/oracleDelete.ts +32 -0
- package/src/models/transactions/oracleSet.ts +176 -0
- package/src/models/transactions/payment.ts +6 -6
- package/src/models/transactions/transaction.ts +45 -0
- package/src/models/utils/flags.ts +33 -1
- package/src/sugar/autofill.ts +4 -10
- package/src/sugar/getFeeXrp.ts +6 -3
- package/src/sugar/submit.ts +5 -3
- package/src/utils/hashes/hashLedger.ts +8 -5
- package/src/utils/index.ts +4 -1
- package/src/utils/mptConversion.ts +61 -0
@@ -1,10 +1,13 @@
|
|
1
1
|
import { ValidationError } from '../../errors'
|
2
|
-
import { IssuedCurrencyAmount } from '../common'
|
2
|
+
import { IssuedCurrencyAmount, MPTAmount } from '../common'
|
3
3
|
|
4
4
|
import {
|
5
5
|
BaseTransaction,
|
6
6
|
validateBaseTransaction,
|
7
7
|
isIssuedCurrency,
|
8
|
+
isMPTAmount,
|
9
|
+
isAccount,
|
10
|
+
validateOptionalField,
|
8
11
|
} from './common'
|
9
12
|
|
10
13
|
/**
|
@@ -15,15 +18,20 @@ export interface Clawback extends BaseTransaction {
|
|
15
18
|
TransactionType: 'Clawback'
|
16
19
|
/**
|
17
20
|
* Indicates the AccountID that submitted this transaction. The account MUST
|
18
|
-
* be the issuer of the currency.
|
21
|
+
* be the issuer of the currency or MPT.
|
19
22
|
*/
|
20
23
|
Account: string
|
21
24
|
/**
|
22
|
-
* The amount of currency to
|
23
|
-
* names MUST be lower-case.
|
25
|
+
* The amount of currency or MPT to clawback, and it must be non-XRP. The nested field
|
26
|
+
* names MUST be lower-case. If the amount is IOU, the `issuer` field MUST be the holder's address,
|
24
27
|
* whom to be clawed back.
|
25
28
|
*/
|
26
|
-
Amount: IssuedCurrencyAmount
|
29
|
+
Amount: IssuedCurrencyAmount | MPTAmount
|
30
|
+
/**
|
31
|
+
* Indicates the AccountID that the issuer wants to clawback. This field is only valid for clawing back
|
32
|
+
* MPTs.
|
33
|
+
*/
|
34
|
+
MPTokenHolder?: string
|
27
35
|
}
|
28
36
|
|
29
37
|
/**
|
@@ -34,16 +42,31 @@ export interface Clawback extends BaseTransaction {
|
|
34
42
|
*/
|
35
43
|
export function validateClawback(tx: Record<string, unknown>): void {
|
36
44
|
validateBaseTransaction(tx)
|
45
|
+
validateOptionalField(tx, 'MPTokenHolder', isAccount)
|
37
46
|
|
38
47
|
if (tx.Amount == null) {
|
39
48
|
throw new ValidationError('Clawback: missing field Amount')
|
40
49
|
}
|
41
50
|
|
42
|
-
if (!isIssuedCurrency(tx.Amount)) {
|
51
|
+
if (!isIssuedCurrency(tx.Amount) && !isMPTAmount(tx.Amount)) {
|
43
52
|
throw new ValidationError('Clawback: invalid Amount')
|
44
53
|
}
|
45
54
|
|
46
55
|
if (isIssuedCurrency(tx.Amount) && tx.Account === tx.Amount.issuer) {
|
47
56
|
throw new ValidationError('Clawback: invalid holder Account')
|
48
57
|
}
|
58
|
+
|
59
|
+
if (isMPTAmount(tx.Amount) && tx.Account === tx.MPTokenHolder) {
|
60
|
+
throw new ValidationError('Clawback: invalid holder Account')
|
61
|
+
}
|
62
|
+
|
63
|
+
if (isIssuedCurrency(tx.Amount) && tx.MPTokenHolder) {
|
64
|
+
throw new ValidationError(
|
65
|
+
'Clawback: cannot have MPTokenHolder for currency',
|
66
|
+
)
|
67
|
+
}
|
68
|
+
|
69
|
+
if (isMPTAmount(tx.Amount) && !tx.MPTokenHolder) {
|
70
|
+
throw new ValidationError('Clawback: missing MPTokenHolder')
|
71
|
+
}
|
49
72
|
}
|
@@ -9,6 +9,7 @@ import {
|
|
9
9
|
Memo,
|
10
10
|
Signer,
|
11
11
|
XChainBridge,
|
12
|
+
MPTAmount,
|
12
13
|
} from '../common'
|
13
14
|
import { onlyHasFields } from '../utils'
|
14
15
|
|
@@ -59,6 +60,7 @@ const XRP_CURRENCY_SIZE = 1
|
|
59
60
|
const ISSUE_SIZE = 2
|
60
61
|
const ISSUED_CURRENCY_SIZE = 3
|
61
62
|
const XCHAIN_BRIDGE_SIZE = 4
|
63
|
+
const MPTOKEN_SIZE = 2
|
62
64
|
|
63
65
|
function isRecord(value: unknown): value is Record<string, unknown> {
|
64
66
|
return value !== null && typeof value === 'object'
|
@@ -119,6 +121,21 @@ export function isIssuedCurrency(
|
|
119
121
|
)
|
120
122
|
}
|
121
123
|
|
124
|
+
/**
|
125
|
+
* Verify the form and type of an MPT at runtime.
|
126
|
+
*
|
127
|
+
* @param input - The input to check the form and type of.
|
128
|
+
* @returns Whether the MPTAmount is properly formed.
|
129
|
+
*/
|
130
|
+
export function isMPTAmount(input: unknown): input is MPTAmount {
|
131
|
+
return (
|
132
|
+
isRecord(input) &&
|
133
|
+
Object.keys(input).length === MPTOKEN_SIZE &&
|
134
|
+
typeof input.value === 'string' &&
|
135
|
+
typeof input.mpt_issuance_id === 'string'
|
136
|
+
)
|
137
|
+
}
|
138
|
+
|
122
139
|
/**
|
123
140
|
* Must be a valid account address
|
124
141
|
*/
|
@@ -144,7 +161,11 @@ export function isAccount(account: unknown): account is Account {
|
|
144
161
|
* @returns Whether the Amount is properly formed.
|
145
162
|
*/
|
146
163
|
export function isAmount(amount: unknown): amount is Amount {
|
147
|
-
return
|
164
|
+
return (
|
165
|
+
typeof amount === 'string' ||
|
166
|
+
isIssuedCurrency(amount) ||
|
167
|
+
isMPTAmount(amount)
|
168
|
+
)
|
148
169
|
}
|
149
170
|
|
150
171
|
/**
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export { BaseTransaction } from './common'
|
1
|
+
export { BaseTransaction, isMPTAmount } from './common'
|
2
2
|
export {
|
3
3
|
validate,
|
4
4
|
PseudoTransaction,
|
@@ -39,6 +39,22 @@ export { EscrowCancel } from './escrowCancel'
|
|
39
39
|
export { EscrowCreate } from './escrowCreate'
|
40
40
|
export { EscrowFinish } from './escrowFinish'
|
41
41
|
export { EnableAmendment, EnableAmendmentFlags } from './enableAmendment'
|
42
|
+
export {
|
43
|
+
MPTokenAuthorize,
|
44
|
+
MPTokenAuthorizeFlags,
|
45
|
+
MPTokenAuthorizeFlagsInterface,
|
46
|
+
} from './MPTokenAuthorize'
|
47
|
+
export {
|
48
|
+
MPTokenIssuanceCreate,
|
49
|
+
MPTokenIssuanceCreateFlags,
|
50
|
+
MPTokenIssuanceCreateFlagsInterface,
|
51
|
+
} from './MPTokenIssuanceCreate'
|
52
|
+
export { MPTokenIssuanceDestroy } from './MPTokenIssuanceDestroy'
|
53
|
+
export {
|
54
|
+
MPTokenIssuanceSet,
|
55
|
+
MPTokenIssuanceSetFlags,
|
56
|
+
MPTokenIssuanceSetFlagsInterface,
|
57
|
+
} from './MPTokenIssuanceSet'
|
42
58
|
export { NFTokenAcceptOffer } from './NFTokenAcceptOffer'
|
43
59
|
export { NFTokenBurn } from './NFTokenBurn'
|
44
60
|
export { NFTokenCancelOffer } from './NFTokenCancelOffer'
|
@@ -58,6 +74,8 @@ export {
|
|
58
74
|
OfferCreateFlagsInterface,
|
59
75
|
OfferCreate,
|
60
76
|
} from './offerCreate'
|
77
|
+
export { OracleDelete } from './oracleDelete'
|
78
|
+
export { OracleSet } from './oracleSet'
|
61
79
|
export { PaymentFlags, PaymentFlagsInterface, Payment } from './payment'
|
62
80
|
export {
|
63
81
|
PaymentChannelClaimFlags,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Amount } from '../common'
|
1
|
+
import { Amount, MPTAmount } from '../common'
|
2
2
|
|
3
3
|
import { BaseTransaction } from './common'
|
4
4
|
import {
|
@@ -14,6 +14,10 @@ import {
|
|
14
14
|
NFTokenCreateOfferMetadata,
|
15
15
|
} from './NFTokenCreateOffer'
|
16
16
|
import { NFTokenMint, NFTokenMintMetadata } from './NFTokenMint'
|
17
|
+
import {
|
18
|
+
MPTokenIssuanceCreate,
|
19
|
+
MPTokenIssuanceCreateMetadata,
|
20
|
+
} from './MPTokenIssuanceCreate'
|
17
21
|
import { Payment, PaymentMetadata } from './payment'
|
18
22
|
import type { Transaction } from './transaction'
|
19
23
|
|
@@ -40,6 +44,7 @@ export interface DeletedNode {
|
|
40
44
|
DeletedNode: {
|
41
45
|
LedgerEntryType: string
|
42
46
|
LedgerIndex: string
|
47
|
+
PreviousFields?: { [field: string]: unknown }
|
43
48
|
FinalFields: { [field: string]: unknown }
|
44
49
|
}
|
45
50
|
}
|
@@ -78,9 +83,9 @@ export function isDeletedNode(node: Node): node is DeletedNode {
|
|
78
83
|
|
79
84
|
export interface TransactionMetadataBase {
|
80
85
|
AffectedNodes: Node[]
|
81
|
-
DeliveredAmount?: Amount
|
86
|
+
DeliveredAmount?: Amount | MPTAmount
|
82
87
|
// "unavailable" possible for transactions before 2014-01-20
|
83
|
-
delivered_amount?: Amount | 'unavailable'
|
88
|
+
delivered_amount?: Amount | MPTAmount | 'unavailable'
|
84
89
|
TransactionIndex: number
|
85
90
|
TransactionResult: string
|
86
91
|
}
|
@@ -96,4 +101,6 @@ export type TransactionMetadata<T extends BaseTransaction = Transaction> =
|
|
96
101
|
? NFTokenAcceptOfferMetadata
|
97
102
|
: T extends NFTokenCancelOffer
|
98
103
|
? NFTokenCancelOfferMetadata
|
104
|
+
: T extends MPTokenIssuanceCreate
|
105
|
+
? MPTokenIssuanceCreateMetadata
|
99
106
|
: TransactionMetadataBase
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import {
|
2
|
+
BaseTransaction,
|
3
|
+
isNumber,
|
4
|
+
validateBaseTransaction,
|
5
|
+
validateRequiredField,
|
6
|
+
} from './common'
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Delete an Oracle ledger entry.
|
10
|
+
*
|
11
|
+
* @category Transaction Models
|
12
|
+
*/
|
13
|
+
export interface OracleDelete extends BaseTransaction {
|
14
|
+
TransactionType: 'OracleDelete'
|
15
|
+
|
16
|
+
/**
|
17
|
+
* A unique identifier of the price oracle for the Account.
|
18
|
+
*/
|
19
|
+
OracleDocumentID: number
|
20
|
+
}
|
21
|
+
|
22
|
+
/**
|
23
|
+
* Verify the form and type of a OracleDelete at runtime.
|
24
|
+
*
|
25
|
+
* @param tx - A OracleDelete Transaction.
|
26
|
+
* @throws When the OracleDelete is malformed.
|
27
|
+
*/
|
28
|
+
export function validateOracleDelete(tx: Record<string, unknown>): void {
|
29
|
+
validateBaseTransaction(tx)
|
30
|
+
|
31
|
+
validateRequiredField(tx, 'OracleDocumentID', isNumber)
|
32
|
+
}
|
@@ -0,0 +1,176 @@
|
|
1
|
+
import { ValidationError } from '../../errors'
|
2
|
+
import { PriceData } from '../common'
|
3
|
+
|
4
|
+
import {
|
5
|
+
BaseTransaction,
|
6
|
+
isNumber,
|
7
|
+
isString,
|
8
|
+
validateBaseTransaction,
|
9
|
+
validateOptionalField,
|
10
|
+
validateRequiredField,
|
11
|
+
} from './common'
|
12
|
+
|
13
|
+
const PRICE_DATA_SERIES_MAX_LENGTH = 10
|
14
|
+
const SCALE_MAX = 10
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Creates a new Oracle ledger entry or updates the fields of an existing one, using the Oracle ID.
|
18
|
+
*
|
19
|
+
* The oracle provider must complete these steps before submitting this transaction:
|
20
|
+
* 1. Create or own the XRPL account in the Owner field and have enough XRP to meet the reserve and transaction fee requirements.
|
21
|
+
* 2. Publish the XRPL account public key, so it can be used for verification by dApps.
|
22
|
+
* 3. Publish a registry of available price oracles with their unique OracleDocumentID.
|
23
|
+
*
|
24
|
+
* @category Transaction Models
|
25
|
+
*/
|
26
|
+
export interface OracleSet extends BaseTransaction {
|
27
|
+
TransactionType: 'OracleSet'
|
28
|
+
|
29
|
+
/**
|
30
|
+
* A unique identifier of the price oracle for the Account.
|
31
|
+
*/
|
32
|
+
OracleDocumentID: number
|
33
|
+
|
34
|
+
/**
|
35
|
+
* The time the data was last updated, represented as a unix timestamp in seconds.
|
36
|
+
*/
|
37
|
+
LastUpdateTime: number
|
38
|
+
|
39
|
+
/**
|
40
|
+
* An array of up to 10 PriceData objects, each representing the price information
|
41
|
+
* for a token pair. More than five PriceData objects require two owner reserves.
|
42
|
+
*/
|
43
|
+
PriceDataSeries: PriceData[]
|
44
|
+
|
45
|
+
/**
|
46
|
+
* An arbitrary value that identifies an oracle provider, such as Chainlink, Band,
|
47
|
+
* or DIA. This field is a string, up to 256 ASCII hex encoded characters (0x20-0x7E).
|
48
|
+
* This field is required when creating a new Oracle ledger entry, but is optional for updates.
|
49
|
+
*/
|
50
|
+
Provider?: string
|
51
|
+
|
52
|
+
/**
|
53
|
+
* An optional Universal Resource Identifier to reference price data off-chain. This field is limited to 256 bytes.
|
54
|
+
*/
|
55
|
+
URI?: string
|
56
|
+
|
57
|
+
/**
|
58
|
+
* Describes the type of asset, such as "currency", "commodity", or "index". This field is a string, up to 16 ASCII
|
59
|
+
* hex encoded characters (0x20-0x7E). This field is required when creating a new Oracle ledger entry, but is optional
|
60
|
+
* for updates.
|
61
|
+
*/
|
62
|
+
AssetClass?: string
|
63
|
+
}
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Verify the form and type of a OracleSet at runtime.
|
67
|
+
*
|
68
|
+
* @param tx - A OracleSet Transaction.
|
69
|
+
* @throws When the OracleSet is malformed.
|
70
|
+
*/
|
71
|
+
// eslint-disable-next-line max-lines-per-function -- necessary to validate many fields
|
72
|
+
export function validateOracleSet(tx: Record<string, unknown>): void {
|
73
|
+
validateBaseTransaction(tx)
|
74
|
+
|
75
|
+
validateRequiredField(tx, 'OracleDocumentID', isNumber)
|
76
|
+
|
77
|
+
validateRequiredField(tx, 'LastUpdateTime', isNumber)
|
78
|
+
|
79
|
+
validateOptionalField(tx, 'Provider', isString)
|
80
|
+
|
81
|
+
validateOptionalField(tx, 'URI', isString)
|
82
|
+
|
83
|
+
validateOptionalField(tx, 'AssetClass', isString)
|
84
|
+
|
85
|
+
// eslint-disable-next-line max-lines-per-function -- necessary to validate many fields
|
86
|
+
validateRequiredField(tx, 'PriceDataSeries', (value) => {
|
87
|
+
if (!Array.isArray(value)) {
|
88
|
+
throw new ValidationError('OracleSet: PriceDataSeries must be an array')
|
89
|
+
}
|
90
|
+
|
91
|
+
if (value.length > PRICE_DATA_SERIES_MAX_LENGTH) {
|
92
|
+
throw new ValidationError(
|
93
|
+
`OracleSet: PriceDataSeries must have at most ${PRICE_DATA_SERIES_MAX_LENGTH} PriceData objects`,
|
94
|
+
)
|
95
|
+
}
|
96
|
+
|
97
|
+
// TODO: add support for handling inner objects easier (similar to validateRequiredField/validateOptionalField)
|
98
|
+
for (const priceData of value) {
|
99
|
+
if (typeof priceData !== 'object') {
|
100
|
+
throw new ValidationError(
|
101
|
+
'OracleSet: PriceDataSeries must be an array of objects',
|
102
|
+
)
|
103
|
+
}
|
104
|
+
|
105
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
106
|
+
if (priceData.PriceData == null) {
|
107
|
+
throw new ValidationError(
|
108
|
+
'OracleSet: PriceDataSeries must have a `PriceData` object',
|
109
|
+
)
|
110
|
+
}
|
111
|
+
|
112
|
+
// check if priceData only has PriceData
|
113
|
+
if (Object.keys(priceData).length !== 1) {
|
114
|
+
throw new ValidationError(
|
115
|
+
'OracleSet: PriceDataSeries must only have a single PriceData object',
|
116
|
+
)
|
117
|
+
}
|
118
|
+
|
119
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
120
|
+
if (typeof priceData.PriceData.BaseAsset !== 'string') {
|
121
|
+
throw new ValidationError(
|
122
|
+
'OracleSet: PriceDataSeries must have a `BaseAsset` string',
|
123
|
+
)
|
124
|
+
}
|
125
|
+
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
127
|
+
if (typeof priceData.PriceData.QuoteAsset !== 'string') {
|
128
|
+
throw new ValidationError(
|
129
|
+
'OracleSet: PriceDataSeries must have a `QuoteAsset` string',
|
130
|
+
)
|
131
|
+
}
|
132
|
+
|
133
|
+
// Either AssetPrice and Scale are both present or both excluded
|
134
|
+
if (
|
135
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
136
|
+
(priceData.PriceData.AssetPrice == null) !==
|
137
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
138
|
+
(priceData.PriceData.Scale == null)
|
139
|
+
) {
|
140
|
+
throw new ValidationError(
|
141
|
+
'OracleSet: PriceDataSeries must have both `AssetPrice` and `Scale` if any are present',
|
142
|
+
)
|
143
|
+
}
|
144
|
+
|
145
|
+
if (
|
146
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
147
|
+
'AssetPrice' in priceData.PriceData &&
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
149
|
+
!isNumber(priceData.PriceData.AssetPrice)
|
150
|
+
) {
|
151
|
+
throw new ValidationError('OracleSet: invalid field AssetPrice')
|
152
|
+
}
|
153
|
+
|
154
|
+
if (
|
155
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
156
|
+
'Scale' in priceData.PriceData &&
|
157
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
158
|
+
!isNumber(priceData.PriceData.Scale)
|
159
|
+
) {
|
160
|
+
throw new ValidationError('OracleSet: invalid field Scale')
|
161
|
+
}
|
162
|
+
|
163
|
+
if (
|
164
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
165
|
+
priceData.PriceData.Scale < 0 ||
|
166
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- we are validating the type
|
167
|
+
priceData.PriceData.Scale > SCALE_MAX
|
168
|
+
) {
|
169
|
+
throw new ValidationError(
|
170
|
+
`OracleSet: Scale must be in range 0-${SCALE_MAX}`,
|
171
|
+
)
|
172
|
+
}
|
173
|
+
}
|
174
|
+
return true
|
175
|
+
})
|
176
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ValidationError } from '../../errors'
|
2
|
-
import { Amount, Path } from '../common'
|
2
|
+
import { Amount, Path, MPTAmount } from '../common'
|
3
3
|
import { isFlagEnabled } from '../utils'
|
4
4
|
|
5
5
|
import {
|
@@ -26,7 +26,7 @@ export enum PaymentFlags {
|
|
26
26
|
* This is intended to force the transaction to take arbitrage opportunities.
|
27
27
|
* Most clients do not need this.
|
28
28
|
*/
|
29
|
-
|
29
|
+
tfNoRippleDirect = 0x00010000,
|
30
30
|
/**
|
31
31
|
* If the specified Amount cannot be sent without spending more than SendMax,
|
32
32
|
* reduce the received amount instead of failing outright. See Partial.
|
@@ -88,7 +88,7 @@ export interface PaymentFlagsInterface extends GlobalFlags {
|
|
88
88
|
* This is intended to force the transaction to take arbitrage opportunities.
|
89
89
|
* Most clients do not need this.
|
90
90
|
*/
|
91
|
-
|
91
|
+
tfNoRippleDirect?: boolean
|
92
92
|
/**
|
93
93
|
* If the specified Amount cannot be sent without spending more than SendMax,
|
94
94
|
* reduce the received amount instead of failing outright. See Partial.
|
@@ -116,7 +116,7 @@ export interface Payment extends BaseTransaction {
|
|
116
116
|
* names MUST be lower-case. If the tfPartialPayment flag is set, deliver up
|
117
117
|
* to this amount instead.
|
118
118
|
*/
|
119
|
-
Amount: Amount
|
119
|
+
Amount: Amount | MPTAmount
|
120
120
|
/** The unique address of the account receiving the payment. */
|
121
121
|
Destination: Account
|
122
122
|
/**
|
@@ -153,8 +153,8 @@ export interface Payment extends BaseTransaction {
|
|
153
153
|
}
|
154
154
|
|
155
155
|
export interface PaymentMetadata extends TransactionMetadataBase {
|
156
|
-
DeliveredAmount?: Amount
|
157
|
-
delivered_amount?: Amount | 'unavailable'
|
156
|
+
DeliveredAmount?: Amount | MPTAmount
|
157
|
+
delivered_amount?: Amount | MPTAmount | 'unavailable'
|
158
158
|
}
|
159
159
|
|
160
160
|
/**
|
@@ -43,6 +43,8 @@ import {
|
|
43
43
|
import { NFTokenMint, validateNFTokenMint } from './NFTokenMint'
|
44
44
|
import { OfferCancel, validateOfferCancel } from './offerCancel'
|
45
45
|
import { OfferCreate, validateOfferCreate } from './offerCreate'
|
46
|
+
import { OracleDelete, validateOracleDelete } from './oracleDelete'
|
47
|
+
import { OracleSet, validateOracleSet } from './oracleSet'
|
46
48
|
import { Payment, validatePayment } from './payment'
|
47
49
|
import {
|
48
50
|
PaymentChannelClaim,
|
@@ -88,6 +90,19 @@ import {
|
|
88
90
|
XChainModifyBridge,
|
89
91
|
validateXChainModifyBridge,
|
90
92
|
} from './XChainModifyBridge'
|
93
|
+
import { MPTokenAuthorize, validateMPTokenAuthorize } from './MPTokenAuthorize'
|
94
|
+
import {
|
95
|
+
MPTokenIssuanceCreate,
|
96
|
+
validateMPTokenIssuanceCreate,
|
97
|
+
} from './MPTokenIssuanceCreate'
|
98
|
+
import {
|
99
|
+
MPTokenIssuanceDestroy,
|
100
|
+
validateMPTokenIssuanceDestroy,
|
101
|
+
} from './MPTokenIssuanceDestroy'
|
102
|
+
import {
|
103
|
+
MPTokenIssuanceSet,
|
104
|
+
validateMPTokenIssuanceSet,
|
105
|
+
} from './MPTokenIssuanceSet'
|
91
106
|
|
92
107
|
/**
|
93
108
|
* Transactions that can be submitted by clients
|
@@ -113,6 +128,10 @@ export type SubmittableTransaction =
|
|
113
128
|
| EscrowCancel
|
114
129
|
| EscrowCreate
|
115
130
|
| EscrowFinish
|
131
|
+
| MPTokenAuthorize
|
132
|
+
| MPTokenIssuanceCreate
|
133
|
+
| MPTokenIssuanceDestroy
|
134
|
+
| MPTokenIssuanceSet
|
116
135
|
| NFTokenAcceptOffer
|
117
136
|
| NFTokenBurn
|
118
137
|
| NFTokenCancelOffer
|
@@ -120,6 +139,8 @@ export type SubmittableTransaction =
|
|
120
139
|
| NFTokenMint
|
121
140
|
| OfferCancel
|
122
141
|
| OfferCreate
|
142
|
+
| OracleDelete
|
143
|
+
| OracleSet
|
123
144
|
| Payment
|
124
145
|
| PaymentChannelClaim
|
125
146
|
| PaymentChannelCreate
|
@@ -302,6 +323,22 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
302
323
|
validateEscrowFinish(tx)
|
303
324
|
break
|
304
325
|
|
326
|
+
case 'MPTokenAuthorize':
|
327
|
+
validateMPTokenAuthorize(tx)
|
328
|
+
break
|
329
|
+
|
330
|
+
case 'MPTokenIssuanceCreate':
|
331
|
+
validateMPTokenIssuanceCreate(tx)
|
332
|
+
break
|
333
|
+
|
334
|
+
case 'MPTokenIssuanceDestroy':
|
335
|
+
validateMPTokenIssuanceDestroy(tx)
|
336
|
+
break
|
337
|
+
|
338
|
+
case 'MPTokenIssuanceSet':
|
339
|
+
validateMPTokenIssuanceSet(tx)
|
340
|
+
break
|
341
|
+
|
305
342
|
case 'NFTokenAcceptOffer':
|
306
343
|
validateNFTokenAcceptOffer(tx)
|
307
344
|
break
|
@@ -330,6 +367,14 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
330
367
|
validateOfferCreate(tx)
|
331
368
|
break
|
332
369
|
|
370
|
+
case 'OracleDelete':
|
371
|
+
validateOracleDelete(tx)
|
372
|
+
break
|
373
|
+
|
374
|
+
case 'OracleSet':
|
375
|
+
validateOracleSet(tx)
|
376
|
+
break
|
377
|
+
|
333
378
|
case 'Payment':
|
334
379
|
validatePayment(tx)
|
335
380
|
break
|
@@ -1,6 +1,5 @@
|
|
1
1
|
/* eslint-disable no-param-reassign -- param reassign is safe */
|
2
2
|
/* eslint-disable no-bitwise -- flags require bitwise operations */
|
3
|
-
|
4
3
|
import { ValidationError } from '../../errors'
|
5
4
|
import {
|
6
5
|
AccountRootFlagsInterface,
|
@@ -18,6 +17,9 @@ import { PaymentChannelClaimFlags } from '../transactions/paymentChannelClaim'
|
|
18
17
|
import type { Transaction } from '../transactions/transaction'
|
19
18
|
import { TrustSetFlags } from '../transactions/trustSet'
|
20
19
|
import { XChainModifyBridgeFlags } from '../transactions/XChainModifyBridge'
|
20
|
+
import { MPTokenAuthorizeFlags } from '../transactions/MPTokenAuthorize'
|
21
|
+
import { MPTokenIssuanceCreateFlags } from '../transactions/MPTokenIssuanceCreate'
|
22
|
+
import { MPTokenIssuanceSetFlags } from '../transactions/MPTokenIssuanceSet'
|
21
23
|
|
22
24
|
import { isFlagEnabled } from '.'
|
23
25
|
|
@@ -49,6 +51,9 @@ const txToFlag = {
|
|
49
51
|
AccountSet: AccountSetTfFlags,
|
50
52
|
AMMDeposit: AMMDepositFlags,
|
51
53
|
AMMWithdraw: AMMWithdrawFlags,
|
54
|
+
MPTokenAuthorize: MPTokenAuthorizeFlags,
|
55
|
+
MPTokenIssuanceCreate: MPTokenIssuanceCreateFlags,
|
56
|
+
MPTokenIssuanceSet: MPTokenIssuanceSetFlags,
|
52
57
|
NFTokenCreateOffer: NFTokenCreateOfferFlags,
|
53
58
|
NFTokenMint: NFTokenMintFlags,
|
54
59
|
OfferCreate: OfferCreateFlags,
|
@@ -90,3 +95,30 @@ function convertFlagsToNumber(flags: GlobalFlags, flagEnum: any): number {
|
|
90
95
|
return flags[flag] ? resultFlags | flagEnum[flag] : resultFlags
|
91
96
|
}, 0)
|
92
97
|
}
|
98
|
+
|
99
|
+
/**
|
100
|
+
* Convert a Transaction flags property into a map for easy interpretation.
|
101
|
+
*
|
102
|
+
* @param tx - A transaction to parse flags for.
|
103
|
+
* @returns A map with all flags as booleans.
|
104
|
+
*/
|
105
|
+
export function parseTransactionFlags(tx: Transaction): object {
|
106
|
+
setTransactionFlagsToNumber(tx)
|
107
|
+
if (typeof tx.Flags !== 'number' || !tx.Flags || tx.Flags === 0) {
|
108
|
+
return {}
|
109
|
+
}
|
110
|
+
|
111
|
+
const flags = tx.Flags
|
112
|
+
const flagsMap = {}
|
113
|
+
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe member access
|
115
|
+
const flagEnum = txToFlag[tx.TransactionType]
|
116
|
+
Object.values(flagEnum).forEach((flag) => {
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- safe member access
|
118
|
+
if (typeof flag === 'string' && isFlagEnabled(flags, flagEnum[flag])) {
|
119
|
+
flagsMap[flag] = true
|
120
|
+
}
|
121
|
+
})
|
122
|
+
|
123
|
+
return flagsMap
|
124
|
+
}
|
package/src/sugar/autofill.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import BigNumber from 'bignumber.js'
|
2
2
|
import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec'
|
3
3
|
|
4
|
-
import type
|
4
|
+
import { type Client } from '..'
|
5
5
|
import { ValidationError, XrplError } from '../errors'
|
6
6
|
import { AccountInfoRequest, AccountObjectsRequest } from '../models/methods'
|
7
7
|
import { Transaction } from '../models/transactions'
|
@@ -17,7 +17,6 @@ const LEDGER_OFFSET = 20
|
|
17
17
|
// Mainnet and testnet are exceptions. More context: https://github.com/XRPLF/rippled/pull/4370
|
18
18
|
const RESTRICTED_NETWORKS = 1024
|
19
19
|
const REQUIRED_NETWORKID_VERSION = '1.11.0'
|
20
|
-
const HOOKS_TESTNET_ID = 21338
|
21
20
|
|
22
21
|
/**
|
23
22
|
* Determines whether the source rippled version is not later than the target rippled version.
|
@@ -87,8 +86,7 @@ function isNotLaterRippledVersion(source: string, target: string): boolean {
|
|
87
86
|
|
88
87
|
/**
|
89
88
|
* Determine if the transaction required a networkID to be valid.
|
90
|
-
* Transaction needs networkID if later than restricted ID and
|
91
|
-
* or build version is >= 1.11.0
|
89
|
+
* Transaction needs networkID if later than restricted ID and build version is >= 1.11.0
|
92
90
|
*
|
93
91
|
* @param client -- The connected client.
|
94
92
|
* @returns True if required networkID, false otherwise.
|
@@ -99,12 +97,8 @@ export function txNeedsNetworkID(client: Client): boolean {
|
|
99
97
|
client.networkID > RESTRICTED_NETWORKS
|
100
98
|
) {
|
101
99
|
if (
|
102
|
-
|
103
|
-
|
104
|
-
REQUIRED_NETWORKID_VERSION,
|
105
|
-
client.buildVersion,
|
106
|
-
)) ||
|
107
|
-
client.networkID === HOOKS_TESTNET_ID
|
100
|
+
client.buildVersion &&
|
101
|
+
isNotLaterRippledVersion(REQUIRED_NETWORKID_VERSION, client.buildVersion)
|
108
102
|
) {
|
109
103
|
return true
|
110
104
|
}
|
package/src/sugar/getFeeXrp.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import BigNumber from 'bignumber.js'
|
2
2
|
|
3
|
-
import type
|
3
|
+
import { type Client } from '..'
|
4
4
|
import { XrplError } from '../errors'
|
5
5
|
|
6
6
|
const NUM_DECIMAL_PLACES = 6
|
@@ -20,8 +20,11 @@ export default async function getFeeXrp(
|
|
20
20
|
): Promise<string> {
|
21
21
|
const feeCushion = cushion ?? client.feeCushion
|
22
22
|
|
23
|
-
const serverInfo = (
|
24
|
-
.
|
23
|
+
const serverInfo = (
|
24
|
+
await client.request({
|
25
|
+
command: 'server_info',
|
26
|
+
})
|
27
|
+
).result.info
|
25
28
|
|
26
29
|
const baseFee = serverInfo.validated_ledger?.base_fee_xrp
|
27
30
|
|