@ocap/client 1.25.5 → 1.26.0
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/README.md +77 -79
- package/dist/base.js +2 -2
- package/dist/base.js.map +1 -1
- package/dist/bundle.js +1 -1
- package/dist/extension.js +4 -4
- package/dist/extension.js.map +1 -1
- package/dist/report.html +2 -2
- package/docs/api-reference-client-methods.ja.md +38 -38
- package/docs/api-reference-client-methods.zh-TW.md +47 -47
- package/docs/api-reference-client-methods.zh.md +34 -34
- package/docs/api-reference-data-types.ja.md +20 -20
- package/docs/api-reference-data-types.zh-TW.md +17 -17
- package/docs/api-reference-data-types.zh.md +24 -24
- package/docs/api-reference-low-level-api.ja.md +49 -49
- package/docs/api-reference-low-level-api.zh-TW.md +48 -48
- package/docs/api-reference-low-level-api.zh.md +43 -43
- package/docs/api-reference-query-mutation-methods.ja.md +85 -85
- package/docs/api-reference-query-mutation-methods.zh-TW.md +140 -140
- package/docs/api-reference-query-mutation-methods.zh.md +141 -141
- package/docs/api-reference-transaction-helpers.ja.md +120 -120
- package/docs/api-reference-transaction-helpers.zh-TW.md +119 -119
- package/docs/api-reference-transaction-helpers.zh.md +153 -153
- package/docs/api-reference.ja.md +6 -6
- package/docs/api-reference.zh-TW.md +5 -5
- package/docs/api-reference.zh.md +8 -8
- package/docs/core-concepts-client-architecture.ja.md +26 -26
- package/docs/core-concepts-client-architecture.zh-TW.md +34 -34
- package/docs/core-concepts-client-architecture.zh.md +26 -26
- package/docs/core-concepts-event-subscriptions.ja.md +29 -29
- package/docs/core-concepts-event-subscriptions.zh-TW.md +23 -23
- package/docs/core-concepts-event-subscriptions.zh.md +29 -29
- package/docs/core-concepts-gas-payment.ja.md +27 -27
- package/docs/core-concepts-gas-payment.zh-TW.md +28 -28
- package/docs/core-concepts-gas-payment.zh.md +32 -32
- package/docs/core-concepts-transaction-lifecycle.ja.md +40 -40
- package/docs/core-concepts-transaction-lifecycle.zh-TW.md +43 -43
- package/docs/core-concepts-transaction-lifecycle.zh.md +49 -49
- package/docs/core-concepts.ja.md +7 -7
- package/docs/core-concepts.zh-TW.md +6 -6
- package/docs/core-concepts.zh.md +7 -7
- package/docs/getting-started-basic-usage.ja.md +24 -24
- package/docs/getting-started-basic-usage.zh-TW.md +28 -28
- package/docs/getting-started-basic-usage.zh.md +24 -24
- package/docs/getting-started-installation.ja.md +13 -13
- package/docs/getting-started-installation.zh-TW.md +9 -9
- package/docs/getting-started-installation.zh.md +15 -15
- package/docs/getting-started.ja.md +5 -5
- package/docs/getting-started.zh-TW.md +6 -6
- package/docs/getting-started.zh.md +6 -7
- package/docs/how-to-guides-delegate-permissions.ja.md +21 -21
- package/docs/how-to-guides-delegate-permissions.zh-TW.md +20 -21
- package/docs/how-to-guides-delegate-permissions.zh.md +18 -18
- package/docs/how-to-guides-manage-accounts.ja.md +21 -21
- package/docs/how-to-guides-manage-accounts.zh-TW.md +23 -23
- package/docs/how-to-guides-manage-accounts.zh.md +17 -17
- package/docs/how-to-guides-manage-assets.ja.md +137 -60
- package/docs/how-to-guides-manage-assets.md +77 -0
- package/docs/how-to-guides-manage-assets.zh-TW.md +116 -39
- package/docs/how-to-guides-manage-assets.zh.md +142 -65
- package/docs/how-to-guides-manage-tokens.ja.md +47 -47
- package/docs/how-to-guides-manage-tokens.zh-TW.md +49 -49
- package/docs/how-to-guides-manage-tokens.zh.md +34 -34
- package/docs/how-to-guides-stake-tokens-and-assets.ja.md +56 -56
- package/docs/how-to-guides-stake-tokens-and-assets.zh-TW.md +55 -55
- package/docs/how-to-guides-stake-tokens-and-assets.zh.md +51 -51
- package/docs/how-to-guides-transfer-tokens-and-nfts.ja.md +45 -45
- package/docs/how-to-guides-transfer-tokens-and-nfts.zh-TW.md +46 -46
- package/docs/how-to-guides-transfer-tokens-and-nfts.zh.md +37 -37
- package/docs/how-to-guides.ja.md +8 -8
- package/docs/how-to-guides.zh-TW.md +4 -4
- package/docs/how-to-guides.zh.md +6 -6
- package/docs/overview.ja.md +15 -15
- package/docs/overview.zh-TW.md +14 -14
- package/docs/overview.zh.md +12 -12
- package/lib/base.js +2 -2
- package/lib/base.js.map +1 -1
- package/lib/extension.js +4 -4
- package/lib/extension.js.map +1 -1
- package/package.json +15 -15
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# ヘルパーメソッド
|
|
2
2
|
|
|
3
|
-
`GraphQLClient
|
|
3
|
+
`GraphQLClient` クラスは、OCAP を利用したブロックチェーンと対話するための主要なインターフェースです。チェーンの状態のクエリ、トランザクションの送信、リアルタイムイベントのサブスクライブのための一連の包括的なメソッドを提供します。Node.js とブラウザ環境の両方でシームレスに動作するように設計されています。
|
|
4
4
|
|
|
5
|
-
```javascript
|
|
5
|
+
```javascript クライアントの初期化 icon=logos:javascript
|
|
6
6
|
const GraphQLClient = require('@ocap/client');
|
|
7
7
|
|
|
8
|
-
//
|
|
8
|
+
// Beta チェーンに接続
|
|
9
9
|
const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
10
10
|
|
|
11
11
|
(async () => {
|
|
@@ -14,28 +14,28 @@ const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
|
14
14
|
})();
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
このセクションでは、`GraphQLClient
|
|
17
|
+
このセクションでは、`GraphQLClient` クラスのコアヘルパーメソッドについて詳しく解説します。
|
|
18
18
|
|
|
19
19
|
## コンストラクタ
|
|
20
20
|
|
|
21
21
|
### new GraphQLClient(endpoint, autoInit)
|
|
22
22
|
|
|
23
|
-
`GraphQLClient
|
|
23
|
+
`GraphQLClient` の新しいインスタンスを作成します。
|
|
24
24
|
|
|
25
25
|
**パラメータ**
|
|
26
26
|
|
|
27
27
|
<x-field-group>
|
|
28
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>
|
|
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 クライアントインスタンスの作成 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
|
-
チェーンID
|
|
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="ネイティブトークンに関する情報。">
|
|
@@ -64,7 +64,7 @@ const client = new GraphQLClient('https://beta.abtnetwork.io/api', true);
|
|
|
64
64
|
|
|
65
65
|
**例**
|
|
66
66
|
|
|
67
|
-
```javascript
|
|
67
|
+
```javascript チェーンコンテキストの取得 icon=logos:javascript
|
|
68
68
|
async function logChainToken() {
|
|
69
69
|
const context = await client.getContext();
|
|
70
70
|
console.log(`Native Token Symbol: ${context.token.symbol}`);
|
|
@@ -75,7 +75,7 @@ logChainToken();
|
|
|
75
75
|
|
|
76
76
|
### setGasPayer(wallet)
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
ウォレットを「ガス支払者」として機能するように設定します。設定されると、このウォレットはこのクライアントインスタンスを通じて送信されるトランザクションのトランザクション手数料を負担し、ユーザーにガスレス体験を提供します。詳細については、[ガス支払い](./core-concepts-gas-payment.md)のコンセプトガイドを参照してください。
|
|
79
79
|
|
|
80
80
|
**パラメータ**
|
|
81
81
|
|
|
@@ -85,12 +85,12 @@ logChainToken();
|
|
|
85
85
|
|
|
86
86
|
### decodeTx(input)
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
さまざまな形式のトランザクションを、人間が読める形式の JavaScript オブジェクトにデシリアライズします。
|
|
89
89
|
|
|
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,31 +99,31 @@ logChainToken();
|
|
|
99
99
|
|
|
100
100
|
### getType(name)
|
|
101
101
|
|
|
102
|
-
指定された型名のProtobufメッセージクラスを取得します。これは、Protobufメッセージを手動で構築または検査する必要がある高度なシナリオで役立ちます。
|
|
102
|
+
指定された型名の Protobuf メッセージクラスを取得します。これは、Protobuf メッセージを手動で構築または検査する必要がある高度なシナリオで役立ちます。
|
|
103
103
|
|
|
104
104
|
**パラメータ**
|
|
105
105
|
|
|
106
|
-
<x-field data-name="name" data-type="string" data-required="true" data-desc="Protobufメッセージタイプの名前(例:'Transaction'、'TransferTx')。"></x-field>
|
|
106
|
+
<x-field data-name="name" data-type="string" data-required="true" data-desc="Protobuf メッセージタイプの名前(例:'Transaction'、'TransferTx')。"></x-field>
|
|
107
107
|
|
|
108
108
|
**戻り値**
|
|
109
109
|
|
|
110
|
-
<x-field data-name="class | null" data-type="object" data-desc="メッセージクラスのコンストラクタ。見つからない場合はnull。"></x-field>
|
|
110
|
+
<x-field data-name="class | null" data-type="object" data-desc="メッセージクラスのコンストラクタ。見つからない場合は null。"></x-field>
|
|
111
111
|
|
|
112
112
|
---
|
|
113
113
|
|
|
114
|
-
##
|
|
114
|
+
## イベントのサブスクリプション
|
|
115
115
|
|
|
116
|
-
クライアントはWebSocketを介したリアルタイムのイベントサブスクリプションをサポートしており、アプリケーションがオンチェーンイベントに即座に反応できるようにします。
|
|
116
|
+
クライアントは WebSocket を介したリアルタイムのイベントサブスクリプションをサポートしており、アプリケーションがオンチェーンイベントに即座に反応できるようにします。
|
|
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 @@ WebSocket接続を確立し、特定のイベントトピックをサブスク
|
|
|
139
139
|
|
|
140
140
|
**例**
|
|
141
141
|
|
|
142
|
-
```javascript
|
|
142
|
+
```javascript 新規ブロックのサブスクライブ icon=logos:javascript
|
|
143
143
|
const handleNewBlock = (block) => {
|
|
144
144
|
console.log(`New block received! Height: ${block.height}`);
|
|
145
145
|
|
|
146
|
-
// 1
|
|
146
|
+
// 1つのブロックを受信した後にサブスクライブを解除
|
|
147
147
|
client.unsubscribe('newBlock', handleNewBlock);
|
|
148
148
|
console.log('Unsubscribed from newBlock events.');
|
|
149
149
|
};
|
|
@@ -156,11 +156,11 @@ console.log('Subscribed to newBlock events...');
|
|
|
156
156
|
|
|
157
157
|
## トークンユーティリティメソッド
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
これらのヘルパーは、人間が読める形式のトークン量とオンチェーンの基本単位表現との間の変換を簡素化します。
|
|
160
160
|
|
|
161
161
|
### fromUnitToToken(value)
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
チェーンの基本単位(大きな整数文字列)の値を、ネイティブトークンの小数点以下の桁数に基づいて標準的な10進数文字列に変換します。
|
|
164
164
|
|
|
165
165
|
**パラメータ**
|
|
166
166
|
|
|
@@ -172,21 +172,21 @@ console.log('Subscribed to newBlock events...');
|
|
|
172
172
|
|
|
173
173
|
### fromTokenToUnit(amount)
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
標準的な10進数量をチェーンの基本単位表現(BN.js インスタンス)に変換します。
|
|
176
176
|
|
|
177
177
|
**パラメータ**
|
|
178
178
|
|
|
179
|
-
<x-field data-name="amount" data-type="number | string" data-required="true" data-desc="
|
|
179
|
+
<x-field data-name="amount" data-type="number | string" data-required="true" data-desc="標準的な10進数形式でのトークン量。"></x-field>
|
|
180
180
|
|
|
181
181
|
**戻り値**
|
|
182
182
|
|
|
183
|
-
<x-field data-name="BN" data-type="object" data-desc="チェーンの基本単位での値を表すBN.jsインスタンス。"></x-field>
|
|
183
|
+
<x-field data-name="BN" data-type="object" data-desc="チェーンの基本単位での値を表す BN.js インスタンス。"></x-field>
|
|
184
184
|
|
|
185
185
|
**例**
|
|
186
186
|
|
|
187
|
-
```javascript
|
|
187
|
+
```javascript トークン量の変換 icon=logos:javascript
|
|
188
188
|
async function convertToken() {
|
|
189
|
-
// 100 TBAをその基本単位に変換
|
|
189
|
+
// 100 TBA をその基本単位に変換
|
|
190
190
|
const unitAmount = await client.fromTokenToUnit(100);
|
|
191
191
|
console.log(`100 TBA is ${unitAmount.toString()} in base units.`);
|
|
192
192
|
|
|
@@ -200,29 +200,29 @@ convertToken();
|
|
|
200
200
|
|
|
201
201
|
---
|
|
202
202
|
|
|
203
|
-
##
|
|
203
|
+
## メソッドのディスカバリー
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
クライアントは、接続されている OCAP ノードでサポートされているすべてのトランザクションタイプに対応するメソッドを動的に生成します。これらのディスカバリーメソッドを使用すると、利用可能なすべてのトランザクション関連の関数をプログラムで一覧表示できます。
|
|
206
206
|
|
|
207
207
|
### getTxSendMethods()
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
利用可能なすべての `send...Tx` メソッド名の配列を返します。これらのメソッドは、トランザクションの署名と送信の完全なライフサイクルを処理します。
|
|
210
210
|
|
|
211
211
|
### getTxEncodeMethods()
|
|
212
212
|
|
|
213
|
-
|
|
213
|
+
利用可能なすべての `encode...Tx` メソッド名の配列を返します。これらのメソッドは、トランザクションを準備してバッファにシリアライズしますが、署名は行いません。
|
|
214
214
|
|
|
215
215
|
### getTxSignMethods()
|
|
216
216
|
|
|
217
|
-
|
|
217
|
+
利用可能なすべての `sign...Tx` メソッド名の配列を返します。これらのメソッドは、トランザクションをエンコードしてから署名し、署名済みのトランザクションオブジェクトを返します。
|
|
218
218
|
|
|
219
219
|
### getTxMultiSignMethods()
|
|
220
220
|
|
|
221
|
-
|
|
221
|
+
マルチシグネチャワークフローで使用される、利用可能なすべての `multiSign...Tx` メソッド名の配列を返します。
|
|
222
222
|
|
|
223
223
|
**例**
|
|
224
224
|
|
|
225
|
-
```javascript
|
|
225
|
+
```javascript 利用可能なトランザクションメソッドの一覧表示 icon=logos:javascript
|
|
226
226
|
const sendMethods = client.getTxSendMethods();
|
|
227
227
|
console.log('Available send methods:', sendMethods);
|
|
228
228
|
// 出力例: [ 'sendPokeTx', 'sendTransferTx', ... ]
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# 輔助方法
|
|
2
2
|
|
|
3
|
-
`GraphQLClient`
|
|
3
|
+
`GraphQLClient` 類別是與由 OCAP 驅動的區塊鏈互動的主要介面。它提供了一套全面的方法,用於查詢鏈上狀態、發送交易以及訂閱即時事件。此類別的設計旨在能於 Node.js 和瀏覽器環境中無縫運作。
|
|
4
4
|
|
|
5
|
-
```javascript
|
|
5
|
+
```javascript 客戶端初始化 icon=logos:javascript
|
|
6
6
|
const GraphQLClient = require('@ocap/client');
|
|
7
7
|
|
|
8
|
-
//
|
|
8
|
+
// 連線到 Beta 鏈
|
|
9
9
|
const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
10
10
|
|
|
11
11
|
(async () => {
|
|
@@ -26,16 +26,16 @@ const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
|
26
26
|
|
|
27
27
|
<x-field-group>
|
|
28
28
|
<x-field data-name="endpoint" data-type="string" data-required="true">
|
|
29
|
-
<x-field-desc markdown>區塊鏈節點的 GraphQL
|
|
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 建立客戶端實例 icon=logos:javascript
|
|
39
39
|
const client = new GraphQLClient('https://beta.abtnetwork.io/api', true);
|
|
40
40
|
```
|
|
41
41
|
|
|
@@ -43,28 +43,28 @@ 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
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
|
-
<x-field data-name="consensus" data-type="string" data-desc="
|
|
57
|
-
<x-field data-name="token" data-type="object" data-desc="
|
|
58
|
-
<x-field data-name="address" data-type="string" data-desc="
|
|
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
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 取得鏈的上下文 icon=logos:javascript
|
|
68
68
|
async function logChainToken() {
|
|
69
69
|
const context = await client.getContext();
|
|
70
70
|
console.log(`Native Token Symbol: ${context.token.symbol}`);
|
|
@@ -75,55 +75,55 @@ logChainToken();
|
|
|
75
75
|
|
|
76
76
|
### setGasPayer(wallet)
|
|
77
77
|
|
|
78
|
-
設定一個錢包作為「
|
|
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)
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
將多種格式的交易反序列化為人類可讀的 JavaScript 物件。
|
|
89
89
|
|
|
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
|
+
**回傳值**
|
|
97
97
|
|
|
98
98
|
<x-field data-name="object" data-type="object" data-desc="已解碼的交易物件。"></x-field>
|
|
99
99
|
|
|
100
100
|
### getType(name)
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
根據給定的類型名稱,檢索其 Protobuf 訊息類別。這在需要手動建構或檢查 Protobuf 訊息的進階情境中非常有用。
|
|
103
103
|
|
|
104
104
|
**參數**
|
|
105
105
|
|
|
106
|
-
<x-field data-name="name" data-type="string" data-required="true" data-desc="Protobuf 訊息類型的名稱(例如:'Transaction'
|
|
106
|
+
<x-field data-name="name" data-type="string" data-required="true" data-desc="Protobuf 訊息類型的名稱(例如:'Transaction'、'TransferTx')。"></x-field>
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
**回傳值**
|
|
109
109
|
|
|
110
|
-
<x-field data-name="class | null" data-type="object" data-desc="
|
|
110
|
+
<x-field data-name="class | null" data-type="object" data-desc="訊息類別的建構函式,若找不到則為 null。"></x-field>
|
|
111
111
|
|
|
112
112
|
---
|
|
113
113
|
|
|
114
114
|
## 事件訂閱
|
|
115
115
|
|
|
116
|
-
客戶端支援透過 WebSocket
|
|
116
|
+
客戶端支援透過 WebSocket 進行的即時事件訂閱,讓您的應用程式能即時對鏈上事件作出反應。
|
|
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
|
-
<x-field data-name="topic" data-type="string" data-required="true" data-desc="要訂閱的事件主題(例如:'newBlock'
|
|
126
|
-
<x-field data-name="callback" data-type="function" data-required="true" data-desc="
|
|
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
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 訂閱新區塊 icon=logos:javascript
|
|
143
143
|
const handleNewBlock = (block) => {
|
|
144
144
|
console.log(`New block received! Height: ${block.height}`);
|
|
145
145
|
|
|
146
|
-
//
|
|
146
|
+
// 接收到一個區塊後取消訂閱
|
|
147
147
|
client.unsubscribe('newBlock', handleNewBlock);
|
|
148
148
|
console.log('Unsubscribed from newBlock events.');
|
|
149
149
|
};
|
|
@@ -156,41 +156,41 @@ console.log('Subscribed to newBlock events...');
|
|
|
156
156
|
|
|
157
157
|
## 代幣工具方法
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
這些輔助方法簡化了人類可讀的代幣數量與鏈上基礎單位表示之間的轉換。
|
|
160
160
|
|
|
161
161
|
### fromUnitToToken(value)
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
根據原生代幣的小數位數,將一個值從鏈上的基礎單位(一個大整數字串)轉換為標準的十進位字串。
|
|
164
164
|
|
|
165
165
|
**參數**
|
|
166
166
|
|
|
167
|
-
<x-field data-name="value" data-type="string" data-required="true" data-desc="
|
|
167
|
+
<x-field data-name="value" data-type="string" data-required="true" data-desc="鏈上基礎單位的金額。"></x-field>
|
|
168
168
|
|
|
169
|
-
|
|
169
|
+
**回傳值**
|
|
170
170
|
|
|
171
|
-
<x-field data-name="string" data-type="string" data-desc="
|
|
171
|
+
<x-field data-name="string" data-type="string" data-desc="標準代幣單位的金額。"></x-field>
|
|
172
172
|
|
|
173
173
|
### fromTokenToUnit(amount)
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
將一個標準的十進位金額轉換為鏈上的基礎單位表示(一個 BN.js 實例)。
|
|
176
176
|
|
|
177
177
|
**參數**
|
|
178
178
|
|
|
179
|
-
<x-field data-name="amount" data-type="number | string" data-required="true" data-desc="
|
|
179
|
+
<x-field data-name="amount" data-type="number | string" data-required="true" data-desc="標準十進位格式的代幣金額。"></x-field>
|
|
180
180
|
|
|
181
|
-
|
|
181
|
+
**回傳值**
|
|
182
182
|
|
|
183
|
-
<x-field data-name="BN" data-type="object" data-desc="
|
|
183
|
+
<x-field data-name="BN" data-type="object" data-desc="一個代表鏈上基礎單位值的 BN.js 實例。"></x-field>
|
|
184
184
|
|
|
185
185
|
**範例**
|
|
186
186
|
|
|
187
|
-
```javascript
|
|
187
|
+
```javascript 代幣金額轉換 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 is ${unitAmount.toString()} in base units.`);
|
|
192
192
|
|
|
193
|
-
//
|
|
193
|
+
// 將其轉換回來
|
|
194
194
|
const tokenAmount = await client.fromUnitToToken(unitAmount.toString());
|
|
195
195
|
console.log(`${unitAmount.toString()} base units is ${tokenAmount} TBA.`);
|
|
196
196
|
}
|
|
@@ -202,27 +202,27 @@ convertToken();
|
|
|
202
202
|
|
|
203
203
|
## 方法探索
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
客戶端會為所連線的 OCAP 節點支援的每種交易類型動態產生方法。這些探索方法讓您能以程式化的方式列出所有可用的交易相關函式。
|
|
206
206
|
|
|
207
207
|
### getTxSendMethods()
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
回傳一個包含所有可用的 `send...Tx` 方法名稱的陣列。這些方法處理簽署和發送交易的完整生命週期。
|
|
210
210
|
|
|
211
211
|
### getTxEncodeMethods()
|
|
212
212
|
|
|
213
|
-
|
|
213
|
+
回傳一個包含所有可用的 `encode...Tx` 方法名稱的陣列。這些方法準備交易並將其序列化為一個緩衝區,但不會簽署它。
|
|
214
214
|
|
|
215
215
|
### getTxSignMethods()
|
|
216
216
|
|
|
217
|
-
|
|
217
|
+
回傳一個包含所有可用的 `sign...Tx` 方法名稱的陣列。這些方法會編碼並簽署一筆交易,然後回傳已簽署的交易物件。
|
|
218
218
|
|
|
219
219
|
### getTxMultiSignMethods()
|
|
220
220
|
|
|
221
|
-
|
|
221
|
+
回傳一個包含所有可用的 `multiSign...Tx` 方法名稱的陣列,用於多重簽章工作流程。
|
|
222
222
|
|
|
223
223
|
**範例**
|
|
224
224
|
|
|
225
|
-
```javascript
|
|
225
|
+
```javascript 列出可用的交易方法 icon=logos:javascript
|
|
226
226
|
const sendMethods = client.getTxSendMethods();
|
|
227
227
|
console.log('Available send methods:', sendMethods);
|
|
228
228
|
// 範例輸出:[ 'sendPokeTx', 'sendTransferTx', ... ]
|