From a23d1fe42012e8b2d01eb0846851e38f57b7b2a1 Mon Sep 17 00:00:00 2001 From: cyjseagull Date: Mon, 20 Jul 2020 11:02:17 +0800 Subject: [PATCH] add synchronous sending interface 1. Channel module adds synchronous sending interface && Move client/response and client/request to client/protocol directory 2. add coverage statistic to ci --- .travis.yml | 7 +- build.gradle | 9 ++ .../org/fisco/bcos/sdk/channel/Channel.java | 36 ++++- .../org/fisco/bcos/sdk/client/Client.java | 66 ++++----- .../request/DefaultBlockParameter.java | 2 +- .../protocol/request/JsonRpcMethods.java | 64 ++++++++ .../protocol/request/JsonRpcRequest.java | 53 +++++++ .../{ => protocol}/request/Transaction.java | 2 +- .../{ => protocol}/response/BcosBlock.java | 2 +- .../response/BcosBlockHeader.java | 2 +- .../protocol/response/BcosTransaction.java | 3 + .../response/BcosTransactionReceipt.java | 2 +- .../{ => protocol}/response/BlockHash.java | 2 +- .../{ => protocol}/response/BlockNumber.java | 2 +- .../client/{ => protocol}/response/Call.java | 2 +- .../client/{ => protocol}/response/Code.java | 2 +- .../response/ConsensusStatus.java | 2 +- .../response/GenerateGroup.java | 2 +- .../{ => protocol}/response/GroupList.java | 2 +- .../{ => protocol}/response/GroupPeers.java | 2 +- .../protocol/response/JsonRpcResponse.java | 137 ++++++++++++++++++ .../{ => protocol}/response/NodeIDList.java | 2 +- .../{ => protocol}/response/NodeVersion.java | 2 +- .../{ => protocol}/response/ObserverList.java | 2 +- .../{ => protocol}/response/PbftView.java | 2 +- .../client/{ => protocol}/response/Peers.java | 2 +- .../response/PendingTransactions.java | 2 +- .../response/PendingTxSize.java | 2 +- .../response/QueryGroupStatus.java | 2 +- .../{ => protocol}/response/RecoverGroup.java | 2 +- .../{ => protocol}/response/RemoveGroup.java | 2 +- .../{ => protocol}/response/SealerList.java | 2 +- .../response/SendTransaction.java | 2 +- .../{ => protocol}/response/StartGroup.java | 2 +- .../{ => protocol}/response/StopGroup.java | 2 +- .../{ => protocol}/response/SyncStatus.java | 2 +- .../{ => protocol}/response/SystemConfig.java | 2 +- .../response/TotalTransactionCount.java | 2 +- .../response/TransactionReceiptWithProof.java | 2 +- .../response/TransactionWithProof.java | 2 +- .../sdk/client/response/BcosTransaction.java | 3 - .../org/fisco/bcos/sdk/model/Message.java | 113 ++++++++++++++- .../org/fisco/bcos/sdk/model/Response.java | 39 ++++- .../exceptions/DecodeMessageException.java | 30 ++++ .../bcos/sdk/network/MessageDecoder.java | 2 +- .../bcos/sdk/network/MessageEncoder.java | 2 +- .../impl/executor/TransactionBuilder.java | 2 +- .../impl/executor/TransactionDecoder.java | 4 +- .../impl/executor/TransactionEncoder.java | 2 +- .../core/impl/executor/TransactionPusher.java | 4 +- .../core/impl/executor/TransactionSigner.java | 2 +- .../executor/TransactionBuilderInterface.java | 2 +- .../executor/TransactionDecoderInterface.java | 4 +- .../executor/TransactionEncoderInterface.java | 2 +- .../executor/TransactionPusherInterface.java | 4 +- .../executor/TransactionSignerInterface.java | 2 +- .../domain/dto/TransactionResponse.java | 2 +- .../manager/TransactionManager.java | 2 +- .../manager/TransactionManagerInterface.java | 2 +- 59 files changed, 564 insertions(+), 98 deletions(-) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/request/DefaultBlockParameter.java (92%) create mode 100644 src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcMethods.java create mode 100644 src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcRequest.java rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/request/Transaction.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/BcosBlock.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/BcosBlockHeader.java (92%) create mode 100644 src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransaction.java rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/BcosTransactionReceipt.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/BlockHash.java (90%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/BlockNumber.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/Call.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/Code.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/ConsensusStatus.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/GenerateGroup.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/GroupList.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/GroupPeers.java (92%) create mode 100644 src/main/java/org/fisco/bcos/sdk/client/protocol/response/JsonRpcResponse.java rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/NodeIDList.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/NodeVersion.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/ObserverList.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/PbftView.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/Peers.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/PendingTransactions.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/PendingTxSize.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/QueryGroupStatus.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/RecoverGroup.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/RemoveGroup.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/SealerList.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/SendTransaction.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/StartGroup.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/StopGroup.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/SyncStatus.java (93%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/SystemConfig.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/TotalTransactionCount.java (90%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/TransactionReceiptWithProof.java (92%) rename src/main/java/org/fisco/bcos/sdk/client/{ => protocol}/response/TransactionWithProof.java (92%) delete mode 100644 src/main/java/org/fisco/bcos/sdk/client/response/BcosTransaction.java create mode 100644 src/main/java/org/fisco/bcos/sdk/model/exceptions/DecodeMessageException.java diff --git a/.travis.yml b/.travis.yml index 45da46564..0f06fd326 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,10 +57,6 @@ jobs: dist: bionic sudo: required -# # os -# - language: java -# os: osx -# osx_image: xcode11.3 addons: apt: packages: @@ -77,3 +73,6 @@ before_install: - gradle wrapper script: | bash .ci/ci_check.sh +after_success: + - ./gradlew jacocoTestReport + - bash <(curl -s https://codecov.io/bash) diff --git a/build.gradle b/build.gradle index 2202e48a2..047df31f9 100644 --- a/build.gradle +++ b/build.gradle @@ -72,3 +72,12 @@ dependencies { archivesBaseName = 'java-sdk' group = 'org.fisco-bcos' version = '1.0.0-SNAPSHOT' + +jacocoTestReport { + reports { + xml.enabled true + html.enabled false + } +} + +check.dependsOn jacocoTestReport diff --git a/src/main/java/org/fisco/bcos/sdk/channel/Channel.java b/src/main/java/org/fisco/bcos/sdk/channel/Channel.java index 5ca251f2b..80d9ed853 100644 --- a/src/main/java/org/fisco/bcos/sdk/channel/Channel.java +++ b/src/main/java/org/fisco/bcos/sdk/channel/Channel.java @@ -18,6 +18,7 @@ import java.util.List; import org.fisco.bcos.sdk.model.Message; import org.fisco.bcos.sdk.model.MsgType; +import org.fisco.bcos.sdk.model.Response; import org.fisco.bcos.sdk.network.ConnectionInfo; import org.fisco.bcos.sdk.network.MsgHandler; @@ -62,6 +63,33 @@ static Channel build(String filepath) { */ void addDisconnectHandler(MsgHandler handler); + /** + * Synchronize interface, send a message to the given peer, and get the response + * + * @param out: Message to be sent + * @param peerIpPort: Remote ip:port information + * @param callback: The callback to be called when the response returns + * @return: Remote reply + */ + Response sendToPeer(Message out, String peerIpPort); + /** + * Synchronize interface, send a message to the given group, and get the response + * + * @param out: Message to be sent + * @param groupId: ID of the group receiving the message packet + * @param callback: The callback to be called when the response returns + * @return: Remote reply + */ + Response sendToGroup(Message out, String groupId); + /** + * Synchronize interface, randomly select nodes to send messages + * + * @param out: Message to be sent + * @param callback: The callback to be called when the response returns + * @return: Remote reply + */ + Response sendToRandom(Message out); + /** * Send message to peer * @@ -69,7 +97,7 @@ static Channel build(String filepath) { * @param peerIpPort the peer to send to * @param callback response callback */ - void sendToPeer(Message out, String peerIpPort, ResponseCallback callback); + void asyncSendToPeer(Message out, String peerIpPort, ResponseCallback callback); /** * Send to a best peer with highest block height in Group @@ -78,7 +106,7 @@ static Channel build(String filepath) { * @param groupId * @param callback */ - void sendToGroup(Message out, String groupId, ResponseCallback callback); + void asyncSendToGroup(Message out, String groupId, ResponseCallback callback); /** * Broadcast to all peer @@ -94,7 +122,7 @@ static Channel build(String filepath) { * @param out * @param callback */ - void sendToRandom(Message out, ResponseCallback callback); + void asyncSendToRandom(Message out, ResponseCallback callback); /** * Get connection information @@ -102,4 +130,6 @@ static Channel build(String filepath) { * @return List of connection information */ List getConnectionInfo(); + + public String newSeq(); } diff --git a/src/main/java/org/fisco/bcos/sdk/client/Client.java b/src/main/java/org/fisco/bcos/sdk/client/Client.java index f003489b0..ec2e89970 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/Client.java +++ b/src/main/java/org/fisco/bcos/sdk/client/Client.java @@ -18,39 +18,39 @@ import java.math.BigInteger; import java.util.List; import org.fisco.bcos.sdk.channel.Channel; -import org.fisco.bcos.sdk.client.request.DefaultBlockParameter; -import org.fisco.bcos.sdk.client.request.Transaction; -import org.fisco.bcos.sdk.client.response.BcosBlock; -import org.fisco.bcos.sdk.client.response.BcosBlockHeader; -import org.fisco.bcos.sdk.client.response.BcosTransaction; -import org.fisco.bcos.sdk.client.response.BcosTransactionReceipt; -import org.fisco.bcos.sdk.client.response.BlockHash; -import org.fisco.bcos.sdk.client.response.BlockNumber; -import org.fisco.bcos.sdk.client.response.Call; -import org.fisco.bcos.sdk.client.response.Code; -import org.fisco.bcos.sdk.client.response.ConsensusStatus; -import org.fisco.bcos.sdk.client.response.GenerateGroup; -import org.fisco.bcos.sdk.client.response.GroupList; -import org.fisco.bcos.sdk.client.response.GroupPeers; -import org.fisco.bcos.sdk.client.response.NodeIDList; -import org.fisco.bcos.sdk.client.response.NodeVersion; -import org.fisco.bcos.sdk.client.response.ObserverList; -import org.fisco.bcos.sdk.client.response.PbftView; -import org.fisco.bcos.sdk.client.response.Peers; -import org.fisco.bcos.sdk.client.response.PendingTransactions; -import org.fisco.bcos.sdk.client.response.PendingTxSize; -import org.fisco.bcos.sdk.client.response.QueryGroupStatus; -import org.fisco.bcos.sdk.client.response.RecoverGroup; -import org.fisco.bcos.sdk.client.response.RemoveGroup; -import org.fisco.bcos.sdk.client.response.SealerList; -import org.fisco.bcos.sdk.client.response.SendTransaction; -import org.fisco.bcos.sdk.client.response.StartGroup; -import org.fisco.bcos.sdk.client.response.StopGroup; -import org.fisco.bcos.sdk.client.response.SyncStatus; -import org.fisco.bcos.sdk.client.response.SystemConfig; -import org.fisco.bcos.sdk.client.response.TotalTransactionCount; -import org.fisco.bcos.sdk.client.response.TransactionReceiptWithProof; -import org.fisco.bcos.sdk.client.response.TransactionWithProof; +import org.fisco.bcos.sdk.client.protocol.request.DefaultBlockParameter; +import org.fisco.bcos.sdk.client.protocol.request.Transaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosBlock; +import org.fisco.bcos.sdk.client.protocol.response.BcosBlockHeader; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransactionReceipt; +import org.fisco.bcos.sdk.client.protocol.response.BlockHash; +import org.fisco.bcos.sdk.client.protocol.response.BlockNumber; +import org.fisco.bcos.sdk.client.protocol.response.Call; +import org.fisco.bcos.sdk.client.protocol.response.Code; +import org.fisco.bcos.sdk.client.protocol.response.ConsensusStatus; +import org.fisco.bcos.sdk.client.protocol.response.GenerateGroup; +import org.fisco.bcos.sdk.client.protocol.response.GroupList; +import org.fisco.bcos.sdk.client.protocol.response.GroupPeers; +import org.fisco.bcos.sdk.client.protocol.response.NodeIDList; +import org.fisco.bcos.sdk.client.protocol.response.NodeVersion; +import org.fisco.bcos.sdk.client.protocol.response.ObserverList; +import org.fisco.bcos.sdk.client.protocol.response.PbftView; +import org.fisco.bcos.sdk.client.protocol.response.Peers; +import org.fisco.bcos.sdk.client.protocol.response.PendingTransactions; +import org.fisco.bcos.sdk.client.protocol.response.PendingTxSize; +import org.fisco.bcos.sdk.client.protocol.response.QueryGroupStatus; +import org.fisco.bcos.sdk.client.protocol.response.RecoverGroup; +import org.fisco.bcos.sdk.client.protocol.response.RemoveGroup; +import org.fisco.bcos.sdk.client.protocol.response.SealerList; +import org.fisco.bcos.sdk.client.protocol.response.SendTransaction; +import org.fisco.bcos.sdk.client.protocol.response.StartGroup; +import org.fisco.bcos.sdk.client.protocol.response.StopGroup; +import org.fisco.bcos.sdk.client.protocol.response.SyncStatus; +import org.fisco.bcos.sdk.client.protocol.response.SystemConfig; +import org.fisco.bcos.sdk.client.protocol.response.TotalTransactionCount; +import org.fisco.bcos.sdk.client.protocol.response.TransactionReceiptWithProof; +import org.fisco.bcos.sdk.client.protocol.response.TransactionWithProof; /** * This is the interface of client module. diff --git a/src/main/java/org/fisco/bcos/sdk/client/request/DefaultBlockParameter.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/request/DefaultBlockParameter.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/request/DefaultBlockParameter.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/request/DefaultBlockParameter.java index 7d7b4047f..86cbdcbe7 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/request/DefaultBlockParameter.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/request/DefaultBlockParameter.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.request; +package org.fisco.bcos.sdk.client.protocol.request; public interface DefaultBlockParameter {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcMethods.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcMethods.java new file mode 100644 index 000000000..c13a0969b --- /dev/null +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcMethods.java @@ -0,0 +1,64 @@ +/** + * Copyright 2014-2020 [fisco-dev] + * + *

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + *

http://www.apache.org/licenses/LICENSE-2.0 + * + *

Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.fisco.bcos.sdk.client.protocol.request; + +public class JsonRpcMethods { + /** define the method name for all jsonRPC interfaces */ + // the interface related to the group + public static final String GET_BLOCK_NUMBER = "getBlockNumber"; + + public static final String GET_PBFT_VIEW = "getPbftView"; + public static final String GET_SEALER_LIST = "getSealerList"; + public static final String GET_SYSTEM_CONFIG_BY_KEY = "getSystemConfigByKey"; + public static final String GET_OBSERVER_LIST = "getObserverList"; + public static final String GET_CONSENSUS_STATUS = "getConsensusStatus"; + public static final String GET_SYNC_STATUS = "getSyncStatus"; + public static final String GET_GROUP_PEERS = "getGroupPeers"; + public static final String GET_BLOCK_BY_HASH = "getBlockByHash"; + public static final String GET_BLOCKHEADER_BY_HASH = "getBlockHeaderByHash"; + public static final String GET_BLOCK_BY_NUMBER = "getBlockByNumber"; + public static final String GET_BLOCKHEADER_BY_NUMBER = "getBlockHeaderByNumber"; + public static final String GET_BLOCKHASH_BY_NUMBER = "getBlockHashByNumber"; + public static final String GET_TRANSACTION_BY_HASH = "getTransactionByHash"; + public static final String GET_TRANSACTION_BY_BLOCKHASH_AND_INDEX = + "getTransactionByBlockHashAndIndex"; + public static final String GET_TRANSACTION_BY_BLOCKNUMBER_AND_INDEX = + "getTransactionByBlockNumberAndIndex"; + public static final String GET_TRANSACTIONRECEIPT = "getTransactionReceipt"; + public static final String GET_PENDING_TX_SIZE = "getPendingTxSize"; + public static final String CALL = "call"; + public static final String SEND_RAWTRANSACTION = "sendRawTransaction"; + public static final String SEND_RAWTRANSACTION_AND_GET_PROOF = "sendRawTransactionAndGetProof"; + public static final String GET_CODE = "getCode"; + public static final String GET_TOTAL_TRANSACTION_COUNT = "getTotalTransactionCount"; + public static final String GET_TRANSACTION_BY_HASH_WITH_PROOF = "getTransactionByHashWithProof"; + public static final String GET_TRANSACTION_RECEIPT_BY_HASH_WITH_PROOF = + "getTransactionReceiptByHashWithProof"; + + // the interface related to the node + public static final String GET_CLIENT_VERSION = "getClientVersion"; + public static final String GET_PEERS = "getPeers"; + public static final String GET_GROUP_LIST = "getGroupList"; + public static final String GET_NODEIDLIST = "getNodeIDList"; + + // the interface related to group-runtime-manager + public static final String GENERATE_GROUP = "generateGroup"; + public static final String START_GROUP = "startGroup"; + public static final String STOP_GROUP = "stopGroup"; + public static final String REMOVE_GROUP = "removeGroup"; + public static final String RECOVER_GROUP = "recoverGroup"; + public static final String QUERY_GROUP_STATUS = "queryGroupStatus"; + + private JsonRpcMethods() {} +} diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcRequest.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcRequest.java new file mode 100644 index 000000000..46a1a30af --- /dev/null +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/request/JsonRpcRequest.java @@ -0,0 +1,53 @@ +/** + * Copyright 2014-2020 [fisco-dev] + * + *

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + *

http://www.apache.org/licenses/LICENSE-2.0 + * + *

Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.fisco.bcos.sdk.client.protocol.request; + +import java.util.List; +import java.util.concurrent.atomic.AtomicLong; + +public class JsonRpcRequest { + // for set the json id + private static AtomicLong nextIdGetter = new AtomicLong(0); + // the jsonrpc version, default is 2.0 + private String jsonRpcVersion = "2.0"; + // rpc method + private String method; + // params for the rpc interface + private List params; + // the json rpc request id + private long id; + + public JsonRpcRequest(String method, List params) { + this.method = method; + this.params = params; + this.id = nextIdGetter.getAndIncrement(); + } + + // getter and setter for the class members + public String getJsonRpcVersion() { + return this.jsonRpcVersion; + } + + public String getMethod() { + return this.method; + } + + public long getId() { + return this.id; + } + + public List getParams() { + return this.params; + } +} diff --git a/src/main/java/org/fisco/bcos/sdk/client/request/Transaction.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/request/Transaction.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/request/Transaction.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/request/Transaction.java index 79da6cf73..6f2b0b1f5 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/request/Transaction.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/request/Transaction.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.request; +package org.fisco.bcos.sdk.client.protocol.request; public class Transaction {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/BcosBlock.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlock.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/BcosBlock.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlock.java index 7faa419fc..1c7290b03 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/BcosBlock.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlock.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class BcosBlock {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/BcosBlockHeader.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlockHeader.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/BcosBlockHeader.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlockHeader.java index e1d765dac..ec269b843 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/BcosBlockHeader.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosBlockHeader.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class BcosBlockHeader {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransaction.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransaction.java new file mode 100644 index 000000000..505368714 --- /dev/null +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransaction.java @@ -0,0 +1,3 @@ +package org.fisco.bcos.sdk.client.protocol.response; + +public class BcosTransaction {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/BcosTransactionReceipt.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransactionReceipt.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/BcosTransactionReceipt.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransactionReceipt.java index fe53dcea2..ba1cadce3 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/BcosTransactionReceipt.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BcosTransactionReceipt.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getTransactionReceipt. */ public class BcosTransactionReceipt {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/BlockHash.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockHash.java similarity index 90% rename from src/main/java/org/fisco/bcos/sdk/client/response/BlockHash.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockHash.java index 322e833e1..8625fa76e 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/BlockHash.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockHash.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getBlockHashByNumber */ public class BlockHash {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/BlockNumber.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockNumber.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/BlockNumber.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockNumber.java index e23cd953a..bc8452ecb 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/BlockNumber.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/BlockNumber.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getblockNumber. */ public class BlockNumber {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/Call.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Call.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/Call.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/Call.java index b1a8cfbe4..496e85f27 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/Call.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Call.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** * RPC response of ledger call diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/Code.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Code.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/Code.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/Code.java index b7f669b89..2922106a9 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/Code.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Code.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** * Get code response diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/ConsensusStatus.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ConsensusStatus.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/ConsensusStatus.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/ConsensusStatus.java index 0e3830133..a68b1d34c 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/ConsensusStatus.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ConsensusStatus.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getConsensusStatus */ public class ConsensusStatus {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/GenerateGroup.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GenerateGroup.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/GenerateGroup.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/GenerateGroup.java index 13005789a..7de936bf5 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/GenerateGroup.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GenerateGroup.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class GenerateGroup {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/GroupList.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupList.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/GroupList.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupList.java index aca10e7da..f8098c673 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/GroupList.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupList.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getGroupList */ public class GroupList {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/GroupPeers.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupPeers.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/GroupPeers.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupPeers.java index a9e654c36..00dae2f5b 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/GroupPeers.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/GroupPeers.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getGroupPeers */ public class GroupPeers {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/protocol/response/JsonRpcResponse.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/JsonRpcResponse.java new file mode 100644 index 000000000..8d9847697 --- /dev/null +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/JsonRpcResponse.java @@ -0,0 +1,137 @@ +/* + * Copyright 2014-2020 [fisco-dev] + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * + */ +package org.fisco.bcos.sdk.client.protocol.response; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class JsonRpcResponse { + private long id; + private String jsonrpc; + private T result; + private Error error; + private String rawResponse; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getJsonrpc() { + return jsonrpc; + } + + public void setJsonrpc(String jsonrpc) { + this.jsonrpc = jsonrpc; + } + + public T getResult() { + return result; + } + + public void setResult(T result) { + this.result = result; + } + + public Error getError() { + return error; + } + + public void setError(Error error) { + this.error = error; + } + + public boolean hasError() { + return error != null; + } + + public String getRawResponse() { + return rawResponse; + } + + public void setRawResponse(String rawResponse) { + this.rawResponse = rawResponse; + } + + public static class Error { + private int code; + private String message; + private String data; + + public Error() {} + + public Error(int code, String message) { + this.code = code; + this.message = message; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof Error)) { + return false; + } + + Error error = (Error) o; + + if (getCode() != error.getCode()) { + return false; + } + if (getMessage() != null + ? !getMessage().equals(error.getMessage()) + : error.getMessage() != null) { + return false; + } + return getData() != null ? getData().equals(error.getData()) : error.getData() == null; + } + + @Override + public int hashCode() { + int result = getCode(); + result = 31 * result + (getMessage() != null ? getMessage().hashCode() : 0); + result = 31 * result + (getData() != null ? getData().hashCode() : 0); + return result; + } + } +} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/NodeIDList.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeIDList.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/NodeIDList.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeIDList.java index 61923390b..a4cd28d5b 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/NodeIDList.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeIDList.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getNodeIDList */ public class NodeIDList {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/NodeVersion.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeVersion.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/NodeVersion.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeVersion.java index 8f5bf24bd..047eb9509 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/NodeVersion.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/NodeVersion.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getNodeVersion. */ public class NodeVersion {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/ObserverList.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ObserverList.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/ObserverList.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/ObserverList.java index 08bd56024..25d0b9e6c 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/ObserverList.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/ObserverList.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class ObserverList {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/PbftView.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PbftView.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/PbftView.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/PbftView.java index 755a812f1..361d787df 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/PbftView.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PbftView.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getPbftView */ public class PbftView {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/Peers.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Peers.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/Peers.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/Peers.java index b53bcbbbe..3fd3b4f5e 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/Peers.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/Peers.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getPeers */ public class Peers {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/PendingTransactions.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTransactions.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/PendingTransactions.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTransactions.java index 8eadefa4a..36ec4776d 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/PendingTransactions.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTransactions.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getPendingTransactions */ public class PendingTransactions {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/PendingTxSize.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTxSize.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/PendingTxSize.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTxSize.java index 5e45941f9..2dfc56495 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/PendingTxSize.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/PendingTxSize.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getPendingTxSize */ public class PendingTxSize {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/QueryGroupStatus.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/QueryGroupStatus.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/QueryGroupStatus.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/QueryGroupStatus.java index f7e837657..921e9070b 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/QueryGroupStatus.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/QueryGroupStatus.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class QueryGroupStatus {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/RecoverGroup.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RecoverGroup.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/RecoverGroup.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/RecoverGroup.java index 25aed7b1e..238f5741e 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/RecoverGroup.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RecoverGroup.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class RecoverGroup {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/RemoveGroup.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RemoveGroup.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/RemoveGroup.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/RemoveGroup.java index 2955852cf..ff1ae30c6 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/RemoveGroup.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/RemoveGroup.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class RemoveGroup {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/SealerList.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SealerList.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/SealerList.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/SealerList.java index 420ebc3f6..38577fb81 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/SealerList.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SealerList.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class SealerList {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/SendTransaction.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SendTransaction.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/SendTransaction.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/SendTransaction.java index c89b34cbe..a948220b4 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/SendTransaction.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SendTransaction.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** Return data structure of send transaction */ public class SendTransaction {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/StartGroup.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StartGroup.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/StartGroup.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/StartGroup.java index 6c3265bfc..818b21a31 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/StartGroup.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StartGroup.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class StartGroup {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/StopGroup.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StopGroup.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/StopGroup.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/StopGroup.java index af1d6bc1e..4889ac991 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/StopGroup.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/StopGroup.java @@ -13,6 +13,6 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; public class StopGroup {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/SyncStatus.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SyncStatus.java similarity index 93% rename from src/main/java/org/fisco/bcos/sdk/client/response/SyncStatus.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/SyncStatus.java index 2b47b3319..c7b962eab 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/SyncStatus.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SyncStatus.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** * getSyncStatus. diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/SystemConfig.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SystemConfig.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/SystemConfig.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/SystemConfig.java index 7388e86aa..4314129ff 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/SystemConfig.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/SystemConfig.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getSystemConfigByKey */ public class SystemConfig {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/TotalTransactionCount.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TotalTransactionCount.java similarity index 90% rename from src/main/java/org/fisco/bcos/sdk/client/response/TotalTransactionCount.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/TotalTransactionCount.java index bda835ef5..5ceecfebc 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/TotalTransactionCount.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TotalTransactionCount.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getTotalTransactionCount */ public class TotalTransactionCount {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/TransactionReceiptWithProof.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionReceiptWithProof.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/TransactionReceiptWithProof.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionReceiptWithProof.java index b3b6dc876..a3578e0d5 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/TransactionReceiptWithProof.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionReceiptWithProof.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getTransactionReceiptWithProof. */ public class TransactionReceiptWithProof {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/TransactionWithProof.java b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionWithProof.java similarity index 92% rename from src/main/java/org/fisco/bcos/sdk/client/response/TransactionWithProof.java rename to src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionWithProof.java index 22ed05d2a..b9f9e9777 100644 --- a/src/main/java/org/fisco/bcos/sdk/client/response/TransactionWithProof.java +++ b/src/main/java/org/fisco/bcos/sdk/client/protocol/response/TransactionWithProof.java @@ -13,7 +13,7 @@ * */ -package org.fisco.bcos.sdk.client.response; +package org.fisco.bcos.sdk.client.protocol.response; /** getTransactionWithProof. */ public class TransactionWithProof {} diff --git a/src/main/java/org/fisco/bcos/sdk/client/response/BcosTransaction.java b/src/main/java/org/fisco/bcos/sdk/client/response/BcosTransaction.java deleted file mode 100644 index c6c8efbb2..000000000 --- a/src/main/java/org/fisco/bcos/sdk/client/response/BcosTransaction.java +++ /dev/null @@ -1,3 +0,0 @@ -package org.fisco.bcos.sdk.client.response; - -public class BcosTransaction {} diff --git a/src/main/java/org/fisco/bcos/sdk/model/Message.java b/src/main/java/org/fisco/bcos/sdk/model/Message.java index dec5e66e2..6ec758657 100644 --- a/src/main/java/org/fisco/bcos/sdk/model/Message.java +++ b/src/main/java/org/fisco/bcos/sdk/model/Message.java @@ -17,12 +17,119 @@ import io.netty.buffer.ByteBuf; import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import org.fisco.bcos.sdk.model.exceptions.DecodeMessageException; /** Messages between sdk and FISCO BCOS node. */ public class Message implements Serializable { - public void readFromByteBuf(ByteBuf in) { - // ignore + private static final long serialVersionUID = -7276897518418560354L; + protected Integer length = 0; + protected Short type = 0; + protected String seq = ""; + protected Integer result = 0; + protected byte[] data; + + public static final int HEADER_LENGTH = 4 + 2 + 32 + 4; + + /** + * encode the messge into ByteBuf + * + * @param encodedData: the ByteBuf stores the encodedData + */ + public void encode(ByteBuf encodedData) { + writeHeader(encodedData); + writeDataToByteBuf(encodedData); + } + + /** + * decode the message from the given ByteBuf + * + * @param in: the ByteBuf that needs to decoded into the message + */ + public void decode(ByteBuf in) { + readHeader(in); + readDataFromByteBuf(in); + } + + protected void readDataFromByteBuf(ByteBuf in) { + data = new byte[length - HEADER_LENGTH]; + in.readBytes(data, 0, length - HEADER_LENGTH); + } + + protected void writeDataToByteBuf(ByteBuf out) { + out.writeBytes(data); + } + + protected void readHeader(ByteBuf in) { + length = in.readInt(); + type = in.readShort(); + byte[] dst = new byte[32]; + in.readBytes(dst); + try { + seq = new String(dst, "utf-8"); + } catch (UnsupportedEncodingException e) { + throw new DecodeMessageException( + "readHeader failed, seq: " + + seq + + ", type:" + + type + + " dataLen : " + + data.length, + e); + } + result = in.readInt(); + } + + protected void writeHeader(ByteBuf out) { + // calculate the total length + if (length.equals(0)) { + length = HEADER_LENGTH + data.length; + } + + out.writeInt(length); + out.writeShort(type); + out.writeBytes(seq.getBytes(), 0, 32); + out.writeInt(result); + } + + public Integer getLength() { + return length; + } + + public void setLength(Integer length) { + this.length = length; + } + + public Short getType() { + return type; + } + + public void setType(Short type) { + this.type = type; + } + + public String getSeq() { + return seq; + } + + public void setSeq(String seq) { + this.seq = seq; + } + + public Integer getResult() { + return result; + } + + public void setResult(Integer result) { + this.result = result; + } + + public byte[] getData() { + return data; } - public void writeToByteBuf(ByteBuf out) {} + public void setData(byte[] data) { + this.data = data; + this.length = data.length + HEADER_LENGTH; + } } diff --git a/src/main/java/org/fisco/bcos/sdk/model/Response.java b/src/main/java/org/fisco/bcos/sdk/model/Response.java index db2ab54ef..240f33ca9 100644 --- a/src/main/java/org/fisco/bcos/sdk/model/Response.java +++ b/src/main/java/org/fisco/bcos/sdk/model/Response.java @@ -15,4 +15,41 @@ package org.fisco.bcos.sdk.model; -public class Response {} +public class Response { + private Integer errorCode; + private String errorMessage; + private String messageID; + private String content; + + public Integer getErrorCode() { + return errorCode; + } + + public void setErrorCode(Integer errorCode) { + this.errorCode = errorCode; + } + + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + + public String getMessageID() { + return messageID; + } + + public void setMessageID(String messageID) { + this.messageID = messageID; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } +} diff --git a/src/main/java/org/fisco/bcos/sdk/model/exceptions/DecodeMessageException.java b/src/main/java/org/fisco/bcos/sdk/model/exceptions/DecodeMessageException.java new file mode 100644 index 000000000..7f842a64d --- /dev/null +++ b/src/main/java/org/fisco/bcos/sdk/model/exceptions/DecodeMessageException.java @@ -0,0 +1,30 @@ +/** + * Copyright 2014-2020 [fisco-dev] + * + *

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + *

http://www.apache.org/licenses/LICENSE-2.0 + * + *

Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.fisco.bcos.sdk.model.exceptions; + +/** Exception thrown if an attempt is made to decode invalid data, or some other failure occurs. */ +public class DecodeMessageException extends IllegalStateException { + private final Throwable cause; + + public DecodeMessageException(String msg, Throwable cause) { + super(msg); + + this.cause = cause; + } + + @Override + public final synchronized Throwable getCause() { + return cause; + } +} diff --git a/src/main/java/org/fisco/bcos/sdk/network/MessageDecoder.java b/src/main/java/org/fisco/bcos/sdk/network/MessageDecoder.java index 22b7286ab..7f4722dfa 100644 --- a/src/main/java/org/fisco/bcos/sdk/network/MessageDecoder.java +++ b/src/main/java/org/fisco/bcos/sdk/network/MessageDecoder.java @@ -26,7 +26,7 @@ public class MessageDecoder extends ByteToMessageDecoder { protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) throws Exception { Message msg = new Message(); - msg.readFromByteBuf(in); + msg.decode(in); out.add(msg); } } diff --git a/src/main/java/org/fisco/bcos/sdk/network/MessageEncoder.java b/src/main/java/org/fisco/bcos/sdk/network/MessageEncoder.java index 9ba36872c..50e719fbe 100644 --- a/src/main/java/org/fisco/bcos/sdk/network/MessageEncoder.java +++ b/src/main/java/org/fisco/bcos/sdk/network/MessageEncoder.java @@ -23,6 +23,6 @@ public class MessageEncoder extends MessageToByteEncoder { @Override protected void encode(ChannelHandlerContext ctx, Message msg, ByteBuf out) throws Exception { - msg.writeToByteBuf(out); + msg.encode(out); } } diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionBuilder.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionBuilder.java index cc8503920..4e07c532b 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionBuilder.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionBuilder.java @@ -15,7 +15,7 @@ package org.fisco.bcos.sdk.transaction.core.impl.executor; import java.math.BigInteger; -import org.fisco.bcos.sdk.client.response.BcosTransaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransaction; import org.fisco.bcos.sdk.transaction.core.interf.executor.TransactionBuilderInterface; public class TransactionBuilder implements TransactionBuilderInterface { diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionDecoder.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionDecoder.java index 7eda63563..701b01b47 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionDecoder.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionDecoder.java @@ -16,8 +16,8 @@ import java.util.List; import java.util.Map; -import org.fisco.bcos.sdk.client.response.BcosTransaction; -import org.fisco.bcos.sdk.client.response.BcosTransactionReceipt; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransactionReceipt; import org.fisco.bcos.sdk.transaction.core.interf.executor.TransactionDecoderInterface; import org.fisco.bcos.sdk.transaction.domain.EventLog; import org.fisco.bcos.sdk.transaction.domain.EventResultEntity; diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionEncoder.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionEncoder.java index 2699a6fe3..b1f4cdbbe 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionEncoder.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionEncoder.java @@ -14,7 +14,7 @@ */ package org.fisco.bcos.sdk.transaction.core.impl.executor; -import org.fisco.bcos.sdk.client.response.BcosTransaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransaction; import org.fisco.bcos.sdk.crypto.signature.SignatureResult; import org.fisco.bcos.sdk.transaction.core.interf.executor.TransactionEncoderInterface; diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionPusher.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionPusher.java index ab25eafaa..4c598beb4 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionPusher.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionPusher.java @@ -16,8 +16,8 @@ import java.util.concurrent.CompletableFuture; import org.fisco.bcos.sdk.client.RespCallback; -import org.fisco.bcos.sdk.client.response.BcosTransactionReceipt; -import org.fisco.bcos.sdk.client.response.Call; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransactionReceipt; +import org.fisco.bcos.sdk.client.protocol.response.Call; import org.fisco.bcos.sdk.transaction.core.interf.executor.TransactionPusherInterface; public class TransactionPusher implements TransactionPusherInterface { diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionSigner.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionSigner.java index 7732cb1d4..ae0d865c1 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionSigner.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/impl/executor/TransactionSigner.java @@ -14,7 +14,7 @@ */ package org.fisco.bcos.sdk.transaction.core.impl.executor; -import org.fisco.bcos.sdk.client.response.BcosTransaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransaction; import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair; import org.fisco.bcos.sdk.transaction.core.interf.executor.TransactionSignerInterface; diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionBuilderInterface.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionBuilderInterface.java index bcac88d7f..d94afc1a8 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionBuilderInterface.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionBuilderInterface.java @@ -15,7 +15,7 @@ package org.fisco.bcos.sdk.transaction.core.interf.executor; import java.math.BigInteger; -import org.fisco.bcos.sdk.client.response.BcosTransaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransaction; /** * TransactionBuilderInterface @Description: TransactionBuilderInterface diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionDecoderInterface.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionDecoderInterface.java index 3395f95cb..f2b448c7c 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionDecoderInterface.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionDecoderInterface.java @@ -16,8 +16,8 @@ import java.util.List; import java.util.Map; -import org.fisco.bcos.sdk.client.response.BcosTransaction; -import org.fisco.bcos.sdk.client.response.BcosTransactionReceipt; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransactionReceipt; import org.fisco.bcos.sdk.transaction.domain.EventLog; import org.fisco.bcos.sdk.transaction.domain.EventResultEntity; import org.fisco.bcos.sdk.transaction.domain.InputAndOutputResult; diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionEncoderInterface.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionEncoderInterface.java index 2f02d46cd..28dfeccee 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionEncoderInterface.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionEncoderInterface.java @@ -14,7 +14,7 @@ */ package org.fisco.bcos.sdk.transaction.core.interf.executor; -import org.fisco.bcos.sdk.client.response.BcosTransaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransaction; import org.fisco.bcos.sdk.crypto.signature.SignatureResult; /** diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionPusherInterface.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionPusherInterface.java index acc970520..8f53d38b0 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionPusherInterface.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionPusherInterface.java @@ -16,8 +16,8 @@ import java.util.concurrent.CompletableFuture; import org.fisco.bcos.sdk.client.RespCallback; -import org.fisco.bcos.sdk.client.response.BcosTransactionReceipt; -import org.fisco.bcos.sdk.client.response.Call; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransactionReceipt; +import org.fisco.bcos.sdk.client.protocol.response.Call; /** * TransactionPusher @Description: TransactionPusherInterface diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionSignerInterface.java b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionSignerInterface.java index f162087c3..c9640c109 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionSignerInterface.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/core/interf/executor/TransactionSignerInterface.java @@ -14,7 +14,7 @@ */ package org.fisco.bcos.sdk.transaction.core.interf.executor; -import org.fisco.bcos.sdk.client.response.BcosTransaction; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransaction; /** * TransactionSignerInterface @Description: TransactionSignerInterface diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/domain/dto/TransactionResponse.java b/src/main/java/org/fisco/bcos/sdk/transaction/domain/dto/TransactionResponse.java index 2110e59ca..a450f46ea 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/domain/dto/TransactionResponse.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/domain/dto/TransactionResponse.java @@ -14,7 +14,7 @@ */ package org.fisco.bcos.sdk.transaction.domain.dto; -import org.fisco.bcos.sdk.client.response.BcosTransactionReceipt; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransactionReceipt; /** * TransactionResponse @Description: TransactionResponse diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManager.java b/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManager.java index d8ae581ef..c7113ade0 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManager.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManager.java @@ -16,7 +16,7 @@ import java.util.concurrent.CompletableFuture; import org.fisco.bcos.sdk.client.RespCallback; -import org.fisco.bcos.sdk.client.response.BcosTransactionReceipt; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransactionReceipt; import org.fisco.bcos.sdk.transaction.domain.dto.CallRequest; import org.fisco.bcos.sdk.transaction.domain.dto.CallResponse; import org.fisco.bcos.sdk.transaction.domain.dto.TransactionRequest; diff --git a/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerInterface.java b/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerInterface.java index 59a19e283..ba85d26d7 100644 --- a/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerInterface.java +++ b/src/main/java/org/fisco/bcos/sdk/transaction/manager/TransactionManagerInterface.java @@ -16,7 +16,7 @@ import java.util.concurrent.CompletableFuture; import org.fisco.bcos.sdk.client.RespCallback; -import org.fisco.bcos.sdk.client.response.BcosTransactionReceipt; +import org.fisco.bcos.sdk.client.protocol.response.BcosTransactionReceipt; import org.fisco.bcos.sdk.transaction.domain.dto.CallRequest; import org.fisco.bcos.sdk.transaction.domain.dto.CallResponse; import org.fisco.bcos.sdk.transaction.domain.dto.TransactionRequest;