Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Property Grouping

Abierto
#31 12 comentarios 0 reacciones 1 asignado Ver en GitHub

@Akira-Taniguchi ya está trabajando en esto.

Desde el 11/12/2020.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

layers usability

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;
Lenguaje dominante
Sin datos de lenguaje
Estrellas
11
Forks
7
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de dev-protocol/DIPs

Todos los issues de dev-protocol/DIPs

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.