Browse Source

Added "bitcoinjLookaheadSize" setting (default 50).

This replaces the WALLET_KEY_LOOKAHEAD_INCREMENT_BITCOINJ constant.
pull/92/head
CalDescent 2 years ago
parent
commit
d6d2641cad
  1. 7
      src/main/java/org/qortal/crosschain/Bitcoiny.java
  2. 9
      src/main/java/org/qortal/settings/Settings.java

7
src/main/java/org/qortal/crosschain/Bitcoiny.java

@ -62,11 +62,6 @@ public abstract class Bitcoiny implements ForeignBlockchain {
/** How many wallet keys to generate in each batch. */ /** How many wallet keys to generate in each batch. */
private static final int WALLET_KEY_LOOKAHEAD_INCREMENT = 3; private static final int WALLET_KEY_LOOKAHEAD_INCREMENT = 3;
/** How many wallet keys to generate when using bitcoinj as the data provider.
* We must use a higher value here since we are unable to request multiple batches of keys.
* Without this, the bitcoinj state can be missing transactions, causing errors such as "insufficient balance". */
private static final int WALLET_KEY_LOOKAHEAD_INCREMENT_BITCOINJ = 50;
/** Byte offset into raw block headers to block timestamp. */ /** Byte offset into raw block headers to block timestamp. */
private static final int TIMESTAMP_OFFSET = 4 + 32 + 32; private static final int TIMESTAMP_OFFSET = 4 + 32 + 32;
@ -628,7 +623,7 @@ public abstract class Bitcoiny implements ForeignBlockchain {
this.keyChain = this.wallet.getActiveKeyChain(); this.keyChain = this.wallet.getActiveKeyChain();
// Set up wallet's key chain // Set up wallet's key chain
this.keyChain.setLookaheadSize(Bitcoiny.WALLET_KEY_LOOKAHEAD_INCREMENT_BITCOINJ); this.keyChain.setLookaheadSize(Settings.getInstance().getBitcoinjLookaheadSize());
this.keyChain.maybeLookAhead(); this.keyChain.maybeLookAhead();
} }

9
src/main/java/org/qortal/settings/Settings.java

@ -286,9 +286,12 @@ public class Settings {
/* Foreign chains */ /* Foreign chains */
/** Set the number of consecutive empty addresses required before treating a wallet's transaction set as complete */ /** The number of consecutive empty addresses required before treating a wallet's transaction set as complete */
private int gapLimit = 24; private int gapLimit = 24;
/** How many wallet keys to generate when using bitcoinj as the blockchain interface (e.g. when sending coins) */
private int bitcoinjLookaheadSize = 50;
// Data storage (QDN) // Data storage (QDN)
@ -883,6 +886,10 @@ public class Settings {
return this.gapLimit; return this.gapLimit;
} }
public int getBitcoinjLookaheadSize() {
return bitcoinjLookaheadSize;
}
public boolean isQdnEnabled() { public boolean isQdnEnabled() {
return this.qdnEnabled; return this.qdnEnabled;

Loading…
Cancel
Save