Property Grouping
@Akira-Taniguchi がすでに取り組んでいます。
2020年12月11日 から。
評価
この issue はまだ評価されていません。
説明
This proposal is a new implementation proposal of DIP5 (#5) for efficient handling of multiple Properties.
"Property Grouping" feature allows creators to combine multiple properties they have tokenized into one or more groups. This behavior is similar to the relationship between "folders" and "files" in a file system.
Directory Tokens
An ERC20 contract creating to group multiple Property Tokens (a.k.a. Creator Tokens). The total supply is fixed at 10,000,000. There are no restrictions on the transfer destination.
Directory Tokens holders can earn creator rewards for all grouped Property Tokens.
Once Directory Tokens are generated, no one can self-destruct them.
Technical requirements
I propose the main technical requirements and interfaces for Directory Tokens as follows.
Also, Directory Tokens should be implemented as an upgradeable contract. I think it is desirable to implement it as an external contract rather than incorporating it into the Dev Protocol core. However, Dev Kit and GraphQL should support Property Grouping.
Association
Creators can associate up to 9 Property Tokens with Directory Tokens (this limit works to keep low gas fees). The operation is required the Directory holder and the Property holder to be the same.
The association between Directory Tokens and Property Tokens is done by sending Property Tokens to Directory Tokens (Contract).
The interface is:
function associate(address _property, uint _amount) external;
Disassociation
Note: This feature should not be implemented initially. It should be implemented after sufficient security verification.
Transfer the Creator Tokens deposited in a Directory Token to another address. This operation requires agreement by all Directory Tokens holders. This is because disassociation means a reduction in rewards for Directory Tokens holders.
The interface is:
function disassociate(address _recipient, address _property, uint _amount) external;
Reward withdrawal
Withdraw rewards for associated Property Tokens. With the total reward amount of all associated Property Tokens as the maximum value, the reward is withdrawn according to the share ratio of Directory Tokens held by the account.
Calling Withdraw.withdraw each grouped Properties means running ERC20.mint and Lockup.update each grouped Properties, which means higher gas fees. Should add the bulkWithdraw function to the Withdraw contract.
The interface is:
function withdraw(address _directory) external;
Transfer Hook
A hook that updates the withdrawable rewards for the source and destination when transferring Directory Tokens. Withdraw.beforeBalanceChange is the reference model.
The interface is:
function beforeBalanceChange(address _directory, address _from, address _to) external;
- 主要言語
- 言語のデータがありません
- スター
- 11
- フォーク
- 7
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
dev-protocol/DIPs のほかの issue
-
priority - high tokenomics
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
dev-protocol/DIPs#76 · コメント 4 件 · リアクション 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
dev-protocol/DIPs#61 · リアクション 2 件 ·
-
layers
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
dev-protocol/DIPs#52 · コメント 2 件 · リアクション 4 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
dev-protocol/DIPs#50 · コメント 28 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
dev-protocol/DIPs#48 · コメント 13 件 ·