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

BSIP 75 - Asset Owner defines MCR and MSSR values #218

Merged
merged 11 commits into from
May 22, 2020
Prev Previous commit
Next Next commit
BSIP75: Conditional enabling of a permission
  • Loading branch information
MichelSantos authored May 15, 2020
commit bacc762b7fb3bcc06a8e3113ec04d203a4ea688a
6 changes: 3 additions & 3 deletions bsip-0075.md
Original file line number Diff line number Diff line change
@@ -53,14 +53,14 @@ All relevant blockchain contracts _shall ignore_ a parameter _if it is not set_

At the time that this BSIP activates, these issuer-defined parameters shall not be _set_ and will therefore not affect the current behavior of the asset _unless and until_ each asset owner sets a parameter.

An asset owner shall also be to set and unset a parameter at will unless the permission to change that parameter has been forfeited as described in [Permission to Change the Parameter](#permissions).
An asset owner shall also be able to set and unset a parameter at will unless the permission to change that parameter has been forfeited as described in [Permission to Change the Parameter](#permissions).


## <div id="permissions">Permission to Change the Parameters</div>

The permission to change any of these parameters shall make use of new permissions. _Each of the parameters shall have its own distinct permission._ Disabling the permission prohibits the changing of the parameter as described in [Changing the Parameters](#changing-parameters).

The existing set of asset issuer permissions shall be expanded to permit an asset owner to forfeit changing the parameters. It shall not be permitted to regain a permission after it is forfeited.
The existing set of asset issuer permissions shall be expanded to permit an asset owner to forfeit changing the parameters. It shall not be permitted to regain a permission after it is forfeited unless the supply of the asset is zero.

Existing software clients might not be updated to make use of these new parameters. Changing the permissions shall be designed such that older software clients may not accidentally forfeit these permissions either for existing assets or new assets. _The parameters and the permissions to change parameters shall be designed such that they are defaulted to enabled. The permissions shall be designed such that **explicit disabling/forfeiting** is required which should not be possible with older software clients._

@@ -79,7 +79,7 @@ It shall be possible to set and unset a parameter at any time __if and only if__

The `create_asset_operation` can be modified to include the setting of the parameters above.

The `update_asset_operation` can be modified to permit updating of the MCR and MSSR parameters, if the asset has the appropriate permissions. Much of the logic currently in `asset_publish_feeds_evaluator::do_apply()` (i.e. call order checks and calculations) can be also called here if MCR or MSSR are adjusted.
The `update_asset_operation` can be modified to disable/forfeit the permissions to change, and to enable/regain the permissions _if_ the supply is zero.

The `asset_update_bitasset_operation` can be modified to permit updating of the MCR and MSSR values, if the asset has the appropriate permissions. Much of the logic currently in `asset_publish_feeds_evaluator::do_apply()` (i.e. call order checks and calculations) can be called here if MCR and MSSR are adjusted.