Skip to content

fix(mpt): align one-way mutable flags - #347

Draft
kpitapeersyst wants to merge 1 commit into
confidential-transfersfrom
mpt/fix/one-way-mutable-flags
Draft

fix(mpt): align one-way mutable flags#347
kpitapeersyst wants to merge 1 commit into
confidential-transfersfrom
mpt/fix/one-way-mutable-flags

Conversation

@kpitapeersyst

Copy link
Copy Markdown
Collaborator

fix(mpt): align one-way mutable flags

Description

This PR aligns Dynamic MPT and confidential-balance flags with their one-way protocol semantics. Ordinary capabilities can be enabled only when previously permitted, metadata and transfer-fee permissions remain repeatable, and opting out of confidential balances is permanent.

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Refactoring

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code where needed
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective
  • New and existing unit tests pass locally with my changes

Changes

  • Rename confidential-balance flags and setters to match the protocol terminology.
  • Model issuance permissions as one-way future-enable operations.
  • Remove unsupported clear operations from MPTokenIssuanceSet.
  • Add masks that reject zero or unknown mutable-flag combinations.
  • Prevent non-zero transfer fees from being combined with confidential balances.
  • Align the MPTokenIssuance ledger model with the transaction flag semantics.
  • Expand validation and bit-preservation coverage for create, set, and ledger-entry models.

Tests

  • go test ./xrpl/ledger-entry-types ./xrpl/transaction

CI status

Note

Lint and Test and Run govulncheck are expected to fail until #345 is merged into confidential-transfers. The target branch already contains the updated mpt-crypto header, but it does not yet contain the matching CGo decryption call added by #345. This PR does not modify confidential/mptcrypto.

After #345 is merged, this branch will be rebased onto the updated target branch and the checks will run again.

Notes

  • This PR targets the temporary confidential-transfers integration branch.
  • It renames and removes exported APIs that exist only on the unreleased integration branch.
  • Changelog updates are intentionally deferred until the integration branch stabilizes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant