xrpjson 0.1.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/LICENSE +21 -0
- package/README.md +183 -0
- package/dist/errors.d.ts +20 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +27 -0
- package/dist/errors.js.map +1 -0
- package/dist/fp/factories/account-delete.d.ts +33 -0
- package/dist/fp/factories/account-delete.d.ts.map +1 -0
- package/dist/fp/factories/account-delete.js +138 -0
- package/dist/fp/factories/account-delete.js.map +1 -0
- package/dist/fp/factories/account-set.d.ts +31 -0
- package/dist/fp/factories/account-set.d.ts.map +1 -0
- package/dist/fp/factories/account-set.js +44 -0
- package/dist/fp/factories/account-set.js.map +1 -0
- package/dist/fp/factories/amm-bid.d.ts +134 -0
- package/dist/fp/factories/amm-bid.d.ts.map +1 -0
- package/dist/fp/factories/amm-bid.js +82 -0
- package/dist/fp/factories/amm-bid.js.map +1 -0
- package/dist/fp/factories/amm-clawback.d.ts +166 -0
- package/dist/fp/factories/amm-clawback.d.ts.map +1 -0
- package/dist/fp/factories/amm-clawback.js +143 -0
- package/dist/fp/factories/amm-clawback.js.map +1 -0
- package/dist/fp/factories/amm-create.d.ts +91 -0
- package/dist/fp/factories/amm-create.d.ts.map +1 -0
- package/dist/fp/factories/amm-create.js +140 -0
- package/dist/fp/factories/amm-create.js.map +1 -0
- package/dist/fp/factories/amm-delete.d.ts +84 -0
- package/dist/fp/factories/amm-delete.d.ts.map +1 -0
- package/dist/fp/factories/amm-delete.js +36 -0
- package/dist/fp/factories/amm-delete.js.map +1 -0
- package/dist/fp/factories/amm-deposit.d.ts +109 -0
- package/dist/fp/factories/amm-deposit.d.ts.map +1 -0
- package/dist/fp/factories/amm-deposit.js +68 -0
- package/dist/fp/factories/amm-deposit.js.map +1 -0
- package/dist/fp/factories/amm-vote.d.ts +87 -0
- package/dist/fp/factories/amm-vote.d.ts.map +1 -0
- package/dist/fp/factories/amm-vote.js +53 -0
- package/dist/fp/factories/amm-vote.js.map +1 -0
- package/dist/fp/factories/amm-withdraw.d.ts +131 -0
- package/dist/fp/factories/amm-withdraw.d.ts.map +1 -0
- package/dist/fp/factories/amm-withdraw.js +147 -0
- package/dist/fp/factories/amm-withdraw.js.map +1 -0
- package/dist/fp/factories/batch.d.ts +133 -0
- package/dist/fp/factories/batch.d.ts.map +1 -0
- package/dist/fp/factories/batch.js +264 -0
- package/dist/fp/factories/batch.js.map +1 -0
- package/dist/fp/factories/check-cancel.d.ts +22 -0
- package/dist/fp/factories/check-cancel.d.ts.map +1 -0
- package/dist/fp/factories/check-cancel.js +119 -0
- package/dist/fp/factories/check-cancel.js.map +1 -0
- package/dist/fp/factories/check-cash.d.ts +84 -0
- package/dist/fp/factories/check-cash.d.ts.map +1 -0
- package/dist/fp/factories/check-cash.js +95 -0
- package/dist/fp/factories/check-cash.js.map +1 -0
- package/dist/fp/factories/check-create.d.ts +82 -0
- package/dist/fp/factories/check-create.d.ts.map +1 -0
- package/dist/fp/factories/check-create.js +101 -0
- package/dist/fp/factories/check-create.js.map +1 -0
- package/dist/fp/factories/clawback.d.ts +160 -0
- package/dist/fp/factories/clawback.d.ts.map +1 -0
- package/dist/fp/factories/clawback.js +111 -0
- package/dist/fp/factories/clawback.js.map +1 -0
- package/dist/fp/factories/confidential-mpt-clawback.d.ts +24 -0
- package/dist/fp/factories/confidential-mpt-clawback.d.ts.map +1 -0
- package/dist/fp/factories/confidential-mpt-clawback.js +200 -0
- package/dist/fp/factories/confidential-mpt-clawback.js.map +1 -0
- package/dist/fp/factories/confidential-mpt-convert-back.d.ts +32 -0
- package/dist/fp/factories/confidential-mpt-convert-back.d.ts.map +1 -0
- package/dist/fp/factories/confidential-mpt-convert-back.js +203 -0
- package/dist/fp/factories/confidential-mpt-convert-back.js.map +1 -0
- package/dist/fp/factories/confidential-mpt-convert.d.ts +32 -0
- package/dist/fp/factories/confidential-mpt-convert.d.ts.map +1 -0
- package/dist/fp/factories/confidential-mpt-convert.js +209 -0
- package/dist/fp/factories/confidential-mpt-convert.js.map +1 -0
- package/dist/fp/factories/confidential-mpt-merge-inbox.d.ts +18 -0
- package/dist/fp/factories/confidential-mpt-merge-inbox.d.ts.map +1 -0
- package/dist/fp/factories/confidential-mpt-merge-inbox.js +130 -0
- package/dist/fp/factories/confidential-mpt-merge-inbox.js.map +1 -0
- package/dist/fp/factories/confidential-mpt-send.d.ts +38 -0
- package/dist/fp/factories/confidential-mpt-send.d.ts.map +1 -0
- package/dist/fp/factories/confidential-mpt-send.js +254 -0
- package/dist/fp/factories/confidential-mpt-send.js.map +1 -0
- package/dist/fp/factories/credential-accept.d.ts +23 -0
- package/dist/fp/factories/credential-accept.d.ts.map +1 -0
- package/dist/fp/factories/credential-accept.js +135 -0
- package/dist/fp/factories/credential-accept.js.map +1 -0
- package/dist/fp/factories/credential-create.d.ts +24 -0
- package/dist/fp/factories/credential-create.d.ts.map +1 -0
- package/dist/fp/factories/credential-create.js +204 -0
- package/dist/fp/factories/credential-create.js.map +1 -0
- package/dist/fp/factories/credential-delete.d.ts +33 -0
- package/dist/fp/factories/credential-delete.d.ts.map +1 -0
- package/dist/fp/factories/credential-delete.js +167 -0
- package/dist/fp/factories/credential-delete.js.map +1 -0
- package/dist/fp/factories/delegate-set.d.ts +52 -0
- package/dist/fp/factories/delegate-set.d.ts.map +1 -0
- package/dist/fp/factories/delegate-set.js +190 -0
- package/dist/fp/factories/delegate-set.js.map +1 -0
- package/dist/fp/factories/deposit-preauth.d.ts +183 -0
- package/dist/fp/factories/deposit-preauth.d.ts.map +1 -0
- package/dist/fp/factories/deposit-preauth.js +159 -0
- package/dist/fp/factories/deposit-preauth.js.map +1 -0
- package/dist/fp/factories/did-delete.d.ts +22 -0
- package/dist/fp/factories/did-delete.d.ts.map +1 -0
- package/dist/fp/factories/did-delete.js +126 -0
- package/dist/fp/factories/did-delete.js.map +1 -0
- package/dist/fp/factories/did-set.d.ts +68 -0
- package/dist/fp/factories/did-set.d.ts.map +1 -0
- package/dist/fp/factories/did-set.js +178 -0
- package/dist/fp/factories/did-set.js.map +1 -0
- package/dist/fp/factories/escrow-cancel.d.ts +28 -0
- package/dist/fp/factories/escrow-cancel.d.ts.map +1 -0
- package/dist/fp/factories/escrow-cancel.js +127 -0
- package/dist/fp/factories/escrow-cancel.js.map +1 -0
- package/dist/fp/factories/escrow-create.d.ts +103 -0
- package/dist/fp/factories/escrow-create.d.ts.map +1 -0
- package/dist/fp/factories/escrow-create.js +133 -0
- package/dist/fp/factories/escrow-create.js.map +1 -0
- package/dist/fp/factories/escrow-finish.d.ts +39 -0
- package/dist/fp/factories/escrow-finish.d.ts.map +1 -0
- package/dist/fp/factories/escrow-finish.js +173 -0
- package/dist/fp/factories/escrow-finish.js.map +1 -0
- package/dist/fp/factories/ledger-state-fix.d.ts +31 -0
- package/dist/fp/factories/ledger-state-fix.d.ts.map +1 -0
- package/dist/fp/factories/ledger-state-fix.js +163 -0
- package/dist/fp/factories/ledger-state-fix.js.map +1 -0
- package/dist/fp/factories/loan-broker-cover-clawback.d.ts +106 -0
- package/dist/fp/factories/loan-broker-cover-clawback.d.ts.map +1 -0
- package/dist/fp/factories/loan-broker-cover-clawback.js +122 -0
- package/dist/fp/factories/loan-broker-cover-clawback.js.map +1 -0
- package/dist/fp/factories/loan-broker-cover-deposit.d.ts +65 -0
- package/dist/fp/factories/loan-broker-cover-deposit.d.ts.map +1 -0
- package/dist/fp/factories/loan-broker-cover-deposit.js +81 -0
- package/dist/fp/factories/loan-broker-cover-deposit.js.map +1 -0
- package/dist/fp/factories/loan-broker-cover-withdraw.d.ts +96 -0
- package/dist/fp/factories/loan-broker-cover-withdraw.d.ts.map +1 -0
- package/dist/fp/factories/loan-broker-cover-withdraw.js +116 -0
- package/dist/fp/factories/loan-broker-cover-withdraw.js.map +1 -0
- package/dist/fp/factories/loan-broker-delete.d.ts +20 -0
- package/dist/fp/factories/loan-broker-delete.d.ts.map +1 -0
- package/dist/fp/factories/loan-broker-delete.js +94 -0
- package/dist/fp/factories/loan-broker-delete.js.map +1 -0
- package/dist/fp/factories/loan-broker-set.d.ts +108 -0
- package/dist/fp/factories/loan-broker-set.d.ts.map +1 -0
- package/dist/fp/factories/loan-broker-set.js +133 -0
- package/dist/fp/factories/loan-broker-set.js.map +1 -0
- package/dist/fp/factories/loan-delete.d.ts +18 -0
- package/dist/fp/factories/loan-delete.d.ts.map +1 -0
- package/dist/fp/factories/loan-delete.js +95 -0
- package/dist/fp/factories/loan-delete.js.map +1 -0
- package/dist/fp/factories/loan-manage.d.ts +72 -0
- package/dist/fp/factories/loan-manage.d.ts.map +1 -0
- package/dist/fp/factories/loan-manage.js +79 -0
- package/dist/fp/factories/loan-manage.js.map +1 -0
- package/dist/fp/factories/loan-pay.d.ts +70 -0
- package/dist/fp/factories/loan-pay.d.ts.map +1 -0
- package/dist/fp/factories/loan-pay.js +115 -0
- package/dist/fp/factories/loan-pay.js.map +1 -0
- package/dist/fp/factories/loan-set.d.ts +67 -0
- package/dist/fp/factories/loan-set.d.ts.map +1 -0
- package/dist/fp/factories/loan-set.js +102 -0
- package/dist/fp/factories/loan-set.js.map +1 -0
- package/dist/fp/factories/mptoken-authorize.d.ts +83 -0
- package/dist/fp/factories/mptoken-authorize.d.ts.map +1 -0
- package/dist/fp/factories/mptoken-authorize.js +63 -0
- package/dist/fp/factories/mptoken-authorize.js.map +1 -0
- package/dist/fp/factories/mptoken-issuance-create.d.ts +71 -0
- package/dist/fp/factories/mptoken-issuance-create.d.ts.map +1 -0
- package/dist/fp/factories/mptoken-issuance-create.js +135 -0
- package/dist/fp/factories/mptoken-issuance-create.js.map +1 -0
- package/dist/fp/factories/mptoken-issuance-destroy.d.ts +32 -0
- package/dist/fp/factories/mptoken-issuance-destroy.d.ts.map +1 -0
- package/dist/fp/factories/mptoken-issuance-destroy.js +105 -0
- package/dist/fp/factories/mptoken-issuance-destroy.js.map +1 -0
- package/dist/fp/factories/mptoken-issuance-set.d.ts +196 -0
- package/dist/fp/factories/mptoken-issuance-set.d.ts.map +1 -0
- package/dist/fp/factories/mptoken-issuance-set.js +333 -0
- package/dist/fp/factories/mptoken-issuance-set.js.map +1 -0
- package/dist/fp/factories/nftoken-accept-offer.d.ts +108 -0
- package/dist/fp/factories/nftoken-accept-offer.d.ts.map +1 -0
- package/dist/fp/factories/nftoken-accept-offer.js +105 -0
- package/dist/fp/factories/nftoken-accept-offer.js.map +1 -0
- package/dist/fp/factories/nftoken-burn.d.ts +27 -0
- package/dist/fp/factories/nftoken-burn.d.ts.map +1 -0
- package/dist/fp/factories/nftoken-burn.js +125 -0
- package/dist/fp/factories/nftoken-burn.js.map +1 -0
- package/dist/fp/factories/nftoken-cancel-offer.d.ts +19 -0
- package/dist/fp/factories/nftoken-cancel-offer.d.ts.map +1 -0
- package/dist/fp/factories/nftoken-cancel-offer.js +143 -0
- package/dist/fp/factories/nftoken-cancel-offer.js.map +1 -0
- package/dist/fp/factories/nftoken-create-offer.d.ts +159 -0
- package/dist/fp/factories/nftoken-create-offer.d.ts.map +1 -0
- package/dist/fp/factories/nftoken-create-offer.js +212 -0
- package/dist/fp/factories/nftoken-create-offer.js.map +1 -0
- package/dist/fp/factories/nftoken-mint.d.ts +155 -0
- package/dist/fp/factories/nftoken-mint.d.ts.map +1 -0
- package/dist/fp/factories/nftoken-mint.js +165 -0
- package/dist/fp/factories/nftoken-mint.js.map +1 -0
- package/dist/fp/factories/nftoken-modify.d.ts +28 -0
- package/dist/fp/factories/nftoken-modify.d.ts.map +1 -0
- package/dist/fp/factories/nftoken-modify.js +209 -0
- package/dist/fp/factories/nftoken-modify.js.map +1 -0
- package/dist/fp/factories/offer-cancel.d.ts +21 -0
- package/dist/fp/factories/offer-cancel.d.ts.map +1 -0
- package/dist/fp/factories/offer-cancel.js +99 -0
- package/dist/fp/factories/offer-cancel.js.map +1 -0
- package/dist/fp/factories/offer-create.d.ts +125 -0
- package/dist/fp/factories/offer-create.d.ts.map +1 -0
- package/dist/fp/factories/offer-create.js +230 -0
- package/dist/fp/factories/offer-create.js.map +1 -0
- package/dist/fp/factories/oracle-delete.d.ts +21 -0
- package/dist/fp/factories/oracle-delete.d.ts.map +1 -0
- package/dist/fp/factories/oracle-delete.js +101 -0
- package/dist/fp/factories/oracle-delete.js.map +1 -0
- package/dist/fp/factories/oracle-set.d.ts +40 -0
- package/dist/fp/factories/oracle-set.d.ts.map +1 -0
- package/dist/fp/factories/oracle-set.js +257 -0
- package/dist/fp/factories/oracle-set.js.map +1 -0
- package/dist/fp/factories/payment-channel-claim.d.ts +153 -0
- package/dist/fp/factories/payment-channel-claim.d.ts.map +1 -0
- package/dist/fp/factories/payment-channel-claim.js +118 -0
- package/dist/fp/factories/payment-channel-claim.js.map +1 -0
- package/dist/fp/factories/payment-channel-create.d.ts +30 -0
- package/dist/fp/factories/payment-channel-create.d.ts.map +1 -0
- package/dist/fp/factories/payment-channel-create.js +172 -0
- package/dist/fp/factories/payment-channel-create.js.map +1 -0
- package/dist/fp/factories/payment-channel-fund.d.ts +25 -0
- package/dist/fp/factories/payment-channel-fund.d.ts.map +1 -0
- package/dist/fp/factories/payment-channel-fund.js +142 -0
- package/dist/fp/factories/payment-channel-fund.js.map +1 -0
- package/dist/fp/factories/payment.d.ts +65 -0
- package/dist/fp/factories/payment.d.ts.map +1 -0
- package/dist/fp/factories/payment.js +48 -0
- package/dist/fp/factories/payment.js.map +1 -0
- package/dist/fp/factories/permissioned-domain-delete.d.ts +18 -0
- package/dist/fp/factories/permissioned-domain-delete.d.ts.map +1 -0
- package/dist/fp/factories/permissioned-domain-delete.js +88 -0
- package/dist/fp/factories/permissioned-domain-delete.js.map +1 -0
- package/dist/fp/factories/permissioned-domain-set.d.ts +118 -0
- package/dist/fp/factories/permissioned-domain-set.d.ts.map +1 -0
- package/dist/fp/factories/permissioned-domain-set.js +100 -0
- package/dist/fp/factories/permissioned-domain-set.js.map +1 -0
- package/dist/fp/factories/set-regular-key.d.ts +30 -0
- package/dist/fp/factories/set-regular-key.d.ts.map +1 -0
- package/dist/fp/factories/set-regular-key.js +81 -0
- package/dist/fp/factories/set-regular-key.js.map +1 -0
- package/dist/fp/factories/signer-list-set.d.ts +61 -0
- package/dist/fp/factories/signer-list-set.d.ts.map +1 -0
- package/dist/fp/factories/signer-list-set.js +250 -0
- package/dist/fp/factories/signer-list-set.js.map +1 -0
- package/dist/fp/factories/sponsorship-set.d.ts +148 -0
- package/dist/fp/factories/sponsorship-set.d.ts.map +1 -0
- package/dist/fp/factories/sponsorship-set.js +201 -0
- package/dist/fp/factories/sponsorship-set.js.map +1 -0
- package/dist/fp/factories/sponsorship-transfer.d.ts +173 -0
- package/dist/fp/factories/sponsorship-transfer.d.ts.map +1 -0
- package/dist/fp/factories/sponsorship-transfer.js +195 -0
- package/dist/fp/factories/sponsorship-transfer.js.map +1 -0
- package/dist/fp/factories/ticket-create.d.ts +20 -0
- package/dist/fp/factories/ticket-create.d.ts.map +1 -0
- package/dist/fp/factories/ticket-create.js +120 -0
- package/dist/fp/factories/ticket-create.js.map +1 -0
- package/dist/fp/factories/trust-set.d.ts +100 -0
- package/dist/fp/factories/trust-set.d.ts.map +1 -0
- package/dist/fp/factories/trust-set.js +111 -0
- package/dist/fp/factories/trust-set.js.map +1 -0
- package/dist/fp/factories/vault-clawback.d.ts +83 -0
- package/dist/fp/factories/vault-clawback.d.ts.map +1 -0
- package/dist/fp/factories/vault-clawback.js +91 -0
- package/dist/fp/factories/vault-clawback.js.map +1 -0
- package/dist/fp/factories/vault-create.d.ts +51 -0
- package/dist/fp/factories/vault-create.d.ts.map +1 -0
- package/dist/fp/factories/vault-create.js +141 -0
- package/dist/fp/factories/vault-create.js.map +1 -0
- package/dist/fp/factories/vault-delete.d.ts +20 -0
- package/dist/fp/factories/vault-delete.d.ts.map +1 -0
- package/dist/fp/factories/vault-delete.js +103 -0
- package/dist/fp/factories/vault-delete.js.map +1 -0
- package/dist/fp/factories/vault-deposit.d.ts +56 -0
- package/dist/fp/factories/vault-deposit.d.ts.map +1 -0
- package/dist/fp/factories/vault-deposit.js +85 -0
- package/dist/fp/factories/vault-deposit.js.map +1 -0
- package/dist/fp/factories/vault-set.d.ts +32 -0
- package/dist/fp/factories/vault-set.d.ts.map +1 -0
- package/dist/fp/factories/vault-set.js +135 -0
- package/dist/fp/factories/vault-set.js.map +1 -0
- package/dist/fp/factories/vault-withdraw.d.ts +82 -0
- package/dist/fp/factories/vault-withdraw.d.ts.map +1 -0
- package/dist/fp/factories/vault-withdraw.js +122 -0
- package/dist/fp/factories/vault-withdraw.js.map +1 -0
- package/dist/fp/factories/xchain-account-create-commit.d.ts +180 -0
- package/dist/fp/factories/xchain-account-create-commit.d.ts.map +1 -0
- package/dist/fp/factories/xchain-account-create-commit.js +99 -0
- package/dist/fp/factories/xchain-account-create-commit.js.map +1 -0
- package/dist/fp/factories/xchain-add-account-create-attestation.d.ts +213 -0
- package/dist/fp/factories/xchain-add-account-create-attestation.d.ts.map +1 -0
- package/dist/fp/factories/xchain-add-account-create-attestation.js +95 -0
- package/dist/fp/factories/xchain-add-account-create-attestation.js.map +1 -0
- package/dist/fp/factories/xchain-add-claim-attestation.d.ts +206 -0
- package/dist/fp/factories/xchain-add-claim-attestation.d.ts.map +1 -0
- package/dist/fp/factories/xchain-add-claim-attestation.js +97 -0
- package/dist/fp/factories/xchain-add-claim-attestation.js.map +1 -0
- package/dist/fp/factories/xchain-claim.d.ts +187 -0
- package/dist/fp/factories/xchain-claim.d.ts.map +1 -0
- package/dist/fp/factories/xchain-claim.js +140 -0
- package/dist/fp/factories/xchain-claim.js.map +1 -0
- package/dist/fp/factories/xchain-commit.d.ts +168 -0
- package/dist/fp/factories/xchain-commit.d.ts.map +1 -0
- package/dist/fp/factories/xchain-commit.js +137 -0
- package/dist/fp/factories/xchain-commit.js.map +1 -0
- package/dist/fp/factories/xchain-create-bridge.d.ts +206 -0
- package/dist/fp/factories/xchain-create-bridge.d.ts.map +1 -0
- package/dist/fp/factories/xchain-create-bridge.js +100 -0
- package/dist/fp/factories/xchain-create-bridge.js.map +1 -0
- package/dist/fp/factories/xchain-create-claim-id.d.ts +199 -0
- package/dist/fp/factories/xchain-create-claim-id.d.ts.map +1 -0
- package/dist/fp/factories/xchain-create-claim-id.js +78 -0
- package/dist/fp/factories/xchain-create-claim-id.js.map +1 -0
- package/dist/fp/factories/xchain-modify-bridge.d.ts +198 -0
- package/dist/fp/factories/xchain-modify-bridge.d.ts.map +1 -0
- package/dist/fp/factories/xchain-modify-bridge.js +102 -0
- package/dist/fp/factories/xchain-modify-bridge.js.map +1 -0
- package/dist/fp/index.d.ts +124 -0
- package/dist/fp/index.d.ts.map +1 -0
- package/dist/fp/index.js +152 -0
- package/dist/fp/index.js.map +1 -0
- package/dist/fp/shape.d.ts +34 -0
- package/dist/fp/shape.d.ts.map +1 -0
- package/dist/fp/shape.js +80 -0
- package/dist/fp/shape.js.map +1 -0
- package/dist/types/amounts.d.ts +49 -0
- package/dist/types/amounts.d.ts.map +1 -0
- package/dist/types/amounts.js +8 -0
- package/dist/types/amounts.js.map +1 -0
- package/dist/types/base.d.ts +103 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +2 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/common.d.ts +163 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +5 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/flags.d.ts +317 -0
- package/dist/types/flags.d.ts.map +1 -0
- package/dist/types/flags.js +253 -0
- package/dist/types/flags.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/transaction-types.d.ts +7 -0
- package/dist/types/transaction-types.d.ts.map +1 -0
- package/dist/types/transaction-types.js +2 -0
- package/dist/types/transaction-types.js.map +1 -0
- package/dist/validation/base.d.ts +8 -0
- package/dist/validation/base.d.ts.map +1 -0
- package/dist/validation/base.js +79 -0
- package/dist/validation/base.js.map +1 -0
- package/dist/validation/helpers.d.ts +42 -0
- package/dist/validation/helpers.d.ts.map +1 -0
- package/dist/validation/helpers.js +154 -0
- package/dist/validation/helpers.js.map +1 -0
- package/dist/validation/index.d.ts +3 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +3 -0
- package/dist/validation/index.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { isAccount, isAmount, isCurrency, isIssuedCurrencyAmount, isString, } from '../../validation/helpers.js';
|
|
2
|
+
import { ValidationError } from '../../errors.js';
|
|
3
|
+
import { buildFrozenTx, mergeForWith } from '../shape.js';
|
|
4
|
+
// ─── Spec constants ──────────────────────────────────────────────────
|
|
5
|
+
// xrpl.js `AMMWithdrawFlags` enum — these seven mode flags identify
|
|
6
|
+
// the mutually-exclusive AMM-withdraw modes.
|
|
7
|
+
// tfLPToken = 0x00010000
|
|
8
|
+
// tfWithdrawAll = 0x00020000
|
|
9
|
+
// tfOneAssetWithdrawAll = 0x00040000
|
|
10
|
+
// tfSingleAsset = 0x00080000
|
|
11
|
+
// tfTwoAsset = 0x00100000
|
|
12
|
+
// tfOneAssetLPToken = 0x00200000
|
|
13
|
+
// tfLimitLPToken = 0x00400000
|
|
14
|
+
//
|
|
15
|
+
// They are non-overlapping single bits, so a "exactly one" check
|
|
16
|
+
// reduces to: popcount(flags & MASK) === 1.
|
|
17
|
+
const AMM_WITHDRAW_FLAG_BITS = [
|
|
18
|
+
0x00010000, // tfLPToken
|
|
19
|
+
0x00020000, // tfWithdrawAll
|
|
20
|
+
0x00040000, // tfOneAssetWithdrawAll
|
|
21
|
+
0x00080000, // tfSingleAsset
|
|
22
|
+
0x00100000, // tfTwoAsset
|
|
23
|
+
0x00200000, // tfOneAssetLPToken
|
|
24
|
+
0x00400000, // tfLimitLPToken
|
|
25
|
+
];
|
|
26
|
+
const AMM_WITHDRAW_FLAGS_MASK = AMM_WITHDRAW_FLAG_BITS.reduce((acc, bit) => acc | bit, 0);
|
|
27
|
+
// ─── Helpers ─────────────────────────────────────────────────────────
|
|
28
|
+
/**
|
|
29
|
+
* Bit-count of a 32-bit integer (popcount). Used to verify that
|
|
30
|
+
* exactly one of the seven AMM-withdraw mode flag bits is set.
|
|
31
|
+
*/
|
|
32
|
+
function popcount32(n) {
|
|
33
|
+
// Brian Kernighan's algorithm.
|
|
34
|
+
let v = n >>> 0;
|
|
35
|
+
let count = 0;
|
|
36
|
+
while (v !== 0) {
|
|
37
|
+
v &= v - 1;
|
|
38
|
+
count++;
|
|
39
|
+
}
|
|
40
|
+
return count;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Extract the numeric bitmask from `Flags` regardless of whether the
|
|
44
|
+
* caller passed a numeric value or a boolean `AMMWithdrawFlagsInterface`.
|
|
45
|
+
*/
|
|
46
|
+
function flagsToNumber(flags) {
|
|
47
|
+
if (flags === undefined)
|
|
48
|
+
return 0;
|
|
49
|
+
if (typeof flags === 'number')
|
|
50
|
+
return flags;
|
|
51
|
+
let n = 0;
|
|
52
|
+
if (flags.tfLPToken)
|
|
53
|
+
n |= 0x00010000;
|
|
54
|
+
if (flags.tfWithdrawAll)
|
|
55
|
+
n |= 0x00020000;
|
|
56
|
+
if (flags.tfOneAssetWithdrawAll)
|
|
57
|
+
n |= 0x00040000;
|
|
58
|
+
if (flags.tfSingleAsset)
|
|
59
|
+
n |= 0x00080000;
|
|
60
|
+
if (flags.tfTwoAsset)
|
|
61
|
+
n |= 0x00100000;
|
|
62
|
+
if (flags.tfOneAssetLPToken)
|
|
63
|
+
n |= 0x00200000;
|
|
64
|
+
if (flags.tfLimitLPToken)
|
|
65
|
+
n |= 0x00400000;
|
|
66
|
+
return n;
|
|
67
|
+
}
|
|
68
|
+
// ─── Factory ─────────────────────────────────────────────────────────
|
|
69
|
+
export function ammWithdraw(props) {
|
|
70
|
+
// ── Account ── required, must be a valid XRPL classic address.
|
|
71
|
+
if (!isString(props.Account) || !isAccount(props.Account)) {
|
|
72
|
+
throw new ValidationError('AMMWithdraw: Account is required and must be a valid XRPL account address');
|
|
73
|
+
}
|
|
74
|
+
// ── Asset ── required, must be a valid Currency.
|
|
75
|
+
if (!isCurrency(props.Asset)) {
|
|
76
|
+
throw new ValidationError('AMMWithdraw: Asset must be a valid Currency (XRP, trust line, or MPT form)');
|
|
77
|
+
}
|
|
78
|
+
// ── Asset2 ── required, must be a valid Currency.
|
|
79
|
+
if (!isCurrency(props.Asset2)) {
|
|
80
|
+
throw new ValidationError('AMMWithdraw: Asset2 must be a valid Currency (XRP, trust line, or MPT form)');
|
|
81
|
+
}
|
|
82
|
+
// ── Amount ── optional; when present, must be a valid Amount.
|
|
83
|
+
if (props.Amount !== undefined && !isAmount(props.Amount)) {
|
|
84
|
+
throw new ValidationError('AMMWithdraw: Amount must be a valid Amount (XRP drops, trust line, or MPT form)');
|
|
85
|
+
}
|
|
86
|
+
// ── Amount2 ── optional; when present, must be a valid Amount AND
|
|
87
|
+
// Amount must also be present (XLS-0030 §2.4.2.3 — "Amount and
|
|
88
|
+
// Amount2" is the only Amount2-bearing mode).
|
|
89
|
+
if (props.Amount2 !== undefined) {
|
|
90
|
+
if (!isAmount(props.Amount2)) {
|
|
91
|
+
throw new ValidationError('AMMWithdraw: Amount2 must be a valid Amount (XRP drops, trust line, or MPT form)');
|
|
92
|
+
}
|
|
93
|
+
if (props.Amount === undefined) {
|
|
94
|
+
throw new ValidationError('AMMWithdraw: Amount2 requires Amount to be set (XLS-0030 §2.4.2.3 "Amount and Amount2" mode)');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// ── EPrice ── optional; when present, must be a valid Amount AND
|
|
98
|
+
// Amount must also be present (XLS-0030 §2.4.2.3 — "Amount and
|
|
99
|
+
// EPrice" is the only EPrice-bearing mode).
|
|
100
|
+
if (props.EPrice !== undefined) {
|
|
101
|
+
if (!isAmount(props.EPrice)) {
|
|
102
|
+
throw new ValidationError('AMMWithdraw: EPrice must be a valid Amount (XRP drops, trust line, or MPT form)');
|
|
103
|
+
}
|
|
104
|
+
if (props.Amount === undefined) {
|
|
105
|
+
throw new ValidationError('AMMWithdraw: EPrice requires Amount to be set (XLS-0030 §2.4.2.3 "Amount and EPrice" mode)');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// ── LPTokenIn ── optional; when present, must be an
|
|
109
|
+
// IssuedCurrencyAmount. LP tokens are always issued currencies —
|
|
110
|
+
// never XRP and never an MPT.
|
|
111
|
+
if (props.LPTokenIn !== undefined && !isIssuedCurrencyAmount(props.LPTokenIn)) {
|
|
112
|
+
throw new ValidationError('AMMWithdraw: LPTokenIn must be an IssuedCurrencyAmount (currency + issuer + value)');
|
|
113
|
+
}
|
|
114
|
+
// ── Flags ── exactly one AMM-withdraw mode flag bit must be set
|
|
115
|
+
// (xrpl.org `ammwithdraw.md`: "You must specify **exactly one**
|
|
116
|
+
// of these flags, plus any global flags"). We always validate —
|
|
117
|
+
// an absent `Flags`, an explicit `undefined`, and `Flags: 0` all
|
|
118
|
+
// represent "no mode flag set" and must throw.
|
|
119
|
+
const numericFlags = flagsToNumber(props.Flags);
|
|
120
|
+
const ammFlagBits = numericFlags & AMM_WITHDRAW_FLAGS_MASK;
|
|
121
|
+
if (ammFlagBits === 0) {
|
|
122
|
+
throw new ValidationError('AMMWithdraw: Flags must specify exactly one AMM-withdraw mode flag (tfLPToken, tfWithdrawAll, tfOneAssetWithdrawAll, tfSingleAsset, tfTwoAsset, tfOneAssetLPToken, or tfLimitLPToken)');
|
|
123
|
+
}
|
|
124
|
+
if (popcount32(ammFlagBits) !== 1) {
|
|
125
|
+
throw new ValidationError('AMMWithdraw: Flags must specify exactly one AMM-withdraw mode flag (got multiple)');
|
|
126
|
+
}
|
|
127
|
+
return buildFrozenTx('AMMWithdraw', props, {
|
|
128
|
+
validate() {
|
|
129
|
+
// Validated at construction.
|
|
130
|
+
},
|
|
131
|
+
toJSON() {
|
|
132
|
+
const json = {};
|
|
133
|
+
for (const k of Object.keys(this)) {
|
|
134
|
+
if (k === 'validate' || k === 'toJSON' || k === 'with')
|
|
135
|
+
continue;
|
|
136
|
+
const v = this[k];
|
|
137
|
+
if (v !== undefined)
|
|
138
|
+
json[k] = v;
|
|
139
|
+
}
|
|
140
|
+
return json;
|
|
141
|
+
},
|
|
142
|
+
with(overrides) {
|
|
143
|
+
return ammWithdraw(mergeForWith(this, overrides));
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=amm-withdraw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amm-withdraw.js","sourceRoot":"","sources":["../../../src/fp/factories/amm-withdraw.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functional Batch factory — frozen-object style.
|
|
3
|
+
*
|
|
4
|
+
* The Batch transaction (`BatchV1_1` amendment) wraps a list of inner
|
|
5
|
+
* transactions (`RawTransactions`) into a single atomic submission. The
|
|
6
|
+
* factory validates at construction; an invalid Batch can never exist.
|
|
7
|
+
*
|
|
8
|
+
* import { batch } from 'xrplt/fp';
|
|
9
|
+
* const tx = batch({ Account, Flags, RawTransactions: [...] });
|
|
10
|
+
* const j = tx.toJSON();
|
|
11
|
+
* const tx2 = tx.with({ Flags: 0x00020000 }); // tfOnlyOne
|
|
12
|
+
*
|
|
13
|
+
* Compare with the class-based equivalent:
|
|
14
|
+
*
|
|
15
|
+
* import { Batch } from 'xrplt';
|
|
16
|
+
* const tx = new Batch({ Account, Flags, RawTransactions: [...] });
|
|
17
|
+
* tx.validate(); // must be called explicitly
|
|
18
|
+
*
|
|
19
|
+
* @see https://xrpl.org/docs/references/protocol/transactions/types/batch
|
|
20
|
+
* @see https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0056-batch
|
|
21
|
+
*
|
|
22
|
+
* ## Divergences
|
|
23
|
+
* The factory enforces seven preclaim checks that the class API
|
|
24
|
+
* (`src/transactions/batch.ts`) explicitly skips. Each is documented
|
|
25
|
+
* inline with the corresponding citation.
|
|
26
|
+
*
|
|
27
|
+
* 1. `RawTransactions` length must be **2–8** (class: only non-empty).
|
|
28
|
+
* Source: XLS-56 §2.1.2 — "There can be up to 8 transactions
|
|
29
|
+
* included. There must be at least 2 transactions." Cross-checked
|
|
30
|
+
* against xrpl.org error table for `temARRAY_EMPTY` and
|
|
31
|
+
* `temARRAY_TOO_LARGE`.
|
|
32
|
+
*
|
|
33
|
+
* 2. Outer `Flags` must contain **exactly one** batch-mode flag
|
|
34
|
+
* (`tfAllOrNothing` | `tfOnlyOne` | `tfUntilFailure` | `tfIndependent`).
|
|
35
|
+
* Source: XLS-56 §2.1.1 — "Exactly one must be specified in a Batch
|
|
36
|
+
* transaction." Cross-checked against xrpl.org error table for
|
|
37
|
+
* `temINVALID_FLAG` (first clause). The class source comment
|
|
38
|
+
* (`src/transactions/batch.ts:33-38`) explicitly defers this to the
|
|
39
|
+
* ledger.
|
|
40
|
+
*
|
|
41
|
+
* 3. Each inner transaction must set **either** `Sequence` (non-zero)
|
|
42
|
+
* **or** `TicketSequence` (positive integer), but not both and not
|
|
43
|
+
* neither. Source: XLS-56 §2.3.2.12 — "exactly one of the two must
|
|
44
|
+
* be used: a ticketed inner transaction sets `TicketSequence` and
|
|
45
|
+
* `Sequence: 0`, and a sequence-based inner transaction sets a
|
|
46
|
+
* non-zero `Sequence` and omits `TicketSequence`." Cross-checked
|
|
47
|
+
* against xrpl.org error table for `temSEQ_AND_TICKET`.
|
|
48
|
+
*
|
|
49
|
+
* 4. No duplicate inner transactions in `RawTransactions` (deep-equal
|
|
50
|
+
* by canonical JSON serialization with sorted keys).
|
|
51
|
+
* Source: XLS-56 §2.3.2.10 — "There is a duplicate transaction in
|
|
52
|
+
* the `RawTransactions` field (`temREDUNDANT`)."
|
|
53
|
+
*
|
|
54
|
+
* 5. `BatchSigners` length must be ≤ 24 entries.
|
|
55
|
+
* Source: XLS-56 §2.3.3.1 — "The length of `BatchSigners` is greater
|
|
56
|
+
* than 24 (`temARRAY_TOO_LARGE`). This is three times the maximum
|
|
57
|
+
* number of inner transactions."
|
|
58
|
+
*
|
|
59
|
+
* 6. `BatchSigners` must be sorted strictly ascending by `Account` and
|
|
60
|
+
* contain no duplicate accounts. Source: XLS-56 §2.1.3 — "The
|
|
61
|
+
* entries in `BatchSigners` must be sorted in strictly ascending
|
|
62
|
+
* order by `Account`. Duplicate entries are not permitted."
|
|
63
|
+
* Cross-checked against xrpl.org `temBAD_SIGNER` (third and fourth
|
|
64
|
+
* clauses).
|
|
65
|
+
*
|
|
66
|
+
* 7. The outer `Account` may not appear as a `BatchSigner.Account`
|
|
67
|
+
* Source: XLS-56 §2.3.3.2 — "The `BatchSigners` field contains a
|
|
68
|
+
* signature from the account signing the outer transaction
|
|
69
|
+
* (`temBAD_SIGNER`)."
|
|
70
|
+
*
|
|
71
|
+
* 8. Each `BatchSigner` must be exclusively either single-sign
|
|
72
|
+
* (`SigningPubKey` + `TxnSignature`) or multi-sign (`Signers`); the
|
|
73
|
+
* two forms cannot be mixed on the same entry.
|
|
74
|
+
* Source: XLS-56 §2.1.3 — "Either the `SigningPubKey` and
|
|
75
|
+
* `TxnSignature` fields must be included, or the `Signers` field."
|
|
76
|
+
* Cross-checked against xrpl.org note on the `BatchSigners` table.
|
|
77
|
+
*
|
|
78
|
+
* Where the class enforces a rule, the factory matches its error wording
|
|
79
|
+
* so consumers can rely on either API for the same set of guard checks.
|
|
80
|
+
*/
|
|
81
|
+
import type { Signer } from '../../types/common.js';
|
|
82
|
+
import type { BatchFlagsInterface } from '../../types/flags.js';
|
|
83
|
+
/**
|
|
84
|
+
* A single inner transaction wrapped in the Batch's `RawTransactions`
|
|
85
|
+
* array. Per BatchV1_1, the wrapping object has exactly one key:
|
|
86
|
+
* `RawTransaction`.
|
|
87
|
+
*/
|
|
88
|
+
export interface RawTransaction {
|
|
89
|
+
readonly RawTransaction: Record<string, unknown>;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* A counterparty signature for a multi-account Batch tx. The wrapper
|
|
93
|
+
* carries a single `BatchSigner` record.
|
|
94
|
+
*/
|
|
95
|
+
export interface BatchSigner {
|
|
96
|
+
readonly BatchSigner: {
|
|
97
|
+
readonly Account: string;
|
|
98
|
+
readonly SigningPubKey?: string;
|
|
99
|
+
readonly TxnSignature?: string;
|
|
100
|
+
readonly Signers?: Signer[];
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
export interface BatchProps {
|
|
104
|
+
/** The unique address of the transaction sender (outer Batch signer). */
|
|
105
|
+
Account: string;
|
|
106
|
+
/**
|
|
107
|
+
* Batch mode flags. Exactly one of `tfAllOrNothing`, `tfOnlyOne`,
|
|
108
|
+
* `tfUntilFailure`, or `tfIndependent` must be set (XLS-56 §2.1.1).
|
|
109
|
+
*/
|
|
110
|
+
Flags?: number | BatchFlagsInterface | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* 2–8 inner transactions to apply. Each must include the
|
|
113
|
+
* `tfInnerBatchTxn` flag, `Fee: "0"`, and `SigningPubKey: ""`.
|
|
114
|
+
*/
|
|
115
|
+
RawTransactions: RawTransaction[];
|
|
116
|
+
/**
|
|
117
|
+
* Counterparty signatures for multi-account batches. Optional; if any
|
|
118
|
+
* inner-tx account is not the outer `Account`, the corresponding
|
|
119
|
+
* `BatchSigner` entry is required (XLS-56 §2.1.3).
|
|
120
|
+
*/
|
|
121
|
+
BatchSigners?: BatchSigner[] | undefined;
|
|
122
|
+
/** Common base fields — pass-through only. */
|
|
123
|
+
Fee?: string | undefined;
|
|
124
|
+
Sequence?: number | undefined;
|
|
125
|
+
}
|
|
126
|
+
export interface Batch extends Readonly<BatchProps> {
|
|
127
|
+
readonly TransactionType: 'Batch';
|
|
128
|
+
validate(): void;
|
|
129
|
+
toJSON(): Record<string, unknown>;
|
|
130
|
+
with(overrides: Partial<BatchProps>): Batch;
|
|
131
|
+
}
|
|
132
|
+
export declare function batch(props: BatchProps): Batch;
|
|
133
|
+
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAsBhE;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IACjD;;;OAGG;IACH,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IACzC,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,KAAM,SAAQ,QAAQ,CAAC,UAAU,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;CAC7C;AA4ED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CA4Q9C"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { GlobalFlags } from '../../types/flags.js';
|
|
2
|
+
import { isAccount, isArray, isRecord, isString, } from '../../validation/helpers.js';
|
|
3
|
+
import { ValidationError } from '../../errors.js';
|
|
4
|
+
import { buildFrozenTx, mergeForWith, require } from '../shape.js';
|
|
5
|
+
// ─── Spec constants ──────────────────────────────────────────────────
|
|
6
|
+
// Minimum number of inner transactions in a Batch (XLS-56 §2.1.2).
|
|
7
|
+
const MIN_RAW_TRANSACTIONS = 2;
|
|
8
|
+
// Maximum number of inner transactions in a Batch (XLS-56 §2.1.2).
|
|
9
|
+
const MAX_RAW_TRANSACTIONS = 8;
|
|
10
|
+
// Maximum number of BatchSigner entries (XLS-56 §2.3.3.1).
|
|
11
|
+
const MAX_BATCH_SIGNERS = 24;
|
|
12
|
+
// ─── Helpers ─────────────────────────────────────────────────────────
|
|
13
|
+
/**
|
|
14
|
+
* Count how many of the four batch-mode flags are set in `flags`.
|
|
15
|
+
* Returns 0–4.
|
|
16
|
+
*/
|
|
17
|
+
function countBatchModeFlags(flags) {
|
|
18
|
+
let count = 0;
|
|
19
|
+
for (const bit of [
|
|
20
|
+
0x00010000,
|
|
21
|
+
0x00020000,
|
|
22
|
+
0x00040000,
|
|
23
|
+
0x00080000,
|
|
24
|
+
]) {
|
|
25
|
+
if ((flags & bit) === bit)
|
|
26
|
+
count += 1;
|
|
27
|
+
}
|
|
28
|
+
return count;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve a possibly-boolean-map `Flags` value to a numeric bitmask.
|
|
32
|
+
* Falls back to 0 when neither form is supplied.
|
|
33
|
+
*/
|
|
34
|
+
function flagsToNumber(flags) {
|
|
35
|
+
if (flags === undefined)
|
|
36
|
+
return 0;
|
|
37
|
+
if (typeof flags === 'number')
|
|
38
|
+
return flags;
|
|
39
|
+
let n = 0;
|
|
40
|
+
if (flags.tfAllOrNothing)
|
|
41
|
+
n |= 0x00010000;
|
|
42
|
+
if (flags.tfOnlyOne)
|
|
43
|
+
n |= 0x00020000;
|
|
44
|
+
if (flags.tfUntilFailure)
|
|
45
|
+
n |= 0x00040000;
|
|
46
|
+
if (flags.tfIndependent)
|
|
47
|
+
n |= 0x00080000;
|
|
48
|
+
if (flags.tfInnerBatchTxn)
|
|
49
|
+
n |= GlobalFlags.tfInnerBatchTxn;
|
|
50
|
+
return n;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Canonical JSON serialization for inner-tx duplicate detection. Sorts
|
|
54
|
+
* object keys recursively so `{a:1,b:2}` and `{b:2,a:1}` compare equal.
|
|
55
|
+
*
|
|
56
|
+
* Not for use as a wire serializer — only as a hash key.
|
|
57
|
+
*/
|
|
58
|
+
function stableStringify(value) {
|
|
59
|
+
if (value === null)
|
|
60
|
+
return 'null';
|
|
61
|
+
if (typeof value === 'number') {
|
|
62
|
+
if (!Number.isFinite(value))
|
|
63
|
+
return 'null';
|
|
64
|
+
return JSON.stringify(value);
|
|
65
|
+
}
|
|
66
|
+
if (typeof value === 'string')
|
|
67
|
+
return JSON.stringify(value);
|
|
68
|
+
if (typeof value === 'boolean')
|
|
69
|
+
return value ? 'true' : 'false';
|
|
70
|
+
if (Array.isArray(value)) {
|
|
71
|
+
return '[' + value.map(stableStringify).join(',') + ']';
|
|
72
|
+
}
|
|
73
|
+
if (typeof value === 'object') {
|
|
74
|
+
const keys = Object.keys(value).sort();
|
|
75
|
+
return ('{' +
|
|
76
|
+
keys
|
|
77
|
+
.map((k) => JSON.stringify(k) +
|
|
78
|
+
':' +
|
|
79
|
+
stableStringify(value[k]))
|
|
80
|
+
.join(',') +
|
|
81
|
+
'}');
|
|
82
|
+
}
|
|
83
|
+
return JSON.stringify(String(value));
|
|
84
|
+
}
|
|
85
|
+
// ─── Factory ─────────────────────────────────────────────────────────
|
|
86
|
+
export function batch(props) {
|
|
87
|
+
// ── Account ── required, valid XRPL address.
|
|
88
|
+
require(props.Account, 'Batch: Account is required', isAccount);
|
|
89
|
+
// ── Outer Flags ── exactly one batch-mode flag must be set.
|
|
90
|
+
// XLS-56 §2.1.1 ("Exactly one must be specified").
|
|
91
|
+
const outerFlags = flagsToNumber(props.Flags);
|
|
92
|
+
const modeCount = countBatchModeFlags(outerFlags);
|
|
93
|
+
if (modeCount !== 1) {
|
|
94
|
+
throw new ValidationError(`Batch: Flags must contain exactly one of tfAllOrNothing, tfOnlyOne, tfUntilFailure, or tfIndependent (found ${modeCount})`);
|
|
95
|
+
}
|
|
96
|
+
// ── RawTransactions ── required, 2–8 entries.
|
|
97
|
+
if (!isArray(props.RawTransactions)) {
|
|
98
|
+
throw new ValidationError('Batch: RawTransactions must be an array');
|
|
99
|
+
}
|
|
100
|
+
if (props.RawTransactions.length < MIN_RAW_TRANSACTIONS) {
|
|
101
|
+
throw new ValidationError(`Batch: RawTransactions must contain at least ${MIN_RAW_TRANSACTIONS} transactions (found ${props.RawTransactions.length})`);
|
|
102
|
+
}
|
|
103
|
+
if (props.RawTransactions.length > MAX_RAW_TRANSACTIONS) {
|
|
104
|
+
throw new ValidationError(`Batch: RawTransactions must contain at most ${MAX_RAW_TRANSACTIONS} transactions (found ${props.RawTransactions.length})`);
|
|
105
|
+
}
|
|
106
|
+
// ── Each inner transaction: shape + inner-tx invariants.
|
|
107
|
+
const seen = new Set();
|
|
108
|
+
props.RawTransactions.forEach((wrapper, index) => {
|
|
109
|
+
if (!isRecord(wrapper)) {
|
|
110
|
+
throw new ValidationError(`Batch: RawTransactions[${index}] is not an object`);
|
|
111
|
+
}
|
|
112
|
+
const inner = wrapper['RawTransaction'];
|
|
113
|
+
if (inner === undefined) {
|
|
114
|
+
throw new ValidationError(`Batch: RawTransactions[${index}] is missing the 'RawTransaction' key`);
|
|
115
|
+
}
|
|
116
|
+
if (!isRecord(inner)) {
|
|
117
|
+
throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction is not an object`);
|
|
118
|
+
}
|
|
119
|
+
// No nesting: an inner tx cannot itself be a Batch.
|
|
120
|
+
if (inner['TransactionType'] === 'Batch') {
|
|
121
|
+
throw new ValidationError(`Batch: RawTransactions[${index}] is a Batch transaction. Cannot nest Batch transactions.`);
|
|
122
|
+
}
|
|
123
|
+
// tfInnerBatchTxn flag must be set.
|
|
124
|
+
const innerFlags = inner['Flags'];
|
|
125
|
+
if (typeof innerFlags !== 'number' ||
|
|
126
|
+
(innerFlags & GlobalFlags.tfInnerBatchTxn) !== GlobalFlags.tfInnerBatchTxn) {
|
|
127
|
+
throw new ValidationError(`Batch: RawTransactions[${index}] must contain the tfInnerBatchTxn flag`);
|
|
128
|
+
}
|
|
129
|
+
// Fee must be "0" (or null/undefined, per xrpl.js compatibility).
|
|
130
|
+
const fee = inner['Fee'];
|
|
131
|
+
if (fee !== undefined && fee !== null && fee !== '0') {
|
|
132
|
+
throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.Fee must be "0" (outer tx pays all fees)`);
|
|
133
|
+
}
|
|
134
|
+
// SigningPubKey must be "" (or null/undefined, per xrpl.js).
|
|
135
|
+
const spk = inner['SigningPubKey'];
|
|
136
|
+
if (spk !== undefined && spk !== null && spk !== '') {
|
|
137
|
+
throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.SigningPubKey must be ""`);
|
|
138
|
+
}
|
|
139
|
+
// TxnSignature must be absent.
|
|
140
|
+
if (inner['TxnSignature'] !== undefined) {
|
|
141
|
+
throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.TxnSignature must be absent`);
|
|
142
|
+
}
|
|
143
|
+
// Signers must be absent.
|
|
144
|
+
if (inner['Signers'] !== undefined) {
|
|
145
|
+
throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.Signers must be absent`);
|
|
146
|
+
}
|
|
147
|
+
// Sequence XOR TicketSequence: exactly one, and Sequence must be
|
|
148
|
+
// non-zero when used (XLS-56 §2.3.2.12 → temSEQ_AND_TICKET).
|
|
149
|
+
const hasSeq = inner['Sequence'] !== undefined;
|
|
150
|
+
const hasTicket = inner['TicketSequence'] !== undefined;
|
|
151
|
+
if (hasSeq && hasTicket) {
|
|
152
|
+
throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction must set either Sequence or TicketSequence, not both`);
|
|
153
|
+
}
|
|
154
|
+
if (!hasSeq && !hasTicket) {
|
|
155
|
+
throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction must set either Sequence or TicketSequence`);
|
|
156
|
+
}
|
|
157
|
+
if (hasSeq) {
|
|
158
|
+
const seq = inner['Sequence'];
|
|
159
|
+
if (typeof seq !== 'number' ||
|
|
160
|
+
!Number.isInteger(seq) ||
|
|
161
|
+
seq <= 0) {
|
|
162
|
+
throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.Sequence must be a positive integer when used`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (hasTicket) {
|
|
166
|
+
const ts = inner['TicketSequence'];
|
|
167
|
+
if (typeof ts !== 'number' ||
|
|
168
|
+
!Number.isInteger(ts) ||
|
|
169
|
+
ts <= 0) {
|
|
170
|
+
throw new ValidationError(`Batch: RawTransactions[${index}].RawTransaction.TicketSequence must be a positive integer when used`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Duplicate detection (XLS-56 §2.3.2.10 → temREDUNDANT).
|
|
174
|
+
const key = stableStringify(inner);
|
|
175
|
+
if (seen.has(key)) {
|
|
176
|
+
throw new ValidationError(`Batch: RawTransactions[${index}] is a duplicate of a previous inner transaction`);
|
|
177
|
+
}
|
|
178
|
+
seen.add(key);
|
|
179
|
+
});
|
|
180
|
+
// ── BatchSigners ── optional; if present, validate fully.
|
|
181
|
+
if (props.BatchSigners !== undefined) {
|
|
182
|
+
if (!isArray(props.BatchSigners)) {
|
|
183
|
+
throw new ValidationError('Batch: BatchSigners must be an array');
|
|
184
|
+
}
|
|
185
|
+
if (props.BatchSigners.length > MAX_BATCH_SIGNERS) {
|
|
186
|
+
throw new ValidationError(`Batch: BatchSigners must contain at most ${MAX_BATCH_SIGNERS} entries (found ${props.BatchSigners.length})`);
|
|
187
|
+
}
|
|
188
|
+
const seenAccounts = [];
|
|
189
|
+
props.BatchSigners.forEach((signerWrapper, index) => {
|
|
190
|
+
if (!isRecord(signerWrapper)) {
|
|
191
|
+
throw new ValidationError(`Batch: BatchSigners[${index}] is not an object`);
|
|
192
|
+
}
|
|
193
|
+
const signer = signerWrapper['BatchSigner'];
|
|
194
|
+
if (!isRecord(signer)) {
|
|
195
|
+
throw new ValidationError(`Batch: BatchSigners[${index}] is missing the 'BatchSigner' key`);
|
|
196
|
+
}
|
|
197
|
+
// Account required, must be a valid XRPL address.
|
|
198
|
+
const acct = signer['Account'];
|
|
199
|
+
if (!isString(acct) || !isAccount(acct)) {
|
|
200
|
+
throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.Account is required and must be a valid XRPL account address`);
|
|
201
|
+
}
|
|
202
|
+
// Outer Account may not appear here (XLS-56 §2.3.3.2).
|
|
203
|
+
if (acct === props.Account) {
|
|
204
|
+
throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.Account must not equal the outer Account (the outer signer is implicit)`);
|
|
205
|
+
}
|
|
206
|
+
// Strictly ascending by Account; no duplicates (XLS-56 §2.1.3).
|
|
207
|
+
for (const prior of seenAccounts) {
|
|
208
|
+
if (prior >= acct) {
|
|
209
|
+
throw new ValidationError(`Batch: BatchSigners must be sorted in strictly ascending order by Account (BatchSigners[${index}] out of order)`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
seenAccounts.push(acct);
|
|
213
|
+
// Single-sign XOR multi-sign exclusivity
|
|
214
|
+
// (XLS-56 §2.1.3: "Either ... or ...").
|
|
215
|
+
const hasSigningPubKey = signer['SigningPubKey'] !== undefined &&
|
|
216
|
+
signer['SigningPubKey'] !== null;
|
|
217
|
+
const hasTxnSignature = signer['TxnSignature'] !== undefined &&
|
|
218
|
+
signer['TxnSignature'] !== null;
|
|
219
|
+
const hasSigners = signer['Signers'] !== undefined &&
|
|
220
|
+
signer['Signers'] !== null;
|
|
221
|
+
// Single-sign requires both SigningPubKey and TxnSignature;
|
|
222
|
+
// multi-sign uses Signers only. Mixing is forbidden.
|
|
223
|
+
if (hasSigningPubKey !== hasTxnSignature) {
|
|
224
|
+
throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner single-sign form requires both SigningPubKey and TxnSignature (or neither — use Signers for multi-sign)`);
|
|
225
|
+
}
|
|
226
|
+
if (hasSigners && (hasSigningPubKey || hasTxnSignature)) {
|
|
227
|
+
throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner cannot mix single-sign fields with Signers`);
|
|
228
|
+
}
|
|
229
|
+
if (!hasSigners && !hasSigningPubKey && !hasTxnSignature) {
|
|
230
|
+
throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner must carry either (SigningPubKey + TxnSignature) or Signers`);
|
|
231
|
+
}
|
|
232
|
+
// Field type checks (mirror xrpl.js models/batch.ts:151-162).
|
|
233
|
+
if (hasSigningPubKey && !isString(signer['SigningPubKey'])) {
|
|
234
|
+
throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.SigningPubKey must be a string`);
|
|
235
|
+
}
|
|
236
|
+
if (hasTxnSignature && !isString(signer['TxnSignature'])) {
|
|
237
|
+
throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.TxnSignature must be a string`);
|
|
238
|
+
}
|
|
239
|
+
if (hasSigners && !isArray(signer['Signers'])) {
|
|
240
|
+
throw new ValidationError(`Batch: BatchSigners[${index}].BatchSigner.Signers must be an array`);
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
return buildFrozenTx('Batch', props, {
|
|
245
|
+
validate() {
|
|
246
|
+
// Validated at construction.
|
|
247
|
+
},
|
|
248
|
+
toJSON() {
|
|
249
|
+
const json = {};
|
|
250
|
+
for (const k of Object.keys(this)) {
|
|
251
|
+
if (k === 'validate' || k === 'toJSON' || k === 'with')
|
|
252
|
+
continue;
|
|
253
|
+
const v = this[k];
|
|
254
|
+
if (v !== undefined)
|
|
255
|
+
json[k] = v;
|
|
256
|
+
}
|
|
257
|
+
return json;
|
|
258
|
+
},
|
|
259
|
+
with(overrides) {
|
|
260
|
+
return batch(mergeForWith(this, overrides));
|
|
261
|
+
},
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/fp/factories/batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface CheckCancelProps {
|
|
2
|
+
/** The transaction submitter (the Check source, destination, or any
|
|
3
|
+
* address if the Check has expired). */
|
|
4
|
+
Account: string;
|
|
5
|
+
/** The ID of the Check ledger object to cancel (UInt256, 64-char hex,
|
|
6
|
+
* must not be all-zeros). */
|
|
7
|
+
CheckID: string;
|
|
8
|
+
/** Bit-flags for this transaction. CheckCancel has no defined
|
|
9
|
+
* flags; only `tfFullyCanonicalSig` (global) is meaningful. Accepted
|
|
10
|
+
* for parity with the base tx shape. */
|
|
11
|
+
Flags?: number | undefined;
|
|
12
|
+
Fee?: string | undefined;
|
|
13
|
+
Sequence?: number | undefined;
|
|
14
|
+
}
|
|
15
|
+
export interface CheckCancel extends Readonly<CheckCancelProps> {
|
|
16
|
+
readonly TransactionType: 'CheckCancel';
|
|
17
|
+
validate(): void;
|
|
18
|
+
toJSON(): Record<string, unknown>;
|
|
19
|
+
with(overrides: Partial<CheckCancelProps>): CheckCancel;
|
|
20
|
+
}
|
|
21
|
+
export declare function checkCancel(props: CheckCancelProps): CheckCancel;
|
|
22
|
+
//# sourceMappingURL=check-cancel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-cancel.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/check-cancel.ts"],"names":[],"mappings":"AAwFA,MAAM,WAAW,gBAAgB;IAC/B;6CACyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB;kCAC8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB;;6CAEyC;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,WAAY,SAAQ,QAAQ,CAAC,gBAAgB,CAAC;IAC7D,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC;IACxC,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC;CACzD;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CA+ChE"}
|