跳到主要內容

查詢與變動方法

OCAP 客戶端透過 GraphQL 與區塊鏈互動。方法分為兩大類:

  • 查詢 (Queries):這些是唯讀操作,用於從區塊鏈擷取資料,例如檢索帳戶狀態、列出交易或取得一般鏈資訊。它們不會改變鏈的狀態。
  • 變動 (Mutations):這些是會修改區塊鏈狀態的寫入操作。傳送交易是變動的主要範例。

本節提供客戶端所有可用的查詢與變動方法的完整參考。

查詢方法

查詢用於從區塊鏈中檢索資料。以下是所有可用查詢方法的完整列表。

getAccountState

檢索特定帳戶的目前狀態,包括其餘額、nonce 及其他詳細資訊。

參數

  • address string (required) — 要查詢的帳戶地址。
  • height string — 查詢特定區塊高度的狀態。
  • keys string[] — 要檢索的特定欄位。
  • traceMigration boolean — 若為 true,則追蹤帳戶的遷移歷史。

傳回值

  • ResponseGetAccountState object — 一個包含回應碼和帳戶狀態的物件。
    • code string — 回應的狀態碼(例如 'OK')。
    • state AccountState — 帳戶的詳細狀態。

getAssetState

檢索特定資產(NFT)的目前狀態。

參數

  • address string (required) — 要查詢的資產地址。
  • height string — 查詢特定區塊高度的狀態。
  • keys string[] — 要檢索的特定欄位。

傳回值

  • ResponseGetAssetState object — 一個包含回應碼和資產狀態的物件。
    • code string — 回應的狀態碼。
    • state AssetState — 資產的詳細狀態。

getFactoryState

擷取特定資產工廠的狀態。

參數

  • address string (required) — 要查詢的工廠地址。

傳回值

  • ResponseGetFactoryState object — 一個包含回應碼和工廠狀態的物件。
    • code string — 回應的狀態碼。
    • state AssetFactoryState — 資產工廠的詳細狀態。

getDelegateState

檢索委託關係的狀態。

參數

  • address string (required) — 要查詢的委託地址。
  • height string — 查詢特定區塊高度的狀態。
  • keys string[] — 要檢索的特定欄位。

傳回值

  • ResponseGetDelegateState object — 一個包含回應碼和委託狀態的物件。
    • code string — 回應的狀態碼。
    • state DelegateState — 委託的詳細狀態。

getTokenState

擷取特定同質化代幣的狀態。

參數

  • address string (required) — 要查詢的代幣地址。

傳回值

  • ResponseGetTokenState object — 一個包含回應碼和代幣狀態的物件。
    • code string — 回應的狀態碼。
    • state TokenState — 代幣的詳細狀態。

getEvidenceState

根據其雜湊值檢索證據記錄。

參數

  • hash string (required) — 要檢索的證據的雜湊值。

傳回值

  • ResponseGetEvidenceState object — 一個包含回應碼和證據狀態的物件。
    • code string — 回應的狀態碼。
    • state EvidenceState — 證據的詳細狀態。

getForgeState

擷取 OCAP 區塊鏈的整體設定與狀態。

參數

  • height string — 查詢特定區塊高度的狀態。
  • keys string[] — 要檢索的特定欄位。

傳回值

  • ResponseGetForgeState object — 一個包含回應碼和鏈狀態的物件。
    • code string — 回應的狀態碼。
    • state ForgeState — OCAP 鏈的詳細狀態。

getTokenFactoryState

檢索特定代幣工廠的狀態。

參數

  • address string (required) — 要查詢的代幣工廠地址。

傳回值

  • ResponseGetTokenFactoryState object — 一個包含回應碼和代幣工廠狀態的物件。
    • code string — 回應的狀態碼。
    • state TokenFactoryState — 代幣工廠的詳細狀態。

getTx

根據其雜湊值擷取單一交易。

參數

  • hash string (required) — 要檢索的交易的雜湊值。

傳回值

  • ResponseGetTx object — 一個包含回應碼和交易詳細資訊的物件。
    • code string — 回應的狀態碼。
    • info TransactionInfo — 交易的詳細資訊。

getBlock

根據其高度檢索單一區塊。

參數

  • height string (required) — 要檢索的區塊的高度。

傳回值

  • ResponseGetBlock object — 一個包含回應碼和區塊詳細資訊的物件。
    • code string — 回應的狀態碼。
    • block BlockInfo — 區塊的詳細資訊。

getBlocks

檢索區塊列表,可選用篩選條件。

參數

  • paging PageInput — 分頁設定。
  • heightFilter RangeFilterInput — 按高度範圍篩選區塊。
  • emptyExcluded boolean — 若為 true,則排除不含交易的區塊。

