# 查询与变更方法

OCAP Client 通过 GraphQL 与区块链进行交互。其方法主要分为两类：

* **查询 (Queries)**：这些是只读操作，用于从区块链中获取数据，例如检索账户状态、列出交易或获取常规链信息。它们不会改变链的状态。
* **变更 (Mutations)**：这些是写入操作，会修改区块链的状态。发送交易是变更操作的主要示例。

本节提供了该客户端所有可用的查询和变更方法的完整参考。


## 查询方法

查询用于从区块链中检索数据。以下是所有可用查询方法的完整列表。

### `getAccountState`

检索特定账户的当前状态，包括其余额、nonce 和其他详细信息。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="要查询的账户地址。"></x-field>
  <x-field data-name="height" data-type="string" data-required="false" data-desc="查询特定区块高度下的状态。"></x-field>
  <x-field data-name="keys" data-type="string[]" data-required="false" data-desc="要检索的特定字段。"></x-field>
  <x-field data-name="traceMigration" data-type="boolean" data-required="false" data-desc="如果为 true，则追踪账户的迁移历史。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetAccountState" data-type="object" data-desc="包含响应码和账户状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码（例如 'OK'）。"></x-field>
  <x-field data-name="state" data-type="AccountState" data-desc="账户的详细状态。"></x-field>
</x-field>

### `getAssetState`

检索特定资产 (NFT) 的当前状态。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="要查询的资产地址。"></x-field>
  <x-field data-name="height" data-type="string" data-required="false" data-desc="查询特定区块高度下的状态。"></x-field>
  <x-field data-name="keys" data-type="string[]" data-required="false" data-desc="要检索的特定字段。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetAssetState" data-type="object" data-desc="包含响应码和资产状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="state" data-type="AssetState" data-desc="资产的详细状态。"></x-field>
</x-field>

### `getFactoryState`

获取特定资产工厂的状态。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="要查询的工厂地址。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetFactoryState" data-type="object" data-desc="包含响应码和工厂状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="state" data-type="AssetFactoryState" data-desc="资产工厂的详细状态。"></x-field>
</x-field>

### `getDelegateState`

检索委托关系的状态。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="要查询的委托地址。"></x-field>
  <x-field data-name="height" data-type="string" data-required="false" data-desc="查询特定区块高度下的状态。"></x-field>
  <x-field data-name="keys" data-type="string[]" data-required="false" data-desc="要检索的特定字段。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetDelegateState" data-type="object" data-desc="包含响应码和委托状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="state" data-type="DelegateState" data-desc="委托的详细状态。"></x-field>
</x-field>

### `getTokenState`

获取特定同质化通证的状态。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="要查询的通证地址。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetTokenState" data-type="object" data-desc="包含响应码和通证状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="state" data-type="TokenState" data-desc="通证的详细状态。"></x-field>
</x-field>

### `getEvidenceState`

通过哈希值检索证据记录。

**参数**

<x-field-group>
  <x-field data-name="hash" data-type="string" data-required="true" data-desc="要检索的证据的哈希值。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetEvidenceState" data-type="object" data-desc="包含响应码和证据状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="state" data-type="EvidenceState" data-desc="证据的详细状态。"></x-field>
</x-field>

### `getForgeState`

获取 OCAP 区块链的整体配置和状态。

**参数**

<x-field-group>
  <x-field data-name="height" data-type="string" data-required="false" data-desc="查询特定区块高度下的状态。"></x-field>
  <x-field data-name="keys" data-type="string[]" data-required="false" data-desc="要检索的特定字段。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetForgeState" data-type="object" data-desc="包含响应码和链状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="state" data-type="ForgeState" data-desc="OCAP 链的详细状态。"></x-field>
</x-field>

### `getTokenFactoryState`

检索特定通证工厂的状态。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="要查询的通证工厂地址。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetTokenFactoryState" data-type="object" data-desc="包含响应码和通证工厂状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="state" data-type="TokenFactoryState" data-desc="通证工厂的详细状态。"></x-field>
</x-field>

### `getTx`

通过哈希值获取单笔交易。

**参数**

<x-field-group>
  <x-field data-name="hash" data-type="string" data-required="true" data-desc="要检索的交易的哈希值。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetTx" data-type="object" data-desc="包含响应码和交易详情的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="info" data-type="TransactionInfo" data-desc="交易的详细信息。"></x-field>
</x-field>

### `getBlock`

通过区块高度检索单个区块。

**参数**

