@@ -145,6 +145,22 @@ transaction level are:
145
145
- be executable
146
146
- the owner account be owned by the native loader: `NativeLoader1111111111111111111111111111111 `
147
147
- the owner account must be executable
148
+ 16. Durable nonce transactions must:
149
+ - use a recent blockhash value different from the durable nonce for the
150
+ current bank
151
+ - have at least one transaction instruction, the first of which is
152
+ designated the nonce advance instruction which must:
153
+ - invoke the system program `11111111111111111111111111111111`
154
+ - have instruction data that deserializes to the
155
+ `SystemInstruction :: AdvanceNonceAccount ` variant
156
+ - have at least one account input, the first of which is designated the
157
+ nonce address/ account which must:
158
+ - be loaded with a write- lock
159
+ - be owned by the system program: `11111111111111111111111111111111`
160
+ - be deserializable to non- legacy initialized nonce state
161
+ - have a durable nonce hash equal to the transaction's recent
162
+ blockhash field
163
+ - be signed by the nonce authority deserialized from the nonce account
148
164
149
165
### Proposed Protocol - Violation Errors
150
166
@@ -200,6 +216,22 @@ Specifically, the following constraints will remain as protocol violations:
200
216
- be owned by the system program: `11111111111111111111111111111111`
201
217
- have more lamports than the fee
202
218
- have more lamports than the fee plus the minimum balance
219
+ 11. Durable nonce transactions must:
220
+ - use a recent blockhash value different from the durable nonce for the
221
+ current bank
222
+ - have at least one transaction instruction, the first of which is
223
+ designated the nonce advance instruction which must:
224
+ - invoke the system program `11111111111111111111111111111111`
225
+ - have instruction data that deserializes to the
226
+ `SystemInstruction :: AdvanceNonceAccount ` variant
227
+ - have at least one account input, the first of which is designated the
228
+ nonce address/ account which must:
229
+ - be loaded with a write- lock
230
+ - be owned by the system program: `11111111111111111111111111111111`
231
+ - be deserializable to non- legacy initialized nonce state
232
+ - have a durable nonce hash equal to the transaction's recent
233
+ blockhash field
234
+ - be signed by the nonce authority deserialized from the nonce account
203
235
204
236
### Proposed New Runtime Errors
205
237
0 commit comments