傳回值

  • ResponseGetBlocks object — 一個包含分頁資訊和區塊列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • blocks BlockInfoSimple[] — 一個簡化區塊物件的陣列。

getUnconfirmedTxs

擷取在記憶體池中但尚未確認的交易。

參數

  • paging PageInput — 分頁設定。

傳回值

  • ResponseGetUnconfirmedTxs object — 一個包含分頁資訊和未確認交易列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • unconfirmedTxs UnconfirmedTxs — 未確認交易的詳細資訊。

getChainInfo

檢索關於區塊鏈的一般資訊。

參數

此方法不接受任何參數。

傳回值

  • ResponseGetChainInfo object — 一個包含回應碼和鏈資訊的物件。
    • code string — 回應的狀態碼。
    • info ChainInfo — 鏈的詳細資訊。

getConfig

擷取節點的設定。

參數

  • parsed boolean — 若為 true,則傳回已解析的設定。

傳回值

  • ResponseGetConfig object — 一個包含回應碼和設定的物件。
    • code string — 回應的狀態碼。
    • config string — 節點的設定,以字串形式表示。

getNetInfo

檢索網路資訊,包括已連線的對等節點。

參數

此方法不接受任何參數。

傳回值

  • ResponseGetNetInfo object — 一個包含回應碼和網路資訊的物件。
    • code string — 回應的狀態碼。
    • netInfo NetInfo — 詳細的網路資訊。

getNodeInfo

檢索關於被查詢的特定節點的資訊。

參數

此方法不接受任何參數。

傳回值

  • ResponseGetNodeInfo object — 一個包含回應碼和節點資訊的物件。
    • code string — 回應的狀態碼。
    • info NodeInfo — 關於節點的詳細資訊。

getValidatorsInfo

擷取關於目前驗證者集合的資訊。

參數

此方法不接受任何參數。

傳回值

  • ResponseGetValidatorsInfo object — 一個包含回應碼和驗證者資訊的物件。
    • code string — 回應的狀態碼。
    • validatorsInfo ValidatorsInfo — 關於驗證者的詳細資訊。

getForgeStats

檢索關於區塊鏈活動的各種統計數據。

參數

此方法不接受任何參數。

傳回值

  • ResponseGetForgeStats object — 一個包含回應碼和鏈統計數據的物件。
    • code string — 回應的狀態碼。
    • forgeStats ForgeStats — 關於 OCAP 鏈的各種統計數據。

listAssetTransactions

列出與特定資產相關的所有交易。

參數

  • address string (required) — 資產的地址。
  • paging PageInput — 分頁設定。

傳回值

  • ResponseListAssetTransactions object — 一個包含分頁資訊和交易列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • transactions IndexedTransaction[] — 一個交易物件的陣列。

listAssets

列出所有資產,可依擁有者或工廠進行篩選。

參數

  • paging PageInput — 分頁設定。
  • ownerAddress string — 按擁有者地址篩選資產。
  • factoryAddress string — 按工廠地址篩選資產。
  • timeFilter TimeFilterInput — 按時間範圍篩選資產。

傳回值

  • ResponseListAssets object — 一個包含分頁資訊和資產列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • assets IndexedAssetState[] — 一個資產狀態物件的陣列。

listBlocks

列出區塊,提供多種篩選選項。

參數

  • paging PageInput — 分頁設定。
  • proposer string — 按提案者地址篩選區塊。
  • timeFilter TimeFilterInput — 按時間範圍篩選區塊。
  • heightFilter RangeFilterInput — 按高度範圍篩選區塊。
  • numTxsFilter RangeFilterInput — 按交易數量篩選區塊。
  • numInvalidTxsFilter RangeFilterInput — 按無效交易數量篩選區塊。

傳回值

  • ResponseListBlocks object — 一個包含分頁資訊和區塊列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • blocks IndexedBlock[] — 一個區塊物件的陣列。

listTopAccounts

列出特定代幣餘額最高的帳戶。

參數

  • paging PageInput — 分頁設定。
  • tokenAddress string — 代幣的地址。若未提供,則預設為原生代幣。
  • timeFilter TimeFilterInput — 按時間範圍篩選帳戶。

傳回值

  • ResponseListTopAccounts object — 一個包含分頁資訊和頂級帳戶列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • accounts IndexedAccountState[] — 一個帳戶狀態物件的陣列。

listTransactions

一個功能強大的方法,能以多種篩選條件列出交易。

