Docs

Docs

  • 文档
  • github

›使用说明

快速开始

  • 代码示例

使用说明

  • 获取SDK
  • 初始化
  • 交易类型
  • 请求响应
  • 合约接口
  • 工具接口

注意事项

  • 相关事项

初始化

初始化HttpProvider

HttpProvider为SDK中提供http网络消息服务,他提供一种网络通信方式,提供给上层调用。

定义

Provider的接口定义如下:

public interface HttpProvider {
    String post(String body, Map<String, String> headers) throws RequestException;

    PStatus getStatus();

    String getUrl();
}

DefaultHttpProvider

DefaultHttpProvider是实现了HttpProvider的类,其提供了build构造器,你可以使用如下方式创建一个HttpProvider

创建DefaultHttpProvider:

DefaultHttpProvider defaultHttpProvider = new DefaultHttpProvider.Builder()
            .setUrl(DEFAULT_URL)
            .build();

实现自定义Provider

用户还可以编写自己的类实现HttpProvider接口,来在使用自己的工具,或者库来发送网络请求

ProviderManager

ProviderManager是SDK中管理消息网络发送的类,进行网络消息的负载均衡以及节点切换控制,ProviderManager可以包含多个Provider,上层通过ProviderManager发送网络请求,由ProviderManager选择具体发送节点 创建ProviderManager:

ProviderManager providerManager = ProviderManager.createManager(defaultHttpProvider);

用户可以在创建providerManager时提供多个Provider,这样在发送网络请求的时候ProviderManager会在添加的所有Provider中根据内部策略选择一个进行发送。

ProviderManager providerManager2 = ProviderManager.createManager(defaultHttpProvider1, defaultHttpProvider2 , myHttpProvider);

获取服务(Service)

Service是SDK对外部提供的接口,用户使用SDK的功能,就需要先获取到对应的Service

Service种类

当前SDK提供2种Service(未来将会扩展):

ContractService

ContractService提供了合约相关的接口,包括部署合约,调用合约等。其接口定义如下

public interface ContractService {
    Request<TxHashResponse> deploy(Transaction transaction, int... nodeIds);

    Request<TxHashResponse> invoke(Transaction transaction, int... nodeIds);

    Request<ReceiptResponse> getReceipt(String txHash, int... nodeIds);
}

AccountService

ContractService提供了账户相关的接口,其接口定义如下

public interface AccountService {
    Account genSM2Account();
}

Server获取

Server统一通过ServiceManager获取,如:

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

创建账户

在获取到账户服务之后,用户可以通过账户服务来创建一个账户,创建的账户会用来进行交易的签名

Account account = accountService.genSM2Account();
← 获取SDK交易类型 →
  • 初始化HttpProvider
    • 定义
    • DefaultHttpProvider
    • 实现自定义Provider
  • ProviderManager
  • 获取服务(Service)
    • Service种类
    • Server获取
  • 创建账户
QTechGitHub
Copyright © 2025 Hyperchain Co., Ltd.