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: cips/cip-031.md
+5-13
Original file line number
Diff line number
Diff line change
@@ -65,7 +65,7 @@ By integrating staking rewards directly into the lockup schedule, this proposal
65
65
- Unlocked & Unstaked
66
66
- Unlocked & Staked
67
67
68
-
4.**Mathematical Model & Example:**
68
+
4.**Example Implementation:**
69
69
70
70
### Continuous Vesting Accounts
71
71
@@ -102,15 +102,7 @@ Periodic account creation will be removed, and update schedule will be a noop
102
102
103
103
### Permanent Vesting Accounts
104
104
105
-
Periodic account creation will be removed, and update schedule will be a noop
106
-
107
-
*NOTE: reward calculation is arbitrary, it is not based on Celestia's inflation.*
108
-
109
-
5.**Error Handling:**
110
-
111
-
- Ensure sufficient balance checks before processing rewards.
112
-
- Validate that the lockup period is still active.
113
-
- Separate commission transfers from reward lockup updates.
105
+
Permanent account creation will be removed, and update schedule will be a noop
114
106
115
107
### Module Interaction
116
108
@@ -156,7 +148,7 @@ When upgrading to v4 we propose introducing a migration that will set the Parame
156
148
157
149
# Backwards Compatibility
158
150
159
-
Continuous Vesting, Delayed Vesting will implement the `UpdateSchedule` function allowing for the original amount to be added to. Periodic and Permanent will implement the design as a noop, and they will be disallowed from being created.
151
+
The continuous and delayed vesting account types will be updated to implement CIP-31. Specifically, they will implement the `UpdateSchedule` function so that the original vesting amount can account for staking rewards. The periodic and permanent account types will not support CIP-31. They will be disallowed from being created.
160
152
161
153
# Test Cases
162
154
@@ -169,7 +161,7 @@ The implementation should include test cases covering:
169
161
170
162
# Reference Implementation
171
163
172
-
The `VestingAccount` interface will be updated to account for an UpdateSchedule method which includes the amount to update the schedule with and teh blocktime at which it occured. We must pass in the blocktime in order to understand if the account is fully vested or not.
164
+
The `VestingAccount` interface will be updated to account for an UpdateSchedule method which includes the amount to update the schedule with and the blocktime at which it occured. We must pass in the blocktime in order to understand if the account is fully vested or not.
173
165
174
166
```diff
175
167
// VestingAccount defines an account type that vests coins via a vesting schedule.
@@ -204,7 +196,7 @@ type VestingAccount interface {
204
196
GetDelegatedFree() sdk.Coins
205
197
GetDelegatedVesting() sdk.Coins
206
198
207
-
// UpdateSchedule updates the original vesting amount for the account.
199
+
+// UpdateSchedule updates the original vesting amount for the account.
0 commit comments