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,135 @@
|
|
|
1
|
+
import { isAccount, isHex, isNumber, isString } from '../../validation/helpers.js';
|
|
2
|
+
import { ValidationError } from '../../errors.js';
|
|
3
|
+
import { buildFrozenTx, mergeForWith, require } from '../shape.js';
|
|
4
|
+
// ─── Spec constants ──────────────────────────────────────────────────
|
|
5
|
+
// Maximum allowed transfer fee in basis points (0.000% — 50.000%).
|
|
6
|
+
const MAX_TRANSFER_FEE = 50_000;
|
|
7
|
+
// Maximum amount per the current spec (2^63 - 1, encoded as a base-10 string).
|
|
8
|
+
const MAX_ISSUANCE_AMOUNT = '9223372036854775807';
|
|
9
|
+
// Maximum encoded metadata length in bytes.
|
|
10
|
+
const MAX_METADATA_BYTES = 1024;
|
|
11
|
+
// Bitmask of all known `tif*` bits (used to validate `ImmutableFlags`).
|
|
12
|
+
// Mirrors the values defined in `MPTokenImmutableFlags` (src/types/flags.ts).
|
|
13
|
+
const KNOWN_IMMUTABLE_FLAG_BITS = 0x00000002 | // tifMPTCanLock
|
|
14
|
+
0x00000004 | // tifMPTRequireAuth
|
|
15
|
+
0x00000008 | // tifMPTCanEscrow
|
|
16
|
+
0x00000010 | // tifMPTCanTrade
|
|
17
|
+
0x00000020 | // tifMPTCanTransfer
|
|
18
|
+
0x00000040 | // tifMPTCanClawback
|
|
19
|
+
0x00000080 | // tifMPTCanHoldConfidentialBalance
|
|
20
|
+
0x00010000 | // tifMPTMetadata
|
|
21
|
+
0x00020000; // tifMPTTransferFee
|
|
22
|
+
// Capable-flag bitmask for `tfMPTCanTransfer` (gates non-zero TransferFee).
|
|
23
|
+
const TF_MPT_CAN_TRANSFER = 0x00000020;
|
|
24
|
+
// Capable-flag bitmask for `tfMPTRequireAuth` (gates DomainID).
|
|
25
|
+
const TF_MPT_REQUIRE_AUTH = 0x00000004;
|
|
26
|
+
// ─── Factory ─────────────────────────────────────────────────────────
|
|
27
|
+
/**
|
|
28
|
+
* Build a frozen MPTokenIssuanceCreate. Throws ValidationError on
|
|
29
|
+
* construction if fields are missing or malformed.
|
|
30
|
+
*
|
|
31
|
+
* The class-based version validates lazily (caller must invoke
|
|
32
|
+
* `.validate()`); this functional version validates at construction.
|
|
33
|
+
* There is no way to build an invalid tx — `with()` re-runs the factory,
|
|
34
|
+
* so overrides are re-validated too.
|
|
35
|
+
*/
|
|
36
|
+
export function mptokenIssuanceCreate(props) {
|
|
37
|
+
// ─── Account ─── required, must be a valid XRPL address (empty
|
|
38
|
+
// strings and invalid formats fail the regex inside isAccount).
|
|
39
|
+
require(props.Account, 'MPTokenIssuanceCreate: Account is required', isAccount);
|
|
40
|
+
// Numeric flags for cross-field gating. When the caller supplies a
|
|
41
|
+
// boolean-map `Flags` object, we treat it as "no flag bits set" for the
|
|
42
|
+
// purpose of bitwise checks — same policy as the class version, which
|
|
43
|
+
// only inspects numeric flags for the gating rules below.
|
|
44
|
+
const flags = (typeof props.Flags === 'number' ? props.Flags : 0);
|
|
45
|
+
// ─── TransferFee ───
|
|
46
|
+
if (props.TransferFee !== undefined) {
|
|
47
|
+
if (!isNumber(props.TransferFee)) {
|
|
48
|
+
throw new ValidationError('MPTokenIssuanceCreate: TransferFee must be a number');
|
|
49
|
+
}
|
|
50
|
+
if (props.TransferFee < 0 || props.TransferFee > MAX_TRANSFER_FEE) {
|
|
51
|
+
throw new ValidationError(`MPTokenIssuanceCreate: TransferFee must be in [0, ${MAX_TRANSFER_FEE}]`);
|
|
52
|
+
}
|
|
53
|
+
if (props.TransferFee !== 0 && (flags & TF_MPT_CAN_TRANSFER) === 0) {
|
|
54
|
+
throw new ValidationError('MPTokenIssuanceCreate: non-zero TransferFee requires tfMPTCanTransfer flag');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// ─── MaximumAmount ───
|
|
58
|
+
if (props.MaximumAmount !== undefined) {
|
|
59
|
+
if (!isString(props.MaximumAmount)) {
|
|
60
|
+
throw new ValidationError('MPTokenIssuanceCreate: MaximumAmount must be a string');
|
|
61
|
+
}
|
|
62
|
+
if (props.MaximumAmount === '0') {
|
|
63
|
+
throw new ValidationError('MPTokenIssuanceCreate: MaximumAmount must be > 0');
|
|
64
|
+
}
|
|
65
|
+
// BigInt throws SyntaxError on invalid integer strings; we wrap that
|
|
66
|
+
// in ValidationError but DO NOT swallow our own out-of-range errors.
|
|
67
|
+
let n;
|
|
68
|
+
try {
|
|
69
|
+
n = BigInt(props.MaximumAmount);
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
if (e instanceof SyntaxError) {
|
|
73
|
+
throw new ValidationError('MPTokenIssuanceCreate: MaximumAmount must be a base-10 integer string');
|
|
74
|
+
}
|
|
75
|
+
throw e;
|
|
76
|
+
}
|
|
77
|
+
const max = BigInt(MAX_ISSUANCE_AMOUNT);
|
|
78
|
+
if (n > max) {
|
|
79
|
+
throw new ValidationError(`MPTokenIssuanceCreate: MaximumAmount must be <= ${MAX_ISSUANCE_AMOUNT}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// ─── MPTokenMetadata ───
|
|
83
|
+
if (props.MPTokenMetadata !== undefined) {
|
|
84
|
+
if (!isString(props.MPTokenMetadata) || !isHex(props.MPTokenMetadata)) {
|
|
85
|
+
throw new ValidationError('MPTokenIssuanceCreate: MPTokenMetadata must be a hex string');
|
|
86
|
+
}
|
|
87
|
+
const lenBytes = props.MPTokenMetadata.length / 2;
|
|
88
|
+
if (lenBytes === 0 || lenBytes > MAX_METADATA_BYTES) {
|
|
89
|
+
throw new ValidationError(`MPTokenIssuanceCreate: MPTokenMetadata length must be in (0, ${MAX_METADATA_BYTES}] bytes`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// ─── DomainID ───
|
|
93
|
+
// The class treats empty string and "0" as "not set" and skips the
|
|
94
|
+
// flag check in those cases. Mirror that behavior exactly.
|
|
95
|
+
if (props.DomainID !== undefined &&
|
|
96
|
+
props.DomainID !== '' &&
|
|
97
|
+
props.DomainID !== '0') {
|
|
98
|
+
if ((flags & TF_MPT_REQUIRE_AUTH) === 0) {
|
|
99
|
+
throw new ValidationError('MPTokenIssuanceCreate: DomainID requires tfMPTRequireAuth flag');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// ─── ImmutableFlags ───
|
|
103
|
+
if (props.ImmutableFlags !== undefined) {
|
|
104
|
+
if (!isNumber(props.ImmutableFlags)) {
|
|
105
|
+
throw new ValidationError('MPTokenIssuanceCreate: ImmutableFlags must be a number');
|
|
106
|
+
}
|
|
107
|
+
if (props.ImmutableFlags === 0) {
|
|
108
|
+
throw new ValidationError('MPTokenIssuanceCreate: ImmutableFlags must be non-zero when present');
|
|
109
|
+
}
|
|
110
|
+
if ((props.ImmutableFlags & ~KNOWN_IMMUTABLE_FLAG_BITS) !== 0) {
|
|
111
|
+
throw new ValidationError('MPTokenIssuanceCreate: ImmutableFlags contains undefined bits');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// ─── Build frozen shape ───
|
|
115
|
+
return buildFrozenTx('MPTokenIssuanceCreate', props, {
|
|
116
|
+
validate() {
|
|
117
|
+
// Construction-time validation is the contract.
|
|
118
|
+
},
|
|
119
|
+
toJSON() {
|
|
120
|
+
const json = {};
|
|
121
|
+
for (const k of Object.keys(this)) {
|
|
122
|
+
if (k === 'validate' || k === 'toJSON' || k === 'with')
|
|
123
|
+
continue;
|
|
124
|
+
const v = this[k];
|
|
125
|
+
if (v !== undefined)
|
|
126
|
+
json[k] = v;
|
|
127
|
+
}
|
|
128
|
+
return json;
|
|
129
|
+
},
|
|
130
|
+
with(overrides) {
|
|
131
|
+
return mptokenIssuanceCreate(mergeForWith(this, overrides));
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=mptoken-issuance-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mptoken-issuance-create.js","sourceRoot":"","sources":["../../../src/fp/factories/mptoken-issuance-create.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEnE,wEAAwE;AAExE,mEAAmE;AACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,+EAA+E;AAC/E,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,4CAA4C;AAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,wEAAwE;AACxE,8EAA8E;AAC9E,MAAM,yBAAyB,GAC7B,UAAU,GAAG,gBAAgB;IAC7B,UAAU,GAAG,oBAAoB;IACjC,UAAU,GAAG,kBAAkB;IAC/B,UAAU,GAAG,iBAAiB;IAC9B,UAAU,GAAG,oBAAoB;IACjC,UAAU,GAAG,oBAAoB;IACjC,UAAU,GAAG,mCAAmC;IAChD,UAAU,GAAG,iBAAiB;IAC9B,UAAU,CAAC,CAAC,oBAAoB;AAElC,4EAA4E;AAC5E,MAAM,mBAAmB,GAAG,UAAU,CAAC;AACvC,gEAAgE;AAChE,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAoDvC,wEAAwE;AAExE;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAiC;IAEjC,gEAAgE;IAChE,gEAAgE;IAChE,OAAO,CACL,KAAK,CAAC,OAAO,EACb,4CAA4C,EAC5C,SAAS,CACV,CAAC;IAEF,mEAAmE;IACnE,wEAAwE;IACxE,sEAAsE;IACtE,0DAA0D;IAC1D,MAAM,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;IAE5E,sBAAsB;IACtB,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,eAAe,CACvB,qDAAqD,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,gBAAgB,EAAE,CAAC;YAClE,MAAM,IAAI,eAAe,CACvB,qDAAqD,gBAAgB,GAAG,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,eAAe,CACvB,4EAA4E,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,eAAe,CACvB,uDAAuD,CACxD,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,KAAK,GAAG,EAAE,CAAC;YAChC,MAAM,IAAI,eAAe,CACvB,kDAAkD,CACnD,CAAC;QACJ,CAAC;QACD,qEAAqE;QACrE,qEAAqE;QACrE,IAAI,CAAS,CAAC;QACd,IAAI,CAAC;YACH,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;gBAC7B,MAAM,IAAI,eAAe,CACvB,uEAAuE,CACxE,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CACvB,mDAAmD,mBAAmB,EAAE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,eAAe,CACvB,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACpD,MAAM,IAAI,eAAe,CACvB,gEAAgE,kBAAkB,SAAS,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,mEAAmE;IACnE,2DAA2D;IAC3D,IACE,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC5B,KAAK,CAAC,QAAQ,KAAK,EAAE;QACrB,KAAK,CAAC,QAAQ,KAAK,GAAG,EACtB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,eAAe,CACvB,gEAAgE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,eAAe,CACvB,wDAAwD,CACzD,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,eAAe,CACvB,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,eAAe,CACvB,+DAA+D,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,OAAO,aAAa,CAClB,uBAAuB,EACvB,KAAK,EACL;QACE,QAAQ;YACN,gDAAgD;QAClD,CAAC;QACD,MAAM;YACJ,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,MAAM;oBAAE,SAAS;gBACjE,MAAM,CAAC,GAAI,IAA2C,CAAC,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,SAAS;oBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAEF,SAA8C;YAE9C,OAAO,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9D,CAAC;KACF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface MptokenIssuanceDestroyProps {
|
|
2
|
+
/** The unique address of the transaction sender (must be the MPT issuer). */
|
|
3
|
+
Account: string;
|
|
4
|
+
/**
|
|
5
|
+
* The id of the MPTokenIssuance ledger entry to remove. UINT192 —
|
|
6
|
+
* exactly 48 hex chars; must not be all-zero.
|
|
7
|
+
*/
|
|
8
|
+
MPTokenIssuanceID: string;
|
|
9
|
+
/** Bit-flags for this transaction. The spec defines none — must be 0. */
|
|
10
|
+
Flags?: number | undefined;
|
|
11
|
+
/** Fee in XRP (drops), base-10 integer string. */
|
|
12
|
+
Fee?: string | undefined;
|
|
13
|
+
/** Account sequence number. */
|
|
14
|
+
Sequence?: number | undefined;
|
|
15
|
+
}
|
|
16
|
+
export interface MptokenIssuanceDestroy extends Readonly<MptokenIssuanceDestroyProps> {
|
|
17
|
+
readonly TransactionType: 'MPTokenIssuanceDestroy';
|
|
18
|
+
validate(): void;
|
|
19
|
+
toJSON(): Record<string, unknown>;
|
|
20
|
+
with(overrides: Partial<MptokenIssuanceDestroyProps>): MptokenIssuanceDestroy;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Build a frozen MPTokenIssuanceDestroy. Throws ValidationError on
|
|
24
|
+
* construction if fields are missing or malformed.
|
|
25
|
+
*
|
|
26
|
+
* The class-based version validates lazily (caller must invoke
|
|
27
|
+
* `.validate()`); this functional version validates at construction.
|
|
28
|
+
* There is no way to build an invalid tx — `with()` re-runs the factory,
|
|
29
|
+
* so overrides are re-validated too.
|
|
30
|
+
*/
|
|
31
|
+
export declare function mptokenIssuanceDestroy(props: MptokenIssuanceDestroyProps): MptokenIssuanceDestroy;
|
|
32
|
+
//# sourceMappingURL=mptoken-issuance-destroy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mptoken-issuance-destroy.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/mptoken-issuance-destroy.ts"],"names":[],"mappings":"AAmEA,MAAM,WAAW,2BAA2B;IAC1C,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,sBACf,SAAQ,QAAQ,CAAC,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;IACnD,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,sBAAsB,CAAC;CAC/E;AAID;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,CAgDxB"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functional MPTokenIssuanceDestroy factory — frozen-object style.
|
|
3
|
+
*
|
|
4
|
+
* Permanently removes an MPTokenIssuance ledger entry. Only the issuer
|
|
5
|
+
* of the MPT can submit this transaction, and only if no holders have
|
|
6
|
+
* non-zero balances. Validation happens at construction; there is no
|
|
7
|
+
* way to construct an invalid tx.
|
|
8
|
+
*
|
|
9
|
+
* import { mptokenIssuanceDestroy } from 'xrplt/fp';
|
|
10
|
+
* const tx = mptokenIssuanceDestroy({ Account, MPTokenIssuanceID });
|
|
11
|
+
* const j = tx.toJSON();
|
|
12
|
+
*
|
|
13
|
+
* Affected amendments:
|
|
14
|
+
* - `MPTokensV1` — base MPTokenIssuanceDestroy.
|
|
15
|
+
*
|
|
16
|
+
* @see https://xrpl.org/docs/references/protocol/transactions/types/mptokenissuancedestroy
|
|
17
|
+
* @see XLS-0033 §3.2 (Transaction: `MPTokenIssuanceDestroy`)
|
|
18
|
+
* in `~/.mavis/docs.local/xrpl-standards/repo/XLS-0033-multi-purpose-tokens/README.md`
|
|
19
|
+
* @see ripple-binary-codec `definitions.json`:
|
|
20
|
+
* `MPTokenIssuanceDestroy: [ { name: "MPTokenIssuanceID", optionality: 0 } ]`
|
|
21
|
+
* (transaction type id 55; only required field is `MPTokenIssuanceID`).
|
|
22
|
+
*
|
|
23
|
+
* ## Divergences
|
|
24
|
+
*
|
|
25
|
+
* The factory enforces three preclaim checks that the class API
|
|
26
|
+
* (`src/transactions/mptoken-issuance-destroy.ts`) and xrpl.js both skip:
|
|
27
|
+
*
|
|
28
|
+
* 1. `MPTokenIssuanceID` must be a 48-character hex string (24 bytes /
|
|
29
|
+
* UINT192). The class only calls `isString(this.MPTokenIssuanceID)`,
|
|
30
|
+
* so any string passes — including malformed or wrong-length values.
|
|
31
|
+
* The ripple-binary-codec serializer requires exactly 24 bytes.
|
|
32
|
+
* Source: XLS-0033 §3.2.1 (`MPTokenIssuanceID` — `UINT192`);
|
|
33
|
+
* ripple-binary-codec `definitions.json`
|
|
34
|
+
* (`MPTokenIssuanceDestroy` field schema).
|
|
35
|
+
*
|
|
36
|
+
* 2. `MPTokenIssuanceID` must NOT be the all-zeros UINT192 value.
|
|
37
|
+
* A 48-char string of zeros would otherwise pass the hex+length
|
|
38
|
+
* check. The spec does not assign ledger entries an all-zero id;
|
|
39
|
+
* rippled would reject this with `temMALFORMED` at submit time.
|
|
40
|
+
* Source: XLS-0033 §2.1.1.1 (MPTokenIssuanceID derivation —
|
|
41
|
+
* contains a 4-byte sequence plus a 20-byte AccountID, so
|
|
42
|
+
* an all-zero value cannot be a valid issuance id);
|
|
43
|
+
* analogue with XLS-66 §3.4.3.1 (HASH256 zero rejection).
|
|
44
|
+
*
|
|
45
|
+
* 3. `Account` is validated as a classic/X-address via `isAccount`,
|
|
46
|
+
* not just as a non-empty string. The class API delegates Account
|
|
47
|
+
* checking to the base class's `validateBaseTransaction`, which
|
|
48
|
+
* only requires `typeof Account === 'string'`. The factory is
|
|
49
|
+
* consistent with other MPT factories (`mptokenIssuanceCreate`,
|
|
50
|
+
* `loanBrokerDelete`).
|
|
51
|
+
* Source: `src/validation/base.ts` (validateBaseTransaction —
|
|
52
|
+
* only `isString(Account)`); `src/fp/factories/
|
|
53
|
+
* mptoken-issuance-create.ts` precedent.
|
|
54
|
+
*/
|
|
55
|
+
import { isAccount, isHex, isString } from '../../validation/helpers.js';
|
|
56
|
+
import { ValidationError } from '../../errors.js';
|
|
57
|
+
import { buildFrozenTx, mergeForWith, require } from '../shape.js';
|
|
58
|
+
// ─── Spec constants ──────────────────────────────────────────────────
|
|
59
|
+
// UINT192 = 192 bits = 24 bytes = 48 hex chars.
|
|
60
|
+
const MP_TOKEN_ISSUANCE_ID_LENGTH = 48;
|
|
61
|
+
// All-zeros UINT192 — never a valid MPTokenIssuanceID.
|
|
62
|
+
const MP_TOKEN_ISSUANCE_ID_ZERO = '0'.repeat(MP_TOKEN_ISSUANCE_ID_LENGTH);
|
|
63
|
+
// ─── Factory ─────────────────────────────────────────────────────────
|
|
64
|
+
/**
|
|
65
|
+
* Build a frozen MPTokenIssuanceDestroy. Throws ValidationError on
|
|
66
|
+
* construction if fields are missing or malformed.
|
|
67
|
+
*
|
|
68
|
+
* The class-based version validates lazily (caller must invoke
|
|
69
|
+
* `.validate()`); this functional version validates at construction.
|
|
70
|
+
* There is no way to build an invalid tx — `with()` re-runs the factory,
|
|
71
|
+
* so overrides are re-validated too.
|
|
72
|
+
*/
|
|
73
|
+
export function mptokenIssuanceDestroy(props) {
|
|
74
|
+
// ── Account ── required, must be a valid XRPL classic or X-address.
|
|
75
|
+
require(props.Account, 'MPTokenIssuanceDestroy: Account is required', isAccount);
|
|
76
|
+
// ── MPTokenIssuanceID ── required, 48-char hex (UINT192), non-zero.
|
|
77
|
+
if (!isString(props.MPTokenIssuanceID) ||
|
|
78
|
+
!isHex(props.MPTokenIssuanceID) ||
|
|
79
|
+
props.MPTokenIssuanceID.length !== MP_TOKEN_ISSUANCE_ID_LENGTH) {
|
|
80
|
+
throw new ValidationError(`MPTokenIssuanceDestroy: MPTokenIssuanceID must be a ${MP_TOKEN_ISSUANCE_ID_LENGTH}-character hex string (UINT192)`);
|
|
81
|
+
}
|
|
82
|
+
if (props.MPTokenIssuanceID === MP_TOKEN_ISSUANCE_ID_ZERO) {
|
|
83
|
+
throw new ValidationError('MPTokenIssuanceDestroy: MPTokenIssuanceID must not be zero');
|
|
84
|
+
}
|
|
85
|
+
return buildFrozenTx('MPTokenIssuanceDestroy', props, {
|
|
86
|
+
validate() {
|
|
87
|
+
// Validated at construction.
|
|
88
|
+
},
|
|
89
|
+
toJSON() {
|
|
90
|
+
const json = {};
|
|
91
|
+
for (const k of Object.keys(this)) {
|
|
92
|
+
if (k === 'validate' || k === 'toJSON' || k === 'with')
|
|
93
|
+
continue;
|
|
94
|
+
const v = this[k];
|
|
95
|
+
if (v !== undefined)
|
|
96
|
+
json[k] = v;
|
|
97
|
+
}
|
|
98
|
+
return json;
|
|
99
|
+
},
|
|
100
|
+
with(overrides) {
|
|
101
|
+
return mptokenIssuanceDestroy(mergeForWith(this, overrides));
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=mptoken-issuance-destroy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mptoken-issuance-destroy.js","sourceRoot":"","sources":["../../../src/fp/factories/mptoken-issuance-destroy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEnE,wEAAwE;AAExE,gDAAgD;AAChD,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,uDAAuD;AACvD,MAAM,yBAAyB,GAAG,GAAG,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;AA4B1E,wEAAwE;AAExE;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAkC;IAElC,qEAAqE;IACrE,OAAO,CACL,KAAK,CAAC,OAAO,EACb,6CAA6C,EAC7C,SAAS,CACV,CAAC;IAEF,qEAAqE;IACrE,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAClC,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC/B,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,2BAA2B,EAC9D,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,uDAAuD,2BAA2B,iCAAiC,CACpH,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,yBAAyB,EAAE,CAAC;QAC1D,MAAM,IAAI,eAAe,CACvB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAClB,wBAAwB,EACxB,KAAK,EACL;QACE,QAAQ;YACN,6BAA6B;QAC/B,CAAC;QACD,MAAM;YACJ,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,MAAM;oBAAE,SAAS;gBACjE,MAAM,CAAC,GAAI,IAA2C,CAAC,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,SAAS;oBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAEF,SAA+C;YAE/C,OAAO,sBAAsB,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/D,CAAC;KACF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functional MPTokenIssuanceSet factory — frozen-object style.
|
|
3
|
+
*
|
|
4
|
+
* Updates the mutable properties of an existing Multi-Purpose Token
|
|
5
|
+
* (MPT) issuance. Supports per-holder or global lock/unlock, capability
|
|
6
|
+
* flag enabling (`tfMPTSet*`), field updates (TransferFee,
|
|
7
|
+
* MPTokenMetadata, ImmutableFlags, encryption keys), and DomainID
|
|
8
|
+
* binding. Validation happens at construction; there is no way to
|
|
9
|
+
* construct an invalid tx.
|
|
10
|
+
*
|
|
11
|
+
* import { mptokenIssuanceSet } from 'xrplt/fp';
|
|
12
|
+
* const tx = mptokenIssuanceSet({
|
|
13
|
+
* Account: ISSUER,
|
|
14
|
+
* MPTokenIssuanceID,
|
|
15
|
+
* Flags: { tfMPTLock: true },
|
|
16
|
+
* });
|
|
17
|
+
* const j = tx.toJSON();
|
|
18
|
+
* const tx2 = tx.with({ TransferFee: 50 });
|
|
19
|
+
*
|
|
20
|
+
* Affected amendments:
|
|
21
|
+
* - `MPTokensV1` — base transaction.
|
|
22
|
+
* - `DynamicMPT` — adds TransferFee / MPTokenMetadata /
|
|
23
|
+
* ImmutableFlags / `tfMPTSet*` capability flags.
|
|
24
|
+
* - `PermissionedDomains + SingleAssetVault` — adds `DomainID`.
|
|
25
|
+
* - `ConfidentialTransfer` — adds encryption keys +
|
|
26
|
+
* `tfMPTSetCanHoldConfidentialBalance`.
|
|
27
|
+
*
|
|
28
|
+
* @see https://xrpl.org/docs/references/protocol/transactions/types/mptokenissuanceset
|
|
29
|
+
* @see XLS-0033 §3.3 (MPTokenIssuanceSet Transaction)
|
|
30
|
+
* in `~/.mavis/docs.local/xrpl-standards/repo/XLS-0033-multi-purpose-tokens/README.md`
|
|
31
|
+
*
|
|
32
|
+
* ## Divergences
|
|
33
|
+
*
|
|
34
|
+
* The class-based API at `src/transactions/mptoken-issuance-set.ts` and
|
|
35
|
+
* xrpl.js's `validateMPTokenIssuanceSet` are missing seven rules that
|
|
36
|
+
* the canonical sources require. The factory fills them:
|
|
37
|
+
*
|
|
38
|
+
* 1. `Account` is validated as a classic/X-address via `isAccount`.
|
|
39
|
+
* The class delegates Account validation to its `Transaction`
|
|
40
|
+
* base, which only requires `typeof === 'string'`. A malformed
|
|
41
|
+
* Account passes class validation and only fails at submit time
|
|
42
|
+
* with `temINVALID_ACCOUNT`. The factory validates the format at
|
|
43
|
+
* construction.
|
|
44
|
+
* Source: xrpl.js `validateBaseTransaction`
|
|
45
|
+
* (`~/.mavis/docs.local/xrpl.js/repo/packages/xrpl/src/models/transactions/common.ts:987`)
|
|
46
|
+
* — only `isString(Account)`.
|
|
47
|
+
* Source: local `isAccount` at `src/validation/helpers.ts:55–60`.
|
|
48
|
+
*
|
|
49
|
+
* 2. `MPTokenIssuanceID` must be a 48-character hex `UInt192`, and
|
|
50
|
+
* must not be all-zero. xrpl.js only checks `isString`; the class
|
|
51
|
+
* only checks `isString`. Wrong-length, non-hex, and all-zero
|
|
52
|
+
* values all pass.
|
|
53
|
+
* Source: XLS-0033 §3.3.1 (`MPTokenIssuanceID` Internal Type:
|
|
54
|
+
* `UINT192`); ripple-binary-codec `definitions.json`
|
|
55
|
+
* (`~/.mavis/docs.local/xrpl.js/repo/packages/ripple-binary-codec/src/enums/definitions.json`)
|
|
56
|
+
* line 6093–6125 (`MPTokenIssuanceID` declared required
|
|
57
|
+
* for `MPTokenIssuanceSet`).
|
|
58
|
+
*
|
|
59
|
+
* 3. `Holder` must differ from `Account`.
|
|
60
|
+
* xrpl.js `validateMPTokenIssuanceSet` (lines 245–249) throws on
|
|
61
|
+
* this; the class does not. The spec Error Cases table lists
|
|
62
|
+
* `temMALFORMED` — "You specified the same account for both
|
|
63
|
+
* `Account` and `Holder`" — so we treat this as a hard guard.
|
|
64
|
+
* Source: xrpl-dev-portal `mptokenissuanceset.md`
|
|
65
|
+
* (`~/.mavis/docs.local/xrpl-dev-portal/repo/docs/references/protocol/transactions/types/mptokenissuanceset.md`)
|
|
66
|
+
* Error Cases — `temMALFORMED` clause "same account for
|
|
67
|
+
* both `Account` and `Holder`".
|
|
68
|
+
*
|
|
69
|
+
* 4. `tfMPTLock` and `tfMPTUnlock` cannot coexist with non-zero
|
|
70
|
+
* `TransferFee` combined with `tfMPTSetCanHoldConfidentialBalance`.
|
|
71
|
+
* The class only checks Lock/Unlock mutual exclusivity plus a
|
|
72
|
+
* loose field-update incompatibility; it does NOT enforce the
|
|
73
|
+
* `temBAD_TRANSFER_FEE` pairing "non-zero TransferFee together
|
|
74
|
+
* with `tfMPTSetCanHoldConfidentialBalance`".
|
|
75
|
+
* Source: xrpl-dev-portal `mptokenissuanceset.md` Error Cases —
|
|
76
|
+
* `temBAD_TRANSFER_FEE` clause "A non-zero `TransferFee`
|
|
77
|
+
* is set in the same transaction that enables
|
|
78
|
+
* confidential balances with
|
|
79
|
+
* `tfMPTSetCanHoldConfidentialBalance`".
|
|
80
|
+
* Source: xrpl.js `validateMPTokenIssuanceSet` (lines 299–311) —
|
|
81
|
+
* throws `MPTokenIssuanceSet: TransferFee cannot be
|
|
82
|
+
* provided together with the
|
|
83
|
+
* tfMPTSetCanHoldConfidentialBalance flag`.
|
|
84
|
+
*
|
|
85
|
+
* 5. The transaction must actually mutate state.
|
|
86
|
+
* If no flags are set AND `DomainID` is absent AND no mutation
|
|
87
|
+
* field is present AND no encryption keys are set, the tx is a
|
|
88
|
+
* no-op and should be rejected with `temMALFORMED` per the spec.
|
|
89
|
+
* The class does not enforce this — the empty `MPTokenIssuanceSet`
|
|
90
|
+
* passes class validation.
|
|
91
|
+
* Source: xrpl-dev-portal `mptokenissuanceset.md` Error Cases —
|
|
92
|
+
* `temMALFORMED` clause "The transaction isn't changing
|
|
93
|
+
* anything; it must either update a flag or modify the
|
|
94
|
+
* DomainID."
|
|
95
|
+
* Source: xrpl.js `validateMPTokenIssuanceSet` (lines 261–270) —
|
|
96
|
+
* throws when `flagsNum === 0 && DomainID == null &&
|
|
97
|
+
* !isMutate && !isSetConfidentialKeys`.
|
|
98
|
+
*
|
|
99
|
+
* 6. Encryption key field-pairing with `IssuerEncryptionKey`.
|
|
100
|
+
* The class checks "Auditor requires Issuer" but does NOT enforce
|
|
101
|
+
* that both encryption keys are 33-byte (66 hex-char) compressed
|
|
102
|
+
* EC points. xrpl.js uses `isHexWithByteLength(CONFIDENTIAL_EC_POINT_BYTES)`
|
|
103
|
+
* (lines 195–203). Malformed keys would only fail at submit time.
|
|
104
|
+
* The factory enforces both the pair rule AND the byte-length
|
|
105
|
+
* shape.
|
|
106
|
+
* Source: xrpl.js `validateMPTokenIssuanceSet` (lines 195–208);
|
|
107
|
+
* xrpl.js `common.ts:35` — `CONFIDENTIAL_EC_POINT_BYTES = 33`;
|
|
108
|
+
* xrpl-dev-portal `mptokenissuanceset.md` Error Cases —
|
|
109
|
+
* `temMALFORMED` clause "The `IssuerEncryptionKey` or
|
|
110
|
+
* `AuditorEncryptionKey` is not a valid 33-byte compressed
|
|
111
|
+
* public key".
|
|
112
|
+
*
|
|
113
|
+
* 7. The `Flags` boolean-map shape is validated.
|
|
114
|
+
* The class's `MPTokenIssuanceSetFlagsInterface` documents the
|
|
115
|
+
* allowed set, but neither the class nor xrpl.js's
|
|
116
|
+
* `validateMPTokenIssuanceSet` rejects unknown boolean keys (e.g.
|
|
117
|
+
* `tfNotARealFlag: true`). The factory checks every key on a
|
|
118
|
+
* boolean-map `Flags` against the closed set of known flags.
|
|
119
|
+
* Source: xrpl.js `MPTokenIssuanceSetFlagsInterface`
|
|
120
|
+
* (`~/.mavis/docs.local/xrpl.js/repo/packages/xrpl/src/models/transactions/MPTokenIssuanceSet.ts`)
|
|
121
|
+
* lines 100–123.
|
|
122
|
+
*/
|
|
123
|
+
import type { MPTokenIssuanceSetFlagsInterface } from '../../types/flags.js';
|
|
124
|
+
export interface MptokenIssuanceSetProps {
|
|
125
|
+
/** The issuer of the MPT issuance (the transaction sender). */
|
|
126
|
+
Account: string;
|
|
127
|
+
/** The ID of the MPTokenIssuance to update. UINT192 (24 bytes / 48 hex chars). */
|
|
128
|
+
MPTokenIssuanceID: string;
|
|
129
|
+
/**
|
|
130
|
+
* Optional holder address. If omitted, the operation applies globally
|
|
131
|
+
* to all holders of the issuance. Cannot be the same as `Account`.
|
|
132
|
+
*/
|
|
133
|
+
Holder?: string | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* Optional 64-char hex permissioned domain ID. Empty string / '0'
|
|
136
|
+
* clears the domain. Requires `tfMPTRequireAuth` flag on this tx
|
|
137
|
+
* (a local proxy for the issuance's existing flag state).
|
|
138
|
+
*/
|
|
139
|
+
DomainID?: string | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* Issuer's 33-byte compressed EC-ElGamal public key (66 hex chars).
|
|
142
|
+
* Required (when `ConfidentialTransfer` is active) to register the
|
|
143
|
+
* issuer for confidential transfers.
|
|
144
|
+
*/
|
|
145
|
+
IssuerEncryptionKey?: string | undefined;
|
|
146
|
+
/**
|
|
147
|
+
* Optional auditor's 33-byte compressed EC-ElGamal public key (66 hex
|
|
148
|
+
* chars). Requires `IssuerEncryptionKey` to be set in the same tx.
|
|
149
|
+
*/
|
|
150
|
+
AuditorEncryptionKey?: string | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* New metadata in hex format. Replaces the existing value. Setting an
|
|
153
|
+
* empty string (`''`) clears the field; otherwise 0 < length/2 ≤ 1024.
|
|
154
|
+
*/
|
|
155
|
+
MPTokenMetadata?: string | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* New transfer fee in basis points. UInt16 per spec (0..50000).
|
|
158
|
+
* Setting to zero clears the field.
|
|
159
|
+
*/
|
|
160
|
+
TransferFee?: number | undefined;
|
|
161
|
+
/**
|
|
162
|
+
* Bitmask declaring which fields / capability flags become immutable.
|
|
163
|
+
* Non-zero when present; uses only known `tif*` bits.
|
|
164
|
+
*/
|
|
165
|
+
ImmutableFlags?: number | undefined;
|
|
166
|
+
/**
|
|
167
|
+
* Optional bit-flags. Either a numeric bitmask or a boolean-map
|
|
168
|
+
* shape. When a map is supplied, keys must be a member of the closed
|
|
169
|
+
* set defined by `MPTokenIssuanceSetFlagsInterface`.
|
|
170
|
+
*/
|
|
171
|
+
Flags?: number | MPTokenIssuanceSetFlagsInterface | undefined;
|
|
172
|
+
/** Fee in XRP (drops), base-10 integer string. */
|
|
173
|
+
Fee?: string | undefined;
|
|
174
|
+
/** Account sequence number. */
|
|
175
|
+
Sequence?: number | undefined;
|
|
176
|
+
}
|
|
177
|
+
export interface MptokenIssuanceSet extends Readonly<MptokenIssuanceSetProps> {
|
|
178
|
+
readonly TransactionType: 'MPTokenIssuanceSet';
|
|
179
|
+
/** No-op: validation already happened at construction. */
|
|
180
|
+
validate(): void;
|
|
181
|
+
/** Serialize to a plain object matching `xrpl.js` input shape. */
|
|
182
|
+
toJSON(): Record<string, unknown>;
|
|
183
|
+
/** Derive a new MptokenIssuanceSet with overrides applied; re-validates. */
|
|
184
|
+
with(overrides: Partial<MptokenIssuanceSetProps>): MptokenIssuanceSet;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Build a frozen MPTokenIssuanceSet. Throws ValidationError on
|
|
188
|
+
* construction if fields are missing or malformed.
|
|
189
|
+
*
|
|
190
|
+
* The class-based version validates lazily (caller must invoke
|
|
191
|
+
* `.validate()`); this functional version validates at construction.
|
|
192
|
+
* There is no way to build an invalid tx — `with()` re-runs the
|
|
193
|
+
* factory, so overrides are re-validated too.
|
|
194
|
+
*/
|
|
195
|
+
export declare function mptokenIssuanceSet(props: MptokenIssuanceSetProps): MptokenIssuanceSet;
|
|
196
|
+
//# sourceMappingURL=mptoken-issuance-set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mptoken-issuance-set.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/mptoken-issuance-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyHG;AACH,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAuG7E,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,gCAAgC,GAAG,SAAS,CAAC;IAC9D,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,kBACf,SAAQ,QAAQ,CAAC,uBAAuB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAC/C,0DAA0D;IAC1D,QAAQ,IAAI,IAAI,CAAC;IACjB,kEAAkE;IAClE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,4EAA4E;IAC5E,IAAI,CACF,SAAS,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC1C,kBAAkB,CAAC;CACvB;AAqED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,CAiSpB"}
|