API

这里直接归类列出所有 gRPC API 和类型。所有 gRPC API 均对应有 HTTP API, HTTP API 列表参考 https://cn.developers.tron.network/reference .

提示

在使用 HTTP API 的过程中,应时刻对背后对 gRPC 或 protobuf 有一定认识。

例如 ScanShieldedNotes 相关 API, HTTP API 版本在部分值为 0, 为 false 时字段不存在,典型如is_spent = false .

交易创建和广播

以下 API 用于创建需要上链的交易,除 BroadcastTransaction 之外,其余 API 均用于创建一个供签名的交易,并填入 TaPos 信息(ref_block)。

在 ref_block_hash 已知的情况下(通过固化块 API 获得),交易可以离线构造。使用交易的 owner_address 签名后直接 BroadcastTransaction 即可。

service Wallet {
  // Transactions:
  rpc BroadcastTransaction(Transaction) returns (TransactionReturn) {}

  rpc CreateCommonTransaction(Transaction) returns (TransactionExtention) {}

  rpc CreateAccount(AccountCreateContract) returns (Transaction) {}
  rpc CreateAccount2(AccountCreateContract) returns (TransactionExtention) {}

  rpc UpdateAccount(AccountUpdateContract) returns (Transaction) {}
  rpc UpdateAccount2(AccountUpdateContract) returns (TransactionExtention) {}

  rpc SetAccountId(SetAccountIdContract) returns (Transaction) {}

  rpc AccountPermissionUpdate(AccountPermissionUpdateContract) returns (TransactionExtention) {}

  rpc CreateTransaction(TransferContract) returns (Transaction) {}
  rpc CreateTransaction2(TransferContract) returns (TransactionExtention) {}

  rpc CreateAssetIssue(AssetIssueContract) returns (Transaction) {}
  rpc CreateAssetIssue2(AssetIssueContract) returns (TransactionExtention) {}

  rpc UpdateAsset(UpdateAssetContract) returns (Transaction) {}
  rpc UpdateAsset2(UpdateAssetContract) returns (TransactionExtention) {}

  rpc TransferAsset(TransferAssetContract) returns (Transaction) {}
  rpc TransferAsset2(TransferAssetContract) returns (TransactionExtention) {}

  rpc ParticipateAssetIssue(ParticipateAssetIssueContract) returns (Transaction) {}
  rpc ParticipateAssetIssue2(ParticipateAssetIssueContract) returns (TransactionExtention) {}

  rpc UnfreezeAsset(UnfreezeAssetContract) returns (Transaction) {}
  rpc UnfreezeAsset2(UnfreezeAssetContract) returns (TransactionExtention) {}

  rpc CreateWitness(WitnessCreateContract) returns (Transaction) {}
  rpc CreateWitness2(WitnessCreateContract) returns (TransactionExtention) {}

  rpc UpdateWitness(WitnessUpdateContract) returns (Transaction) {}
  rpc UpdateWitness2(WitnessUpdateContract) returns (TransactionExtention) {}

  rpc UpdateBrokerage(UpdateBrokerageContract) returns (TransactionExtention) {}

  rpc VoteWitnessAccount(VoteWitnessContract) returns (Transaction) {}
  rpc VoteWitnessAccount2(VoteWitnessContract) returns (TransactionExtention) {}

  rpc FreezeBalance(FreezeBalanceContract) returns (Transaction) {}
  rpc FreezeBalance2(FreezeBalanceContract) returns (TransactionExtention) {}

  rpc UnfreezeBalance(UnfreezeBalanceContract) returns (Transaction) {}
  rpc UnfreezeBalance2(UnfreezeBalanceContract) returns (TransactionExtention) {}

  rpc WithdrawBalance(WithdrawBalanceContract) returns (Transaction) {}
  rpc WithdrawBalance2(WithdrawBalanceContract) returns (TransactionExtention) {}

  rpc ProposalCreate(ProposalCreateContract) returns (TransactionExtention) {}
  rpc ProposalApprove(ProposalApproveContract) returns (TransactionExtention) {}
  rpc ProposalDelete(ProposalDeleteContract) returns (TransactionExtention) {}

  rpc DeployContract(CreateSmartContract) returns (TransactionExtention) {}
  rpc UpdateSetting(UpdateSettingContract) returns (TransactionExtention) {}          // consume_user_resource_percent
  rpc UpdateEnergyLimit(UpdateEnergyLimitContract) returns (TransactionExtention) {}  // origin_energy_limit
  rpc ClearContractABI(ClearABIContract) returns (TransactionExtention) {}
  rpc TriggerContract(TriggerSmartContract) returns (TransactionExtention) {}
  rpc TriggerConstantContract(TriggerSmartContract) returns (TransactionExtention) {}  // not a txn type

  rpc ExchangeCreate(ExchangeCreateContract) returns (TransactionExtention) {}
  rpc ExchangeInject(ExchangeInjectContract) returns (TransactionExtention) {}
  rpc ExchangeWithdraw(ExchangeWithdrawContract) returns (TransactionExtention) {}
  rpc ExchangeTransaction(ExchangeTransactionContract) returns (TransactionExtention) {}
}

链上数据查询

以下所列出的 API 用于链上数据查询或节点状态查询,所有操作不会上链。请求参数不含隐私信息,安全可靠。

Unsafe API

此类 API 有安全隐患,应避免使用,或至少确保只在可信节点上使用。

最佳实践是:

应用开发者应使用这些 API 的离线实现,或使用自己搭建的全节点。

固化块 API

这里列出具有实际使用意义的固化块 API, 列表之外的其他固化块 API 没有实质使用场景,应避免使用。

最后更新于

这有帮助吗?