hyperchain / Javasdk
Programming Languages
Labels
Projects that are alternatives of or similar to Javasdk
LITESDK
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.