<x-field-group>
  <x-field data-name="height" data-type="string" data-required="true" data-desc="要检索的区块的高度。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetBlock" data-type="object" data-desc="包含响应码和区块详情的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="block" data-type="BlockInfo" data-desc="区块的详细信息。"></x-field>
</x-field>

### `getBlocks`

检索区块列表，可附带筛选条件。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="heightFilter" data-type="RangeFilterInput" data-required="false" data-desc="按高度范围筛选区块。"></x-field>
  <x-field data-name="emptyExcluded" data-type="boolean" data-required="false" data-desc="如果为 true，则排除没有交易的区块。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetBlocks" data-type="object" data-desc="包含分页信息和区块列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="blocks" data-type="BlockInfoSimple[]" data-desc="简化区块对象的数组。"></x-field>
</x-field>

### `getUnconfirmedTxs`

获取在内存池中但尚未确认的交易。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetUnconfirmedTxs" data-type="object" data-desc="包含分页信息和未确认交易列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="unconfirmedTxs" data-type="UnconfirmedTxs" data-desc="未确认交易的详细信息。"></x-field>
</x-field>

### `getChainInfo`

检索关于区块链的常规信息。

**参数**

此方法没有任何参数。

**返回**

<x-field data-name="ResponseGetChainInfo" data-type="object" data-desc="包含响应码和链信息的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="info" data-type="ChainInfo" data-desc="链的详细信息。"></x-field>
</x-field>

### `getConfig`

获取节点的配置。

**参数**

<x-field-group>
  <x-field data-name="parsed" data-type="boolean" data-required="false" data-desc="如果为 true，则返回解析后的配置。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetConfig" data-type="object" data-desc="包含响应码和配置的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="config" data-type="string" data-desc="节点的配置，以字符串形式表示。"></x-field>
</x-field>

### `getNetInfo`

检索网络信息，包括已连接的对等节点。

**参数**

此方法没有任何参数。

**返回**

<x-field data-name="ResponseGetNetInfo" data-type="object" data-desc="包含响应码和网络信息的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="netInfo" data-type="NetInfo" data-desc="详细的网络信息。"></x-field>
</x-field>

### `getNodeInfo`

检索有关被查询的特定节点的信息。

**参数**

此方法没有任何参数。

**返回**

<x-field data-name="ResponseGetNodeInfo" data-type="object" data-desc="包含响应码和节点信息的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="info" data-type="NodeInfo" data-desc="有关节点的详细信息。"></x-field>
</x-field>

### `getValidatorsInfo`

获取有关当前验证者集的信息。

**参数**

此方法没有任何参数。

**返回**

<x-field data-name="ResponseGetValidatorsInfo" data-type="object" data-desc="包含响应码和验证者信息的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="validatorsInfo" data-type="ValidatorsInfo" data-desc="有关验证者的详细信息。"></x-field>
</x-field>

### `getForgeStats`

检索有关区块链活动的各种统计数据。

**参数**

此方法没有任何参数。

**返回**

<x-field data-name="ResponseGetForgeStats" data-type="object" data-desc="包含响应码和链统计数据的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="forgeStats" data-type="ForgeStats" data-desc="有关 OCAP 链的各种统计数据。"></x-field>
</x-field>

### `listAssetTransactions`

列出与特定资产相关的所有交易。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="资产的地址。"></x-field>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListAssetTransactions" data-type="object" data-desc="包含分页信息和交易列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="transactions" data-type="IndexedTransaction[]" data-desc="交易对象的数组。"></x-field>
</x-field>

### `listAssets`

列出所有资产，可通过所有者或工厂进行筛选。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="ownerAddress" data-type="string" data-required="false" data-desc="按所有者地址筛选资产。"></x-field>
  <x-field data-name="factoryAddress" data-type="string" data-required="false" data-desc="按工厂地址筛选资产。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选资产。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListAssets" data-type="object" data-desc="包含分页信息和资产列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="assets" data-type="IndexedAssetState[]" data-desc="资产状态对象的数组。"></x-field>
</x-field>

### `listBlocks`

列出区块，并提供多种筛选选项。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="proposer" data-type="string" data-required="false" data-desc="按提议者地址筛选区块。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选区块。"></x-field>
  <x-field data-name="heightFilter" data-type="RangeFilterInput" data-required="false" data-desc="按高度范围筛选区块。"></x-field>
  <x-field data-name="numTxsFilter" data-type="RangeFilterInput" data-required="false" data-desc="按交易数量筛选区块。"></x-field>
  <x-field data-name="numInvalidTxsFilter" data-type="RangeFilterInput" data-required="false" data-desc="按无效交易数量筛选区块。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListBlocks" data-type="object" data-desc="包含分页信息和区块列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="blocks" data-type="IndexedBlock[]" data-desc="区块对象的数组。"></x-field>
</x-field>

### `listTopAccounts`

列出持有特定通证余额最高的账户。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="tokenAddress" data-type="string" data-required="false" data-desc="通证的地址。如果未提供，则默认为原生通证。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选账户。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListTopAccounts" data-type="object" data-desc="包含分页信息和排名靠前账户列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="accounts" data-type="IndexedAccountState[]" data-desc="账户状态对象的数组。"></x-field>
</x-field>

### `listTransactions`

一个功能强大的方法，可通过多种筛选条件列出交易。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选交易。"></x-field>
  <x-field data-name="addressFilter" data-type="AddressFilterInput" data-required="false" data-desc="按发送方或接收方地址筛选交易。"></x-field>
  <x-field data-name="typeFilter" data-type="TypeFilterInput" data-required="false" data-desc="按交易类型筛选。"></x-field>
  <x-field data-name="validityFilter" data-type="ValidityFilterInput" data-required="false" data-desc="按交易有效性筛选。"></x-field>
  <x-field data-name="factoryFilter" data-type="FactoryFilterInput" data-required="false" data-desc="按工厂地址筛选。"></x-field>
  <x-field data-name="tokenFilter" data-type="TokenFilterInput" data-required="false" data-desc="按通证地址筛选。"></x-field>
  <x-field data-name="assetFilter" data-type="AssetFilterInput" data-required="false" data-desc="按资产地址筛选。"></x-field>
  <x-field data-name="accountFilter" data-type="AccountFilterInput" data-required="false" data-desc="按账户地址筛选。"></x-field>
  <x-field data-name="txFilter" data-type="TxFilterInput" data-required="false" data-desc="按交易哈希筛选。"></x-field>
  <x-field data-name="rollupFilter" data-type="RollupFilterInput" data-required="false" data-desc="按 Rollup 地址筛选。"></x-field>
  <x-field data-name="stakeFilter" data-type="StakeFilterInput" data-required="false" data-desc="按质押地址筛选。"></x-field>
  <x-field data-name="delegationFilter" data-type="DelegationFilterInput" data-required="false" data-desc="按委托地址筛选。"></x-field>
  <x-field data-name="tokenFactoryFilter" data-type="TokenFactoryFilterInput" data-required="false" data-desc="按通证工厂地址筛选。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListTransactions" data-type="object" data-desc="包含分页信息和交易列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="transactions" data-type="IndexedTransaction[]" data-desc="交易对象的数组。"></x-field>
</x-field>

### `listTokens`

列出链上所有的同质化通证。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="issuerAddress" data-type="string" data-required="false" data-desc="按发行方地址筛选通证。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选通证。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListTokens" data-type="object" data-desc="包含分页信息和通证列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="tokens" data-type="IndexedTokenState[]" data-desc="通证状态对象的数组。"></x-field>
</x-field>

### `listFactories`

列出链上所有的资产工厂。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="ownerAddress" data-type="string" data-required="false" data-desc="按所有者地址筛选工厂。"></x-field>
  <x-field data-name="addressList" data-type="string[]" data-required="false" data-desc="要查询的工厂地址列表。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选工厂。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListFactories" data-type="object" data-desc="包含分页信息和工厂列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="factories" data-type="IndexedFactoryState[]" data-desc="工厂状态对象的数组。"></x-field>
</x-field>

### `getAccountTokens`

检索特定账户的通证余额。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="账户的地址。"></x-field>
  <x-field data-name="token" data-type="string" data-required="false" data-desc="要查询的特定通证地址。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetAccountTokens" data-type="object" data-desc="包含响应码和账户通证列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="tokens" data-type="AccountToken[]" data-desc="通证余额对象的数组。"></x-field>
</x-field>

### `getStakeState`

获取特定质押的状态。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="要查询的质押地址。"></x-field>
  <x-field data-name="height" data-type="string" data-required="false" data-desc="查询特定区块高度下的状态。"></x-field>
  <x-field data-name="keys" data-type="string[]" data-required="false" data-desc="要检索的特定字段。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetStakeState" data-type="object" data-desc="包含响应码和质押状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="state" data-type="StakeState" data-desc="质押的详细状态。"></x-field>
</x-field>

### `listStakes`

列出所有质押记录，可附带筛选条件。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="addressFilter" data-type="AddressFilterInput" data-required="false" data-desc="按发送方或接收方地址筛选质押。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选质押。"></x-field>
  <x-field data-name="assetFilter" data-type="AssetFilterInput" data-required="false" data-desc="按资产地址筛选质押。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListStakes" data-type="object" data-desc="包含分页信息和质押列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="stakes" data-type="IndexedStakeState[]" data-desc="质押状态对象的数组。"></x-field>
