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

Using Token Factory Module #289

Closed
kienn6034 opened this issue Dec 25, 2023 · 1 comment
Closed

Using Token Factory Module #289

kienn6034 opened this issue Dec 25, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@kienn6034
Copy link
Contributor

kienn6034 commented Dec 25, 2023

Proposal

  • keep using notional's wasmd fork with token factory, and update it with the latest changes
  • or use terra core v2.8 token factory module

Concerns Regarding Replacing Notional's Token Factory with Osmosis's Version

Token Factory Repository

The [Notional Token Factory repository](https://github.com/osmosis-labs/tokenfactory) maintains a token factory module. However, it appears to be outdated, with the last update being three months ago. This version is only compatible with cosmos-sdk v0.45, while our migaloo chain is already operating on cosmos-sdk v0.46. Attempting to use this older version leads to numerous compatibility issues.

Token Factory in the Osmosis Repository

The Osmosis project maintains a token_factory module within its [main repository](https://github.com/osmosis-labs/osmosis/tree/main/x/tokenfactory) (updated two weeks ago). Osmosis uses a fork of the Cosmos SDK, and they are transitioning towards the mainline Cosmos SDK version (v0.47.x), as seen in their [v21.0.0 release](https://github.com/osmosis-labs/osmosis/releases/tag/v21.0.0).

Using an earlier version of Osmosis, which relies on a forked version of cosmos-sdk v0.46.x, results in compatibility problems due to divergence from the mainline Cosmos SDK.

Unique Offerings of Notional’s Token Factory

Notional’s wasmd version, particularly in smart contract development, provides wasmbinding. This allows smart contracts to interact with Cosmos modules. The running version of the migaloo chain already supports functions related to token metadata, as shown in these code snippets from Notional and Osmosis:

Care must be taken when replacing Notional’s wasmd, as it can affect running smart contracts.

Addtional Features

Given that Notional’s Token Factory is reasonably up-to-date and even offers more functionalities than Osmosis's version, it is recommended to continue using Notional’s wasmd repository. To avoid compatibility issues, we propose porting features from Osmosis’s Token Factory v21 into Notional’s version v0.30.0-sdk-v0.46.x. The following updates can be made to Notional’s Token Factory module, based on the latest updates from Osmosis's module:

  1. Adopt Osmosis's Proto Domain: For better compatibility with the rest of the Cosmos ecosystem, use Osmosis’s proto domain, as proposed in [this pull request](feat: v0.33 change proto domain to osmosis  notional-labs/wasmd#125).
  2. Support for ForceTransfer: Introduce a feature to allow a token authority to forcibly transfer tokens.
  3. Add MintToAddress/BurnFromAddress Options: Enhance the current implementation, which does not support minting to or burning from different addresses, by adding these options in the burn and mintTo messages.
  4. Enable MsgBeforeSendHooks: Implement a method that takes a cosmwasm_address of a contract. This contract would implement a SudoMsg::BlockBeforeSend entry point, containing a hook for denylisting specific accounts and freezing all transfers if necessary.
@kienn6034 kienn6034 added the enhancement New feature or request label Dec 25, 2023
@kienn6034
Copy link
Contributor Author

kienn6034 commented Dec 26, 2023

Update: We can use the terra core v2.5 token factory module (compatible with sdk 0.47x), as it encompasses the functionality of notional's token factory and includes the additional features that I mentioned

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants