From 69e026893a895381f9af1b34097b3272a04ff4f0 Mon Sep 17 00:00:00 2001 From: huanghaiquan Date: Mon, 10 Jun 2019 23:04:53 +0800 Subject: [PATCH] Fixed compilation error; --- .../jd/blockchain/ledger/BytesValueEntry.java | 4 ++ .../sdk/client/ClientOperationUtil.java | 43 ++++++++++----- .../sdk/test/SDK_Contract_Test.java | 12 ++--- .../jd/blockchain/intgr/IntegrationTest.java | 10 ++-- .../jd/blockchain/intgr/IntegrationBase.java | 2 +- .../blockchain/mocker/MockerNodeContext.java | 54 +++++++++++++++---- .../mocker/contracts/AccountContractImpl.java | 6 +-- .../mocker/contracts/WriteContractImpl.java | 2 +- .../MockerOperationHandleRegister.java | 13 +++-- .../mocker/handler/MockerServiceHandler.java | 2 +- 10 files changed, 103 insertions(+), 45 deletions(-) diff --git a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueEntry.java b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueEntry.java index bf88ff70..2189d2b1 100644 --- a/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueEntry.java +++ b/source/ledger/ledger-model/src/main/java/com/jd/blockchain/ledger/BytesValueEntry.java @@ -21,6 +21,10 @@ public class BytesValueEntry implements BytesValue { this.type = type; this.value = bytes; } + + public static BytesValue fromType(BytesValueType type, byte[] value) { + return new BytesValueEntry(type, value); + } public static BytesValue fromBytes(byte[] value) { return new BytesValueEntry(BytesValueType.BYTES, value); diff --git a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/ClientOperationUtil.java b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/ClientOperationUtil.java index c8fd9de8..f3f23779 100644 --- a/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/ClientOperationUtil.java +++ b/source/sdk/sdk-client/src/main/java/com/jd/blockchain/sdk/client/ClientOperationUtil.java @@ -8,20 +8,39 @@ */ package com.jd.blockchain.sdk.client; +import java.lang.reflect.Field; + +import org.apache.commons.codec.binary.Base64; + import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jd.blockchain.crypto.CryptoProvider; import com.jd.blockchain.crypto.PubKey; -import com.jd.blockchain.ledger.*; -import com.jd.blockchain.transaction.*; +import com.jd.blockchain.ledger.BlockchainIdentityData; +import com.jd.blockchain.ledger.BytesValue; +import com.jd.blockchain.ledger.BytesValueEntry; +import com.jd.blockchain.ledger.BytesValueType; +import com.jd.blockchain.ledger.ContractCodeDeployOperation; +import com.jd.blockchain.ledger.ContractEventSendOperation; +import com.jd.blockchain.ledger.CryptoSetting; +import com.jd.blockchain.ledger.DataAccountKVSetOperation; +import com.jd.blockchain.ledger.DataAccountRegisterOperation; +import com.jd.blockchain.ledger.LedgerInitOperation; +import com.jd.blockchain.ledger.Operation; +import com.jd.blockchain.ledger.ParticipantNode; +import com.jd.blockchain.ledger.UserRegisterOperation; +import com.jd.blockchain.transaction.ContractCodeDeployOpTemplate; +import com.jd.blockchain.transaction.ContractEventSendOpTemplate; +import com.jd.blockchain.transaction.DataAccountKVSetOpTemplate; +import com.jd.blockchain.transaction.DataAccountRegisterOpTemplate; +import com.jd.blockchain.transaction.KVData; +import com.jd.blockchain.transaction.LedgerInitOpTemplate; +import com.jd.blockchain.transaction.LedgerInitSettingData; +import com.jd.blockchain.transaction.UserRegisterOpTemplate; import com.jd.blockchain.utils.Bytes; import com.jd.blockchain.utils.codec.Base58Utils; import com.jd.blockchain.utils.codec.HexUtils; -import com.jd.blockchain.utils.io.BytesSlice; import com.jd.blockchain.utils.io.BytesUtils; -import org.apache.commons.codec.binary.Base64; - -import java.lang.reflect.Field; /** * @@ -65,22 +84,22 @@ public class ClientOperationUtil { public static Object readValueByBytesValue(BytesValue bytesValue) { BytesValueType dataType = bytesValue.getType(); - BytesSlice saveVal = bytesValue.getValue(); + Bytes saveVal = bytesValue.getValue(); Object showVal; switch (dataType) { case BYTES: // return hex - showVal = HexUtils.encode(saveVal.getBytesCopy()); + showVal = HexUtils.encode(saveVal.toBytes()); break; case TEXT: case JSON: - showVal = saveVal.getString(); + showVal = saveVal.toUTF8String(); break; case INT64: - showVal = saveVal.getLong(); + showVal = BytesUtils.toLong(saveVal.toBytes()); break; default: - showVal = HexUtils.encode(saveVal.getBytesCopy()); + showVal = HexUtils.encode(saveVal.toBytes()); break; } return showVal; @@ -107,7 +126,7 @@ public class ClientOperationUtil { String realValBase58 = valueObj.getString("value"); String key = currWriteSetObj.getString("key"); BytesValueType dataType = BytesValueType.valueOf(typeStr); - BytesValue bytesValue = new BytesValueEntry(dataType, Base58Utils.decode(realValBase58)); + BytesValue bytesValue =BytesValueEntry.fromType(dataType, Base58Utils.decode(realValBase58)); KVData kvData = new KVData(key, bytesValue, expectedVersion); kvOperation.set(kvData); } diff --git a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java index 9a1ff31d..608c3788 100644 --- a/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java +++ b/source/sdk/sdk-samples/src/test/java/test/com/jd/blockchain/sdk/test/SDK_Contract_Test.java @@ -132,8 +132,8 @@ public class SDK_Contract_Test { String key2 = "jd_key2"; String val2 = "www.jd2.com"; // 定义交易,传输最简单的数字、字符串、提取合约中的地址; - txTemp.dataAccount(dataAccount.getAddress()).set(key1, val1, -1); - txTemp.dataAccount(dataAccount.getAddress()).set(key2, val2, -1); + txTemp.dataAccount(dataAccount.getAddress()).setText(key1, val1, -1); + txTemp.dataAccount(dataAccount.getAddress()).setText(key2, val2, -1); // TX 准备就绪; PreparedTransaction prepTx = txTemp.prepare(); @@ -156,9 +156,9 @@ public class SDK_Contract_Test { TransactionTemplate txTemp = bcsrv.newTransaction(ledgerHash); BlockchainKeypair dataAccount = BlockchainKeyGenerator.getInstance().generate(); txTemp.dataAccounts().register(dataAccount.getIdentity()); - txTemp.dataAccount(dataAccount.getAddress()).set("total", 200, -1); - txTemp.dataAccount(dataAccount.getAddress()).set("param1", "v", -1); - txTemp.dataAccount(dataAccount.getAddress()).set("param2", 123, -1); + txTemp.dataAccount(dataAccount.getAddress()).setInt64("total", 200, -1); + txTemp.dataAccount(dataAccount.getAddress()).setText("param1", "v", -1); + txTemp.dataAccount(dataAccount.getAddress()).setInt64("param2", 123, -1); // TX 准备就绪; PreparedTransaction prepTx = txTemp.prepare(); prepTx.sign(signKeyPair); @@ -175,7 +175,7 @@ public class SDK_Contract_Test { BlockchainKeypair dataAccount = BlockchainKeyGenerator.getInstance().generate(); for(int i=0; i opHandles = new ArrayList<>(); diff --git a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerServiceHandler.java b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerServiceHandler.java index 0334d914..36308c0c 100644 --- a/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerServiceHandler.java +++ b/source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerServiceHandler.java @@ -136,7 +136,7 @@ public class MockerServiceHandler { TransactionTemplate txTemplate = newTxTemplate(); - txTemplate.dataAccount(dataAccount).set(key, value, version); + txTemplate.dataAccount(dataAccount).setBytes(key, value, version); TransactionResponse txResponse = txPrepareAndCommit(txTemplate);