diff --git a/src/main/java/org/qora/block/Block.java b/src/main/java/org/qora/block/Block.java index d19a08a2..2dbe0441 100644 --- a/src/main/java/org/qora/block/Block.java +++ b/src/main/java/org/qora/block/Block.java @@ -19,7 +19,7 @@ import org.qora.account.PrivateKeyAccount; import org.qora.account.PublicKeyAccount; import org.qora.asset.Asset; import org.qora.at.AT; -import org.qora.block.BlockChain.RewardByHeight; +import org.qora.block.BlockChain; import org.qora.crypto.Crypto; import org.qora.data.account.ProxyForgerData; import org.qora.data.at.ATData; @@ -1104,7 +1104,7 @@ public class Block { } protected void processBlockRewards() throws DataException { - BigDecimal reward = Block.getRewardAtHeight(this.blockData.getHeight()); + BigDecimal reward = BlockChain.getInstance().getRewardAtHeight(this.blockData.getHeight()); // No reward for our height? if (reward == null) @@ -1353,7 +1353,7 @@ public class Block { } protected void orphanBlockRewards() throws DataException { - BigDecimal reward = Block.getRewardAtHeight(this.blockData.getHeight()); + BigDecimal reward = BlockChain.getInstance().getRewardAtHeight(this.blockData.getHeight()); // No reward for our height? if (reward == null) @@ -1415,21 +1415,6 @@ public class Block { atRepository.deleteATStates(this.blockData.getHeight()); } - public static BigDecimal getRewardAtHeight(int ourHeight) { - List rewardsByHeight = BlockChain.getInstance().getBlockRewardsByHeight(); - - // No rewards configured? - if (rewardsByHeight == null) - return null; - - // Scan through for reward at our height - for (int i = rewardsByHeight.size() - 1; i >= 0; --i) - if (rewardsByHeight.get(i).height <= ourHeight) - return rewardsByHeight.get(i).reward; - - return null; - } - /** * Return Qora balance adjusted to within min/max limits. */ diff --git a/src/main/java/org/qora/block/BlockChain.java b/src/main/java/org/qora/block/BlockChain.java index e81a4841..7a3686bc 100644 --- a/src/main/java/org/qora/block/BlockChain.java +++ b/src/main/java/org/qora/block/BlockChain.java @@ -299,6 +299,17 @@ public class BlockChain { return featureTriggers.get("newAssetPricingTimestamp"); } + // More complex getters for aspects that change by height or timestamp + + public BigDecimal getRewardAtHeight(int ourHeight) { + // Scan through for reward at our height + for (int i = rewardsByHeight.size() - 1; i >= 0; --i) + if (rewardsByHeight.get(i).height <= ourHeight) + return rewardsByHeight.get(i).reward; + + return null; + } + /** Validate blockchain config read from JSON */ private void validateConfig() { if (this.genesisInfo == null) { diff --git a/src/test/java/org/qora/test/common/BlockUtils.java b/src/test/java/org/qora/test/common/BlockUtils.java index 2364f618..f0fd5e8a 100644 --- a/src/test/java/org/qora/test/common/BlockUtils.java +++ b/src/test/java/org/qora/test/common/BlockUtils.java @@ -3,6 +3,7 @@ package org.qora.test.common; import java.math.BigDecimal; import org.qora.block.Block; +import org.qora.block.BlockChain; import org.qora.data.block.BlockData; import org.qora.repository.DataException; import org.qora.repository.Repository; @@ -12,7 +13,7 @@ public class BlockUtils { public static BigDecimal getNextBlockReward(Repository repository) throws DataException { int currentHeight = repository.getBlockRepository().getBlockchainHeight(); - return Block.getRewardAtHeight(currentHeight + 1); + return BlockChain.getInstance().getRewardAtHeight(currentHeight + 1); } public static void orphanLastBlock(Repository repository) throws DataException {