Skip to content

Fix asset management rights transfer: support any destination + add revoke from MsVault/qRWA #232

@sallymoc

Description

@sallymoc

Problem

The "Transfer Management Rights" feature currently has two issues:

  1. Destination is incorrectly restricted — The destination contract dropdown only lists contracts that implement TransferShareManagementRights as sources. However, TransferShareManagementRights accepts any contract index via input.newManagingContractIndex, so the destination should allow selecting any existing smart contract.

  2. Missing support for MsVault and qRWA revoke — These two contracts implement a different procedure (revokeAssetManagementRights / RevokeAssetManagementRights) that transfers management rights back to QX specifically. They are not currently available as source options.

Required Changes

1. Fix destination for TransferShareManagementRights

When the source is any of the contracts implementing this procedure, the destination dropdown should list all valid smart contracts, not just the ones that implement it.

2. Add contracts implementing RevokeAssetManagementRights as source options

MsVault and qRWA implement RevokeAssetManagementRights.
These SC should be listed as source only if there is a positive balance handled by the contract.
We shouldn't hardcode as in the feature it could be other contract supports it as well. Also, we need to add the fees in the smart_contracts.json in static.

When a SC implementing RevokeAssetManagementRights is selected as source:

  • The destination must be auto-set to QX and displayed as read-only (these contracts hardcode QX_CONTRACT_INDEX)
  • On submit, call the corresponding revoke procedure (not TransferShareManagementRights)
  • Input params are the same for both: { Asset asset, sint64 numberOfShares }

Behavior Summary

Source Contract Procedure Proc Index Destination Destination Editable?
Qx TransferShareManagementRights 9 Any contract Yes
Qswap TransferShareManagementRights 11 Any contract Yes
Qbay TransferShareManagementRights 16 Any contract Yes
QRaffle TransferShareManagementRights 8 Any contract Yes
QIP TransferShareManagementRights 3 Any contract Yes
Nostromo TransferShareManagementRights 9 Any contract Yes
MsVault revokeAssetManagementRights 25 QX (fixed) No
qRWA RevokeAssetManagementRights 8 QX (fixed) No

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    🧪 Testing

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions