From 9f45f8a764bcc73bc91144c5291bd98227bc2d80 Mon Sep 17 00:00:00 2001 From: cyjseagull Date: Wed, 23 Sep 2020 00:43:24 +0800 Subject: [PATCH] refactor code according to reviews 1. update build.gradle to unify the version 2. rename PEMManager to PEMKeyStore, P12Manager to P12KeyStore 3. modify cryptoInterface param when deploying/call contracts to CryptoKeyPair --- build.gradle | 45 ++++----- .../java/org/fisco/bcos/sdk/amop/AmopImp.java | 10 +- .../bcos/sdk/amop/AmopMsgHandlerTest.java | 10 +- .../fisco/bcos/sdk/amop/TopicManagerTest.java | 6 +- .../sdk/codegen/SolidityContractWrapper.java | 22 +++-- .../bcos/sdk/crypto/CryptoInterface.java | 8 +- .../sdk/crypto/keypair/CryptoKeyPair.java | 8 +- .../{P12Manager.java => P12KeyStore.java} | 4 +- .../{PEMManager.java => PEMKeyStore.java} | 4 +- .../org/fisco/bcos/sdk/crypto/HashTest.java | 2 +- .../fisco/bcos/sdk/crypto/KeyManagerTest.java | 10 +- .../fisco/bcos/sdk/crypto/SignatureTest.java | 18 ++-- sdk-demo/build.gradle | 8 +- .../demo/amop/tool/AmopPublisherPrivate.java | 6 +- .../amop/tool/AmopPublisherPrivateFile.java | 6 +- .../demo/amop/tool/AmopSubscriberPrivate.java | 8 +- .../bcos/sdk/demo/contract/DagTransfer.java | 18 ++-- .../bcos/sdk/demo/contract/HelloWorld.java | 23 +++-- .../org/fisco/bcos/sdk/demo/contract/Ok.java | 21 +++-- .../org/fisco/bcos/sdk/demo/contract/OkD.java | 21 +++-- .../bcos/sdk/demo/contract/ParallelOk.java | 23 +++-- .../bcos/sdk/demo/contract/TableTest.java | 23 +++-- .../org/fisco/bcos/sdk/demo/event/SendOk.java | 2 +- .../bcos/sdk/demo/perf/ParallelOkPerf.java | 7 +- .../bcos/sdk/demo/perf/PerformanceOk.java | 2 +- .../bcos/sdk/demo/perf/PerformanceOkD.java | 2 +- .../bcos/sdk/demo/perf/PerformanceTable.java | 3 +- .../perf/parallel/DagPrecompiledDemo.java | 4 +- .../{transaction => }/contract/Contract.java | 34 ++++--- .../callback/PrecompiledCallback.java | 0 .../precompiled/cns/CNSPrecompiled.java | 22 +++-- .../contract/precompiled/cns/CnsInfo.java | 0 .../contract/precompiled/cns/CnsService.java | 4 +- .../consensus/ConsensusPrecompiled.java | 22 +++-- .../consensus/ConsensusService.java | 4 +- .../ContractLifeCyclePrecompiled.java | 21 +++-- .../contractmgr/ContractLifeCycleService.java | 4 +- .../contract/precompiled/crud/CRUD.java | 17 ++-- .../precompiled/crud/TableCRUDService.java | 6 +- .../precompiled/crud/common/Condition.java | 0 .../crud/common/ConditionOperator.java | 0 .../precompiled/crud/common/Entry.java | 0 .../precompiled/crud/table/TableFactory.java | 18 ++-- .../precompiled/model/PrecompiledAddress.java | 0 .../model/PrecompiledResponse.java | 0 .../model/PrecompiledVersionCheck.java | 0 .../contract/precompiled/model/Version.java | 0 .../ChainGovernancePrecompiled.java | 21 +++-- .../permission/ChainGovernanceService.java | 4 +- .../permission/PermissionInfo.java | 0 .../permission/PermissionPrecompiled.java | 22 +++-- .../permission/PermissionService.java | 4 +- .../precompiled/sol/CNSPrecompiled.sol | 0 .../contract/precompiled/sol/CRUD.sol | 0 .../precompiled/sol/CRUDPrecompiled.sol | 0 .../sol/ChainGovernancePrecompiled.sol | 0 .../precompiled/sol/ConsensusPrecompiled.sol | 0 .../sol/ContractLifeCyclePrecompiled.sol | 0 .../sol/ParallelConfigPrecompiled.sol | 0 .../precompiled/sol/PermissionPrecompiled.sol | 0 .../sol/SystemConfigPrecompiled.sol | 0 .../contract/precompiled/sol/TableFactory.sol | 0 .../sysconfig/SystemConfigPrecompiled.java | 22 +++-- .../sysconfig/SystemConfigService.java | 4 +- .../encode/TransactionEncoderInterface.java | 5 +- .../encode/TransactionEncoderService.java | 12 ++- .../manager/AssembleTransactionManager.java | 25 ++--- .../manager/TransactionManager.java | 28 +++--- .../manager/TransactionManagerFactory.java | 14 +-- .../manager/TransactionManagerInterface.java | 11 ++- .../signer/TransactionSignerInterface.java | 3 +- .../signer/TransactionSignerServcie.java | 15 +-- .../java/org/fisco/bcos/sdk/BcosSDKTest.java | 13 +-- .../bcos/sdk/eventsub/SubscribeTest.java | 2 +- .../bcos/sdk/precompiled/PrecompiledTest.java | 93 +++++++++---------- .../transaction/decoder/EventDecodeTest.java | 2 +- .../TransactionDecoderServiceTest.java | 2 +- .../AssembleTransactionManagerTest.java | 33 ++++--- 78 files changed, 450 insertions(+), 361 deletions(-) rename sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/{P12Manager.java => P12KeyStore.java} (98%) rename sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/{PEMManager.java => PEMKeyStore.java} (98%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/Contract.java (94%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/callback/PrecompiledCallback.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/cns/CNSPrecompiled.java (92%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/cns/CnsInfo.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/cns/CnsService.java (97%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/consensus/ConsensusPrecompiled.java (93%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/consensus/ConsensusService.java (96%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java (94%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/contractmgr/ContractLifeCycleService.java (97%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/crud/CRUD.java (97%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/crud/TableCRUDService.java (98%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/crud/common/Condition.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/crud/common/ConditionOperator.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/crud/common/Entry.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/crud/table/TableFactory.java (90%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/model/PrecompiledAddress.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/model/PrecompiledResponse.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/model/PrecompiledVersionCheck.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/model/Version.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/permission/ChainGovernancePrecompiled.java (97%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/permission/ChainGovernanceService.java (98%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/permission/PermissionInfo.java (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/permission/PermissionPrecompiled.java (95%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/permission/PermissionService.java (98%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/CNSPrecompiled.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/CRUD.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/CRUDPrecompiled.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/ChainGovernancePrecompiled.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/ConsensusPrecompiled.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/ContractLifeCyclePrecompiled.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/ParallelConfigPrecompiled.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/PermissionPrecompiled.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/SystemConfigPrecompiled.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sol/TableFactory.sol (100%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sysconfig/SystemConfigPrecompiled.java (87%) rename sdk-transaction/src/main/java/org/fisco/bcos/sdk/{transaction => }/contract/precompiled/sysconfig/SystemConfigService.java (91%) diff --git a/build.gradle b/build.gradle index 163ce61ad..0139053ad 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,14 @@ ext { toml4jVersion = "0.7.2" bcprovJDK15onVersion = "1.60" keyMiniToolkit = "1.0-SNAPSHOT" + + solcJVersion = "0.4.25.1" + //solcJVersion = "0.5.2.0" + //solcJVersion = "0.6.10.0" + slf4jVersion = "1.7.30" + junitVersion = "4.12" + commonsCollections4Version = "4.4" + guavaVersion = "29.0-jre" } // check.dependsOn integrationTest @@ -59,8 +67,8 @@ allprojects { } dependencies { - compile 'org.slf4j:slf4j-api:1.7.30' - testCompile 'junit:junit:4.12' + compile ("org.slf4j:slf4j-api:${slf4jVersion}") + testCompile ("junit:junit:${junitVersion}") } clean.doLast { @@ -159,25 +167,20 @@ task integrationTest(type: Test) { } dependencies { - 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' - compile 'com.fasterxml.jackson.core:jackson-databind:2.11.0' - compile group: 'commons-codec', name: 'commons-codec', version: '1.14' - compile 'org.slf4j:slf4j-api:1.7.30' - compile 'com.google.guava:guava:29.0-jre' - compile 'org.apache.commons:commons-collections4:4.4' - compile 'commons-io:commons-io:2.4' - compile 'com.squareup:javapoet:1.7.0' - compile 'info.picocli:picocli:3.6.0' - 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.webank:key-mini-toolkit:1.0-SNAPSHOT' - compile 'com.moandjiezana.toml:toml4j:0.7.2' - testCompile 'junit:junit:4.12' - testCompile 'org.mockito:mockito-core:2.23.0' + compile ("org.bouncycastle:bcprov-jdk15on:${bcprovJDK15onVersion}") + 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 ("commons-io:commons-io:${commonsIOVersion}") + compile ("com.squareup:javapoet:${javapoetVersion}") + compile ("info.picocli:picocli:${picocliVersion}") + compile ("com.webank:key-mini-toolkit:${keyMiniToolkit}") + compile ("com.moandjiezana.toml:toml4j:${toml4jVersion}") + + testCompile ("org.apache.commons:commons-collections4:${commonsCollections4Version}") + testCompile ("org.fisco-bcos:solcJ:${solcJVersion}") + testCompile ("com.google.guava:guava:${guavaVersion}") } googleJavaFormat { options style: 'AOSP' diff --git a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java index eb8c8ff84..dd705e9bd 100644 --- a/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java +++ b/sdk-amop/src/main/java/org/fisco/bcos/sdk/amop/AmopImp.java @@ -29,8 +29,8 @@ import org.fisco.bcos.sdk.config.ConfigOption; import org.fisco.bcos.sdk.config.model.AmopTopic; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.P12Manager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.AmopMsg; import org.fisco.bcos.sdk.model.Message; import org.fisco.bcos.sdk.model.MsgType; @@ -247,15 +247,15 @@ private void loadConfiguredTopics(ConfigOption config) throws AmopException { KeyManager km; if (privKeyFile.endsWith("p12")) { - km = new P12Manager(privKeyFile, topic.getPassword()); + km = new P12KeyStore(privKeyFile, topic.getPassword()); } else { - km = new PEMManager(privKeyFile); + km = new PEMKeyStore(privKeyFile); } topicManager.addPrivateTopicSubscribe(topic.getTopicName(), km, null); } else if (null != topic.getPublicKeys()) { List pubList = new ArrayList<>(); for (String pubKey : topic.getPublicKeys()) { - KeyManager km = new PEMManager(pubKey); + KeyManager km = new PEMKeyStore(pubKey); pubList.add(km); } topicManager.addPrivateTopicSend(topic.getTopicName(), pubList); diff --git a/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java index 61e4b3086..2f6601795 100644 --- a/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java +++ b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/AmopMsgHandlerTest.java @@ -10,8 +10,8 @@ import org.fisco.bcos.sdk.channel.ResponseCallback; import org.fisco.bcos.sdk.crypto.CryptoInterface; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.P12Manager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.AmopMsg; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.Message; @@ -104,7 +104,7 @@ public void testSignRandom() throws JsonProcessingException { .getResource( "keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem") .getPath(); - KeyManager km = new PEMManager(keyFile); + KeyManager km = new PEMKeyStore(keyFile); Assert.assertTrue( cryptoInterface.verify( km, @@ -177,7 +177,7 @@ private void initEnv() { .getResource( "keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem") .getPath(); - list.add(new PEMManager(keyFile)); + list.add(new PEMKeyStore(keyFile)); topicManagerSender.addPrivateTopicSend("priv1", list); TopicManager topicManagerSub; @@ -189,7 +189,7 @@ private void initEnv() { .getResource( "keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.p12") .getPath(); - topicManagerSub.addPrivateTopicSubscribe("priv1", new P12Manager(privKey, "123456"), null); + topicManagerSub.addPrivateTopicSubscribe("priv1", new P12KeyStore(privKey, "123456"), null); } private AmopMsg getAmopMsg(String topic, byte[] content) { diff --git a/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java index cf52aaf8e..ebfca8de5 100644 --- a/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java +++ b/sdk-amop/src/test/java/org/fisco/bcos/sdk/amop/TopicManagerTest.java @@ -21,7 +21,7 @@ import org.fisco.bcos.sdk.amop.topic.AmopMsgIn; import org.fisco.bcos.sdk.amop.topic.TopicManager; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.junit.Assert; import org.junit.Test; @@ -42,7 +42,7 @@ public void testAddTopic() { .getResource( "keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem") .getPath(); - KeyManager km = new PEMManager(keyFile); + KeyManager km = new PEMKeyStore(keyFile); topicManager.addPrivateTopicSubscribe("priv", km, null); Assert.assertEquals( "#!$TopicNeedVerify_priv", @@ -151,7 +151,7 @@ private TopicManager getTestTopicManager() { .getResource( "keystore/ecdsa/0x0fc3c4bb89bd90299db4c62be0174c4966286c00.pem") .getPath(); - KeyManager km = new PEMManager(keyFile); + KeyManager km = new PEMKeyStore(keyFile); topicManager.addPrivateTopicSubscribe("priv", km, null); List list = new ArrayList<>(); list.add(km); diff --git a/sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractWrapper.java b/sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractWrapper.java index af45f0d6a..8d63c5646 100644 --- a/sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractWrapper.java +++ b/sdk-codegen/src/main/java/org/fisco/bcos/sdk/codegen/SolidityContractWrapper.java @@ -56,6 +56,7 @@ import org.fisco.bcos.sdk.codegen.exceptions.CodeGenException; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.eventsub.EventCallback; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; @@ -84,6 +85,7 @@ public class SolidityContractWrapper { private static final String GET_BINARY_FUNC = "getBinary"; private static final String CLIENT = "client"; private static final String CREDENTIAL = "credential"; + private static final String CRYPTOINTERFACE = "cryptoInterface"; private static final String CONTRACT_ADDRESS = "contractAddress"; private static final String FROM_BLOCK = "fromBlock"; private static final String TO_BLOCK = "toBlock"; @@ -119,12 +121,12 @@ public void generateJavaFiles( TypeSpec.Builder classBuilder = createClassBuilder(className, bin, smBin, abi); classBuilder.addMethod( - buildGetBinaryMethod(CryptoInterface.class, CryptoType.class, CREDENTIAL)); - classBuilder.addMethod(buildConstructor(CryptoInterface.class, CREDENTIAL)); + buildGetBinaryMethod(CryptoInterface.class, CryptoType.class, CRYPTOINTERFACE)); + classBuilder.addMethod(buildConstructor(CryptoKeyPair.class, CREDENTIAL)); classBuilder.addFields(buildFuncNameConstants(abiDefinitions)); classBuilder.addMethods(buildFunctionDefinitions(classBuilder, abiDefinitions)); - classBuilder.addMethod(buildLoad(className, CryptoInterface.class, CREDENTIAL)); + classBuilder.addMethod(buildLoad(className, CryptoKeyPair.class, CREDENTIAL)); classBuilder.addMethods(buildDeployMethods(className, abiDefinitions)); write(basePackageName, classBuilder.build(), destinationDir); @@ -278,13 +280,13 @@ private List buildDeployMethods( constructor = true; methodSpecs.add( buildDeploy( - className, functionDefinition, CryptoInterface.class, CREDENTIAL)); + className, functionDefinition, CryptoKeyPair.class, CREDENTIAL)); } } // constructor will not be specified in ABI file if its empty if (!constructor) { MethodSpec.Builder credentialsMethodBuilder = - getDeployMethodSpec(className, CryptoInterface.class, CREDENTIAL); + getDeployMethodSpec(className, CryptoKeyPair.class, CREDENTIAL); methodSpecs.add(buildDeployNoParams(credentialsMethodBuilder, className, CREDENTIAL)); } return methodSpecs; @@ -343,7 +345,7 @@ private static MethodSpec buildConstructor(Class authType, String authName) { .addParameter(authType, authName) .addStatement( "super($N, $N, $N, $N)", - getBinaryFuncDefinition(authName), + getBinaryFuncDefinition(), CONTRACT_ADDRESS, CLIENT, authName); @@ -381,7 +383,7 @@ private static MethodSpec buildDeployWithParams( className, CLIENT, authName, - getBinaryFuncDefinition(authName)); + getBinaryFuncDefinition()); return methodBuilder.build(); } @@ -392,7 +394,7 @@ private static MethodSpec buildDeployNoParams( className, CLIENT, authName, - getBinaryFuncDefinition(authName)); + getBinaryFuncDefinition()); return methodBuilder.build(); } @@ -1415,7 +1417,7 @@ public boolean isIndexed() { } } - private static String getBinaryFuncDefinition(String authName) { - return GET_BINARY_FUNC + "(" + authName + ")"; + private static String getBinaryFuncDefinition() { + return GET_BINARY_FUNC + "(client.getCryptoInterface())"; } } diff --git a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java index dc8bccf3b..ab32b664e 100644 --- a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java +++ b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/CryptoInterface.java @@ -25,8 +25,8 @@ import org.fisco.bcos.sdk.crypto.keypair.ECDSAKeyPair; import org.fisco.bcos.sdk.crypto.keypair.SM2KeyPair; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.P12Manager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.crypto.signature.ECDSASignature; import org.fisco.bcos.sdk.crypto.signature.SM2Signature; import org.fisco.bcos.sdk.crypto.signature.Signature; @@ -90,9 +90,9 @@ public CryptoInterface(int cryptoTypeConfig) { public void loadAccount(String accountFileFormat, String accountFilePath, String password) { KeyManager keyManager = null; if (accountFileFormat.compareToIgnoreCase("p12") == 0) { - keyManager = new P12Manager(accountFilePath, password); + keyManager = new P12KeyStore(accountFilePath, password); } else if (accountFileFormat.compareToIgnoreCase("pem") == 0) { - keyManager = new PEMManager(accountFilePath); + keyManager = new PEMKeyStore(accountFilePath); } else { throw new LoadKeyStoreException( "unsupported account file format : " diff --git a/sdk-crypto/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 index 2f39b3995..15f7234d9 100644 --- a/sdk-crypto/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 @@ -24,8 +24,8 @@ import org.fisco.bcos.sdk.crypto.exceptions.KeyPairException; import org.fisco.bcos.sdk.crypto.hash.Hash; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.P12Manager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.utils.Hex; import org.fisco.bcos.sdk.utils.Numeric; import org.fisco.bcos.sdk.utils.StringUtils; @@ -184,7 +184,7 @@ public byte[] getAddress(BigInteger publicKey) { } public void storeKeyPairWithPem(String keyStoreFilePath) { - PEMManager.storeKeyPairWithPemFormat(this.hexPrivateKey, keyStoreFilePath, curveName); + PEMKeyStore.storeKeyPairWithPemFormat(this.hexPrivateKey, keyStoreFilePath, curveName); } public void storeKeyPairWithPemFormat() { @@ -202,7 +202,7 @@ public void storeKeyPairWithPemFormat() { } public void storeKeyPairWithP12(String p12FilePath, String password) { - P12Manager.storeKeyPairWithP12Format( + P12KeyStore.storeKeyPairWithP12Format( this.hexPrivateKey, password, p12FilePath, curveName, signatureAlgorithm); } diff --git a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12Manager.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12KeyStore.java similarity index 98% rename from sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12Manager.java rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12KeyStore.java index be01dc744..f9d8f8e93 100644 --- a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12Manager.java +++ b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/P12KeyStore.java @@ -37,11 +37,11 @@ import org.fisco.bcos.sdk.crypto.exceptions.LoadKeyStoreException; import org.fisco.bcos.sdk.crypto.exceptions.SaveKeyStoreException; -public class P12Manager extends KeyManager { +public class P12KeyStore extends KeyManager { private static final String NAME = "key"; private KeyStore keyStore; - public P12Manager(final String keyStoreFile, final String password) { + public P12KeyStore(final String keyStoreFile, final String password) { super(keyStoreFile, password); } diff --git a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMManager.java b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMKeyStore.java similarity index 98% rename from sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMManager.java rename to sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMKeyStore.java index 242b23670..a1e6b7207 100644 --- a/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMManager.java +++ b/sdk-crypto/src/main/java/org/fisco/bcos/sdk/crypto/keystore/PEMKeyStore.java @@ -32,11 +32,11 @@ import org.fisco.bcos.sdk.crypto.exceptions.LoadKeyStoreException; import org.fisco.bcos.sdk.crypto.exceptions.SaveKeyStoreException; -public class PEMManager extends KeyManager { +public class PEMKeyStore extends KeyManager { public static final String PRIVATE_KEY = "PRIVATE KEY"; private PemObject pem; - public PEMManager(final String keyStoreFile) { + public PEMKeyStore(final String keyStoreFile) { super(keyStoreFile); } diff --git a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/HashTest.java b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/HashTest.java index 922ce02fe..9587ec7d9 100644 --- a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/HashTest.java +++ b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/HashTest.java @@ -11,7 +11,7 @@ * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ -package org.fisco.bcos.sdk.test.crypto; +package org.fisco.bcos.sdk.crypto; import org.fisco.bcos.sdk.crypto.CryptoInterface; import org.fisco.bcos.sdk.crypto.exceptions.UnsupportedCryptoTypeException; diff --git a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyManagerTest.java b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyManagerTest.java index 32d01d859..12a9acc9c 100644 --- a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyManagerTest.java +++ b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/KeyManagerTest.java @@ -11,15 +11,15 @@ * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ -package org.fisco.bcos.sdk.test.crypto; +package org.fisco.bcos.sdk.crypto; import java.security.KeyPair; import org.fisco.bcos.sdk.crypto.CryptoInterface; import org.fisco.bcos.sdk.crypto.exceptions.LoadKeyStoreException; import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.P12Manager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.CryptoType; import org.junit.Assert; import org.junit.Test; @@ -155,14 +155,14 @@ private String getFilePath(String fileName) { private CryptoKeyPair testLoadPEMFile( String pemFileName, int cryptoType, String expectedAccount) { // get KeyPair from the pem - KeyManager pem = new PEMManager(getFilePath(pemFileName)); + KeyManager pem = new PEMKeyStore(getFilePath(pemFileName)); KeyPair keyPair = pem.getKeyPair(); return testSignature(keyPair, cryptoType, expectedAccount); } private CryptoKeyPair testLoadP12File( String p12FileName, int cryptoType, String password, String expectedAccount) { - KeyManager p12 = new P12Manager(getFilePath(p12FileName), password); + KeyManager p12 = new P12KeyStore(getFilePath(p12FileName), password); KeyPair keyPair = p12.getKeyPair(); return testSignature(keyPair, cryptoType, expectedAccount); } diff --git a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java index 493e51308..5c3b84bad 100644 --- a/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java +++ b/sdk-crypto/src/test/java/org/fisco/bcos/sdk/crypto/SignatureTest.java @@ -11,7 +11,7 @@ * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ -package org.fisco.bcos.sdk.test.crypto; +package org.fisco.bcos.sdk.crypto; import java.io.File; import java.math.BigInteger; @@ -27,8 +27,8 @@ import org.fisco.bcos.sdk.crypto.keypair.ECDSAKeyPair; import org.fisco.bcos.sdk.crypto.keypair.SM2KeyPair; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.P12Manager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.crypto.signature.ECDSASignature; import org.fisco.bcos.sdk.crypto.signature.SM2Signature; import org.fisco.bcos.sdk.crypto.signature.Signature; @@ -299,11 +299,11 @@ public void testSignAndVerifyWithKeyManager() { String publicKeyPem = "keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.public.pem"; KeyManager verifykeyManager = - new PEMManager(getClass().getClassLoader().getResource(publicKeyPem).getPath()); + new PEMKeyStore(getClass().getClassLoader().getResource(publicKeyPem).getPath()); String keyPairPem = "keystore/ecdsa/0x45e14c53197adbcb719d915fb93342c25600faaf.p12"; KeyManager signKeyManager = - new P12Manager( + new P12KeyStore( getClass().getClassLoader().getResource(keyPairPem).getPath(), "123456"); CryptoInterface cryptoInterface = new CryptoInterface(CryptoType.ECDSA_TYPE); // sign and verify message with keyManager @@ -357,7 +357,7 @@ public void testLoadAndStoreKeyPairWithPEM(int cryptoType) throws ConfigExceptio String pemFilePath = getKeyStoreFilePath(cryptoInterface, configOption, CryptoKeyPair.PEM_FILE_POSTFIX); // load pem file - KeyManager pemManager = new PEMManager(pemFilePath); + KeyManager pemManager = new PEMKeyStore(pemFilePath); CryptoKeyPair decodedCryptoKeyPair = cryptoInterface.createKeyPair(pemManager.getKeyPair()); System.out.println("PEM orgKeyPair pub: " + orgKeyPair.getHexPublicKey()); @@ -368,7 +368,7 @@ public void testLoadAndStoreKeyPairWithPEM(int cryptoType) throws ConfigExceptio // test sign and verify message with String publicPemPath = pemFilePath + ".pub"; - KeyManager verifyKeyManager = new PEMManager(publicPemPath); + KeyManager verifyKeyManager = new PEMKeyStore(publicPemPath); checkSignAndVerifyWithKeyManager( pemManager, decodedCryptoKeyPair, verifyKeyManager, cryptoInterface); @@ -386,7 +386,7 @@ public void testLoadAndStoreKeyPairWithP12(int cryptoType) throws ConfigExceptio String p12FilePath = getKeyStoreFilePath(cryptoInterface, configOption, CryptoKeyPair.P12_FILE_POSTFIX); // load p12 file - KeyManager p12Manager = new P12Manager(p12FilePath, password); + KeyManager p12Manager = new P12KeyStore(p12FilePath, password); CryptoKeyPair decodedCryptoKeyPair = cryptoInterface.createKeyPair(p12Manager.getKeyPair()); // check the keyPair System.out.println("P12 orgKeyPair pub: " + orgKeyPair.getHexPublicKey()); @@ -402,7 +402,7 @@ public void testLoadAndStoreKeyPairWithP12(int cryptoType) throws ConfigExceptio // test sign and verify message with String publicP12Path = p12FilePath + ".pub"; - KeyManager verifyKeyManager = new PEMManager(publicP12Path); + KeyManager verifyKeyManager = new PEMKeyStore(publicP12Path); checkSignAndVerifyWithKeyManager( p12Manager, decodedCryptoKeyPair, verifyKeyManager, cryptoInterface); } diff --git a/sdk-demo/build.gradle b/sdk-demo/build.gradle index b39946f5b..9412920eb 100644 --- a/sdk-demo/build.gradle +++ b/sdk-demo/build.gradle @@ -4,10 +4,8 @@ plugins { } 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' + compile ("org.fisco-bcos:solcJ:${solcJVersion}") + compile ("com.google.guava:guava:${guavaVersion}") + compile ("org.apache.commons:commons-collections4:${commonsCollections4Version}") } diff --git a/sdk-demo/src/main/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 index 9b7511340..cb3bfa355 100644 --- a/sdk-demo/src/main/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 @@ -8,7 +8,7 @@ import org.fisco.bcos.sdk.amop.topic.TopicType; import org.fisco.bcos.sdk.channel.ResponseCallback; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.Response; public class AmopPublisherPrivate { @@ -50,10 +50,10 @@ public static void main(String[] args) throws Exception { System.out.println("==================================================================="); System.out.println("set up private topic"); List kml = new ArrayList<>(); - KeyManager km1 = new PEMManager(pubkey1); + KeyManager km1 = new PEMKeyStore(pubkey1); kml.add(km1); if (!pubkey2.equals("null")) { - KeyManager km2 = new PEMManager(pubkey2); + KeyManager km2 = new PEMKeyStore(pubkey2); kml.add(km2); } amop.publishPrivateTopic(topicName, kml); diff --git a/sdk-demo/src/main/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 index 4432f4d5f..863078042 100644 --- a/sdk-demo/src/main/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 @@ -13,7 +13,7 @@ import org.fisco.bcos.sdk.amop.topic.TopicType; import org.fisco.bcos.sdk.channel.ResponseCallback; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; import org.fisco.bcos.sdk.model.Response; public class AmopPublisherPrivateFile { @@ -55,10 +55,10 @@ public static void main(String[] args) throws Exception { System.out.println("==================================================================="); System.out.println("set up private topic"); List kml = new ArrayList<>(); - KeyManager km1 = new PEMManager(pubkey1); + KeyManager km1 = new PEMKeyStore(pubkey1); kml.add(km1); if (!pubkey2.equals("null")) { - KeyManager km2 = new PEMManager(pubkey2); + KeyManager km2 = new PEMKeyStore(pubkey2); kml.add(km2); } amop.publishPrivateTopic(topicName, kml); diff --git a/sdk-demo/src/main/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 index 1a652cd23..b3c1e3043 100644 --- a/sdk-demo/src/main/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 @@ -4,8 +4,8 @@ import org.fisco.bcos.sdk.amop.Amop; import org.fisco.bcos.sdk.amop.AmopCallback; import org.fisco.bcos.sdk.crypto.keystore.KeyManager; -import org.fisco.bcos.sdk.crypto.keystore.P12Manager; -import org.fisco.bcos.sdk.crypto.keystore.PEMManager; +import org.fisco.bcos.sdk.crypto.keystore.P12KeyStore; +import org.fisco.bcos.sdk.crypto.keystore.PEMKeyStore; public class AmopSubscriberPrivate { private static String subscriberConfigFile = @@ -35,9 +35,9 @@ public static void main(String[] args) throws Exception { KeyManager km; if (privateKeyFile.endsWith("p12")) { String password = args[2]; - km = new P12Manager(privateKeyFile, password); + km = new P12KeyStore(privateKeyFile, password); } else { - km = new PEMManager(privateKeyFile); + km = new PEMKeyStore(privateKeyFile); } amop.subscribePrivateTopics(topic, km, cb); amop.subscribeTopic(topic, cb); diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/DagTransfer.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/DagTransfer.java index 1f16d95fa..195dc8ec5 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/DagTransfer.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/DagTransfer.java @@ -16,6 +16,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -47,12 +48,14 @@ public class DagTransfer extends Contract { public static final String FUNC_USERDRAW = "userDraw"; - protected DagTransfer(String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + protected DagTransfer(String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt userTransfer(String user_a, String user_b, BigInteger amount) { @@ -309,12 +312,13 @@ public Tuple1 getUserDrawOutput(TransactionReceipt transactionReceip } public static DagTransfer load( - String contractAddress, Client client, CryptoInterface credential) { + String contractAddress, Client client, CryptoKeyPair credential) { return new DagTransfer(contractAddress, client, credential); } - public static DagTransfer deploy(Client client, CryptoInterface credential) + public static DagTransfer deploy(Client client, CryptoKeyPair credential) throws ContractException { - return deploy(DagTransfer.class, client, credential, getBinary(credential), ""); + return deploy( + DagTransfer.class, client, credential, getBinary(client.getCryptoInterface()), ""); } } diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/HelloWorld.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/HelloWorld.java index 3ddab16e3..f8e0a2a92 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/HelloWorld.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/HelloWorld.java @@ -12,6 +12,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -20,13 +21,13 @@ @SuppressWarnings("unchecked") public class HelloWorld extends Contract { public static final String[] BINARY_ARRAY = { - "608060405234801561001057600080fd5b506040805190810160405280600d81526020017f48656c6c6f2c20576f726c6421000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b6102d7806101166000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634ed3885e146100515780636d4ce63c146100ba575b600080fd5b34801561005d57600080fd5b506100b8600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061014a565b005b3480156100c657600080fd5b506100cf610164565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010f5780820151818401526020810190506100f4565b50505050905090810190601f16801561013c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b8060009080519060200190610160929190610206565b5050565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156101fc5780601f106101d1576101008083540402835291602001916101fc565b820191906000526020600020905b8154815290600101906020018083116101df57829003601f168201915b5050505050905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061024757805160ff1916838001178555610275565b82800160010185558215610275579182015b82811115610274578251825591602001919060010190610259565b5b5090506102829190610286565b5090565b6102a891905b808211156102a457600081600090555060010161028c565b5090565b905600a165627a7a72305820f8ba91c7bb7d8fd0a950f8e2c76efc0a8660ab6b75ccc72751bf8c37cbc528390029" + "608060405234801561001057600080fd5b506040805190810160405280600d81526020017f48656c6c6f2c20576f726c6421000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b6102d7806101166000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634ed3885e146100515780636d4ce63c146100ba575b600080fd5b34801561005d57600080fd5b506100b8600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061014a565b005b3480156100c657600080fd5b506100cf610164565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010f5780820151818401526020810190506100f4565b50505050905090810190601f16801561013c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b8060009080519060200190610160929190610206565b5050565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156101fc5780601f106101d1576101008083540402835291602001916101fc565b820191906000526020600020905b8154815290600101906020018083116101df57829003601f168201915b5050505050905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061024757805160ff1916838001178555610275565b82800160010185558215610275579182015b82811115610274578251825591602001919060010190610259565b5b5090506102829190610286565b5090565b6102a891905b808211156102a457600081600090555060010161028c565b5090565b905600a165627a7a7230582035f32cd11f4fdc4d12abab1850ea5b401f853d9ef91e913e4e82d34efa18a2210029" }; public static final String BINARY = String.join("", BINARY_ARRAY); public static final String[] SM_BINARY_ARRAY = { - "608060405234801561001057600080fd5b506040805190810160405280600d81526020017f48656c6c6f2c20576f726c6421000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b6102d7806101166000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063299f7f9d146100515780633590b49f146100e1575b600080fd5b34801561005d57600080fd5b5061006661014a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100a657808201518184015260208101905061008b565b50505050905090810190601f1680156100d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100ed57600080fd5b50610148600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506101ec565b005b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156101e25780601f106101b7576101008083540402835291602001916101e2565b820191906000526020600020905b8154815290600101906020018083116101c557829003601f168201915b5050505050905090565b8060009080519060200190610202929190610206565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061024757805160ff1916838001178555610275565b82800160010185558215610275579182015b82811115610274578251825591602001919060010190610259565b5b5090506102829190610286565b5090565b6102a891905b808211156102a457600081600090555060010161028c565b5090565b905600a165627a7a723058201cf388266185ad35a8a85388ef0ace344ed9dfb6d8d448cfce7cd95fa6db70ab0029" + "608060405234801561001057600080fd5b506040805190810160405280600d81526020017f48656c6c6f2c20576f726c6421000000000000000000000000000000000000008152506000908051906020019061005c929190610062565b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b6102d7806101166000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063299f7f9d146100515780633590b49f146100e1575b600080fd5b34801561005d57600080fd5b5061006661014a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100a657808201518184015260208101905061008b565b50505050905090810190601f1680156100d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100ed57600080fd5b50610148600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506101ec565b005b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156101e25780601f106101b7576101008083540402835291602001916101e2565b820191906000526020600020905b8154815290600101906020018083116101c557829003601f168201915b5050505050905090565b8060009080519060200190610202929190610206565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061024757805160ff1916838001178555610275565b82800160010185558215610275579182015b82811115610274578251825591602001919060010190610259565b5b5090506102829190610286565b5090565b6102a891905b808211156102a457600081600090555060010161028c565b5090565b905600a165627a7a72305820ddb4a8b4c62e003ac9d6ca2396325dcea3b9441c5d2af668d4ccb883a9af271b0029" }; public static final String SM_BINARY = String.join("", SM_BINARY_ARRAY); @@ -41,12 +42,14 @@ public class HelloWorld extends Contract { public static final String FUNC_GET = "get"; - protected HelloWorld(String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + protected HelloWorld(String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt set(String n) { @@ -96,13 +99,13 @@ public String get() throws ContractException { return executeCallWithSingleValueReturn(function, String.class); } - public static HelloWorld load( - String contractAddress, Client client, CryptoInterface credential) { + public static HelloWorld load(String contractAddress, Client client, CryptoKeyPair credential) { return new HelloWorld(contractAddress, client, credential); } - public static HelloWorld deploy(Client client, CryptoInterface credential) + public static HelloWorld deploy(Client client, CryptoKeyPair credential) throws ContractException { - return deploy(HelloWorld.class, client, credential, getBinary(credential), ""); + return deploy( + HelloWorld.class, client, credential, getBinary(client.getCryptoInterface()), ""); } } diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/Ok.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/Ok.java index f1d222488..f9493283d 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/Ok.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/Ok.java @@ -15,6 +15,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.eventsub.EventCallback; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; @@ -24,13 +25,13 @@ @SuppressWarnings("unchecked") public class Ok extends Contract { public static final String[] BINARY_ARRAY = { - "608060405234801561001057600080fd5b5060016000800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506402540be40060006001018190555060028060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006002600101819055506103bf806100c26000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806366c99139146100515780636d4ce63c1461007e575b600080fd5b34801561005d57600080fd5b5061007c600480360381019080803590602001909291905050506100a9565b005b34801561008a57600080fd5b506100936102e1565b6040518082815260200191505060405180910390f35b8060006001015410806100c757506002600101548160026001015401105b156100d1576102de565b8060006001015403600060010181905550806002600101600082825401925050819055507fc77b710b83d1dc3f3fafeccd08a6c469beb873b2f0975b50d1698e46b3ee5b4c816040518082815260200191505060405180910390a160046080604051908101604052806040805190810160405280600881526020017f323031373034313300000000000000000000000000000000000000000000000081525081526020016000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000190805190602001906102419291906102ee565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301555050505b50565b6000600260010154905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061032f57805160ff191683800117855561035d565b8280016001018555821561035d579182015b8281111561035c578251825591602001919060010190610341565b5b50905061036a919061036e565b5090565b61039091905b8082111561038c576000816000905550600101610374565b5090565b905600a165627a7a72305820c39f433fed93fc308e8f2f3b629e9fbabc41d5490ca4858176bd0c2ac2e9a5030029" + "608060405234801561001057600080fd5b5060016000800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506402540be40060006001018190555060028060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006002600101819055506103bf806100c26000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806366c99139146100515780636d4ce63c1461007e575b600080fd5b34801561005d57600080fd5b5061007c600480360381019080803590602001909291905050506100a9565b005b34801561008a57600080fd5b506100936102e1565b6040518082815260200191505060405180910390f35b8060006001015410806100c757506002600101548160026001015401105b156100d1576102de565b8060006001015403600060010181905550806002600101600082825401925050819055507fc77b710b83d1dc3f3fafeccd08a6c469beb873b2f0975b50d1698e46b3ee5b4c816040518082815260200191505060405180910390a160046080604051908101604052806040805190810160405280600881526020017f323031373034313300000000000000000000000000000000000000000000000081525081526020016000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000190805190602001906102419291906102ee565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301555050505b50565b6000600260010154905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061032f57805160ff191683800117855561035d565b8280016001018555821561035d579182015b8281111561035c578251825591602001919060010190610341565b5b50905061036a919061036e565b5090565b61039091905b8082111561038c576000816000905550600101610374565b5090565b905600a165627a7a723058208e45b63292be04a7dc7a9721084c85fff95b392534d9e9362cf84a1b75be8dc80029" }; public static final String BINARY = String.join("", BINARY_ARRAY); public static final String[] SM_BINARY_ARRAY = { - "608060405234801561001057600080fd5b5060016000800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506402540be40060006001018190555060028060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006002600101819055506103bf806100c26000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063299f7f9d146100515780638fff0fc41461007c575b600080fd5b34801561005d57600080fd5b506100666100a9565b6040518082815260200191505060405180910390f35b34801561008857600080fd5b506100a7600480360381019080803590602001909291905050506100b6565b005b6000600260010154905090565b8060006001015410806100d457506002600101548160026001015401105b156100de576102eb565b8060006001015403600060010181905550806002600101600082825401925050819055507fc345610041c3c141ff9e0fbc73b34bf13842fd02e0c3cfe6541eedd6adef4b2c816040518082815260200191505060405180910390a160046080604051908101604052806040805190810160405280600881526020017f323031373034313300000000000000000000000000000000000000000000000081525081526020016000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381525090806001815401808255809150509060018203906000526020600020906004020160009091929091909150600082015181600001908051906020019061024e9291906102ee565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301555050505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061032f57805160ff191683800117855561035d565b8280016001018555821561035d579182015b8281111561035c578251825591602001919060010190610341565b5b50905061036a919061036e565b5090565b61039091905b8082111561038c576000816000905550600101610374565b5090565b905600a165627a7a723058200567f5298660ed3a5d54fe0a632a025fa2bb68f50fce74a6337855177c36f50e0029" + "608060405234801561001057600080fd5b5060016000800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506402540be40060006001018190555060028060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006002600101819055506103bf806100c26000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063299f7f9d146100515780638fff0fc41461007c575b600080fd5b34801561005d57600080fd5b506100666100a9565b6040518082815260200191505060405180910390f35b34801561008857600080fd5b506100a7600480360381019080803590602001909291905050506100b6565b005b6000600260010154905090565b8060006001015410806100d457506002600101548160026001015401105b156100de576102eb565b8060006001015403600060010181905550806002600101600082825401925050819055507fc345610041c3c141ff9e0fbc73b34bf13842fd02e0c3cfe6541eedd6adef4b2c816040518082815260200191505060405180910390a160046080604051908101604052806040805190810160405280600881526020017f323031373034313300000000000000000000000000000000000000000000000081525081526020016000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381525090806001815401808255809150509060018203906000526020600020906004020160009091929091909150600082015181600001908051906020019061024e9291906102ee565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301555050505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061032f57805160ff191683800117855561035d565b8280016001018555821561035d579182015b8281111561035c578251825591602001919060010190610341565b5b50905061036a919061036e565b5090565b61039091905b8082111561038c576000816000905550600101610374565b5090565b905600a165627a7a72305820760c6c97c0ebf59ab2bb361d87b702ca01db177b03e7f76dc57ece4f04aa3e9d0029" }; public static final String SM_BINARY = String.join("", SM_BINARY_ARRAY); @@ -50,12 +51,14 @@ public class Ok extends Contract { "TransEvent", Arrays.>asList(new TypeReference() {}));; - protected Ok(String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + protected Ok(String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt trans(BigInteger num) { @@ -134,12 +137,12 @@ public void subscribeTransEventEvent(EventCallback callback) { subscribeEvent(ABI, BINARY, topic0, callback); } - public static Ok load(String contractAddress, Client client, CryptoInterface credential) { + public static Ok load(String contractAddress, Client client, CryptoKeyPair credential) { return new Ok(contractAddress, client, credential); } - public static Ok deploy(Client client, CryptoInterface credential) throws ContractException { - return deploy(Ok.class, client, credential, getBinary(credential), ""); + public static Ok deploy(Client client, CryptoKeyPair credential) throws ContractException { + return deploy(Ok.class, client, credential, getBinary(client.getCryptoInterface()), ""); } public static class TransEventEventResponse { diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/OkD.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/OkD.java index fe8ecd946..a1fc7d114 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/OkD.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/OkD.java @@ -16,6 +16,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.eventsub.EventCallback; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; @@ -25,13 +26,13 @@ @SuppressWarnings("unchecked") public class OkD extends Contract { public static final String[] BINARY_ARRAY = { - "608060405234801561001057600080fd5b50600080600060016000800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506402540be40060006001018190555060028060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060026001018190555061100192508273ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018060200180602001848103845260048152602001807f745f6f6b000000000000000000000000000000000000000000000000000000008152506020018481038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001848103825260218152602001807f66726f6d5f62616c616e63652c746f5f6163636f75742c746f5f62616c616e6381526020017f65000000000000000000000000000000000000000000000000000000000000008152506040019350505050602060405180830381600087803b1580156101f557600080fd5b505af1158015610209573d6000803e3d6000fd5b505050506040513d602081101561021f57600080fd5b81019080805190602001909291905050505061100192508273ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f745f6f6b00000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b505050506040513d602081101561030057600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561037757600080fd5b505af115801561038b573d6000803e3d6000fd5b505050506040513d60208110156103a157600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001838103825260038152602001807f307831000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561048d57600080fd5b505af11580156104a1573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600c8152602001807f66726f6d5f62616c616e636500000000000000000000000000000000000000008152506020018381038252600b8152602001807f313030303030303030303000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f746f5f6163636f75740000000000000000000000000000000000000000000000815250602001838103825260038152602001807f307832000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561066f57600080fd5b505af1158015610683573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600a8152602001807f746f5f62616c616e636500000000000000000000000000000000000000000000815250602001838103825260018152602001807f300000000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561076057600080fd5b505af1158015610774573d6000803e3d6000fd5b505050505050506108228061078a6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d4ce63c14610051578063abe181b51461007c575b600080fd5b34801561005d57600080fd5b506100666100ef565b6040518082815260200191505060405180910390f35b34801561008857600080fd5b506100ed600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506100fc565b005b6000600260010154905090565b60008060008084600060010154128061012057506002600101548560026001015401125b1561012a576107ee565b84600060010154036000600101819055508460026001016000828254019250508190555061100193508373ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f745f6f6b00000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156101f357600080fd5b505af1158015610207573d6000803e3d6000fd5b505050506040513d602081101561021d57600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029457600080fd5b505af11580156102a8573d6000803e3d6000fd5b505050506040513d60208110156102be57600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015610391578082015181840152602081019050610376565b50505050905090810190601f1680156103be5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba746000600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018381526020018281038252600c8152602001807f66726f6d5f62616c616e6365000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b1580156104a357600080fd5b505af11580156104b7573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f746f5f6163636f75740000000000000000000000000000000000000000000000815250602001838103825260038152602001807f307832000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561059457600080fd5b505af11580156105a8573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba746002600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018381526020018281038252600a8152602001807f746f5f62616c616e63650000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561065957600080fd5b505af115801561066d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166331afac3687846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561072c578082015181840152602081019050610711565b50505050905090810190601f1680156107595780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561077957600080fd5b505af115801561078d573d6000803e3d6000fd5b505050506040513d60208110156107a357600080fd5b810190808051906020019092919050505090507f66f7705280112a4d1145399e0414adc43a2d6974b487710f417edcf7d4a39d71816040518082815260200191505060405180910390a15b5050505050505600a165627a7a723058205a609629c21f5907d680f7ebc21b607a355ecfa6ac071b1ca03ac0d0548f3f380029" + "608060405234801561001057600080fd5b50600080600060016000800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506402540be40060006001018190555060028060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060026001018190555061100192508273ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018060200180602001848103845260048152602001807f745f6f6b000000000000000000000000000000000000000000000000000000008152506020018481038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001848103825260218152602001807f66726f6d5f62616c616e63652c746f5f6163636f75742c746f5f62616c616e6381526020017f65000000000000000000000000000000000000000000000000000000000000008152506040019350505050602060405180830381600087803b1580156101f557600080fd5b505af1158015610209573d6000803e3d6000fd5b505050506040513d602081101561021f57600080fd5b81019080805190602001909291905050505061100192508273ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f745f6f6b00000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b505050506040513d602081101561030057600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561037757600080fd5b505af115801561038b573d6000803e3d6000fd5b505050506040513d60208110156103a157600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001838103825260038152602001807f307831000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561048d57600080fd5b505af11580156104a1573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600c8152602001807f66726f6d5f62616c616e636500000000000000000000000000000000000000008152506020018381038252600b8152602001807f313030303030303030303000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f746f5f6163636f75740000000000000000000000000000000000000000000000815250602001838103825260038152602001807f307832000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561066f57600080fd5b505af1158015610683573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600a8152602001807f746f5f62616c616e636500000000000000000000000000000000000000000000815250602001838103825260018152602001807f300000000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561076057600080fd5b505af1158015610774573d6000803e3d6000fd5b505050505050506108228061078a6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636d4ce63c14610051578063abe181b51461007c575b600080fd5b34801561005d57600080fd5b506100666100ef565b6040518082815260200191505060405180910390f35b34801561008857600080fd5b506100ed600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506100fc565b005b6000600260010154905090565b60008060008084600060010154128061012057506002600101548560026001015401125b1561012a576107ee565b84600060010154036000600101819055508460026001016000828254019250508190555061100193508373ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f745f6f6b00000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156101f357600080fd5b505af1158015610207573d6000803e3d6000fd5b505050506040513d602081101561021d57600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029457600080fd5b505af11580156102a8573d6000803e3d6000fd5b505050506040513d60208110156102be57600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015610391578082015181840152602081019050610376565b50505050905090810190601f1680156103be5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba746000600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018381526020018281038252600c8152602001807f66726f6d5f62616c616e6365000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b1580156104a357600080fd5b505af11580156104b7573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f746f5f6163636f75740000000000000000000000000000000000000000000000815250602001838103825260038152602001807f307832000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561059457600080fd5b505af11580156105a8573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba746002600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018381526020018281038252600a8152602001807f746f5f62616c616e63650000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561065957600080fd5b505af115801561066d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166331afac3687846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561072c578082015181840152602081019050610711565b50505050905090810190601f1680156107595780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561077957600080fd5b505af115801561078d573d6000803e3d6000fd5b505050506040513d60208110156107a357600080fd5b810190808051906020019092919050505090507f66f7705280112a4d1145399e0414adc43a2d6974b487710f417edcf7d4a39d71816040518082815260200191505060405180910390a15b5050505050505600a165627a7a72305820307df815a9c714eb36e529357cd78a05148a38f1832b64df2a805a405586ef3e0029" }; public static final String BINARY = String.join("", BINARY_ARRAY); public static final String[] SM_BINARY_ARRAY = { - "608060405234801561001057600080fd5b50600080600060016000800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506402540be40060006001018190555060028060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060026001018190555061100192508273ffffffffffffffffffffffffffffffffffffffff1663c92a78016040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018060200180602001848103845260048152602001807f745f6f6b000000000000000000000000000000000000000000000000000000008152506020018481038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001848103825260218152602001807f66726f6d5f62616c616e63652c746f5f6163636f75742c746f5f62616c616e6381526020017f65000000000000000000000000000000000000000000000000000000000000008152506040019350505050602060405180830381600087803b1580156101f557600080fd5b505af1158015610209573d6000803e3d6000fd5b505050506040513d602081101561021f57600080fd5b81019080805190602001909291905050505061100192508273ffffffffffffffffffffffffffffffffffffffff166359a48b656040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f745f6f6b00000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b505050506040513d602081101561030057600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff16635887ab246040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561037757600080fd5b505af115801561038b573d6000803e3d6000fd5b505050506040513d60208110156103a157600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001838103825260038152602001807f307831000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561048d57600080fd5b505af11580156104a1573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600c8152602001807f66726f6d5f62616c616e636500000000000000000000000000000000000000008152506020018381038252600b8152602001807f313030303030303030303000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f746f5f6163636f75740000000000000000000000000000000000000000000000815250602001838103825260038152602001807f307832000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561066f57600080fd5b505af1158015610683573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600a8152602001807f746f5f62616c616e636500000000000000000000000000000000000000000000815250602001838103825260018152602001807f300000000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561076057600080fd5b505af1158015610774573d6000803e3d6000fd5b505050505050506108228061078a6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063299f7f9d1461005157806390749a5e1461007c575b600080fd5b34801561005d57600080fd5b506100666100ef565b6040518082815260200191505060405180910390f35b34801561008857600080fd5b506100ed600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506100fc565b005b6000600260010154905090565b60008060008084600060010154128061012057506002600101548560026001015401125b1561012a576107ee565b84600060010154036000600101819055508460026001016000828254019250508190555061100193508373ffffffffffffffffffffffffffffffffffffffff166359a48b656040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f745f6f6b00000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156101f357600080fd5b505af1158015610207573d6000803e3d6000fd5b505050506040513d602081101561021d57600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff16635887ab246040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029457600080fd5b505af11580156102a8573d6000803e3d6000fd5b505050506040513d60208110156102be57600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff16631a391cb4876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015610391578082015181840152602081019050610376565b50505050905090810190601f1680156103be5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def426986000600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018381526020018281038252600c8152602001807f66726f6d5f62616c616e6365000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b1580156104a357600080fd5b505af11580156104b7573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f746f5f6163636f75740000000000000000000000000000000000000000000000815250602001838103825260038152602001807f307832000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561059457600080fd5b505af11580156105a8573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def426986002600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018381526020018281038252600a8152602001807f746f5f62616c616e63650000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561065957600080fd5b505af115801561066d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff16634c6f30c087846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561072c578082015181840152602081019050610711565b50505050905090810190601f1680156107595780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561077957600080fd5b505af115801561078d573d6000803e3d6000fd5b505050506040513d60208110156107a357600080fd5b810190808051906020019092919050505090507f11edf97b45aa6c006853fb598a4a9be2e678d9498feb5e6c1f389b491e12bc4a816040518082815260200191505060405180910390a15b5050505050505600a165627a7a72305820d932c87450e662400861d4044f4ec1168cb786e48c114cc23adcfd9d693330a70029" + "608060405234801561001057600080fd5b50600080600060016000800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506402540be40060006001018190555060028060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060026001018190555061100192508273ffffffffffffffffffffffffffffffffffffffff1663c92a78016040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018060200180602001848103845260048152602001807f745f6f6b000000000000000000000000000000000000000000000000000000008152506020018481038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001848103825260218152602001807f66726f6d5f62616c616e63652c746f5f6163636f75742c746f5f62616c616e6381526020017f65000000000000000000000000000000000000000000000000000000000000008152506040019350505050602060405180830381600087803b1580156101f557600080fd5b505af1158015610209573d6000803e3d6000fd5b505050506040513d602081101561021f57600080fd5b81019080805190602001909291905050505061100192508273ffffffffffffffffffffffffffffffffffffffff166359a48b656040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f745f6f6b00000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b505050506040513d602081101561030057600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff16635887ab246040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561037757600080fd5b505af115801561038b573d6000803e3d6000fd5b505050506040513d60208110156103a157600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001838103825260038152602001807f307831000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561048d57600080fd5b505af11580156104a1573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600c8152602001807f66726f6d5f62616c616e636500000000000000000000000000000000000000008152506020018381038252600b8152602001807f313030303030303030303000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f746f5f6163636f75740000000000000000000000000000000000000000000000815250602001838103825260038152602001807f307832000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561066f57600080fd5b505af1158015610683573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600a8152602001807f746f5f62616c616e636500000000000000000000000000000000000000000000815250602001838103825260018152602001807f300000000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561076057600080fd5b505af1158015610774573d6000803e3d6000fd5b505050505050506108228061078a6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063299f7f9d1461005157806390749a5e1461007c575b600080fd5b34801561005d57600080fd5b506100666100ef565b6040518082815260200191505060405180910390f35b34801561008857600080fd5b506100ed600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506100fc565b005b6000600260010154905090565b60008060008084600060010154128061012057506002600101548560026001015401125b1561012a576107ee565b84600060010154036000600101819055508460026001016000828254019250508190555061100193508373ffffffffffffffffffffffffffffffffffffffff166359a48b656040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f745f6f6b00000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156101f357600080fd5b505af1158015610207573d6000803e3d6000fd5b505050506040513d602081101561021d57600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff16635887ab246040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561029457600080fd5b505af11580156102a8573d6000803e3d6000fd5b505050506040513d60208110156102be57600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff16631a391cb4876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018381038352600b8152602001807f66726f6d5f6163636f7574000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015610391578082015181840152602081019050610376565b50505050905090810190601f1680156103be5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def426986000600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018381526020018281038252600c8152602001807f66726f6d5f62616c616e6365000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b1580156104a357600080fd5b505af11580156104b7573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f746f5f6163636f75740000000000000000000000000000000000000000000000815250602001838103825260038152602001807f307832000000000000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561059457600080fd5b505af11580156105a8573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def426986002600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018381526020018281038252600a8152602001807f746f5f62616c616e63650000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561065957600080fd5b505af115801561066d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff16634c6f30c087846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561072c578082015181840152602081019050610711565b50505050905090810190601f1680156107595780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561077957600080fd5b505af115801561078d573d6000803e3d6000fd5b505050506040513d60208110156107a357600080fd5b810190808051906020019092919050505090507f11edf97b45aa6c006853fb598a4a9be2e678d9498feb5e6c1f389b491e12bc4a816040518082815260200191505060405180910390a15b5050505050505600a165627a7a72305820e07034d3e12dfdf1f20c39aa151a5623c7b2690d56eab36fedd1ca3fedce899d0029" }; public static final String SM_BINARY = String.join("", SM_BINARY_ARRAY); @@ -51,12 +52,14 @@ public class OkD extends Contract { "insertResult", Arrays.>asList(new TypeReference() {}));; - protected OkD(String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + protected OkD(String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public BigInteger get() throws ContractException { @@ -141,12 +144,12 @@ public void subscribeInsertResultEvent(EventCallback callback) { subscribeEvent(ABI, BINARY, topic0, callback); } - public static OkD load(String contractAddress, Client client, CryptoInterface credential) { + public static OkD load(String contractAddress, Client client, CryptoKeyPair credential) { return new OkD(contractAddress, client, credential); } - public static OkD deploy(Client client, CryptoInterface credential) throws ContractException { - return deploy(OkD.class, client, credential, getBinary(credential), ""); + public static OkD deploy(Client client, CryptoKeyPair credential) throws ContractException { + return deploy(OkD.class, client, credential, getBinary(client.getCryptoInterface()), ""); } public static class InsertResultEventResponse { diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/ParallelOk.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/ParallelOk.java index 5f3782581..aafa702d8 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/ParallelOk.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/ParallelOk.java @@ -16,6 +16,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -24,13 +25,13 @@ @SuppressWarnings("unchecked") public class ParallelOk extends Contract { public static final String[] BINARY_ARRAY = { - "60806040526110066000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005257600080fd5b50610aeb806100626000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806334a18dda1461009357806335ee5f871461010657806379fa913f146101835780638a42ebe9146101ec5780639b80b0501461025f578063bca926af14610318578063d39f70bc1461032f578063fad42f8714610346575b600080fd5b34801561009f57600080fd5b50610104600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506103ff565b005b34801561011257600080fd5b5061016d600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610570565b6040518082815260200191505060405180910390f35b34801561018f57600080fd5b506101ea600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506105e5565b005b3480156101f857600080fd5b5061025d600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061074d565b005b34801561026b57600080fd5b50610316600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506107c1565b005b34801561032457600080fd5b5061032d6108b8565b005b34801561033b57600080fd5b5061034461093a565b005b34801561035257600080fd5b506103fd600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506109b8565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630553904e3084846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156104e25780820151818401526020810190506104c7565b50505050905090810190601f16801561050f5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561053057600080fd5b505af1158015610544573d6000803e3d6000fd5b505050506040513d602081101561055a57600080fd5b8101908080519060200190929190505050505050565b60006001826040518082805190602001908083835b6020831015156105aa5780518252602082019150602081019050602083039250610585565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311e3f2af30836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156106c15780820151818401526020810190506106a6565b50505050905090810190601f1680156106ee5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561070e57600080fd5b505af1158015610722573d6000803e3d6000fd5b505050506040513d602081101561073857600080fd5b81019080805190602001909291905050505050565b806001836040518082805190602001908083835b6020831015156107865780518252602082019150602081019050602083039250610761565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055505050565b806001846040518082805190602001908083835b6020831015156107fa57805182526020820191506020810190506020830392506107d5565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540392505081905550806001836040518082805190602001908083835b602083101515610873578051825260208201915060208101905060208303925061084e565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540192505081905550505050565b6108f86040805190810160405280601f81526020017f7472616e7366657228737472696e672c737472696e672c75696e74323536290081525060026103ff565b6109386040805190810160405280601381526020017f73657428737472696e672c75696e74323536290000000000000000000000000081525060016103ff565b565b6109786040805190810160405280601f81526020017f7472616e7366657228737472696e672c737472696e672c75696e7432353629008152506105e5565b6109b66040805190810160405280601381526020017f73657428737472696e672c75696e7432353629000000000000000000000000008152506105e5565b565b806001846040518082805190602001908083835b6020831015156109f157805182526020820191506020810190506020830392506109cc565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540392505081905550806001836040518082805190602001908083835b602083101515610a6a5780518252602082019150602081019050602083039250610a45565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000828254019250508190555060648111151515610aba57600080fd5b5050505600a165627a7a72305820d721c70a8f692fdebc8cd485607c47cdce4652290111b4152b32f5e54812f0410029" + "60806040526110066000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005257600080fd5b50610aeb806100626000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806334a18dda1461009357806335ee5f871461010657806379fa913f146101835780638a42ebe9146101ec5780639b80b0501461025f578063bca926af14610318578063d39f70bc1461032f578063fad42f8714610346575b600080fd5b34801561009f57600080fd5b50610104600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506103ff565b005b34801561011257600080fd5b5061016d600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610570565b6040518082815260200191505060405180910390f35b34801561018f57600080fd5b506101ea600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506105e5565b005b3480156101f857600080fd5b5061025d600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061074d565b005b34801561026b57600080fd5b50610316600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506107c1565b005b34801561032457600080fd5b5061032d6108b8565b005b34801561033b57600080fd5b5061034461093a565b005b34801561035257600080fd5b506103fd600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506109b8565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630553904e3084846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156104e25780820151818401526020810190506104c7565b50505050905090810190601f16801561050f5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561053057600080fd5b505af1158015610544573d6000803e3d6000fd5b505050506040513d602081101561055a57600080fd5b8101908080519060200190929190505050505050565b60006001826040518082805190602001908083835b6020831015156105aa5780518252602082019150602081019050602083039250610585565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311e3f2af30836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156106c15780820151818401526020810190506106a6565b50505050905090810190601f1680156106ee5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561070e57600080fd5b505af1158015610722573d6000803e3d6000fd5b505050506040513d602081101561073857600080fd5b81019080805190602001909291905050505050565b806001836040518082805190602001908083835b6020831015156107865780518252602082019150602081019050602083039250610761565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055505050565b806001846040518082805190602001908083835b6020831015156107fa57805182526020820191506020810190506020830392506107d5565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540392505081905550806001836040518082805190602001908083835b602083101515610873578051825260208201915060208101905060208303925061084e565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540192505081905550505050565b6108f86040805190810160405280601f81526020017f7472616e7366657228737472696e672c737472696e672c75696e74323536290081525060026103ff565b6109386040805190810160405280601381526020017f73657428737472696e672c75696e74323536290000000000000000000000000081525060016103ff565b565b6109786040805190810160405280601f81526020017f7472616e7366657228737472696e672c737472696e672c75696e7432353629008152506105e5565b6109b66040805190810160405280601381526020017f73657428737472696e672c75696e7432353629000000000000000000000000008152506105e5565b565b806001846040518082805190602001908083835b6020831015156109f157805182526020820191506020810190506020830392506109cc565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540392505081905550806001836040518082805190602001908083835b602083101515610a6a5780518252602082019150602081019050602083039250610a45565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000828254019250508190555060648111151515610aba57600080fd5b5050505600a165627a7a723058203df637a9f27f60ded73c5d33efa5cfcb7b3a52fab87e18249ab9cdbf5566126d0029" }; public static final String BINARY = String.join("", BINARY_ARRAY); public static final String[] SM_BINARY_ARRAY = { - "60806040526110066000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005257600080fd5b50610aea806100626000396000f30060806040526004361061008d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062f0e13314610092578063612d2bff146100fb578063748e7a1b146101b457806394618e4c146101cb578063ab71bf09146101e2578063b4c653e01461029b578063cd93c25d1461030e578063f2f4ee6d1461038b575b600080fd5b34801561009e57600080fd5b506100f9600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506103fe565b005b34801561010757600080fd5b506101b2600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610566565b005b3480156101c057600080fd5b506101c961065d565b005b3480156101d757600080fd5b506101e06106db565b005b3480156101ee57600080fd5b50610299600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061075d565b005b3480156102a757600080fd5b5061030c600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610864565b005b34801561031a57600080fd5b50610375600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506109d5565b6040518082815260200191505060405180910390f35b34801561039757600080fd5b506103fc600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610a4a565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663714c65bd30836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156104da5780820151818401526020810190506104bf565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561052757600080fd5b505af115801561053b573d6000803e3d6000fd5b505050506040513d602081101561055157600080fd5b81019080805190602001909291905050505050565b806001846040518082805190602001908083835b60208310151561059f578051825260208201915060208101905060208303925061057a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540392505081905550806001836040518082805190602001908083835b60208310151561061857805182526020820191506020810190506020830392506105f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540192505081905550505050565b61069b6040805190810160405280601f81526020017f7472616e7366657228737472696e672c737472696e672c75696e7432353629008152506103fe565b6106d96040805190810160405280601381526020017f73657428737472696e672c75696e7432353629000000000000000000000000008152506103fe565b565b61071b6040805190810160405280601f81526020017f7472616e7366657228737472696e672c737472696e672c75696e7432353629008152506002610864565b61075b6040805190810160405280601381526020017f73657428737472696e672c75696e7432353629000000000000000000000000008152506001610864565b565b806001846040518082805190602001908083835b6020831015156107965780518252602082019150602081019050602083039250610771565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540392505081905550806001836040518082805190602001908083835b60208310151561080f57805182526020820191506020810190506020830392506107ea565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600082825401925050819055506064811115151561085f57600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dc536a623084846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561094757808201518184015260208101905061092c565b50505050905090810190601f1680156109745780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561099557600080fd5b505af11580156109a9573d6000803e3d6000fd5b505050506040513d60208110156109bf57600080fd5b8101908080519060200190929190505050505050565b60006001826040518082805190602001908083835b602083101515610a0f57805182526020820191506020810190506020830392506109ea565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b806001836040518082805190602001908083835b602083101515610a835780518252602082019150602081019050602083039250610a5e565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208190555050505600a165627a7a723058201c320eb489845fe9ef20bfa702e4699ad5264d960fde53a298b8dccc7161345b0029" + "60806040526110066000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005257600080fd5b50610aea806100626000396000f30060806040526004361061008d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062f0e13314610092578063612d2bff146100fb578063748e7a1b146101b457806394618e4c146101cb578063ab71bf09146101e2578063b4c653e01461029b578063cd93c25d1461030e578063f2f4ee6d1461038b575b600080fd5b34801561009e57600080fd5b506100f9600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506103fe565b005b34801561010757600080fd5b506101b2600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610566565b005b3480156101c057600080fd5b506101c961065d565b005b3480156101d757600080fd5b506101e06106db565b005b3480156101ee57600080fd5b50610299600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061075d565b005b3480156102a757600080fd5b5061030c600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610864565b005b34801561031a57600080fd5b50610375600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506109d5565b6040518082815260200191505060405180910390f35b34801561039757600080fd5b506103fc600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610a4a565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663714c65bd30836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156104da5780820151818401526020810190506104bf565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561052757600080fd5b505af115801561053b573d6000803e3d6000fd5b505050506040513d602081101561055157600080fd5b81019080805190602001909291905050505050565b806001846040518082805190602001908083835b60208310151561059f578051825260208201915060208101905060208303925061057a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540392505081905550806001836040518082805190602001908083835b60208310151561061857805182526020820191506020810190506020830392506105f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540192505081905550505050565b61069b6040805190810160405280601f81526020017f7472616e7366657228737472696e672c737472696e672c75696e7432353629008152506103fe565b6106d96040805190810160405280601381526020017f73657428737472696e672c75696e7432353629000000000000000000000000008152506103fe565b565b61071b6040805190810160405280601f81526020017f7472616e7366657228737472696e672c737472696e672c75696e7432353629008152506002610864565b61075b6040805190810160405280601381526020017f73657428737472696e672c75696e7432353629000000000000000000000000008152506001610864565b565b806001846040518082805190602001908083835b6020831015156107965780518252602082019150602081019050602083039250610771565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060008282540392505081905550806001836040518082805190602001908083835b60208310151561080f57805182526020820191506020810190506020830392506107ea565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600082825401925050819055506064811115151561085f57600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dc536a623084846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561094757808201518184015260208101905061092c565b50505050905090810190601f1680156109745780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561099557600080fd5b505af11580156109a9573d6000803e3d6000fd5b505050506040513d60208110156109bf57600080fd5b8101908080519060200190929190505050505050565b60006001826040518082805190602001908083835b602083101515610a0f57805182526020820191506020810190506020830392506109ea565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b806001836040518082805190602001908083835b602083101515610a835780518252602082019150602081019050602083039250610a5e565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208190555050505600a165627a7a72305820bdd068ddd29d31c6bd5b2d5ba93d15eec371fccc5579888cf009ac61aa91a8190029" }; public static final String SM_BINARY = String.join("", SM_BINARY_ARRAY); @@ -57,12 +58,14 @@ public class ParallelOk extends Contract { public static final String FUNC_TRANSFERWITHREVERT = "transferWithRevert"; - protected ParallelOk(String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + protected ParallelOk(String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt registerParallelFunction( @@ -381,13 +384,13 @@ public Tuple3 getTransferWithRevertInput( (BigInteger) results.get(2).getValue()); } - public static ParallelOk load( - String contractAddress, Client client, CryptoInterface credential) { + public static ParallelOk load(String contractAddress, Client client, CryptoKeyPair credential) { return new ParallelOk(contractAddress, client, credential); } - public static ParallelOk deploy(Client client, CryptoInterface credential) + public static ParallelOk deploy(Client client, CryptoKeyPair credential) throws ContractException { - return deploy(ParallelOk.class, client, credential, getBinary(credential), ""); + return deploy( + ParallelOk.class, client, credential, getBinary(client.getCryptoInterface()), ""); } } diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/TableTest.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/TableTest.java index 8737626e5..3f03defec 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/TableTest.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/contract/TableTest.java @@ -20,6 +20,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.eventsub.EventCallback; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; @@ -31,7 +32,7 @@ public class TableTest extends Contract { public static final String[] BINARY_ARRAY = { "608060405234801561001057600080fd5b5061221f806100206000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063487a5a1014610072578063c4f41ab31461013f578063ebf3b24f146101c6578063efc81a8c14610293578063fcd7e3c1146102aa575b600080fd5b34801561007e57600080fd5b50610129600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506103f8565b6040518082815260200191505060405180910390f35b34801561014b57600080fd5b506101b0600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610aee565b6040518082815260200191505060405180910390f35b3480156101d257600080fd5b5061027d600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610fe7565b6040518082815260200191505060405180910390f35b34801561029f57600080fd5b506102a8611606565b005b3480156102b657600080fd5b50610311600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611798565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561035c578082015181840152602081019050610341565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561039e578082015181840152602081019050610383565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156103e05780820151818401526020810190506103c5565b50505050905001965050505050505060405180910390f35b60008060008060008061100194508473ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156104a657600080fd5b505af11580156104ba573d6000803e3d6000fd5b505050506040513d60208110156104d057600080fd5b810190808051906020019092919050505093508373ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561054757600080fd5b505af115801561055b573d6000803e3d6000fd5b505050506040513d602081101561057157600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff1663e942b516886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f6974656d5f6e616d650000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015610644578082015181840152602081019050610629565b50505050905090810190601f1680156106715780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561069157600080fd5b505af11580156106a5573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b505050506040513d602081101561073757600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff1663cd30a1d18a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b8381101561080a5780820151818401526020810190506107ef565b50505050905090810190601f1680156108375780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561085757600080fd5b505af115801561086b573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e44594b9896040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825260078152602001807f6974656d5f69640000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561091757600080fd5b505af115801561092b573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff1663bf2b70a18a85856040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015610a1d578082015181840152602081019050610a02565b50505050905090810190601f168015610a4a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b810190808051906020019092919050505090507f0bdcb3b747cf033ae78b4b6e1576d2725709d03f68ad3d641b12cb72de614354816040518082815260200191505060405180910390a180955050505050509392505050565b600080600080600061100193508373ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015610b9b57600080fd5b505af1158015610baf573d6000803e3d6000fd5b505050506040513d6020811015610bc557600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610c3c57600080fd5b505af1158015610c50573d6000803e3d6000fd5b505050506040513d6020811015610c6657600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015610d39578082015181840152602081019050610d1e565b50505050905090810190601f168015610d665780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610d8657600080fd5b505af1158015610d9a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e44594b9876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825260078152602001807f6974656d5f69640000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b158015610e4657600080fd5b505af1158015610e5a573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166328bb211788846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015610f19578082015181840152602081019050610efe565b50505050905090810190601f168015610f465780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015610f6657600080fd5b505af1158015610f7a573d6000803e3d6000fd5b505050506040513d6020811015610f9057600080fd5b810190808051906020019092919050505090507f896358cb98e9e8e891ae04efd1bc177efbe5cffd7eca2e784b16ed7468553e08816040518082815260200191505060405180910390a18094505050", "505092915050565b600080600080600061100193508373ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561109457600080fd5b505af11580156110a8573d6000803e3d6000fd5b505050506040513d60208110156110be57600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561113557600080fd5b505af1158015611149573d6000803e3d6000fd5b505050506040513d602081101561115f57600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff1663e942b516896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015611232578082015181840152602081019050611217565b50505050905090810190601f16801561125f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561127f57600080fd5b505af1158015611293573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba74886040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825260078152602001807f6974656d5f69640000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561133f57600080fd5b505af1158015611353573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f6974656d5f6e616d650000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b838110156114175780820151818401526020810190506113fc565b50505050905090810190601f1680156114445780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561146457600080fd5b505af1158015611478573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166331afac3689846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561153757808201518184015260208101905061151c565b50505050905090810190601f1680156115645780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b505050506040513d60208110156115ae57600080fd5b810190808051906020019092919050505090507f66f7705280112a4d1145399e0414adc43a2d6974b487710f417edcf7d4a39d71816040518082815260200191505060405180910390a1809450505050509392505050565b60008061100191508173ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018060200180602001848103845260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001848103835260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001848103825260118152602001807f6974656d5f69642c6974656d5f6e616d650000000000000000000000000000008152506020019350505050602060405180830381600087803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b505050506040513d602081101561174a57600080fd5b810190808051906020019092919050505090507fcd4779437d9d027acc605a96427bfbd3787a1402cb53a5e64cd813d5391fbc2b816040518082815260200191505060405180910390a15050565b6060806060600080600080606080606060008061100198508873ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561185057600080fd5b505af1158015611864573d6000803e3d6000fd5b505050506040513d602081101561187a57600080fd5b810190808051906020019092919050505097508773ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156118f157600080fd5b505af1158015611905573d6000803e3d6000fd5b505050506040513d602081101561191b57600080fd5b810190808051906020019092919050505096508773ffffffffffffffffffffffffffffffffffffffff1663e8434e398e896040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156119e95780820151818401526020810190506119ce565b50505050905090810190601f168015611a165780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015611a3657600080fd5b505af1158015611a4a573d6000803e3d6000fd5b505050506040513d6020811015611a6057600080fd5b810190808051906020019092919050505095508573ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611ad757600080fd5b505af1158015611aeb573d6000803e3d6000fd5b505050506040513d6020811015611b0157600080fd5b8101908080519060200190929190505050604051908082528060200260200182016040528015611b405781602001602082028038833980820191505090505b5094508573ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611ba757600080fd5b505af1158015611bbb573d6000803e3d6000fd5b505050506040513d6020811015611bd157600080fd5b8101908080519060200190929190505050604051908082528060200260200182016040528015611c105781602001602082028038833980820191505090505b5093508573ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c7757600080fd5b505af1158015611c8b573d6000803e3d6000fd5b505050506040513d6020811015611ca157600080fd5b8101908080519060200190929190505050604051908082528060200260200182016040528015611ce05781602001602082028038833980820191505090505b509250600091505b8573ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d4c57600080fd5b505af1158015611d60573d6000803e3d6000fd5b505050506040513d6020811015611d7657600080fd5b81019080805190602001909291905050508212156121da578573ffffffffffffffffffffffffffffffffffffffff1663846719e0836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015611dfd57600080fd5b505af1158015611e11573d6000803e3d6000fd5b505050506040513d6020811015611e2757600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff166327314f796040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015611eda57600080fd5b505af1158015611eee573d6000803e3d6000fd5b505050506040513d6020811015611f0457600080fd5b81019080805190602001909291905050508583815181101515611f2357fe5b9060200190602002019060001916908160001916815250508073ffffffffffffffffffffffffffffffffffffffff1663fda69fae6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260078152602001807f6974656d5f696400000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015611fdb57600080fd5b505af115", - "8015611fef573d6000803e3d6000fd5b505050506040513d602081101561200557600080fd5b8101908080519060200190929190505050848381518110151561202457fe5b90602001906020020181815250508073ffffffffffffffffffffffffffffffffffffffff166327314f796040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260098152602001807f6974656d5f6e616d650000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156120d257600080fd5b505af11580156120e6573d6000803e3d6000fd5b505050506040513d60208110156120fc57600080fd5b8101908080519060200190929190505050838381518110151561211b57fe5b9060200190602002019060001916908160001916815250507fc65cd2adf133adee2ddcfab8b165c2f1f7b185c4389b0789a11112483efb1c84858381518110151561216257fe5b90602001906020020151858481518110151561217a57fe5b90602001906020020151858581518110151561219257fe5b906020019060200201516040518084600019166000191681526020018381526020018260001916600019168152602001935050505060405180910390a1816001019150611ce8565b8484849b509b509b5050505050505050505091939092505600a165627a7a723058206a575982adf026a18e3cb5d98d0692961633741067e4e077a185fcb7412878e30029" + "8015611fef573d6000803e3d6000fd5b505050506040513d602081101561200557600080fd5b8101908080519060200190929190505050848381518110151561202457fe5b90602001906020020181815250508073ffffffffffffffffffffffffffffffffffffffff166327314f796040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260098152602001807f6974656d5f6e616d650000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156120d257600080fd5b505af11580156120e6573d6000803e3d6000fd5b505050506040513d60208110156120fc57600080fd5b8101908080519060200190929190505050838381518110151561211b57fe5b9060200190602002019060001916908160001916815250507fc65cd2adf133adee2ddcfab8b165c2f1f7b185c4389b0789a11112483efb1c84858381518110151561216257fe5b90602001906020020151858481518110151561217a57fe5b90602001906020020151858581518110151561219257fe5b906020019060200201516040518084600019166000191681526020018381526020018260001916600019168152602001935050505060405180910390a1816001019150611ce8565b8484849b509b509b5050505050505050505091939092505600a165627a7a7230582032177e069ae4110c8c4a603273d4a04482e613644296721d9e07c5486cdf7dd50029" }; public static final String BINARY = String.join("", BINARY_ARRAY); @@ -39,7 +40,7 @@ public class TableTest extends Contract { public static final String[] SM_BINARY_ARRAY = { "608060405234801561001057600080fd5b5061221f806100206000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630fe1160f1461007257806345710fa5146100f957806349cc36b5146101105780635b325d78146101dd578063e020d4641461032b575b600080fd5b34801561007e57600080fd5b506100e3600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506103f8565b6040518082815260200191505060405180910390f35b34801561010557600080fd5b5061010e6108f1565b005b34801561011c57600080fd5b506101c7600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610a83565b6040518082815260200191505060405180910390f35b3480156101e957600080fd5b50610244600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611179565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561028f578082015181840152602081019050610274565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156102d15780820151818401526020810190506102b6565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156103135780820151818401526020810190506102f8565b50505050905001965050505050505060405180910390f35b34801561033757600080fd5b506103e2600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611bd4565b6040518082815260200191505060405180910390f35b600080600080600061100193508373ffffffffffffffffffffffffffffffffffffffff166359a48b656040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156104a557600080fd5b505af11580156104b9573d6000803e3d6000fd5b505050506040513d60208110156104cf57600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff1663c74f8caf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561054657600080fd5b505af115801561055a573d6000803e3d6000fd5b505050506040513d602081101561057057600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff1663ae763db5886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015610643578082015181840152602081019050610628565b50505050905090810190601f1680156106705780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663d62b54b4876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825260078152602001807f6974656d5f69640000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b15801561075057600080fd5b505af1158015610764573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166309ff42f088846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015610823578082015181840152602081019050610808565b50505050905090810190601f1680156108505780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561087057600080fd5b505af1158015610884573d6000803e3d6000fd5b505050506040513d602081101561089a57600080fd5b810190808051906020019092919050505090507f809ffa7913d4c04a8785eea307a714cf83228bb7eded9cebd577c114e36c9967816040518082815260200191505060405180910390a18094505050505092915050565b60008061100191508173ffffffffffffffffffffffffffffffffffffffff1663c92a78016040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018060200180602001848103845260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001848103835260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001848103825260118152602001807f6974656d5f69642c6974656d5f6e616d650000000000000000000000000000008152506020019350505050602060405180830381600087803b158015610a0b57600080fd5b505af1158015610a1f573d6000803e3d6000fd5b505050506040513d6020811015610a3557600080fd5b810190808051906020019092919050505090507f698cf490d4172e8c174ef6380602ab47c18d429938f9f778cc2c0f3b5498f2c6816040518082815260200191505060405180910390a15050565b60008060008060008061100194508473ffffffffffffffffffffffffffffffffffffffff166359a48b656040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015610b3157600080fd5b505af1158015610b45573d6000803e3d6000fd5b505050506040513d6020811015610b5b57600080fd5b810190808051906020019092919050505093508373ffffffffffffffffffffffffffffffffffffffff16635887ab246040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610bd257600080fd5b505af1158015610be6573d6000803e3d6000fd5b505050506040513d6020811015610bfc57600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff16631a391cb4886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f6974656d5f6e616d650000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015610ccf578082015181840152602081019050610cb4565b50505050905090810190601f168015610cfc5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610d1c57600080fd5b505af1158015610d30573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff1663c74f8caf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610d9857600080fd5b505af1158015610dac573d6000803e3d6000fd5b505050506040513d6020811015610dc257600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff1663ae763db58a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015610e95578082015181840152602081019050610e7a565b50505050905090810190601f168015610ec25780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610ee257600080fd5b505af1158015610ef6573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663d62b54b4896040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825260078152602001807f6974656d5f69640000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b158015610fa257600080fd5b505af1158015610fb6573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff1663664b37d68a85856040518463ff", "ffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156110a857808201518184015260208101905061108d565b50505050905090810190601f1680156110d55780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156110f657600080fd5b505af115801561110a573d6000803e3d6000fd5b505050506040513d602081101561112057600080fd5b810190808051906020019092919050505090507f21c0ede88315971cad0fa2aa5d177bf992894f6be25236454587141c48683046816040518082815260200191505060405180910390a180955050505050509392505050565b6060806060600080600080606080606060008061100198508873ffffffffffffffffffffffffffffffffffffffff166359a48b656040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b15801561123157600080fd5b505af1158015611245573d6000803e3d6000fd5b505050506040513d602081101561125b57600080fd5b810190808051906020019092919050505097508773ffffffffffffffffffffffffffffffffffffffff1663c74f8caf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112d257600080fd5b505af11580156112e6573d6000803e3d6000fd5b505050506040513d60208110156112fc57600080fd5b810190808051906020019092919050505096508773ffffffffffffffffffffffffffffffffffffffff1663d8ac59578e896040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156113ca5780820151818401526020810190506113af565b50505050905090810190601f1680156113f75780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561141757600080fd5b505af115801561142b573d6000803e3d6000fd5b505050506040513d602081101561144157600080fd5b810190808051906020019092919050505095508573ffffffffffffffffffffffffffffffffffffffff1663d3e9af5a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114b857600080fd5b505af11580156114cc573d6000803e3d6000fd5b505050506040513d60208110156114e257600080fd5b81019080805190602001909291905050506040519080825280602002602001820160405280156115215781602001602082028038833980820191505090505b5094508573ffffffffffffffffffffffffffffffffffffffff1663d3e9af5a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b81019080805190602001909291905050506040519080825280602002602001820160405280156115f15781602001602082028038833980820191505090505b5093508573ffffffffffffffffffffffffffffffffffffffff1663d3e9af5a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561165857600080fd5b505af115801561166c573d6000803e3d6000fd5b505050506040513d602081101561168257600080fd5b81019080805190602001909291905050506040519080825280602002602001820160405280156116c15781602001602082028038833980820191505090505b509250600091505b8573ffffffffffffffffffffffffffffffffffffffff1663d3e9af5a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172d57600080fd5b505af1158015611741573d6000803e3d6000fd5b505050506040513d602081101561175757600080fd5b8101908080519060200190929190505050821215611bbb578573ffffffffffffffffffffffffffffffffffffffff16633dd2b614836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1580156117de57600080fd5b505af11580156117f2573d6000803e3d6000fd5b505050506040513d602081101561180857600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663fdebe4146040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156118bb57600080fd5b505af11580156118cf573d6000803e3d6000fd5b505050506040513d60208110156118e557600080fd5b8101908080519060200190929190505050858381518110151561190457fe5b9060200190602002019060001916908160001916815250508073ffffffffffffffffffffffffffffffffffffffff16634900862e6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260078152602001807f6974656d5f696400000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b1580156119bc57600080fd5b505af11580156119d0573d6000803e3d6000fd5b505050506040513d60208110156119e657600080fd5b81019080805190602001909291905050508483815181101515611a0557fe5b90602001906020020181815250508073ffffffffffffffffffffffffffffffffffffffff1663fdebe4146040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260098152602001807f6974656d5f6e616d650000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015611ab357600080fd5b505af1158015611ac7573d6000803e3d6000fd5b505050506040513d6020811015611add57600080fd5b81019080805190602001909291905050508383815181101515611afc57fe5b9060200190602002019060001916908160001916815250507fef677d3bedeedc56f98504970ca9c69a69871a4cf5d7abee1012f075f3d064888583815181101515611b4357fe5b906020019060200201518584815181101515611b5b57fe5b906020019060200201518585815181101515611b7357fe5b906020019060200201516040518084600019166000191681526020018381526020018260001916600019168152602001935050505060405180910390a18160010191506116c9565b8484849b509b509b505050505050505050509193909250565b600080600080600061100193508373ffffffffffffffffffffffffffffffffffffffff166359a48b656040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260068152602001807f745f746573740000000000000000000000000000000000000000000000000000815250602001915050602060405180830381600087803b158015611c8157600080fd5b505af1158015611c95573d6000803e3d6000fd5b505050506040513d6020811015611cab57600080fd5b810190808051906020019092919050505092508273ffffffffffffffffffffffffffffffffffffffff16635887ab246040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d2257600080fd5b505af1158015611d36573d6000803e3d6000fd5b505050506040513d6020811015611d4c57600080fd5b810190808051906020019092919050505091508173ffffffffffffffffffffffffffffffffffffffff16631a391cb4896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260048152602001807f6e616d6500000000000000000000000000000000000000000000000000000000815250602001838103825284818151815260200191508051906020019080838360005b83811015611e1f578082015181840152602081019050611e04565b50505050905090810190601f168015611e4c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611e6c57600080fd5b505af1158015611e80573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def42698886040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001838152602001828103825260078152602001807f6974656d5f69640000000000000000000000000000000000000000000000000081525060200192505050600060405180830381600087803b158015611f2c57600080fd5b505af1158015611f40573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb4876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835260098152602001807f6974656d5f6e616d65000000000000000000000000000000000000000000000081525060200183810382528481815181526020019150805190", - "6020019080838360005b83811015612004578082015181840152602081019050611fe9565b50505050905090810190601f1680156120315780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561205157600080fd5b505af1158015612065573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff16634c6f30c089846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015612124578082015181840152602081019050612109565b50505050905090810190601f1680156121515780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561217157600080fd5b505af1158015612185573d6000803e3d6000fd5b505050506040513d602081101561219b57600080fd5b810190808051906020019092919050505090507f11edf97b45aa6c006853fb598a4a9be2e678d9498feb5e6c1f389b491e12bc4a816040518082815260200191505060405180910390a18094505050505093925050505600a165627a7a723058201628a7d4427825b89c94199e1743c1a9ca41afc82c1422ec02dda3cd579bfd1e0029" + "6020019080838360005b83811015612004578082015181840152602081019050611fe9565b50505050905090810190601f1680156120315780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561205157600080fd5b505af1158015612065573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff16634c6f30c089846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015612124578082015181840152602081019050612109565b50505050905090810190601f1680156121515780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561217157600080fd5b505af1158015612185573d6000803e3d6000fd5b505050506040513d602081101561219b57600080fd5b810190808051906020019092919050505090507f11edf97b45aa6c006853fb598a4a9be2e678d9498feb5e6c1f389b491e12bc4a816040518082815260200191505060405180910390a18094505050505093925050505600a165627a7a72305820c9979fb6dfc3ec7ef02df3bde20e569eeef6226bd9006cdc269fd95900538a410029" }; public static final String SM_BINARY = String.join("", SM_BINARY_ARRAY); @@ -88,12 +89,14 @@ public class TableTest extends Contract { "removeResult", Arrays.>asList(new TypeReference() {}));; - protected TableTest(String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + protected TableTest(String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt update(String name, BigInteger item_id, String item_name) { @@ -463,14 +466,14 @@ public void subscribeRemoveResultEvent(EventCallback callback) { subscribeEvent(ABI, BINARY, topic0, callback); } - public static TableTest load( - String contractAddress, Client client, CryptoInterface credential) { + public static TableTest load(String contractAddress, Client client, CryptoKeyPair credential) { return new TableTest(contractAddress, client, credential); } - public static TableTest deploy(Client client, CryptoInterface credential) + public static TableTest deploy(Client client, CryptoKeyPair credential) throws ContractException { - return deploy(TableTest.class, client, credential, getBinary(credential), ""); + return deploy( + TableTest.class, client, credential, getBinary(client.getCryptoInterface()), ""); } public static class CreateResultEventResponse { diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/event/SendOk.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/event/SendOk.java index a1e982ace..cd790708b 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/event/SendOk.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/event/SendOk.java @@ -52,7 +52,7 @@ public static void main(String[] args) { // deploy the HelloWorld System.out.println("====== Deploy Ok ====== "); - Ok ok = Ok.deploy(client, client.getCryptoInterface()); + Ok ok = Ok.deploy(client, client.getCryptoInterface().getCryptoKeyPair()); System.out.println( "====== Deploy Ok successfully, address: " + ok.getContractAddress() diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/ParallelOkPerf.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/ParallelOkPerf.java index 521c9471a..19588e4e0 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/ParallelOkPerf.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/ParallelOkPerf.java @@ -109,7 +109,8 @@ public static void parallelOkPerf( switch (command) { case "add": // deploy ParallelOk - parallelOk = ParallelOk.deploy(client, client.getCryptoInterface()); + parallelOk = + ParallelOk.deploy(client, client.getCryptoInterface().getCryptoKeyPair()); // enable parallel parallelOk.enableParallel(); System.out.println( @@ -122,7 +123,9 @@ public static void parallelOkPerf( dagUserInfo.loadDagTransferUser(); parallelOk = ParallelOk.load( - dagUserInfo.getContractAddr(), client, client.getCryptoInterface()); + dagUserInfo.getContractAddr(), + client, + client.getCryptoInterface().getCryptoKeyPair()); System.out.println( "====== ParallelOk trans, load success, address: " + parallelOk.getContractAddress()); diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOk.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOk.java index 1b8f382fc..d1ea2ad54 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOk.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOk.java @@ -72,7 +72,7 @@ public static void main(String[] args) { // deploy the HelloWorld System.out.println("====== Deploy Ok ====== "); - Ok ok = Ok.deploy(client, client.getCryptoInterface()); + Ok ok = Ok.deploy(client, client.getCryptoInterface().getCryptoKeyPair()); System.out.println( "====== Deploy Ok succ, address: " + ok.getContractAddress() + " ====== "); diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOkD.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOkD.java index f43c579d1..625294e3c 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOkD.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceOkD.java @@ -72,7 +72,7 @@ public static void main(String[] args) { // deploy the HelloWorld System.out.println("====== Deploy OkD ====== "); - OkD okd = OkD.deploy(client, client.getCryptoInterface()); + OkD okd = OkD.deploy(client, client.getCryptoInterface().getCryptoKeyPair()); System.out.println( "====== Deploy OkD success, address: " + okd.getContractAddress() + " ====== "); diff --git a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceTable.java b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceTable.java index 44882500b..a7cd03d58 100644 --- a/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceTable.java +++ b/sdk-demo/src/main/java/org/fisco/bcos/sdk/demo/perf/PerformanceTable.java @@ -85,7 +85,8 @@ public static void main(String[] args) { // deploy the HelloWorld System.out.println("====== Deploy TableTest ====== "); - TableTest tableTest = TableTest.deploy(client, client.getCryptoInterface()); + TableTest tableTest = + TableTest.deploy(client, client.getCryptoInterface().getCryptoKeyPair()); // create table tableTest.create(); System.out.println( diff --git a/sdk-demo/src/main/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 index e32b3994d..c548f6bd9 100644 --- a/sdk-demo/src/main/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 @@ -45,7 +45,9 @@ public class DagPrecompiledDemo { public DagPrecompiledDemo( Client client, DagUserInfo dagUserInfo, ThreadPoolService threadPoolService) { this.threadPoolService = threadPoolService; - this.dagTransfer = DagTransfer.load(DAG_TRANSFER_ADDR, client, client.getCryptoInterface()); + this.dagTransfer = + DagTransfer.load( + DAG_TRANSFER_ADDR, client, client.getCryptoInterface().getCryptoKeyPair()); this.dagUserInfo = dagUserInfo; this.collector = new PerformanceCollector(); } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/Contract.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/Contract.java similarity index 94% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/Contract.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/Contract.java index faad308c6..606b84bea 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/Contract.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/Contract.java @@ -33,6 +33,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.client.protocol.response.Call; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.eventsub.EventCallback; import org.fisco.bcos.sdk.eventsub.EventLogParams; import org.fisco.bcos.sdk.eventsub.EventSubscribe; @@ -57,7 +58,8 @@ public class Contract { protected final Client client; public static final String FUNC_DEPLOY = "deploy"; protected final FunctionEncoder functionEncoder; - protected final CryptoInterface credential; + protected final CryptoKeyPair credential; + protected final CryptoInterface cryptoInterface; protected final EventEncoder eventEncoder; private final EventSubscribe eventSubscribe; protected static String LATEST_BLOCK = "latest"; @@ -66,15 +68,16 @@ protected Contract( String contractBinary, String contractAddress, Client client, - CryptoInterface credential, + CryptoKeyPair credential, TransactionManager transactionManager) { this.contractBinary = contractBinary; this.contractAddress = contractAddress; this.client = client; this.transactionManager = transactionManager; this.credential = credential; - this.functionEncoder = new FunctionEncoder(credential); - this.eventEncoder = new EventEncoder(credential); + this.cryptoInterface = client.getCryptoInterface(); + this.functionEncoder = new FunctionEncoder(client.getCryptoInterface()); + this.eventEncoder = new EventEncoder(client.getCryptoInterface()); // create eventSubscribe this.eventSubscribe = EventSubscribe.build( @@ -87,7 +90,7 @@ protected Contract( String contractBinary, String contractAddress, Client client, - CryptoInterface credential) { + CryptoKeyPair credential) { this( contractBinary, contractAddress, @@ -99,14 +102,14 @@ protected Contract( protected static T deploy( Class type, Client client, - CryptoInterface credential, + CryptoKeyPair credential, TransactionManager transactionManager, String binary, String encodedConstructor) throws ContractException { try { Constructor constructor = - type.getDeclaredConstructor(String.class, Client.class, CryptoInterface.class); + type.getDeclaredConstructor(String.class, Client.class, CryptoKeyPair.class); constructor.setAccessible(true); T contract = constructor.newInstance(null, client, credential); return create(contract, binary, encodedConstructor); @@ -121,7 +124,7 @@ protected static T deploy( protected static T deploy( Class type, Client client, - CryptoInterface credential, + CryptoKeyPair credential, String binary, String encodedConstructor) throws ContractException { @@ -171,10 +174,7 @@ private List executeCall(Function function) throws ContractException { String encodedFunctionData = functionEncoder.encode(function); CallRequest callRequest = - new CallRequest( - transactionManager.getCurrentExternalAccountAddress(), - contractAddress, - encodedFunctionData); + new CallRequest(credential.getAddress(), contractAddress, encodedFunctionData); Call response = transactionManager.executeCall(callRequest); // get value from the response String callResult = response.getCallResult().getOutput(); @@ -241,7 +241,7 @@ protected List executeCallWithMultipleValueReturn(Function function) protected void asyncExecuteTransaction( String data, String funName, TransactionCallback callback) { - transactionManager.sendTransactionAsync(contractAddress, data, callback); + transactionManager.sendTransactionAsync(contractAddress, data, credential, callback); } protected void asyncExecuteTransaction(Function function, TransactionCallback callback) { @@ -253,7 +253,7 @@ protected TransactionReceipt executeTransaction(Function function) { } protected TransactionReceipt executeTransaction(String data, String functionName) { - return transactionManager.sendTransactionAndGetReceipt(contractAddress, data); + return transactionManager.sendTransactionAndGetReceipt(contractAddress, data, credential); } /** Adds a log field to {@link EventValues}. */ @@ -284,7 +284,7 @@ protected String createSignedTransaction(Function function) { } protected String createSignedTransaction(String to, String data) { - return transactionManager.createSignedTransaction(to, data); + return transactionManager.createSignedTransaction(to, data, credential); } public void subscribeEvent(EventLogParams params, EventCallback callback) { @@ -396,4 +396,8 @@ public static List convertToNative(List arr) { public TransactionManager getTransactionManager() { return this.transactionManager; } + + public String getCurrentExternalAccountAddress() { + return this.credential.getAddress(); + } } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/callback/PrecompiledCallback.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/callback/PrecompiledCallback.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/callback/PrecompiledCallback.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/callback/PrecompiledCallback.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CNSPrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CNSPrecompiled.java similarity index 92% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CNSPrecompiled.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CNSPrecompiled.java index 1196d314e..a4bd12ebe 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CNSPrecompiled.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CNSPrecompiled.java @@ -16,6 +16,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -45,12 +46,14 @@ public class CNSPrecompiled extends Contract { public static final String FUNC_GETCONTRACTADDRESS = "getContractAddress"; - protected CNSPrecompiled(String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + protected CNSPrecompiled(String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public String selectByName(String name) throws ContractException { @@ -157,12 +160,17 @@ public String getContractAddress(String name, String version) throws ContractExc } public static CNSPrecompiled load( - String contractAddress, Client client, CryptoInterface credential) { + String contractAddress, Client client, CryptoKeyPair credential) { return new CNSPrecompiled(contractAddress, client, credential); } - public static CNSPrecompiled deploy(Client client, CryptoInterface credential) + public static CNSPrecompiled deploy(Client client, CryptoKeyPair credential) throws ContractException { - return deploy(CNSPrecompiled.class, client, credential, getBinary(credential), ""); + return deploy( + CNSPrecompiled.class, + client, + credential, + getBinary(client.getCryptoInterface()), + ""); } } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CnsInfo.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CnsInfo.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CnsInfo.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CnsInfo.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CnsService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CnsService.java similarity index 97% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CnsService.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CnsService.java index ba6cc04c7..576d7f5ba 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/cns/CnsService.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/cns/CnsService.java @@ -20,7 +20,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledAddress; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledVersionCheck; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.PrecompiledConstant; import org.fisco.bcos.sdk.model.PrecompiledRetCode; import org.fisco.bcos.sdk.model.RetCode; @@ -32,7 +32,7 @@ public class CnsService { private final CNSPrecompiled cnsPrecompiled; private String currentVersion; - public CnsService(Client client, CryptoInterface credential) { + public CnsService(Client client, CryptoKeyPair credential) { this.cnsPrecompiled = CNSPrecompiled.load(PrecompiledAddress.CNS_PRECOMPILED_ADDRESS, client, credential); this.currentVersion = client.getClientNodeVersion().getNodeVersion().getSupportedVersion(); diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusPrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusPrecompiled.java similarity index 93% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusPrecompiled.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusPrecompiled.java index 8380e0243..2b8a7ce5e 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusPrecompiled.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusPrecompiled.java @@ -14,6 +14,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -42,12 +43,14 @@ public class ConsensusPrecompiled extends Contract { public static final String FUNC_ADDSEALER = "addSealer"; protected ConsensusPrecompiled( - String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt addObserver(String param0) { @@ -207,12 +210,17 @@ public Tuple1 getAddSealerOutput(TransactionReceipt transactionRecei } public static ConsensusPrecompiled load( - String contractAddress, Client client, CryptoInterface credential) { + String contractAddress, Client client, CryptoKeyPair credential) { return new ConsensusPrecompiled(contractAddress, client, credential); } - public static ConsensusPrecompiled deploy(Client client, CryptoInterface credential) + public static ConsensusPrecompiled deploy(Client client, CryptoKeyPair credential) throws ContractException { - return deploy(ConsensusPrecompiled.class, client, credential, getBinary(credential), ""); + return deploy( + ConsensusPrecompiled.class, + client, + credential, + getBinary(client.getCryptoInterface()), + ""); } } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusService.java similarity index 96% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusService.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusService.java index 9fabb3c75..22cc8d495 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/consensus/ConsensusService.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/consensus/ConsensusService.java @@ -17,7 +17,7 @@ import java.util.List; import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledAddress; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.PrecompiledRetCode; import org.fisco.bcos.sdk.model.RetCode; import org.fisco.bcos.sdk.transaction.codec.decode.ReceiptParser; @@ -27,7 +27,7 @@ public class ConsensusService { private final ConsensusPrecompiled consensusPrecompiled; private final Client client; - public ConsensusService(Client client, CryptoInterface credential) { + public ConsensusService(Client client, CryptoKeyPair credential) { this.client = client; // load the ConsensusPrecompiled this.consensusPrecompiled = diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java similarity index 94% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java index 35577bcc7..3df0bc42f 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCyclePrecompiled.java @@ -17,6 +17,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -49,12 +50,14 @@ public class ContractLifeCyclePrecompiled extends Contract { public static final String FUNC_LISTMANAGER = "listManager"; protected ContractLifeCyclePrecompiled( - String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public Tuple2 getStatus(String addr) throws ContractException { @@ -240,13 +243,17 @@ public Tuple2> listManager(String addr) throws Contract } public static ContractLifeCyclePrecompiled load( - String contractAddress, Client client, CryptoInterface credential) { + String contractAddress, Client client, CryptoKeyPair credential) { return new ContractLifeCyclePrecompiled(contractAddress, client, credential); } - public static ContractLifeCyclePrecompiled deploy(Client client, CryptoInterface credential) + public static ContractLifeCyclePrecompiled deploy(Client client, CryptoKeyPair credential) throws ContractException { return deploy( - ContractLifeCyclePrecompiled.class, client, credential, getBinary(credential), ""); + ContractLifeCyclePrecompiled.class, + client, + credential, + getBinary(client.getCryptoInterface()), + ""); } } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCycleService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCycleService.java similarity index 97% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCycleService.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCycleService.java index e103cd3a3..5e889eac8 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/contractmgr/ContractLifeCycleService.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/contractmgr/ContractLifeCycleService.java @@ -20,7 +20,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledAddress; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledVersionCheck; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.PrecompiledRetCode; import org.fisco.bcos.sdk.model.RetCode; import org.fisco.bcos.sdk.transaction.codec.decode.ReceiptParser; @@ -30,7 +30,7 @@ public class ContractLifeCycleService { private final ContractLifeCyclePrecompiled contractLifeCyclePrecompiled; private final String currentVersion; - public ContractLifeCycleService(Client client, CryptoInterface credential) { + public ContractLifeCycleService(Client client, CryptoKeyPair credential) { this.contractLifeCyclePrecompiled = ContractLifeCyclePrecompiled.load( PrecompiledAddress.CONTRACT_LIFECYCLE_PRECOMPILED_ADDRESS, diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/CRUD.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/CRUD.java similarity index 97% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/CRUD.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/CRUD.java index 2fc8ada90..b1d79a671 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/CRUD.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/CRUD.java @@ -17,6 +17,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -48,12 +49,14 @@ public class CRUD extends Contract { public static final String FUNC_REMOVE = "remove"; - protected CRUD(String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + protected CRUD(String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt update( @@ -320,11 +323,11 @@ public Tuple1 getRemoveOutput(TransactionReceipt transactionReceipt) return new Tuple1((BigInteger) results.get(0).getValue()); } - public static CRUD load(String contractAddress, Client client, CryptoInterface credential) { + public static CRUD load(String contractAddress, Client client, CryptoKeyPair credential) { return new CRUD(contractAddress, client, credential); } - public static CRUD deploy(Client client, CryptoInterface credential) throws ContractException { - return deploy(CRUD.class, client, credential, getBinary(credential), ""); + public static CRUD deploy(Client client, CryptoKeyPair credential) throws ContractException { + return deploy(CRUD.class, client, credential, getBinary(client.getCryptoInterface()), ""); } } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/TableCRUDService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/TableCRUDService.java similarity index 98% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/TableCRUDService.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/TableCRUDService.java index fb614923c..6d728898c 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/TableCRUDService.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/TableCRUDService.java @@ -30,7 +30,7 @@ import org.fisco.bcos.sdk.contract.precompiled.crud.table.TableFactory; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledAddress; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledVersionCheck; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.NodeVersion; import org.fisco.bcos.sdk.model.PrecompiledConstant; import org.fisco.bcos.sdk.model.PrecompiledRetCode; @@ -44,15 +44,13 @@ public class TableCRUDService { private final Client client; - private final CryptoInterface credential; private final CRUD crudService; private final TableFactory tableFactory; private static final String ValueFieldsDelimiter = ","; private final String currentVersion; - public TableCRUDService(Client client, CryptoInterface credential) { + public TableCRUDService(Client client, CryptoKeyPair credential) { this.client = client; - this.credential = credential; this.crudService = CRUD.load(PrecompiledAddress.CRUD_PRECOMPILED_ADDRESS, client, credential); this.tableFactory = diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/Condition.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/Condition.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/Condition.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/Condition.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/ConditionOperator.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/ConditionOperator.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/ConditionOperator.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/ConditionOperator.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/Entry.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/Entry.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/common/Entry.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/common/Entry.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/table/TableFactory.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/table/TableFactory.java similarity index 90% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/table/TableFactory.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/table/TableFactory.java index 75fc50a0f..75458a435 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/crud/table/TableFactory.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/crud/table/TableFactory.java @@ -16,6 +16,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -41,12 +42,14 @@ public class TableFactory extends Contract { public static final String FUNC_OPENTABLE = "openTable"; - protected TableFactory(String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + protected TableFactory(String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt createTable(String param0, String param1, String param2) { @@ -126,12 +129,13 @@ public String openTable(String param0) throws ContractException { } public static TableFactory load( - String contractAddress, Client client, CryptoInterface credential) { + String contractAddress, Client client, CryptoKeyPair credential) { return new TableFactory(contractAddress, client, credential); } - public static TableFactory deploy(Client client, CryptoInterface credential) + public static TableFactory deploy(Client client, CryptoKeyPair credential) throws ContractException { - return deploy(TableFactory.class, client, credential, getBinary(credential), ""); + return deploy( + TableFactory.class, client, credential, getBinary(client.getCryptoInterface()), ""); } } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledAddress.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledAddress.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledAddress.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledAddress.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledResponse.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledResponse.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledResponse.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledResponse.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledVersionCheck.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledVersionCheck.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/PrecompiledVersionCheck.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/PrecompiledVersionCheck.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/Version.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/Version.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/model/Version.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/model/Version.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernancePrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernancePrecompiled.java similarity index 97% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernancePrecompiled.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernancePrecompiled.java index fb0e13b79..ee55dd1c6 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernancePrecompiled.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernancePrecompiled.java @@ -17,6 +17,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -65,12 +66,14 @@ public class ChainGovernancePrecompiled extends Contract { public static final String FUNC_GETACCOUNTSTATUS = "getAccountStatus"; protected ChainGovernancePrecompiled( - String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public String listOperators() throws ContractException { @@ -531,13 +534,17 @@ public String getAccountStatus(String account) throws ContractException { } public static ChainGovernancePrecompiled load( - String contractAddress, Client client, CryptoInterface credential) { + String contractAddress, Client client, CryptoKeyPair credential) { return new ChainGovernancePrecompiled(contractAddress, client, credential); } - public static ChainGovernancePrecompiled deploy(Client client, CryptoInterface credential) + public static ChainGovernancePrecompiled deploy(Client client, CryptoKeyPair credential) throws ContractException { return deploy( - ChainGovernancePrecompiled.class, client, credential, getBinary(credential), ""); + ChainGovernancePrecompiled.class, + client, + credential, + getBinary(client.getCryptoInterface()), + ""); } } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernanceService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernanceService.java similarity index 98% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernanceService.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernanceService.java index 0802723af..d8affe513 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/ChainGovernanceService.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/ChainGovernanceService.java @@ -21,7 +21,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledAddress; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledVersionCheck; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.PrecompiledRetCode; import org.fisco.bcos.sdk.model.RetCode; import org.fisco.bcos.sdk.transaction.codec.decode.ReceiptParser; @@ -31,7 +31,7 @@ public class ChainGovernanceService { private final ChainGovernancePrecompiled chainGovernancePrecompiled; private String currentVersion; - public ChainGovernanceService(Client client, CryptoInterface credential) { + public ChainGovernanceService(Client client, CryptoKeyPair credential) { this.chainGovernancePrecompiled = ChainGovernancePrecompiled.load( PrecompiledAddress.CHAINGOVERNANCE_PRECOMPILED_ADDRESS, client, credential); diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionInfo.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionInfo.java similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionInfo.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionInfo.java diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionPrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionPrecompiled.java similarity index 95% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionPrecompiled.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionPrecompiled.java index f336c43d1..393eeca85 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionPrecompiled.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionPrecompiled.java @@ -16,6 +16,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -50,12 +51,14 @@ public class PermissionPrecompiled extends Contract { public static final String FUNC_REVOKEWRITE = "revokeWrite"; protected PermissionPrecompiled( - String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt insert(String table_name, String addr) { @@ -309,12 +312,17 @@ public Tuple1 getRevokeWriteOutput(TransactionReceipt transactionRec } public static PermissionPrecompiled load( - String contractAddress, Client client, CryptoInterface credential) { + String contractAddress, Client client, CryptoKeyPair credential) { return new PermissionPrecompiled(contractAddress, client, credential); } - public static PermissionPrecompiled deploy(Client client, CryptoInterface credential) + public static PermissionPrecompiled deploy(Client client, CryptoKeyPair credential) throws ContractException { - return deploy(PermissionPrecompiled.class, client, credential, getBinary(credential), ""); + return deploy( + PermissionPrecompiled.class, + client, + credential, + getBinary(client.getCryptoInterface()), + ""); } } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionService.java similarity index 98% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionService.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionService.java index 8a000e413..dfa565477 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/permission/PermissionService.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/permission/PermissionService.java @@ -20,7 +20,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledAddress; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledVersionCheck; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.PrecompiledConstant; import org.fisco.bcos.sdk.model.RetCode; import org.fisco.bcos.sdk.transaction.codec.decode.ReceiptParser; @@ -31,7 +31,7 @@ public class PermissionService { private final PermissionPrecompiled permissionPrecompiled; private final String currentVersion; - public PermissionService(Client client, CryptoInterface credential) { + public PermissionService(Client client, CryptoKeyPair credential) { this.permissionPrecompiled = PermissionPrecompiled.load( PrecompiledAddress.PERMISSION_PRECOMPILED_ADDRESS, client, credential); diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CNSPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CNSPrecompiled.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CNSPrecompiled.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CNSPrecompiled.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CRUD.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CRUD.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CRUD.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CRUD.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CRUDPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CRUDPrecompiled.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/CRUDPrecompiled.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/CRUDPrecompiled.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ChainGovernancePrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ChainGovernancePrecompiled.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ChainGovernancePrecompiled.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ChainGovernancePrecompiled.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ConsensusPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ConsensusPrecompiled.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ConsensusPrecompiled.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ConsensusPrecompiled.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ContractLifeCyclePrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ContractLifeCyclePrecompiled.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ContractLifeCyclePrecompiled.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ContractLifeCyclePrecompiled.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ParallelConfigPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ParallelConfigPrecompiled.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/ParallelConfigPrecompiled.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/ParallelConfigPrecompiled.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/PermissionPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/PermissionPrecompiled.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/PermissionPrecompiled.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/PermissionPrecompiled.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/SystemConfigPrecompiled.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/SystemConfigPrecompiled.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/SystemConfigPrecompiled.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/SystemConfigPrecompiled.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/TableFactory.sol b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/TableFactory.sol similarity index 100% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sol/TableFactory.sol rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sol/TableFactory.sol diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigPrecompiled.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigPrecompiled.java similarity index 87% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigPrecompiled.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigPrecompiled.java index a91576916..0f5c1e153 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigPrecompiled.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigPrecompiled.java @@ -15,6 +15,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.Contract; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.CryptoType; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; @@ -39,12 +40,14 @@ public class SystemConfigPrecompiled extends Contract { public static final String FUNC_SETVALUEBYKEY = "setValueByKey"; protected SystemConfigPrecompiled( - String contractAddress, Client client, CryptoInterface credential) { - super(getBinary(credential), contractAddress, client, credential); + String contractAddress, Client client, CryptoKeyPair credential) { + super(getBinary(client.getCryptoInterface()), contractAddress, client, credential); } - public static String getBinary(CryptoInterface credential) { - return (credential.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY); + public static String getBinary(CryptoInterface cryptoInterface) { + return (cryptoInterface.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE + ? BINARY + : SM_BINARY); } public TransactionReceipt setValueByKey(String key, String value) { @@ -106,12 +109,17 @@ public Tuple1 getSetValueByKeyOutput(TransactionReceipt transactionR } public static SystemConfigPrecompiled load( - String contractAddress, Client client, CryptoInterface credential) { + String contractAddress, Client client, CryptoKeyPair credential) { return new SystemConfigPrecompiled(contractAddress, client, credential); } - public static SystemConfigPrecompiled deploy(Client client, CryptoInterface credential) + public static SystemConfigPrecompiled deploy(Client client, CryptoKeyPair credential) throws ContractException { - return deploy(SystemConfigPrecompiled.class, client, credential, getBinary(credential), ""); + return deploy( + SystemConfigPrecompiled.class, + client, + credential, + getBinary(client.getCryptoInterface()), + ""); } } diff --git a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigService.java b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigService.java similarity index 91% rename from sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigService.java rename to sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigService.java index ff550ead2..387d09660 100644 --- a/sdk-transaction/src/main/java/org/fisco/bcos/sdk/transaction/contract/precompiled/sysconfig/SystemConfigService.java +++ b/sdk-transaction/src/main/java/org/fisco/bcos/sdk/contract/precompiled/sysconfig/SystemConfigService.java @@ -16,7 +16,7 @@ import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.contract.precompiled.model.PrecompiledAddress; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.RetCode; import org.fisco.bcos.sdk.transaction.codec.decode.ReceiptParser; import org.fisco.bcos.sdk.transaction.model.exception.ContractException; @@ -24,7 +24,7 @@ public class SystemConfigService { private final SystemConfigPrecompiled systemConfigPrecompiled; - public SystemConfigService(Client client, CryptoInterface credential) { + public SystemConfigService(Client client, CryptoKeyPair credential) { this.systemConfigPrecompiled = SystemConfigPrecompiled.load( PrecompiledAddress.SYSCONFIG_PRECOMPILED_ADDRESS, client, credential); diff --git a/sdk-transaction/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 index 9347a4fd0..852b01a6c 100644 --- a/sdk-transaction/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 @@ -14,6 +14,7 @@ */ package org.fisco.bcos.sdk.transaction.codec.encode; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.crypto.signature.SignatureResult; import org.fisco.bcos.sdk.transaction.model.po.RawTransaction; @@ -26,7 +27,7 @@ public interface TransactionEncoderInterface { byte[] encode(RawTransaction transaction, SignatureResult signature); - byte[] encodeAndSignBytes(RawTransaction rawTransaction); + byte[] encodeAndSignBytes(RawTransaction rawTransaction, CryptoKeyPair cryptoKeyPair); - String encodeAndSign(RawTransaction rawTransaction); + String encodeAndSign(RawTransaction rawTransaction, CryptoKeyPair cryptoKeyPair); } diff --git a/sdk-transaction/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 index fca0a34f8..0a8578a42 100644 --- a/sdk-transaction/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 @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.List; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.crypto.signature.Signature; import org.fisco.bcos.sdk.crypto.signature.SignatureResult; import org.fisco.bcos.sdk.rlp.RlpEncoder; @@ -41,19 +42,20 @@ public TransactionEncoderService(CryptoInterface cryptoInterface) { super(); this.cryptoInterface = cryptoInterface; this.signature = cryptoInterface.getSignatureImpl(); - this.transactionSignerService = new TransactionSignerServcie(signature, cryptoInterface); + this.transactionSignerService = new TransactionSignerServcie(signature); } @Override - public String encodeAndSign(RawTransaction rawTransaction) { - return Numeric.toHexString(encodeAndSignBytes(rawTransaction)); + public String encodeAndSign(RawTransaction rawTransaction, CryptoKeyPair cryptoKeyPair) { + return Numeric.toHexString(encodeAndSignBytes(rawTransaction, cryptoKeyPair)); } @Override - public byte[] encodeAndSignBytes(RawTransaction rawTransaction) { + public byte[] encodeAndSignBytes(RawTransaction rawTransaction, CryptoKeyPair cryptoKeyPair) { byte[] encodedTransaction = encode(rawTransaction, null); byte[] hash = cryptoInterface.hash(encodedTransaction); - SignatureResult result = transactionSignerService.sign(Hex.toHexString(hash)); + SignatureResult result = + transactionSignerService.sign(Hex.toHexString(hash), cryptoKeyPair); return encode(rawTransaction, result); } diff --git a/sdk-transaction/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 index debea17d6..2ebf72c6e 100644 --- a/sdk-transaction/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 @@ -21,7 +21,7 @@ import org.fisco.bcos.sdk.abi.ABICodecException; import org.fisco.bcos.sdk.client.Client; import org.fisco.bcos.sdk.client.protocol.response.Call; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.PrecompiledRetCode; import org.fisco.bcos.sdk.model.RetCode; import org.fisco.bcos.sdk.model.TransactionReceipt; @@ -58,11 +58,11 @@ public class AssembleTransactionManager extends TransactionManager public AssembleTransactionManager( Client client, - CryptoInterface cryptoInterface, + CryptoKeyPair cryptoKeyPair, Integer groupId, String chainId, ContractLoader contractLoader) { - super(client, cryptoInterface, groupId, chainId); + super(client, cryptoKeyPair, groupId, chainId); this.transactionDecoder = new TransactionDecoderService(cryptoInterface); this.transactionPusher = new TransactionPusherService(client); this.abiCodec = new ABICodec(cryptoInterface); @@ -76,7 +76,7 @@ public void deployOnly(String abi, String bin, List params) throws ABICo @Override public TransactionReceipt deployAndGetReceipt(String data) { - String signedData = createSignedTransaction(null, data); + String signedData = createSignedTransaction(null, data, this.cryptoKeyPair); return transactionPusher.push(signedData); } @@ -104,7 +104,9 @@ public TransactionResponse deployAndGetResponseWithStringParams( return deployAndGetResponse( abi, createSignedTransaction( - null, abiCodec.encodeConstructorFromString(abi, bin, params))); + null, + abiCodec.encodeConstructorFromString(abi, bin, params), + this.cryptoKeyPair)); } @Override @@ -159,7 +161,7 @@ public void sendTransactionOnly(String signedData) { public TransactionResponse sendTransactionAndGetResponse( String to, String abi, String functionName, String data) throws TransactionBaseException, ABICodecException { - String signedData = createSignedTransaction(to, data); + String signedData = createSignedTransaction(to, data, this.cryptoKeyPair); TransactionReceipt receipt = this.transactionPusher.push(signedData); try { return transactionDecoder.decodeReceiptWithValues(abi, functionName, receipt); @@ -193,7 +195,7 @@ public TransactionReceipt sendTransactionAndGetReceiptByContractLoader( String data = abiCodec.encodeMethod( contractLoader.getABIByContractName(contractName), functionName, args); - return sendTransactionAndGetReceipt(contractAddress, data); + return sendTransactionAndGetReceipt(contractAddress, data, cryptoKeyPair); } @Override @@ -224,7 +226,7 @@ public void sendTransactionAsync( TransactionCallback callback) throws TransactionBaseException, ABICodecException { String data = encodeFunction(abi, functionName, params); - sendTransactionAsync(to, data, callback); + sendTransactionAsync(to, data, this.cryptoKeyPair, callback); } @Override @@ -243,7 +245,7 @@ public void sendTransactionAndGetReceiptByContractLoaderAsync( String data = abiCodec.encodeMethod( contractLoader.getABIByContractName(contractName), functionName, args); - sendTransactionAsync(contractAddress, data, callback); + sendTransactionAsync(contractAddress, data, this.cryptoKeyPair, callback); } @Override @@ -251,7 +253,7 @@ public CallResponse sendCallByContractLoader( String contractName, String contractAddress, String functionName, List args) throws TransactionBaseException, ABICodecException { return sendCall( - getCurrentExternalAccountAddress(), + this.cryptoKeyPair.getAddress(), contractAddress, contractLoader.getABIByContractName(contractName), functionName, @@ -299,7 +301,8 @@ public CallResponse callAndGetResponse( @Override public String createSignedConstructor(String abi, String bin, List params) throws ABICodecException { - return createSignedTransaction(null, abiCodec.encodeConstructor(abi, bin, params)); + return createSignedTransaction( + null, abiCodec.encodeConstructor(abi, bin, params), this.cryptoKeyPair); } @Override diff --git a/sdk-transaction/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 index d16fe3717..cbe3dd9b4 100644 --- a/sdk-transaction/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 @@ -19,6 +19,7 @@ import org.fisco.bcos.sdk.client.protocol.request.Transaction; import org.fisco.bcos.sdk.client.protocol.response.Call; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; import org.fisco.bcos.sdk.transaction.builder.TransactionBuilderInterface; @@ -34,6 +35,7 @@ public class TransactionManager implements TransactionManagerInterface { protected static Logger log = LoggerFactory.getLogger(TransactionManager.class); protected final CryptoInterface cryptoInterface; + protected final CryptoKeyPair cryptoKeyPair; protected final Client client; protected final Integer groupId; protected final String chainId; @@ -41,24 +43,27 @@ public class TransactionManager implements TransactionManagerInterface { protected final TransactionEncoderInterface transactionEncoder; public TransactionManager( - Client client, CryptoInterface cryptoInterface, Integer groupId, String chainId) { - this.cryptoInterface = cryptoInterface; + Client client, CryptoKeyPair cryptoKeyPair, Integer groupId, String chainId) { + this.cryptoInterface = client.getCryptoInterface(); + this.cryptoKeyPair = cryptoKeyPair; this.client = client; this.groupId = groupId; this.chainId = chainId; this.transactionBuilder = new TransactionBuilderService(client); - this.transactionEncoder = new TransactionEncoderService(cryptoInterface); + this.transactionEncoder = new TransactionEncoderService(client.getCryptoInterface()); } @Override - public TransactionReceipt sendTransactionAndGetReceipt(String to, String data) { - String signedData = createSignedTransaction(to, data); + public TransactionReceipt sendTransactionAndGetReceipt( + String to, String data, CryptoKeyPair cryptoKeyPair) { + String signedData = createSignedTransaction(to, data, cryptoKeyPair); return this.client.sendRawTransactionAndGetReceipt(signedData); } @Override - public void sendTransactionAsync(String to, String data, TransactionCallback callback) { - String signedData = createSignedTransaction(to, data); + public void sendTransactionAsync( + String to, String data, CryptoKeyPair cryptoKeyPair, TransactionCallback callback) { + String signedData = createSignedTransaction(to, data, cryptoKeyPair); client.asyncSendRawTransaction(signedData, callback); } @@ -74,12 +79,7 @@ public Call executeCall(String from, String to, String encodedFunction) { } @Override - public String getCurrentExternalAccountAddress() { - return cryptoInterface.getCryptoKeyPair().getAddress(); - } - - @Override - public String createSignedTransaction(String to, String data) { + public String createSignedTransaction(String to, String data, CryptoKeyPair cryptoKeyPair) { RawTransaction rawTransaction = transactionBuilder.createTransaction( DefaultGasProvider.GAS_PRICE, @@ -90,6 +90,6 @@ public String createSignedTransaction(String to, String data) { new BigInteger(this.chainId), BigInteger.valueOf(this.groupId), ""); - return transactionEncoder.encodeAndSign(rawTransaction); + return transactionEncoder.encodeAndSign(rawTransaction, cryptoKeyPair); } } diff --git a/sdk-transaction/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 index ad57f9721..f758bec4e 100644 --- a/sdk-transaction/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 @@ -17,7 +17,7 @@ import org.apache.commons.lang3.tuple.Pair; import org.fisco.bcos.sdk.channel.model.EnumNodeVersion; import org.fisco.bcos.sdk.client.Client; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.NodeVersion; import org.fisco.bcos.sdk.transaction.tools.ContractLoader; import org.slf4j.Logger; @@ -54,24 +54,24 @@ public static Pair getChainIdAndGroupId(Client client) { } public static TransactionManager createTransactionManager( - Client client, CryptoInterface cryptoInterface) { + Client client, CryptoKeyPair cryptoKeyPair) { Pair pair = getChainIdAndGroupId(client); - return new TransactionManager(client, cryptoInterface, pair.getRight(), pair.getLeft()); + return new TransactionManager(client, cryptoKeyPair, pair.getRight(), pair.getLeft()); } public static AssembleTransactionManager createAssembleTransactionManager( - Client client, CryptoInterface cryptoInterface) throws Exception { + Client client, CryptoKeyPair cryptoKeyPair) throws Exception { Pair pair = getChainIdAndGroupId(client); return new AssembleTransactionManager( - client, cryptoInterface, pair.getRight(), pair.getLeft(), null); + client, cryptoKeyPair, pair.getRight(), pair.getLeft(), null); } public static AssembleTransactionManager createAssembleTransactionManager( - Client client, CryptoInterface cryptoInterface, String abiFilePath, String binFilePath) + Client client, CryptoKeyPair cryptoKeyPair, String abiFilePath, String binFilePath) throws Exception { Pair pair = getChainIdAndGroupId(client); ContractLoader contractLoader = new ContractLoader(abiFilePath, binFilePath); return new AssembleTransactionManager( - client, cryptoInterface, pair.getRight(), pair.getLeft(), contractLoader); + client, cryptoKeyPair, pair.getRight(), pair.getLeft(), contractLoader); } } diff --git a/sdk-transaction/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 index e760c394b..91d060e3e 100644 --- a/sdk-transaction/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 @@ -15,6 +15,7 @@ package org.fisco.bcos.sdk.transaction.manager; import org.fisco.bcos.sdk.client.protocol.response.Call; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.TransactionReceipt; import org.fisco.bcos.sdk.model.callback.TransactionCallback; import org.fisco.bcos.sdk.transaction.model.dto.CallRequest; @@ -26,15 +27,15 @@ */ public interface TransactionManagerInterface { - public TransactionReceipt sendTransactionAndGetReceipt(String to, String data); + public TransactionReceipt sendTransactionAndGetReceipt( + String to, String data, CryptoKeyPair cryptoKeyPair); - public void sendTransactionAsync(String to, String data, TransactionCallback callback); + public void sendTransactionAsync( + String to, String data, CryptoKeyPair cryptoKeyPair, TransactionCallback callback); public Call executeCall(CallRequest callRequest); public Call executeCall(String from, String to, String encodedFunction); - public String getCurrentExternalAccountAddress(); - - public String createSignedTransaction(String to, String data); + public String createSignedTransaction(String to, String data, CryptoKeyPair cryptoKeyPair); } diff --git a/sdk-transaction/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 index cdc67b3fe..120c9da48 100644 --- a/sdk-transaction/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 @@ -14,6 +14,7 @@ */ package org.fisco.bcos.sdk.transaction.signer; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.crypto.signature.SignatureResult; /** @@ -22,5 +23,5 @@ * @author maojiayu */ public interface TransactionSignerInterface { - public SignatureResult sign(String hash); + public SignatureResult sign(String hash, CryptoKeyPair cryptoKeyPair); } diff --git a/sdk-transaction/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 index a66a454d6..0d45a832b 100644 --- a/sdk-transaction/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 @@ -14,27 +14,22 @@ */ package org.fisco.bcos.sdk.transaction.signer; -import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.crypto.signature.Signature; import org.fisco.bcos.sdk.crypto.signature.SignatureResult; public class TransactionSignerServcie implements TransactionSignerInterface { private Signature signature; - private final CryptoInterface cryptoInterface; - /** - * @param signature - * @param cryptoInterface - */ - public TransactionSignerServcie(Signature signature, CryptoInterface cryptoInterface) { + /** @param signature */ + public TransactionSignerServcie(Signature signature) { super(); this.signature = signature; - this.cryptoInterface = cryptoInterface; } @Override - public SignatureResult sign(String hash) { - return signature.sign(hash, this.cryptoInterface.getCryptoKeyPair()); + public SignatureResult sign(String hash, CryptoKeyPair cryptoKeyPair) { + return signature.sign(hash, cryptoKeyPair); } /** @return the signature */ 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 ad9e2b524..5763cd5f7 100644 --- a/src/integration-test/java/org/fisco/bcos/sdk/BcosSDKTest.java +++ b/src/integration-test/java/org/fisco/bcos/sdk/BcosSDKTest.java @@ -211,12 +211,10 @@ private void checkReceipt( Assert.assertEquals(null, receipt.getTxProof()); System.out.println( "getCurrentExternalAccountAddress: " - + helloWorld.getTransactionManager().getCurrentExternalAccountAddress() + + helloWorld.getCurrentExternalAccountAddress() + ", receipt.getFrom()" + receipt.getFrom()); - Assert.assertEquals( - helloWorld.getTransactionManager().getCurrentExternalAccountAddress(), - receipt.getFrom()); + Assert.assertEquals(helloWorld.getCurrentExternalAccountAddress(), receipt.getFrom()); if (checkTo) { Assert.assertEquals(helloWorld.getContractAddress(), receipt.getTo()); } @@ -231,7 +229,8 @@ public void testSendTransactions() throws ConfigException, ContractException { BigInteger blockLimit = sdk.getGroupManagerService().getBlockLimitByGroup(groupId); BigInteger blockNumber = client.getBlockNumber().getBlockNumber(); // deploy the HelloWorld contract - HelloWorld helloWorld = HelloWorld.deploy(client, client.getCryptoInterface()); + HelloWorld helloWorld = + HelloWorld.deploy(client, client.getCryptoInterface().getCryptoKeyPair()); checkReceipt( helloWorld, client, @@ -273,7 +272,9 @@ public void testSendTransactions() throws ConfigException, ContractException { // load contract from the contract address HelloWorld helloWorld2 = HelloWorld.load( - helloWorld.getContractAddress(), client, client.getCryptoInterface()); + helloWorld.getContractAddress(), + client, + client.getCryptoInterface().getCryptoKeyPair()); Assert.assertTrue( helloWorld2.getContractAddress().equals(helloWorld.getContractAddress())); settedString = "Hello, Fisco2"; 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 85c325e3b..e4fba38f5 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 @@ -60,7 +60,7 @@ public void testEventSubModule() { try { AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, client.getCryptoInterface().createKeyPair(), abiFile, binFile); // deploy List params = Lists.newArrayList(); params.add(1); diff --git a/src/integration-test/java/org/fisco/bcos/sdk/precompiled/PrecompiledTest.java b/src/integration-test/java/org/fisco/bcos/sdk/precompiled/PrecompiledTest.java index 7b021503c..bef447e78 100644 --- a/src/integration-test/java/org/fisco/bcos/sdk/precompiled/PrecompiledTest.java +++ b/src/integration-test/java/org/fisco/bcos/sdk/precompiled/PrecompiledTest.java @@ -40,6 +40,7 @@ import org.fisco.bcos.sdk.contract.precompiled.permission.PermissionService; import org.fisco.bcos.sdk.contract.precompiled.sysconfig.SystemConfigService; import org.fisco.bcos.sdk.crypto.CryptoInterface; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.demo.contract.HelloWorld; import org.fisco.bcos.sdk.model.ConstantConfig; import org.fisco.bcos.sdk.model.PrecompiledRetCode; @@ -66,8 +67,8 @@ public void test1ConsensusService() throws ConfigException, ContractException { try { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); - ConsensusService consensusService = - new ConsensusService(client, client.getCryptoInterface()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); + ConsensusService consensusService = new ConsensusService(client, cryptoKeyPair); // get the current sealerList List sealerList = client.getSealerList().getResult(); @@ -133,11 +134,12 @@ public void test2CnsService() throws ConfigException { try { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); - HelloWorld helloWorld = HelloWorld.deploy(client, client.getCryptoInterface()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); + HelloWorld helloWorld = HelloWorld.deploy(client, cryptoKeyPair); String contractAddress = helloWorld.getContractAddress(); String contractName = "HelloWorld"; String contractVersion = "1.0"; - CnsService cnsService = new CnsService(client, client.getCryptoInterface()); + CnsService cnsService = new CnsService(client, cryptoKeyPair); RetCode retCode = cnsService.registerCNS(contractName, contractVersion, contractAddress, ""); // query the cns information @@ -175,7 +177,7 @@ public void test2CnsService() throws ConfigException { .equals(contractAddress)); } // insert anther cns for other contract - HelloWorld helloWorld2 = HelloWorld.deploy(client, client.getCryptoInterface()); + HelloWorld helloWorld2 = HelloWorld.deploy(client, cryptoKeyPair); String contractAddress2 = helloWorld2.getContractAddress(); String contractName2 = "hello"; retCode = cnsService.registerCNS(contractName2, contractVersion, contractAddress2, ""); @@ -200,8 +202,9 @@ public void test3SystemConfigService() throws ConfigException, ContractException try { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); SystemConfigService systemConfigService = - new SystemConfigService(client, client.getCryptoInterface()); + new SystemConfigService(client, cryptoKeyPair); testSystemConfigService(client, systemConfigService, "tx_count_limit"); testSystemConfigService(client, systemConfigService, "tx_gas_limit"); } catch (ClientException | ContractException e) { @@ -230,8 +233,8 @@ public void test5CRUDService() throws ConfigException, ContractException { try { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); - TableCRUDService tableCRUDService = - new TableCRUDService(client, client.getCryptoInterface()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); + TableCRUDService tableCRUDService = new TableCRUDService(client, cryptoKeyPair); // create a user table String tableName = "test"; String key = "key"; @@ -285,8 +288,8 @@ public void test51SyncCRUDService() throws ConfigException { try { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); - CryptoInterface cryptoInterface = client.getCryptoInterface(); - TableCRUDService crudService = new TableCRUDService(client, cryptoInterface); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); + TableCRUDService crudService = new TableCRUDService(client, cryptoKeyPair); String tableName = "test_sync"; List valueFiled = new ArrayList<>(); valueFiled.add("field"); @@ -363,8 +366,8 @@ public void test52AsyncCRUDService() { try { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); - CryptoInterface cryptoInterface = client.getCryptoInterface(); - TableCRUDService crudService = new TableCRUDService(client, cryptoInterface); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); + TableCRUDService crudService = new TableCRUDService(client, cryptoKeyPair); // create table String tableName = "send_async"; List valueFiled = new ArrayList<>(); @@ -442,18 +445,17 @@ public void test6PermissionService() throws ConfigException, ContractException { try { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); - CryptoInterface cryptoInterface = client.getCryptoInterface(); - PermissionService permissionService = new PermissionService(client, cryptoInterface); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); + PermissionService permissionService = new PermissionService(client, cryptoKeyPair); String tableName = "test"; - permissionService.grantPermission( - tableName, cryptoInterface.getCryptoKeyPair().getAddress()); + permissionService.grantPermission(tableName, cryptoKeyPair.getAddress()); // insert data to the table with the account without permission CryptoInterface invalidCryptoInterface = new CryptoInterface(client.getCryptoInterface().getCryptoTypeConfig()); TableCRUDService tableCRUDService = - new TableCRUDService(client, invalidCryptoInterface); + new TableCRUDService(client, invalidCryptoInterface.createKeyPair()); String key = "key2"; Map value = new HashMap<>(5); for (int i = 0; i < 5; i++) { @@ -465,13 +467,12 @@ public void test6PermissionService() throws ConfigException, ContractException { retCode.getMessage() == PrecompiledRetCode.CODE_NO_AUTHORIZED.getMessage()); // insert data to the table with the account with permission - TableCRUDService tableCRUDService2 = new TableCRUDService(client, cryptoInterface); + TableCRUDService tableCRUDService2 = new TableCRUDService(client, cryptoKeyPair); retCode = tableCRUDService2.insert(tableName, key, new Entry(value)); Assert.assertTrue(retCode.getCode() == 1); // revoke permission - permissionService.revokePermission( - tableName, cryptoInterface.getCryptoKeyPair().getAddress()); + permissionService.revokePermission(tableName, cryptoKeyPair.getAddress()); retCode = tableCRUDService.insert(tableName, key, new Entry(value)); Assert.assertTrue(retCode.getCode() == 1); } catch (ContractException e) { @@ -485,11 +486,11 @@ public void test7ContractLifeCycleService() throws ConfigException { try { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); - CryptoInterface cryptoInterface = client.getCryptoInterface(); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); ContractLifeCycleService contractLifeCycleService = - new ContractLifeCycleService(client, cryptoInterface); + new ContractLifeCycleService(client, cryptoKeyPair); // deploy a helloWorld - HelloWorld helloWorld = HelloWorld.deploy(client, cryptoInterface); + HelloWorld helloWorld = HelloWorld.deploy(client, cryptoKeyPair); String orgValue = helloWorld.get(); contractLifeCycleService.freeze(helloWorld.getContractAddress()); // call the contract @@ -512,15 +513,15 @@ public void test7ContractLifeCycleService() throws ConfigException { // grant Manager CryptoInterface cryptoInterface1 = new CryptoInterface(client.getCryptoInterface().getCryptoTypeConfig()); + CryptoKeyPair cryptoKeyPair1 = cryptoInterface1.createKeyPair(); ContractLifeCycleService contractLifeCycleService1 = - new ContractLifeCycleService(client, cryptoInterface1); + new ContractLifeCycleService(client, cryptoKeyPair1); // freeze contract without grant manager RetCode retCode = contractLifeCycleService1.freeze(helloWorld.getContractAddress()); Assert.assertTrue(retCode.equals(PrecompiledRetCode.CODE_INVALID_NO_AUTHORIZED)); // grant manager contractLifeCycleService.grantManager( - helloWorld.getContractAddress(), - cryptoInterface1.getCryptoKeyPair().getAddress()); + helloWorld.getContractAddress(), cryptoKeyPair1.getAddress()); // freeze the contract retCode = contractLifeCycleService1.freeze(helloWorld.getContractAddress()); receipt = helloWorld.set("Hello, fisco2"); @@ -542,26 +543,22 @@ public void test8GovernanceService() throws ConfigException { try { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); - CryptoInterface cryptoInterface = client.getCryptoInterface(); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); ChainGovernanceService chainGovernanceService = - new ChainGovernanceService(client, cryptoInterface); + new ChainGovernanceService(client, cryptoKeyPair); List orgPermissionInfos = chainGovernanceService.listCommitteeMembers(); - chainGovernanceService.grantCommitteeMember( - cryptoInterface.getCryptoKeyPair().getAddress()); + chainGovernanceService.grantCommitteeMember(cryptoKeyPair.getAddress()); List permissionInfos = chainGovernanceService.listCommitteeMembers(); // Assert.assertTrue(permissionInfos.size() == orgPermissionInfos.size() + 1); System.out.println("permissionInfos size: " + permissionInfos.size()); Assert.assertTrue( chainGovernanceService - .queryCommitteeMemberWeight( - cryptoInterface.getCryptoKeyPair().getAddress()) + .queryCommitteeMemberWeight(cryptoKeyPair.getAddress()) .equals(BigInteger.valueOf(1))); - RetCode retCode = - chainGovernanceService.grantOperator( - cryptoInterface.getCryptoKeyPair().getAddress()); + RetCode retCode = chainGovernanceService.grantOperator(cryptoKeyPair.getAddress()); Assert.assertTrue( retCode.equals(PrecompiledRetCode.CODE_COMMITTEE_MEMBER_CANNOT_BE_OPERATOR)); @@ -569,7 +566,8 @@ public void test8GovernanceService() throws ConfigException { int orgOperatorSize = chainGovernanceService.listOperators().size(); CryptoInterface cryptoInterface1 = new CryptoInterface(client.getCryptoInterface().getCryptoTypeConfig()); - chainGovernanceService.grantOperator(cryptoInterface1.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair1 = cryptoInterface1.createKeyPair(); + chainGovernanceService.grantOperator(cryptoKeyPair.getAddress()); // Assert.assertTrue(chainGovernanceService.listOperators().size() == orgOperatorSize + // 1); System.out.println( @@ -579,37 +577,34 @@ public void test8GovernanceService() throws ConfigException { + orgOperatorSize); // only the committeeMember can freeze account - CryptoInterface cryptoInterface2 = - new CryptoInterface(client.getCryptoInterface().getCryptoTypeConfig()); - chainGovernanceService.grantOperator(cryptoInterface2.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair2 = + new CryptoInterface(client.getCryptoInterface().getCryptoTypeConfig()) + .createKeyPair(); + chainGovernanceService.grantOperator(cryptoKeyPair2.getAddress()); // create the account - HelloWorld helloWorld = HelloWorld.deploy(client, cryptoInterface2); + HelloWorld helloWorld = HelloWorld.deploy(client, cryptoKeyPair2); TransactionReceipt receipt = helloWorld.set("test"); Assert.assertTrue(receipt.getStatus().equals("0x0")); // the operator freeze account failed ChainGovernanceService chainGovernanceService1 = - new ChainGovernanceService(client, cryptoInterface1); - retCode = - chainGovernanceService1.freezeAccount( - cryptoInterface2.getCryptoKeyPair().getAddress()); + new ChainGovernanceService(client, cryptoKeyPair1); + retCode = chainGovernanceService1.freezeAccount(cryptoKeyPair2.getAddress()); Assert.assertTrue(retCode.equals(PrecompiledRetCode.CODE_NO_AUTHORIZED)); // the committeeMember freeze account succ - chainGovernanceService.freezeAccount(cryptoInterface2.getCryptoKeyPair().getAddress()); + chainGovernanceService.freezeAccount(cryptoKeyPair2.getAddress()); receipt = helloWorld.set("test_freeze"); // account frozen: status is 31 Assert.assertTrue(receipt.getStatus().equals("0x1f")); // unfreeze the account - chainGovernanceService.unfreezeAccount( - cryptoInterface2.getCryptoKeyPair().getAddress()); + chainGovernanceService.unfreezeAccount(cryptoKeyPair2.getAddress()); receipt = helloWorld.set("test_unfreeze"); Assert.assertTrue(receipt.getStatus().equals("0x0")); // Assert.assertTrue("test_unfreeze".equals(helloWorld.get())); // revoke the committeeMember - chainGovernanceService.revokeCommitteeMember( - cryptoInterface.getCryptoKeyPair().getAddress()); + chainGovernanceService.revokeCommitteeMember(cryptoKeyPair.getAddress()); Assert.assertTrue(chainGovernanceService.listCommitteeMembers().size() == 0); } catch (ContractException e) { System.out.println("test8GovernanceService failed, error info:" + e.getMessage()); diff --git a/src/integration-test/java/org/fisco/bcos/sdk/transaction/decoder/EventDecodeTest.java b/src/integration-test/java/org/fisco/bcos/sdk/transaction/decoder/EventDecodeTest.java index 31b49b6f4..f7b64527a 100644 --- a/src/integration-test/java/org/fisco/bcos/sdk/transaction/decoder/EventDecodeTest.java +++ b/src/integration-test/java/org/fisco/bcos/sdk/transaction/decoder/EventDecodeTest.java @@ -49,7 +49,7 @@ public void testDecode() throws Exception { // System.out.println(cryptoInterface.getCryptoKeyPair().getAddress()); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, client.getCryptoInterface().createKeyPair(), abiFile, binFile); ABICodec abiCodec = new ABICodec(client.getCryptoInterface()); // deploy List params = Lists.newArrayList(); diff --git a/src/integration-test/java/org/fisco/bcos/sdk/transaction/decoder/TransactionDecoderServiceTest.java b/src/integration-test/java/org/fisco/bcos/sdk/transaction/decoder/TransactionDecoderServiceTest.java index 1b6401981..08a73d76a 100644 --- a/src/integration-test/java/org/fisco/bcos/sdk/transaction/decoder/TransactionDecoderServiceTest.java +++ b/src/integration-test/java/org/fisco/bcos/sdk/transaction/decoder/TransactionDecoderServiceTest.java @@ -56,7 +56,7 @@ public void testDecode() throws Exception { String abi = contractLoader.getABIByContractName(contractName); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, client.getCryptoInterface().createKeyPair(), abiFile, binFile); // deploy List params = Lists.newArrayList(); params.add(1); diff --git a/src/integration-test/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManagerTest.java b/src/integration-test/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManagerTest.java index 37c8e5155..98ffe5a82 100644 --- a/src/integration-test/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManagerTest.java +++ b/src/integration-test/java/org/fisco/bcos/sdk/transaction/manager/AssembleTransactionManagerTest.java @@ -27,6 +27,7 @@ import org.fisco.bcos.sdk.BcosSDK; import org.fisco.bcos.sdk.abi.ABICodecException; import org.fisco.bcos.sdk.client.Client; +import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.model.ConstantConfig; import org.fisco.bcos.sdk.model.PrecompiledRetCode; import org.fisco.bcos.sdk.model.TransactionReceipt; @@ -60,9 +61,10 @@ public void test1HelloWorld() throws Exception { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); // System.out.println(cryptoInterface.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, cryptoKeyPair, abiFile, binFile); // deploy TransactionResponse response = manager.deployByContractLoader("HelloWorld", new ArrayList<>()); @@ -115,9 +117,10 @@ public void test2ComplexDeploy() throws Exception { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); // System.out.println(cryptoInterface.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, cryptoKeyPair, abiFile, binFile); // deploy List params = Lists.newArrayList(); params.add(1); @@ -147,9 +150,10 @@ public void test3ComplexQuery() throws Exception { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); // System.out.println(cryptoInterface.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, cryptoKeyPair, abiFile, binFile); // deploy List params = Lists.newArrayList(); params.add(1); @@ -192,9 +196,10 @@ public void test4ComplexEmptyTx() throws Exception { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); // System.out.println(cryptoInterface.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, cryptoKeyPair, abiFile, binFile); // deploy List params = Lists.newArrayList(); params.add(1); @@ -216,9 +221,10 @@ public void test5ComplexIncrement() throws Exception { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); // System.out.println(cryptoInterface.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, cryptoKeyPair, abiFile, binFile); // deploy List params = Lists.newArrayList(); params.add(1); @@ -243,9 +249,7 @@ public void onResponse(TransactionReceipt receipt) { try { callResponse3 = manager.sendCall( - client.getCryptoInterface() - .getCryptoKeyPair() - .getAddress(), + cryptoKeyPair.getAddress(), contractAddress, abi, "getUint256", @@ -264,9 +268,10 @@ public void test6ComplexSetValues() throws Exception { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); // System.out.println(cryptoInterface.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, cryptoKeyPair, abiFile, binFile); // deploy List params = Lists.newArrayList(); params.add(1); @@ -296,9 +301,10 @@ public void test7ComplexSetBytes() throws Exception { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); // System.out.println(cryptoInterface.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, cryptoKeyPair, abiFile, binFile); // deploy List params = Lists.newArrayList(); params.add(1); @@ -326,7 +332,7 @@ public void test7ComplexSetBytes() throws Exception { // getBytes CallResponse callResponse4 = manager.sendCall( - client.getCryptoInterface().getCryptoKeyPair().getAddress(), + cryptoKeyPair.getAddress(), contractAddress, abi, "_bytesV", @@ -342,9 +348,10 @@ public void test8ComplexSetBytesFuture() throws Exception { BcosSDK sdk = BcosSDK.build(configFile); Client client = sdk.getClient(Integer.valueOf(1)); // System.out.println(cryptoInterface.getCryptoKeyPair().getAddress()); + CryptoKeyPair cryptoKeyPair = client.getCryptoInterface().createKeyPair(); AssembleTransactionManager manager = TransactionManagerFactory.createAssembleTransactionManager( - client, client.getCryptoInterface(), abiFile, binFile); + client, cryptoKeyPair, abiFile, binFile); // deploy List params = Lists.newArrayList(); params.add(1); @@ -356,7 +363,7 @@ public void test8ComplexSetBytesFuture() throws Exception { String contractAddress = response.getContractAddress(); List paramsSetBytes = Lists.newArrayList("2".getBytes()); String data = manager.encodeFunction(abi, "setBytes", paramsSetBytes); - String signedData = manager.createSignedTransaction(contractAddress, data); + String signedData = manager.createSignedTransaction(contractAddress, data, cryptoKeyPair); CompletableFuture future = manager.sendTransactionAsync(signedData); future.thenAccept( r -> {