diff --git a/opretj/src/main/java/org/tcpid/opretj/OPRETBaseHandler.java b/opretj/src/main/java/org/tcpid/opretj/OPRETBaseHandler.java index 912bbe9..4ec521b 100644 --- a/opretj/src/main/java/org/tcpid/opretj/OPRETBaseHandler.java +++ b/opretj/src/main/java/org/tcpid/opretj/OPRETBaseHandler.java @@ -1,6 +1,5 @@ package org.tcpid.opretj; - import java.util.HashMap; import java.util.List; import java.util.Map; @@ -21,7 +20,7 @@ public abstract class OPRETBaseHandler implements OPRETHandlerInterface { private final Map, Long> magicBytes = new HashMap<>(); @Override - public void addOPRET(byte[] magic, long earliestTime) { + public void addOPRET(final byte[] magic, final long earliestTime) { logger.debug("addMagicBytes: {} - Time {}", Utils.HEX.encode(magic), earliestTime); final List blist = Bytes.asList(magic); magicBytes.put(blist, earliestTime); @@ -34,7 +33,7 @@ public abstract class OPRETBaseHandler implements OPRETHandlerInterface { * given executor. */ @Override - public void addOPRETChangeEventListener(Executor executor, OPRETChangeEventListener listener) { + public void addOPRETChangeEventListener(final Executor executor, final OPRETChangeEventListener listener) { // This is thread safe, so we don't need to take the lock. opReturnChangeListeners.add(new ListenerRegistration(listener, executor)); } @@ -65,17 +64,12 @@ public abstract class OPRETBaseHandler implements OPRETHandlerInterface { protected void queueOnOPRETChanged() { for (final ListenerRegistration registration : opReturnChangeListeners) { - registration.executor.execute(new Runnable() { - @Override - public void run() { - registration.listener.onOPRETChanged(); - } - }); + registration.executor.execute(() -> registration.listener.onOPRETChanged()); } } @Override - public void removeOPRET(byte[] magic) { + public void removeOPRET(final byte[] magic) { magicBytes.remove(Bytes.asList(magic)); queueOnOPRETChanged(); } @@ -85,7 +79,7 @@ public abstract class OPRETBaseHandler implements OPRETHandlerInterface { * removed, false if that listener was never added. */ @Override - public boolean removeOPRETChangeEventListener(OPRETChangeEventListener listener) { + public boolean removeOPRETChangeEventListener(final OPRETChangeEventListener listener) { return ListenerRegistration.removeFromList(listener, opReturnChangeListeners); } diff --git a/opretj/src/main/java/org/tcpid/opretj/OPRETChangeEventListener.java b/opretj/src/main/java/org/tcpid/opretj/OPRETChangeEventListener.java index 9bd1fda..36c3715 100644 --- a/opretj/src/main/java/org/tcpid/opretj/OPRETChangeEventListener.java +++ b/opretj/src/main/java/org/tcpid/opretj/OPRETChangeEventListener.java @@ -1,6 +1,5 @@ package org.tcpid.opretj; - public interface OPRETChangeEventListener { void onOPRETChanged(); } diff --git a/opretj/src/main/java/org/tcpid/opretj/OPRETECParser.java b/opretj/src/main/java/org/tcpid/opretj/OPRETECParser.java index 1cf59d4..63e5771 100644 --- a/opretj/src/main/java/org/tcpid/opretj/OPRETECParser.java +++ b/opretj/src/main/java/org/tcpid/opretj/OPRETECParser.java @@ -1,6 +1,5 @@ package org.tcpid.opretj; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -30,32 +29,13 @@ public class OPRETECParser extends OPRETBaseHandler { * scripts watched by this wallet change. The listener is executed by the * given executor. */ - public void addOPRETECRevokeEventListener(OPRETECRevokeEventListener listener) { + public void addOPRETECRevokeEventListener(final OPRETECRevokeEventListener listener) { // This is thread safe, so we don't need to take the lock. opReturnChangeListeners .add(new ListenerRegistration(listener, Threading.USER_THREAD)); } - /** - * Removes the given event listener object. Returns true if the listener was - * removed, false if that listener was never added. - */ - public boolean removeOPRETECRevokeEventListener(OPRETECRevokeEventListener listener) { - return ListenerRegistration.removeFromList(listener, opReturnChangeListeners); - } - - protected void queueOnOPRETRevoke(final byte[] pkhash, final byte[] sig) { - for (final ListenerRegistration registration : opReturnChangeListeners) { - registration.executor.execute(new Runnable() { - @Override - public void run() { - registration.listener.onOPRETRevoke(pkhash, sig); - } - }); - } - } - - private boolean checkData(OPRETTransaction t1, OPRETTransaction t2) { + private boolean checkData(final OPRETTransaction t1, final OPRETTransaction t2) { final List> opret_data = new ArrayList<>(t1.opretData); opret_data.addAll(t2.opretData); logger.debug("checking {}", opret_data); @@ -101,7 +81,7 @@ public class OPRETECParser extends OPRETBaseHandler { return false; } - private boolean handleRevoke(OPRETTransaction t1, OPRETTransaction t2) { + private boolean handleRevoke(final OPRETTransaction t1, final OPRETTransaction t2) { final byte[] pkhash = Bytes.toArray(t1.opretData.get(2)); final byte[] sig = Bytes.concat(Bytes.toArray(t1.opretData.get(3)), Bytes.toArray(t2.opretData.get(3))); @@ -133,4 +113,18 @@ public class OPRETECParser extends OPRETBaseHandler { logger.info("block hash {}", blockHash); logger.info("Merkle Tree: {}", partialMerkleTree); } + + protected void queueOnOPRETRevoke(final byte[] pkhash, final byte[] sig) { + for (final ListenerRegistration registration : opReturnChangeListeners) { + registration.executor.execute(() -> registration.listener.onOPRETRevoke(pkhash, sig)); + } + } + + /** + * Removes the given event listener object. Returns true if the listener was + * removed, false if that listener was never added. + */ + public boolean removeOPRETECRevokeEventListener(final OPRETECRevokeEventListener listener) { + return ListenerRegistration.removeFromList(listener, opReturnChangeListeners); + } } diff --git a/opretj/src/main/java/org/tcpid/opretj/OPRETECRevokeEventListener.java b/opretj/src/main/java/org/tcpid/opretj/OPRETECRevokeEventListener.java index e9c43fa..a1547ff 100644 --- a/opretj/src/main/java/org/tcpid/opretj/OPRETECRevokeEventListener.java +++ b/opretj/src/main/java/org/tcpid/opretj/OPRETECRevokeEventListener.java @@ -1,6 +1,5 @@ package org.tcpid.opretj; - public interface OPRETECRevokeEventListener { void onOPRETRevoke(final byte[] pkhash, final byte[] sig); } diff --git a/opretj/src/main/java/org/tcpid/opretj/OPRETHandlerInterface.java b/opretj/src/main/java/org/tcpid/opretj/OPRETHandlerInterface.java index c891398..e986ff3 100644 --- a/opretj/src/main/java/org/tcpid/opretj/OPRETHandlerInterface.java +++ b/opretj/src/main/java/org/tcpid/opretj/OPRETHandlerInterface.java @@ -1,6 +1,5 @@ package org.tcpid.opretj; - import java.util.List; import java.util.Set; import java.util.concurrent.Executor; diff --git a/opretj/src/main/java/org/tcpid/opretj/OPRETSimpleLogger.java b/opretj/src/main/java/org/tcpid/opretj/OPRETSimpleLogger.java index d32fca6..a00e2f2 100644 --- a/opretj/src/main/java/org/tcpid/opretj/OPRETSimpleLogger.java +++ b/opretj/src/main/java/org/tcpid/opretj/OPRETSimpleLogger.java @@ -1,6 +1,5 @@ package org.tcpid.opretj; - import java.util.List; import java.util.Set; diff --git a/opretj/src/main/java/org/tcpid/opretj/OPRETTransaction.java b/opretj/src/main/java/org/tcpid/opretj/OPRETTransaction.java index d8dae8a..56d2ba5 100644 --- a/opretj/src/main/java/org/tcpid/opretj/OPRETTransaction.java +++ b/opretj/src/main/java/org/tcpid/opretj/OPRETTransaction.java @@ -1,6 +1,5 @@ package org.tcpid.opretj; - import java.io.Serializable; import java.util.List; import java.util.Set; diff --git a/opretj/src/main/java/org/tcpid/opretj/OPRETWallet.java b/opretj/src/main/java/org/tcpid/opretj/OPRETWallet.java index defa91a..e07d052 100644 --- a/opretj/src/main/java/org/tcpid/opretj/OPRETWallet.java +++ b/opretj/src/main/java/org/tcpid/opretj/OPRETWallet.java @@ -1,6 +1,5 @@ package org.tcpid.opretj; - import static org.bitcoinj.script.ScriptOpCodes.OP_RETURN; import java.util.ArrayList; @@ -42,14 +41,15 @@ public class OPRETWallet extends Wallet implements BlocksDownloadedEventListener private final Set blocksToStore = new HashSet<>(); protected final Map pendingTransactions; - public OPRETWallet(NetworkParameters params, KeyChainGroup keyChainGroup, OPRETHandlerInterface bs) { + public OPRETWallet(final NetworkParameters params, final KeyChainGroup keyChainGroup, + final OPRETHandlerInterface bs) { super(params, keyChainGroup); opbs = bs; pendingTransactions = new HashMap(); } @Override - public BloomFilter getBloomFilter(int size, double falsePositiveRate, long nTweak) { + public BloomFilter getBloomFilter(final int size, final double falsePositiveRate, final long nTweak) { beginBloomFilterCalculation(); try { final BloomFilter filter = super.getBloomFilter(size, falsePositiveRate, nTweak); @@ -86,7 +86,7 @@ public class OPRETWallet extends Wallet implements BlocksDownloadedEventListener } @Override - public boolean isPendingTransactionRelevant(Transaction tx) throws ScriptException { + public boolean isPendingTransactionRelevant(final Transaction tx) throws ScriptException { logger.debug("isPendingTransactionRelevant {}", tx.getHashAsString()); if (pendingTransactions.containsValue(tx)) { @@ -100,7 +100,7 @@ public class OPRETWallet extends Wallet implements BlocksDownloadedEventListener return false; } - public List> isTransactionOPReturn(Transaction tx) throws ScriptException { + public List> isTransactionOPReturn(final Transaction tx) throws ScriptException { final Set> magicBytes = opbs.getOPRETSet(); final List> myList = new ArrayList<>(); @@ -142,7 +142,8 @@ public class OPRETWallet extends Wallet implements BlocksDownloadedEventListener } @Override - public void onBlocksDownloaded(Peer peer, Block block, FilteredBlock filteredBlock, int blocksLeft) { + public void onBlocksDownloaded(final Peer peer, final Block block, final FilteredBlock filteredBlock, + final int blocksLeft) { if (!blocksToStore.contains(block.getHash())) { return; } @@ -158,8 +159,8 @@ public class OPRETWallet extends Wallet implements BlocksDownloadedEventListener } @Override - public void receiveFromBlock(Transaction tx, StoredBlock block, BlockChain.NewBlockType blockType, - int relativityOffset) throws VerificationException { + public void receiveFromBlock(final Transaction tx, final StoredBlock block, final BlockChain.NewBlockType blockType, + final int relativityOffset) throws VerificationException { super.receiveFromBlock(tx, block, blockType, relativityOffset); diff --git a/opretj/src/main/java/org/tcpid/opretj/OPRETWalletAppKit.java b/opretj/src/main/java/org/tcpid/opretj/OPRETWalletAppKit.java index 49a915a..d4a1783 100644 --- a/opretj/src/main/java/org/tcpid/opretj/OPRETWalletAppKit.java +++ b/opretj/src/main/java/org/tcpid/opretj/OPRETWalletAppKit.java @@ -1,6 +1,5 @@ package org.tcpid.opretj; - import static com.google.common.base.Preconditions.checkState; import java.io.File; @@ -11,23 +10,17 @@ import org.bitcoinj.store.BlockStore; import org.bitcoinj.store.BlockStoreException; import org.bitcoinj.store.SPVBlockStore; import org.bitcoinj.utils.Threading; -import org.bitcoinj.wallet.KeyChainGroup; import org.bitcoinj.wallet.Wallet; -import org.bitcoinj.wallet.WalletProtobufSerializer.WalletFactory; public class OPRETWalletAppKit extends WalletAppKit { // private final Logger logger = LoggerFactory.getLogger(OPRETWallet.class); private final OPRETHandlerInterface opbs; - public OPRETWalletAppKit(NetworkParameters params, File directory, String filePrefix, OPRETHandlerInterface bs) { + public OPRETWalletAppKit(final NetworkParameters params, final File directory, final String filePrefix, + final OPRETHandlerInterface bs) { super(params, directory, filePrefix); opbs = bs; - walletFactory = new WalletFactory() { - @Override - public Wallet create(NetworkParameters params, KeyChainGroup keyChainGroup) { - return new OPRETWallet(params, keyChainGroup, opbs); - } - }; + walletFactory = (params1, keyChainGroup) -> new OPRETWallet(params1, keyChainGroup, opbs); } @Override @@ -50,9 +43,10 @@ public class OPRETWalletAppKit extends WalletAppKit { } @Override - protected BlockStore provideBlockStore(File file) throws BlockStoreException { - // TODO: save state - if (params.getId().equals(NetworkParameters.ID_REGTEST) || params.getId().equals(NetworkParameters.ID_TESTNET)) { + protected BlockStore provideBlockStore(final File file) throws BlockStoreException { + // TODO: save state + if (params.getId().equals(NetworkParameters.ID_REGTEST) + || params.getId().equals(NetworkParameters.ID_TESTNET)) { file.deleteOnExit(); } return new SPVBlockStore(params, file);