Skip to content

Commit f88cc1b

Browse files
committed
set nonce for newly added secure accounts to 0
1 parent 6e8aa77 commit f88cc1b

2 files changed

Lines changed: 17 additions & 10 deletions

File tree

scripts/generate_genesis_accounts.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ def load_secure_accounts(secure_accounts_path: str, balance_multiplier: int = 1)
242242
print(f"Warning: Invalid balance {balance_str} for account {acc.get('Name', 'Unknown')}", file=sys.stderr)
243243
balance = 0
244244

245-
# Get nonce from SourceFundsNonce field
245+
# Get nonce from SourceFundsNonce field (or default to 0)
246246
nonce_str = acc.get('SourceFundsNonce', '0')
247247
try:
248248
nonce = int(nonce_str)
@@ -263,9 +263,11 @@ def load_secure_accounts(secure_accounts_path: str, balance_multiplier: int = 1)
263263
if prime_vault_cosmos_addr:
264264
account_info['prime_vault_address'] = prime_vault_cosmos_addr
265265
account_info['prime_vault_eth_address'] = prime_vault_eth_addr
266-
print(f"Secure account {acc.get('Name')}: {source_cosmos_addr} -> {prime_vault_cosmos_addr} (REPLACEMENT)")
266+
# Prime vault replacements always start at nonce 0
267+
account_info['prime_vault_nonce'] = 0
268+
print(f"Secure account {acc.get('Name')}: {source_cosmos_addr} -> {prime_vault_cosmos_addr} (REPLACEMENT, nonce=0)")
267269
else:
268-
print(f"Secure account {acc.get('Name')}: {source_cosmos_addr} (NO REPLACEMENT)")
270+
print(f"Secure account {acc.get('Name')}: {source_cosmos_addr} (NO REPLACEMENT, nonce={nonce})")
269271

270272
accounts.append(account_info)
271273

@@ -334,6 +336,7 @@ def update_genesis_with_accounts(genesis_path: str,
334336
prime_vault_address = account_data.get('prime_vault_address')
335337
balance = account_data['balance']
336338
nonce = account_data['nonce']
339+
prime_vault_nonce = account_data.get('prime_vault_nonce', 0) # Default to 0 for replacements
337340
name = account_data.get('name', 'Unknown')
338341

339342
# Determine if this is a replacement operation
@@ -342,6 +345,7 @@ def update_genesis_with_accounts(genesis_path: str,
342345
if is_replacement:
343346
# REPLACEMENT MODE: Replace source_address with prime_vault_address
344347
target_address = prime_vault_address
348+
target_nonce = prime_vault_nonce # Use prime vault nonce (always 0)
345349
secure_addresses.add(prime_vault_address)
346350
replaced_addresses.add(source_address)
347351

@@ -381,6 +385,7 @@ def update_genesis_with_accounts(genesis_path: str,
381385
else:
382386
# NO REPLACEMENT: Just use source_address
383387
target_address = source_address
388+
target_nonce = nonce # Use original nonce for non-replacements
384389
secure_addresses.add(source_address)
385390
print(f" Processing {name}: {source_address} (no replacement)", file=sys.stderr)
386391

@@ -390,20 +395,20 @@ def update_genesis_with_accounts(genesis_path: str,
390395
"@type": "/cosmos.auth.v1beta1.BaseAccount",
391396
"address": target_address,
392397
"pub_key": None,
393-
"sequence": str(nonce) if include_nonce else "0"
398+
"sequence": str(target_nonce) if include_nonce else "0"
394399
}
395400
genesis['app_state']['auth']['accounts'].append(new_account)
396401
new_accounts += 1
397402
next_account_number += 1
398-
print(f" Added new account {target_address}", file=sys.stderr)
403+
print(f" Added new account {target_address} (nonce={target_nonce if include_nonce else 0})", file=sys.stderr)
399404
else:
400405
# Update existing account's sequence if needed
401406
if include_nonce:
402407
for acc in genesis['app_state']['auth']['accounts']:
403408
if acc['address'] == target_address:
404-
acc['sequence'] = str(nonce)
409+
acc['sequence'] = str(target_nonce)
405410
break
406-
print(f" Updated existing account {target_address}", file=sys.stderr)
411+
print(f" Updated existing account {target_address} (nonce={target_nonce if include_nonce else 0})", file=sys.stderr)
407412

408413
# Set balance if include_balance is True
409414
if include_balance:

scripts/verify_genesis_accounts.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ def load_secure_accounts_for_verification(secure_accounts_path: str, balance_mul
334334
print(f"Warning: Invalid balance {balance_str} for account {acc.get('Name', 'Unknown')}", file=sys.stderr)
335335
balance = 0
336336

337-
# Get nonce from SourceFundsNonce field
337+
# Get nonce from SourceFundsNonce field (or default to 0)
338338
nonce_str = acc.get('SourceFundsNonce', '0')
339339
try:
340340
nonce = int(nonce_str)
@@ -355,11 +355,13 @@ def load_secure_accounts_for_verification(secure_accounts_path: str, balance_mul
355355
account_info['address'] = prime_vault_cosmos_addr
356356
account_info['prime_vault_eth_address'] = prime_vault_eth_addr
357357
account_info['is_replacement'] = True
358-
print(f" Will verify replacement: {acc.get('Name')} at {prime_vault_cosmos_addr}", file=sys.stderr)
358+
# Prime vault replacements always start at nonce 0
359+
account_info['expected_nonce'] = 0
360+
print(f" Will verify replacement: {acc.get('Name')} at {prime_vault_cosmos_addr} (nonce expected: 0)", file=sys.stderr)
359361
else:
360362
account_info['address'] = source_cosmos_addr
361363
account_info['is_replacement'] = False
362-
print(f" Will verify: {acc.get('Name')} at {source_cosmos_addr}", file=sys.stderr)
364+
print(f" Will verify: {acc.get('Name')} at {source_cosmos_addr} (nonce expected: {nonce})", file=sys.stderr)
363365

364366
accounts.append(account_info)
365367

0 commit comments

Comments
 (0)