</x-field>

### `getRollupState`

检索特定 Rollup 的状态。

**参数**

<x-field-group>
  <x-field data-name="address" data-type="string" data-required="true" data-desc="要查询的 Rollup 地址。"></x-field>
  <x-field data-name="height" data-type="string" data-required="false" data-desc="查询特定区块高度下的状态。"></x-field>
  <x-field data-name="keys" data-type="string[]" data-required="false" data-desc="要检索的特定字段。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetRollupState" data-type="object" data-desc="包含响应码和 Rollup 状态的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="state" data-type="RollupState" data-desc="Rollup 的详细状态。"></x-field>
</x-field>

### `listRollups`

列出链上所有的 Rollup。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="tokenAddress" data-type="string" data-required="false" data-desc="按通证地址筛选 Rollup。"></x-field>
  <x-field data-name="foreignTokenAddress" data-type="string" data-required="false" data-desc="按外部通证地址筛选 Rollup。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选 Rollup。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListRollups" data-type="object" data-desc="包含分页信息和 Rollup 列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="rollups" data-type="IndexedRollupState[]" data-desc="Rollup 状态对象的数组。"></x-field>
</x-field>

### `getRollupBlock`

从 Rollup 侧链获取特定区块。

**参数**

<x-field-group>
  <x-field data-name="hash" data-type="string" data-required="false" data-desc="Rollup 区块的哈希值。"></x-field>
  <x-field data-name="height" data-type="string" data-required="false" data-desc="Rollup 区块的高度。"></x-field>
  <x-field data-name="rollupAddress" data-type="string" data-required="true" data-desc="Rollup 的地址。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetRollupBlock" data-type="object" data-desc="包含响应码和 Rollup 区块的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="block" data-type="RollupBlock" data-desc="Rollup 区块的详细信息。"></x-field>
</x-field>

### `listRollupBlocks`

列出 Rollup 侧链的区块。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="rollupAddress" data-type="string" data-required="true" data-desc="Rollup 的地址。"></x-field>
  <x-field data-name="tokenAddress" data-type="string" data-required="false" data-desc="按通证地址筛选。"></x-field>
  <x-field data-name="proposer" data-type="string" data-required="false" data-desc="按提议者地址筛选。"></x-field>
  <x-field data-name="validatorFilter" data-type="ValidatorFilterInput" data-required="false" data-desc="按验证者筛选。"></x-field>
  <x-field data-name="txFilter" data-type="TxFilterInput" data-required="false" data-desc="按交易哈希筛选。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListRollupBlocks" data-type="object" data-desc="包含分页信息和 Rollup 区块列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="blocks" data-type="IndexedRollupBlock[]" data-desc="Rollup 区块对象的数组。"></x-field>
</x-field>

### `listRollupValidators`

列出特定 Rollup 的验证者。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="rollupAddress" data-type="string" data-required="true" data-desc="Rollup 的地址。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListRollupValidators" data-type="object" data-desc="包含分页信息和 Rollup 验证者列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="validators" data-type="IndexedRollupValidator[]" data-desc="Rollup 验证者对象的数组。"></x-field>
</x-field>

### `listDelegations`

列出所有委托记录。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="from" data-type="string" data-required="false" data-desc="按委托人地址筛选。"></x-field>
  <x-field data-name="to" data-type="string" data-required="false" data-desc="按受托人地址筛选。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListDelegations" data-type="object" data-desc="包含分页信息和委托列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="delegations" data-type="IndexedDelegationState[]" data-desc="委托状态对象的数组。"></x-field>
</x-field>

### `search`

对账户、资产或交易进行关键字搜索。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="keyword" data-type="string" data-required="true" data-desc="要搜索的关键字。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseSearch" data-type="object" data-desc="包含分页信息和搜索结果的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="results" data-type="SearchResult[]" data-desc="搜索结果对象的数组。"></x-field>
</x-field>

### `estimateGas`

估算交易所需的 gas。

**参数**

<x-field-group>
  <x-field data-name="typeUrl" data-type="string" data-required="true" data-desc="交易的类型 URL。"></x-field>
  <x-field data-name="tx" data-type="string" data-required="true" data-desc="已编码的交易字符串。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseEstimateGas" data-type="object" data-desc="包含响应码和 gas 估算值的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="estimate" data-type="GasEstimate" data-desc="估算的 gas。"></x-field>
