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