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
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);
Create different services by specific provider manager, service will provide some function.
ContractService contractService = ServiceManager.getContractService(providerManager);
AccountService accountService = ServiceManager.getAccountService(providerManager);
Account can be used to sign transaction.
Account account = accountService.genAccount(Algo.SMRAW);
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();
Service will return a Request, user can use Request to get specific Response by interface.
ReceiptResponse receiptResponse = contractService.deploy(transaction).send().polling();
Decode result to specific type.
Decoder.decodeHVM(receiptResponse1.getRet(), String.class);
If you have any suggestions or idea, please submit issue in this project!
If you want to know more about LiteSDK, you can read manual at here.