參數

  • paging PageInput — 分頁設定。
  • timeFilter TimeFilterInput — 按時間範圍篩選交易。
  • addressFilter AddressFilterInput — 按傳送者或接收者地址篩選交易。
  • typeFilter TypeFilterInput — 按交易類型篩選。
  • validityFilter ValidityFilterInput — 按交易有效性篩選。
  • factoryFilter FactoryFilterInput — 按工廠地址篩選。
  • tokenFilter TokenFilterInput — 按代幣地址篩選。
  • assetFilter AssetFilterInput — 按資產地址篩選。
  • accountFilter AccountFilterInput — 按帳戶地址篩選。
  • txFilter TxFilterInput — 按交易雜湊值篩選。
  • rollupFilter RollupFilterInput — 按 rollup 地址篩選。
  • stakeFilter StakeFilterInput — 按質押地址篩選。
  • delegationFilter DelegationFilterInput — 按委託地址篩選。
  • tokenFactoryFilter TokenFactoryFilterInput — 按代幣工廠地址篩選。

傳回值

  • ResponseListTransactions object — 一個包含分頁資訊和交易列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • transactions IndexedTransaction[] — 一個交易物件的陣列。

listTokens

列出鏈上所有的同質化代幣。

參數

  • paging PageInput — 分頁設定。
  • issuerAddress string — 按發行者地址篩選代幣。
  • timeFilter TimeFilterInput — 按時間範圍篩選代幣。

傳回值

  • ResponseListTokens object — 一個包含分頁資訊和代幣列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • tokens IndexedTokenState[] — 一個代幣狀態物件的陣列。

listFactories

列出鏈上所有的資產工廠。

參數

  • paging PageInput — 分頁設定。
  • ownerAddress string — 按擁有者地址篩選工廠。
  • addressList string[] — 要查詢的工廠地址列表。
  • timeFilter TimeFilterInput — 按時間範圍篩選工廠。

傳回值

  • ResponseListFactories object — 一個包含分頁資訊和工廠列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • factories IndexedFactoryState[] — 一個工廠狀態物件的陣列。

getAccountTokens

檢索特定帳戶的代幣餘額。

參數

  • address string (required) — 帳戶的地址。
  • token string — 要查詢的特定代幣地址。

傳回值

  • ResponseGetAccountTokens object — 一個包含回應碼和帳戶代幣列表的物件。
    • code string — 回應的狀態碼。
    • tokens AccountToken[] — 一個代幣餘額物件的陣列。

getStakeState

擷取特定質押的狀態。

參數

  • address string (required) — 要查詢的質押地址。
  • height string — 查詢特定區塊高度的狀態。
  • keys string[] — 要檢索的特定欄位。

傳回值

  • ResponseGetStakeState object — 一個包含回應碼和質押狀態的物件。
    • code string — 回應的狀態碼。
    • state StakeState — 質押的詳細狀態。

listStakes

列出所有質押記錄,可選用篩選條件。

參數

  • paging PageInput — 分頁設定。
  • addressFilter AddressFilterInput — 按傳送者或接收者地址篩選質押。
  • timeFilter TimeFilterInput — 按時間範圍篩選質押。
  • assetFilter AssetFilterInput — 按資產地址篩選質押。

傳回值

  • ResponseListStakes object — 一個包含分頁資訊和質押列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • stakes IndexedStakeState[] — 一個質押狀態物件的陣列。

getRollupState

檢索特定 rollup 的狀態。

參數

  • address string (required) — 要查詢的 rollup 地址。
  • height string — 查詢特定區塊高度的狀態。
  • keys string[] — 要檢索的特定欄位。

傳回值

  • ResponseGetRollupState object — 一個包含回應碼和 rollup 狀態的物件。
    • code string — 回應的狀態碼。
    • state RollupState — rollup 的詳細狀態。

listRollups

列出鏈上所有的 rollup。

參數

  • paging PageInput — 分頁設定。
  • tokenAddress string — 按代幣地址篩選 rollup。
  • foreignTokenAddress string — 按外部代幣地址篩選 rollup。
  • timeFilter TimeFilterInput — 按時間範圍篩選 rollup。

傳回值

  • ResponseListRollups object — 一個包含分頁資訊和 rollup 列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • rollups IndexedRollupState[] — 一個 rollup 狀態物件的陣列。

getRollupBlock

從 rollup 側鏈擷取特定區塊。

參數

  • hash string — rollup 區塊的雜湊值。
  • height string — rollup 區塊的高度。
  • rollupAddress string (required) — rollup 的地址。

傳回值

  • ResponseGetRollupBlock object — 一個包含回應碼和 rollup 區塊的物件。
    • code string — 回應的狀態碼。
    • block RollupBlock — rollup 區塊的詳細資訊。

listRollupBlocks

列出 rollup 側鏈的區塊。

