make spec less strict on overwriting memberships

This commit is contained in:
Sergei Tikhomirov 2024-09-30 16:02:43 +02:00
parent cc1a917d11
commit 090c65c8e6
No known key found for this signature in database
GPG Key ID: 6A1F8ED9D6538027

View File

@ -173,9 +173,11 @@ Membership registration is additionally subject to the following requirements:
- The new membership MAY overwrite one or multiple _Expired_ memberships.
- If `r > R_{free}`:
- if `r > R_{free} + R_{expired}`, registration MUST fail;
- if `r <= R_{free} + R_{expired}`, the new membership MUST be registered by overwriting some _Expired_ memberships.
- if `r <= R_{free} + R_{expired}`, the new membership SHOULD be registered by overwriting some _Expired_ memberships.
- The sender of the registration transaction MAY specify a list of _Expired_ memberships to be overwritten.
- If any of the memberships in the list are not _Expired_, the registration MUST fail.
- If the list is not provided, the contract MAY use any criteria to select _Expired_ memberships to overwrite (see Implementation Suggestions).
- If the list is not provided, the registration MAY fail even if the membership set contains _Expired_ membership that, if erased, would provide sufficient rate limit.
- If a new membership A overwrites an _Expired_ membership B:
- membership B MUST become _ErasedAwaitsWithdrawal_;
- the current total rate limit MUST be decremented by the rate limit of membership B;