You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: bsip-0048.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,31 +32,31 @@ The ability to change the precision of a created asset adds flexibility in the a
32
32
33
33
# Rational
34
34
35
-
`disable_modify_max_supply` will be added to `asset_issuer_permissions`. The permission can be activated to forbid the modification of the `max_supply` (`asset_object.options`). The related flag can only be set to `false` if `current_supply` is zero.
35
+
`enable_modify_max_supply` will be added to `asset_issuer_permissions`. The permission can be activated to permit the modification of the `max_supply` (`asset_object.options`).
36
36
37
-
`disable_issue` will be added to `asset_issuer_permissions`. The permission can be activated to forbid issuance of additional tokens. Once the related flag is set to `true`, it can not be changed.
37
+
`enable_issue` will be added to `asset_issuer_permissions`. The permission can be set to `false` to permit the related flag to be set to `false`, which will not permit issuance of tokens. Once the flag is set to `false`, it can not be changed.
38
38
39
39
Changing the precision of an asset should be easily accomplished with an `asset_update_operation`. This causes no harm while the asset is not issued.
40
40
41
41
# Specifications
42
42
43
43
This BSIP comes with changes to the protocol, hence requires a propotocol upgrade. However the changes to the code are minor.
44
44
45
-
For `disable_modify_max_supply`:
45
+
For `enable_modify_max_supply`:
46
46
47
-
1. Add `disable_modify_max_supply` to the issuer permissions
48
-
2. Set `disable_modify_max_supply` to false for existing assets at hardfork time
47
+
1. Add `enable_modify_max_supply` to the issuer permissions
48
+
2. Set `enable_modify_max_supply` to `true` for existing assets at hardfork time
49
49
3. Add a `can_modify_max_supply()` to the `asset_object`
50
-
4. Change the `asset_update_evaluator::do_evaluate` method to assert false for
51
-
1. the setting of the `disable_modify_max_supply` flag to `false` if `current_supply` is not zero or
52
-
2. the modification of the `max_supply` when the `disable_modify_max_supply` is `true`
50
+
4. Change the `asset_update_evaluator::do_evaluate` method to assert false when
51
+
1. the setting of the `enable_modify_max_supply` flag to `true` if `current_supply` is not zero or
52
+
2. the modification of the `max_supply` when the `enable_modify_max_supply` is `false`
53
53
54
-
For `disable_issue`:
54
+
For `enable_issue`:
55
55
56
-
1. Add `disable_issue` to the issuer permissions
57
-
2. Set `disable_issue` to `false` for existing assets at hardfork time
56
+
1. Add `enable_issue` to the issuer permissions
57
+
2. Set `enable_issue` to `true` for existing assets at hardfork time
58
58
3. Add a `can_issue()` to the `asset_object`
59
-
4. Change the `asset_update_evaluator::do_evaluate` method to assert false for the setting of the `disable_issue` flag to `false` if it is currently `true`
59
+
4. Change the `asset_update_evaluator::do_evaluate` method to assert false for the setting of the `enable_issue` flag to `true` if it is currently `false`
60
60
5. Change the `asset_issue_evaluator::do_evaluate` method to assert false if `can_issue()` returns false
61
61
6. Change the `call_order_update_evalutator::do_evaluate` method to assert false if `can_issue()` returns false
62
62
@@ -69,13 +69,13 @@ To change the precision:
69
69
70
70
# Risks
71
71
72
-
It is believed that the addition of `disable_modify_max_supply` and `disable_issue` will add security for asset holders.
72
+
It is believed that the addition of `enable_modify_max_supply` and `enable_issue` will add security for asset holders.
73
73
74
74
There is the risk to parties interested in acquiring the asset if the precision is changed after due diligence and before issuance.
75
75
76
76
# Discussion
77
77
78
-
Using `disable_` as names for boolean values is not advisable and can lead to confusion. However, these names were chosen for compatibility reasons. See the comments [of a similar situation here](https://github.com/bitshares/bitshares-core/pull/1375#pullrequestreview-164580457).
78
+
Using `disable_` as names for boolean values is not advisable and can lead to confusion. See the comments [of a similar situation here](https://github.com/bitshares/bitshares-core/pull/1375#pullrequestreview-164580457). Rather than continue the legacy behavior, this BSIP will take a different tack and use positive logic. While it may be confusing for a time, future permissions and flags will use positive logic, and previous negative logic permissions will be changed to use positive logic (not part of this BSIP).
0 commit comments