合约接口

以交易体结构为核心的交易主要应用在合约交易上,即将想要执行的操作和数据封装成一笔交易体,再调用合约服务(ContractService)的接口去执行。

绑定合约接口的Response子类只有TxHashResponse,里面封装了ReceiptResponse类型的参数,实际是tx hash,拿到TxHashResponse后调用polling方法可通过tx hash去查找获取真正的交易回执。

TxHashResponse的主要方法如下:

  1. /**
  2. * 通过交易hash获取交易回执.
  3. *
  4. * @return 返回 ReceiptResponse
  5. * @throws RequestException -
  6. */
  7. public ReceiptResponse polling() throws RequestException;
  8. /**
  9. * 获取交易hash.
  10. *
  11. * @return 交易hash
  12. */
  13. public String getTxHash();

LiteSDK的合约接口较特殊,目前提供了部署合约、调用合约、管理合约三种接口。

  1. public interface ContractService {
  2. Request<TxHashResponse> deploy(Transaction transaction, int... nodeIds);
  3. Request<TxHashResponse> invoke(Transaction transaction, int... nodeIds);
  4. Request<TxHashResponse> maintain(Transaction transaction, int... nodeIds);
  5. }

根据要创建的合约服务不同,封装的Transaction交易体也会不同。并且LiteSDK支持HVM、EVM两种形式的合约,这两种也会影响到交易体的创建。