xiongzhu 4 gadi atpakaļ
vecāks
revīzija
53f7e006ac
2 mainītis faili ar 0 papildinājumiem un 438 dzēšanām
  1. 0 4
      pom.xml
  2. 0 434
      src/test/java/com/izouma/nineth/DemoSample.java

+ 0 - 4
pom.xml

@@ -23,10 +23,6 @@
             <id>Local repository</id>
             <url>file://${basedir}/libs</url>
         </repository>
-        <repository>
-            <id>Local repository2</id>
-            <url>file://${basedir}/lib</url>
-        </repository>
         <repository>
             <id>jitpack.io</id>
             <url>https://jitpack.io</url>

+ 0 - 434
src/test/java/com/izouma/nineth/DemoSample.java

@@ -1,434 +0,0 @@
-package com.izouma.nineth;
-
-import com.alipay.mychain.sdk.api.MychainClient;
-import com.alipay.mychain.sdk.api.env.ClientEnv;
-import com.alipay.mychain.sdk.api.env.ISslOption;
-import com.alipay.mychain.sdk.api.env.SignerOption;
-import com.alipay.mychain.sdk.api.env.SslBytesOption;
-import com.alipay.mychain.sdk.api.logging.AbstractLoggerFactory;
-import com.alipay.mychain.sdk.api.logging.ILogger;
-import com.alipay.mychain.sdk.api.utils.ConfidentialUtil;
-import com.alipay.mychain.sdk.api.utils.Utils;
-import com.alipay.mychain.sdk.common.VMTypeEnum;
-import com.alipay.mychain.sdk.crypto.MyCrypto;
-import com.alipay.mychain.sdk.crypto.keyoperator.Pkcs8KeyOperator;
-import com.alipay.mychain.sdk.crypto.keypair.Keypair;
-import com.alipay.mychain.sdk.crypto.signer.SignerBase;
-import com.alipay.mychain.sdk.domain.account.Identity;
-import com.alipay.mychain.sdk.errorcode.ErrorCode;
-import com.alipay.mychain.sdk.message.query.QueryAccountResponse;
-import com.alipay.mychain.sdk.message.transaction.AbstractTransactionRequest;
-import com.alipay.mychain.sdk.message.transaction.TransactionReceiptResponse;
-import com.alipay.mychain.sdk.message.transaction.confidential.ConfidentialRequest;
-import com.alipay.mychain.sdk.message.transaction.contract.CallContractRequest;
-import com.alipay.mychain.sdk.message.transaction.contract.DeployContractRequest;
-import com.alipay.mychain.sdk.type.BaseFixedSizeUnsignedInteger;
-import com.alipay.mychain.sdk.utils.ByteUtils;
-import com.alipay.mychain.sdk.utils.IOUtil;
-import com.alipay.mychain.sdk.utils.RandomUtil;
-import com.alipay.mychain.sdk.vm.EVMOutput;
-import com.alipay.mychain.sdk.vm.EVMParameter;
-
-import java.io.IOException;
-import java.math.BigInteger;
-import java.net.InetSocketAddress;
-import java.util.ArrayList;
-import java.util.List;
-
-public class DemoSample {
-    /**
-     * contract code
-     */
-    private static String contractCodeString
-                                         =
-            "6080604052633b9aca00600055600060015534801561001d57600080fd5b5033600281905550610492806100346000396000f3006080604"
-                    +
-                    "05260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063"
-                    +
-                    "af7c102c1461005c578063b2628df81461009d578063d4486019146100ec575b600080fd5b34801561006857600080fd5b5061008"
-                    +
-                    "76004803603810190808035906020019092919050505061013b565b6040518082815260200191505060405180910390f35b348015"
-                    +
-                    "6100a957600080fd5b506100d26004803603810190808035906020019092919080359060200190929190505050610158565b60405"
-                    +
-                    "1808215151515815260200191505060405180910390f35b3480156100f857600080fd5b5061012160048036038101908080359060"
-                    +
-                    "200190929190803590602001909291905050506102d8565b604051808215151515815260200191505060405180910390f35b60006"
-                    +
-                    "0036000838152602001908152602001600020549050919050565b6000600254331415156101d3576040517f08c379a00000000000"
-                    +
-                    "000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5065726d697"
-                    +
-                    "373696f6e2064656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6000548260015401"
-                    +
-                    "131580156101ee57506001548260015401135b80156101fa5750600082135b151561026e576040517f08c379a0000000000000000"
-                    +
-                    "00000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420"
-                    +
-                    "76616c75652100000000000000000000000000000000000081525060200191505060405180910390fd5b816003600085815260200"
-                    +
-                    "190815260200160002060008282540192505081905550816001600082825401925050819055508183337f31a52246bf8c995cecfd"
-                    +
-                    "d5404cf290ae6c2f4e174e888e4de4fd208137ec274d60405160405180910390a46001905092915050565b6000816003600033815"
-                    +
-                    "26020019081526020016000205412151515610365576040517f08c379a00000000000000000000000000000000000000000000000"
-                    +
-                    "000000000081526004018080602001828103825260138152602001807f62616c616e6365206e6f7420656e6f75676821000000000"
-                    +
-                    "0000000000000000081525060200191505060405180910390fd5b60008213801561037757506000548213155b15156103eb576040"
-                    +
-                    "517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e815"
-                    +
-                    "2602001807f496e76616c69642076616c756521000000000000000000000000000000000000815250602001915050604051809103"
-                    +
-                    "90fd5b816003600033815260200190815260200160002060008282540392505081905550816003600085815260200190815260200"
-                    +
-                    "1600020600082825401925050819055508183337f97c0c2106db19ca3c64afdc86820cd157d60361f777bf0e5323254d6c9689550"
-                    +
-                    "60405160405180910390a460009050929150505600a165627a7a72305820371af9e83b0e49ca71634c470c75e504d08db9abbaf39"
-                    + "92f30434f8d7a7994d40029";
-    private static byte[] contractCode   = ByteUtils.hexStringToBytes(contractCodeString);
-    /**
-     * contract id
-     */
-    private static String testContractId = "CreditManager" + System.currentTimeMillis();
-
-    /**
-     * baas上创建的帐户名字
-     */
-    private static final String   account = "sy_test";
-    private static       Identity userIdentity;
-    private static       Keypair  userKeypair;
-
-    /**
-     * create account test
-     */
-    private static Identity      testAccount1 = Utils.getIdentityByName("test_account_" + System.currentTimeMillis());
-    /**
-     * sdk client
-     */
-    private static MychainClient sdk;
-    /**
-     * client key password
-     */
-    private static String        keyPassword  = "Arb1585Stat";  //根据实际情况更新,申请证书时候指定的SSL密码
-    /**
-     * user password
-     */
-    private static String        userPassword = "12345678"; //根据实际情况更新。申请证书时,创建账户的密码
-    /**
-     * host ip
-     */
-
-    private static String        host         = "106.14.211.115"; //根据实际情况更新,在BaaS平台,通过查看目标合约链"详情",在"区块浏览器"中查看"节点详情"可获取链节点的 IP地址 和 端口号。
-
-    /**
-     * server port
-     */
-    private static int          port               = 18130;               //根据实际情况更新
-    /**
-     * trustCa password.
-     */
-    private static String       trustStorePassword = "mychain";
-    /**
-     * mychain environment
-     */
-    private static ClientEnv    env;
-    /**
-     * mychain is tee Chain
-     */
-    private static boolean      isTeeChain         = false;
-    /**
-     * tee chain publicKeys
-     */
-    private static List<byte[]> publicKeys         = new ArrayList<byte[]>();
-    /**
-     * tee chain secretKey
-     */
-    private static String       secretKey          = "123456";
-
-
-    private static void exit(String tag, String msg) {
-        exit(String.format("%s error : %s ", tag, msg));
-    }
-
-    private static void exit(String msg) {
-        System.out.println(msg);
-        System.exit(0);
-    }
-
-    private static String getErrorMsg(int errorCode) {
-        int minMychainSdkErrorCode = ErrorCode.SDK_INTERNAL_ERROR.getErrorCode();
-        if (errorCode < minMychainSdkErrorCode) {
-            return ErrorCode.valueOf(errorCode).getErrorDesc();
-        } else {
-            return ErrorCode.valueOf(errorCode).getErrorDesc();
-        }
-    }
-
-    private static void initMychainEnv() throws IOException {
-        // any user key for sign message
-        String userPrivateKeyFile = "user.key";
-        userIdentity = Utils.getIdentityByName(account); //根据实际情况更新'gushui03'为'user.key'对应的账户名(BaaS申请证书时创建的账户名)
-        Pkcs8KeyOperator pkcs8KeyOperator = new Pkcs8KeyOperator();
-        userKeypair = pkcs8KeyOperator.load(IOUtil.inputStreamToByte(DemoSample.class.getClassLoader()
-                .getResourceAsStream(userPrivateKeyFile)), userPassword);
-
-        // use publicKeys by tee
-        if (isTeeChain) {
-            Keypair keypair = new Pkcs8KeyOperator()
-                    .loadPubkey(
-                            IOUtil.inputStreamToByte(DemoSample.class.getClassLoader()
-                                    .getResourceAsStream("test_seal_pubkey.pem")));
-            byte[] publicKeyDer = keypair.getPubkeyEncoded(); //tee_rsa_public_key.pem 从BaaS下载获取
-            publicKeys.add(publicKeyDer);
-        }
-
-        env = buildMychainEnv();
-
-        ILogger logger = AbstractLoggerFactory.getInstance(DemoSample.class);
-        env.setLogger(logger);
-    }
-
-    private static ClientEnv buildMychainEnv() throws IOException {
-        InetSocketAddress inetSocketAddress = InetSocketAddress.createUnresolved(host, port);
-        String keyFilePath = "client.key";
-        String certFilePath = "client.crt";
-        String trustStoreFilePath = "trustCa";
-
-        // build ssl option
-        ISslOption sslOption = new SslBytesOption.Builder()
-                .keyBytes(IOUtil.inputStreamToByte(DemoSample.class.getClassLoader().getResourceAsStream(keyFilePath)))
-                .certBytes(IOUtil.inputStreamToByte(DemoSample.class.getClassLoader()
-                        .getResourceAsStream(certFilePath)))
-                .keyPassword(keyPassword)
-                .trustStorePassword(trustStorePassword)
-                .trustStoreBytes(
-                        IOUtil.inputStreamToByte(DemoSample.class.getClassLoader()
-                                .getResourceAsStream(trustStoreFilePath)))
-                .build();
-
-        List<InetSocketAddress> socketAddressArrayList = new ArrayList<InetSocketAddress>();
-        socketAddressArrayList.add(inetSocketAddress);
-
-        List<SignerBase> signerBaseList = new ArrayList<SignerBase>();
-        SignerBase signerBase = MyCrypto.getInstance().createSigner(userKeypair);
-        signerBaseList.add(signerBase);
-        SignerOption signerOption = new SignerOption();
-        signerOption.setSigners(signerBaseList);
-
-        return ClientEnv.build(socketAddressArrayList, sslOption, signerOption);
-    }
-
-
-    private static void signRequest(AbstractTransactionRequest request) {
-        // sign request
-        long ts = sdk.getNetwork().getSystemTimestamp();
-        request.setTxTimeNonce(ts, BaseFixedSizeUnsignedInteger.Fixed64BitUnsignedInteger
-                .valueOf(RandomUtil.randomize(ts + request.getTransaction().hashCode())), true);
-        request.complete();
-        sdk.getConfidentialService().signRequest(env.getSignerOption().getSigners(), request);
-    }
-
-    private static void deployContract() {
-        EVMParameter contractParameters = new EVMParameter();
-
-        // build DeployContractRequest
-        DeployContractRequest request = new DeployContractRequest(userIdentity,
-                Utils.getIdentityByName(testContractId), contractCode, VMTypeEnum.EVM,
-                contractParameters, BigInteger.ZERO);
-
-        //  set Gas limit
-        // Make sure your account balance is greater than 50,000
-        request.setTxGas(50000L);
-
-        TransactionReceiptResponse deployContractResult;
-        if (isTeeChain) {
-            signRequest(request);
-
-            // generate transaction key
-            byte[] transactionKey = ConfidentialUtil.keyGenerate(secretKey,
-                    request.getTransaction().getHash().getValue());
-
-            ConfidentialRequest confidentialRequest = new ConfidentialRequest(request, publicKeys, transactionKey);
-
-            deployContractResult = sdk.getConfidentialService().confidentialRequest(confidentialRequest);
-        } else {
-            deployContractResult = sdk.getContractService().deployContract(request);
-        }
-
-        // deploy contract
-        if (!deployContractResult.isSuccess()
-                || deployContractResult.getTransactionReceipt().getResult() != 0) {
-            exit("deployContract",
-                    getErrorMsg((int) deployContractResult.getTransactionReceipt().getResult()));
-        } else {
-            System.out.println("deploy contract success.");
-        }
-    }
-
-    private static void issue() {
-        EVMParameter parameters = new EVMParameter("Issue(identity,int256)");
-        parameters.addIdentity(userIdentity);
-        parameters.addUint(BigInteger.valueOf(100));
-
-        // build CallContractRequest
-        CallContractRequest request = new CallContractRequest(userIdentity,
-                Utils.getIdentityByName(testContractId), parameters, BigInteger.ZERO, VMTypeEnum.EVM);
-
-        //  set Gas limit
-        // Make sure your account balance is greater than 50,000
-        request.setTxGas(Long.valueOf(50000));
-
-        TransactionReceiptResponse callContractResult;
-        if (isTeeChain) {
-            signRequest(request);
-
-            // generate transaction key
-            byte[] transactionKey = ConfidentialUtil.keyGenerate(secretKey,
-                    request.getTransaction().getHash().getValue());
-
-            ConfidentialRequest confidentialRequest = new ConfidentialRequest(request, publicKeys, transactionKey);
-
-            callContractResult = sdk.getConfidentialService().confidentialRequest(confidentialRequest);
-        } else {
-            callContractResult = sdk.getContractService().callContract(request);
-        }
-
-        if (!callContractResult.isSuccess() || callContractResult.getTransactionReceipt().getResult() != 0) {
-            exit("issue", getErrorMsg((int) callContractResult.getTransactionReceipt().getResult()));
-        } else {
-            System.out.println("issue success.");
-        }
-    }
-
-    private static void transfer() {
-        // contract parameters
-        EVMParameter contractParameters = new EVMParameter("Transfer(identity,int256)");
-        contractParameters.addIdentity(testAccount1);
-        contractParameters.addUint(BigInteger.valueOf(50));
-
-        CallContractRequest request = new CallContractRequest(userIdentity,
-                Utils.getIdentityByName(testContractId), contractParameters, BigInteger.ZERO, VMTypeEnum.EVM);
-
-        //  set Gas limit
-        // Make sure your account balance is greater than 50,000
-        request.setTxGas(Long.valueOf(50000));
-
-        TransactionReceiptResponse callContractResult;
-        if (isTeeChain) {
-            signRequest(request);
-
-            // generate transaction key
-            byte[] transactionKey = ConfidentialUtil.keyGenerate(secretKey,
-                    request.getTransaction().getHash().getValue());
-
-            ConfidentialRequest confidentialRequest = new ConfidentialRequest(request, publicKeys, transactionKey);
-
-            callContractResult = sdk.getConfidentialService().confidentialRequest(confidentialRequest);
-        } else {
-            callContractResult = sdk.getContractService().callContract(request);
-        }
-
-        if (!callContractResult.isSuccess() || callContractResult.getTransactionReceipt().getResult() != 0) {
-            exit("transfer", getErrorMsg((int) callContractResult.getTransactionReceipt().getResult()));
-        } else {
-            System.out.println("transfer success.");
-        }
-    }
-
-    private static BigInteger query(Identity account) {
-        // contract parameters
-        EVMParameter parameters = new EVMParameter("Query(identity)");
-        parameters.addIdentity(account);
-
-        // build call contract request
-        CallContractRequest request = new CallContractRequest(userIdentity,
-                Utils.getIdentityByName(testContractId), parameters, BigInteger.ZERO, VMTypeEnum.EVM);
-
-        //  set Gas limit
-        // Make sure your account balance is greater than 50,000
-        request.setTxGas(Long.valueOf(50000));
-
-        TransactionReceiptResponse callContractResult;
-        if (isTeeChain) {
-            signRequest(request);
-
-            // generate transaction key
-            byte[] transactionKey = ConfidentialUtil.keyGenerate(secretKey,
-                    request.getTransaction().getHash().getValue());
-
-            ConfidentialRequest confidentialRequest = new ConfidentialRequest(request, publicKeys, transactionKey);
-
-            callContractResult = sdk.getConfidentialService().confidentialRequest(confidentialRequest);
-        } else {
-            callContractResult = sdk.getContractService().callContract(request);
-        }
-
-        if (!callContractResult.isSuccess() || callContractResult.getTransactionReceipt().getResult() != 0) {
-            exit("query", getErrorMsg((int) callContractResult.getTransactionReceipt().getResult()));
-        }
-
-        byte[] output = null;
-        if (isTeeChain) {
-            output = ConfidentialUtil.decrypt(secretKey, callContractResult.getTransactionReceipt()
-                    .getOutput(), request.getTransaction().getHash().hexStrValue());
-        } else {
-            output = callContractResult.getTransactionReceipt().getOutput();
-        }
-
-        if (output == null) {
-            exit("decrypt tee", "decrypt tee output failed");
-            return BigInteger.ZERO;
-        }
-
-        // decode return values
-        EVMOutput contractReturnValues = new EVMOutput(ByteUtils.toHexString(output));
-        return contractReturnValues.getUint();
-    }
-
-    private static void expect(BigInteger balance, BigInteger expectBalance) {
-        if (balance.compareTo(expectBalance) != 0) {
-            exit("expect", "the account value is not expected.");
-        } else {
-            System.out.println("check account balance success.");
-        }
-    }
-
-    private static void initSdk() {
-        sdk = new MychainClient();
-        boolean initResult = sdk.init(env);
-        if (!initResult) {
-            exit("initSdk", "sdk init failed.");
-        }
-    }
-
-    public static void main(String[] args) throws Exception {
-        //step 1:init mychain env.
-        initMychainEnv();
-
-        //step 2: init sdk client
-        initSdk();
-
-        QueryAccountResponse queryAccountResponse = sdk.getQueryService()
-                .queryAccount(Utils.getIdentityByName("test11133"));
-
-        //step 3 : deploy a contract using useridentity.
-        deployContract();
-
-        //step 4 issue 100 assets to testAccount1.
-        issue();
-
-        //step 5 : transfer 50 assets from useridentity to testAccount1
-        transfer();
-
-        //step 6 : query testAccount1 whose balance should be 50.
-        BigInteger balance = query(testAccount1);
-
-        //step 7 : compare to expect balance.
-        expect(balance, BigInteger.valueOf(50));
-
-        //step 8 : sdk shut down
-        sdk.shutDown();
-    }
-}