From a047eb4fadd288a2739d11c1702e677b9c1ac6e4 Mon Sep 17 00:00:00 2001 From: Nikolaj Schumacher Date: Sat, 1 Feb 2014 10:42:50 +0100 Subject: [PATCH] #21: Actually call onBalanceChanged. --- BitcoinJKit/HIBitcoinManager.m | 7 +++++-- .../com/hive/bitcoinkit/BitcoinManager.java | 21 +++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/BitcoinJKit/HIBitcoinManager.m b/BitcoinJKit/HIBitcoinManager.m index b2bb613..86a0071 100644 --- a/BitcoinJKit/HIBitcoinManager.m +++ b/BitcoinJKit/HIBitcoinManager.m @@ -530,7 +530,7 @@ - (id)init _balanceChecker = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self - selector:@selector(checkBalance:) + selector:@selector(verifyBalance:) userInfo:nil repeats:YES]; @@ -857,15 +857,18 @@ - (uint64_t)estimatedBalance return [self callLongMethodWithName:"getEstimatedBalance" signature:"()J"]; } -- (void)checkBalance:(NSTimer *)timer +- (void)verifyBalance:(NSTimer *)timer { + // This shouldn't be necessary, but let's check if we missed anything. if (self.availableBalance != _lastAvailableBalance) { + HILogError(@"BitcoinKit missed a change notification. This is a bug."); [self onAvailableBalanceChanged]; } if (self.estimatedBalance != _lastEstimatedBalance) { + HILogError(@"BitcoinKit missed a change notification. This is a bug."); [self onEstimatedBalanceChanged]; } } diff --git a/BitcoinJKit/java/bitcoinkit/src/main/java/com/hive/bitcoinkit/BitcoinManager.java b/BitcoinJKit/java/bitcoinkit/src/main/java/com/hive/bitcoinkit/BitcoinManager.java index c9ccda4..87dc694 100644 --- a/BitcoinJKit/java/bitcoinkit/src/main/java/com/hive/bitcoinkit/BitcoinManager.java +++ b/BitcoinJKit/java/bitcoinkit/src/main/java/com/hive/bitcoinkit/BitcoinManager.java @@ -6,7 +6,6 @@ import com.google.bitcoin.crypto.KeyCrypterScrypt; import com.google.bitcoin.net.discovery.DnsDiscovery; import com.google.bitcoin.params.MainNetParams; -import com.google.bitcoin.params.RegTestParams; import com.google.bitcoin.params.TestNet3Params; import com.google.bitcoin.script.Script; import com.google.bitcoin.store.BlockStore; @@ -28,7 +27,6 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.math.BigInteger; -import java.net.InetAddress; import java.nio.CharBuffer; import java.text.SimpleDateFormat; import java.util.Arrays; @@ -198,6 +196,7 @@ private void useWallet(Wallet wallet) throws BlockStoreException, IOException public void onCoinsReceived(Wallet w, Transaction tx, BigInteger prevBalance, BigInteger newBalance) { BitcoinManager.this.onCoinsReceived(w, tx, prevBalance, newBalance); + BitcoinManager.this.onBalanceChanged(); } // get notified when we send a transaction, or when we restore an outgoing transaction from the blockchain @@ -205,6 +204,20 @@ public void onCoinsReceived(Wallet w, Transaction tx, BigInteger prevBalance, Bi public void onCoinsSent(Wallet w, Transaction tx, BigInteger prevBalance, BigInteger newBalance) { BitcoinManager.this.onCoinsSent(w, tx, prevBalance, newBalance); + BitcoinManager.this.onBalanceChanged(); + } + + @Override + public void onReorganize(Wallet wallet) + { + BitcoinManager.this.onBalanceChanged(); + } + + @Override + public void onTransactionConfidenceChanged(Wallet wallet, Transaction tx) + { + super.onTransactionConfidenceChanged(wallet, tx); + BitcoinManager.this.onBalanceChanged(); } }); @@ -745,7 +758,7 @@ public String getExceptionStackTrace(Throwable exception) public void updateLastWalletChange(Wallet wallet) { LastWalletChangeExtension ext = - (LastWalletChangeExtension) wallet.getExtensions().get(LastWalletChangeExtension.EXTENSION_ID); + (LastWalletChangeExtension) wallet.getExtensions().get(LastWalletChangeExtension.EXTENSION_ID); ext.setLastWalletChangeDate(new Date()); } @@ -758,7 +771,7 @@ public Date getLastWalletChange() } LastWalletChangeExtension ext = - (LastWalletChangeExtension) wallet.getExtensions().get(LastWalletChangeExtension.EXTENSION_ID); + (LastWalletChangeExtension) wallet.getExtensions().get(LastWalletChangeExtension.EXTENSION_ID); return ext.getLastWalletChangeDate(); }