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,38 @@
|
|
|
1
|
+
export interface ConfidentialMptSendProps {
|
|
2
|
+
/** The account performing the send. Must be a valid XRPL classic/X-address. */
|
|
3
|
+
Account: string;
|
|
4
|
+
/** UInt192 — MPT issuance identifier (48-char hex). */
|
|
5
|
+
MPTokenIssuanceID: string;
|
|
6
|
+
/** AccountID — receiver of the confidential transfer. Must differ from Account. */
|
|
7
|
+
Destination: string;
|
|
8
|
+
/** UINT32 — destination tag (optional, used for hosted recipients). */
|
|
9
|
+
DestinationTag?: number | undefined;
|
|
10
|
+
/** Blob — 66-byte ElGamal ciphertext used to debit sender's spending balance. */
|
|
11
|
+
SenderEncryptedAmount: string;
|
|
12
|
+
/** Blob — 66-byte ciphertext credited to the receiver's inbox balance. */
|
|
13
|
+
DestinationEncryptedAmount: string;
|
|
14
|
+
/** Blob — 66-byte ciphertext used to update the issuer mirror balance. */
|
|
15
|
+
IssuerEncryptedAmount: string;
|
|
16
|
+
/** Blob — optional 66-byte ciphertext for the auditor. */
|
|
17
|
+
AuditorEncryptedAmount?: string | undefined;
|
|
18
|
+
/** Blob — 946-byte proof bundle (compact sigma + aggregated Bulletproof). */
|
|
19
|
+
ZKProof: string;
|
|
20
|
+
/** Blob — 33-byte Pedersen commitment to the transfer amount. */
|
|
21
|
+
AmountCommitment: string;
|
|
22
|
+
/** Blob — 33-byte Pedersen commitment to sender's spending balance. */
|
|
23
|
+
BalanceCommitment: string;
|
|
24
|
+
/** Vector256 — 1..8 credential IDs (conditional, non-empty when supplied). */
|
|
25
|
+
CredentialIDs?: string[] | undefined;
|
|
26
|
+
/** Fee in XRP (drops), base-10 integer string. */
|
|
27
|
+
Fee?: string | undefined;
|
|
28
|
+
/** Account sequence number. */
|
|
29
|
+
Sequence?: number | undefined;
|
|
30
|
+
}
|
|
31
|
+
export interface ConfidentialMptSend extends Readonly<ConfidentialMptSendProps> {
|
|
32
|
+
readonly TransactionType: 'ConfidentialMPTSend';
|
|
33
|
+
validate(): void;
|
|
34
|
+
toJSON(): Record<string, unknown>;
|
|
35
|
+
with(overrides: Partial<ConfidentialMptSendProps>): ConfidentialMptSend;
|
|
36
|
+
}
|
|
37
|
+
export declare function confidentialMptSend(props: ConfidentialMptSendProps): ConfidentialMptSend;
|
|
38
|
+
//# sourceMappingURL=confidential-mpt-send.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confidential-mpt-send.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/confidential-mpt-send.ts"],"names":[],"mappings":"AA0KA,MAAM,WAAW,wBAAwB;IACvC,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,iFAAiF;IACjF,qBAAqB,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,0BAA0B,EAAE,MAAM,CAAC;IACnC,0EAA0E;IAC1E,qBAAqB,EAAE,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,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,mBACf,SAAQ,QAAQ,CAAC,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,mBAAmB,CAAC;CACzE;AA2BD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,mBAAmB,CA4KrB"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functional ConfidentialMptSend factory — frozen-object style.
|
|
3
|
+
*
|
|
4
|
+
* Sends MPT tokens to another account while keeping the transfer amount
|
|
5
|
+
* hidden on-ledger. The transferred amount is credited to the receiver's
|
|
6
|
+
* confidential inbox balance (`CB_IN`) — the receiver may later merge
|
|
7
|
+
* these funds into their spending balance via `ConfidentialMPTMergeInbox`.
|
|
8
|
+
*
|
|
9
|
+
* Validation happens at construction; there is no way to construct an
|
|
10
|
+
* invalid tx. Compare to the class-based equivalent, which exposes a
|
|
11
|
+
* separate `.validate()` method you must remember to call.
|
|
12
|
+
*
|
|
13
|
+
* import { confidentialMptSend } from 'xrplt/fp';
|
|
14
|
+
* const tx = confidentialMptSend({
|
|
15
|
+
* Account,
|
|
16
|
+
* MPTokenIssuanceID,
|
|
17
|
+
* Destination,
|
|
18
|
+
* SenderEncryptedAmount,
|
|
19
|
+
* DestinationEncryptedAmount,
|
|
20
|
+
* IssuerEncryptedAmount,
|
|
21
|
+
* ZKProof,
|
|
22
|
+
* AmountCommitment,
|
|
23
|
+
* BalanceCommitment,
|
|
24
|
+
* });
|
|
25
|
+
* const j = tx.toJSON();
|
|
26
|
+
* const tx2 = tx.with({ Fee: '100' });
|
|
27
|
+
*
|
|
28
|
+
* Requires the `ConfidentialTransfer` amendment.
|
|
29
|
+
*
|
|
30
|
+
* @see https://xrpl.org/docs/references/protocol/transactions/types/confidentialmptsend
|
|
31
|
+
* @see XLS-0096 §9 — Transaction: `ConfidentialMPTSend`
|
|
32
|
+
* (https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0096-confidential-mpt)
|
|
33
|
+
* @see xrpl.js — packages/xrpl/src/models/transactions/ConfidentialMPTSend.ts
|
|
34
|
+
*
|
|
35
|
+
* ## Divergences
|
|
36
|
+
*
|
|
37
|
+
* Compared with `src/transactions/confidential-mpt-send.ts`, this factory
|
|
38
|
+
* adds guards the class skips — and explicitly documents the two
|
|
39
|
+
* canonical guards that cannot be added in a zero-dependency package.
|
|
40
|
+
*
|
|
41
|
+
* - **`Account` is validated as a well-formed XRPL classic or X-address
|
|
42
|
+
* at construction time** (`src/validation/helpers.ts` `isAccount`,
|
|
43
|
+
* lines 55–60). The class delegates `Account` validation to its
|
|
44
|
+
* `TokenTransaction` → `Transaction` parent chain via `super.validate()`
|
|
45
|
+
* and never inspects `Account` directly. We re-implement the guard
|
|
46
|
+
* inline so a malformed Account is caught at construction.
|
|
47
|
+
* - Source: xrpl.js `validateBaseTransaction`
|
|
48
|
+
* (packages/xrpl/src/models/transactions/common.ts line 964).
|
|
49
|
+
* - Source: xrpl-dev-portal `confidentialmptsend.md` Fields table
|
|
50
|
+
* row for `Account`, JSON Type = `AccountID`.
|
|
51
|
+
*
|
|
52
|
+
* - **`Account` must NOT equal `Destination`** (XLS-0096 §9.4.1.4 mandates
|
|
53
|
+
* this as `temMALFORMED`; xrpl.js `validateConfidentialMPTSend` lines
|
|
54
|
+
* 97–101 checks it explicitly). The class API does NOT check this —
|
|
55
|
+
* it relies on `super.validate()` which never compares the two fields.
|
|
56
|
+
* - Source: XLS-0096 §9.4.1.4 Failure Conditions, item 4: the sender
|
|
57
|
+
* and destination accounts are the same (`temMALFORMED`).
|
|
58
|
+
* - Source: xrpl.js `ConfidentialMPTSend.ts` lines 97–101.
|
|
59
|
+
*
|
|
60
|
+
* - **`DestinationTag` is accepted and validated as a `UINT32`** when
|
|
61
|
+
* supplied. The class omits this field entirely
|
|
62
|
+
* (`ConfidentialMPTSendTxFields` declares no `DestinationTag`).
|
|
63
|
+
* - Source: XLS-0096 §9.2 Fields table, Internal Type = `UINT32`.
|
|
64
|
+
* - Source: xrpl.js `ConfidentialMPTSend.ts` lines 40, 114
|
|
65
|
+
* (`DestinationTag?: number`, `validateOptionalField(tx,
|
|
66
|
+
* 'DestinationTag', isNumber)`).
|
|
67
|
+
*
|
|
68
|
+
* - **`CredentialIDs` is structurally validated when supplied**: must be
|
|
69
|
+
* an array (not a single string), length must be in `[1, 8]`, each
|
|
70
|
+
* element must be a 64-character hex string (HASH256 / Vector256),
|
|
71
|
+
* and the array must contain no duplicates. The class declares the
|
|
72
|
+
* field but never inspects it. Per XLS-0096 §9.4.1 the empty-array
|
|
73
|
+
* case is `temMALFORMED`; per XLS-0096 §9.4.2.1 authorization checks
|
|
74
|
+
* on the credentials are runtime checks and not enforced here.
|
|
75
|
+
* - Source: XLS-0096 §9.4.1 Failure Conditions (temMALFORMED when
|
|
76
|
+
* CredentialIDs is empty, exceeds the maximum size, or contains
|
|
77
|
+
* duplicates).
|
|
78
|
+
* - Source: xrpl.js `validateCredentialsList` (common.ts line 1106)
|
|
79
|
+
* and `MAX_AUTHORIZED_CREDENTIALS = 8` (common.ts line 28).
|
|
80
|
+
* - Source: xrpl-dev-portal `confidentialmptsend.md` Fields table
|
|
81
|
+
* row for `CredentialIDs`, Internal Type = `Vector256`.
|
|
82
|
+
*
|
|
83
|
+
* - **`AuditorEncryptedAmount` is validated as exactly 132 hex chars**
|
|
84
|
+
* when supplied. The class already performs this check; we mirror it
|
|
85
|
+
* here for consistency with the other ciphertext fields.
|
|
86
|
+
*
|
|
87
|
+
* - **`Account` must NOT be the issuer of `MPTokenIssuanceID`
|
|
88
|
+
* (KNOWN LIMITATION — NOT IMPLEMENTED)**. XLS-0096 §9.4.1.2 mandates
|
|
89
|
+
* this as `temMALFORMED`:
|
|
90
|
+
*
|
|
91
|
+
* > "The sender is the issuer of the MPT. (`temMALFORMED`)"
|
|
92
|
+
*
|
|
93
|
+
* xrpl.js's `validateConfidentialMPTSend` (lines 104–108) enforces
|
|
94
|
+
* this via its `isMPTIssuer(account, mptIssuanceID)` helper (common.ts
|
|
95
|
+
* line 632), which calls `decodeAccountID` (base58 + double-SHA-256
|
|
96
|
+
* checksum decoding of the classic address) and compares the
|
|
97
|
+
* resulting 20-byte AccountID against `mptIssuanceID.slice(8)` (the
|
|
98
|
+
* 40-hex-char issuer portion after the 8-hex-char sequence prefix).
|
|
99
|
+
*
|
|
100
|
+
* This factory cannot add this guard because the package is
|
|
101
|
+
* **zero-dependency** — base58 + checksum decoding would require
|
|
102
|
+
* either inlining a ~50-line codec or pulling in
|
|
103
|
+
* `ripple-address-codec`, neither of which fits the scope of a
|
|
104
|
+
* single-tx factory. The class API also skips this guard (it
|
|
105
|
+
* relies on `super.validate()` which does not perform the
|
|
106
|
+
* issuer check), so this is not a coverage regression relative
|
|
107
|
+
* to the class — but it remains a documented gap that consumers
|
|
108
|
+
* must validate at the integration layer (e.g. via the ledger
|
|
109
|
+
* submission result).
|
|
110
|
+
* - Source: XLS-0096 §9.4.1.2 Failure Conditions (Data Verification),
|
|
111
|
+
* item 2: `temMALFORMED` when the sender is the issuer.
|
|
112
|
+
* - Source: xrpl-dev-portal `confidentialmptsend.md` Error Cases
|
|
113
|
+
* table, `temMALFORMED` row.
|
|
114
|
+
* - Source: xrpl.js `ConfidentialMPTSend.ts` lines 104–108
|
|
115
|
+
* (`isMPTIssuer` guard) and `common.ts` lines 632–646
|
|
116
|
+
* (`isMPTIssuer` implementation, including the base58 + AccountID
|
|
117
|
+
* decoding dependency).
|
|
118
|
+
*
|
|
119
|
+
* - **`Destination` must NOT be the issuer of `MPTokenIssuanceID`
|
|
120
|
+
* (KNOWN LIMITATION — NOT IMPLEMENTED)**. Same root cause and
|
|
121
|
+
* mitigation as the sender-issuer guard above.
|
|
122
|
+
* - Source: XLS-0096 §9.4.1.3 Failure Conditions (Data Verification),
|
|
123
|
+
* item 3: `temMALFORMED` when the destination is the issuer.
|
|
124
|
+
* - Source: xrpl.js `ConfidentialMPTSend.ts` lines 109–113
|
|
125
|
+
* (`isMPTIssuer` guard).
|
|
126
|
+
*/
|
|
127
|
+
import { isAccount, isArray, isHex, isNumber, isString, } from '../../validation/helpers.js';
|
|
128
|
+
import { ValidationError } from '../../errors.js';
|
|
129
|
+
import { buildFrozenTx, mergeForWith, require } from '../shape.js';
|
|
130
|
+
// ─── Spec constants ──────────────────────────────────────────────────
|
|
131
|
+
// `MPTokenIssuanceID` is a `UINT192`, hex-encoded to exactly 48 chars
|
|
132
|
+
// (192 / 8 = 24 bytes = 48 hex chars). XLS-0096 §9.2; xrpl-dev-portal
|
|
133
|
+
// `confidentialmptsend.md` Fields table.
|
|
134
|
+
const MPT_ISSUANCE_ID_HEX_LENGTH = 48;
|
|
135
|
+
// Pedersen commitments are 33-byte compressed EC points (BLOB).
|
|
136
|
+
// XLS-0096 §9.2 (AmountCommitment / BalanceCommitment), Internal Type = BLOB;
|
|
137
|
+
// xrpl.js `CONFIDENTIAL_EC_POINT_BYTES = 33`.
|
|
138
|
+
const CONFIDENTIAL_EC_POINT_HEX_LENGTH = 66;
|
|
139
|
+
// ElGamal ciphertexts are 66 bytes (two compressed EC points).
|
|
140
|
+
// XLS-0096 §9.2; xrpl.js `CONFIDENTIAL_ELGAMAL_CIPHERTEXT_BYTES = 66`.
|
|
141
|
+
const CONFIDENTIAL_CIPHERTEXT_HEX_LENGTH = 132;
|
|
142
|
+
// ConfidentialMPTSend ZKProof is a 946-byte bundle (192-byte compact
|
|
143
|
+
// sigma + 754-byte aggregated Bulletproof). XLS-0096 §9.2 / §9.4.1.5
|
|
144
|
+
// mandates the length exactly; xrpl.js `CONFIDENTIAL_SEND_PROOF_BYTES = 946`.
|
|
145
|
+
const CONFIDENTIAL_SEND_PROOF_HEX_LENGTH = 2 * 946;
|
|
146
|
+
// Vector256 = 64 hex chars per credential ID. XLS-70 / XLS-0096 §9.2.
|
|
147
|
+
const CREDENTIAL_ID_HEX_LENGTH = 64;
|
|
148
|
+
// Maximum number of credential IDs per transaction (XLS-70). XLS-0096
|
|
149
|
+
// §9.4.1 requires CredentialIDs not to exceed the maximum size;
|
|
150
|
+
// xrpl.js `MAX_AUTHORIZED_CREDENTIALS = 8`.
|
|
151
|
+
const MAX_AUTHORIZED_CREDENTIALS = 8;
|
|
152
|
+
// DestinationTag is a UINT32 (0 .. 2^32 − 1).
|
|
153
|
+
const MAX_UINT32 = 0xffffffff;
|
|
154
|
+
// ─── Helpers ─────────────────────────────────────────────────────────
|
|
155
|
+
/**
|
|
156
|
+
* Validate a hex blob of a specific byte length (length = 2 × bytes).
|
|
157
|
+
*/
|
|
158
|
+
function requireHexOfByteLength(field, value, bytes, errorPrefix) {
|
|
159
|
+
const hexLen = bytes * 2;
|
|
160
|
+
if (!isString(value) ||
|
|
161
|
+
!isHex(value) ||
|
|
162
|
+
value.length !== hexLen) {
|
|
163
|
+
throw new ValidationError(`${errorPrefix}: ${field} must be a ${hexLen}-character hex string (${bytes} bytes)`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// ─── Factory ─────────────────────────────────────────────────────────
|
|
167
|
+
export function confidentialMptSend(props) {
|
|
168
|
+
// ── Account ── required, must be a valid XRPL classic/X-address.
|
|
169
|
+
require(props.Account, 'ConfidentialMPTSend: Account is required', isAccount);
|
|
170
|
+
// ── MPTokenIssuanceID ── required, exactly 48-char hex (UINT192).
|
|
171
|
+
requireHexOfByteLength('MPTokenIssuanceID', props.MPTokenIssuanceID, MPT_ISSUANCE_ID_HEX_LENGTH / 2, 'ConfidentialMPTSend');
|
|
172
|
+
// ── Destination ── required, must be a valid XRPL classic/X-address.
|
|
173
|
+
require(props.Destination, 'ConfidentialMPTSend: Destination is required', isAccount);
|
|
174
|
+
// ── Account != Destination ── (XLS-0096 §9.4.1.4 / xrpl.js).
|
|
175
|
+
if (props.Account === props.Destination) {
|
|
176
|
+
throw new ValidationError('ConfidentialMPTSend: Destination and Account must be different');
|
|
177
|
+
}
|
|
178
|
+
// ── DestinationTag ── optional, UINT32.
|
|
179
|
+
if (props.DestinationTag !== undefined) {
|
|
180
|
+
if (!isNumber(props.DestinationTag) ||
|
|
181
|
+
!Number.isInteger(props.DestinationTag) ||
|
|
182
|
+
props.DestinationTag < 0 ||
|
|
183
|
+
props.DestinationTag > MAX_UINT32) {
|
|
184
|
+
throw new ValidationError(`ConfidentialMPTSend: DestinationTag must be an integer in [0, ${MAX_UINT32}]`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// ── SenderEncryptedAmount ── required, 66-byte ciphertext.
|
|
188
|
+
requireHexOfByteLength('SenderEncryptedAmount', props.SenderEncryptedAmount, CONFIDENTIAL_CIPHERTEXT_HEX_LENGTH / 2, 'ConfidentialMPTSend');
|
|
189
|
+
// ── DestinationEncryptedAmount ── required, 66-byte ciphertext.
|
|
190
|
+
requireHexOfByteLength('DestinationEncryptedAmount', props.DestinationEncryptedAmount, CONFIDENTIAL_CIPHERTEXT_HEX_LENGTH / 2, 'ConfidentialMPTSend');
|
|
191
|
+
// ── IssuerEncryptedAmount ── required, 66-byte ciphertext.
|
|
192
|
+
requireHexOfByteLength('IssuerEncryptedAmount', props.IssuerEncryptedAmount, CONFIDENTIAL_CIPHERTEXT_HEX_LENGTH / 2, 'ConfidentialMPTSend');
|
|
193
|
+
// ── AuditorEncryptedAmount ── optional, 66-byte ciphertext.
|
|
194
|
+
if (props.AuditorEncryptedAmount !== undefined) {
|
|
195
|
+
requireHexOfByteLength('AuditorEncryptedAmount', props.AuditorEncryptedAmount, CONFIDENTIAL_CIPHERTEXT_HEX_LENGTH / 2, 'ConfidentialMPTSend');
|
|
196
|
+
}
|
|
197
|
+
// ── ZKProof ── required, 946-byte proof bundle.
|
|
198
|
+
requireHexOfByteLength('ZKProof', props.ZKProof, CONFIDENTIAL_SEND_PROOF_HEX_LENGTH / 2, 'ConfidentialMPTSend');
|
|
199
|
+
// ── AmountCommitment ── required, 33-byte compressed EC point.
|
|
200
|
+
requireHexOfByteLength('AmountCommitment', props.AmountCommitment, CONFIDENTIAL_EC_POINT_HEX_LENGTH / 2, 'ConfidentialMPTSend');
|
|
201
|
+
// ── BalanceCommitment ── required, 33-byte compressed EC point.
|
|
202
|
+
requireHexOfByteLength('BalanceCommitment', props.BalanceCommitment, CONFIDENTIAL_EC_POINT_HEX_LENGTH / 2, 'ConfidentialMPTSend');
|
|
203
|
+
// ── CredentialIDs ── optional, but when present must be a non-empty
|
|
204
|
+
// array of unique 64-char hex strings of length 1..8.
|
|
205
|
+
if (props.CredentialIDs !== undefined) {
|
|
206
|
+
if (!isArray(props.CredentialIDs)) {
|
|
207
|
+
throw new ValidationError('ConfidentialMPTSend: CredentialIDs must be an array');
|
|
208
|
+
}
|
|
209
|
+
if (props.CredentialIDs.length === 0) {
|
|
210
|
+
throw new ValidationError('ConfidentialMPTSend: CredentialIDs cannot be an empty array');
|
|
211
|
+
}
|
|
212
|
+
if (props.CredentialIDs.length > MAX_AUTHORIZED_CREDENTIALS) {
|
|
213
|
+
throw new ValidationError(`ConfidentialMPTSend: CredentialIDs cannot exceed ${MAX_AUTHORIZED_CREDENTIALS} elements`);
|
|
214
|
+
}
|
|
215
|
+
const seen = new Set();
|
|
216
|
+
for (const cid of props.CredentialIDs) {
|
|
217
|
+
if (!isString(cid) ||
|
|
218
|
+
!isHex(cid) ||
|
|
219
|
+
cid.length !== CREDENTIAL_ID_HEX_LENGTH) {
|
|
220
|
+
throw new ValidationError(`ConfidentialMPTSend: each CredentialID must be a ${CREDENTIAL_ID_HEX_LENGTH}-character hex string (Vector256)`);
|
|
221
|
+
}
|
|
222
|
+
if (seen.has(cid)) {
|
|
223
|
+
throw new ValidationError('ConfidentialMPTSend: CredentialIDs cannot contain duplicates');
|
|
224
|
+
}
|
|
225
|
+
seen.add(cid);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// NOTE: Account must NOT be the issuer of MPTokenIssuanceID
|
|
229
|
+
// (XLS-0096 §9.4.1.2 / xrpl.js `isMPTIssuer` guard). Not enforced
|
|
230
|
+
// here — see `## Divergences` header for why.
|
|
231
|
+
// NOTE: Destination must NOT be the issuer of MPTokenIssuanceID
|
|
232
|
+
// (XLS-0096 §9.4.1.3 / xrpl.js `isMPTIssuer` guard). Not enforced
|
|
233
|
+
// here — see `## Divergences` header for why.
|
|
234
|
+
return buildFrozenTx('ConfidentialMPTSend', props, {
|
|
235
|
+
validate() {
|
|
236
|
+
// Validated at construction.
|
|
237
|
+
},
|
|
238
|
+
toJSON() {
|
|
239
|
+
const json = {};
|
|
240
|
+
for (const k of Object.keys(this)) {
|
|
241
|
+
if (k === 'validate' || k === 'toJSON' || k === 'with')
|
|
242
|
+
continue;
|
|
243
|
+
const v = this[k];
|
|
244
|
+
if (v !== undefined)
|
|
245
|
+
json[k] = v;
|
|
246
|
+
}
|
|
247
|
+
return json;
|
|
248
|
+
},
|
|
249
|
+
with(overrides) {
|
|
250
|
+
return confidentialMptSend(mergeForWith(this, overrides));
|
|
251
|
+
},
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=confidential-mpt-send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confidential-mpt-send.js","sourceRoot":"","sources":["../../../src/fp/factories/confidential-mpt-send.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface CredentialAcceptProps {
|
|
2
|
+
/** The subject of the credential (the Account submitting the tx). */
|
|
3
|
+
Account: string;
|
|
4
|
+
/** The issuer of the credential. XRPL classic or X-address. */
|
|
5
|
+
Issuer: string;
|
|
6
|
+
/**
|
|
7
|
+
* Hex-encoded identifier of the credential type. 1–64 bytes
|
|
8
|
+
* (2–128 hex chars), non-empty.
|
|
9
|
+
*/
|
|
10
|
+
CredentialType: string;
|
|
11
|
+
/** Bit-flags for this transaction. */
|
|
12
|
+
Flags?: number | undefined;
|
|
13
|
+
Fee?: string | undefined;
|
|
14
|
+
Sequence?: number | undefined;
|
|
15
|
+
}
|
|
16
|
+
export interface CredentialAccept extends Readonly<CredentialAcceptProps> {
|
|
17
|
+
readonly TransactionType: 'CredentialAccept';
|
|
18
|
+
validate(): void;
|
|
19
|
+
toJSON(): Record<string, unknown>;
|
|
20
|
+
with(overrides: Partial<CredentialAcceptProps>): CredentialAccept;
|
|
21
|
+
}
|
|
22
|
+
export declare function credentialAccept(props: CredentialAcceptProps): CredentialAccept;
|
|
23
|
+
//# sourceMappingURL=credential-accept.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-accept.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/credential-accept.ts"],"names":[],"mappings":"AAqFA,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,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,gBACf,SAAQ,QAAQ,CAAC,qBAAqB,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,gBAAgB,CAAC;CACnE;AA6BD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,gBAAgB,CAuD/E"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functional CredentialAccept factory — frozen-object style.
|
|
3
|
+
*
|
|
4
|
+
* Accepts a credential that was provisionally issued to the Account.
|
|
5
|
+
* Validation happens at construction; there is no way to construct an
|
|
6
|
+
* invalid tx.
|
|
7
|
+
*
|
|
8
|
+
* import { credentialAccept } from 'xrplt/fp';
|
|
9
|
+
* const tx = credentialAccept({
|
|
10
|
+
* Account,
|
|
11
|
+
* Issuer: iss,
|
|
12
|
+
* CredentialType: '6D795F63726564656E7469616C',
|
|
13
|
+
* });
|
|
14
|
+
* const j = tx.toJSON();
|
|
15
|
+
*
|
|
16
|
+
* Affected amendments:
|
|
17
|
+
* - `Credentials` — introduces this transaction type (XLS-0070 §4).
|
|
18
|
+
*
|
|
19
|
+
* @see https://xrpl.org/docs/references/protocol/transactions/types/credentialaccept
|
|
20
|
+
* @see https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0070-credentials
|
|
21
|
+
*
|
|
22
|
+
* ## Divergences
|
|
23
|
+
*
|
|
24
|
+
* The class-based API at `src/transactions/credential-accept.ts` is
|
|
25
|
+
* missing three rules that the canonical sources require. The factory
|
|
26
|
+
* adds them:
|
|
27
|
+
*
|
|
28
|
+
* 1. `CredentialType` must not be an empty string.
|
|
29
|
+
* The class only checks `isString(this.CredentialType)`, so `""`
|
|
30
|
+
* passes. XLS-0070 §2.1.3: "It has a maximum length of 64 bytes,
|
|
31
|
+
* and cannot be an empty string." xrpl.js `validateCredentialType`
|
|
32
|
+
* rejects `tx.CredentialType.length === 0`. xrpl-dev-portal's
|
|
33
|
+
* `credentialaccept.md` field table likewise lists the minimum
|
|
34
|
+
* length as 1 byte.
|
|
35
|
+
* Source: XLS-0070 §2.1.3; xrpl.js
|
|
36
|
+
* `models/transactions/common.ts:1061–1086`
|
|
37
|
+
* (`validateCredentialType`).
|
|
38
|
+
*
|
|
39
|
+
* 2. `CredentialType` must be hex-encoded.
|
|
40
|
+
* The class accepts any string (e.g. `"not-hex!"`). The spec
|
|
41
|
+
* encodes `CredentialType` as a `Blob` (XLS-0070 §2.1 field table
|
|
42
|
+
* row for `CredentialType`: Internal Type `Blob`). xrpl.js
|
|
43
|
+
* `validateCredentialType` enforces `HEX_REGEX.test`.
|
|
44
|
+
* Source: XLS-0070 §2.1 field table; xrpl.js
|
|
45
|
+
* `models/transactions/common.ts:1088–1092`
|
|
46
|
+
* (`validateCredentialType`).
|
|
47
|
+
*
|
|
48
|
+
* 3. `CredentialType` length must be at most 128 hex chars (64 bytes).
|
|
49
|
+
* The class has no length check. XLS-0070 §2.1.3 caps the value at
|
|
50
|
+
* 64 bytes; the hex-encoded form is therefore at most 128 chars.
|
|
51
|
+
* xrpl.js enforces `MAX_CREDENTIAL_TYPE_LENGTH = 128`
|
|
52
|
+
* (`common.ts:30`). The hex form must also be even-length to round-
|
|
53
|
+
* trip cleanly through the binary codec — the factory enforces
|
|
54
|
+
* even length explicitly so users get a clear error.
|
|
55
|
+
* Source: XLS-0070 §2.1.3; xrpl.js
|
|
56
|
+
* `models/transactions/common.ts:30` and
|
|
57
|
+
* `models/transactions/common.ts:1082–1086`.
|
|
58
|
+
*
|
|
59
|
+
* 4. `Account` is explicitly required and validated as a non-empty
|
|
60
|
+
* string.
|
|
61
|
+
* The class inherits its `Account` handling from
|
|
62
|
+
* `Transaction.validate()` via `super.validate()` and never
|
|
63
|
+
* re-checks the field. The factory has no inheritance chain, so
|
|
64
|
+
* the requirement is enforced here. xrpl.js enforces the same via
|
|
65
|
+
* `validateRequiredField(tx, 'Account', isString)`.
|
|
66
|
+
* Source: XLS-0070 §4.1 (Account is required, JSON Type Address);
|
|
67
|
+
* xrpl.js `models/transactions/CredentialAccept.ts:39`.
|
|
68
|
+
*
|
|
69
|
+
* Note on `Issuer`: the class uses `isAccount` (format-only XRPL
|
|
70
|
+
* address check). This is stricter than xrpl.js's `isString` and is
|
|
71
|
+
* retained here — `Issuer` is typed `AccountID` in XLS-0070 §4.1, so
|
|
72
|
+
* the format check is correct.
|
|
73
|
+
*/
|
|
74
|
+
import { isAccount, isHex, isString } from '../../validation/helpers.js';
|
|
75
|
+
import { ValidationError } from '../../errors.js';
|
|
76
|
+
import { buildFrozenTx, mergeForWith, require } from '../shape.js';
|
|
77
|
+
// ─── Spec constants ──────────────────────────────────────────────────
|
|
78
|
+
// CredentialType is a hex-encoded Blob capped at 64 bytes (XLS-0070 §2.1.3).
|
|
79
|
+
const MAX_CREDENTIAL_TYPE_BYTES = 64;
|
|
80
|
+
const MAX_CREDENTIAL_TYPE_HEX_LENGTH = MAX_CREDENTIAL_TYPE_BYTES * 2;
|
|
81
|
+
// ─── Helpers ─────────────────────────────────────────────────────────
|
|
82
|
+
function validateCredentialTypeHex(value) {
|
|
83
|
+
if (value.length === 0) {
|
|
84
|
+
throw new ValidationError('CredentialAccept: CredentialType cannot be an empty string');
|
|
85
|
+
}
|
|
86
|
+
if (!isHex(value)) {
|
|
87
|
+
throw new ValidationError('CredentialAccept: CredentialType must be encoded in hex');
|
|
88
|
+
}
|
|
89
|
+
if (value.length % 2 !== 0) {
|
|
90
|
+
throw new ValidationError('CredentialAccept: CredentialType must be a hex string with an even number of characters');
|
|
91
|
+
}
|
|
92
|
+
if (value.length > MAX_CREDENTIAL_TYPE_HEX_LENGTH) {
|
|
93
|
+
throw new ValidationError(`CredentialAccept: CredentialType length cannot be > ${MAX_CREDENTIAL_TYPE_HEX_LENGTH} (64 bytes)`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// ─── Factory ─────────────────────────────────────────────────────────
|
|
97
|
+
export function credentialAccept(props) {
|
|
98
|
+
// ── Account ── required, must be a non-empty string.
|
|
99
|
+
require(props.Account, 'CredentialAccept: Account is required', isString);
|
|
100
|
+
if (props.Account.length === 0) {
|
|
101
|
+
throw new ValidationError('CredentialAccept: Account is required');
|
|
102
|
+
}
|
|
103
|
+
// ── Issuer ── required, must look like an XRPL classic or X-address.
|
|
104
|
+
if (!isAccount(props.Issuer)) {
|
|
105
|
+
throw new ValidationError('CredentialAccept: missing or invalid Issuer');
|
|
106
|
+
}
|
|
107
|
+
// ── CredentialType ── required, hex, non-empty, even-length, ≤ 64 bytes.
|
|
108
|
+
if (props.CredentialType === undefined) {
|
|
109
|
+
throw new ValidationError('CredentialAccept: missing field CredentialType');
|
|
110
|
+
}
|
|
111
|
+
if (!isString(props.CredentialType)) {
|
|
112
|
+
throw new ValidationError('CredentialAccept: CredentialType must be a string');
|
|
113
|
+
}
|
|
114
|
+
validateCredentialTypeHex(props.CredentialType);
|
|
115
|
+
return buildFrozenTx('CredentialAccept', props, {
|
|
116
|
+
validate() {
|
|
117
|
+
// Validated at construction.
|
|
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 credentialAccept(mergeForWith(this, overrides));
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=credential-accept.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-accept.js","sourceRoot":"","sources":["../../../src/fp/factories/credential-accept.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;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,6EAA6E;AAC7E,MAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,MAAM,8BAA8B,GAAG,yBAAyB,GAAG,CAAC,CAAC;AA4BrE,wEAAwE;AAExE,SAAS,yBAAyB,CAAC,KAAa;IAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,eAAe,CACvB,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CACvB,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,uDAAuD,8BAA8B,aAAa,CACnG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,sDAAsD;IACtD,OAAO,CACL,KAAK,CAAC,OAAO,EACb,uCAAuC,EACvC,QAAQ,CACT,CAAC;IACF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,uCAAuC,CAAC,CAAC;IACrE,CAAC;IAED,sEAAsE;IACtE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAe,CACvB,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,IAAI,eAAe,CACvB,gDAAgD,CACjD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CACvB,mDAAmD,CACpD,CAAC;IACJ,CAAC;IACD,yBAAyB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEhD,OAAO,aAAa,CAClB,kBAAkB,EAClB,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,SAAyC;YAEzC,OAAO,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACzD,CAAC;KACF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface CredentialCreateProps {
|
|
2
|
+
/** The issuer of the credential. */
|
|
3
|
+
Account: string;
|
|
4
|
+
/** The subject of the credential. */
|
|
5
|
+
Subject: string;
|
|
6
|
+
/** Hex-encoded credential type, 1–64 bytes. */
|
|
7
|
+
CredentialType: string;
|
|
8
|
+
/** Optional expiration (seconds since Ripple Epoch). */
|
|
9
|
+
Expiration?: number | undefined;
|
|
10
|
+
/** Optional hex-encoded URI, 1–256 bytes. */
|
|
11
|
+
URI?: string | undefined;
|
|
12
|
+
/** Bit-flags for this transaction. (No flags are defined for this tx.) */
|
|
13
|
+
Flags?: number | undefined;
|
|
14
|
+
Fee?: string | undefined;
|
|
15
|
+
Sequence?: number | undefined;
|
|
16
|
+
}
|
|
17
|
+
export interface CredentialCreate extends Readonly<CredentialCreateProps> {
|
|
18
|
+
readonly TransactionType: 'CredentialCreate';
|
|
19
|
+
validate(): void;
|
|
20
|
+
toJSON(): Record<string, unknown>;
|
|
21
|
+
with(overrides: Partial<CredentialCreateProps>): CredentialCreate;
|
|
22
|
+
}
|
|
23
|
+
export declare function credentialCreate(props: CredentialCreateProps): CredentialCreate;
|
|
24
|
+
//# sourceMappingURL=credential-create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-create.d.ts","sourceRoot":"","sources":["../../../src/fp/factories/credential-create.ts"],"names":[],"mappings":"AAkHA,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,0EAA0E;IAC1E,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,gBACf,SAAQ,QAAQ,CAAC,qBAAqB,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,gBAAgB,CAAC;CACnE;AA8ED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,GAC3B,gBAAgB,CAoElB"}
|