參數

  • paging PageInput — 分頁設定。
  • rollupAddress string (required) — rollup 的地址。
  • tokenAddress string — 按代幣地址篩選。
  • proposer string — 按提案者地址篩選。
  • validatorFilter ValidatorFilterInput — 按驗證者篩選。
  • txFilter TxFilterInput — 按交易雜湊值篩選。
  • timeFilter TimeFilterInput — 按時間範圍篩選。

傳回值

  • ResponseListRollupBlocks object — 一個包含分頁資訊和 rollup 區塊列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • blocks IndexedRollupBlock[] — 一個 rollup 區塊物件的陣列。

listRollupValidators

列出特定 rollup 的驗證者。

參數

  • paging PageInput — 分頁設定。
  • rollupAddress string (required) — rollup 的地址。

傳回值

  • ResponseListRollupValidators object — 一個包含分頁資訊和 rollup 驗證者列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • validators IndexedRollupValidator[] — 一個 rollup 驗證者物件的陣列。

listDelegations

列出所有委託記錄。

參數

  • paging PageInput — 分頁設定。
  • from string — 按委託人地址篩選。
  • to string — 按受託人地址篩選。
  • timeFilter TimeFilterInput — 按時間範圍篩選。

傳回值

  • ResponseListDelegations object — 一個包含分頁資訊和委託列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • delegations IndexedDelegationState[] — 一個委託狀態物件的陣列。

對帳戶、資產或交易進行關鍵字搜尋。

參數

  • paging PageInput — 分頁設定。
  • keyword string (required) — 要搜尋的關鍵字。

傳回值

  • ResponseSearch object — 一個包含分頁資訊和搜尋結果的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • results SearchResult[] — 一個搜尋結果物件的陣列。

estimateGas

估算交易所需的 gas。

參數

  • typeUrl string (required) — 交易的類型 URL。
  • tx string (required) — 已編碼的交易字串。

傳回值

  • ResponseEstimateGas object — 一個包含回應碼和 gas 估算值的物件。
    • code string — 回應的狀態碼。
    • estimate GasEstimate — 估算的 gas。

listTokenFlows

追蹤帳戶之間的代幣流動。

參數

  • paging PageInput — 分頁設定。
  • accountAddress string (required) — 要追蹤的帳戶地址。
  • tokenAddress string — 要追蹤的代幣地址。
  • depth number — 追蹤的深度。
  • direction TokenFlowDirection — 流動的方向(IN 或 OUT)。

傳回值

  • ResponseListTokenFlows object — 一個包含分頁資訊和代幣流動資料的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • data IndexedTokenFlow[] — 一個代幣流動物件的陣列。

verifyAccountRisk

評估指定帳戶的風險狀況。

參數

  • accountAddress string (required) — 要驗證的帳戶地址。
  • tokenAddress string — 用於上下文的代幣地址。

傳回值

  • ResponseVerifyAccountRisk object — 一個包含回應碼和風險驗證結果的物件。
    • code string — 回應的狀態碼。
    • data VerifyAccountRiskResult — 風險驗證的結果。

getTokenDistribution

檢索指定代幣的分佈統計數據。

參數

  • tokenAddress string (required) — 代幣的地址。

傳回值

  • ResponseGetTokenDistribution object — 一個包含回應碼和代幣分佈資料的物件。
    • code string — 回應的狀態碼。
    • data TokenDistribution — 代幣分佈統計數據。

listTokenFactories

列出鏈上所有的代幣工廠。

參數

  • paging PageInput — 分頁設定。
  • tokenAddress string — 按代幣地址篩選。
  • reserveAddress string — 按儲備代幣地址篩選。
  • owner string — 按擁有者地址篩選。
  • timeFilter TimeFilterInput — 按時間範圍篩選。

傳回值

  • ResponseListTokenFactories object — 一個包含分頁資訊和代幣工廠列表的物件。
    • code string — 回應的狀態碼。
    • page PageInfo — 分頁資訊。
    • tokenFactories IndexedTokenFactoryState[] — 一個代幣工廠狀態物件的陣列。

變動方法

變動用於傳送會修改區塊鏈狀態的交易。

sendTx

將預先簽署的交易廣播到網路。這是所有寫入操作的基礎方法。關於建立和簽署交易,請參閱 高階 API交易生命週期 指南。

參數

  • tx string (required) — 已編碼的交易字串。
  • wallet object (required) — 用於簽署的錢包物件。
  • token string — 驗證權杖(如果需要)。
  • commit boolean (default: true) — 若為 true,則等待交易被提交到區塊中。
  • extra string — 要包含的額外資料。

傳回值

  • ResponseSendTx object — 一個包含回應碼和交易雜湊值的物件。
    • code string — 回應的狀態碼。
    • hash string — 已提交交易的雜湊值。

範例

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);
}