funteane / javasdk

the Java SDK for hyperchain (developing)

Home Page:http://docs.hyperchain.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LITESDK

License: LGPL v3 Build Status Coverage Status

This is a light JavaSDK for Hyperchain.

To get more information you can view docs, use hvmd and liteSDK to start a enjoyable journey.

Get started

Install

Maven

<dependency>
    <groupId>cn.hyperchain</groupId>
    <artifactId>litesdk</artifactId>
    <version>x.x.x</version>
</dependency>

Gradle

compile group: 'cn.hyperchain', name: 'litesdk', version: 'x.x.x'

It's better to use latest sdk to send transaction, now it will be compatible with hyperchain 1.0 and 2.0

Usage

1. build provider manager

Provider can be expanded by user, we support default http provider.

Then create provider manager.

String DEFAULT_URL = "localhost:8081";
DefaultHttpProvider defaultHttpProvider = new DefaultHttpProvider.Builder().setUrl(DEFAULT_URL).build();
ProviderManager providerManager = ProviderManager.createManager(defaultHttpProvider);

2. Build service

Create different services by specific provider manager, service will provide some function.

ContractService contractService = ServiceManager.getContractService(providerManager);
AccountService accountService = ServiceManager.getAccountService(providerManager);

3. Create account

Account can be used to sign transaction.

Account account = accountService.genAccount(Algo.SMRAW);

4. Build transaction

Transaction builder can create different transaction by different style of initialization.

// deploy
Transaction transaction = new Transaction.HVMBuilder(account.getAddress()).deploy("hvm-jar/hvmbasic-1.0.0-student.jar").build();
transaction.sign(account);

// invoke
Transaction transaction1 = new Transaction.HVMBuilder(account.getAddress()).invoke(receiptResponse.getContractAddress(), new StudentInvoke()).build();

5. Get response

Service will return a Request, user can use Request to get specific Response by interface.

ReceiptResponse receiptResponse = contractService.deploy(transaction).send().polling();

6. Decode result

Decode result to specific type.

Decoder.decodeHVM(receiptResponse1.getRet(), String.class);

Issue

If you have any suggestions or idea, please submit issue in this project!

Doc

If you want to know more about LiteSDK, you can read manual at here.

About

the Java SDK for hyperchain (developing)

http://docs.hyperchain.cn

License:GNU Lesser General Public License v3.0


Languages

Language:Java 98.8%Language:Shell 0.8%Language:Solidity 0.4%