Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IBC support in the marker module #1093

Closed
4 tasks
jtalis opened this issue Sep 27, 2022 · 4 comments
Closed
4 tasks

IBC support in the marker module #1093

jtalis opened this issue Sep 27, 2022 · 4 comments
Labels
ibc inter-blockchain communication marker Marker Module
Milestone

Comments

@jtalis
Copy link
Contributor

jtalis commented Sep 27, 2022

Summary

There is a need to create a marker on the destination chain using a source chain transaction

Problem Definition

We are looking to use a restricted marker in a private zone, and then transfer coins from that marker to the destination chain and have them still be restricted.

Without this feature it may be possible to create the marker ahead of time on the destination chain by determining the ibc denom name and creating a restricted marker with that name. However, ibc denoms don't pass the marker denom validation and would require a gov proposal to create them ahead of time. This would be too cumbersome when wanting to frequently create these markers.

Proposal

Add the ability to create a marker on the destination chain using a source chain transaction. Similar to the regular marker creation message, the source message should be able to define if the marker type and permissions


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@Taztingo Taztingo self-assigned this Sep 27, 2022
@iramiller
Copy link
Member

Some initial comments on markers that get created on the destination chain:

  • Mint/Burn permissions must be disabled for any ibc/ denom
  • Supply must not be 'fixed' on an ibc denom because the ibc module will be minting/burning amounts when transferred
  • Permissions can be copied from the source to the destination with the exception of the mint/burn grants. Alternatively these could be copied to show correct source values but they would still need to be disabled at point of use.
  • Destination ibc markers should not be editable since they are a reflection of the source. It may be easiest to enforce this by removal of grants. The deposit/withdraw/transfer grants are likely still applicable on the destination chain however any smart contracts used for management will have a different address on the destination chain (if they exist at all).
  • When the source marker is edited (mostly grants) they should be replicated to the destination chain(s). There may be limitations on these features which should be called out in the documentation.

@iramiller
Copy link
Member

See #1127

@iramiller iramiller added marker Marker Module ibc inter-blockchain communication labels Sep 6, 2023
@Taztingo Taztingo removed their assignment Sep 12, 2023
@nullpointer0x00
Copy link
Contributor

Implemented in #1127

@nullpointer0x00
Copy link
Contributor

Overview of implementation.

  • Markers sent from source chain will have a name of type ibc/ on destination chain. The record will have a DenomMetaData associated with it where Name and Display will be "chain-id/chain-denom" (i.e pio-testnet-1/nhash) and Description is "chain-denom is from chain-id" (i.e. nhash is from pio-testnet-1).
  • Markers are created without Mint/Burn permissions.
  • Markers are only created with transfer authority grants. Excluding the other grants ensures the marker immutable from the destination chain.
  • Transfer authority permissions are a reflection of the source chains transfer permissions. If the source chain's transfer permissions are updated. The next transfer of the marker from source to dest chain will update those permissions.
  • allow_forced_transfer flag is reflected on the destination chain for restricted markers. If the source chain's allow_forced_transfer flag is changed. The next transfer of the marker from source to dest chain will update that property.

@jtalis PR #1678 implemented all these changes and is now merged to main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ibc inter-blockchain communication marker Marker Module
Projects
Development

No branches or pull requests

5 participants