</x-field>

### `listTokenFlows`

追踪账户之间的通证流动。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="accountAddress" data-type="string" data-required="true" data-desc="要追踪的账户地址。"></x-field>
  <x-field data-name="tokenAddress" data-type="string" data-required="false" data-desc="要追踪的通证地址。"></x-field>
  <x-field data-name="depth" data-type="number" data-required="false" data-desc="追踪的深度。"></x-field>
  <x-field data-name="direction" data-type="TokenFlowDirection" data-required="false" data-desc="流动方向（IN 或 OUT）。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListTokenFlows" data-type="object" data-desc="包含分页信息和通证流动数据的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="data" data-type="IndexedTokenFlow[]" data-desc="通证流动对象的数组。"></x-field>
</x-field>

### `verifyAccountRisk`

评估给定账户的风险状况。

**参数**

<x-field-group>
  <x-field data-name="accountAddress" data-type="string" data-required="true" data-desc="要验证的账户地址。"></x-field>
  <x-field data-name="tokenAddress" data-type="string" data-required="false" data-desc="用于提供上下文的通证地址。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseVerifyAccountRisk" data-type="object" data-desc="包含响应码和风险验证结果的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="data" data-type="VerifyAccountRiskResult" data-desc="风险验证的结果。"></x-field>
</x-field>

### `getTokenDistribution`

检索给定通证的分布统计数据。

**参数**

<x-field-group>
  <x-field data-name="tokenAddress" data-type="string" data-required="true" data-desc="通证的地址。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseGetTokenDistribution" data-type="object" data-desc="包含响应码和通证分布数据的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="data" data-type="TokenDistribution" data-desc="通证分布统计数据。"></x-field>
</x-field>

### `listTokenFactories`

列出链上所有的通证工厂。

**参数**

<x-field-group>
  <x-field data-name="paging" data-type="PageInput" data-required="false" data-desc="分页设置。"></x-field>
  <x-field data-name="tokenAddress" data-type="string" data-required="false" data-desc="按通证地址筛选。"></x-field>
  <x-field data-name="reserveAddress" data-type="string" data-required="false" data-desc="按储备通证地址筛选。"></x-field>
  <x-field data-name="owner" data-type="string" data-required="false" data-desc="按所有者地址筛选。"></x-field>
  <x-field data-name="timeFilter" data-type="TimeFilterInput" data-required="false" data-desc="按时间范围筛选。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseListTokenFactories" data-type="object" data-desc="包含分页信息和通证工厂列表的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="page" data-type="PageInfo" data-desc="分页信息。"></x-field>
  <x-field data-name="tokenFactories" data-type="IndexedTokenFactoryState[]" data-desc="通证工厂状态对象的数组。"></x-field>
</x-field>


## 变更方法

变更用于发送修改区块链状态的交易。

### `sendTx`

将预先签名的交易广播到网络。这是所有写入操作的基础方法。关于创建和签署交易，请参阅 [高级 API](./api-reference-transaction-helpers.md) 和 [交易生命周期](./core-concepts-transaction-lifecycle.md) 指南。

**参数**

<x-field-group>
  <x-field data-name="tx" data-type="string" data-required="true" data-desc="已编码的交易字符串。"></x-field>
  <x-field data-name="wallet" data-type="object" data-required="true" data-desc="用于签名的钱包对象。"></x-field>
  <x-field data-name="token" data-type="string" data-required="false" data-desc="身份验证令牌（如果需要）。"></x-field>
  <x-field data-name="commit" data-type="boolean" data-required="false" data-default="true" data-desc="如果为 true，则等待交易提交到区块中。"></x-field>
  <x-field data-name="extra" data-type="string" data-required="false" data-desc="要包含的额外数据。"></x-field>
</x-field-group>

**返回**

<x-field data-name="ResponseSendTx" data-type="object" data-desc="包含响应码和交易哈希的对象。">
  <x-field data-name="code" data-type="string" data-desc="响应的状态码。"></x-field>
  <x-field data-name="hash" data-type="string" data-desc="已提交交易的哈希。"></x-field>
</x-field>

**示例**

```javascript icon=logos:javascript
// 本示例假设 `signedTx` 是一个经过正确编码和签名的交易字符串。
// 关于如何创建它，请参阅其他指南。

const signedTx = '...'; 
const wallet = { ... }; // 签署该交易的钱包

try {
  const { hash } = await client.sendTx({ tx: signedTx, wallet });
  console.log('Transaction sent successfully! Hash:', hash);
} catch (error) {
  console.error('Failed to send transaction:', error);
}
```
