From fe2c63e8e40904546e462510e404265baced6e71 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sat, 2 Jul 2022 17:30:31 +0100 Subject: [PATCH] Generate random nonces for test accounts. These don't have to be valid for unit tests, because they are treated as "cached already valid accounts" in the block validation. --- .../java/org/qortal/controller/OnlineAccountsManager.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/qortal/controller/OnlineAccountsManager.java b/src/main/java/org/qortal/controller/OnlineAccountsManager.java index 332fac18..d6ff19d5 100644 --- a/src/main/java/org/qortal/controller/OnlineAccountsManager.java +++ b/src/main/java/org/qortal/controller/OnlineAccountsManager.java @@ -152,6 +152,7 @@ public class OnlineAccountsManager { byte[] timestampBytes = Longs.toByteArray(onlineAccountsTimestamp); final boolean useAggregateCompatibleSignature = onlineAccountsTimestamp >= BlockChain.getInstance().getAggregateSignatureTimestamp(); + final boolean mempowActive = onlineAccountsTimestamp >= BlockChain.getInstance().getOnlineAccountsMemoryPoWTimestamp(); Set replacementAccounts = new HashSet<>(); for (PrivateKeyAccount onlineAccount : onlineAccounts) { @@ -162,7 +163,9 @@ public class OnlineAccountsManager { : onlineAccount.sign(timestampBytes); byte[] publicKey = onlineAccount.getPublicKey(); - OnlineAccountData ourOnlineAccountData = new OnlineAccountData(onlineAccountsTimestamp, signature, publicKey); + Integer nonce = mempowActive ? new Random().nextInt(500000) : null; + + OnlineAccountData ourOnlineAccountData = new OnlineAccountData(onlineAccountsTimestamp, signature, publicKey, nonce); replacementAccounts.add(ourOnlineAccountData); }