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
package/src/sugar/autofill.ts
CHANGED
@@ -1,10 +1,11 @@
|
|
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'
|
8
9
|
import { xrpToDrops } from '../utils'
|
9
10
|
|
10
11
|
import getFeeXrp from './getFeeXrp'
|
@@ -18,8 +19,6 @@ const LEDGER_OFFSET = 20
|
|
18
19
|
const RESTRICTED_NETWORKS = 1024
|
19
20
|
const REQUIRED_NETWORKID_VERSION = '1.11.0'
|
20
21
|
|
21
|
-
const MICRO_DROPS_PER_DROP = 1_000_000
|
22
|
-
|
23
22
|
/**
|
24
23
|
* Determines whether the source rippled version is not later than the target rippled version.
|
25
24
|
* Example usage: isNotLaterRippledVersion('1.10.0', '1.11.0') returns true.
|
@@ -148,7 +147,10 @@ function validateAccountAddress(
|
|
148
147
|
tagField: string,
|
149
148
|
): void {
|
150
149
|
// if X-address is given, convert it to classic address
|
151
|
-
const { classicAccount, tag } = getClassicAccountAndTag(
|
150
|
+
const { classicAccount, tag } = getClassicAccountAndTag(
|
151
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- okay here
|
152
|
+
tx[accountField] as string,
|
153
|
+
)
|
152
154
|
// eslint-disable-next-line no-param-reassign -- param reassign is safe
|
153
155
|
tx[accountField] = classicAccount
|
154
156
|
|
@@ -166,17 +168,17 @@ function validateAccountAddress(
|
|
166
168
|
/**
|
167
169
|
* Retrieves the classic account and tag from an account address.
|
168
170
|
*
|
169
|
-
* @param
|
171
|
+
* @param account - The account address.
|
170
172
|
* @param [expectedTag] - The expected tag for the account address.
|
171
173
|
* @returns The classic account and tag.
|
172
174
|
* @throws {ValidationError} If the address includes a tag that does not match the tag specified in the transaction.
|
173
175
|
*/
|
174
176
|
function getClassicAccountAndTag(
|
175
|
-
|
177
|
+
account: string,
|
176
178
|
expectedTag?: number,
|
177
179
|
): ClassicAccountAndTag {
|
178
|
-
if (isValidXAddress(
|
179
|
-
const classic = xAddressToClassicAddress(
|
180
|
+
if (isValidXAddress(account)) {
|
181
|
+
const classic = xAddressToClassicAddress(account)
|
180
182
|
if (expectedTag != null && classic.tag !== expectedTag) {
|
181
183
|
throw new ValidationError(
|
182
184
|
'address includes a tag that does not match the tag specified in the transaction',
|
@@ -188,7 +190,7 @@ function getClassicAccountAndTag(
|
|
188
190
|
}
|
189
191
|
}
|
190
192
|
return {
|
191
|
-
classicAccount:
|
193
|
+
classicAccount: account,
|
192
194
|
tag: expectedTag,
|
193
195
|
}
|
194
196
|
}
|
@@ -200,7 +202,6 @@ function getClassicAccountAndTag(
|
|
200
202
|
* @param fieldName - The name of the field to convert.export
|
201
203
|
*/
|
202
204
|
function convertToClassicAddress(tx: Transaction, fieldName: string): void {
|
203
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- assignment is safe
|
204
205
|
const account = tx[fieldName]
|
205
206
|
if (typeof account === 'string') {
|
206
207
|
const { classicAccount } = getClassicAccountAndTag(account)
|
@@ -209,6 +210,20 @@ function convertToClassicAddress(tx: Transaction, fieldName: string): void {
|
|
209
210
|
}
|
210
211
|
}
|
211
212
|
|
213
|
+
// Helper function to get the next valid sequence number for an account.
|
214
|
+
async function getNextValidSequenceNumber(
|
215
|
+
client: Client,
|
216
|
+
account: string,
|
217
|
+
): Promise<number> {
|
218
|
+
const request: AccountInfoRequest = {
|
219
|
+
command: 'account_info',
|
220
|
+
account,
|
221
|
+
ledger_index: 'current',
|
222
|
+
}
|
223
|
+
const data = await client.request(request)
|
224
|
+
return data.result.account_data.Sequence
|
225
|
+
}
|
226
|
+
|
212
227
|
/**
|
213
228
|
* Sets the next valid sequence number for a transaction.
|
214
229
|
*
|
@@ -221,14 +236,8 @@ export async function setNextValidSequenceNumber(
|
|
221
236
|
client: Client,
|
222
237
|
tx: Transaction,
|
223
238
|
): Promise<void> {
|
224
|
-
const request: AccountInfoRequest = {
|
225
|
-
command: 'account_info',
|
226
|
-
account: tx.Account,
|
227
|
-
ledger_index: 'current',
|
228
|
-
}
|
229
|
-
const data = await client.request(request)
|
230
239
|
// eslint-disable-next-line no-param-reassign, require-atomic-updates -- param reassign is safe with no race condition
|
231
|
-
tx.Sequence =
|
240
|
+
tx.Sequence = await getNextValidSequenceNumber(client, tx.Account)
|
232
241
|
}
|
233
242
|
|
234
243
|
/**
|
@@ -249,64 +258,48 @@ async function fetchOwnerReserveFee(client: Client): Promise<BigNumber> {
|
|
249
258
|
return new BigNumber(fee)
|
250
259
|
}
|
251
260
|
|
252
|
-
async function fetchGasPrice(client: Client): Promise<BigNumber> {
|
253
|
-
const response = await client.request({ command: 'server_state' })
|
254
|
-
const gasPrice = response.result.state.validated_ledger?.gas_price
|
255
|
-
|
256
|
-
if (gasPrice == null) {
|
257
|
-
return Promise.reject(new Error('Could not fetch Owner Reserve.'))
|
258
|
-
}
|
259
|
-
|
260
|
-
return new BigNumber(gasPrice)
|
261
|
-
}
|
262
|
-
|
263
261
|
/**
|
264
262
|
* Calculates the fee per transaction type.
|
265
263
|
*
|
266
264
|
* @param client - The client object.
|
267
265
|
* @param tx - The transaction object.
|
268
266
|
* @param [signersCount=0] - The number of signers (default is 0). Only used for multisigning.
|
269
|
-
* @returns A promise that
|
267
|
+
* @returns A promise that returns the fee.
|
270
268
|
*/
|
271
|
-
|
272
|
-
|
269
|
+
|
270
|
+
async function calculateFeePerTransactionType(
|
273
271
|
client: Client,
|
274
272
|
tx: Transaction,
|
275
273
|
signersCount = 0,
|
276
|
-
): Promise<
|
274
|
+
): Promise<BigNumber> {
|
277
275
|
const netFeeXRP = await getFeeXrp(client)
|
278
|
-
const netFeeDrops =
|
279
|
-
let baseFee = netFeeDrops
|
280
|
-
|
281
|
-
// EscrowFinish Transaction with Fulfillment/ComputationAllowance
|
282
|
-
if (tx.TransactionType === 'EscrowFinish') {
|
283
|
-
if (tx.Fulfillment != null) {
|
284
|
-
const fulfillmentBytesSize: number = Math.ceil(tx.Fulfillment.length / 2)
|
285
|
-
// BaseFee × (33 + (Fulfillment size in bytes / 16))
|
286
|
-
baseFee = netFeeDrops.multipliedBy(
|
287
|
-
// eslint-disable-next-line @typescript-eslint/no-magic-numbers -- expected use of magic numbers
|
288
|
-
33 + fulfillmentBytesSize / 16,
|
289
|
-
)
|
290
|
-
}
|
291
|
-
if (tx.ComputationAllowance != null) {
|
292
|
-
const gasPrice = await fetchGasPrice(client)
|
293
|
-
const extraFee: BigNumber = gasPrice
|
294
|
-
.multipliedBy(tx.ComputationAllowance)
|
295
|
-
.dividedBy(MICRO_DROPS_PER_DROP)
|
296
|
-
baseFee = baseFee.plus(extraFee)
|
297
|
-
}
|
298
|
-
}
|
299
|
-
// EscrowCreate transaction with FinishFunction
|
300
|
-
if (tx.TransactionType === 'EscrowCreate' && tx.FinishFunction != null) {
|
301
|
-
baseFee = baseFee.plus(1000)
|
302
|
-
}
|
276
|
+
const netFeeDrops = xrpToDrops(netFeeXRP)
|
277
|
+
let baseFee = new BigNumber(netFeeDrops)
|
303
278
|
|
304
279
|
const isSpecialTxCost = ['AccountDelete', 'AMMCreate'].includes(
|
305
280
|
tx.TransactionType,
|
306
281
|
)
|
307
282
|
|
308
|
-
|
283
|
+
// EscrowFinish Transaction with Fulfillment
|
284
|
+
if (tx.TransactionType === 'EscrowFinish' && tx.Fulfillment != null) {
|
285
|
+
const fulfillmentBytesSize: number = Math.ceil(tx.Fulfillment.length / 2)
|
286
|
+
// BaseFee × (33 + (Fulfillment size in bytes / 16))
|
287
|
+
baseFee = new BigNumber(
|
288
|
+
// eslint-disable-next-line @typescript-eslint/no-magic-numbers -- expected use of magic numbers
|
289
|
+
scaleValue(netFeeDrops, 33 + fulfillmentBytesSize / 16),
|
290
|
+
)
|
291
|
+
} else if (isSpecialTxCost) {
|
309
292
|
baseFee = await fetchOwnerReserveFee(client)
|
293
|
+
} else if (tx.TransactionType === 'Batch') {
|
294
|
+
const rawTxFees = await tx.RawTransactions.reduce(async (acc, rawTxn) => {
|
295
|
+
const resolvedAcc = await acc
|
296
|
+
const fee = await calculateFeePerTransactionType(
|
297
|
+
client,
|
298
|
+
rawTxn.RawTransaction,
|
299
|
+
)
|
300
|
+
return BigNumber.sum(resolvedAcc, fee)
|
301
|
+
}, Promise.resolve(new BigNumber(0)))
|
302
|
+
baseFee = BigNumber.sum(baseFee.times(2), rawTxFees)
|
310
303
|
}
|
311
304
|
|
312
305
|
/*
|
@@ -314,7 +307,7 @@ export async function calculateFeePerTransactionType(
|
|
314
307
|
* BaseFee × (1 + Number of Signatures Provided)
|
315
308
|
*/
|
316
309
|
if (signersCount > 0) {
|
317
|
-
baseFee = BigNumber.sum(baseFee, netFeeDrops
|
310
|
+
baseFee = BigNumber.sum(baseFee, scaleValue(netFeeDrops, signersCount))
|
318
311
|
}
|
319
312
|
|
320
313
|
const maxFeeDrops = xrpToDrops(client.maxFeeXRP)
|
@@ -323,8 +316,36 @@ export async function calculateFeePerTransactionType(
|
|
323
316
|
: BigNumber.min(baseFee, maxFeeDrops)
|
324
317
|
|
325
318
|
// Round up baseFee and return it as a string
|
326
|
-
|
327
|
-
|
319
|
+
return totalFee.dp(0, BigNumber.ROUND_CEIL)
|
320
|
+
}
|
321
|
+
|
322
|
+
/**
|
323
|
+
* Calculates the fee per transaction type and sets it in the transaction.
|
324
|
+
*
|
325
|
+
* @param client - The client object.
|
326
|
+
* @param tx - The transaction object.
|
327
|
+
* @param [signersCount=0] - The number of signers (default is 0). Only used for multisigning.
|
328
|
+
* @returns A promise that resolves with void. Modifies the `tx` parameter to give it the calculated fee.
|
329
|
+
*/
|
330
|
+
export async function getTransactionFee(
|
331
|
+
client: Client,
|
332
|
+
tx: Transaction,
|
333
|
+
signersCount = 0,
|
334
|
+
): Promise<void> {
|
335
|
+
const fee = await calculateFeePerTransactionType(client, tx, signersCount)
|
336
|
+
// eslint-disable-next-line @typescript-eslint/no-magic-numbers, require-atomic-updates, no-param-reassign -- fine here
|
337
|
+
tx.Fee = fee.toString(10)
|
338
|
+
}
|
339
|
+
|
340
|
+
/**
|
341
|
+
* Scales the given value by multiplying it with the provided multiplier.
|
342
|
+
*
|
343
|
+
* @param value - The value to be scaled.
|
344
|
+
* @param multiplier - The multiplier to scale the value.
|
345
|
+
* @returns The scaled value as a string.
|
346
|
+
*/
|
347
|
+
function scaleValue(value, multiplier): string {
|
348
|
+
return new BigNumber(value).times(multiplier).toString()
|
328
349
|
}
|
329
350
|
|
330
351
|
/**
|
@@ -373,3 +394,99 @@ export async function checkAccountDeleteBlockers(
|
|
373
394
|
resolve()
|
374
395
|
})
|
375
396
|
}
|
397
|
+
/**
|
398
|
+
* Replaces Amount with DeliverMax if needed.
|
399
|
+
*
|
400
|
+
* @param tx - The transaction object.
|
401
|
+
* @throws ValidationError if Amount and DeliverMax are both provided but do not match.
|
402
|
+
*/
|
403
|
+
export function handleDeliverMax(tx: Payment): void {
|
404
|
+
if (tx.DeliverMax != null) {
|
405
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed here
|
406
|
+
if (tx.Amount == null) {
|
407
|
+
// If only DeliverMax is provided, use it to populate the Amount field
|
408
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
|
409
|
+
// @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
|
410
|
+
// eslint-disable-next-line no-param-reassign -- known RPC-level property
|
411
|
+
tx.Amount = tx.DeliverMax
|
412
|
+
}
|
413
|
+
|
414
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed here
|
415
|
+
if (tx.Amount != null && tx.Amount !== tx.DeliverMax) {
|
416
|
+
throw new ValidationError(
|
417
|
+
'PaymentTransaction: Amount and DeliverMax fields must be identical when both are provided',
|
418
|
+
)
|
419
|
+
}
|
420
|
+
|
421
|
+
// eslint-disable-next-line no-param-reassign -- needed here
|
422
|
+
delete tx.DeliverMax
|
423
|
+
}
|
424
|
+
}
|
425
|
+
|
426
|
+
/**
|
427
|
+
* Autofills all the relevant `x` fields.
|
428
|
+
*
|
429
|
+
* @param client - The client object.
|
430
|
+
* @param tx - The transaction object.
|
431
|
+
* @returns A promise that resolves with void if there are no blockers, or rejects with an XrplError if there are blockers.
|
432
|
+
*/
|
433
|
+
// eslint-disable-next-line complexity, max-lines-per-function -- needed here, lots to check
|
434
|
+
export async function autofillBatchTxn(
|
435
|
+
client: Client,
|
436
|
+
tx: Batch,
|
437
|
+
): Promise<void> {
|
438
|
+
const accountSequences: Record<string, number> = {}
|
439
|
+
|
440
|
+
for await (const rawTxn of tx.RawTransactions) {
|
441
|
+
const txn = rawTxn.RawTransaction
|
442
|
+
|
443
|
+
// Sequence processing
|
444
|
+
if (txn.Sequence == null && txn.TicketSequence == null) {
|
445
|
+
if (txn.Account in accountSequences) {
|
446
|
+
txn.Sequence = accountSequences[txn.Account]
|
447
|
+
accountSequences[txn.Account] += 1
|
448
|
+
} else {
|
449
|
+
const nextSequence = await getNextValidSequenceNumber(
|
450
|
+
client,
|
451
|
+
txn.Account,
|
452
|
+
)
|
453
|
+
const sequence =
|
454
|
+
txn.Account === tx.Account ? nextSequence + 1 : nextSequence
|
455
|
+
accountSequences[txn.Account] = sequence + 1
|
456
|
+
txn.Sequence = sequence
|
457
|
+
}
|
458
|
+
}
|
459
|
+
|
460
|
+
if (txn.Fee == null) {
|
461
|
+
txn.Fee = '0'
|
462
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- for JS purposes
|
463
|
+
} else if (txn.Fee !== '0') {
|
464
|
+
throw new XrplError('Must have `Fee of "0" in inner Batch transaction.')
|
465
|
+
}
|
466
|
+
|
467
|
+
if (txn.SigningPubKey == null) {
|
468
|
+
txn.SigningPubKey = ''
|
469
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- for JS purposes
|
470
|
+
} else if (txn.SigningPubKey !== '') {
|
471
|
+
throw new XrplError(
|
472
|
+
'Must have `SigningPubKey` of "" in inner Batch transaction.',
|
473
|
+
)
|
474
|
+
}
|
475
|
+
|
476
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- for JS purposes
|
477
|
+
if (txn.TxnSignature != null) {
|
478
|
+
throw new XrplError(
|
479
|
+
'Must not have `TxnSignature` in inner Batch transaction.',
|
480
|
+
)
|
481
|
+
}
|
482
|
+
|
483
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- for JS purposes
|
484
|
+
if (txn.Signers != null) {
|
485
|
+
throw new XrplError('Must not have `Signers` in inner Batch transaction.')
|
486
|
+
}
|
487
|
+
|
488
|
+
if (txn.NetworkID == null && txNeedsNetworkID(client)) {
|
489
|
+
txn.NetworkID = client.networkID
|
490
|
+
}
|
491
|
+
}
|
492
|
+
}
|
package/src/sugar/submit.ts
CHANGED
@@ -175,7 +175,6 @@ function isSigned(transaction: SubmittableTransaction | string): boolean {
|
|
175
175
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- we know that tx.Signers is an array of Signers
|
176
176
|
const signers = tx.Signers as Signer[]
|
177
177
|
for (const signer of signers) {
|
178
|
-
// eslint-disable-next-line max-depth -- necessary for checking if signer is signed
|
179
178
|
if (
|
180
179
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- necessary check
|
181
180
|
signer.Signer.SigningPubKey == null ||
|
@@ -283,7 +282,7 @@ export function getLastLedgerSequence(
|
|
283
282
|
transaction: Transaction | string,
|
284
283
|
): number | null {
|
285
284
|
const tx = typeof transaction === 'string' ? decode(transaction) : transaction
|
286
|
-
// 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.
|
287
286
|
return tx.LastLedgerSequence as number | null
|
288
287
|
}
|
289
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'
|
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, 'tfInnerBatchTxn')
|
88
91
|
) {
|
89
92
|
throw new ValidationError('The transaction must be signed to hash it.')
|
90
93
|
}
|