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

Create Marker reflection endpoint needed for private zones #1174

Closed
4 tasks
arnabmitra opened this issue Oct 20, 2022 · 3 comments
Closed
4 tasks

Create Marker reflection endpoint needed for private zones #1174

arnabmitra opened this issue Oct 20, 2022 · 3 comments
Assignees
Labels
marker Marker Module
Milestone

Comments

@arnabmitra
Copy link
Contributor

arnabmitra commented Oct 20, 2022

Summary

Relates to #1093
Add a Marker reflection endpoint so that the marker can be copied to destination chains/zones via ICA.

Problem Definition

Right now ibc denoms cannot be created as Marker.(Other than via Gov Proposals)
We can open up the regex but then it may lead to confusion where users can just create ibc denoms with less than optimal configs (A huge risk if they enable mint/burn on said ibc marker, either by accident or maliciously etc).
A more elegant solution would be to create the marker over ICA message with the user(any user) initiating the action just paying the fees, the rest being done by marker module --> relayer --> ica handler on destination chain --> ack back to source chain.

Proposal

Leverage ICA to reflect markers over to destination chain/zone

  1. Create an endpoint to reflect the marker over the destination chain.
    This msg_server/cli endpoint will take in the ibc denom, so the marker module will be able to decipher what is the destination chain, what channel/connection to use to ICA it over. (DEV TASK): Create reflect marker endpoint for ica #1180
  2. The ^^ marker module code will make sure that the denom exists on the source chain and has not already been ICA'ed over.
  3. The ^^ marker module code will copy the transfer permissions only in the ICA payload(A custom message called ICAReflectMarkerMsg (change name as needed).(No Minting/Burning will be allowed on the destination chain marker for obvious reasons), Supply of destination marker will not be fixed for obvious reasons. Marker Type should be copied over as is.
    The assumption is here that the permissions should only be changed on source chain and then ICA'ed over.
  4. The ^^ marker module code will make sure the base address remains same on destination chain(Derived from denom)
  5. An assumption is to be made that a relayer will be available to relay the ICA message
  6. Marker module will receive any Ack from the destination chain for success or failure and store it in the marker state as needed. (DEV TASK): Handle ICA responses #1190
  7. The destination chain should be able to process the ICA packer and create the marker on that chain.
  8. The destination chain ack back success or failure back to the source chain.

Benefits: solves #1093 needed by Figure Equity Solutions
Disadvantages: ICA messages being enabled, more complexity in the system, a reliance on relayers.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@arnabmitra
Copy link
Contributor Author

more notes found here https://hackmd.io/3fwzGtlbRRGiaBAUdZyyGg

@iramiller
Copy link
Member

This should be implemented with an IBC hooks extension (see #1127 )

@iramiller iramiller added the marker Marker Module label Sep 6, 2023
@nullpointer0x00
Copy link
Contributor

Implemented by #1127

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

No branches or pull requests

6 participants