Closed bitbeckers closed 1 year ago
@holkeb @ryscheng could you review and expand on the Usecases in the top post?
Hmmm.... I'm seeing that the primary distinction is that a user and creator has different burn permissions...
@holkeb I'm curious what do you think about this:
For retiring of hypercerts, I think we only need the burning of the fractions, i.e. (like @ryscheng proposed)
There doesn't really seem to be a need to burn the ClaimToken, except maybe if a Creator made a mistake creating it? (like @bitbeckers proposed)
I don't see a case why a user should be able to burn the ClaimToken, when they hold all fractions.
Reg. 1 and 2:
Previously I thought we would need to have two different addresses: One to retire. Another one to burn and unclaim the area. But I guess with the ClaimToken, we don't need two addresses for that anymore.
If case 2 is difficult to implement, we don't necessarily need it.
how do you feel about this @bitbeckers ?
if (isBaseType(ids[i]) && from != address(0)) revert Errors.NotAllowed();
This check only allows the transfer of a ClaimToken when it's minted.
This can bring us to two conclusions:
Is this agreeable for you @holkeb and @ryscheng? Alternatively we allow the creator to burn the ClaimToken together with the FractionToken that holds all the units denominated in the ClaimToken.
Reg. your conclusions @bitbeckers
Yes to both.
There might be some checks in the underlying contracts regarding tokens owned by the zero-address, but I think your solution makes a lot of sense. I'll create an issue, make the changes and test them out.
I think for now this is the cleanest to not confuse people with multiple tokens. There is something in the back of my mind that makes sense as well though: If all contributors would have an SBT, they have prove of having done the work. Then they also have a hypercert that they can sell, but they always keep the proof that they did the work.
Goal
The creator of a hypercert is capable or burning the hypercert token they created
There are two types of tokens in the HypercertMinter:
There are two type of protocol users:
We have three types of TransferRestrictions:
Usecases