@@ -92,19 +92,11 @@ otherwise throw `UnsupportedProgramId`
92
92
otherwise throw ` AccountDataTooSmall `
93
93
- the status stored in the program account is not retracted,
94
94
otherwise throw ` UnsupportedProgramId `
95
- - the program account was not deployed recently (delay-visibility),
96
- otherwise throw ` UnsupportedProgramId `
95
+ - the program account was not deployed within the current slot
96
+ (delay visibility), otherwise throw ` UnsupportedProgramId `
97
97
- the executable file stored in the program account passes executable
98
98
verification, otherwise throw ` UnsupportedProgramId `
99
99
100
- Otherwise the execution semantics stay the same as in loader-v2 and v3.
101
- Delay-visibility also stays the same as in loader-v3:
102
-
103
- - Re/deployed programs act as closed until the end of the slot,
104
- only then becoming available for execution
105
- - The feature set that the executable file is verified against is not
106
- necessarily the current one, but the one of the epoch of the next slot
107
-
108
100
### Program Management Instructions
109
101
110
102
#### Write
@@ -185,8 +177,8 @@ necessarily the current one, but the one of the epoch of the next slot
185
177
- Check there are at least two instruction accounts,
186
178
otherwise throw ` NotEnoughAccountKeys `
187
179
- Verify the program account
188
- - Check that the deployment cooldown expired,
189
- otherwise throw ` InvalidArgument `
180
+ - Check that the slot stored in the program account is not the current
181
+ (deployment cooldown), otherwise throw ` InvalidArgument `
190
182
- Check that the status stored in the program account is retracted
191
183
otherwise throw ` InvalidArgument `
192
184
- In case a source program was provided (instruction account at index 2):
@@ -195,6 +187,8 @@ necessarily the current one, but the one of the epoch of the next slot
195
187
otherwise throw ` InvalidArgument `
196
188
- Check that the executable file stored in the source program account
197
189
passes executable verification
190
+ - The feature set that the executable file is verified against is not
191
+ necessarily the current one, but the one of the epoch of the next slot
198
192
- Copy the entire source program account into the program account
199
193
- Set the length of the source program account to zero
200
194
- Transfer all funds of the source program account to the program
@@ -216,8 +210,8 @@ necessarily the current one, but the one of the epoch of the next slot
216
210
- Check there are at least two instruction accounts,
217
211
otherwise throw ` NotEnoughAccountKeys `
218
212
- Verify the program account
219
- - Check that the deployment cooldown expired,
220
- otherwise throw ` InvalidArgument `
213
+ - Check that the slot stored in the program account is not the current
214
+ (deployment cooldown), otherwise throw ` InvalidArgument `
221
215
- Check that the status stored in the program account is deployed,
222
216
otherwise throw ` InvalidArgument `
223
217
- Note: The slot is ** not** set to the current slot to allow a
0 commit comments