@ocap/client 1.25.4 → 1.25.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/report.html +1 -1
- package/docs/api-reference-client-methods.ja.md +229 -0
- package/docs/api-reference-client-methods.zh-TW.md +229 -0
- package/docs/api-reference-client-methods.zh.md +27 -27
- package/docs/api-reference-data-types.ja.md +482 -0
- package/docs/api-reference-data-types.zh-TW.md +482 -0
- package/docs/api-reference-data-types.zh.md +14 -14
- package/docs/api-reference-low-level-api.ja.md +228 -0
- package/docs/api-reference-low-level-api.zh-TW.md +228 -0
- package/docs/api-reference-low-level-api.zh.md +39 -39
- package/docs/api-reference-query-mutation-methods.ja.md +814 -0
- package/docs/api-reference-query-mutation-methods.zh-TW.md +814 -0
- package/docs/api-reference-query-mutation-methods.zh.md +158 -158
- package/docs/api-reference-transaction-helpers.ja.md +649 -0
- package/docs/api-reference-transaction-helpers.zh-TW.md +649 -0
- package/docs/api-reference-transaction-helpers.zh.md +112 -112
- package/docs/api-reference.ja.md +23 -0
- package/docs/api-reference.zh-TW.md +23 -0
- package/docs/api-reference.zh.md +6 -6
- package/docs/core-concepts-client-architecture.ja.md +102 -0
- package/docs/core-concepts-client-architecture.zh-TW.md +102 -0
- package/docs/core-concepts-client-architecture.zh.md +21 -21
- package/docs/core-concepts-event-subscriptions.ja.md +123 -0
- package/docs/core-concepts-event-subscriptions.zh-TW.md +123 -0
- package/docs/core-concepts-event-subscriptions.zh.md +22 -22
- package/docs/core-concepts-gas-payment.ja.md +111 -0
- package/docs/core-concepts-gas-payment.zh-TW.md +111 -0
- package/docs/core-concepts-gas-payment.zh.md +30 -30
- package/docs/core-concepts-transaction-lifecycle.ja.md +183 -0
- package/docs/core-concepts-transaction-lifecycle.zh-TW.md +183 -0
- package/docs/core-concepts-transaction-lifecycle.zh.md +51 -51
- package/docs/core-concepts.ja.md +22 -0
- package/docs/core-concepts.zh-TW.md +22 -0
- package/docs/core-concepts.zh.md +6 -6
- package/docs/getting-started-basic-usage.ja.md +87 -0
- package/docs/getting-started-basic-usage.zh-TW.md +87 -0
- package/docs/getting-started-basic-usage.zh.md +17 -17
- package/docs/getting-started-installation.ja.md +60 -0
- package/docs/getting-started-installation.zh-TW.md +60 -0
- package/docs/getting-started-installation.zh.md +14 -14
- package/docs/getting-started.ja.md +16 -0
- package/docs/getting-started.zh-TW.md +16 -0
- package/docs/getting-started.zh.md +6 -5
- package/docs/how-to-guides-delegate-permissions.ja.md +167 -0
- package/docs/how-to-guides-delegate-permissions.zh-TW.md +167 -0
- package/docs/how-to-guides-delegate-permissions.zh.md +27 -28
- package/docs/how-to-guides-manage-accounts.ja.md +73 -0
- package/docs/how-to-guides-manage-accounts.zh-TW.md +73 -0
- package/docs/how-to-guides-manage-accounts.zh.md +14 -14
- package/docs/how-to-guides-manage-assets.ja.md +255 -0
- package/docs/how-to-guides-manage-assets.zh-TW.md +255 -0
- package/docs/how-to-guides-manage-assets.zh.md +60 -60
- package/docs/how-to-guides-manage-tokens.ja.md +179 -0
- package/docs/how-to-guides-manage-tokens.zh-TW.md +179 -0
- package/docs/how-to-guides-manage-tokens.zh.md +52 -52
- package/docs/how-to-guides-stake-tokens-and-assets.ja.md +205 -0
- package/docs/how-to-guides-stake-tokens-and-assets.zh-TW.md +205 -0
- package/docs/how-to-guides-stake-tokens-and-assets.zh.md +44 -44
- package/docs/how-to-guides-transfer-tokens-and-nfts.ja.md +179 -0
- package/docs/how-to-guides-transfer-tokens-and-nfts.zh-TW.md +179 -0
- package/docs/how-to-guides-transfer-tokens-and-nfts.zh.md +47 -47
- package/docs/how-to-guides.ja.md +27 -0
- package/docs/how-to-guides.zh-TW.md +27 -0
- package/docs/how-to-guides.zh.md +11 -11
- package/docs/overview.ja.md +70 -0
- package/docs/overview.zh-TW.md +70 -0
- package/docs/overview.zh.md +8 -8
- package/package.json +14 -14
package/dist/report.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8"/>
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
6
|
-
<title>@ocap/client [
|
|
6
|
+
<title>@ocap/client [29 Sep 2025 at 22:24]</title>
|
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
|
8
8
|
|
|
9
9
|
<script>
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# ヘルパーメソッド
|
|
2
|
+
|
|
3
|
+
`GraphQLClient`クラスは、OCAPを利用したブロックチェーンと対話するための主要なインターフェースです。チェーンの状態をクエリし、トランザクションを送信し、リアルタイムイベントをサブスクライブするための包括的なメソッドセットを提供します。Node.jsとブラウザの両方の環境でシームレスに動作するように設計されています。
|
|
4
|
+
|
|
5
|
+
```javascript Client Initialization icon=logos:javascript
|
|
6
|
+
const GraphQLClient = require('@ocap/client');
|
|
7
|
+
|
|
8
|
+
// Connect to the Beta chain
|
|
9
|
+
const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
10
|
+
|
|
11
|
+
(async () => {
|
|
12
|
+
const res = await client.getChainInfo();
|
|
13
|
+
console.log('Connected to chain:', res.info.network);
|
|
14
|
+
})();
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
このセクションでは、`GraphQLClient`クラスのコアヘルパーメソッドについて詳しく説明します。
|
|
18
|
+
|
|
19
|
+
## コンストラクタ
|
|
20
|
+
|
|
21
|
+
### new GraphQLClient(endpoint, autoInit)
|
|
22
|
+
|
|
23
|
+
`GraphQLClient`の新しいインスタンスを作成します。
|
|
24
|
+
|
|
25
|
+
**パラメータ**
|
|
26
|
+
|
|
27
|
+
<x-field-group>
|
|
28
|
+
<x-field data-name="endpoint" data-type="string" data-required="true">
|
|
29
|
+
<x-field-desc markdown>ブロックチェーンノードのGraphQLエンドポイントの絶対URL(例:`https://beta.abtnetwork.io/api`)。</x-field-desc>
|
|
30
|
+
</x-field>
|
|
31
|
+
<x-field data-name="autoInit" data-type="boolean" data-default="true" data-required="false">
|
|
32
|
+
<x-field-desc markdown>`true`の場合、クライアントは初期化時に重要なチェーン情報(「コンテキスト」)を自動的に取得してキャッシュします。これはほとんどのユースケースで推奨されます。</x-field-desc>
|
|
33
|
+
</x-field>
|
|
34
|
+
</x-field-group>
|
|
35
|
+
|
|
36
|
+
**例**
|
|
37
|
+
|
|
38
|
+
```javascript Creating a Client Instance icon=logos:javascript
|
|
39
|
+
const client = new GraphQLClient('https://beta.abtnetwork.io/api', true);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## コアメソッド
|
|
45
|
+
|
|
46
|
+
これらのメソッドは、クライアントおよびチェーンと対話するための基本的な機能を提供します。
|
|
47
|
+
|
|
48
|
+
### getContext()
|
|
49
|
+
|
|
50
|
+
チェーンID、ネイティブトークンの詳細、トランザクション手数料の設定など、重要なチェーン情報を取得してキャッシュします。このメソッドは、コンストラクタで`autoInit`が有効になっている場合に自動的に呼び出されます。その後の呼び出しでは、キャッシュされたコンテキストが返されます。
|
|
51
|
+
|
|
52
|
+
**戻り値**
|
|
53
|
+
|
|
54
|
+
<x-field data-name="Promise<object>" data-type="object" data-desc="チェーンメタデータを含むコンテキストオブジェクトに解決されるPromise。">
|
|
55
|
+
<x-field data-name="chainId" data-type="string" data-desc="ブロックチェーンネットワークの一意の識別子。"></x-field>
|
|
56
|
+
<x-field data-name="consensus" data-type="string" data-desc="コンセンサスエンジンのバージョン。"></x-field>
|
|
57
|
+
<x-field data-name="token" data-type="object" data-desc="ネイティブトークンに関する情報。">
|
|
58
|
+
<x-field data-name="address" data-type="string" data-desc="ネイティブトークンコントラクトのアドレス。"></x-field>
|
|
59
|
+
<x-field data-name="decimal" data-type="number" data-desc="ネイティブトークンの小数点以下の桁数。"></x-field>
|
|
60
|
+
<x-field data-name="symbol" data-type="string" data-desc="ネイティブトークンのシンボル(例:TBA)。"></x-field>
|
|
61
|
+
</x-field>
|
|
62
|
+
<x-field data-name="txConfig" data-type="object" data-desc="トランザクション手数料とガスの設定。"></x-field>
|
|
63
|
+
</x-field>
|
|
64
|
+
|
|
65
|
+
**例**
|
|
66
|
+
|
|
67
|
+
```javascript Fetching Chain Context icon=logos:javascript
|
|
68
|
+
async function logChainToken() {
|
|
69
|
+
const context = await client.getContext();
|
|
70
|
+
console.log(`Native Token Symbol: ${context.token.symbol}`);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
logChainToken();
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### setGasPayer(wallet)
|
|
77
|
+
|
|
78
|
+
ウォレットを「ガス支払者」として機能するように設定します。設定されると、このウォレットはこのクライアントインスタンスを介して送信されるトランザクションのトランザクション手数料を負担し、ユーザーにガスレスな体験を提供します。詳細については、[ガス支払い](./core-concepts-gas-payment.md)のコンセプトガイドを参照してください。
|
|
79
|
+
|
|
80
|
+
**パラメータ**
|
|
81
|
+
|
|
82
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true">
|
|
83
|
+
<x-field-desc markdown>`address`、`publicKey`、`secretKey`プロパティを持ち、`sign`メソッドを備えたウォレットオブジェクト。</x-field-desc>
|
|
84
|
+
</x-field>
|
|
85
|
+
|
|
86
|
+
### decodeTx(input)
|
|
87
|
+
|
|
88
|
+
さまざまな形式のトランザクションを、人間が読めるJavaScriptオブジェクトに逆シリアル化します。
|
|
89
|
+
|
|
90
|
+
**パラメータ**
|
|
91
|
+
|
|
92
|
+
<x-field data-name="input" data-type="Buffer | string" data-required="true">
|
|
93
|
+
<x-field-desc markdown>デコードするトランザクションデータ。`Buffer`または`hex`、`base58`、`base64`形式の文字列です。</x-field-desc>
|
|
94
|
+
</x-field>
|
|
95
|
+
|
|
96
|
+
**戻り値**
|
|
97
|
+
|
|
98
|
+
<x-field data-name="object" data-type="object" data-desc="デコードされたトランザクションオブジェクト。"></x-field>
|
|
99
|
+
|
|
100
|
+
### getType(name)
|
|
101
|
+
|
|
102
|
+
指定された型名のProtobufメッセージクラスを取得します。これは、Protobufメッセージを手動で構築または検査する必要がある高度なシナリオで役立ちます。
|
|
103
|
+
|
|
104
|
+
**パラメータ**
|
|
105
|
+
|
|
106
|
+
<x-field data-name="name" data-type="string" data-required="true" data-desc="Protobufメッセージタイプの名前(例:'Transaction'、'TransferTx')。"></x-field>
|
|
107
|
+
|
|
108
|
+
**戻り値**
|
|
109
|
+
|
|
110
|
+
<x-field data-name="class | null" data-type="object" data-desc="メッセージクラスのコンストラクタ。見つからない場合はnull。"></x-field>
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## イベントサブスクリプション
|
|
115
|
+
|
|
116
|
+
クライアントはWebSocketを介したリアルタイムのイベントサブスクリプションをサポートしており、アプリケーションがオンチェーンイベントに即座に反応できるようにします。
|
|
117
|
+
|
|
118
|
+
### subscribe(topic, callback)
|
|
119
|
+
|
|
120
|
+
WebSocket接続を確立し、特定のイベントトピックをサブスクライブします。
|
|
121
|
+
|
|
122
|
+
**パラメータ**
|
|
123
|
+
|
|
124
|
+
<x-field-group>
|
|
125
|
+
<x-field data-name="topic" data-type="string" data-required="true" data-desc="サブスクライブするイベントトピック(例:'newBlock'、'tx:transfer')。"></x-field>
|
|
126
|
+
<x-field data-name="callback" data-type="function" data-required="true" data-desc="イベントが受信されたときに実行される関数。唯一の引数としてイベントペイロードを受け取ります。"></x-field>
|
|
127
|
+
</x-field-group>
|
|
128
|
+
|
|
129
|
+
### unsubscribe(topic, callback)
|
|
130
|
+
|
|
131
|
+
特定のトピックに対して以前に登録されたコールバックを削除します。
|
|
132
|
+
|
|
133
|
+
**パラメータ**
|
|
134
|
+
|
|
135
|
+
<x-field-group>
|
|
136
|
+
<x-field data-name="topic" data-type="string" data-required="true" data-desc="サブスクライブを解除するイベントトピック。"></x-field>
|
|
137
|
+
<x-field data-name="callback" data-type="function" data-required="true" data-desc="削除する特定のコールバック関数。"></x-field>
|
|
138
|
+
</x-field-group>
|
|
139
|
+
|
|
140
|
+
**例**
|
|
141
|
+
|
|
142
|
+
```javascript Subscribing to New Blocks icon=logos:javascript
|
|
143
|
+
const handleNewBlock = (block) => {
|
|
144
|
+
console.log(`New block received! Height: ${block.height}`);
|
|
145
|
+
|
|
146
|
+
// 1つのブロックを受け取った後にサブスクリプションを解除
|
|
147
|
+
client.unsubscribe('newBlock', handleNewBlock);
|
|
148
|
+
console.log('Unsubscribed from newBlock events.');
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
client.subscribe('newBlock', handleNewBlock);
|
|
152
|
+
console.log('Subscribed to newBlock events...');
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## トークンユーティリティメソッド
|
|
158
|
+
|
|
159
|
+
これらのヘルパーは、人間が読めるトークン量とオンチェーンの基本単位表現との間の変換を簡素化します。
|
|
160
|
+
|
|
161
|
+
### fromUnitToToken(value)
|
|
162
|
+
|
|
163
|
+
ネイティブトークンの小数点以下の桁数に基づいて、チェーンの基本単位(大きな整数文字列)の値を標準の10進数文字列に変換します。
|
|
164
|
+
|
|
165
|
+
**パラメータ**
|
|
166
|
+
|
|
167
|
+
<x-field data-name="value" data-type="string" data-required="true" data-desc="チェーンの基本単位での量。"></x-field>
|
|
168
|
+
|
|
169
|
+
**戻り値**
|
|
170
|
+
|
|
171
|
+
<x-field data-name="string" data-type="string" data-desc="標準トークン単位での量。"></x-field>
|
|
172
|
+
|
|
173
|
+
### fromTokenToUnit(amount)
|
|
174
|
+
|
|
175
|
+
標準の10進数量をチェーンの基本単位表現(BN.jsインスタンス)に変換します。
|
|
176
|
+
|
|
177
|
+
**パラメータ**
|
|
178
|
+
|
|
179
|
+
<x-field data-name="amount" data-type="number | string" data-required="true" data-desc="標準の10進数形式でのトークン量。"></x-field>
|
|
180
|
+
|
|
181
|
+
**戻り値**
|
|
182
|
+
|
|
183
|
+
<x-field data-name="BN" data-type="object" data-desc="チェーンの基本単位での値を表すBN.jsインスタンス。"></x-field>
|
|
184
|
+
|
|
185
|
+
**例**
|
|
186
|
+
|
|
187
|
+
```javascript Token Amount Conversion icon=logos:javascript
|
|
188
|
+
async function convertToken() {
|
|
189
|
+
// 100 TBAをその基本単位に変換
|
|
190
|
+
const unitAmount = await client.fromTokenToUnit(100);
|
|
191
|
+
console.log(`100 TBA is ${unitAmount.toString()} in base units.`);
|
|
192
|
+
|
|
193
|
+
// 元に戻す
|
|
194
|
+
const tokenAmount = await client.fromUnitToToken(unitAmount.toString());
|
|
195
|
+
console.log(`${unitAmount.toString()} base units is ${tokenAmount} TBA.`);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
convertToken();
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## メソッドディスカバリー
|
|
204
|
+
|
|
205
|
+
クライアントは、接続されたOCAPノードでサポートされているすべてのトランザクションタイプに対してメソッドを動的に生成します。これらのディスカバリーメソッドを使用すると、利用可能なすべてのトランザクション関連関数をプログラムで一覧表示できます。
|
|
206
|
+
|
|
207
|
+
### getTxSendMethods()
|
|
208
|
+
|
|
209
|
+
利用可能なすべての`send...Tx`メソッド名の配列を返します。これらのメソッドは、トランザクションの署名と送信の完全なライフサイクルを処理します。
|
|
210
|
+
|
|
211
|
+
### getTxEncodeMethods()
|
|
212
|
+
|
|
213
|
+
利用可能なすべての`encode...Tx`メソッド名の配列を返します。これらのメソッドは、トランザクションをバッファに準備およびシリアル化しますが、署名はしません。
|
|
214
|
+
|
|
215
|
+
### getTxSignMethods()
|
|
216
|
+
|
|
217
|
+
利用可能なすべての`sign...Tx`メソッド名の配列を返します。これらのメソッドは、トランザクションをエンコードしてから署名し、署名済みのトランザクションオブジェクトを返します。
|
|
218
|
+
|
|
219
|
+
### getTxMultiSignMethods()
|
|
220
|
+
|
|
221
|
+
マルチシグネチャワークフローで使用される、利用可能なすべての`multiSign...Tx`メソッド名の配列を返します。
|
|
222
|
+
|
|
223
|
+
**例**
|
|
224
|
+
|
|
225
|
+
```javascript Listing Available Transaction Methods icon=logos:javascript
|
|
226
|
+
const sendMethods = client.getTxSendMethods();
|
|
227
|
+
console.log('Available send methods:', sendMethods);
|
|
228
|
+
// 出力例: [ 'sendPokeTx', 'sendTransferTx', ... ]
|
|
229
|
+
```
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# 輔助方法
|
|
2
|
+
|
|
3
|
+
`GraphQLClient` 類別是與 OCAP 驅動的區塊鏈互動的主要介面。它提供了一套全面的方法,用於查詢鏈狀態、發送交易以及訂閱即時事件。它被設計為在 Node.js 和瀏覽器環境中都能無縫運作。
|
|
4
|
+
|
|
5
|
+
```javascript Client Initialization icon=logos:javascript
|
|
6
|
+
const GraphQLClient = require('@ocap/client');
|
|
7
|
+
|
|
8
|
+
// Connect to the Beta chain
|
|
9
|
+
const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
10
|
+
|
|
11
|
+
(async () => {
|
|
12
|
+
const res = await client.getChainInfo();
|
|
13
|
+
console.log('Connected to chain:', res.info.network);
|
|
14
|
+
})();
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
本節為 `GraphQLClient` 類別的核心輔助方法提供了詳細的參考。
|
|
18
|
+
|
|
19
|
+
## 建構函式
|
|
20
|
+
|
|
21
|
+
### new GraphQLClient(endpoint, autoInit)
|
|
22
|
+
|
|
23
|
+
建立一個新的 `GraphQLClient` 實例。
|
|
24
|
+
|
|
25
|
+
**參數**
|
|
26
|
+
|
|
27
|
+
<x-field-group>
|
|
28
|
+
<x-field data-name="endpoint" data-type="string" data-required="true">
|
|
29
|
+
<x-field-desc markdown>區塊鏈節點的 GraphQL 端點的絕對 URL(例如:`https://beta.abtnetwork.io/api`)。</x-field-desc>
|
|
30
|
+
</x-field>
|
|
31
|
+
<x-field data-name="autoInit" data-type="boolean" data-default="true" data-required="false">
|
|
32
|
+
<x-field-desc markdown>若為 `true`,客戶端將在初始化時自動獲取並快取必要的鏈資訊(「上下文」)。建議在大多數使用場景下使用。</x-field-desc>
|
|
33
|
+
</x-field>
|
|
34
|
+
</x-field-group>
|
|
35
|
+
|
|
36
|
+
**範例**
|
|
37
|
+
|
|
38
|
+
```javascript Creating a Client Instance icon=logos:javascript
|
|
39
|
+
const client = new GraphQLClient('https://beta.abtnetwork.io/api', true);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 核心方法
|
|
45
|
+
|
|
46
|
+
這些方法提供了與客戶端和鏈互動的基本功能。
|
|
47
|
+
|
|
48
|
+
### getContext()
|
|
49
|
+
|
|
50
|
+
獲取並快取必要的鏈資訊,例如鏈 ID、原生代幣詳細資訊和交易費用配置。如果在建構函式中啟用了 `autoInit`,則會自動呼叫此方法。後續的呼叫將返回快取的上下文。
|
|
51
|
+
|
|
52
|
+
**傳回值**
|
|
53
|
+
|
|
54
|
+
<x-field data-name="Promise<object>" data-type="object" data-desc="一個解析為包含鏈元資料的上下文物件的 Promise。">
|
|
55
|
+
<x-field data-name="chainId" data-type="string" data-desc="區塊鏈網路的唯一識別碼。"></x-field>
|
|
56
|
+
<x-field data-name="consensus" data-type="string" data-desc="共識引擎版本。"></x-field>
|
|
57
|
+
<x-field data-name="token" data-type="object" data-desc="有關原生代幣的資訊。">
|
|
58
|
+
<x-field data-name="address" data-type="string" data-desc="原生代幣合約的地址。"></x-field>
|
|
59
|
+
<x-field data-name="decimal" data-type="number" data-desc="原生代幣的小數位數。"></x-field>
|
|
60
|
+
<x-field data-name="symbol" data-type="string" data-desc="原生代幣的符號(例如:TBA)。"></x-field>
|
|
61
|
+
</x-field>
|
|
62
|
+
<x-field data-name="txConfig" data-type="object" data-desc="交易費用和 gas 配置。"></x-field>
|
|
63
|
+
</x-field>
|
|
64
|
+
|
|
65
|
+
**範例**
|
|
66
|
+
|
|
67
|
+
```javascript Fetching Chain Context icon=logos:javascript
|
|
68
|
+
async function logChainToken() {
|
|
69
|
+
const context = await client.getContext();
|
|
70
|
+
console.log(`Native Token Symbol: ${context.token.symbol}`);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
logChainToken();
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### setGasPayer(wallet)
|
|
77
|
+
|
|
78
|
+
設定一個錢包作為「gas 支付者」。設定後,此錢包將為透過此客戶端實例發送的交易支付交易費用,為使用者提供無 gas 體驗。更多詳細資訊,請參閱 [Gas 支付](./core-concepts-gas-payment.md) 概念指南。
|
|
79
|
+
|
|
80
|
+
**參數**
|
|
81
|
+
|
|
82
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true">
|
|
83
|
+
<x-field-desc markdown>一個錢包物件,具有 `address`、`publicKey` 和 `secretKey` 屬性,並配備一個 `sign` 方法。</x-field-desc>
|
|
84
|
+
</x-field>
|
|
85
|
+
|
|
86
|
+
### decodeTx(input)
|
|
87
|
+
|
|
88
|
+
將交易從各種格式反序列化為人類可讀的 JavaScript 物件。
|
|
89
|
+
|
|
90
|
+
**參數**
|
|
91
|
+
|
|
92
|
+
<x-field data-name="input" data-type="Buffer | string" data-required="true">
|
|
93
|
+
<x-field-desc markdown>要解碼的交易資料。可以是 `Buffer` 或 `hex`、`base58` 或 `base64` 格式的字串。</x-field-desc>
|
|
94
|
+
</x-field>
|
|
95
|
+
|
|
96
|
+
**傳回值**
|
|
97
|
+
|
|
98
|
+
<x-field data-name="object" data-type="object" data-desc="已解碼的交易物件。"></x-field>
|
|
99
|
+
|
|
100
|
+
### getType(name)
|
|
101
|
+
|
|
102
|
+
根據給定的類型名稱檢索 Protobuf 訊息類別。這對於需要手動建構或檢查 Protobuf 訊息的進階場景非常有用。
|
|
103
|
+
|
|
104
|
+
**參數**
|
|
105
|
+
|
|
106
|
+
<x-field data-name="name" data-type="string" data-required="true" data-desc="Protobuf 訊息類型的名稱(例如:'Transaction', 'TransferTx')。"></x-field>
|
|
107
|
+
|
|
108
|
+
**傳回值**
|
|
109
|
+
|
|
110
|
+
<x-field data-name="class | null" data-type="object" data-desc="訊息類別的建構函式,如果找不到則為 null。"></x-field>
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 事件訂閱
|
|
115
|
+
|
|
116
|
+
客戶端支援透過 WebSocket 進行即時事件訂閱,讓您的應用程式能夠即時回應鏈上事件。
|
|
117
|
+
|
|
118
|
+
### subscribe(topic, callback)
|
|
119
|
+
|
|
120
|
+
建立一個 WebSocket 連接並訂閱特定的事件主題。
|
|
121
|
+
|
|
122
|
+
**參數**
|
|
123
|
+
|
|
124
|
+
<x-field-group>
|
|
125
|
+
<x-field data-name="topic" data-type="string" data-required="true" data-desc="要訂閱的事件主題(例如:'newBlock', 'tx:transfer')。"></x-field>
|
|
126
|
+
<x-field data-name="callback" data-type="function" data-required="true" data-desc="接收到事件時要執行的函式。它會接收事件的有效負載作為其唯一參數。"></x-field>
|
|
127
|
+
</x-field-group>
|
|
128
|
+
|
|
129
|
+
### unsubscribe(topic, callback)
|
|
130
|
+
|
|
131
|
+
移除先前為特定主題註冊的回呼函式。
|
|
132
|
+
|
|
133
|
+
**參數**
|
|
134
|
+
|
|
135
|
+
<x-field-group>
|
|
136
|
+
<x-field data-name="topic" data-type="string" data-required="true" data-desc="要取消訂閱的事件主題。"></x-field>
|
|
137
|
+
<x-field data-name="callback" data-type="function" data-required="true" data-desc="要移除的特定回呼函式。"></x-field>
|
|
138
|
+
</x-field-group>
|
|
139
|
+
|
|
140
|
+
**範例**
|
|
141
|
+
|
|
142
|
+
```javascript Subscribing to New Blocks icon=logos:javascript
|
|
143
|
+
const handleNewBlock = (block) => {
|
|
144
|
+
console.log(`New block received! Height: ${block.height}`);
|
|
145
|
+
|
|
146
|
+
// Unsubscribe after receiving one block
|
|
147
|
+
client.unsubscribe('newBlock', handleNewBlock);
|
|
148
|
+
console.log('Unsubscribed from newBlock events.');
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
client.subscribe('newBlock', handleNewBlock);
|
|
152
|
+
console.log('Subscribed to newBlock events...');
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 代幣工具方法
|
|
158
|
+
|
|
159
|
+
這些輔助方法簡化了人類可讀的代幣數量與鏈上基本單位表示之間的轉換。
|
|
160
|
+
|
|
161
|
+
### fromUnitToToken(value)
|
|
162
|
+
|
|
163
|
+
根據原生代幣的小數位數,將一個值從鏈的基本單位(一個大整數字串)轉換為標準的十進位字串。
|
|
164
|
+
|
|
165
|
+
**參數**
|
|
166
|
+
|
|
167
|
+
<x-field data-name="value" data-type="string" data-required="true" data-desc="以鏈的基本單位表示的數量。"></x-field>
|
|
168
|
+
|
|
169
|
+
**傳回值**
|
|
170
|
+
|
|
171
|
+
<x-field data-name="string" data-type="string" data-desc="以標準代幣單位表示的數量。"></x-field>
|
|
172
|
+
|
|
173
|
+
### fromTokenToUnit(amount)
|
|
174
|
+
|
|
175
|
+
將一個標準的十進位數量轉換為鏈的基本單位表示(一個 BN.js 實例)。
|
|
176
|
+
|
|
177
|
+
**參數**
|
|
178
|
+
|
|
179
|
+
<x-field data-name="amount" data-type="number | string" data-required="true" data-desc="以其標準十進位形式表示的代幣數量。"></x-field>
|
|
180
|
+
|
|
181
|
+
**傳回值**
|
|
182
|
+
|
|
183
|
+
<x-field data-name="BN" data-type="object" data-desc="一個代表鏈基本單位中數值的 BN.js 實例。"></x-field>
|
|
184
|
+
|
|
185
|
+
**範例**
|
|
186
|
+
|
|
187
|
+
```javascript Token Amount Conversion icon=logos:javascript
|
|
188
|
+
async function convertToken() {
|
|
189
|
+
// Convert 100 TBA to its base unit
|
|
190
|
+
const unitAmount = await client.fromTokenToUnit(100);
|
|
191
|
+
console.log(`100 TBA is ${unitAmount.toString()} in base units.`);
|
|
192
|
+
|
|
193
|
+
// Convert it back
|
|
194
|
+
const tokenAmount = await client.fromUnitToToken(unitAmount.toString());
|
|
195
|
+
console.log(`${unitAmount.toString()} base units is ${tokenAmount} TBA.`);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
convertToken();
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 方法探索
|
|
204
|
+
|
|
205
|
+
客戶端會為所連接的 OCAP 節點支援的每種交易類型動態產生方法。這些探索方法讓您能夠以程式化的方式列出所有可用的交易相關函式。
|
|
206
|
+
|
|
207
|
+
### getTxSendMethods()
|
|
208
|
+
|
|
209
|
+
傳回所有可用的 `send...Tx` 方法名稱陣列。這些方法處理簽署和發送交易的完整生命週期。
|
|
210
|
+
|
|
211
|
+
### getTxEncodeMethods()
|
|
212
|
+
|
|
213
|
+
傳回所有可用的 `encode...Tx` 方法名稱陣列。這些方法準備並將交易序列化為緩衝區,但不會簽署它。
|
|
214
|
+
|
|
215
|
+
### getTxSignMethods()
|
|
216
|
+
|
|
217
|
+
傳回所有可用的 `sign...Tx` 方法名稱陣列。這些方法會編碼然後簽署交易,並傳回已簽署的交易物件。
|
|
218
|
+
|
|
219
|
+
### getTxMultiSignMethods()
|
|
220
|
+
|
|
221
|
+
傳回所有可用的 `multiSign...Tx` 方法名稱陣列,用於多重簽名工作流程。
|
|
222
|
+
|
|
223
|
+
**範例**
|
|
224
|
+
|
|
225
|
+
```javascript Listing Available Transaction Methods icon=logos:javascript
|
|
226
|
+
const sendMethods = client.getTxSendMethods();
|
|
227
|
+
console.log('Available send methods:', sendMethods);
|
|
228
|
+
// 範例輸出:[ 'sendPokeTx', 'sendTransferTx', ... ]
|
|
229
|
+
```
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# 辅助方法
|
|
2
2
|
|
|
3
|
-
`GraphQLClient`
|
|
3
|
+
`GraphQLClient` 类是与由 OCAP 驱动的区块链进行交互的主要接口。它提供了一套全面的方法,用于查询链状态、发送交易以及订阅实时事件。它被设计为可以在 Node.js 和浏览器环境中无缝工作。
|
|
4
4
|
|
|
5
|
-
```javascript
|
|
5
|
+
```javascript Client Initialization icon=logos:javascript
|
|
6
6
|
const GraphQLClient = require('@ocap/client');
|
|
7
7
|
|
|
8
8
|
// 连接到 Beta 链
|
|
@@ -14,7 +14,7 @@ const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
|
14
14
|
})();
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
本节提供了 `GraphQLClient` 类的核心辅助方法的详细参考。
|
|
18
18
|
|
|
19
19
|
## 构造函数
|
|
20
20
|
|
|
@@ -29,13 +29,13 @@ const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
|
29
29
|
<x-field-desc markdown>区块链节点的 GraphQL 端点的绝对 URL(例如,`https://beta.abtnetwork.io/api`)。</x-field-desc>
|
|
30
30
|
</x-field>
|
|
31
31
|
<x-field data-name="autoInit" data-type="boolean" data-default="true" data-required="false">
|
|
32
|
-
<x-field-desc markdown>如果为 `true
|
|
32
|
+
<x-field-desc markdown>如果为 `true`,客户端将在初始化时自动获取并缓存关键的链信息(即“上下文”)。对于大多数用例,推荐使用此设置。</x-field-desc>
|
|
33
33
|
</x-field>
|
|
34
34
|
</x-field-group>
|
|
35
35
|
|
|
36
36
|
**示例**
|
|
37
37
|
|
|
38
|
-
```javascript
|
|
38
|
+
```javascript Creating a Client Instance icon=logos:javascript
|
|
39
39
|
const client = new GraphQLClient('https://beta.abtnetwork.io/api', true);
|
|
40
40
|
```
|
|
41
41
|
|
|
@@ -43,15 +43,15 @@ const client = new GraphQLClient('https://beta.abtnetwork.io/api', true);
|
|
|
43
43
|
|
|
44
44
|
## 核心方法
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
这些方法提供了与客户端和链进行交互的基础功能。
|
|
47
47
|
|
|
48
48
|
### getContext()
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
获取并缓存关键的链信息,例如链 ID、原生代币详情和交易费配置。如果在构造函数中启用了 `autoInit`,此方法会自动调用。后续调用将返回缓存的上下文。
|
|
51
51
|
|
|
52
52
|
**返回**
|
|
53
53
|
|
|
54
|
-
<x-field data-name="Promise<object>" data-type="object" data-desc="一个解析为包含链元数据的上下文对象的
|
|
54
|
+
<x-field data-name="Promise<object>" data-type="object" data-desc="一个解析为包含链元数据的上下文对象的 Promise。">
|
|
55
55
|
<x-field data-name="chainId" data-type="string" data-desc="区块链网络的唯一标识符。"></x-field>
|
|
56
56
|
<x-field data-name="consensus" data-type="string" data-desc="共识引擎版本。"></x-field>
|
|
57
57
|
<x-field data-name="token" data-type="object" data-desc="关于原生代币的信息。">
|
|
@@ -59,15 +59,15 @@ const client = new GraphQLClient('https://beta.abtnetwork.io/api', true);
|
|
|
59
59
|
<x-field data-name="decimal" data-type="number" data-desc="原生代币的小数位数。"></x-field>
|
|
60
60
|
<x-field data-name="symbol" data-type="string" data-desc="原生代币的符号(例如,TBA)。"></x-field>
|
|
61
61
|
</x-field>
|
|
62
|
-
<x-field data-name="txConfig" data-type="object" data-desc="
|
|
62
|
+
<x-field data-name="txConfig" data-type="object" data-desc="交易费和 gas 配置。"></x-field>
|
|
63
63
|
</x-field>
|
|
64
64
|
|
|
65
65
|
**示例**
|
|
66
66
|
|
|
67
|
-
```javascript
|
|
67
|
+
```javascript Fetching Chain Context icon=logos:javascript
|
|
68
68
|
async function logChainToken() {
|
|
69
69
|
const context = await client.getContext();
|
|
70
|
-
console.log(
|
|
70
|
+
console.log(`原生代币符号: ${context.token.symbol}`);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
logChainToken();
|
|
@@ -75,12 +75,12 @@ logChainToken();
|
|
|
75
75
|
|
|
76
76
|
### setGasPayer(wallet)
|
|
77
77
|
|
|
78
|
-
配置一个钱包作为“gas
|
|
78
|
+
配置一个钱包作为“gas 支付方”。设置后,该钱包将为通过此客户端实例发送的交易赞助交易费,从而为用户实现无 gas 体验。更多详情,请参阅 [Gas 支付](./core-concepts-gas-payment.md) 概念指南。
|
|
79
79
|
|
|
80
80
|
**参数**
|
|
81
81
|
|
|
82
82
|
<x-field data-name="wallet" data-type="WalletObject" data-required="true">
|
|
83
|
-
<x-field-desc markdown
|
|
83
|
+
<x-field-desc markdown>一个钱包对象,包含 `address`、`publicKey` 和 `secretKey` 属性,并配备了一个 `sign` 方法。</x-field-desc>
|
|
84
84
|
</x-field>
|
|
85
85
|
|
|
86
86
|
### decodeTx(input)
|
|
@@ -90,7 +90,7 @@ logChainToken();
|
|
|
90
90
|
**参数**
|
|
91
91
|
|
|
92
92
|
<x-field data-name="input" data-type="Buffer | string" data-required="true">
|
|
93
|
-
<x-field-desc markdown>要解码的交易数据。可以是 `Buffer
|
|
93
|
+
<x-field-desc markdown>要解码的交易数据。可以是 `Buffer`,也可以是 `hex`、`base58` 或 `base64` 格式的字符串。</x-field-desc>
|
|
94
94
|
</x-field>
|
|
95
95
|
|
|
96
96
|
**返回**
|
|
@@ -99,7 +99,7 @@ logChainToken();
|
|
|
99
99
|
|
|
100
100
|
### getType(name)
|
|
101
101
|
|
|
102
|
-
根据给定的类型名称检索 Protobuf
|
|
102
|
+
根据给定的类型名称检索 Protobuf 消息类。这对于需要手动构建或检查 Protobuf 消息的高级场景非常有用。
|
|
103
103
|
|
|
104
104
|
**参数**
|
|
105
105
|
|
|
@@ -117,13 +117,13 @@ logChainToken();
|
|
|
117
117
|
|
|
118
118
|
### subscribe(topic, callback)
|
|
119
119
|
|
|
120
|
-
建立一个 WebSocket
|
|
120
|
+
建立一个 WebSocket 连接并订阅一个特定的事件主题。
|
|
121
121
|
|
|
122
122
|
**参数**
|
|
123
123
|
|
|
124
124
|
<x-field-group>
|
|
125
125
|
<x-field data-name="topic" data-type="string" data-required="true" data-desc="要订阅的事件主题(例如,'newBlock'、'tx:transfer')。"></x-field>
|
|
126
|
-
<x-field data-name="callback" data-type="function" data-required="true" data-desc="
|
|
126
|
+
<x-field data-name="callback" data-type="function" data-required="true" data-desc="当接收到事件时执行的函数。它接收事件负载作为其唯一参数。"></x-field>
|
|
127
127
|
</x-field-group>
|
|
128
128
|
|
|
129
129
|
### unsubscribe(topic, callback)
|
|
@@ -139,11 +139,11 @@ logChainToken();
|
|
|
139
139
|
|
|
140
140
|
**示例**
|
|
141
141
|
|
|
142
|
-
```javascript
|
|
142
|
+
```javascript Subscribing to New Blocks icon=logos:javascript
|
|
143
143
|
const handleNewBlock = (block) => {
|
|
144
|
-
console.log(
|
|
144
|
+
console.log(`接收到新区块!高度: ${block.height}`);
|
|
145
145
|
|
|
146
|
-
//
|
|
146
|
+
// 接收到一个区块后取消订阅
|
|
147
147
|
client.unsubscribe('newBlock', handleNewBlock);
|
|
148
148
|
console.log('已取消订阅 newBlock 事件。');
|
|
149
149
|
};
|
|
@@ -156,7 +156,7 @@ console.log('已订阅 newBlock 事件...');
|
|
|
156
156
|
|
|
157
157
|
## 代币工具方法
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
这些辅助方法简化了人类可读的代币数量与链上基本单位表示之间的转换。
|
|
160
160
|
|
|
161
161
|
### fromUnitToToken(value)
|
|
162
162
|
|
|
@@ -184,13 +184,13 @@ console.log('已订阅 newBlock 事件...');
|
|
|
184
184
|
|
|
185
185
|
**示例**
|
|
186
186
|
|
|
187
|
-
```javascript
|
|
187
|
+
```javascript Token Amount Conversion icon=logos:javascript
|
|
188
188
|
async function convertToken() {
|
|
189
189
|
// 将 100 TBA 转换为其基本单位
|
|
190
190
|
const unitAmount = await client.fromTokenToUnit(100);
|
|
191
191
|
console.log(`100 TBA 等于 ${unitAmount.toString()} 基本单位。`);
|
|
192
192
|
|
|
193
|
-
//
|
|
193
|
+
// 将其转换回来
|
|
194
194
|
const tokenAmount = await client.fromUnitToToken(unitAmount.toString());
|
|
195
195
|
console.log(`${unitAmount.toString()} 基本单位等于 ${tokenAmount} TBA。`);
|
|
196
196
|
}
|
|
@@ -202,7 +202,7 @@ convertToken();
|
|
|
202
202
|
|
|
203
203
|
## 方法发现
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
客户端会为所连接的 OCAP 节点支持的每种交易类型动态生成方法。这些发现方法允许您以编程方式列出所有可用的与交易相关的功能。
|
|
206
206
|
|
|
207
207
|
### getTxSendMethods()
|
|
208
208
|
|
|
@@ -214,7 +214,7 @@ convertToken();
|
|
|
214
214
|
|
|
215
215
|
### getTxSignMethods()
|
|
216
216
|
|
|
217
|
-
返回所有可用的 `sign...Tx`
|
|
217
|
+
返回所有可用的 `sign...Tx` 方法名称的数组。这些方法对交易进行编码然后签名,并返回已签名的交易对象。
|
|
218
218
|
|
|
219
219
|
### getTxMultiSignMethods()
|
|
220
220
|
|
|
@@ -222,8 +222,8 @@ convertToken();
|
|
|
222
222
|
|
|
223
223
|
**示例**
|
|
224
224
|
|
|
225
|
-
```javascript
|
|
225
|
+
```javascript Listing Available Transaction Methods icon=logos:javascript
|
|
226
226
|
const sendMethods = client.getTxSendMethods();
|
|
227
227
|
console.log('可用的发送方法:', sendMethods);
|
|
228
228
|
// 示例输出:[ 'sendPokeTx', 'sendTransferTx', ... ]
|
|
229
|
-
```
|
|
229
|
+
```
|