diff --git a/src/com/google/bitcoin/core/Block.java b/src/com/google/bitcoin/core/Block.java index 9b779a2a..0ce293c2 100644 --- a/src/com/google/bitcoin/core/Block.java +++ b/src/com/google/bitcoin/core/Block.java @@ -497,7 +497,8 @@ public class Block extends Message { return b; } - Block createNextBlock(Address to) { + // Visible for testing. + public Block createNextBlock(Address to) { return createNextBlock(to, System.currentTimeMillis() / 1000); } } diff --git a/src/com/google/bitcoin/core/BlockChain.java b/src/com/google/bitcoin/core/BlockChain.java index a2618e21..dca66cba 100644 --- a/src/com/google/bitcoin/core/BlockChain.java +++ b/src/com/google/bitcoin/core/BlockChain.java @@ -19,6 +19,8 @@ package com.google.bitcoin.core; import java.math.BigInteger; import java.util.*; +import com.google.bitcoin.store.BlockStore; +import com.google.bitcoin.store.BlockStoreException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -74,8 +76,8 @@ public class BlockChain { * one from scratch, or you can deserialize a saved wallet from disk using {@link Wallet#loadFromFile(java.io.File)} *
* - * For the store you can use a {@link MemoryBlockStore} if you don't care about saving the downloaded data, or a - * {@link BoundedOverheadBlockStore} if you'd like to ensure fast startup the next time you run the program. + * For the store you can use a {@link com.google.bitcoin.store.MemoryBlockStore} if you don't care about saving the downloaded data, or a + * {@link com.google.bitcoin.store.BoundedOverheadBlockStore} if you'd like to ensure fast startup the next time you run the program. */ public BlockChain(NetworkParameters params, Wallet wallet, BlockStore blockStore) { try { diff --git a/src/com/google/bitcoin/core/NetworkParameters.java b/src/com/google/bitcoin/core/NetworkParameters.java index b8cb44b8..ec65c5b4 100644 --- a/src/com/google/bitcoin/core/NetworkParameters.java +++ b/src/com/google/bitcoin/core/NetworkParameters.java @@ -141,7 +141,7 @@ public class NetworkParameters implements Serializable { } /** Returns a testnet params modified to allow any difficulty target. */ - static NetworkParameters unitTests() { + public static NetworkParameters unitTests() { NetworkParameters n = new NetworkParameters(); n = createTestNet(n); n.proofOfWorkLimit = new BigInteger("00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16); diff --git a/src/com/google/bitcoin/core/StoredBlock.java b/src/com/google/bitcoin/core/StoredBlock.java index a8156cf6..e4bee04f 100644 --- a/src/com/google/bitcoin/core/StoredBlock.java +++ b/src/com/google/bitcoin/core/StoredBlock.java @@ -16,6 +16,9 @@ package com.google.bitcoin.core; +import com.google.bitcoin.store.BlockStore; +import com.google.bitcoin.store.BlockStoreException; + import java.io.Serializable; import java.math.BigInteger; diff --git a/src/com/google/bitcoin/core/DnsDiscovery.java b/src/com/google/bitcoin/discovery/DnsDiscovery.java similarity index 97% rename from src/com/google/bitcoin/core/DnsDiscovery.java rename to src/com/google/bitcoin/discovery/DnsDiscovery.java index 568958df..6f44180f 100644 --- a/src/com/google/bitcoin/core/DnsDiscovery.java +++ b/src/com/google/bitcoin/discovery/DnsDiscovery.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.discovery; +import com.google.bitcoin.core.NetworkParameters; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.net.*; import java.util.HashSet; import java.util.Set; -import java.util.Vector; /** * Supports peer discovery through DNS.
diff --git a/src/com/google/bitcoin/core/IrcDiscovery.java b/src/com/google/bitcoin/discovery/IrcDiscovery.java similarity index 98% rename from src/com/google/bitcoin/core/IrcDiscovery.java rename to src/com/google/bitcoin/discovery/IrcDiscovery.java index c5cda6eb..45169ff2 100644 --- a/src/com/google/bitcoin/core/IrcDiscovery.java +++ b/src/com/google/bitcoin/discovery/IrcDiscovery.java @@ -14,8 +14,11 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.discovery; +import com.google.bitcoin.core.AddressFormatException; +import com.google.bitcoin.core.Base58; +import com.google.bitcoin.core.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/com/google/bitcoin/core/PeerDiscovery.java b/src/com/google/bitcoin/discovery/PeerDiscovery.java similarity index 96% rename from src/com/google/bitcoin/core/PeerDiscovery.java rename to src/com/google/bitcoin/discovery/PeerDiscovery.java index 76820ec0..8b37f91f 100644 --- a/src/com/google/bitcoin/core/PeerDiscovery.java +++ b/src/com/google/bitcoin/discovery/PeerDiscovery.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.discovery; import java.net.InetSocketAddress; diff --git a/src/com/google/bitcoin/core/PeerDiscoveryException.java b/src/com/google/bitcoin/discovery/PeerDiscoveryException.java similarity index 96% rename from src/com/google/bitcoin/core/PeerDiscoveryException.java rename to src/com/google/bitcoin/discovery/PeerDiscoveryException.java index 0b63c93d..ac1e2da6 100644 --- a/src/com/google/bitcoin/core/PeerDiscoveryException.java +++ b/src/com/google/bitcoin/discovery/PeerDiscoveryException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.discovery; public class PeerDiscoveryException extends Exception { diff --git a/src/com/google/bitcoin/core/SeedPeers.java b/src/com/google/bitcoin/discovery/SeedPeers.java similarity index 96% rename from src/com/google/bitcoin/core/SeedPeers.java rename to src/com/google/bitcoin/discovery/SeedPeers.java index 0a985452..d5857f62 100644 --- a/src/com/google/bitcoin/core/SeedPeers.java +++ b/src/com/google/bitcoin/discovery/SeedPeers.java @@ -13,7 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.discovery; + +import com.google.bitcoin.core.NetworkParameters; +import com.google.bitcoin.discovery.PeerDiscovery; +import com.google.bitcoin.discovery.PeerDiscoveryException; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -79,7 +83,7 @@ public class SeedPeers implements PeerDiscovery { return InetAddress.getByAddress(v4addr); } - static int[] seedAddrs = + public static int[] seedAddrs = { 0x1ddb1032, 0x6242ce40, 0x52d6a445, 0x2dd7a445, 0x8a53cd47, 0x73263750, 0xda23c257, 0xecd4ed57, 0x0a40ec59, 0x75dce160, 0x7df76791, 0x89370bad, 0xa4f214ad, 0x767700ae, 0x638b0418, 0x868a1018, diff --git a/src/com/google/bitcoin/examples/PingService.java b/src/com/google/bitcoin/examples/PingService.java index 1374ead0..f71ae6ef 100644 --- a/src/com/google/bitcoin/examples/PingService.java +++ b/src/com/google/bitcoin/examples/PingService.java @@ -17,6 +17,8 @@ package com.google.bitcoin.examples; import com.google.bitcoin.core.*; +import com.google.bitcoin.store.BlockStore; +import com.google.bitcoin.store.BoundedOverheadBlockStore; import java.io.File; import java.io.IOException; diff --git a/src/com/google/bitcoin/examples/PrintPeers.java b/src/com/google/bitcoin/examples/PrintPeers.java index b04dd450..6476acf1 100644 --- a/src/com/google/bitcoin/examples/PrintPeers.java +++ b/src/com/google/bitcoin/examples/PrintPeers.java @@ -19,6 +19,9 @@ package com.google.bitcoin.examples; import java.net.InetSocketAddress; import com.google.bitcoin.core.*; +import com.google.bitcoin.discovery.DnsDiscovery; +import com.google.bitcoin.discovery.IrcDiscovery; +import com.google.bitcoin.discovery.PeerDiscoveryException; /** * Prints a list of IP addresses connected to the rendezvous point on the LFnet IRC channel. diff --git a/src/com/google/bitcoin/examples/PrivateKeys.java b/src/com/google/bitcoin/examples/PrivateKeys.java index d4aa4196..9bda7896 100644 --- a/src/com/google/bitcoin/examples/PrivateKeys.java +++ b/src/com/google/bitcoin/examples/PrivateKeys.java @@ -17,6 +17,7 @@ package com.google.bitcoin.examples; import com.google.bitcoin.core.*; +import com.google.bitcoin.store.MemoryBlockStore; import java.math.BigInteger; import java.net.InetAddress; diff --git a/src/com/google/bitcoin/examples/RefreshWallet.java b/src/com/google/bitcoin/examples/RefreshWallet.java index ac184a89..52905f9a 100644 --- a/src/com/google/bitcoin/examples/RefreshWallet.java +++ b/src/com/google/bitcoin/examples/RefreshWallet.java @@ -17,6 +17,7 @@ package com.google.bitcoin.examples; import com.google.bitcoin.core.*; +import com.google.bitcoin.store.*; import java.io.File; import java.math.BigInteger; diff --git a/src/com/google/bitcoin/core/BlockStore.java b/src/com/google/bitcoin/store/BlockStore.java similarity index 96% rename from src/com/google/bitcoin/core/BlockStore.java rename to src/com/google/bitcoin/store/BlockStore.java index 83199f87..67829335 100644 --- a/src/com/google/bitcoin/core/BlockStore.java +++ b/src/com/google/bitcoin/store/BlockStore.java @@ -14,7 +14,9 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.store; + +import com.google.bitcoin.core.StoredBlock; /** * An implementor of BlockStore saves StoredBlock objects to disk. Different implementations store them in diff --git a/src/com/google/bitcoin/core/BlockStoreException.java b/src/com/google/bitcoin/store/BlockStoreException.java similarity index 96% rename from src/com/google/bitcoin/core/BlockStoreException.java rename to src/com/google/bitcoin/store/BlockStoreException.java index cacb5716..817b1539 100644 --- a/src/com/google/bitcoin/core/BlockStoreException.java +++ b/src/com/google/bitcoin/store/BlockStoreException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.store; /** * Thrown when something goes wrong with storing a block. Examples: out of disk space. diff --git a/src/com/google/bitcoin/core/BoundedOverheadBlockStore.java b/src/com/google/bitcoin/store/BoundedOverheadBlockStore.java similarity index 99% rename from src/com/google/bitcoin/core/BoundedOverheadBlockStore.java rename to src/com/google/bitcoin/store/BoundedOverheadBlockStore.java index 53725fb6..bc9f8a33 100644 --- a/src/com/google/bitcoin/core/BoundedOverheadBlockStore.java +++ b/src/com/google/bitcoin/store/BoundedOverheadBlockStore.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.store; import java.io.*; import java.math.BigInteger; @@ -22,6 +22,7 @@ import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.util.*; +import com.google.bitcoin.core.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/com/google/bitcoin/core/DiskBlockStore.java b/src/com/google/bitcoin/store/DiskBlockStore.java similarity index 99% rename from src/com/google/bitcoin/core/DiskBlockStore.java rename to src/com/google/bitcoin/store/DiskBlockStore.java index 33eb04a5..c6bf63d5 100644 --- a/src/com/google/bitcoin/core/DiskBlockStore.java +++ b/src/com/google/bitcoin/store/DiskBlockStore.java @@ -14,13 +14,14 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.store; import java.io.*; import java.nio.ByteBuffer; import java.util.HashMap; import java.util.Map; +import com.google.bitcoin.core.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/com/google/bitcoin/core/MemoryBlockStore.java b/src/com/google/bitcoin/store/MemoryBlockStore.java similarity index 95% rename from src/com/google/bitcoin/core/MemoryBlockStore.java rename to src/com/google/bitcoin/store/MemoryBlockStore.java index 04055006..4e034d47 100644 --- a/src/com/google/bitcoin/core/MemoryBlockStore.java +++ b/src/com/google/bitcoin/store/MemoryBlockStore.java @@ -14,7 +14,9 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.store; + +import com.google.bitcoin.core.*; import java.io.*; import java.nio.ByteBuffer; @@ -22,7 +24,7 @@ import java.util.HashMap; import java.util.Map; /** - * Keeps {@link StoredBlock}s in memory. Used primarily for unit testing. + * Keeps {@link com.google.bitcoin.core.StoredBlock}s in memory. Used primarily for unit testing. */ public class MemoryBlockStore implements BlockStore { // We use a ByteBuffer to hold hashes here because the Java array equals()/hashcode() methods do not operate on diff --git a/tests/com/google/bitcoin/core/BlockChainTest.java b/tests/com/google/bitcoin/core/BlockChainTest.java index 70c8ba1a..a98cc566 100644 --- a/tests/com/google/bitcoin/core/BlockChainTest.java +++ b/tests/com/google/bitcoin/core/BlockChainTest.java @@ -17,6 +17,7 @@ package com.google.bitcoin.core; import com.google.bitcoin.bouncycastle.util.encoders.Hex; +import com.google.bitcoin.store.MemoryBlockStore; import org.junit.Before; import org.junit.Test; diff --git a/tests/com/google/bitcoin/core/ChainSplitTests.java b/tests/com/google/bitcoin/core/ChainSplitTests.java index c5eed2dc..ce2134cc 100644 --- a/tests/com/google/bitcoin/core/ChainSplitTests.java +++ b/tests/com/google/bitcoin/core/ChainSplitTests.java @@ -16,6 +16,7 @@ package com.google.bitcoin.core; +import com.google.bitcoin.store.MemoryBlockStore; import org.junit.Before; import org.junit.Test; diff --git a/tests/com/google/bitcoin/core/WalletTest.java b/tests/com/google/bitcoin/core/WalletTest.java index dd925392..467f05eb 100644 --- a/tests/com/google/bitcoin/core/WalletTest.java +++ b/tests/com/google/bitcoin/core/WalletTest.java @@ -16,6 +16,9 @@ package com.google.bitcoin.core; +import com.google.bitcoin.store.BlockStore; +import com.google.bitcoin.store.BlockStoreException; +import com.google.bitcoin.store.MemoryBlockStore; import org.junit.Before; import org.junit.Test; diff --git a/tests/com/google/bitcoin/core/IrcDiscoveryTest.java b/tests/com/google/bitcoin/discovery/IrcDiscoveryTest.java similarity index 95% rename from tests/com/google/bitcoin/core/IrcDiscoveryTest.java rename to tests/com/google/bitcoin/discovery/IrcDiscoveryTest.java index 3070f092..14da9a55 100644 --- a/tests/com/google/bitcoin/core/IrcDiscoveryTest.java +++ b/tests/com/google/bitcoin/discovery/IrcDiscoveryTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.discovery; import static org.junit.Assert.*; @@ -22,6 +22,7 @@ import java.net.InetSocketAddress; import java.net.UnknownHostException; import java.util.ArrayList; +import com.google.bitcoin.discovery.IrcDiscovery; import org.junit.Test; public class IrcDiscoveryTest { diff --git a/tests/com/google/bitcoin/core/SeedPeersTest.java b/tests/com/google/bitcoin/discovery/SeedPeersTest.java similarity index 91% rename from tests/com/google/bitcoin/core/SeedPeersTest.java rename to tests/com/google/bitcoin/discovery/SeedPeersTest.java index dc0f44b8..27257328 100644 --- a/tests/com/google/bitcoin/core/SeedPeersTest.java +++ b/tests/com/google/bitcoin/discovery/SeedPeersTest.java @@ -13,10 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.discovery; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; + +import com.google.bitcoin.core.NetworkParameters; +import com.google.bitcoin.discovery.SeedPeers; import org.junit.Test; import java.net.InetSocketAddress; diff --git a/tests/com/google/bitcoin/core/BoundedOverheadBlockStoreTest.java b/tests/com/google/bitcoin/store/BoundedOverheadBlockStoreTest.java similarity index 87% rename from tests/com/google/bitcoin/core/BoundedOverheadBlockStoreTest.java rename to tests/com/google/bitcoin/store/BoundedOverheadBlockStoreTest.java index 48a48adc..3311499f 100644 --- a/tests/com/google/bitcoin/core/BoundedOverheadBlockStoreTest.java +++ b/tests/com/google/bitcoin/store/BoundedOverheadBlockStoreTest.java @@ -13,8 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.store; +import com.google.bitcoin.core.Address; +import com.google.bitcoin.core.ECKey; +import com.google.bitcoin.core.NetworkParameters; +import com.google.bitcoin.core.StoredBlock; +import com.google.bitcoin.store.BoundedOverheadBlockStore; import org.junit.Test; import java.io.File; import static org.junit.Assert.assertEquals; diff --git a/tests/com/google/bitcoin/core/DiskBlockStoreTest.java b/tests/com/google/bitcoin/store/DiskBlockStoreTest.java similarity index 87% rename from tests/com/google/bitcoin/core/DiskBlockStoreTest.java rename to tests/com/google/bitcoin/store/DiskBlockStoreTest.java index 58b0d2d6..77289be7 100644 --- a/tests/com/google/bitcoin/core/DiskBlockStoreTest.java +++ b/tests/com/google/bitcoin/store/DiskBlockStoreTest.java @@ -13,8 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.bitcoin.core; +package com.google.bitcoin.store; +import com.google.bitcoin.core.Address; +import com.google.bitcoin.core.ECKey; +import com.google.bitcoin.core.NetworkParameters; +import com.google.bitcoin.core.StoredBlock; +import com.google.bitcoin.store.DiskBlockStore; import org.junit.Test; import java.io.File; import static org.junit.Assert.assertEquals; @@ -24,7 +29,6 @@ public class DiskBlockStoreTest { public void testStorage() throws Exception { File temp = File.createTempFile("bitcoinj-test", null, null); System.out.println(temp.getAbsolutePath()); - //temp.deleteOnExit(); NetworkParameters params = NetworkParameters.unitTests(); Address to = new ECKey().toAddress(params);