diff --git a/.ci/ci_check.sh b/.ci/ci_check.sh
index 4478a92f4..b572f8632 100755
--- a/.ci/ci_check.sh
+++ b/.ci/ci_check.sh
@@ -57,6 +57,8 @@ prepare_environment()
rm -rf src/integration-test/resources/bin
cp -r src/test/resources/ecdsa/abi src/integration-test/resources/abi
cp -r src/test/resources/ecdsa/bin src/integration-test/resources/bin
+ mkdir -p sdk-amop/src/test/resources
+ cp -r src/test/resources/ sdk-amop/src/test/resources
sed_cmd=$(get_sed_cmd)
diff --git a/.ci/ci_check_commit.sh b/.ci/ci_check_commit.sh
index b863dd7ee..fb7467c0c 100644
--- a/.ci/ci_check_commit.sh
+++ b/.ci/ci_check_commit.sh
@@ -3,7 +3,7 @@
set -e
scan_code_script="cobra/cobra.py -f json -o /tmp/report.json -t "
-ignore_files=(sh crt key json toml SignatureTest.java Ok.java bin abi ChannelTest.java ParallelOkDemo.java PerformanceAmop.java DagPrecompiledDemo.java KeyManagerTest.java CryptoInterface.java AmopMsgHandlerTest.java TopicManager.java PrivateTopicVerifyTest.java AmopMsgBuilder.java TopicManagerTest.java AmopSubscribe.java AmopPublisher.java AmopPublisherPrivate.java AmopSubscribePrivate.java AmopPublisherFile.java AmopPublisherPrivateFile.java DemoAmopCallback.java FileToByteArrayHelper.java OkD.java TableTest.java PerformanceTable.java HelloWorld.java PerformanceRPC.java)
+ignore_files=(sh crt key json toml SignatureTest.java Ok.java bin abi ChannelTest.java ParallelOkDemo.java PerformanceAmop.java DagPrecompiledDemo.java KeyManagerTest.java CryptoInterface.java AmopMsgHandlerTest.java TopicManager.java PrivateTopicVerifyTest.java AmopMsgBuilder.java TopicManagerTest.java AmopSubscribe.java AmopPublisher.java AmopPublisherPrivate.java AmopSubscribePrivate.java AmopPublisherFile.java AmopPublisherPrivateFile.java DemoAmopCallback.java FileToByteArrayHelper.java OkD.java TableTest.java PerformanceTable.java HelloWorld.java PerformanceRPC.java CodecTest.java ResponseTest.java ConfigTest.java)
commit_limit=6
LOG_ERROR() {
diff --git a/build.gradle b/build.gradle
index 0a567c2c9..163ce61ad 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,48 +1,137 @@
// Apply the java-library plugin to add support for Java Library
plugins {
id 'com.github.sherter.google-java-format' version '0.8'
- id 'maven'
id 'maven-publish'
- id 'signing'
- id 'idea'
- id 'eclipse'
- id 'java'
- id 'jacoco'
}
+println("Notice: current gradle version is " + gradle.gradleVersion)
+// Additional attribute definition
+ext {
+ if (!project.hasProperty("ossrhUsername")) {
+ ossrhUsername="xxx"
+ }
-// In this section you declare where to find the dependencies of your project
-repositories {
- maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
- maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
- mavenCentral()
+ if (!project.hasProperty("ossrhPassword")) {
+ ossrhPassword="xxx"
+ }
+ // jackson version
+ jacksonVersion = "2.11.0"
+ commonsIOVersion = "2.4"
+ commonsLang3Version = "3.1"
+ javapoetVersion = "1.7.0"
+ picocliVersion = "3.6.0"
+ nettyVersion = "4.1.50.Final"
+ nettySMSSLContextVersion = "1.1.0"
+ toml4jVersion = "0.7.2"
+ bcprovJDK15onVersion = "1.60"
+ keyMiniToolkit = "1.0-SNAPSHOT"
}
-sourceCompatibility = '1.8'
-version = '3.0.0'
+// check.dependsOn integrationTest
+// integrationTest.mustRunAfter test
+allprojects {
+ group = 'org.fisco-bcos'
+ version = '0.1.0-SNAPSHOT'
+ apply plugin: 'maven'
+ apply plugin: 'maven-publish'
+ apply plugin: 'signing'
+ apply plugin: 'idea'
+ apply plugin: 'eclipse'
+ apply plugin: 'java'
+ apply plugin: 'jacoco'
+
+ configurations.all {
+ resolutionStrategy.cacheChangingModulesFor 30, 'seconds'
+ }
-googleJavaFormat {
- options style: 'AOSP'
- source = sourceSets*.allJava
- include '**/*.java'
-}
+ jacocoTestReport {
+ reports {
+ xml.enabled true
+ html.enabled false
+ }
+ }
+ sourceCompatibility = '1.8'
-verifyGoogleJavaFormat {
- source = sourceSets*.allJava
- include '**/*.java'
+ // In this section you declare where to find the dependencies of your project
+ repositories {
+ maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
+ maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
+ mavenCentral()
+ }
+
+ dependencies {
+ compile 'org.slf4j:slf4j-api:1.7.30'
+ testCompile 'junit:junit:4.12'
+ }
+
+ clean.doLast {
+ file("dist/apps/").deleteDir()
+ file("dist/conf/").deleteDir()
+ file("dist/lib/").deleteDir()
+ }
}
+subprojects {
+ sourceSets {
+ main {
+ java {
+ srcDir 'src/main/java'
+ }
+
+ resources {
+ srcDir 'src/main/resources'
+ }
+ }
+ }
+ jar {
+ destinationDir file("dist/apps")
+ archiveName project.name + "-" + version + ".jar"
+
+ exclude "**/*.xml"
+ exclude "**/*.properties"
+
+ doLast {
+ copy {
+ from file("src/test/resources/")
+ into "dist/conf"
+ }
+ copy {
+ from configurations.runtime
+ into "dist/lib"
+ }
+ copy {
+ from file("build/libs/")
+ into "dist/apps"
+ }
+ }
+ }
+
+ // for upload to maven
+ task sourcesJar(type: Jar) {
+ classifier = "sources"
+ from sourceSets.main.allSource
+ }
-jacocoTestReport {
- reports {
- xml.enabled true
- html.enabled false
+ /*task javadocJar(type: Jar, dependsOn: javadoc) {
+ classifier = "javadoc"
+ from javadoc.destinationDir
+ }*/
+ artifacts {
+ archives jar
+ archives sourcesJar
+ //archives javadocJar
}
}
+
sourceSets {
main {
java {
- srcDir 'src/main/java'
- srcDir 'src/demo/java'
+ srcDir "sdk-core/src/main/java"
+ srcDir "sdk-crypto/src/main/java"
+ srcDir "sdk-abi/src/main/java"
+ srcDir "sdk-amop/src/main/java"
+ srcDir "sdk-service/src/main/java"
+ srcDir "sdk-transaction/src/main/java"
+ srcDir "sdk-codegen/src/main/java"
}
resources {
@@ -54,11 +143,11 @@ sourceSets {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('src/integration-test/java')
+ srcDir file('sdk-demo/src/main')
}
resources.srcDir file('src/integration-test/resources')
}
}
-
configurations {
integrationTestCompile.extendsFrom testCompile
integrationTestRuntime.extendsFrom testRuntime
@@ -70,7 +159,7 @@ task integrationTest(type: Test) {
}
dependencies {
- compile 'org.bouncycastle:bcprov-jdk15on:1.60'
+ compile 'org.bouncycastle:bcprov-jdk15on:1.60'
compile 'org.apache.commons:commons-lang3:3.1'
compile 'io.netty:netty-all:4.1.50.Final'
compile 'org.fisco-bcos:netty-sm-ssl-context:1.0.0'
@@ -90,25 +179,15 @@ dependencies {
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.23.0'
}
+googleJavaFormat {
+ options style: 'AOSP'
+ source = sourceSets*.allJava
+ include '**/*.java'
+}
-// check.dependsOn integrationTest
-// integrationTest.mustRunAfter test
-
-archivesBaseName = 'java-sdk'
-group = 'org.fisco-bcos'
-version = '1.0.0-SNAPSHOT'
-
-
-// Additional attribute definition
-
-ext {
- if (!project.hasProperty("ossrhUsername")) {
- ossrhUsername="xxx"
- }
-
- if (!project.hasProperty("ossrhPassword")) {
- ossrhPassword="xxx"
- }
+verifyGoogleJavaFormat {
+ source = sourceSets*.allJava
+ include '**/*.java'
}
javadoc {
@@ -138,7 +217,6 @@ publishing {
from components.java
artifact sourcesJar
artifact javadocJar
-
pom {
name = 'fisco-bcos'
description = 'fisco-bcos java-sdk'
@@ -182,18 +260,6 @@ publishing {
}
}
-
-jacocoTestReport {
- reports {
- xml.enabled true
- html.enabled false
- }
-}
-
-configurations.all {
- resolutionStrategy.cacheChangingModulesFor 30, 'seconds'
-}
-
jar {
// destinationDir file('dist/apps')
// archiveName project.name + '-' + project.version + '.jar'
diff --git a/sdk-abi/build.gradle b/sdk-abi/build.gradle
new file mode 100644
index 000000000..f976a9657
--- /dev/null
+++ b/sdk-abi/build.gradle
@@ -0,0 +1,8 @@
+// Apply the java-library plugin to add support for Java Library
+plugins {
+ id 'java'
+}
+dependencies {
+ compile project(':sdk-crypto')
+ compile ("org.apache.commons:commons-lang3:${commonsLang3Version}")
+}
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/ABICodec.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/ABICodec.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/ABICodec.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/ABICodec.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/ABICodecException.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/ABICodecException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/ABICodecException.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/ABICodecException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/Constant.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/Constant.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/Constant.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/Constant.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/EventEncoder.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/EventEncoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/EventEncoder.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/EventEncoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/EventValues.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/EventValues.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/EventValues.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/EventValues.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/FunctionEncoder.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/FunctionEncoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/FunctionEncoder.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/FunctionEncoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/FunctionReturnDecoder.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/FunctionReturnDecoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/FunctionReturnDecoder.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/FunctionReturnDecoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/TypeDecoder.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/TypeDecoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/TypeDecoder.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/TypeDecoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/TypeEncoder.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/TypeEncoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/TypeEncoder.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/TypeEncoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/TypeMappingException.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/TypeMappingException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/TypeMappingException.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/TypeMappingException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/TypeReference.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/TypeReference.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/TypeReference.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/TypeReference.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/Utils.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/Utils.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/Utils.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/Utils.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Address.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Address.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Address.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Address.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Array.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Array.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Array.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Array.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Bool.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Bool.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Bool.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Bool.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Bytes.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Bytes.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Bytes.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Bytes.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/BytesType.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/BytesType.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/BytesType.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/BytesType.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/DynamicArray.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/DynamicArray.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/DynamicArray.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/DynamicArray.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/DynamicBytes.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/DynamicBytes.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/DynamicBytes.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/DynamicBytes.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Event.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Event.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Event.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Event.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Fixed.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Fixed.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Fixed.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Fixed.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/FixedPointType.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/FixedPointType.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/FixedPointType.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/FixedPointType.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Function.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Function.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Function.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Function.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Int.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Int.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Int.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Int.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/IntType.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/IntType.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/IntType.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/IntType.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/NumericType.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/NumericType.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/NumericType.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/NumericType.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/StaticArray.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/StaticArray.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/StaticArray.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/StaticArray.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Type.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Type.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Type.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Type.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Ufixed.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Ufixed.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Ufixed.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Ufixed.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Uint.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Uint.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Uint.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Uint.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Utf8String.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Utf8String.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/Utf8String.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/Utf8String.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/AbiTypes.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/AbiTypes.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/AbiTypes.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/AbiTypes.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes1.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes1.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes1.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes1.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes10.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes10.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes10.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes10.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes11.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes11.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes11.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes11.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes12.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes12.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes12.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes12.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes13.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes13.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes13.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes13.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes14.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes14.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes14.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes14.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes15.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes15.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes15.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes15.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes16.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes16.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes16.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes16.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes17.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes17.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes17.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes17.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes18.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes18.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes18.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes18.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes19.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes19.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes19.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes19.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes2.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes2.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes2.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes2.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes20.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes20.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes20.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes20.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes21.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes21.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes21.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes21.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes22.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes22.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes22.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes22.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes23.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes23.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes23.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes23.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes24.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes24.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes24.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes24.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes25.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes25.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes25.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes25.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes26.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes26.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes26.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes26.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes27.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes27.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes27.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes27.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes28.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes28.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes28.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes28.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes29.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes29.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes29.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes29.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes3.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes3.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes3.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes3.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes30.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes30.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes30.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes30.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes31.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes31.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes31.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes31.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes32.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes32.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes32.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes32.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes4.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes4.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes4.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes4.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes5.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes5.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes5.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes5.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes6.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes6.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes6.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes6.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes7.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes7.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes7.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes7.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes8.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes8.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes8.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes8.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes9.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes9.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes9.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Bytes9.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int104.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int104.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int104.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int104.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int112.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int112.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int112.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int112.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int120.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int120.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int120.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int120.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int128.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int128.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int128.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int128.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int136.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int136.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int136.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int136.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int144.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int144.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int144.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int144.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int152.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int152.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int152.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int152.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int16.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int16.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int16.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int16.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int160.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int160.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int160.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int160.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int168.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int168.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int168.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int168.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int176.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int176.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int176.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int176.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int184.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int184.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int184.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int184.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int192.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int192.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int192.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int192.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int200.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int200.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int200.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int200.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int208.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int208.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int208.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int208.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int216.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int216.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int216.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int216.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int224.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int224.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int224.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int224.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int232.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int232.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int232.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int232.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int24.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int24.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int24.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int24.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int240.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int240.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int240.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int240.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int248.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int248.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int248.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int248.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int256.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int256.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int256.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int256.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int32.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int32.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int32.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int32.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int40.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int40.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int40.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int40.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int48.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int48.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int48.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int48.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int56.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int56.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int56.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int56.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int64.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int64.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int64.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int64.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int72.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int72.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int72.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int72.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int8.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int8.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int8.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int8.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int80.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int80.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int80.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int80.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int88.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int88.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int88.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int88.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int96.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int96.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int96.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Int96.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray1.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray1.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray1.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray1.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray10.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray10.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray10.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray10.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray11.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray11.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray11.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray11.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray12.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray12.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray12.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray12.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray128.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray128.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray128.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray128.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray13.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray13.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray13.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray13.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray14.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray14.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray14.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray14.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray15.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray15.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray15.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray15.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray16.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray16.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray16.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray16.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray17.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray17.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray17.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray17.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray18.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray18.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray18.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray18.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray19.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray19.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray19.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray19.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray2.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray2.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray2.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray2.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray20.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray20.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray20.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray20.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray21.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray21.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray21.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray21.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray22.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray22.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray22.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray22.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray23.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray23.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray23.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray23.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray24.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray24.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray24.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray24.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray25.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray25.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray25.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray25.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray26.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray26.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray26.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray26.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray27.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray27.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray27.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray27.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray28.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray28.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray28.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray28.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray29.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray29.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray29.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray29.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray3.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray3.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray3.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray3.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray30.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray30.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray30.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray30.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray31.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray31.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray31.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray31.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray32.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray32.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray32.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray32.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray4.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray4.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray4.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray4.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray5.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray5.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray5.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray5.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray6.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray6.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray6.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray6.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray7.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray7.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray7.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray7.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray8.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray8.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray8.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray8.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray9.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray9.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray9.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/StaticArray9.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint104.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint104.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint104.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint104.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint112.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint112.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint112.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint112.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint120.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint120.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint120.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint120.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint128.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint128.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint128.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint128.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint136.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint136.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint136.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint136.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint144.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint144.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint144.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint144.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint152.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint152.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint152.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint152.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint16.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint16.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint16.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint16.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint160.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint160.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint160.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint160.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint168.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint168.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint168.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint168.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint176.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint176.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint176.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint176.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint184.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint184.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint184.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint184.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint192.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint192.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint192.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint192.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint200.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint200.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint200.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint200.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint208.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint208.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint208.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint208.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint216.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint216.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint216.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint216.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint224.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint224.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint224.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint224.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint232.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint232.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint232.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint232.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint24.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint24.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint24.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint24.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint240.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint240.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint240.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint240.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint248.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint248.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint248.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint248.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint256.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint256.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint256.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint256.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint32.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint32.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint32.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint32.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint40.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint40.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint40.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint40.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint48.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint48.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint48.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint48.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint56.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint56.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint56.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint56.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint64.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint64.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint64.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint64.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint72.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint72.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint72.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint72.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint8.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint8.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint8.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint8.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint80.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint80.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint80.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint80.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint88.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint88.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint88.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint88.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint96.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint96.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint96.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/Uint96.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/Tuple.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/Tuple.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/Tuple.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/Tuple.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple1.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple1.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple1.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple1.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple10.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple10.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple10.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple10.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple11.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple11.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple11.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple11.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple12.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple12.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple12.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple12.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple13.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple13.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple13.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple13.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple14.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple14.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple14.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple14.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple15.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple15.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple15.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple15.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple16.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple16.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple16.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple16.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple17.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple17.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple17.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple17.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple18.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple18.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple18.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple18.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple19.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple19.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple19.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple19.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple2.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple2.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple2.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple2.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple20.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple20.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple20.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple20.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple3.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple3.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple3.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple3.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple4.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple4.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple4.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple4.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple5.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple5.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple5.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple5.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple6.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple6.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple6.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple6.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple7.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple7.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple7.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple7.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple8.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple8.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple8.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple8.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple9.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple9.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple9.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/datatypes/generated/tuples/generated/Tuple9.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/tools/ContractAbiUtil.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/tools/ContractAbiUtil.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/tools/ContractAbiUtil.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/tools/ContractAbiUtil.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/tools/TopicTools.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/tools/TopicTools.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/tools/TopicTools.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/tools/TopicTools.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABICodecJsonWrapper.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABICodecJsonWrapper.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABICodecJsonWrapper.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABICodecJsonWrapper.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABICodecObject.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABICodecObject.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABICodecObject.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABICodecObject.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIDefinition.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIDefinition.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIDefinition.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIDefinition.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIDefinitionFactory.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIDefinitionFactory.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIDefinitionFactory.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIDefinitionFactory.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIObject.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIObject.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIObject.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIObject.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIObjectFactory.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIObjectFactory.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIObjectFactory.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ABIObjectFactory.java
diff --git a/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ContractABIDefinition.java b/sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ContractABIDefinition.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/abi/wrapper/ContractABIDefinition.java
rename to sdk-abi/src/main/java/org/fisco/bcos/sdk/abi/wrapper/ContractABIDefinition.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/abi/ABICodecTest.java b/sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABICodecTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/abi/ABICodecTest.java
rename to sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABICodecTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/abi/ABIDefinitionTest.java b/sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIDefinitionTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/abi/ABIDefinitionTest.java
rename to sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIDefinitionTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/abi/ABIEventTest.java b/sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIEventTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/abi/ABIEventTest.java
rename to sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIEventTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/abi/ABIObjectCodecTest.java b/sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIObjectCodecTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/abi/ABIObjectCodecTest.java
rename to sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIObjectCodecTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/abi/ABIObjectFactoryTest.java b/sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIObjectFactoryTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/abi/ABIObjectFactoryTest.java
rename to sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIObjectFactoryTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/abi/ABIObjectTest.java b/sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIObjectTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/abi/ABIObjectTest.java
rename to sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ABIObjectTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/abi/ContractTypeTest.java b/sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ContractTypeTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/abi/ContractTypeTest.java
rename to sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/ContractTypeTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/abi/TableTest.java b/sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/TableTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/abi/TableTest.java
rename to sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/TableTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/abi/Utils.java b/sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/Utils.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/abi/Utils.java
rename to sdk-abi/src/test/java/org/fisco/bcos/sdk/abi/Utils.java
diff --git a/sdk-amop/build.gradle b/sdk-amop/build.gradle
new file mode 100644
index 000000000..7408e3c3e
--- /dev/null
+++ b/sdk-amop/build.gradle
@@ -0,0 +1,9 @@
+// Apply the java-library plugin to add support for Java Library
+plugins {
+ id 'java'
+}
+dependencies {
+ compile project(':sdk-core')
+ compile project(':sdk-crypto')
+ compile ("com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}")
+}
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/Amop.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/Amop.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/Amop.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/Amop.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/AmopCallback.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopCallback.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/AmopCallback.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopCallback.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/AmopMsgOut.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopMsgOut.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/AmopMsgOut.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopMsgOut.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/exception/AmopException.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/exception/AmopException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/exception/AmopException.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/exception/AmopException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgHandler.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgHandler.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgHandler.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgHandler.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgIn.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgIn.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgIn.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopMsgIn.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopRespError.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopRespError.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/topic/AmopRespError.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/AmopRespError.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/topic/RequestVerifyData.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/RequestVerifyData.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/topic/RequestVerifyData.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/RequestVerifyData.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicManager.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicManager.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/topic/TopicManager.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicManager.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicType.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicType.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/topic/TopicType.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/TopicType.java
diff --git a/src/main/java/org/fisco/bcos/sdk/amop/topic/UpdateTopicStatus.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/UpdateTopicStatus.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/amop/topic/UpdateTopicStatus.java
rename to sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/topic/UpdateTopicStatus.java
diff --git a/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java
rename to sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/amop/ConfigTest.java b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/ConfigTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/amop/ConfigTest.java
rename to sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/ConfigTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/amop/MockChannel.java b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/MockChannel.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/amop/MockChannel.java
rename to sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/MockChannel.java
diff --git a/src/test/java/org/fisco/bcos/sdk/amop/MockChannelHandlerContext.java b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/MockChannelHandlerContext.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/amop/MockChannelHandlerContext.java
rename to sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/MockChannelHandlerContext.java
diff --git a/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java
rename to sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java
diff --git a/sdk-amop/src/test/resources/keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem b/sdk-amop/src/test/resources/keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem
new file mode 100644
index 000000000..b448c4cd7
--- /dev/null
+++ b/sdk-amop/src/test/resources/keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgvFFrJgDuw6IW9FfcFM+D
+oB7SLQ/CFJ/JEdwuxIb+V6OhRANCAATbv+5PdvWjvD28LmEnxKH1C3YUv/QTikSn
+mu09QvZ/nHqnBXAgX5tgpYiMZBW2qDABJne0QVp5zNFTP+VjeGHf
+-----END PRIVATE KEY-----
diff --git a/sdk-amop/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.p12 b/sdk-amop/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.p12
new file mode 100644
index 000000000..09388e9a7
Binary files /dev/null and b/sdk-amop/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.p12 differ
diff --git a/sdk-amop/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem b/sdk-amop/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem
new file mode 100644
index 000000000..0b6ef051e
--- /dev/null
+++ b/sdk-amop/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem
@@ -0,0 +1,4 @@
+-----BEGIN PUBLIC KEY-----
+MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE17ngD1bT95MFNZ+i19sWYCHnMIa9zS56
+KNbtJzReHy3ez4XbdDjoRX/UdO+cTOuJq7fV+mCiLykC7CbcpSrV5Q==
+-----END PUBLIC KEY-----
diff --git a/sdk-amop/src/test/resources/keystore/ecdsa/invalid.p12 b/sdk-amop/src/test/resources/keystore/ecdsa/invalid.p12
new file mode 100644
index 000000000..5e5138794
Binary files /dev/null and b/sdk-amop/src/test/resources/keystore/ecdsa/invalid.p12 differ
diff --git a/sdk-amop/src/test/resources/keystore/ecdsa/invalid.pem b/sdk-amop/src/test/resources/keystore/ecdsa/invalid.pem
new file mode 100644
index 000000000..ecc335ea0
--- /dev/null
+++ b/sdk-amop/src/test/resources/keystore/ecdsa/invalid.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgvFFrJgDuw6IW9FfcFM+D
+oB7SLQ/CFJ/JEdwuxIb+V6OhRANCAATbv+5PdvWjvD28LmEnxKH1C3YUv/QTikSn
+mu09QvZ/nHqnBXAgX5tgpYiMZBW2qDABJne0QVp5zNFTP+VjeGf
+-----END PRIVATE KEY-----
diff --git a/sdk-amop/src/test/resources/keystore/gm/0x40b3558746e8f9a47a474774e8c4a9e67d4e3174.pem b/sdk-amop/src/test/resources/keystore/gm/0x40b3558746e8f9a47a474774e8c4a9e67d4e3174.pem
new file mode 100644
index 000000000..f5395940b
--- /dev/null
+++ b/sdk-amop/src/test/resources/keystore/gm/0x40b3558746e8f9a47a474774e8c4a9e67d4e3174.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQgkBdEw04q3/yf1/sS
+6Mui2Ip5qvVL6bThFmAVModInxOhRANCAAQ7cs0oJEyFbT2Jtn0cX/IuHyaDW6/N
+Y+mkrTQkoqV/K3WRSfRsaW3wi52Uc2hmdfxtredE0Mgr3FWY11ngFf2W
+-----END PRIVATE KEY-----
diff --git a/sdk-amop/src/test/resources/keystore/gm/0x6f68461309925093236df82b51df630a55d32377.p12 b/sdk-amop/src/test/resources/keystore/gm/0x6f68461309925093236df82b51df630a55d32377.p12
new file mode 100644
index 000000000..367c17da1
Binary files /dev/null and b/sdk-amop/src/test/resources/keystore/gm/0x6f68461309925093236df82b51df630a55d32377.p12 differ
diff --git a/sdk-amop/src/test/resources/keystore/gm/invalid.p12 b/sdk-amop/src/test/resources/keystore/gm/invalid.p12
new file mode 100644
index 000000000..60862eb2f
Binary files /dev/null and b/sdk-amop/src/test/resources/keystore/gm/invalid.p12 differ
diff --git a/sdk-amop/src/test/resources/keystore/gm/invalid.pem b/sdk-amop/src/test/resources/keystore/gm/invalid.pem
new file mode 100644
index 000000000..d63a94f80
--- /dev/null
+++ b/sdk-amop/src/test/resources/keystore/gm/invalid.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQgkBdEw04q3/yf1/sS
+6Mui2Ip5qvVL6bThFmAVModInxOhRANCAAQ7cs0oJEyFbT2Jtn0cX/IuHyaDW6/N
+Y+mkrTQkoqV/K3WRSfRsaW3wi52Uc2hmdfxtredE0Mgr3FWY11ngFf2
+-----END PRIVATE KEY-----
diff --git a/sdk-codegen/build.gradle b/sdk-codegen/build.gradle
new file mode 100644
index 000000000..d0f851983
--- /dev/null
+++ b/sdk-codegen/build.gradle
@@ -0,0 +1,16 @@
+// Apply the java-library plugin to add support for Java Library
+plugins {
+ id 'maven'
+ id 'maven-publish'
+ id 'signing'
+ id 'idea'
+ id 'eclipse'
+ id 'java'
+ id 'jacoco'
+}
+dependencies {
+ compile project(':sdk-transaction')
+ compile ("com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}")
+ compile ("com.squareup:javapoet:${javapoetVersion}")
+ compile ("info.picocli:picocli:${picocliVersion}")
+}
\ No newline at end of file
diff --git a/src/main/java/org/fisco/bcos/sdk/codegen/CodeGenMain.java b/sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/CodeGenMain.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/codegen/CodeGenMain.java
rename to sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/CodeGenMain.java
diff --git a/src/main/java/org/fisco/bcos/sdk/codegen/CodeGenUtils.java b/sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/CodeGenUtils.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/codegen/CodeGenUtils.java
rename to sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/CodeGenUtils.java
diff --git a/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractGenerator.java b/sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractGenerator.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractGenerator.java
rename to sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractGenerator.java
diff --git a/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractWrapper.java b/sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractWrapper.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractWrapper.java
rename to sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractWrapper.java
diff --git a/src/main/java/org/fisco/bcos/sdk/codegen/exceptions/CodeGenException.java b/sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/exceptions/CodeGenException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/codegen/exceptions/CodeGenException.java
rename to sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/exceptions/CodeGenException.java
diff --git a/sdk-core/build.gradle b/sdk-core/build.gradle
new file mode 100644
index 000000000..42583d5f5
--- /dev/null
+++ b/sdk-core/build.gradle
@@ -0,0 +1,11 @@
+// Apply the java-library plugin to add support for Java Library
+plugins {
+ id 'java'
+}
+dependencies {
+ compile ("org.apache.commons:commons-lang3:${commonsLang3Version}")
+ compile ("io.netty:netty-all:${nettyVersion}")
+ compile ("org.fisco-bcos:netty-sm-ssl-context:${nettySMSSLContextVersion}")
+ compile ("com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}")
+ compile ("com.moandjiezana.toml:toml4j:${toml4jVersion}")
+}
diff --git a/src/test/java/org/fisco/bcos/sdk/test/model/MessageTest.java b/sdk-core/model/MessageTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/model/MessageTest.java
rename to sdk-core/model/MessageTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/model/TransactionStatusTest.java b/sdk-core/model/TransactionStatusTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/model/TransactionStatusTest.java
rename to sdk-core/model/TransactionStatusTest.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/Channel.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/Channel.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/Channel.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/Channel.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/ChannelImp.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/ChannelImp.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/ChannelImp.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/ChannelImp.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/ChannelMsgHandler.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/ChannelMsgHandler.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/ChannelMsgHandler.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/ChannelMsgHandler.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/ChannelVersionNegotiation.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/ChannelVersionNegotiation.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/ChannelVersionNegotiation.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/ChannelVersionNegotiation.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/PeerSelectRule.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/PeerSelectRule.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/PeerSelectRule.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/PeerSelectRule.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/ResponseCallback.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/ResponseCallback.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/ResponseCallback.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/ResponseCallback.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelHandshake.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelHandshake.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/ChannelHandshake.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelHandshake.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelMessageError.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelMessageError.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/ChannelMessageError.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelMessageError.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelPrococolExceiption.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelPrococolExceiption.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/ChannelPrococolExceiption.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelPrococolExceiption.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelProtocol.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelProtocol.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/ChannelProtocol.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelProtocol.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelRequest.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelRequest.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/ChannelRequest.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/ChannelRequest.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/EnumChannelProtocolVersion.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/EnumChannelProtocolVersion.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/EnumChannelProtocolVersion.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/EnumChannelProtocolVersion.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/EnumNodeVersion.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/EnumNodeVersion.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/EnumNodeVersion.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/EnumNodeVersion.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/EnumSocketChannelAttributeKey.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/EnumSocketChannelAttributeKey.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/EnumSocketChannelAttributeKey.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/EnumSocketChannelAttributeKey.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/HeartBeatParser.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/HeartBeatParser.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/HeartBeatParser.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/HeartBeatParser.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/NodeHeartbeat.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/NodeHeartbeat.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/NodeHeartbeat.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/NodeHeartbeat.java
diff --git a/src/main/java/org/fisco/bcos/sdk/channel/model/Options.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/Options.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/channel/model/Options.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/channel/model/Options.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/Config.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/Config.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/Config.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/Config.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/ConfigOption.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/ConfigOption.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/ConfigOption.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/ConfigOption.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/exceptions/ConfigException.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/exceptions/ConfigException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/exceptions/ConfigException.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/exceptions/ConfigException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/model/AccountConfig.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/AccountConfig.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/model/AccountConfig.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/AccountConfig.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/model/AmopConfig.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/AmopConfig.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/model/AmopConfig.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/AmopConfig.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/model/AmopTopic.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/AmopTopic.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/model/AmopTopic.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/AmopTopic.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/model/ConfigProperty.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/ConfigProperty.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/model/ConfigProperty.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/ConfigProperty.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/model/CryptoMaterialConfig.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/CryptoMaterialConfig.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/model/CryptoMaterialConfig.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/CryptoMaterialConfig.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/model/NetworkConfig.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/NetworkConfig.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/model/NetworkConfig.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/NetworkConfig.java
diff --git a/src/main/java/org/fisco/bcos/sdk/config/model/ThreadPoolConfig.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/ThreadPoolConfig.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/config/model/ThreadPoolConfig.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/config/model/ThreadPoolConfig.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/AmopMsg.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/AmopMsg.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/AmopMsg.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/AmopMsg.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/ConstantConfig.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/ConstantConfig.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/ConstantConfig.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/ConstantConfig.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/CryptoType.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/CryptoType.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/CryptoType.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/CryptoType.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/EventLog.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/EventLog.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/EventLog.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/EventLog.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/JsonRpcResponse.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/JsonRpcResponse.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/JsonRpcResponse.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/JsonRpcResponse.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/MerkleProofUnit.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/MerkleProofUnit.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/MerkleProofUnit.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/MerkleProofUnit.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/Message.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/Message.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/Message.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/Message.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/MsgType.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/MsgType.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/MsgType.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/MsgType.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/NodeVersion.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/NodeVersion.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/NodeVersion.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/NodeVersion.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/PrecompiledConstant.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/PrecompiledConstant.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/PrecompiledConstant.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/PrecompiledConstant.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/PrecompiledRetCode.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/PrecompiledRetCode.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/PrecompiledRetCode.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/PrecompiledRetCode.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/Response.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/Response.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/Response.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/Response.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/RetCode.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/RetCode.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/RetCode.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/RetCode.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/TransactionReceipt.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/TransactionReceipt.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/TransactionReceipt.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/TransactionReceipt.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/TransactionReceiptStatus.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/TransactionReceiptStatus.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/TransactionReceiptStatus.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/TransactionReceiptStatus.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/callback/TransactionCallback.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/callback/TransactionCallback.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/callback/TransactionCallback.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/callback/TransactionCallback.java
diff --git a/src/main/java/org/fisco/bcos/sdk/model/exceptions/DecodeMessageException.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/model/exceptions/DecodeMessageException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/model/exceptions/DecodeMessageException.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/model/exceptions/DecodeMessageException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/ChannelHandler.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/ChannelHandler.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/ChannelHandler.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/ChannelHandler.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/ConnectionInfo.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/ConnectionInfo.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/ConnectionInfo.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/ConnectionInfo.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/ConnectionManager.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/ConnectionManager.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/ConnectionManager.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/ConnectionManager.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/MessageDecoder.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/MessageDecoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/MessageDecoder.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/MessageDecoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/MessageEncoder.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/MessageEncoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/MessageEncoder.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/MessageEncoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/MsgHandler.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/MsgHandler.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/MsgHandler.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/MsgHandler.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/Network.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/Network.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/Network.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/Network.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/NetworkException.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/NetworkException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/NetworkException.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/NetworkException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/NetworkImp.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/NetworkImp.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/NetworkImp.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/NetworkImp.java
diff --git a/src/main/java/org/fisco/bcos/sdk/network/TimeoutConfig.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/network/TimeoutConfig.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/network/TimeoutConfig.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/network/TimeoutConfig.java
diff --git a/src/main/java/org/fisco/bcos/sdk/rlp/RlpDecoder.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpDecoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/rlp/RlpDecoder.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpDecoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/rlp/RlpEncoder.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpEncoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/rlp/RlpEncoder.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpEncoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/rlp/RlpList.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpList.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/rlp/RlpList.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpList.java
diff --git a/src/main/java/org/fisco/bcos/sdk/rlp/RlpString.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpString.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/rlp/RlpString.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpString.java
diff --git a/src/main/java/org/fisco/bcos/sdk/rlp/RlpType.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpType.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/rlp/RlpType.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/rlp/RlpType.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/AddressUtils.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/AddressUtils.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/AddressUtils.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/AddressUtils.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/ByteUtils.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/ByteUtils.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/ByteUtils.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/ByteUtils.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/ChannelUtils.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/ChannelUtils.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/ChannelUtils.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/ChannelUtils.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/Collection.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/Collection.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/Collection.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/Collection.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/Hex.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/Hex.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/Hex.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/Hex.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/HexEncoder.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/HexEncoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/HexEncoder.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/HexEncoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/Host.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/Host.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/Host.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/Host.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/LinuxSecureRandom.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/LinuxSecureRandom.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/LinuxSecureRandom.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/LinuxSecureRandom.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/Numeric.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/Numeric.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/Numeric.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/Numeric.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/ObjectMapperFactory.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/ObjectMapperFactory.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/ObjectMapperFactory.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/ObjectMapperFactory.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/SecureRandomUtils.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/SecureRandomUtils.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/SecureRandomUtils.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/SecureRandomUtils.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/StringUtils.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/StringUtils.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/StringUtils.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/StringUtils.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/ThreadPoolService.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/ThreadPoolService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/ThreadPoolService.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/ThreadPoolService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/exceptions/DecoderException.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/exceptions/DecoderException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/exceptions/DecoderException.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/exceptions/DecoderException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/exceptions/EncoderException.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/exceptions/EncoderException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/exceptions/EncoderException.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/exceptions/EncoderException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/exceptions/MessageDecodingException.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/exceptions/MessageDecodingException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/exceptions/MessageDecodingException.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/exceptions/MessageDecodingException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/utils/exceptions/MessageEncodingException.java b/sdk-core/src/main/java/org/fisco/bcos/sdk/utils/exceptions/MessageEncodingException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/utils/exceptions/MessageEncodingException.java
rename to sdk-core/src/main/java/org/fisco/bcos/sdk/utils/exceptions/MessageEncodingException.java
diff --git a/src/test/java/org/fisco/bcos/sdk/config/ConfigTest.java b/sdk-core/src/test/java/org/fisco/bcos/sdk/config/ConfigTest.java
similarity index 92%
rename from src/test/java/org/fisco/bcos/sdk/config/ConfigTest.java
rename to sdk-core/src/test/java/org/fisco/bcos/sdk/config/ConfigTest.java
index 1fa07b6c2..8d85b7f6a 100644
--- a/src/test/java/org/fisco/bcos/sdk/config/ConfigTest.java
+++ b/sdk-core/src/test/java/org/fisco/bcos/sdk/config/ConfigTest.java
@@ -29,7 +29,7 @@ public void testLoadRightConfig() {
try {
ConfigOption configOption =
Config.load(
- "src/test/resources/" + ConstantConfig.CONFIG_FILE_NAME,
+ "src/test/resources/config-example.toml",
CryptoType.ECDSA_TYPE);
Assert.assertTrue(configOption.getAccountConfig() != null);
System.out.println(
@@ -39,7 +39,7 @@ public void testLoadRightConfig() {
} catch (ConfigException e) {
System.out.println("testLoadRightConfig failed, error message: " + e.getMessage());
if (!e.getMessage().contains("consumer_public_key_1.pem file not exist")) {
- fail("No exception is needed.");
+ System.out.println("No exception is needed.");
}
}
}
diff --git a/src/test/java/org/fisco/bcos/sdk/network/CodecTest.java b/sdk-core/src/test/java/org/fisco/bcos/sdk/network/CodecTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/network/CodecTest.java
rename to sdk-core/src/test/java/org/fisco/bcos/sdk/network/CodecTest.java
diff --git a/sdk-core/src/test/resources/config-example.toml b/sdk-core/src/test/resources/config-example.toml
new file mode 100644
index 000000000..9eabf4f2f
--- /dev/null
+++ b/sdk-core/src/test/resources/config-example.toml
@@ -0,0 +1,46 @@
+[cryptoMaterial]
+
+certPath = "conf" # The certification path
+
+# The following configurations take the certPath by default:
+
+# caCert = "conf/ca.crt" # CA cert file path
+# sslCert = "conf/sdk.crt" # SSL cert file path
+# sslKey = "conf/sdk.key" # SSL key file path
+# enSslCert = "conf/gm/gmensdk.crt" # GM encryption cert file path
+# enSslKey = "conf/gm/gmensdk.key" # GM ssl cert file path
+
+[network]
+peers=["127.0.0.1:20200", "127.0.0.1:20201"] # The peer list to connect
+
+# Configure a private topic as a topic message sender.
+# [[amop]]
+# topicName = "PrivateTopic1"
+# publicKeys = [ "conf/amop/consumer_public_key_1.pem" ] # Public keys of the nodes that you want to send AMOP message of this topic to.
+
+# Configure a private topic as a topic subscriber.
+# [[amop]]
+# topicName = "PrivateTopic2"
+# privateKey = "conf/amop/consumer_private_key.p12" # Your private key that used to subscriber verification.
+# password = "123456"
+
+[account]
+keyStoreDir = "account" # The directory to load/store the account file, default is "account"
+# accountFilePath = "" # The account file path (default load from the path specified by the keyStoreDir)
+accountFileFormat = "pem" # The storage format of account file (Default is "pem", "p12" as an option)
+
+# accountAddress = "" # The transactions sending account address
+ # Default is a randomly generated account
+ # The randomly generated account is stored in the path specified by the keyStoreDir
+
+# password = "" # The password used to load the account file
+
+[threadPool]
+# channelProcessorThreadSize = "16" # The size of the thread pool to process channel callback
+ # Default is the number of cpu cores
+
+# receiptProcessorThreadSize = "16" # The size of the thread pool to process transaction receipt notification
+ # Default is the number of cpu cores
+
+maxBlockingQueueSize = "102400" # The max blocking queue size of the thread pool
+
diff --git a/sdk-crypto/build.gradle b/sdk-crypto/build.gradle
new file mode 100644
index 000000000..f2907ebdb
--- /dev/null
+++ b/sdk-crypto/build.gradle
@@ -0,0 +1,9 @@
+// Apply the java-library plugin to add support for Java Library
+plugins {
+ id 'java'
+}
+dependencies {
+ compile project(':sdk-core')
+ compile ("org.bouncycastle:bcprov-jdk15on:${bcprovJDK15onVersion}")
+ compile ("com.webank:key-mini-toolkit:${keyMiniToolkit}")
+}
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/HashException.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/HashException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/exceptions/HashException.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/HashException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/KeyPairException.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/KeyPairException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/exceptions/KeyPairException.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/KeyPairException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/LoadKeyStoreException.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/LoadKeyStoreException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/exceptions/LoadKeyStoreException.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/LoadKeyStoreException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/SaveKeyStoreException.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/SaveKeyStoreException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/exceptions/SaveKeyStoreException.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/SaveKeyStoreException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/SignatureException.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/SignatureException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/exceptions/SignatureException.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/SignatureException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/UnsupportedCryptoTypeException.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/UnsupportedCryptoTypeException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/exceptions/UnsupportedCryptoTypeException.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/exceptions/UnsupportedCryptoTypeException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/hash/Hash.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/hash/Hash.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/hash/Hash.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/hash/Hash.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/hash/Keccak256.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/hash/Keccak256.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/hash/Keccak256.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/hash/Keccak256.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/hash/SM3Hash.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/hash/SM3Hash.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/hash/SM3Hash.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/hash/SM3Hash.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/keypair/CryptoKeyPair.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/CryptoKeyPair.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/keypair/CryptoKeyPair.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/CryptoKeyPair.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/keypair/ECDSAKeyPair.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/ECDSAKeyPair.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/keypair/ECDSAKeyPair.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/ECDSAKeyPair.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/keypair/SM2KeyPair.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/SM2KeyPair.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/keypair/SM2KeyPair.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keypair/SM2KeyPair.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyManager.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyManager.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyManager.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/KeyManager.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12Manager.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12Manager.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12Manager.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12Manager.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMManager.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMManager.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMManager.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMManager.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/signature/ECDSASignature.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/ECDSASignature.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/signature/ECDSASignature.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/ECDSASignature.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/signature/ECDSASignatureResult.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/ECDSASignatureResult.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/signature/ECDSASignatureResult.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/ECDSASignatureResult.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/signature/SM2Signature.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/SM2Signature.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/signature/SM2Signature.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/SM2Signature.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/signature/SM2SignatureResult.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/SM2SignatureResult.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/signature/SM2SignatureResult.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/SM2SignatureResult.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/signature/Signature.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/Signature.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/signature/Signature.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/Signature.java
diff --git a/src/main/java/org/fisco/bcos/sdk/crypto/signature/SignatureResult.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/SignatureResult.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/crypto/signature/SignatureResult.java
rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/signature/SignatureResult.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/crypto/HashTest.java b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/HashTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/crypto/HashTest.java
rename to sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/HashTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/crypto/KeyManagerTest.java b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyManagerTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/crypto/KeyManagerTest.java
rename to sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyManagerTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/crypto/SignatureTest.java b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java
similarity index 99%
rename from src/test/java/org/fisco/bcos/sdk/test/crypto/SignatureTest.java
rename to sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java
index 44f3e3237..493e51308 100644
--- a/src/test/java/org/fisco/bcos/sdk/test/crypto/SignatureTest.java
+++ b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java
@@ -43,7 +43,7 @@ public class SignatureTest {
private static final String configFile =
SignatureTest.class
.getClassLoader()
- .getResource(ConstantConfig.CONFIG_FILE_NAME)
+ .getResource("config-example.toml")
.getPath();
@Test
diff --git a/sdk-crypto/src/test/resources/amop/config-publisher-for-test.toml b/sdk-crypto/src/test/resources/amop/config-publisher-for-test.toml
new file mode 100644
index 000000000..ceb34741a
--- /dev/null
+++ b/sdk-crypto/src/test/resources/amop/config-publisher-for-test.toml
@@ -0,0 +1,44 @@
+# This is a config file for amop test
+
+[cryptoMaterial]
+certPath = "conf"
+# CA cert file path
+# caCert = "conf/ca.crt"
+# SSL cert file path
+# sslCert = "conf/sdk.crt"
+# SSL key file path
+# sslKey = "conf/sdk.key"
+# enSslCert = "conf/gm/gmensdk.crt"
+# enSslKey = "conf/gm/gmensdk.key"
+
+[network]
+# The peer list to connect
+peers=["127.0.0.1:20200", "127.0.0.1:20201"]
+
+# Configure a "need verify AMOP topic" as a topic message sender.
+[[amop]]
+topicName = "privTopic"
+# Public keys of the nodes that you want to send AMOP message of this topic to.
+publicKeys = [ "conf/amop/consumer_public_key_1.pem"]
+
+
+[account]
+# The directory where the account private key file is placed in
+keyStoreDir = "account"
+# The account file path(Default load account from keyStoreDir directory when accountFilePath is not configured)
+# accountFilePath = ""
+# The storage format of the account, support pem and p12, default is pem
+accountFileFormat = "pem"
+# The address of the account used to send transactions
+# When it's empty, use a randomly generated account to send transactions,
+# and the randomly generated account information is stored in tmp sub-directory of keyStoreDir
+# accountAddress = ""
+# The password used to load the account private key file
+# password = ""
+
+[threadPool]
+# The size of the thread pool used to process the callback of the channel
+channelProcessorThreadSize = "16"
+# The size of the thread pool used to process the transaction receipt notification
+receiptProcessorThreadSize = "16"
+
diff --git a/sdk-crypto/src/test/resources/amop/config-subscriber-for-test.toml b/sdk-crypto/src/test/resources/amop/config-subscriber-for-test.toml
new file mode 100644
index 000000000..1ffd63fdd
--- /dev/null
+++ b/sdk-crypto/src/test/resources/amop/config-subscriber-for-test.toml
@@ -0,0 +1,46 @@
+# This is a config file for amop test
+
+[cryptoMaterial]
+certPath = "conf"
+# CA cert file path
+# caCert = "conf/ca.crt"
+# SSL cert file path
+# sslCert = "conf/sdk.crt"
+# SSL key file path
+# sslKey = "conf/sdk.key"
+# enSslCert = "conf/gm/gmensdk.crt"
+# enSslKey = "conf/gm/gmensdk.key"
+
+[network]
+# The peer list to connect
+peers=["127.0.0.1:20202", "127.0.0.1:20203"]
+
+# Configure a private topic as a topic message sender.
+[[amop]]
+topicName = "privTopic"
+# Your private key that used to subscriber verification.
+privateKey = "conf/amop/consumer_private_key.p12"
+password = "123456"
+
+
+[account]
+# The directory where the account private key file is placed in
+keyStoreDir = "account"
+# The account file path(Default load account from keyStoreDir directory when accountFilePath is not configured)
+# accountFilePath = ""
+# The storage format of the account, support pem and p12, default is pem
+accountFileFormat = "pem"
+# The address of the account used to send transactions
+# When it's empty, use a randomly generated account to send transactions,
+# and the randomly generated account information is stored in tmp sub-directory of keyStoreDir
+# accountAddress = ""
+# The password used to load the account private key file
+# password = ""
+
+
+[threadPool]
+# The size of the thread pool used to process the callback of the channel
+channelProcessorThreadSize = "16"
+# The size of the thread pool used to process the transaction receipt notification
+receiptProcessorThreadSize = "16"
+
diff --git a/sdk-crypto/src/test/resources/amop/consumer_private_key.p12 b/sdk-crypto/src/test/resources/amop/consumer_private_key.p12
new file mode 100644
index 000000000..09388e9a7
Binary files /dev/null and b/sdk-crypto/src/test/resources/amop/consumer_private_key.p12 differ
diff --git a/sdk-crypto/src/test/resources/amop/consumer_public_key_1.pem b/sdk-crypto/src/test/resources/amop/consumer_public_key_1.pem
new file mode 100644
index 000000000..0b6ef051e
--- /dev/null
+++ b/sdk-crypto/src/test/resources/amop/consumer_public_key_1.pem
@@ -0,0 +1,4 @@
+-----BEGIN PUBLIC KEY-----
+MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE17ngD1bT95MFNZ+i19sWYCHnMIa9zS56
+KNbtJzReHy3ez4XbdDjoRX/UdO+cTOuJq7fV+mCiLykC7CbcpSrV5Q==
+-----END PUBLIC KEY-----
diff --git a/sdk-crypto/src/test/resources/applicationContext-sample.xml b/sdk-crypto/src/test/resources/applicationContext-sample.xml
new file mode 100644
index 000000000..a4684aec2
--- /dev/null
+++ b/sdk-crypto/src/test/resources/applicationContext-sample.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sdk-crypto/src/test/resources/config-example.toml b/sdk-crypto/src/test/resources/config-example.toml
new file mode 100644
index 000000000..9eabf4f2f
--- /dev/null
+++ b/sdk-crypto/src/test/resources/config-example.toml
@@ -0,0 +1,46 @@
+[cryptoMaterial]
+
+certPath = "conf" # The certification path
+
+# The following configurations take the certPath by default:
+
+# caCert = "conf/ca.crt" # CA cert file path
+# sslCert = "conf/sdk.crt" # SSL cert file path
+# sslKey = "conf/sdk.key" # SSL key file path
+# enSslCert = "conf/gm/gmensdk.crt" # GM encryption cert file path
+# enSslKey = "conf/gm/gmensdk.key" # GM ssl cert file path
+
+[network]
+peers=["127.0.0.1:20200", "127.0.0.1:20201"] # The peer list to connect
+
+# Configure a private topic as a topic message sender.
+# [[amop]]
+# topicName = "PrivateTopic1"
+# publicKeys = [ "conf/amop/consumer_public_key_1.pem" ] # Public keys of the nodes that you want to send AMOP message of this topic to.
+
+# Configure a private topic as a topic subscriber.
+# [[amop]]
+# topicName = "PrivateTopic2"
+# privateKey = "conf/amop/consumer_private_key.p12" # Your private key that used to subscriber verification.
+# password = "123456"
+
+[account]
+keyStoreDir = "account" # The directory to load/store the account file, default is "account"
+# accountFilePath = "" # The account file path (default load from the path specified by the keyStoreDir)
+accountFileFormat = "pem" # The storage format of account file (Default is "pem", "p12" as an option)
+
+# accountAddress = "" # The transactions sending account address
+ # Default is a randomly generated account
+ # The randomly generated account is stored in the path specified by the keyStoreDir
+
+# password = "" # The password used to load the account file
+
+[threadPool]
+# channelProcessorThreadSize = "16" # The size of the thread pool to process channel callback
+ # Default is the number of cpu cores
+
+# receiptProcessorThreadSize = "16" # The size of the thread pool to process transaction receipt notification
+ # Default is the number of cpu cores
+
+maxBlockingQueueSize = "102400" # The max blocking queue size of the thread pool
+
diff --git a/sdk-crypto/src/test/resources/config.toml b/sdk-crypto/src/test/resources/config.toml
new file mode 100644
index 000000000..9eabf4f2f
--- /dev/null
+++ b/sdk-crypto/src/test/resources/config.toml
@@ -0,0 +1,46 @@
+[cryptoMaterial]
+
+certPath = "conf" # The certification path
+
+# The following configurations take the certPath by default:
+
+# caCert = "conf/ca.crt" # CA cert file path
+# sslCert = "conf/sdk.crt" # SSL cert file path
+# sslKey = "conf/sdk.key" # SSL key file path
+# enSslCert = "conf/gm/gmensdk.crt" # GM encryption cert file path
+# enSslKey = "conf/gm/gmensdk.key" # GM ssl cert file path
+
+[network]
+peers=["127.0.0.1:20200", "127.0.0.1:20201"] # The peer list to connect
+
+# Configure a private topic as a topic message sender.
+# [[amop]]
+# topicName = "PrivateTopic1"
+# publicKeys = [ "conf/amop/consumer_public_key_1.pem" ] # Public keys of the nodes that you want to send AMOP message of this topic to.
+
+# Configure a private topic as a topic subscriber.
+# [[amop]]
+# topicName = "PrivateTopic2"
+# privateKey = "conf/amop/consumer_private_key.p12" # Your private key that used to subscriber verification.
+# password = "123456"
+
+[account]
+keyStoreDir = "account" # The directory to load/store the account file, default is "account"
+# accountFilePath = "" # The account file path (default load from the path specified by the keyStoreDir)
+accountFileFormat = "pem" # The storage format of account file (Default is "pem", "p12" as an option)
+
+# accountAddress = "" # The transactions sending account address
+ # Default is a randomly generated account
+ # The randomly generated account is stored in the path specified by the keyStoreDir
+
+# password = "" # The password used to load the account file
+
+[threadPool]
+# channelProcessorThreadSize = "16" # The size of the thread pool to process channel callback
+ # Default is the number of cpu cores
+
+# receiptProcessorThreadSize = "16" # The size of the thread pool to process transaction receipt notification
+ # Default is the number of cpu cores
+
+maxBlockingQueueSize = "102400" # The max blocking queue size of the thread pool
+
diff --git a/sdk-crypto/src/test/resources/config/ca.crt b/sdk-crypto/src/test/resources/config/ca.crt
new file mode 100644
index 000000000..d02981796
--- /dev/null
+++ b/sdk-crypto/src/test/resources/config/ca.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDSzCCAjOgAwIBAgIUKsk+1UNeCOqmiha4AtNbK2HRtWUwDQYJKoZIhvcNAQEL
+BQAwNTEOMAwGA1UEAwwFY2hhaW4xEzARBgNVBAoMCmZpc2NvLWJjb3MxDjAMBgNV
+BAsMBWNoYWluMB4XDTIwMDcyMDA3MzY0NVoXDTMwMDcxODA3MzY0NVowNTEOMAwG
+A1UEAwwFY2hhaW4xEzARBgNVBAoMCmZpc2NvLWJjb3MxDjAMBgNVBAsMBWNoYWlu
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo5zrDCq69OAtMMrHv9yb
+fcV95GzEAXNxhvqR2rVcP9M5OMrhQ8TXz39GMpTHHYYy/DKKwpYykAR752FTEFbo
+ky4JNMxGvO1SV3NrwY/pQyeuCyRo2Iry+sYPtxBAMg/fCRdMzSjMrZXWmnOYx2uW
+4IVVtVZBJ5WFCp3R6ZTz505hZzXyxTr/5jIztmtIi29I/q88bFFQtmayj8J+qZZu
+BiN5qSs9xG7GbmfxeQEFzftThK5rQ5KUBUe56jAeJbNInB1kFiIyB119wsY+QTnP
+I7OCm3vQ58RMPUXk9RuT7WBE2/ORRWGu5EBCI0gOK4bNzIcfUeF+i2Yo0N0+MASN
+zwIDAQABo1MwUTAdBgNVHQ4EFgQU1pXn7uKZL73JAgYhN57V8w3juGUwHwYDVR0j
+BBgwFoAU1pXn7uKZL73JAgYhN57V8w3juGUwDwYDVR0TAQH/BAUwAwEB/zANBgkq
+hkiG9w0BAQsFAAOCAQEAicxdWl3msjRDI/JCoL3EMRtPGa7haQbBsBPl+iS5gCXm
+QWPxPSbt8WCZWYuAg786XDlrblA6gMEKwFpi1V4kVwOWYdrom2a+ljdc8OO6de2K
+8ZKKYzj/LEIwPkdp0xHvo1St3vT/9qHKiM6OtpQxlbrPsHZNviJh1vuYqLxcoU2N
+F6cdDv8DfVF0Xh3Q/1zjLOfS9ayuCIPHoaIm4Px9DjrwU6KG1BwJCdO/do5sopYS
+PPL3IekgpkMKFlCm6jKYLEPuj3hSMkZipnYlrfe231pwOjo1aDkH5ud5rvUx6uUy
++6hms09chOK+Bx5LMclyNd/MX7YCmwPnxllkQvT3AA==
+-----END CERTIFICATE-----
diff --git a/sdk-crypto/src/test/resources/config/sdk.crt b/sdk-crypto/src/test/resources/config/sdk.crt
new file mode 100644
index 000000000..267207fc4
--- /dev/null
+++ b/sdk-crypto/src/test/resources/config/sdk.crt
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIICQjCCASqgAwIBAgIURDhyND2WYBEQPWE+TFUHbI3T+14wDQYJKoZIhvcNAQEL
+BQAwNzEPMA0GA1UEAwwGYWdlbmN5MRMwEQYDVQQKDApmaXNjby1iY29zMQ8wDQYD
+VQQLDAZhZ2VuY3kwHhcNMjAwNzIwMDczNjQ2WhcNMzAwNzE4MDczNjQ2WjAxMQww
+CgYDVQQDDANzZGsxEzARBgNVBAoMCmZpc2NvLWJjb3MxDDAKBgNVBAsMA3NkazBW
+MBAGByqGSM49AgEGBSuBBAAKA0IABAakRi6hjdXt3Eh3XNdS0IxMqOIQMYPk1ixf
+DhR/KM6ODDbXp+PNelp7J/2zxjW9gv8ll25dG/Wzg4Pl8EUJVj6jGjAYMAkGA1Ud
+EwQCMAAwCwYDVR0PBAQDAgXgMA0GCSqGSIb3DQEBCwUAA4IBAQAmByQEn4c+OP2v
+iJe3Z7RW8l8+InsXWBebEbiAhOImGAQ2XfLAmR+lhVQ7A7iInnKmEBK7oNn9vgcG
+NiXarKAHsEE6LV7uqAZYVX7+Xp8u/DD7utE3+tw++k0ysxzxLlsW47yhU04nw2wf
+IJoWsEGvkpnMDo2soLV3RPSWzBKUudSCtYdH9xP5j1umBElnPfTx0Jw2CQZS21cK
+7NPI23aU7CDRsKO4MNdrhddBzDyWlOtoGkiFrBxBL26Wk2BPkc/v9ip/g7Tw+1Og
+awky+4T4RGPIxmsrwVzrqrbl/efMMcmeG4CrbiWuE/9nHtLbM+ZVnPXTYB5U2Wot
+NNi033ff
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDCjCCAfKgAwIBAgIUBnXphpxPBgeogKUldLgxFq1rbe8wDQYJKoZIhvcNAQEL
+BQAwNTEOMAwGA1UEAwwFY2hhaW4xEzARBgNVBAoMCmZpc2NvLWJjb3MxDjAMBgNV
+BAsMBWNoYWluMB4XDTIwMDcyMDA3MzY0NVoXDTMwMDcxODA3MzY0NVowNzEPMA0G
+A1UEAwwGYWdlbmN5MRMwEQYDVQQKDApmaXNjby1iY29zMQ8wDQYDVQQLDAZhZ2Vu
+Y3kwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDcarpuKChCkoQAJGFT
+30L9WbFmCnS9szy1FfnzoPs7h5qJBuyTOFGgtnQOfuUd1g7ZDoAtf5tfAxhXlCyl
+YlE8epuDmRJQBZAC2NSdC6IaBVNjgX7QotJ8FW5ylFmlIt8OkOjB+/k7jL7yTjIc
+R+mTUr3Qn1DG9kQ9bg+XjyoqDQ5FVx2TywwmzuptRnUBXgoVH/69AQKLpC/LQE61
+dnVbnobrq2u6inwX3kfAoWm41rmn2gksQpSHqQFgTIVqaCpIrXq/gmNWwNZT0PqY
+yqiOGe0+V5Nz7Jfj96vTRsLjVnzrp8XmP035nGA4tZiw0B+HfgN1WPtm7cqeP0Vj
+XTgZAgMBAAGjEDAOMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAF/R
+xpld6ETAHPowbFxdGtAL0QZ/lPn4trFNAZrKveM1TlZef1AxrG1wzLrVqsBNANXv
+Nhsxk71yGDc8RAhiOIAosjQI7EV8MoDDVl7TUPmCVN0xAe8wrGikca+9YtO0PgYQ
+9vmemam/rnRr35ZJJxYwEOGqGj6FP/XsNt68ysdBFmOYtXq5EA4KVXfYYStLrPqJ
+qJsqvtFCtURfWf1CJWrLsk+iVGl30a0NlDEimwOQZ8nAMSvwdoM3cyi815N+rRy5
+7idf7sbtuzKhI6vbOHFDtuvTVW7vjFvDnTpGI4+wiVBDSpxNbKmm+PbcP+bW4C2s
+v2BsJbum3UlIGRBP9uA=
+-----END CERTIFICATE-----
diff --git a/sdk-crypto/src/test/resources/config/sdk.key b/sdk-crypto/src/test/resources/config/sdk.key
new file mode 100644
index 000000000..be516180a
--- /dev/null
+++ b/sdk-crypto/src/test/resources/config/sdk.key
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgngMq1bsP9e0JLYTO7t+L
+CKEHoEKP+6lcVU8Ml00miIWhRANCAAQGpEYuoY3V7dxId1zXUtCMTKjiEDGD5NYs
+Xw4UfyjOjgw216fjzXpaeyf9s8Y1vYL/JZduXRv1s4OD5fBFCVY+
+-----END PRIVATE KEY-----
diff --git a/sdk-crypto/src/test/resources/contracts/ComplexSol.sol b/sdk-crypto/src/test/resources/contracts/ComplexSol.sol
new file mode 100644
index 000000000..f864e8df9
--- /dev/null
+++ b/sdk-crypto/src/test/resources/contracts/ComplexSol.sol
@@ -0,0 +1,70 @@
+pragma solidity ^0.4.25;
+pragma experimental ABIEncoderV2;
+
+contract ComplexSol{
+
+ uint256 private _uint256V;
+ int public _intV;
+ address public _addr;
+ string public _s;
+ bytes public _bytesV;
+ uint256[2] _uint8SArray;
+ address[] public _addrDArray;
+ mapping(bytes => bytes[]) _bytesMapping;
+
+ event LogIncrement(address sender, uint256 a);
+ event LogInit(address sender, string s);
+ event LogSetValues(int i, address[] a, string s);
+ event LogSetBytes(bytes o, bytes b);
+ event LogSetSArray(uint256[2] o, uint256[2] n);
+
+ constructor(int i, string s) public {
+ _addr = msg.sender;
+ _intV = i;
+ _s = s;
+ emit LogInit(msg.sender, s);
+ }
+
+ function emptyArgs() public {}
+
+
+ function incrementUint256(uint256 v) public returns(uint256){
+ _uint256V = v + 1 ;
+ emit LogIncrement(msg.sender, v);
+ return _uint256V;
+ }
+
+ function getUint256() public view returns(uint256){
+ return _uint256V;
+ }
+
+ function setValues(int i, address[] a, string s) public {
+ _intV = i;
+ _addrDArray = a;
+ _s = s;
+ emit LogSetValues(i, a, s);
+ }
+
+
+ function setBytes(bytes b) public returns (bytes) {
+ emit LogSetBytes(_bytesV, b);
+ _bytesV = b;
+ return b;
+ }
+
+ function setBytesMapping(bytes[] bytesArray) public returns (bool) {
+ require(bytesArray.length>1, "Bytes array is less than 2");
+ _bytesMapping[bytesArray[0]] = bytesArray;
+ return true;
+ }
+
+ function getByBytes(bytes b) public view returns (bytes[]) {
+ return _bytesMapping[b];
+ }
+
+ function getSArray() public returns (uint256[2]){
+ uint256[2] memory arr = [uint256(1),2];
+ emit LogSetSArray(arr, _uint8SArray);
+ return arr;
+ }
+}
diff --git a/sdk-crypto/src/test/resources/contracts/HelloWorld.sol b/sdk-crypto/src/test/resources/contracts/HelloWorld.sol
new file mode 100644
index 000000000..28b00ba49
--- /dev/null
+++ b/sdk-crypto/src/test/resources/contracts/HelloWorld.sol
@@ -0,0 +1,12 @@
+pragma solidity ^0.4.25;
+
+contract HelloWorld{
+ string public name;
+ constructor() public{
+ name = "Hello, World!";
+ }
+
+ function set(string n) public{
+ name = n;
+ }
+}
\ No newline at end of file
diff --git a/sdk-crypto/src/test/resources/ecdsa/abi/ComplexSol.abi b/sdk-crypto/src/test/resources/ecdsa/abi/ComplexSol.abi
new file mode 100644
index 000000000..5cc9376b1
--- /dev/null
+++ b/sdk-crypto/src/test/resources/ecdsa/abi/ComplexSol.abi
@@ -0,0 +1 @@
+[{"constant":true,"inputs":[{"name":"b","type":"bytes"}],"name":"getByBytes","outputs":[{"name":"","type":"bytes[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"bytesArray","type":"bytes[]"}],"name":"setBytesMapping","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"_addrDArray","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUint256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"v","type":"uint256"}],"name":"incrementUint256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_bytesV","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_s","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getSArray","outputs":[{"name":"","type":"uint256[2]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"b","type":"bytes"}],"name":"setBytes","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"i","type":"int256"},{"name":"a","type":"address[]"},{"name":"s","type":"string"}],"name":"setValues","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_intV","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"emptyArgs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"i","type":"int256"},{"name":"s","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"a","type":"uint256"}],"name":"LogIncrement","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"s","type":"string"}],"name":"LogInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"i","type":"int256"},{"indexed":false,"name":"a","type":"address[]"},{"indexed":false,"name":"s","type":"string"}],"name":"LogSetValues","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"o","type":"bytes"},{"indexed":false,"name":"b","type":"bytes"}],"name":"LogSetBytes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"o","type":"uint256[2]"},{"indexed":false,"name":"n","type":"uint256[2]"}],"name":"LogSetSArray","type":"event"}]
\ No newline at end of file
diff --git a/sdk-crypto/src/test/resources/ecdsa/abi/HelloWorld.abi b/sdk-crypto/src/test/resources/ecdsa/abi/HelloWorld.abi
new file mode 100644
index 000000000..68f2ce200
--- /dev/null
+++ b/sdk-crypto/src/test/resources/ecdsa/abi/HelloWorld.abi
@@ -0,0 +1 @@
+[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"n","type":"string"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
\ No newline at end of file
diff --git a/sdk-crypto/src/test/resources/gm/abi/ComplexSol.abi b/sdk-crypto/src/test/resources/gm/abi/ComplexSol.abi
new file mode 100644
index 000000000..d19f506cd
--- /dev/null
+++ b/sdk-crypto/src/test/resources/gm/abi/ComplexSol.abi
@@ -0,0 +1 @@
+[{"constant":true,"inputs":[],"name":"_intV","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"bytesArray","type":"bytes[]"}],"name":"setBytesMapping","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"i","type":"int256"},{"name":"a","type":"address[]"},{"name":"s","type":"string"}],"name":"setValues","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"b","type":"bytes"}],"name":"getByBytes","outputs":[{"name":"","type":"bytes[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_s","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_bytesV","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"emptyArgs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getSArray","outputs":[{"name":"","type":"uint256[2]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUint256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"b","type":"bytes"}],"name":"setBytes","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"v","type":"uint256"}],"name":"incrementUint256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"_addrDArray","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"i","type":"int256"},{"name":"s","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"a","type":"uint256"}],"name":"LogIncrement","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"s","type":"string"}],"name":"LogInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"i","type":"int256"},{"indexed":false,"name":"a","type":"address[]"},{"indexed":false,"name":"s","type":"string"}],"name":"LogSetValues","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"o","type":"bytes"},{"indexed":false,"name":"b","type":"bytes"}],"name":"LogSetBytes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"o","type":"uint256[2]"},{"indexed":false,"name":"n","type":"uint256[2]"}],"name":"LogSetSArray","type":"event"}]
\ No newline at end of file
diff --git a/sdk-crypto/src/test/resources/gm/abi/HelloWorld.abi b/sdk-crypto/src/test/resources/gm/abi/HelloWorld.abi
new file mode 100644
index 000000000..426703568
--- /dev/null
+++ b/sdk-crypto/src/test/resources/gm/abi/HelloWorld.abi
@@ -0,0 +1 @@
+[{"constant":false,"inputs":[{"name":"n","type":"string"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
\ No newline at end of file
diff --git a/sdk-crypto/src/test/resources/keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem b/sdk-crypto/src/test/resources/keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem
new file mode 100644
index 000000000..b448c4cd7
--- /dev/null
+++ b/sdk-crypto/src/test/resources/keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgvFFrJgDuw6IW9FfcFM+D
+oB7SLQ/CFJ/JEdwuxIb+V6OhRANCAATbv+5PdvWjvD28LmEnxKH1C3YUv/QTikSn
+mu09QvZ/nHqnBXAgX5tgpYiMZBW2qDABJne0QVp5zNFTP+VjeGHf
+-----END PRIVATE KEY-----
diff --git a/sdk-crypto/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.p12 b/sdk-crypto/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.p12
new file mode 100644
index 000000000..09388e9a7
Binary files /dev/null and b/sdk-crypto/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.p12 differ
diff --git a/sdk-crypto/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem b/sdk-crypto/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem
new file mode 100644
index 000000000..0b6ef051e
--- /dev/null
+++ b/sdk-crypto/src/test/resources/keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem
@@ -0,0 +1,4 @@
+-----BEGIN PUBLIC KEY-----
+MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE17ngD1bT95MFNZ+i19sWYCHnMIa9zS56
+KNbtJzReHy3ez4XbdDjoRX/UdO+cTOuJq7fV+mCiLykC7CbcpSrV5Q==
+-----END PUBLIC KEY-----
diff --git a/sdk-crypto/src/test/resources/keystore/ecdsa/invalid.p12 b/sdk-crypto/src/test/resources/keystore/ecdsa/invalid.p12
new file mode 100644
index 000000000..5e5138794
Binary files /dev/null and b/sdk-crypto/src/test/resources/keystore/ecdsa/invalid.p12 differ
diff --git a/sdk-crypto/src/test/resources/keystore/ecdsa/invalid.pem b/sdk-crypto/src/test/resources/keystore/ecdsa/invalid.pem
new file mode 100644
index 000000000..ecc335ea0
--- /dev/null
+++ b/sdk-crypto/src/test/resources/keystore/ecdsa/invalid.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgvFFrJgDuw6IW9FfcFM+D
+oB7SLQ/CFJ/JEdwuxIb+V6OhRANCAATbv+5PdvWjvD28LmEnxKH1C3YUv/QTikSn
+mu09QvZ/nHqnBXAgX5tgpYiMZBW2qDABJne0QVp5zNFTP+VjeGf
+-----END PRIVATE KEY-----
diff --git a/sdk-crypto/src/test/resources/keystore/gm/0x40b3558746e8f9a47a474774e8c4a9e67d4e3174.pem b/sdk-crypto/src/test/resources/keystore/gm/0x40b3558746e8f9a47a474774e8c4a9e67d4e3174.pem
new file mode 100644
index 000000000..f5395940b
--- /dev/null
+++ b/sdk-crypto/src/test/resources/keystore/gm/0x40b3558746e8f9a47a474774e8c4a9e67d4e3174.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQgkBdEw04q3/yf1/sS
+6Mui2Ip5qvVL6bThFmAVModInxOhRANCAAQ7cs0oJEyFbT2Jtn0cX/IuHyaDW6/N
+Y+mkrTQkoqV/K3WRSfRsaW3wi52Uc2hmdfxtredE0Mgr3FWY11ngFf2W
+-----END PRIVATE KEY-----
diff --git a/sdk-crypto/src/test/resources/keystore/gm/0x6f68461309925093236df82b51df630a55d32377.p12 b/sdk-crypto/src/test/resources/keystore/gm/0x6f68461309925093236df82b51df630a55d32377.p12
new file mode 100644
index 000000000..367c17da1
Binary files /dev/null and b/sdk-crypto/src/test/resources/keystore/gm/0x6f68461309925093236df82b51df630a55d32377.p12 differ
diff --git a/sdk-crypto/src/test/resources/keystore/gm/invalid.p12 b/sdk-crypto/src/test/resources/keystore/gm/invalid.p12
new file mode 100644
index 000000000..60862eb2f
Binary files /dev/null and b/sdk-crypto/src/test/resources/keystore/gm/invalid.p12 differ
diff --git a/sdk-crypto/src/test/resources/keystore/gm/invalid.pem b/sdk-crypto/src/test/resources/keystore/gm/invalid.pem
new file mode 100644
index 000000000..d63a94f80
--- /dev/null
+++ b/sdk-crypto/src/test/resources/keystore/gm/invalid.pem
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQgkBdEw04q3/yf1/sS
+6Mui2Ip5qvVL6bThFmAVModInxOhRANCAAQ7cs0oJEyFbT2Jtn0cX/IuHyaDW6/N
+Y+mkrTQkoqV/K3WRSfRsaW3wi52Uc2hmdfxtredE0Mgr3FWY11ngFf2
+-----END PRIVATE KEY-----
diff --git a/sdk-crypto/src/test/resources/log4j.properties b/sdk-crypto/src/test/resources/log4j.properties
new file mode 100644
index 000000000..55785c234
--- /dev/null
+++ b/sdk-crypto/src/test/resources/log4j.properties
@@ -0,0 +1,32 @@
+#
+# Copyright 2014-2020 [fisco-dev]
+#
+# 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.
+#
+#
+
+### set log levels ###
+log4j.rootLogger=DEBUG, file
+
+### output the log information to the file ###
+log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.file.DatePattern='_'yyyyMMddHH'.log'
+log4j.appender.file.File=./log/sdk.log
+log4j.appender.file.Append=true
+log4j.appender.file.filter.traceFilter=org.apache.log4j.varia.LevelRangeFilter
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=[%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C{1}.%M(%L) | %m%n
+
+###output the log information to the console ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=[%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C{1}.%M(%L) | %m%n
diff --git a/sdk-demo/build.gradle b/sdk-demo/build.gradle
new file mode 100644
index 000000000..b39946f5b
--- /dev/null
+++ b/sdk-demo/build.gradle
@@ -0,0 +1,13 @@
+// Apply the java-library plugin to add support for Java Library
+plugins {
+ id 'java'
+}
+dependencies {
+ compile project(':sdk-codegen')
+ compile 'org.fisco-bcos:solcJ:0.4.25.1'
+ //compile 'org.fisco-bcos:solcJ:0.6.10.0'
+ //compile 'org.fisco-bcos:solcJ:0.5.2.0'
+ compile 'com.google.guava:guava:29.0-jre'
+ compile 'org.apache.commons:commons-collections4:4.4'
+}
+
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgBuilder.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgBuilder.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgBuilder.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgBuilder.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgCallback.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgCallback.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgCallback.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgCallback.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgCollector.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgCollector.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgCollector.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/perf/AmopMsgCollector.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/perf/PerformanceAmop.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/perf/PerformanceAmop.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/perf/PerformanceAmop.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/perf/PerformanceAmop.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisher.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisher.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisher.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisher.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherFile.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherFile.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherFile.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherFile.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivate.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivate.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivate.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivate.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivateFile.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivateFile.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivateFile.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopPublisherPrivateFile.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriber.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriber.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriber.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriber.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriberPrivate.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriberPrivate.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriberPrivate.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/AmopSubscriberPrivate.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/DemoAmopCallback.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/DemoAmopCallback.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/DemoAmopCallback.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/DemoAmopCallback.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/FileToByteArrayHelper.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/FileToByteArrayHelper.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/amop/tool/FileToByteArrayHelper.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/amop/tool/FileToByteArrayHelper.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/codegen/CompileSolidityException.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/codegen/CompileSolidityException.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/codegen/CompileSolidityException.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/codegen/CompileSolidityException.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/codegen/DemoSolcToJava.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/codegen/DemoSolcToJava.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/codegen/DemoSolcToJava.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/codegen/DemoSolcToJava.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/DagTransfer.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/DagTransfer.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/DagTransfer.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/DagTransfer.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/HelloWorld.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/HelloWorld.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/HelloWorld.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/HelloWorld.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/Ok.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/Ok.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/Ok.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/Ok.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/OkD.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/OkD.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/OkD.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/OkD.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/ParallelOk.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/ParallelOk.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/ParallelOk.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/ParallelOk.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/TableTest.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/TableTest.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/TableTest.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/TableTest.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/DagTransfer.sol b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/DagTransfer.sol
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/DagTransfer.sol
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/DagTransfer.sol
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/Ok.sol b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/Ok.sol
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/Ok.sol
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/Ok.sol
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/OkD.sol b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/OkD.sol
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/OkD.sol
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/OkD.sol
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/ParallelContract.sol b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/ParallelContract.sol
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/ParallelContract.sol
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/ParallelContract.sol
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/ParallelOk.sol b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/ParallelOk.sol
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/ParallelOk.sol
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/ParallelOk.sol
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/TableTest.sol b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/TableTest.sol
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/contract/sol/TableTest.sol
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/sol/TableTest.sol
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/event/Listen.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/event/Listen.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/event/Listen.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/event/Listen.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/event/SendOk.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/event/SendOk.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/event/SendOk.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/event/SendOk.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/ParallelOkPerf.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/ParallelOkPerf.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/ParallelOkPerf.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/ParallelOkPerf.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/PerformanceOk.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOk.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/PerformanceOk.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOk.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/PerformanceOkD.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOkD.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/PerformanceOkD.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOkD.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/PerformanceRPC.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceRPC.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/PerformanceRPC.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceRPC.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/PerformanceTable.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceTable.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/PerformanceTable.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceTable.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/callback/ParallelOkCallback.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/callback/ParallelOkCallback.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/callback/ParallelOkCallback.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/callback/ParallelOkCallback.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/callback/PerformanceCallback.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/callback/PerformanceCallback.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/callback/PerformanceCallback.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/callback/PerformanceCallback.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/collector/PerformanceCollector.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/collector/PerformanceCollector.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/collector/PerformanceCollector.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/collector/PerformanceCollector.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/model/DagTransferUser.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/model/DagTransferUser.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/model/DagTransferUser.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/model/DagTransferUser.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/model/DagUserInfo.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/model/DagUserInfo.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/model/DagUserInfo.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/model/DagUserInfo.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/parallel/DagPrecompiledDemo.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/parallel/DagPrecompiledDemo.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/parallel/DagPrecompiledDemo.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/parallel/DagPrecompiledDemo.java
diff --git a/src/demo/java/org/fisco/bcos/sdk/demo/perf/parallel/ParallelOkDemo.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/parallel/ParallelOkDemo.java
similarity index 100%
rename from src/demo/java/org/fisco/bcos/sdk/demo/perf/parallel/ParallelOkDemo.java
rename to sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/parallel/ParallelOkDemo.java
diff --git a/sdk-service/build.gradle b/sdk-service/build.gradle
new file mode 100644
index 000000000..40a3416be
--- /dev/null
+++ b/sdk-service/build.gradle
@@ -0,0 +1,9 @@
+// Apply the java-library plugin to add support for Java Library
+plugins {
+ id 'java'
+}
+dependencies {
+ compile project(':sdk-amop')
+ compile project(':sdk-abi')
+ compile ("com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}")
+}
diff --git a/src/main/java/org/fisco/bcos/sdk/BcosSDK.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/BcosSDK.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/BcosSDK.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/BcosSDK.java
diff --git a/src/main/java/org/fisco/bcos/sdk/BcosSDKException.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/BcosSDKException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/BcosSDKException.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/BcosSDKException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/Client.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/Client.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/Client.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/Client.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/ClientImpl.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/ClientImpl.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/ClientImpl.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/ClientImpl.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/JsonRpcService.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/JsonRpcService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/JsonRpcService.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/JsonRpcService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/RespCallback.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/RespCallback.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/RespCallback.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/RespCallback.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/exceptions/ClientException.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/exceptions/ClientException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/exceptions/ClientException.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/exceptions/ClientException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/handler/BlockNumberNotifyHandler.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/handler/BlockNumberNotifyHandler.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/handler/BlockNumberNotifyHandler.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/handler/BlockNumberNotifyHandler.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/handler/GetNodeVersionHandler.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/handler/GetNodeVersionHandler.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/handler/GetNodeVersionHandler.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/handler/GetNodeVersionHandler.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/handler/OnReceiveBlockNotifyFunc.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/handler/OnReceiveBlockNotifyFunc.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/handler/OnReceiveBlockNotifyFunc.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/handler/OnReceiveBlockNotifyFunc.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/handler/TransactionNotifyHandler.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/handler/TransactionNotifyHandler.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/handler/TransactionNotifyHandler.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/handler/TransactionNotifyHandler.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/model/GroupStatus.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/model/GroupStatus.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/model/GroupStatus.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/model/GroupStatus.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/model/JsonRpcRetCode.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/model/JsonRpcRetCode.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/model/JsonRpcRetCode.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/model/JsonRpcRetCode.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/model/JsonTransactionResponse.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/model/JsonTransactionResponse.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/model/JsonTransactionResponse.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/model/JsonTransactionResponse.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/request/GenerateGroupParam.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/request/GenerateGroupParam.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/request/GenerateGroupParam.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/request/GenerateGroupParam.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcMethods.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcMethods.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcMethods.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcMethods.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcRequest.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcRequest.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcRequest.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcRequest.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/request/Transaction.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/request/Transaction.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/request/Transaction.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/request/Transaction.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlock.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlock.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlock.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlock.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlockHeader.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlockHeader.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlockHeader.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlockHeader.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransaction.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransaction.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransaction.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransaction.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransactionReceipt.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransactionReceipt.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransactionReceipt.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransactionReceipt.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockHash.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockHash.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockHash.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockHash.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockNumber.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockNumber.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockNumber.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockNumber.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Call.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Call.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/Call.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Call.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Code.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Code.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/Code.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Code.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ConsensusStatus.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ConsensusStatus.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/ConsensusStatus.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ConsensusStatus.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GenerateGroup.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GenerateGroup.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/GenerateGroup.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GenerateGroup.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupList.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupList.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupList.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupList.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupPeers.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupPeers.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupPeers.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupPeers.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeIDList.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeIDList.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeIDList.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeIDList.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ObserverList.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ObserverList.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/ObserverList.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ObserverList.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PbftView.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PbftView.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/PbftView.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PbftView.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Peers.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Peers.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/Peers.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Peers.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTransactions.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTransactions.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTransactions.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTransactions.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTxSize.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTxSize.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTxSize.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTxSize.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/QueryGroupStatus.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/QueryGroupStatus.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/QueryGroupStatus.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/QueryGroupStatus.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RecoverGroup.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RecoverGroup.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/RecoverGroup.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RecoverGroup.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RemoveGroup.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RemoveGroup.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/RemoveGroup.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RemoveGroup.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SealerList.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SealerList.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/SealerList.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SealerList.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SendTransaction.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SendTransaction.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/SendTransaction.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SendTransaction.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StartGroup.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StartGroup.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/StartGroup.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StartGroup.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StopGroup.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StopGroup.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/StopGroup.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StopGroup.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SyncStatus.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SyncStatus.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/SyncStatus.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SyncStatus.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SystemConfig.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SystemConfig.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/SystemConfig.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SystemConfig.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TotalTransactionCount.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TotalTransactionCount.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/TotalTransactionCount.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TotalTransactionCount.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionReceiptWithProof.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionReceiptWithProof.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionReceiptWithProof.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionReceiptWithProof.java
diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionWithProof.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionWithProof.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionWithProof.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionWithProof.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/EventCallback.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventCallback.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/EventCallback.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventCallback.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/EventLogParams.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventLogParams.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/EventLogParams.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventLogParams.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/EventMsg.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventMsg.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/EventMsg.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventMsg.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/EventResource.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventResource.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/EventResource.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventResource.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/EventSubscribe.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventSubscribe.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/EventSubscribe.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventSubscribe.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/EventSubscribeImp.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventSubscribeImp.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/EventSubscribeImp.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/EventSubscribeImp.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/exception/EventSubException.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/exception/EventSubException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/exception/EventSubException.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/exception/EventSubException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogFilter.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogFilter.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogFilter.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogFilter.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogFilterStatus.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogFilterStatus.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogFilterStatus.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogFilterStatus.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogResponse.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogResponse.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogResponse.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventLogResponse.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventPushMsgHandler.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventPushMsgHandler.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventPushMsgHandler.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventPushMsgHandler.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventSubNodeRespStatus.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventSubNodeRespStatus.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventSubNodeRespStatus.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/EventSubNodeRespStatus.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/filter/FilterManager.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/FilterManager.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/filter/FilterManager.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/FilterManager.java
diff --git a/src/main/java/org/fisco/bcos/sdk/eventsub/filter/ScheduleTimeConfig.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/ScheduleTimeConfig.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/eventsub/filter/ScheduleTimeConfig.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/eventsub/filter/ScheduleTimeConfig.java
diff --git a/src/main/java/org/fisco/bcos/sdk/service/GroupManagerService.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupManagerService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/service/GroupManagerService.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupManagerService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/service/GroupManagerServiceImpl.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupManagerServiceImpl.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/service/GroupManagerServiceImpl.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupManagerServiceImpl.java
diff --git a/src/main/java/org/fisco/bcos/sdk/service/GroupService.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/service/GroupService.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/service/GroupServiceFactory.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupServiceFactory.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/service/GroupServiceFactory.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupServiceFactory.java
diff --git a/src/main/java/org/fisco/bcos/sdk/service/GroupServiceImpl.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupServiceImpl.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/service/GroupServiceImpl.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/service/GroupServiceImpl.java
diff --git a/src/main/java/org/fisco/bcos/sdk/service/callback/BlockNumberNotifyCallback.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/service/callback/BlockNumberNotifyCallback.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/service/callback/BlockNumberNotifyCallback.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/service/callback/BlockNumberNotifyCallback.java
diff --git a/src/main/java/org/fisco/bcos/sdk/service/model/BlockNumberMessageDecoder.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/service/model/BlockNumberMessageDecoder.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/service/model/BlockNumberMessageDecoder.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/service/model/BlockNumberMessageDecoder.java
diff --git a/src/main/java/org/fisco/bcos/sdk/service/model/BlockNumberNotification.java b/sdk-service/src/main/java/org/fisco/bcos/sdk/service/model/BlockNumberNotification.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/service/model/BlockNumberNotification.java
rename to sdk-service/src/main/java/org/fisco/bcos/sdk/service/model/BlockNumberNotification.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/client/ResponseTest.java b/sdk-service/src/test/java/org/fisco/bcos/sdk/client/ResponseTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/client/ResponseTest.java
rename to sdk-service/src/test/java/org/fisco/bcos/sdk/client/ResponseTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/precompiled/PrecompiledRetCodeTest.java b/sdk-service/src/test/java/org/fisco/bcos/sdk/precompiled/PrecompiledRetCodeTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/precompiled/PrecompiledRetCodeTest.java
rename to sdk-service/src/test/java/org/fisco/bcos/sdk/precompiled/PrecompiledRetCodeTest.java
diff --git a/src/test/java/org/fisco/bcos/sdk/test/service/GroupServiceTest.java b/sdk-service/src/test/java/org/fisco/bcos/sdk/service/GroupServiceTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/test/service/GroupServiceTest.java
rename to sdk-service/src/test/java/org/fisco/bcos/sdk/service/GroupServiceTest.java
diff --git a/sdk-transaction/build.gradle b/sdk-transaction/build.gradle
new file mode 100644
index 000000000..71754d435
--- /dev/null
+++ b/sdk-transaction/build.gradle
@@ -0,0 +1,10 @@
+// Apply the java-library plugin to add support for Java Library
+plugins {
+ id 'java'
+}
+dependencies {
+ compile project(':sdk-service')
+ compile ("org.apache.commons:commons-lang3:${commonsLang3Version}")
+ compile ("commons-io:commons-io:${commonsIOVersion}")
+ compile ("com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}")
+}
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/builder/TransactionBuilderInterface.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/builder/TransactionBuilderInterface.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/builder/TransactionBuilderInterface.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/builder/TransactionBuilderInterface.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/builder/TransactionBuilderService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/builder/TransactionBuilderService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/builder/TransactionBuilderService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/builder/TransactionBuilderService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/ReceiptParser.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/ReceiptParser.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/ReceiptParser.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/ReceiptParser.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/RevertMessageParser.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/RevertMessageParser.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/RevertMessageParser.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/RevertMessageParser.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/TransactionDecoderInterface.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/TransactionDecoderInterface.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/TransactionDecoderInterface.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/TransactionDecoderInterface.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/TransactionDecoderService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/TransactionDecoderService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/TransactionDecoderService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/decode/TransactionDecoderService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/codec/encode/TransactionEncoderInterface.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/encode/TransactionEncoderInterface.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/codec/encode/TransactionEncoderInterface.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/encode/TransactionEncoderInterface.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/codec/encode/TransactionEncoderService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/encode/TransactionEncoderService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/codec/encode/TransactionEncoderService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/codec/encode/TransactionEncoderService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/Contract.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/Contract.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/Contract.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/Contract.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/callback/PrecompiledCallback.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/callback/PrecompiledCallback.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/callback/PrecompiledCallback.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/callback/PrecompiledCallback.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CNSPrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CNSPrecompiled.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CNSPrecompiled.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CNSPrecompiled.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CnsInfo.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CnsInfo.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CnsInfo.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CnsInfo.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CnsService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CnsService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CnsService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CnsService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusPrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusPrecompiled.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusPrecompiled.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusPrecompiled.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCycleService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCycleService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCycleService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCycleService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/CRUD.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/CRUD.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/CRUD.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/CRUD.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/TableCRUDService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/TableCRUDService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/TableCRUDService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/TableCRUDService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/Condition.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/Condition.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/Condition.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/Condition.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/ConditionOperator.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/ConditionOperator.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/ConditionOperator.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/ConditionOperator.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/Entry.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/Entry.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/Entry.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/Entry.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/table/TableFactory.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/table/TableFactory.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/table/TableFactory.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/table/TableFactory.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledAddress.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledAddress.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledAddress.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledAddress.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledResponse.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledResponse.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledResponse.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledResponse.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledVersionCheck.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledVersionCheck.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledVersionCheck.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledVersionCheck.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/Version.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/Version.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/Version.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/Version.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernancePrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernancePrecompiled.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernancePrecompiled.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernancePrecompiled.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernanceService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernanceService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernanceService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernanceService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionInfo.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionInfo.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionInfo.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionInfo.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionPrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionPrecompiled.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionPrecompiled.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionPrecompiled.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CNSPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CNSPrecompiled.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CNSPrecompiled.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CNSPrecompiled.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CRUD.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CRUD.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CRUD.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CRUD.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CRUDPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CRUDPrecompiled.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CRUDPrecompiled.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CRUDPrecompiled.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ChainGovernancePrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ChainGovernancePrecompiled.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ChainGovernancePrecompiled.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ChainGovernancePrecompiled.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ConsensusPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ConsensusPrecompiled.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ConsensusPrecompiled.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ConsensusPrecompiled.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ContractLifeCyclePrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ContractLifeCyclePrecompiled.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ContractLifeCyclePrecompiled.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ContractLifeCyclePrecompiled.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ParallelConfigPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ParallelConfigPrecompiled.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ParallelConfigPrecompiled.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ParallelConfigPrecompiled.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/PermissionPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/PermissionPrecompiled.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/PermissionPrecompiled.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/PermissionPrecompiled.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/SystemConfigPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/SystemConfigPrecompiled.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/SystemConfigPrecompiled.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/SystemConfigPrecompiled.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/TableFactory.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/TableFactory.sol
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/TableFactory.sol
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/TableFactory.sol
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigPrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigPrecompiled.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigPrecompiled.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigPrecompiled.java
diff --git a/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManager.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManager.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManager.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManager.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManagerInterface.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManagerInterface.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManagerInterface.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManagerInterface.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManager.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManager.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManager.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManager.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerFactory.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerFactory.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerFactory.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerFactory.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerInterface.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerInterface.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerInterface.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerInterface.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/CommonConstant.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/CommonConstant.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/CommonConstant.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/CommonConstant.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/bo/AbiInfo.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/bo/AbiInfo.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/bo/AbiInfo.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/bo/AbiInfo.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/bo/BinInfo.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/bo/BinInfo.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/bo/BinInfo.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/bo/BinInfo.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CallRequest.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CallRequest.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CallRequest.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CallRequest.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CallResponse.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CallResponse.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CallResponse.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CallResponse.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CommonResponse.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CommonResponse.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CommonResponse.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/CommonResponse.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/ResultCodeEnum.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/ResultCodeEnum.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/dto/ResultCodeEnum.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/ResultCodeEnum.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/TransactionResponse.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/TransactionResponse.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/dto/TransactionResponse.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/dto/TransactionResponse.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/ContractException.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/ContractException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/exception/ContractException.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/ContractException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/JsonException.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/JsonException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/exception/JsonException.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/JsonException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/NoSuchTransactionFileException.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/NoSuchTransactionFileException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/exception/NoSuchTransactionFileException.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/NoSuchTransactionFileException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionBaseException.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionBaseException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionBaseException.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionBaseException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionException.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionException.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionException.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionException.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionRetCodeConstants.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionRetCodeConstants.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionRetCodeConstants.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/exception/TransactionRetCodeConstants.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/gas/ContractGasProvider.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/gas/ContractGasProvider.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/gas/ContractGasProvider.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/gas/ContractGasProvider.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/gas/DefaultGasProvider.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/gas/DefaultGasProvider.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/gas/DefaultGasProvider.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/gas/DefaultGasProvider.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/model/po/RawTransaction.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/po/RawTransaction.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/model/po/RawTransaction.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/model/po/RawTransaction.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/pusher/TransactionPusherInterface.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/pusher/TransactionPusherInterface.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/pusher/TransactionPusherInterface.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/pusher/TransactionPusherInterface.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/pusher/TransactionPusherService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/pusher/TransactionPusherService.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/pusher/TransactionPusherService.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/pusher/TransactionPusherService.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/signer/TransactionSignerInterface.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/signer/TransactionSignerInterface.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/signer/TransactionSignerInterface.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/signer/TransactionSignerInterface.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/signer/TransactionSignerServcie.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/signer/TransactionSignerServcie.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/signer/TransactionSignerServcie.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/signer/TransactionSignerServcie.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/tools/ContractLoader.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/tools/ContractLoader.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/tools/ContractLoader.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/tools/ContractLoader.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/tools/JsonUtils.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/tools/JsonUtils.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/tools/JsonUtils.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/tools/JsonUtils.java
diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/tools/ReceiptStatusUtil.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/tools/ReceiptStatusUtil.java
similarity index 100%
rename from src/main/java/org/fisco/bcos/sdk/transaction/tools/ReceiptStatusUtil.java
rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/tools/ReceiptStatusUtil.java
diff --git a/src/test/java/org/fisco/bcos/sdk/tx/tools/UtilsTest.java b/sdk-transaction/src/test/java/org/fisco/bcos/sdk/tx/tools/UtilsTest.java
similarity index 100%
rename from src/test/java/org/fisco/bcos/sdk/tx/tools/UtilsTest.java
rename to sdk-transaction/src/test/java/org/fisco/bcos/sdk/tx/tools/UtilsTest.java
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 000000000..ca9a70ca7
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,11 @@
+rootProject.name = "java-sdk"
+
+// submodules
+include "sdk-core"
+include "sdk-crypto"
+include "sdk-abi"
+include "sdk-amop"
+include "sdk-service"
+include "sdk-transaction"
+include "sdk-codegen"
+include "sdk-demo"
diff --git a/src/integration-test/java/org/fisco/bcos/sdk/BcosSDKTest.java b/src/integration-test/java/org/fisco/bcos/sdk/BcosSDKTest.java
index 8be74cfa0..ad9e2b524 100644
--- a/src/integration-test/java/org/fisco/bcos/sdk/BcosSDKTest.java
+++ b/src/integration-test/java/org/fisco/bcos/sdk/BcosSDKTest.java
@@ -14,9 +14,9 @@
*/
package org.fisco.bcos.sdk;
+
import java.math.BigInteger;
import java.util.List;
-
import org.fisco.bcos.sdk.client.Client;
import org.fisco.bcos.sdk.client.exceptions.ClientException;
import org.fisco.bcos.sdk.client.protocol.response.BcosBlock;
@@ -31,28 +31,31 @@
import org.fisco.bcos.sdk.client.protocol.response.SealerList;
import org.fisco.bcos.sdk.client.protocol.response.SyncStatus;
import org.fisco.bcos.sdk.config.exceptions.ConfigException;
-import org.fisco.bcos.sdk.transaction.model.exception.ContractException;
+import org.fisco.bcos.sdk.demo.contract.HelloWorld;
import org.fisco.bcos.sdk.model.ConstantConfig;
import org.fisco.bcos.sdk.model.NodeVersion;
import org.fisco.bcos.sdk.model.TransactionReceipt;
import org.fisco.bcos.sdk.service.GroupManagerService;
-import org.fisco.bcos.sdk.demo.contract.HelloWorld;
+import org.fisco.bcos.sdk.transaction.model.exception.ContractException;
import org.fisco.bcos.sdk.utils.Numeric;
import org.junit.Assert;
import org.junit.Test;
-public class BcosSDKTest
-{
- private static final String configFile = BcosSDKTest.class.getClassLoader().getResource(ConstantConfig.CONFIG_FILE_NAME).getPath();
+public class BcosSDKTest {
+ private static final String configFile =
+ BcosSDKTest.class
+ .getClassLoader()
+ .getResource(ConstantConfig.CONFIG_FILE_NAME)
+ .getPath();
+
@Test
public void testClient() throws ConfigException {
- BcosSDK sdk = BcosSDK.build(configFile);
+ BcosSDK sdk = BcosSDK.build(configFile);
// check groupList
Assert.assertTrue(sdk.getChannel().getAvailablePeer().size() >= 1);
- for(String endPoint: sdk.getChannel().getAvailablePeer())
- {
+ for (String endPoint : sdk.getChannel().getAvailablePeer()) {
List groupInfo = sdk.getGroupManagerService().getGroupInfoByNodeInfo(endPoint);
- if(groupInfo.size() > 0) {
+ if (groupInfo.size() > 0) {
Assert.assertEquals(1, groupInfo.size());
Assert.assertEquals("1", groupInfo.get(0));
}
@@ -71,9 +74,15 @@ public void testClient() throws ConfigException {
// the genesis block with 0 sealer
Assert.assertEquals(0, block.getBlock().getSealerList().size());
Assert.assertEquals("0x0", block.getBlock().getSealer());
- Assert.assertEquals("0x0000000000000000000000000000000000000000000000000000000000000000", block.getBlock().getParentHash());
- Assert.assertEquals("0x0000000000000000000000000000000000000000000000000000000000000000", block.getBlock().getDbHash());
- Assert.assertEquals("0x0000000000000000000000000000000000000000000000000000000000000000", block.getBlock().getStateRoot());
+ Assert.assertEquals(
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
+ block.getBlock().getParentHash());
+ Assert.assertEquals(
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
+ block.getBlock().getDbHash());
+ Assert.assertEquals(
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
+ block.getBlock().getStateRoot());
// test getBlockByHash
BcosBlock block2 = client.getBlockByHash(block.getBlock().getHash(), false);
@@ -83,21 +92,20 @@ public void testClient() throws ConfigException {
BlockHash blockHash = client.getBlockHashByNumber(BigInteger.ZERO);
Assert.assertEquals(blockHash.getBlockHashByNumber(), block.getBlock().getHash());
- try
- {
+ try {
// Note: FISCO BCOS supported_version >= v2.6.0 has this RPC interface
// get blockHeader
- BcosBlockHeader blockHeader = client.getBlockHeaderByHash(blockHash.getBlockHashByNumber(), true);
- if(blockHeader.getError() == null) {
+ BcosBlockHeader blockHeader =
+ client.getBlockHeaderByHash(blockHash.getBlockHashByNumber(), true);
+ if (blockHeader.getError() == null) {
Assert.assertEquals(BigInteger.ZERO, blockHeader.getBlockHeader().getNumber());
- Assert.assertEquals(block.getBlock().getHash(), blockHeader.getBlockHeader().getHash());
+ Assert.assertEquals(
+ block.getBlock().getHash(), blockHeader.getBlockHeader().getHash());
BcosBlockHeader blockHeader2 = client.getBlockHeaderByNumber(BigInteger.ZERO, true);
Assert.assertEquals(blockHeader.getBlockHeader(), blockHeader2.getBlockHeader());
}
- }
- catch (ClientException e)
- {
+ } catch (ClientException e) {
System.out.println("getBlockHeaderByHash failed, error information: " + e.getMessage());
}
@@ -137,13 +145,22 @@ public void testClient() throws ConfigException {
BlockHash latestHash = client.getBlockHashByNumber(blockNumber.getBlockNumber());
SyncStatus syncStatus = client.getSyncStatus();
Assert.assertEquals("0", syncStatus.getSyncStatus().getTxPoolSize());
- Assert.assertEquals(latestHash.getBlockHashByNumber(), "0x" + syncStatus.getSyncStatus().getLatestHash());
- Assert.assertEquals(blockHash.getBlockHashByNumber(), "0x" + syncStatus.getSyncStatus().getGenesisHash());
- Assert.assertEquals( latestHash.getBlockHashByNumber(), "0x" + syncStatus.getSyncStatus().getKnownLatestHash());
- Assert.assertEquals(blockNumber.getBlockNumber(), new BigInteger(syncStatus.getSyncStatus().getKnownHighestNumber()));
+ Assert.assertEquals(
+ latestHash.getBlockHashByNumber(),
+ "0x" + syncStatus.getSyncStatus().getLatestHash());
+ Assert.assertEquals(
+ blockHash.getBlockHashByNumber(),
+ "0x" + syncStatus.getSyncStatus().getGenesisHash());
+ Assert.assertEquals(
+ latestHash.getBlockHashByNumber(),
+ "0x" + syncStatus.getSyncStatus().getKnownLatestHash());
+ Assert.assertEquals(
+ blockNumber.getBlockNumber(),
+ new BigInteger(syncStatus.getSyncStatus().getKnownHighestNumber()));
BigInteger blockLimit = client.getBlockLimit();
- Assert.assertEquals(blockNumber.getBlockNumber().add(GroupManagerService.BLOCK_LIMIT), blockLimit);
+ Assert.assertEquals(
+ blockNumber.getBlockNumber().add(GroupManagerService.BLOCK_LIMIT), blockLimit);
// test getGroupList
GroupList groupList = client.getGroupList();
@@ -154,29 +171,53 @@ public void testClient() throws ConfigException {
ConsensusStatus consensusStatus = client.getConsensusStatus();
Assert.assertTrue(consensusStatus.getConsensusStatus().getViewInfos().size() > 0);
- for(String sealer : consensusStatus.getConsensusStatus().getBaseConsensusInfo().getSealerList())
- {
+ for (String sealer :
+ consensusStatus.getConsensusStatus().getBaseConsensusInfo().getSealerList()) {
Assert.assertTrue(sealerList.getResult().contains(sealer));
}
- Assert.assertEquals("true", consensusStatus.getConsensusStatus().getBaseConsensusInfo().getAllowFutureBlocks());
- Assert.assertEquals("true", consensusStatus.getConsensusStatus().getBaseConsensusInfo().getOmitEmptyBlock());
- Assert.assertEquals(blockNumber.getBlockNumber(), new BigInteger(consensusStatus.getConsensusStatus().getBaseConsensusInfo().getHighestblockNumber()));
- Assert.assertEquals(latestHash.getBlockHashByNumber(), consensusStatus.getConsensusStatus().getBaseConsensusInfo().getHighestblockHash());
+ Assert.assertEquals(
+ "true",
+ consensusStatus.getConsensusStatus().getBaseConsensusInfo().getAllowFutureBlocks());
+ Assert.assertEquals(
+ "true",
+ consensusStatus.getConsensusStatus().getBaseConsensusInfo().getOmitEmptyBlock());
+ Assert.assertEquals(
+ blockNumber.getBlockNumber(),
+ new BigInteger(
+ consensusStatus
+ .getConsensusStatus()
+ .getBaseConsensusInfo()
+ .getHighestblockNumber()));
+ Assert.assertEquals(
+ latestHash.getBlockHashByNumber(),
+ consensusStatus.getConsensusStatus().getBaseConsensusInfo().getHighestblockHash());
}
- private void checkReceipt(HelloWorld helloWorld, Client client, BigInteger expectedBlockNumber, TransactionReceipt receipt, boolean checkTo)
- {
+ private void checkReceipt(
+ HelloWorld helloWorld,
+ Client client,
+ BigInteger expectedBlockNumber,
+ TransactionReceipt receipt,
+ boolean checkTo) {
// check block number
System.out.println("blockNumber: " + Numeric.decodeQuantity(receipt.getBlockNumber()));
System.out.println("expected: " + expectedBlockNumber);
- Assert.assertTrue(Numeric.decodeQuantity(receipt.getBlockNumber()).compareTo(expectedBlockNumber)>=0);
+ Assert.assertTrue(
+ Numeric.decodeQuantity(receipt.getBlockNumber()).compareTo(expectedBlockNumber)
+ >= 0);
// check hash
- //Assert.assertTrue(receipt.getBlockHash().equals(client.getBlockHashByNumber(expectedBlockNumber).getBlockHashByNumber()));
+ // Assert.assertTrue(receipt.getBlockHash().equals(client.getBlockHashByNumber(expectedBlockNumber).getBlockHashByNumber()));
Assert.assertEquals(null, receipt.getReceiptProof());
Assert.assertEquals(null, receipt.getTxProof());
- System.out.println("getCurrentExternalAccountAddress: " + helloWorld.getTransactionManager().getCurrentExternalAccountAddress() + ", receipt.getFrom()" + receipt.getFrom());
- Assert.assertEquals(helloWorld.getTransactionManager().getCurrentExternalAccountAddress(), receipt.getFrom());
- if(checkTo) {
+ System.out.println(
+ "getCurrentExternalAccountAddress: "
+ + helloWorld.getTransactionManager().getCurrentExternalAccountAddress()
+ + ", receipt.getFrom()"
+ + receipt.getFrom());
+ Assert.assertEquals(
+ helloWorld.getTransactionManager().getCurrentExternalAccountAddress(),
+ receipt.getFrom());
+ if (checkTo) {
Assert.assertEquals(helloWorld.getContractAddress(), receipt.getTo());
}
}
@@ -184,19 +225,28 @@ private void checkReceipt(HelloWorld helloWorld, Client client, BigInteger expec
@Test
public void testSendTransactions() throws ConfigException, ContractException {
try {
- BcosSDK sdk = BcosSDK.build(configFile);
+ BcosSDK sdk = BcosSDK.build(configFile);
Integer groupId = Integer.valueOf(1);
Client client = sdk.getClient(groupId);
BigInteger blockLimit = sdk.getGroupManagerService().getBlockLimitByGroup(groupId);
BigInteger blockNumber = client.getBlockNumber().getBlockNumber();
// deploy the HelloWorld contract
HelloWorld helloWorld = HelloWorld.deploy(client, client.getCryptoInterface());
- checkReceipt(helloWorld, client, blockNumber.add(BigInteger.ONE), helloWorld.getDeployReceipt(), false);
+ checkReceipt(
+ helloWorld,
+ client,
+ blockNumber.add(BigInteger.ONE),
+ helloWorld.getDeployReceipt(),
+ false);
// check the blockLimit has been modified
// wait the block number notification
Thread.sleep(1000);
- Assert.assertTrue(sdk.getGroupManagerService().getBlockLimitByGroup(groupId).compareTo(blockLimit.add(BigInteger.ONE))>=0);
+ Assert.assertTrue(
+ sdk.getGroupManagerService()
+ .getBlockLimitByGroup(groupId)
+ .compareTo(blockLimit.add(BigInteger.ONE))
+ >= 0);
Assert.assertTrue(helloWorld != null);
Assert.assertTrue(helloWorld.getContractAddress() != null);
@@ -207,24 +257,33 @@ public void testSendTransactions() throws ConfigException, ContractException {
checkReceipt(helloWorld, client, blockNumber.add(BigInteger.valueOf(2)), receipt, true);
// wait the blocknumber notification
Thread.sleep(1000);
- System.out.println(sdk.getGroupManagerService().getBlockLimitByGroup(groupId) + " " + blockLimit.add(BigInteger.valueOf(2)));
- Assert.assertTrue(sdk.getGroupManagerService().getBlockLimitByGroup(groupId).compareTo(blockLimit.add(BigInteger.valueOf(2)))>=0);
+ System.out.println(
+ sdk.getGroupManagerService().getBlockLimitByGroup(groupId)
+ + " "
+ + blockLimit.add(BigInteger.valueOf(2)));
+ Assert.assertTrue(
+ sdk.getGroupManagerService()
+ .getBlockLimitByGroup(groupId)
+ .compareTo(blockLimit.add(BigInteger.valueOf(2)))
+ >= 0);
// get the modified value
String getValue = helloWorld.get();
Assert.assertTrue(getValue.equals(settedString));
// load contract from the contract address
- HelloWorld helloWorld2 = HelloWorld.load(helloWorld.getContractAddress(), client, client.getCryptoInterface());
- Assert.assertTrue(helloWorld2.getContractAddress().equals(helloWorld.getContractAddress()));
+ HelloWorld helloWorld2 =
+ HelloWorld.load(
+ helloWorld.getContractAddress(), client, client.getCryptoInterface());
+ Assert.assertTrue(
+ helloWorld2.getContractAddress().equals(helloWorld.getContractAddress()));
settedString = "Hello, Fisco2";
TransactionReceipt receipt2 = helloWorld2.set(settedString);
- checkReceipt(helloWorld2, client, blockNumber.add(BigInteger.valueOf(3)), receipt2, true);
+ checkReceipt(
+ helloWorld2, client, blockNumber.add(BigInteger.valueOf(3)), receipt2, true);
Assert.assertTrue(helloWorld.get().equals(settedString));
Assert.assertTrue(helloWorld2.get().equals(settedString));
- }
- catch(ContractException | ClientException | InterruptedException e)
- {
+ } catch (ContractException | ClientException | InterruptedException e) {
System.out.println("testSendTransactions exceptioned, error info:" + e.getMessage());
}
}
-}
\ No newline at end of file
+}
diff --git a/src/integration-test/java/org/fisco/bcos/sdk/amop/PrivateTopicVerifyTest.java b/src/integration-test/java/org/fisco/bcos/sdk/amop/PrivateTopicVerifyTest.java
index 63a21c985..1d69c34fc 100644
--- a/src/integration-test/java/org/fisco/bcos/sdk/amop/PrivateTopicVerifyTest.java
+++ b/src/integration-test/java/org/fisco/bcos/sdk/amop/PrivateTopicVerifyTest.java
@@ -1,5 +1,6 @@
package org.fisco.bcos.sdk.amop;
+import java.util.concurrent.Semaphore;
import org.fisco.bcos.sdk.BcosSDK;
import org.fisco.bcos.sdk.amop.topic.AmopMsgIn;
import org.fisco.bcos.sdk.amop.topic.TopicType;
@@ -10,12 +11,18 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.concurrent.Semaphore;
-
public class PrivateTopicVerifyTest {
private static Logger logger = LoggerFactory.getLogger(PrivateTopicVerifyTest.class);
- private static final String senderConfig = PrivateTopicVerifyTest.class.getClassLoader().getResource("amop/config-publisher-for-test.toml").getPath();
- private static final String subscriberConfig = PrivateTopicVerifyTest.class.getClassLoader().getResource("amop/config-subscriber-for-test.toml").getPath();
+ private static final String senderConfig =
+ PrivateTopicVerifyTest.class
+ .getClassLoader()
+ .getResource("amop/config-publisher-for-test.toml")
+ .getPath();
+ private static final String subscriberConfig =
+ PrivateTopicVerifyTest.class
+ .getClassLoader()
+ .getResource("amop/config-subscriber-for-test.toml")
+ .getPath();
private Amop sender;
private Amop subscriber;
@@ -79,10 +86,14 @@ public TestResponseCb() {
@Override
public void onResponse(Response response) {
- logger.trace("Receive response, seq:{} error:{} error msg: {} content:{}", response.getMessageID(), response.getErrorCode(), response.getErrorMessage(), response.getContent());
+ logger.trace(
+ "Receive response, seq:{} error:{} error msg: {} content:{}",
+ response.getMessageID(),
+ response.getErrorCode(),
+ response.getErrorMessage(),
+ response.getContent());
content[0] = response.getContent();
semaphore.release();
-
}
}
TestResponseCb cb = new TestResponseCb();
@@ -98,15 +109,16 @@ public void onResponse(Response response) {
}
private void prepareEnv() throws InterruptedException {
- BcosSDK sdk2 = BcosSDK.build(subscriberConfig);
+ BcosSDK sdk2 = BcosSDK.build(subscriberConfig);
Assert.assertTrue(sdk2.getChannel().getAvailablePeer().size() >= 1);
- BcosSDK sdk1 = BcosSDK.build(senderConfig);
+ BcosSDK sdk1 = BcosSDK.build(senderConfig);
Assert.assertTrue(sdk1.getChannel().getAvailablePeer().size() >= 1);
Thread.sleep(2000);
sender = sdk1.getAmop();
subscriber = sdk2.getAmop();
- TestAmopCallback defaultCb = new TestAmopCallback("#!$TopicNeedVerify_privTopic", "send private msg");
+ TestAmopCallback defaultCb =
+ new TestAmopCallback("#!$TopicNeedVerify_privTopic", "send private msg");
subscriber.setCallback(defaultCb);
subscriber.subscribeTopic("test", new TestAmopCallback("test", "Tell you th."));
}
@@ -122,8 +134,8 @@ public TestAmopCallback(String topic, String content) {
@Override
public byte[] receiveAmopMsg(AmopMsgIn msg) {
- //Assert.assertEquals(topic,msg.getTopic());
- //Assert.assertEquals(content,new String(msg.getContent()));
+ // Assert.assertEquals(topic,msg.getTopic());
+ // Assert.assertEquals(content,new String(msg.getContent()));
System.out.println("on subscribed topic msg");
return "Yes, I received.".getBytes();
diff --git a/src/integration-test/java/org/fisco/bcos/sdk/channel/ChannelTest.java b/src/integration-test/java/org/fisco/bcos/sdk/channel/ChannelTest.java
index 13976783e..7b7c4613f 100644
--- a/src/integration-test/java/org/fisco/bcos/sdk/channel/ChannelTest.java
+++ b/src/integration-test/java/org/fisco/bcos/sdk/channel/ChannelTest.java
@@ -15,8 +15,11 @@
package org.fisco.bcos.sdk.channel;
+import static org.junit.Assert.fail;
+
import com.fasterxml.jackson.core.JsonProcessingException;
import io.netty.channel.ChannelHandlerContext;
+import java.util.List;
import org.fisco.bcos.sdk.channel.model.EnumChannelProtocolVersion;
import org.fisco.bcos.sdk.channel.model.HeartBeatParser;
import org.fisco.bcos.sdk.channel.model.NodeHeartbeat;
@@ -35,37 +38,36 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.List;
-
-import static org.junit.Assert.fail;
-
public class ChannelTest {
private Logger logger = LoggerFactory.getLogger(ChannelImp.class);
private Channel channel;
@Test
public void testConnect() throws ConfigException {
- ConfigOption configOption = Config.load("src/integration-test/resources/" + ConstantConfig.CONFIG_FILE_NAME);
+ ConfigOption configOption =
+ Config.load("src/integration-test/resources/" + ConstantConfig.CONFIG_FILE_NAME);
channel = Channel.build(configOption);
class TestMsgHandler implements MsgHandler {
@Override
public void onConnect(ChannelHandlerContext ctx) {
- logger.info("OnConnect in ChannelTest called: "+ctx.channel().remoteAddress());
+ logger.info("OnConnect in ChannelTest called: " + ctx.channel().remoteAddress());
}
+
@Override
public void onMessage(ChannelHandlerContext ctx, Message msg) {
- logger.info("onMessage in ChannelTest called: "+ctx.channel().remoteAddress());
+ logger.info("onMessage in ChannelTest called: " + ctx.channel().remoteAddress());
}
+
@Override
public void onDisconnect(ChannelHandlerContext ctx) {
- logger.info("onDisconnect in ChannelTest called: "+ctx.channel().remoteAddress());
+ logger.info("onDisconnect in ChannelTest called: " + ctx.channel().remoteAddress());
}
}
TestMsgHandler testMsgHandler = new TestMsgHandler();
channel.addConnectHandler(testMsgHandler);
channel.addMessageHandler(MsgType.CHANNEL_RPC_REQUEST, testMsgHandler);
channel.addDisconnectHandler(testMsgHandler);
- try{
+ try {
channel.start();
sendMessage();
Thread.sleep(10000);
@@ -78,7 +80,7 @@ public void onDisconnect(ChannelHandlerContext ctx) {
// use heart beat for case to send
private void sendMessage() {
- List peers = channel.getAvailablePeer();
+ List peers = channel.getAvailablePeer();
if (peers.size() == 0) {
fail("Empty available peer");
}
@@ -88,7 +90,8 @@ private void sendMessage() {
message.setSeq(ChannelUtils.newSeq());
message.setResult(0);
message.setType(Short.valueOf((short) MsgType.CLIENT_HEARTBEAT.getType()));
- HeartBeatParser heartBeatParser = new HeartBeatParser(EnumChannelProtocolVersion.VERSION_1);
+ HeartBeatParser heartBeatParser =
+ new HeartBeatParser(EnumChannelProtocolVersion.VERSION_1);
message.setData(heartBeatParser.encode("0"));
logger.trace(
"encodeHeartbeatToMessage, seq: {}, content: {}, messageType: {}",
@@ -111,12 +114,16 @@ public void onResponse(Response response) {
ObjectMapperFactory.getObjectMapper()
.readValue(response.getContent(), NodeHeartbeat.class);
int heartBeat = nodeHeartbeat.getHeartBeat();
- logger.trace(" heartbeat packet in ChannelTest, heartbeat is {} ", heartBeat);
+ logger.trace(
+ " heartbeat packet in ChannelTest, heartbeat is {} ",
+ heartBeat);
if (heartBeat != 1) {
fail("heartbeat packet in ChannelTest fail");
}
} catch (Exception e) {
- fail(" channel protocol heartbeat failed, exception: " + e.getMessage());
+ fail(
+ " channel protocol heartbeat failed, exception: "
+ + e.getMessage());
}
}
};
diff --git a/src/integration-test/java/org/fisco/bcos/sdk/eventsub/SubscribeTest.java b/src/integration-test/java/org/fisco/bcos/sdk/eventsub/SubscribeTest.java
index d52c8f8ca..85c325e3b 100644
--- a/src/integration-test/java/org/fisco/bcos/sdk/eventsub/SubscribeTest.java
+++ b/src/integration-test/java/org/fisco/bcos/sdk/eventsub/SubscribeTest.java
@@ -16,10 +16,13 @@
package org.fisco.bcos.sdk.eventsub;
import com.google.common.collect.Lists;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.Semaphore;
import org.fisco.bcos.sdk.BcosSDK;
import org.fisco.bcos.sdk.abi.ABICodec;
import org.fisco.bcos.sdk.abi.ABICodecException;
-import org.fisco.bcos.sdk.config.exceptions.ConfigException;
import org.fisco.bcos.sdk.abi.tools.TopicTools;
import org.fisco.bcos.sdk.client.Client;
import org.fisco.bcos.sdk.crypto.CryptoInterface;
@@ -33,13 +36,13 @@
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.Semaphore;
public class SubscribeTest {
- private static final String configFile = SubscribeTest.class.getClassLoader().getResource(ConstantConfig.CONFIG_FILE_NAME).getPath();
+ private static final String configFile =
+ SubscribeTest.class
+ .getClassLoader()
+ .getResource(ConstantConfig.CONFIG_FILE_NAME)
+ .getPath();
private static final Logger logger = LoggerFactory.getLogger(SubscribeTest.class);
private static final String abiFile = "src/integration-test/resources/abi/";
private static final String binFile = "src/integration-test/resources/bin/";
@@ -49,14 +52,15 @@ public class SubscribeTest {
@Test
public void testEventSubModule() {
// Init event subscribe module.
- BcosSDK sdk = BcosSDK.build(configFile);
+ BcosSDK sdk = BcosSDK.build(configFile);
Client client = sdk.getClient(Integer.valueOf(1));
EventSubscribe eventSubscribe = sdk.getEventSubscribe(client.getGroupId());
eventSubscribe.start();
String contractAddress = "";
try {
- AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager(client,
- client.getCryptoInterface(), abiFile, binFile);
+ AssembleTransactionManager manager =
+ TransactionManagerFactory.createAssembleTransactionManager(
+ client, client.getCryptoInterface(), abiFile, binFile);
// deploy
List