@@ -259,13 +259,23 @@ func TestVMStateUpgrade(t *testing.T) {
259
259
Code : upgradedCode ,
260
260
}
261
261
262
+ // Create a new account just for testing nonce setting
263
+ nonceTestAccount := common.Address {99 }
264
+ explicitNonce := uint64 (10 )
265
+ nonceTestAccountUpgrade := & params.StateUpgradeAccount {
266
+ BalanceChange : (* math .HexOrDecimal256 )(big .NewInt (50 )),
267
+ Nonce : & explicitNonce ,
268
+ // No code for this account - should still set the nonce directly
269
+ }
270
+
262
271
upgradeTimestamp := upgrade .InitiallyActiveTime .Add (10 * time .Hour )
263
272
upgradeBytesJSON := fmt .Sprintf (
264
273
`{
265
274
"stateUpgrades": [
266
275
{
267
276
"blockTimestamp": %d,
268
277
"accounts": {
278
+ "%s": %s,
269
279
"%s": %s,
270
280
"%s": %s
271
281
}
@@ -277,6 +287,8 @@ func TestVMStateUpgrade(t *testing.T) {
277
287
mustMarshal (t , genesisAccountUpgrade ),
278
288
newAccount .Hex (),
279
289
mustMarshal (t , newAccountUpgrade ),
290
+ nonceTestAccount .Hex (),
291
+ mustMarshal (t , nonceTestAccountUpgrade ),
280
292
)
281
293
require .Contains (t , upgradeBytesJSON , upgradedCodeStr )
282
294
@@ -329,6 +341,12 @@ func TestVMStateUpgrade(t *testing.T) {
329
341
require .Equal (t , state .GetCodeHash (newAccount ), crypto .Keccak256Hash (upgradedCode ))
330
342
require .Equal (t , state .GetNonce (newAccount ), uint64 (1 )) // Nonce should be set to 1 when code is set if nonce was 0
331
343
require .Equal (t , state .GetState (newAccount , storageKey ), newAccountUpgrade .Storage [storageKey ])
344
+
345
+ // Test the nonce-specific account
346
+ expectedNonceTestAccountBalance := uint256 .MustFromBig ((* big .Int )(nonceTestAccountUpgrade .BalanceChange ))
347
+ require .Equal (t , state .GetNonce (nonceTestAccount ), explicitNonce )
348
+ require .Equal (t , state .GetBalance (nonceTestAccount ), expectedNonceTestAccountBalance )
349
+ require .Empty (t , state .GetCode (nonceTestAccount )) // No code should be set
332
350
}
333
351
334
352
func TestVMEupgradeActivatesCancun (t * testing.T ) {
0 commit comments