mirror of
https://github.com/bitcoinj/bitcoinj.git
synced 2025-01-18 13:22:42 +01:00
Re-organize the source tree so people can depend on bitcoinj without pulling in the examples, tools, or dependencies thereof.
This commit is contained in:
parent
a86ca77a58
commit
216deb2d35
4
README
4
README
@ -7,7 +7,7 @@ useful information like JavaDocs. The outputs are under the target/ directory.
|
||||
|
||||
Now ensure you're running a Bitcoin node locally and run the example app:
|
||||
|
||||
mvn exec:java -Dexec.mainClass=com.google.bitcoin.examples.PingService
|
||||
mvn exec:java -Dexec.mainClass=PingService
|
||||
|
||||
It will download the block chain and eventually print a Bitcoin address. If you send coins to it,
|
||||
you should get them back a few minutes later when a block is solved.
|
||||
@ -15,7 +15,7 @@ you should get them back a few minutes later when a block is solved.
|
||||
You can also use a command line tool that exposes basic Bitcoin operations
|
||||
|
||||
./wallet-tool (on UNIX, if you have Maven installed)
|
||||
mvn exec:java -Dexec.mainClass=com.google.bitcoin.tools.WalletTool --help (on other platforms)
|
||||
mvn exec:java -Dexec.mainClass=WalletTool --help (on other platforms)
|
||||
|
||||
Note that if you connect to a node that is itself downloading the block chain, you will see very slow progress (1
|
||||
block per second or less). Find a node that isn't heavily loaded to connect to.
|
||||
|
@ -16,19 +16,7 @@
|
||||
|
||||
package com.google.bitcoin.examples;
|
||||
|
||||
import com.google.bitcoin.core.AbstractWalletEventListener;
|
||||
import com.google.bitcoin.core.Address;
|
||||
import com.google.bitcoin.core.BlockChain;
|
||||
import com.google.bitcoin.core.ECKey;
|
||||
import com.google.bitcoin.core.NetworkParameters;
|
||||
import com.google.bitcoin.core.PeerAddress;
|
||||
import com.google.bitcoin.core.PeerGroup;
|
||||
import com.google.bitcoin.core.ScriptException;
|
||||
import com.google.bitcoin.core.StoredBlock;
|
||||
import com.google.bitcoin.core.Transaction;
|
||||
import com.google.bitcoin.core.TransactionInput;
|
||||
import com.google.bitcoin.core.Utils;
|
||||
import com.google.bitcoin.core.Wallet;
|
||||
import com.google.bitcoin.core.*;
|
||||
import com.google.bitcoin.store.BlockStoreException;
|
||||
import com.google.bitcoin.store.DerbyBlockStore;
|
||||
|
@ -26,7 +26,7 @@ import java.io.File;
|
||||
public class DumpWallet {
|
||||
public static void main(String[] args) throws Exception {
|
||||
if (args.length != 1) {
|
||||
System.out.println("Usage: java com.google.bitcoin.examples.DumpWallet <filename>");
|
||||
System.out.println("Usage: java DumpWallet <filename>");
|
||||
return;
|
||||
}
|
||||
|
@ -26,7 +26,9 @@ import com.google.bitcoin.discovery.PeerDiscoveryException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.ArrayList;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* Prints a list of IP addresses connected to the rendezvous point on the LFnet IRC channel.
|
203
examples/examples.iml
Normal file
203
examples/examples.iml
Normal file
@ -0,0 +1,203 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="1.6" jdkType="JavaSDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="lib" />
|
||||
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15:1.46" level="project" />
|
||||
</component>
|
||||
<component name="org.twodividedbyzero.idea.findbugs">
|
||||
<option name="_basePreferences">
|
||||
<map>
|
||||
<entry key="property.analysisEffortLevel" value="default" />
|
||||
<entry key="property.analyzeAfterCompile" value="false" />
|
||||
<entry key="property.exportAsHtml" value="true" />
|
||||
<entry key="property.exportAsXml" value="true" />
|
||||
<entry key="property.exportBaseDir" value="" />
|
||||
<entry key="property.exportCreateArchiveDir" value="false" />
|
||||
<entry key="property.exportOpenBrowser" value="true" />
|
||||
<entry key="property.minPriorityToReport" value="Medium" />
|
||||
<entry key="property.runAnalysisInBackground" value="false" />
|
||||
<entry key="property.showHiddenDetectors" value="false" />
|
||||
<entry key="property.toolWindowToFront" value="true" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="_detectors">
|
||||
<map>
|
||||
<entry key="AppendingToAnObjectOutputStream" value="true" />
|
||||
<entry key="BCPMethodReturnCheck" value="false" />
|
||||
<entry key="BadAppletConstructor" value="false" />
|
||||
<entry key="BadResultSetAccess" value="true" />
|
||||
<entry key="BadSyntaxForRegularExpression" value="true" />
|
||||
<entry key="BadUseOfReturnValue" value="true" />
|
||||
<entry key="BadlyOverriddenAdapter" value="true" />
|
||||
<entry key="BooleanReturnNull" value="true" />
|
||||
<entry key="BuildInterproceduralCallGraph" value="false" />
|
||||
<entry key="BuildObligationPolicyDatabase" value="true" />
|
||||
<entry key="CallToUnsupportedMethod" value="false" />
|
||||
<entry key="CalledMethods" value="true" />
|
||||
<entry key="CheckCalls" value="false" />
|
||||
<entry key="CheckExpectedWarnings" value="false" />
|
||||
<entry key="CheckImmutableAnnotation" value="true" />
|
||||
<entry key="CheckTypeQualifiers" value="true" />
|
||||
<entry key="CloneIdiom" value="true" />
|
||||
<entry key="ComparatorIdiom" value="true" />
|
||||
<entry key="ConfusedInheritance" value="true" />
|
||||
<entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
|
||||
<entry key="CrossSiteScripting" value="true" />
|
||||
<entry key="DoInsideDoPrivileged" value="true" />
|
||||
<entry key="DontCatchIllegalMonitorStateException" value="true" />
|
||||
<entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
|
||||
<entry key="DontUseEnum" value="true" />
|
||||
<entry key="DroppedException" value="true" />
|
||||
<entry key="DumbMethodInvocations" value="true" />
|
||||
<entry key="DumbMethods" value="true" />
|
||||
<entry key="DuplicateBranches" value="true" />
|
||||
<entry key="EmptyZipFileEntry" value="true" />
|
||||
<entry key="EqStringTest" value="false" />
|
||||
<entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
|
||||
<entry key="FieldItemSummary" value="true" />
|
||||
<entry key="FinalizerNullsFields" value="true" />
|
||||
<entry key="FindBadCast" value="false" />
|
||||
<entry key="FindBadCast2" value="true" />
|
||||
<entry key="FindBadEqualsImplementation" value="false" />
|
||||
<entry key="FindBadForLoop" value="true" />
|
||||
<entry key="FindBugsSummaryStats" value="true" />
|
||||
<entry key="FindCircularDependencies" value="false" />
|
||||
<entry key="FindDeadLocalStores" value="true" />
|
||||
<entry key="FindDoubleCheck" value="true" />
|
||||
<entry key="FindEmptySynchronizedBlock" value="true" />
|
||||
<entry key="FindFieldSelfAssignment" value="true" />
|
||||
<entry key="FindFinalizeInvocations" value="true" />
|
||||
<entry key="FindFloatEquality" value="true" />
|
||||
<entry key="FindFloatMath" value="false" />
|
||||
<entry key="FindHEmismatch" value="true" />
|
||||
<entry key="FindInconsistentSync2" value="true" />
|
||||
<entry key="FindJSR166LockMonitorenter" value="true" />
|
||||
<entry key="FindLocalSelfAssignment2" value="true" />
|
||||
<entry key="FindMaskedFields" value="true" />
|
||||
<entry key="FindMismatchedWaitOrNotify" value="true" />
|
||||
<entry key="FindNakedNotify" value="true" />
|
||||
<entry key="FindNonSerializableStoreIntoSession" value="true" />
|
||||
<entry key="FindNonSerializableValuePassedToWriteObject" value="true" />
|
||||
<entry key="FindNonShortCircuit" value="true" />
|
||||
<entry key="FindNullDeref" value="true" />
|
||||
<entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
|
||||
<entry key="FindOpenStream" value="true" />
|
||||
<entry key="FindPuzzlers" value="true" />
|
||||
<entry key="FindRefComparison" value="true" />
|
||||
<entry key="FindReturnRef" value="true" />
|
||||
<entry key="FindRunInvocations" value="true" />
|
||||
<entry key="FindSelfComparison" value="true" />
|
||||
<entry key="FindSelfComparison2" value="true" />
|
||||
<entry key="FindSleepWithLockHeld" value="true" />
|
||||
<entry key="FindSpinLoop" value="true" />
|
||||
<entry key="FindSqlInjection" value="true" />
|
||||
<entry key="FindTwoLockWait" value="true" />
|
||||
<entry key="FindUncalledPrivateMethods" value="true" />
|
||||
<entry key="FindUnconditionalWait" value="true" />
|
||||
<entry key="FindUninitializedGet" value="true" />
|
||||
<entry key="FindUnrelatedTypesInGenericContainer" value="true" />
|
||||
<entry key="FindUnreleasedLock" value="true" />
|
||||
<entry key="FindUnsatisfiedObligation" value="true" />
|
||||
<entry key="FindUnsyncGet" value="true" />
|
||||
<entry key="FindUselessControlFlow" value="true" />
|
||||
<entry key="FormatStringChecker" value="true" />
|
||||
<entry key="HugeSharedStringConstants" value="true" />
|
||||
<entry key="IDivResultCastToDouble" value="true" />
|
||||
<entry key="IncompatMask" value="true" />
|
||||
<entry key="InconsistentAnnotations" value="true" />
|
||||
<entry key="InefficientMemberAccess" value="false" />
|
||||
<entry key="InefficientToArray" value="true" />
|
||||
<entry key="InfiniteLoop" value="true" />
|
||||
<entry key="InfiniteRecursiveLoop" value="true" />
|
||||
<entry key="InfiniteRecursiveLoop2" value="false" />
|
||||
<entry key="InheritanceUnsafeGetResource" value="true" />
|
||||
<entry key="InitializationChain" value="true" />
|
||||
<entry key="InstantiateStaticClass" value="true" />
|
||||
<entry key="InvalidJUnitTest" value="true" />
|
||||
<entry key="IteratorIdioms" value="true" />
|
||||
<entry key="LazyInit" value="true" />
|
||||
<entry key="LoadOfKnownNullValue" value="true" />
|
||||
<entry key="LockedFields" value="false" />
|
||||
<entry key="LostLoggerDueToWeakReference" value="true" />
|
||||
<entry key="MethodReturnCheck" value="true" />
|
||||
<entry key="Methods" value="true" />
|
||||
<entry key="MultithreadedInstanceAccess" value="true" />
|
||||
<entry key="MutableLock" value="true" />
|
||||
<entry key="MutableStaticFields" value="true" />
|
||||
<entry key="Naming" value="true" />
|
||||
<entry key="Noise" value="false" />
|
||||
<entry key="NoiseNullDeref" value="false" />
|
||||
<entry key="NoteAnnotationRetention" value="true" />
|
||||
<entry key="NoteCheckReturnValue" value="true" />
|
||||
<entry key="NoteCheckReturnValueAnnotations" value="true" />
|
||||
<entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
|
||||
<entry key="NoteJCIPAnnotation" value="true" />
|
||||
<entry key="NoteNonNullAnnotations" value="true" />
|
||||
<entry key="NoteNonnullReturnValues" value="true" />
|
||||
<entry key="NoteSuppressedWarnings" value="true" />
|
||||
<entry key="NoteUnconditionalParamDerefs" value="true" />
|
||||
<entry key="NumberConstructor" value="true" />
|
||||
<entry key="OverridingEqualsNotSymmetrical" value="true" />
|
||||
<entry key="PreferZeroLengthArrays" value="true" />
|
||||
<entry key="PublicSemaphores" value="false" />
|
||||
<entry key="QuestionableBooleanAssignment" value="true" />
|
||||
<entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
|
||||
<entry key="ReadReturnShouldBeChecked" value="true" />
|
||||
<entry key="RedundantInterfaces" value="true" />
|
||||
<entry key="ReflectiveClasses" value="true" />
|
||||
<entry key="RepeatedConditionals" value="true" />
|
||||
<entry key="ResolveAllReferences" value="false" />
|
||||
<entry key="RuntimeExceptionCapture" value="true" />
|
||||
<entry key="SerializableIdiom" value="true" />
|
||||
<entry key="StartInConstructor" value="true" />
|
||||
<entry key="StaticCalendarDetector" value="true" />
|
||||
<entry key="StringConcatenation" value="true" />
|
||||
<entry key="SuperfluousInstanceOf" value="true" />
|
||||
<entry key="SuspiciousThreadInterrupted" value="true" />
|
||||
<entry key="SwitchFallthrough" value="true" />
|
||||
<entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
|
||||
<entry key="SynchronizeAndNullCheckField" value="true" />
|
||||
<entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
|
||||
<entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
|
||||
<entry key="TestASM" value="false" />
|
||||
<entry key="TestDataflowAnalysis" value="false" />
|
||||
<entry key="TestingGround" value="false" />
|
||||
<entry key="TrainFieldStoreTypes" value="true" />
|
||||
<entry key="TrainNonNullAnnotations" value="true" />
|
||||
<entry key="TrainUnconditionalDerefParams" value="true" />
|
||||
<entry key="URLProblems" value="true" />
|
||||
<entry key="UncallableMethodOfAnonymousClass" value="true" />
|
||||
<entry key="UnnecessaryMath" value="true" />
|
||||
<entry key="UnreadFields" value="true" />
|
||||
<entry key="UseObjectEquals" value="false" />
|
||||
<entry key="UselessSubclassMethod" value="false" />
|
||||
<entry key="VarArgsProblems" value="true" />
|
||||
<entry key="VolatileUsage" value="true" />
|
||||
<entry key="WaitInLoop" value="true" />
|
||||
<entry key="WrongMapIterator" value="true" />
|
||||
<entry key="XMLFactoryBypass" value="true" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="_reportCategories">
|
||||
<map>
|
||||
<entry key="BAD_PRACTICE" value="true" />
|
||||
<entry key="CORRECTNESS" value="true" />
|
||||
<entry key="EXPERIMENTAL" value="true" />
|
||||
<entry key="I18N" value="true" />
|
||||
<entry key="MALICIOUS_CODE" value="true" />
|
||||
<entry key="MT_CORRECTNESS" value="true" />
|
||||
<entry key="NOISE" value="false" />
|
||||
<entry key="PERFORMANCE" value="true" />
|
||||
<entry key="SECURITY" value="true" />
|
||||
<entry key="STYLE" value="true" />
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</module>
|
||||
|
213
lib/lib.iml
Normal file
213
lib/lib.iml
Normal file
@ -0,0 +1,213 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.8.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.easymock:easymock:3.0" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: cglib:cglib-nodep:2.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.6.2" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:slf4j-jdk14:1.6.2" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.derby:derby:10.8.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15:1.46" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:2.4.1" level="project" />
|
||||
</component>
|
||||
<component name="org.twodividedbyzero.idea.findbugs">
|
||||
<option name="_basePreferences">
|
||||
<map>
|
||||
<entry key="property.analysisEffortLevel" value="default" />
|
||||
<entry key="property.analyzeAfterCompile" value="false" />
|
||||
<entry key="property.exportAsHtml" value="true" />
|
||||
<entry key="property.exportAsXml" value="true" />
|
||||
<entry key="property.exportBaseDir" value="" />
|
||||
<entry key="property.exportCreateArchiveDir" value="false" />
|
||||
<entry key="property.exportOpenBrowser" value="true" />
|
||||
<entry key="property.minPriorityToReport" value="Medium" />
|
||||
<entry key="property.runAnalysisInBackground" value="false" />
|
||||
<entry key="property.showHiddenDetectors" value="false" />
|
||||
<entry key="property.toolWindowToFront" value="true" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="_detectors">
|
||||
<map>
|
||||
<entry key="AppendingToAnObjectOutputStream" value="true" />
|
||||
<entry key="BCPMethodReturnCheck" value="false" />
|
||||
<entry key="BadAppletConstructor" value="false" />
|
||||
<entry key="BadResultSetAccess" value="true" />
|
||||
<entry key="BadSyntaxForRegularExpression" value="true" />
|
||||
<entry key="BadUseOfReturnValue" value="true" />
|
||||
<entry key="BadlyOverriddenAdapter" value="true" />
|
||||
<entry key="BooleanReturnNull" value="true" />
|
||||
<entry key="BuildInterproceduralCallGraph" value="false" />
|
||||
<entry key="BuildObligationPolicyDatabase" value="true" />
|
||||
<entry key="CallToUnsupportedMethod" value="false" />
|
||||
<entry key="CalledMethods" value="true" />
|
||||
<entry key="CheckCalls" value="false" />
|
||||
<entry key="CheckExpectedWarnings" value="false" />
|
||||
<entry key="CheckImmutableAnnotation" value="true" />
|
||||
<entry key="CheckTypeQualifiers" value="true" />
|
||||
<entry key="CloneIdiom" value="true" />
|
||||
<entry key="ComparatorIdiom" value="true" />
|
||||
<entry key="ConfusedInheritance" value="true" />
|
||||
<entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
|
||||
<entry key="CrossSiteScripting" value="true" />
|
||||
<entry key="DoInsideDoPrivileged" value="true" />
|
||||
<entry key="DontCatchIllegalMonitorStateException" value="true" />
|
||||
<entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
|
||||
<entry key="DontUseEnum" value="true" />
|
||||
<entry key="DroppedException" value="true" />
|
||||
<entry key="DumbMethodInvocations" value="true" />
|
||||
<entry key="DumbMethods" value="true" />
|
||||
<entry key="DuplicateBranches" value="true" />
|
||||
<entry key="EmptyZipFileEntry" value="true" />
|
||||
<entry key="EqStringTest" value="false" />
|
||||
<entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
|
||||
<entry key="FieldItemSummary" value="true" />
|
||||
<entry key="FinalizerNullsFields" value="true" />
|
||||
<entry key="FindBadCast" value="false" />
|
||||
<entry key="FindBadCast2" value="true" />
|
||||
<entry key="FindBadEqualsImplementation" value="false" />
|
||||
<entry key="FindBadForLoop" value="true" />
|
||||
<entry key="FindBugsSummaryStats" value="true" />
|
||||
<entry key="FindCircularDependencies" value="false" />
|
||||
<entry key="FindDeadLocalStores" value="true" />
|
||||
<entry key="FindDoubleCheck" value="true" />
|
||||
<entry key="FindEmptySynchronizedBlock" value="true" />
|
||||
<entry key="FindFieldSelfAssignment" value="true" />
|
||||
<entry key="FindFinalizeInvocations" value="true" />
|
||||
<entry key="FindFloatEquality" value="true" />
|
||||
<entry key="FindFloatMath" value="false" />
|
||||
<entry key="FindHEmismatch" value="true" />
|
||||
<entry key="FindInconsistentSync2" value="true" />
|
||||
<entry key="FindJSR166LockMonitorenter" value="true" />
|
||||
<entry key="FindLocalSelfAssignment2" value="true" />
|
||||
<entry key="FindMaskedFields" value="true" />
|
||||
<entry key="FindMismatchedWaitOrNotify" value="true" />
|
||||
<entry key="FindNakedNotify" value="true" />
|
||||
<entry key="FindNonSerializableStoreIntoSession" value="true" />
|
||||
<entry key="FindNonSerializableValuePassedToWriteObject" value="true" />
|
||||
<entry key="FindNonShortCircuit" value="true" />
|
||||
<entry key="FindNullDeref" value="true" />
|
||||
<entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
|
||||
<entry key="FindOpenStream" value="true" />
|
||||
<entry key="FindPuzzlers" value="true" />
|
||||
<entry key="FindRefComparison" value="true" />
|
||||
<entry key="FindReturnRef" value="true" />
|
||||
<entry key="FindRunInvocations" value="true" />
|
||||
<entry key="FindSelfComparison" value="true" />
|
||||
<entry key="FindSelfComparison2" value="true" />
|
||||
<entry key="FindSleepWithLockHeld" value="true" />
|
||||
<entry key="FindSpinLoop" value="true" />
|
||||
<entry key="FindSqlInjection" value="true" />
|
||||
<entry key="FindTwoLockWait" value="true" />
|
||||
<entry key="FindUncalledPrivateMethods" value="true" />
|
||||
<entry key="FindUnconditionalWait" value="true" />
|
||||
<entry key="FindUninitializedGet" value="true" />
|
||||
<entry key="FindUnrelatedTypesInGenericContainer" value="true" />
|
||||
<entry key="FindUnreleasedLock" value="true" />
|
||||
<entry key="FindUnsatisfiedObligation" value="true" />
|
||||
<entry key="FindUnsyncGet" value="true" />
|
||||
<entry key="FindUselessControlFlow" value="true" />
|
||||
<entry key="FormatStringChecker" value="true" />
|
||||
<entry key="HugeSharedStringConstants" value="true" />
|
||||
<entry key="IDivResultCastToDouble" value="true" />
|
||||
<entry key="IncompatMask" value="true" />
|
||||
<entry key="InconsistentAnnotations" value="true" />
|
||||
<entry key="InefficientMemberAccess" value="false" />
|
||||
<entry key="InefficientToArray" value="true" />
|
||||
<entry key="InfiniteLoop" value="true" />
|
||||
<entry key="InfiniteRecursiveLoop" value="true" />
|
||||
<entry key="InfiniteRecursiveLoop2" value="false" />
|
||||
<entry key="InheritanceUnsafeGetResource" value="true" />
|
||||
<entry key="InitializationChain" value="true" />
|
||||
<entry key="InstantiateStaticClass" value="true" />
|
||||
<entry key="InvalidJUnitTest" value="true" />
|
||||
<entry key="IteratorIdioms" value="true" />
|
||||
<entry key="LazyInit" value="true" />
|
||||
<entry key="LoadOfKnownNullValue" value="true" />
|
||||
<entry key="LockedFields" value="false" />
|
||||
<entry key="LostLoggerDueToWeakReference" value="true" />
|
||||
<entry key="MethodReturnCheck" value="true" />
|
||||
<entry key="Methods" value="true" />
|
||||
<entry key="MultithreadedInstanceAccess" value="true" />
|
||||
<entry key="MutableLock" value="true" />
|
||||
<entry key="MutableStaticFields" value="true" />
|
||||
<entry key="Naming" value="true" />
|
||||
<entry key="Noise" value="false" />
|
||||
<entry key="NoiseNullDeref" value="false" />
|
||||
<entry key="NoteAnnotationRetention" value="true" />
|
||||
<entry key="NoteCheckReturnValue" value="true" />
|
||||
<entry key="NoteCheckReturnValueAnnotations" value="true" />
|
||||
<entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
|
||||
<entry key="NoteJCIPAnnotation" value="true" />
|
||||
<entry key="NoteNonNullAnnotations" value="true" />
|
||||
<entry key="NoteNonnullReturnValues" value="true" />
|
||||
<entry key="NoteSuppressedWarnings" value="true" />
|
||||
<entry key="NoteUnconditionalParamDerefs" value="true" />
|
||||
<entry key="NumberConstructor" value="true" />
|
||||
<entry key="OverridingEqualsNotSymmetrical" value="true" />
|
||||
<entry key="PreferZeroLengthArrays" value="true" />
|
||||
<entry key="PublicSemaphores" value="false" />
|
||||
<entry key="QuestionableBooleanAssignment" value="true" />
|
||||
<entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
|
||||
<entry key="ReadReturnShouldBeChecked" value="true" />
|
||||
<entry key="RedundantInterfaces" value="true" />
|
||||
<entry key="ReflectiveClasses" value="true" />
|
||||
<entry key="RepeatedConditionals" value="true" />
|
||||
<entry key="ResolveAllReferences" value="false" />
|
||||
<entry key="RuntimeExceptionCapture" value="true" />
|
||||
<entry key="SerializableIdiom" value="true" />
|
||||
<entry key="StartInConstructor" value="true" />
|
||||
<entry key="StaticCalendarDetector" value="true" />
|
||||
<entry key="StringConcatenation" value="true" />
|
||||
<entry key="SuperfluousInstanceOf" value="true" />
|
||||
<entry key="SuspiciousThreadInterrupted" value="true" />
|
||||
<entry key="SwitchFallthrough" value="true" />
|
||||
<entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
|
||||
<entry key="SynchronizeAndNullCheckField" value="true" />
|
||||
<entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
|
||||
<entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
|
||||
<entry key="TestASM" value="false" />
|
||||
<entry key="TestDataflowAnalysis" value="false" />
|
||||
<entry key="TestingGround" value="false" />
|
||||
<entry key="TrainFieldStoreTypes" value="true" />
|
||||
<entry key="TrainNonNullAnnotations" value="true" />
|
||||
<entry key="TrainUnconditionalDerefParams" value="true" />
|
||||
<entry key="URLProblems" value="true" />
|
||||
<entry key="UncallableMethodOfAnonymousClass" value="true" />
|
||||
<entry key="UnnecessaryMath" value="true" />
|
||||
<entry key="UnreadFields" value="true" />
|
||||
<entry key="UseObjectEquals" value="false" />
|
||||
<entry key="UselessSubclassMethod" value="false" />
|
||||
<entry key="VarArgsProblems" value="true" />
|
||||
<entry key="VolatileUsage" value="true" />
|
||||
<entry key="WaitInLoop" value="true" />
|
||||
<entry key="WrongMapIterator" value="true" />
|
||||
<entry key="XMLFactoryBypass" value="true" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="_reportCategories">
|
||||
<map>
|
||||
<entry key="BAD_PRACTICE" value="true" />
|
||||
<entry key="CORRECTNESS" value="true" />
|
||||
<entry key="EXPERIMENTAL" value="true" />
|
||||
<entry key="I18N" value="true" />
|
||||
<entry key="MALICIOUS_CODE" value="true" />
|
||||
<entry key="MT_CORRECTNESS" value="true" />
|
||||
<entry key="NOISE" value="false" />
|
||||
<entry key="PERFORMANCE" value="true" />
|
||||
<entry key="SECURITY" value="true" />
|
||||
<entry key="STYLE" value="true" />
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</module>
|
||||
|
254
lib/pom.xml
Normal file
254
lib/pom.xml
Normal file
@ -0,0 +1,254 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2012 Google Inc.
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>bitcoinj</artifactId>
|
||||
<groupId>com.google</groupId>
|
||||
<version>0.5-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>bitcoinj-lib</artifactId>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>release-sign-artifacts</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>performRelease</name>
|
||||
<value>true</value>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-gpg-plugin</artifactId>
|
||||
<version>1.4</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>sign-artifacts</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>sign</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>update-protobuf</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>updateProtobuf</name>
|
||||
<value>true</value>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>compile-protoc</id>
|
||||
<phase>generate-sources</phase>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<path id="proto.path">
|
||||
<fileset dir="src">
|
||||
<include name="**/*.proto" />
|
||||
</fileset>
|
||||
</path>
|
||||
<pathconvert pathsep=" " property="proto.files" refid="proto.path" />
|
||||
<exec executable="protoc" failonerror="true">
|
||||
<arg value="--java_out=${project.basedir}/src" />
|
||||
<arg value="-I${project.basedir}/src" />
|
||||
<arg line="${proto.files}" />
|
||||
</exec>
|
||||
</tasks>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<build>
|
||||
<!-- Non-standard Maven structure -->
|
||||
<sourceDirectory>src</sourceDirectory>
|
||||
<testSourceDirectory>tests</testSourceDirectory>
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>tests</directory>
|
||||
<excludes>
|
||||
<exclude>**/*.java</exclude>
|
||||
</excludes>
|
||||
</testResource>
|
||||
</testResources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.3.2</version>
|
||||
<!-- Version 1.5 required to support older platforms. -->
|
||||
<configuration>
|
||||
<source>1.5</source>
|
||||
<target>1.5</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- Surefire plugin specified for Maven2 compatibility -->
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.9</version>
|
||||
</plugin>
|
||||
<!-- The Shade plugin permits the Bouncy Castle libraries to be available for Android
|
||||
in their full form, rather than the limited versions that are currently available
|
||||
The standard bitcoinj library does not have this limitation and can use the referenced library
|
||||
As a result, Android developers should use the bitcoinj-<version>-android.jar artifact -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>1.4</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<filters>
|
||||
<filter>
|
||||
<!-- Remove the original signature meta information from all sources -->
|
||||
<artifact>*:*</artifact>
|
||||
<excludes>
|
||||
<exclude>META-INF/*.SF</exclude>
|
||||
<exclude>META-INF/*.DSA</exclude>
|
||||
<exclude>META-INF/*.RSA</exclude>
|
||||
</excludes>
|
||||
</filter>
|
||||
</filters>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>org.bouncycastle</pattern>
|
||||
<shadedPattern>com.google.bitcoin.bouncycastle</shadedPattern>
|
||||
</relocation>
|
||||
</relocations>
|
||||
<artifactSet>
|
||||
<includes>
|
||||
<include>org.bouncycastle</include>
|
||||
</includes>
|
||||
</artifactSet>
|
||||
<minimizeJar>true</minimizeJar>
|
||||
<!-- bitcoinj-<version>-android.jar contains the shaded Bouncy Castle libraries -->
|
||||
<shadedArtifactAttached>true</shadedArtifactAttached>
|
||||
<shadedClassifierName>android</shadedClassifierName>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>2.1.2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-sources</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>jar-no-fork</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.easymock</groupId>
|
||||
<artifactId>easymock</artifactId>
|
||||
<version>${easymock.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>${slf4j.version}</version>
|
||||
</dependency>
|
||||
<!-- BitCoinJ consumers are expected to provide their own SLF4J adapters
|
||||
such as logback, slf4j-log4j12, slf4j-jcl and so on
|
||||
see http://www.slf4j.org/faq.html -->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-jdk14</artifactId>
|
||||
<version>${slf4j.version}</version>
|
||||
<scope>runtime</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.derby</groupId>
|
||||
<artifactId>derby</artifactId>
|
||||
<version>${derby.version}</version>
|
||||
<scope>runtime</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<!-- In Android these libraries are incomplete,
|
||||
so use the dedicated artifact (bitcoinj-<version>-android.jar) -->
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk15</artifactId>
|
||||
<version>${bcprov-jdk15.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
<version>${protobuf.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<!-- Third-party dependencies -->
|
||||
<bcprov-jdk15.version>1.46</bcprov-jdk15.version>
|
||||
<easymock.version>3.0</easymock.version>
|
||||
<junit.version>4.8.2</junit.version>
|
||||
<slf4j.version>1.6.2</slf4j.version>
|
||||
<derby.version>10.8.2.2</derby.version>
|
||||
<protobuf.version>2.4.1</protobuf.version>
|
||||
<generated.sourceDirectory>gen</generated.sourceDirectory>
|
||||
</properties>
|
||||
</project>
|
@ -108,7 +108,7 @@ message Transaction {
|
||||
PENDING_INACTIVE = 18; // In non-best chain, our transaction
|
||||
}
|
||||
|
||||
// See com.google.bitcoin.core.Wallet.java for detailed description of pool semantics
|
||||
// See Wallet.java for detailed description of pool semantics
|
||||
required int32 version = 1;
|
||||
required bytes hash = 2;
|
||||
required Pool pool = 3;
|
@ -56,7 +56,7 @@ public class AddressMessage extends Message {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.bitcoin.core.Message#parseLite()
|
||||
* @see Message#parseLite()
|
||||
*/
|
||||
@Override
|
||||
protected void parseLite() throws ProtocolException {
|
||||
@ -79,7 +79,7 @@ public class AddressMessage extends Message {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.bitcoin.core.Message#bitcoinSerializeToStream(java.io.OutputStream)
|
||||
* @see Message#bitcoinSerializeToStream(java.io.OutputStream)
|
||||
*/
|
||||
@Override
|
||||
void bitcoinSerializeToStream(OutputStream stream) throws IOException {
|
@ -64,7 +64,7 @@ public abstract class ChildMessage extends Message {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.bitcoin.core.Message#unCache()
|
||||
* @see Message#unCache()
|
||||
*/
|
||||
@Override
|
||||
protected void unCache() {
|
@ -51,14 +51,14 @@ public abstract class EmptyMessage extends Message {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.bitcoin.core.Message#parse()
|
||||
* @see Message#parse()
|
||||
*/
|
||||
@Override
|
||||
void parse() throws ProtocolException {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.bitcoin.core.Message#parseLite()
|
||||
* @see Message#parseLite()
|
||||
*/
|
||||
@Override
|
||||
protected void parseLite() throws ProtocolException {
|
||||
@ -66,7 +66,7 @@ public abstract class EmptyMessage extends Message {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.bitcoin.core.Message#ensureParsed()
|
||||
* @see Message#ensureParsed()
|
||||
*/
|
||||
@Override
|
||||
public void ensureParsed() throws ProtocolException {
|
||||
@ -74,7 +74,7 @@ public abstract class EmptyMessage extends Message {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.bitcoin.core.Message#bitcoinSerialize()
|
||||
* @see Message#bitcoinSerialize()
|
||||
*/
|
||||
@Override
|
||||
public byte[] bitcoinSerialize() {
|
@ -149,7 +149,7 @@ public class PeerAddress extends ChildMessage {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.bitcoin.core.Message#getMessageSize()
|
||||
* @see Message#getMessageSize()
|
||||
*/
|
||||
@Override
|
||||
int getMessageSize() {
|
@ -616,7 +616,7 @@ public class Transaction extends ChildMessage implements Serializable {
|
||||
byte[] connectedPubKeyHash = input.getOutpoint().getConnectedPubKeyHash();
|
||||
ECKey key = wallet.findKeyFromPubHash(connectedPubKeyHash);
|
||||
// This assert should never fire. If it does, it means the wallet is inconsistent.
|
||||
assert key != null : "Transaction exists in wallet that we cannot redeem: " + Utils.bytesToHexString(connectedPubKeyHash);
|
||||
assert key != null : "Transaction exists in wallet that we cannot redeem: " + bytesToHexString(connectedPubKeyHash);
|
||||
// Keep the key around for the script creation step below.
|
||||
signingKeys[i] = key;
|
||||
// The anyoneCanPay feature isn't used at the moment.
|
||||
@ -669,7 +669,7 @@ public class Transaction extends ChildMessage implements Serializable {
|
||||
int hashType = type.ordinal() + 1;
|
||||
if (anyoneCanPay)
|
||||
hashType |= 0x80;
|
||||
Utils.uint32ToByteStreamLE(hashType, bos);
|
||||
uint32ToByteStreamLE(hashType, bos);
|
||||
// Note that this is NOT reversed to ensure it will be signed correctly. If it were to be printed out
|
||||
// however then we would expect that it is IS reversed.
|
||||
return doubleDigest(bos.toByteArray());
|
@ -91,7 +91,7 @@ public class TransactionOutPoint extends ChildMessage implements Serializable {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.bitcoin.core.Message#getMessageSize()
|
||||
* @see Message#getMessageSize()
|
||||
*/
|
||||
@Override
|
||||
int getMessageSize() {
|
@ -22,11 +22,7 @@ import com.google.bitcoin.core.Utils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.*;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
@ -16,24 +16,12 @@ package com.google.bitcoin.store;
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import com.google.bitcoin.core.Block;
|
||||
import com.google.bitcoin.core.NetworkParameters;
|
||||
import com.google.bitcoin.core.ProtocolException;
|
||||
import com.google.bitcoin.core.Sha256Hash;
|
||||
import com.google.bitcoin.core.StoredBlock;
|
||||
import com.google.bitcoin.core.Utils;
|
||||
import com.google.bitcoin.core.VerificationException;
|
||||
|
||||
import com.google.bitcoin.core.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.sql.*;
|
||||
|
||||
/**
|
||||
* A block store using the Apache Derby pure-java embedded database.
|
@ -18,6 +18,13 @@
|
||||
|
||||
package com.google.bitcoin.uri;
|
||||
|
||||
import com.google.bitcoin.core.Address;
|
||||
import com.google.bitcoin.core.AddressFormatException;
|
||||
import com.google.bitcoin.core.NetworkParameters;
|
||||
import com.google.bitcoin.core.Utils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.math.BigInteger;
|
||||
import java.net.URI;
|
||||
@ -26,14 +33,6 @@ import java.net.URLDecoder;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.bitcoin.core.Address;
|
||||
import com.google.bitcoin.core.AddressFormatException;
|
||||
import com.google.bitcoin.core.NetworkParameters;
|
||||
import com.google.bitcoin.core.Utils;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Provides a standard implementation of a Bitcoin URI with support for the
|
@ -16,21 +16,20 @@
|
||||
|
||||
package com.google.bitcoin.core;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.util.Arrays;
|
||||
|
||||
import com.google.bitcoin.store.BlockStore;
|
||||
import com.google.bitcoin.store.MemoryBlockStore;
|
||||
import org.bouncycastle.util.encoders.Hex;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.util.Arrays;
|
||||
|
||||
import static com.google.bitcoin.core.TestUtils.createFakeBlock;
|
||||
import static com.google.bitcoin.core.TestUtils.createFakeTx;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import com.google.bitcoin.store.BlockStore;
|
||||
import com.google.bitcoin.store.MemoryBlockStore;
|
||||
|
||||
public class LazyParseByteCacheTest {
|
||||
|
||||
private final byte[] txMessage = Hex.decode(
|
@ -17,7 +17,6 @@
|
||||
package com.google.bitcoin.core;
|
||||
|
||||
import org.bouncycastle.util.encoders.Hex;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user