@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
package/docs/api-reference.ja.md
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
# APIリファレンス
|
|
2
2
|
|
|
3
|
-
OCAPクライアントAPI
|
|
3
|
+
OCAPクライアントAPIリファレンスへようこそ。このセクションでは、利用可能なすべてのクラス、メソッド、およびデータ型に関する包括的で検索可能なリファレンスを提供します。GraphQLメソッドの詳細、トランザクションヘルパーのパラメータ、またはレスポンスオブジェクトの構造を探している場合でも、必要な詳細情報がここで見つかります。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
クライアントの機能をより深く理解するために、以下のセクションをご覧ください。
|
|
6
6
|
|
|
7
7
|
<x-cards data-columns="2">
|
|
8
8
|
<x-card data-title="ヘルパーメソッド" data-icon="lucide:function-square" data-href="/api-reference/client-methods">
|
|
9
9
|
`getType`、`decodeTx`、`fromUnitToToken` などのコアクライアントヘルパーメソッドに関する詳細なドキュメント。
|
|
10
10
|
</x-card>
|
|
11
11
|
<x-card data-title="クエリ&ミューテーションメソッド" data-icon="lucide:database-zap" data-href="/api-reference/query-mutation-methods">
|
|
12
|
-
|
|
12
|
+
チェーンからの読み取りおよび書き込みのための、利用可能なすべての GraphQL クエリおよびミューテーションメソッドの完全なリスト。
|
|
13
13
|
</x-card>
|
|
14
14
|
<x-card data-title="高レベルAPI" data-icon="lucide:zap" data-href="/api-reference/transaction-helpers">
|
|
15
|
-
|
|
15
|
+
トークンの転送やアセットの管理などの一般的なワークフローを簡素化する高レベル関数のリファレンス。
|
|
16
16
|
</x-card>
|
|
17
17
|
<x-card data-title="低レベルAPI" data-icon="lucide:cpu" data-href="/api-reference/low-level-api">
|
|
18
|
-
|
|
18
|
+
トランザクションライフサイクルを完全に制御するために、トランザクションを手動で構築、署名、送信する方法を学びます。
|
|
19
19
|
</x-card>
|
|
20
20
|
<x-card data-title="データ型" data-icon="lucide:box" data-href="/api-reference/data-types">
|
|
21
|
-
クライアントAPI
|
|
21
|
+
クライアントAPI全体で使用されるすべてのカスタムデータ構造、入力パラメータ、およびレスポンスオブジェクトを定義します。
|
|
22
22
|
</x-card>
|
|
23
23
|
</x-cards>
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
# API 參考
|
|
2
2
|
|
|
3
|
-
歡迎來到 OCAP Client API
|
|
3
|
+
歡迎來到 OCAP Client API 參考文件。本節為所有可用的類別、方法和資料類型,提供了一份全面且可搜尋的參考資料。無論您是在尋找 GraphQL 方法的具體細節、交易輔助工具的參數,還是回應物件的結構,都可以在這裡找到您需要的詳細資訊。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
探索以下各節,以深入了解此客戶端的功能:
|
|
6
6
|
|
|
7
7
|
<x-cards data-columns="2">
|
|
8
8
|
<x-card data-title="輔助方法" data-icon="lucide:function-square" data-href="/api-reference/client-methods">
|
|
9
9
|
核心客戶端輔助方法的詳細文件,例如 `getType`、`decodeTx` 和 `fromUnitToToken`。
|
|
10
10
|
</x-card>
|
|
11
11
|
<x-card data-title="查詢與變更方法" data-icon="lucide:database-zap" data-href="/api-reference/query-mutation-methods">
|
|
12
|
-
|
|
12
|
+
所有可用於讀取和寫入鏈上資料的 GraphQL 查詢與變更方法之完整清單。
|
|
13
13
|
</x-card>
|
|
14
14
|
<x-card data-title="高階 API" data-icon="lucide:zap" data-href="/api-reference/transaction-helpers">
|
|
15
|
-
|
|
15
|
+
高階函式的參考文件,這些函式可簡化如代幣轉移和資產管理等常見工作流程。
|
|
16
16
|
</x-card>
|
|
17
17
|
<x-card data-title="低階 API" data-icon="lucide:cpu" data-href="/api-reference/low-level-api">
|
|
18
18
|
學習如何手動建構、簽署和發送交易,以完全控制交易的生命週期。
|
|
19
19
|
</x-card>
|
|
20
20
|
<x-card data-title="資料類型" data-icon="lucide:box" data-href="/api-reference/data-types">
|
|
21
|
-
|
|
21
|
+
定義了整個客戶端 API 中使用的所有自訂資料結構、輸入參數和回應物件。
|
|
22
22
|
</x-card>
|
|
23
23
|
</x-cards>
|
package/docs/api-reference.zh.md
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# API 参考
|
|
2
2
|
|
|
3
|
-
欢迎来到 OCAP Client API
|
|
3
|
+
欢迎来到 OCAP Client API 参考。本节为所有可用的类、方法和数据类型提供了一个全面且可搜索的参考。无论您是在寻找 GraphQL 方法的细节、交易辅助函数的参数,还是响应对象的结构,您都可以在这里找到所需的详细信息。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
探索以下部分,以深入了解客户端的功能:
|
|
6
6
|
|
|
7
7
|
<x-cards data-columns="2">
|
|
8
8
|
<x-card data-title="辅助方法" data-icon="lucide:function-square" data-href="/api-reference/client-methods">
|
|
9
|
-
|
|
9
|
+
核心客户端辅助方法的详细文档,例如 `getType`、`decodeTx` 和 `fromUnitToToken`。
|
|
10
10
|
</x-card>
|
|
11
11
|
<x-card data-title="查询与变更方法" data-icon="lucide:database-zap" data-href="/api-reference/query-mutation-methods">
|
|
12
|
-
|
|
12
|
+
所有可用于从链上读取和写入数据的 GraphQL 查询和变更方法的完整列表。
|
|
13
13
|
</x-card>
|
|
14
|
-
<x-card data-title="
|
|
15
|
-
|
|
14
|
+
<x-card data-title="高级 API" data-icon="lucide:zap" data-href="/api-reference/transaction-helpers">
|
|
15
|
+
简化常见工作流程(如转移代币和管理资产)的高级函数参考。
|
|
16
16
|
</x-card>
|
|
17
|
-
<x-card data-title="
|
|
18
|
-
|
|
17
|
+
<x-card data-title="底层 API" data-icon="lucide:cpu" data-href="/api-reference/low-level-api">
|
|
18
|
+
学习如何手动构建、签名和发送交易,以完全控制交易生命周期。
|
|
19
19
|
</x-card>
|
|
20
20
|
<x-card data-title="数据类型" data-icon="lucide:box" data-href="/api-reference/data-types">
|
|
21
21
|
定义了整个客户端 API 中使用的所有自定义数据结构、输入参数和响应对象。
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# クライアントアーキテクチャ
|
|
2
2
|
|
|
3
|
-
OCAP
|
|
3
|
+
OCAP Client は、さまざまな JavaScript 環境や特定のユースケースに対応するため、モジュラーアーキテクチャで設計されています。画一的なライブラリではなく、Node.js バックエンドやバンドルサイズに敏感なウェブアプリケーションなど、特定のコンテキストに最適化された複数のクライアント実装を提供しています。このアプローチにより、ニーズに最も効率的なクライアントを選択でき、必要に応じてパフォーマンスの向上とフットプリントの削減が保証されます。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
すべてのクライアントバリエーションは、共通のベースである `GraphQLClientBase` 上に構築されており、ブロックチェーンの GraphQL API と対話するためのコア機能を提供します。
|
|
6
6
|
|
|
7
7
|
### 継承図
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
以下の図は、異なるクライアント実装間の関係を示しています。
|
|
10
10
|
|
|
11
11
|
```d2
|
|
12
12
|
direction: down
|
|
@@ -22,81 +22,81 @@ GraphQLClient: {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
GraphqlClientLite: {
|
|
25
|
-
label: "GraphqlClientLite\n(
|
|
25
|
+
label: "GraphqlClientLite\n(ブラウザ向け最適化)"
|
|
26
26
|
shape: rectangle
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
NativeGraphqlClient: {
|
|
30
|
-
label: "NativeGraphqlClient\n(Node.js
|
|
30
|
+
label: "NativeGraphqlClient\n(Node.js向け最適化)"
|
|
31
31
|
shape: rectangle
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
GraphQLClientBase -> GraphQLClient: "
|
|
35
|
-
GraphQLClientBase -> GraphqlClientLite: "
|
|
36
|
-
GraphQLClient -> NativeGraphqlClient: "
|
|
34
|
+
GraphQLClientBase -> GraphQLClient: "継承"
|
|
35
|
+
GraphQLClientBase -> GraphqlClientLite: "継承"
|
|
36
|
+
GraphQLClient -> NativeGraphqlClient: "継承"
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
## クライアント実装
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
以下に、利用可能な各クライアントとその想定されるユースケースの内訳を示します。
|
|
42
42
|
|
|
43
43
|
### `GraphQLClientBase` (コア)
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
これは、他のすべてのクライアントが拡張する、基礎となる軽量なクライアントです。ブロックチェーンとの通信に不可欠な機能を提供します。
|
|
46
46
|
|
|
47
47
|
- GraphQL のクエリとミューテーションの送信。
|
|
48
48
|
- リアルタイムのイベントサブスクリプションのための WebSocket 接続の確立。
|
|
49
49
|
- スポンサー付きトランザクションのためのガス支払いヘッダーの処理。
|
|
50
|
-
- 環境に依存しませんが、サブスクリプションを使用する場合は、WebSocket と EventEmitter
|
|
50
|
+
- 環境に依存しませんが、サブスクリプションを使用する場合は、WebSocket と EventEmitter の互換性のある実装を提供する必要があります。
|
|
51
51
|
|
|
52
52
|
このクライアントは、基本的な読み取り専用機能のみが必要で、依存関係を最小限に抑えたい場合に最適です。
|
|
53
53
|
|
|
54
54
|
### `GraphQLClient` (フルクライアント)
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
これは標準的な汎用クライアントであり、最も頻繁に使用される可能性が高いものです。`GraphQLClientBase` を拡張し、一般的なオンチェーン操作を簡素化する豊富な高レベルヘルパーメソッドのセットを追加します。これらのヘルパーは、アセットの作成、トークンの転送、ステークの管理などのタスクをカバーし、生の GraphQL ミューテーションの複雑さを抽象化します。
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
デフォルトでは、インスタンス化時にコンテキストを自動的に初期化するため、すぐに使用できます。
|
|
59
59
|
|
|
60
60
|
### `NativeGraphqlClient` (Node.js向け)
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
このクライアントは、Node.js ランタイムに特化して最適化されています。フル機能の `GraphQLClient` を拡張し、イベント処理に Node.js のネイティブな `events` モジュールを使用するように設定します。これにより、バックエンドアプリケーション、コマンドラインツール、またはサーバー上で実行されるスクリプトにとって、最もパフォーマンスが高く信頼性の高い選択肢となります。
|
|
63
63
|
|
|
64
64
|
### `GraphqlClientLite` (ブラウザ向け)
|
|
65
65
|
|
|
66
|
-
フロントエンドのウェブアプリケーション向けに設計された `GraphqlClientLite` は `GraphQLClientBase`
|
|
66
|
+
フロントエンドのウェブアプリケーション向けに設計された `GraphqlClientLite` は `GraphQLClientBase` を拡張し、最小限のバンドルサイズに最適化されています。Node.js 固有の依存関係を `wolfy87-eventemitter` のようなブラウザ互換の代替品に置き換えます。パフォーマンスと読み込み時間が重要なウェブアプリケーションを構築している場合、このクライアントは、フル機能のヘルパーメソッドスイートの余分な重みなしに、OCAP のコア機能を提供します。
|
|
67
67
|
|
|
68
68
|
## どのクライアントを使用すべきか?
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
どのクライアントを選択すべきかを判断するために、各シナリオで推奨されるクライアントの概要を以下に示します。
|
|
71
71
|
|
|
72
72
|
| 環境 | ユースケース | 推奨クライアント | インポートパス |
|
|
73
73
|
| :---------- | :------------------------------------------- | :----------------------- | :---------------------- |
|
|
74
74
|
| Node.js | バックエンドサービス、スクリプト、CLI ツール | `NativeGraphqlClient` | `@ocap/client/node` |
|
|
75
|
-
| ブラウザ |
|
|
76
|
-
| ブラウザ |
|
|
77
|
-
|
|
|
75
|
+
| ブラウザ | 一般的なウェブアプリケーション(例:React, Vue) | `GraphQLClient` | `@ocap/client` |
|
|
76
|
+
| ブラウザ | バンドルサイズに敏感なアプリケーション | `GraphqlClientLite` | `@ocap/client/lite` |
|
|
77
|
+
| 任意 | 読み取り専用、最小限の機能が必要 | `GraphQLClientBase` | `@ocap/client/base` |
|
|
78
78
|
|
|
79
|
-
###
|
|
79
|
+
### インポートの例
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
以下に、各クライアントをコードにインポートする方法を示します。
|
|
82
82
|
|
|
83
|
-
```javascript Node.js
|
|
83
|
+
```javascript Node.js Client icon=logos:nodejs-icon
|
|
84
84
|
const NativeGraphqlClient = require('@ocap/client/node');
|
|
85
85
|
const client = new NativeGraphqlClient('https://beta.abtnetwork.io/api');
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
-
```javascript
|
|
88
|
+
```javascript Full Browser Client icon=logos:javascript
|
|
89
89
|
const GraphQLClient = require('@ocap/client');
|
|
90
90
|
const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
```javascript Lite
|
|
93
|
+
```javascript Lite Browser Client icon=logos:javascript
|
|
94
94
|
const GraphqlClientLite = require('@ocap/client/lite');
|
|
95
95
|
const client = new GraphqlClientLite('https://beta.abtnetwork.io/api');
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
## まとめ
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
さまざまなクライアント実装を理解することで、アプリケーションの環境と要件に最も適した情報に基づいた選択ができます。適切なクライアントを選択することで、パフォーマンス、バンドルサイズ、使いやすさを最適化できます。
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
クライアントアーキテクチャを理解したところで、トランザクションがどのように構築され、処理されるかについてさらに深く掘り下げることができます。詳細は [トランザクションのライフサイクル](./core-concepts-transaction-lifecycle.md) ガイドをご覧ください。
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 用戶端架構
|
|
2
2
|
|
|
3
|
-
OCAP
|
|
3
|
+
OCAP 用戶端採用模組化架構設計,以滿足不同 JavaScript 環境和特定使用情境的需求。它並非提供一個一體適用的函式庫,而是提供多個用戶端實作,每個實作都針對特定情境進行了最佳化,例如 Node.js 後端或對套件大小敏感的網頁應用程式。這種方法讓您可以根據需求選擇最高效的用戶端,從而在必要時確保更佳的效能和更小的體積。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
所有用戶端變體都建立在一個共同的基礎 `GraphQLClientBase` 之上,該基礎提供了與區塊鏈 GraphQL API 互動的核心功能。
|
|
6
6
|
|
|
7
7
|
### 繼承關係圖
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
下圖說明了不同用戶端實作之間的關係:
|
|
10
10
|
|
|
11
11
|
```d2
|
|
12
12
|
direction: down
|
|
@@ -17,86 +17,86 @@ GraphQLClientBase: {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
GraphQLClient: {
|
|
20
|
-
label: "GraphQLClient\n(
|
|
20
|
+
label: "GraphQLClient\n(完整用戶端 + 輔助工具)"
|
|
21
21
|
shape: rectangle
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
GraphqlClientLite: {
|
|
25
|
-
label: "GraphqlClientLite\n(
|
|
25
|
+
label: "GraphqlClientLite\n(瀏覽器最佳化)"
|
|
26
26
|
shape: rectangle
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
NativeGraphqlClient: {
|
|
30
|
-
label: "NativeGraphqlClient\n(Node.js
|
|
30
|
+
label: "NativeGraphqlClient\n(Node.js 最佳化)"
|
|
31
31
|
shape: rectangle
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
GraphQLClientBase -> GraphQLClient: "
|
|
35
|
-
GraphQLClientBase -> GraphqlClientLite: "
|
|
36
|
-
GraphQLClient -> NativeGraphqlClient: "
|
|
34
|
+
GraphQLClientBase -> GraphQLClient: "擴充"
|
|
35
|
+
GraphQLClientBase -> GraphqlClientLite: "擴充"
|
|
36
|
+
GraphQLClient -> NativeGraphqlClient: "擴充"
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
##
|
|
39
|
+
## 用戶端實作
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
以下是每種可用用戶端及其預期使用情境的詳細說明。
|
|
42
42
|
|
|
43
43
|
### `GraphQLClientBase` (核心)
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
這是所有其他用戶端擴充的基礎輕量級用戶端。它提供了與區塊鏈通訊的基本功能:
|
|
46
46
|
|
|
47
|
-
-
|
|
47
|
+
- 傳送 GraphQL 查詢和變更。
|
|
48
48
|
- 建立 WebSocket 連線以進行即時事件訂閱。
|
|
49
|
-
- 處理贊助交易的
|
|
49
|
+
- 處理贊助交易的 Gas 支付標頭。
|
|
50
50
|
- 它與環境無關,但如果您使用訂閱功能,則需要為 WebSocket 和 EventEmitter 提供相容的實作。
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
如果您只需要基本的唯讀功能並希望最小化依賴性,那麼此用戶端是理想的選擇。
|
|
53
53
|
|
|
54
|
-
### `GraphQLClient` (
|
|
54
|
+
### `GraphQLClient` (完整用戶端)
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
這是標準的通用用戶端,也是您最可能經常使用的用戶端。它擴充了 `GraphQLClientBase`,並增加了一套豐富的高階輔助方法,以簡化常見的鏈上操作。這些輔助工具涵蓋了建立資產、轉移代幣和管理質押等任務,將原始 GraphQL 變更的複雜性抽象化。
|
|
57
57
|
|
|
58
58
|
預設情況下,它在實例化時也會自動初始化其上下文,使其可以立即使用。
|
|
59
59
|
|
|
60
60
|
### `NativeGraphqlClient` (適用於 Node.js)
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
此用戶端專為 Node.js 執行環境進行了最佳化。它擴充了完整的 `GraphQLClient`,並將其設定為使用 Node.js 的原生 `events` 模組進行事件處理。這使其成為任何在伺服器上執行的後端應用程式、命令列工具或指令碼的最高效能和最可靠的選擇。
|
|
63
63
|
|
|
64
64
|
### `GraphqlClientLite` (適用於瀏覽器)
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
專為前端網頁應用程式設計,`GraphqlClientLite` 擴充了 `GraphQLClientBase`,並針對最小化套件大小進行了最佳化。它將 Node.js 特有的依賴項替換為瀏覽器相容的替代方案,例如 `wolfy87-eventemitter`。如果您正在建構一個對效能和載入時間至關重要的網頁應用程式,此用戶端可以在不增加完整輔助方法套件額外負擔的情況下,提供核心的 OCAP 功能。
|
|
67
67
|
|
|
68
|
-
##
|
|
68
|
+
## 我該使用哪個用戶端?
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
為幫助您決定,以下是針對各種情境的建議用戶端摘要:
|
|
71
71
|
|
|
72
|
-
| 環境 | 使用情境 |
|
|
72
|
+
| 環境 | 使用情境 | 建議的用戶端 | 匯入路徑 |
|
|
73
73
|
| :---------- | :------------------------------------------- | :----------------------- | :---------------------- |
|
|
74
|
-
| Node.js
|
|
75
|
-
| 瀏覽器
|
|
76
|
-
| 瀏覽器
|
|
77
|
-
| 任何環境
|
|
74
|
+
| Node.js | 後端服務、指令碼、CLI 工具 | `NativeGraphqlClient` | `@ocap/client/node` |
|
|
75
|
+
| 瀏覽器 | 一般網頁應用程式 (例如 React、Vue) | `GraphQLClient` | `@ocap/client` |
|
|
76
|
+
| 瀏覽器 | 對套件大小敏感的應用程式 | `GraphqlClientLite` | `@ocap/client/lite` |
|
|
77
|
+
| 任何環境 | 唯讀、需要最少功能 | `GraphQLClientBase` | `@ocap/client/base` |
|
|
78
78
|
|
|
79
|
-
###
|
|
79
|
+
### 匯入範例
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
以下是在您的程式碼中匯入各個用戶端的方法:
|
|
82
82
|
|
|
83
|
-
```javascript Node.js
|
|
83
|
+
```javascript Node.js 用戶端 icon=logos:nodejs-icon
|
|
84
84
|
const NativeGraphqlClient = require('@ocap/client/node');
|
|
85
85
|
const client = new NativeGraphqlClient('https://beta.abtnetwork.io/api');
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
-
```javascript
|
|
88
|
+
```javascript 完整瀏覽器用戶端 icon=logos:javascript
|
|
89
89
|
const GraphQLClient = require('@ocap/client');
|
|
90
90
|
const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
```javascript
|
|
93
|
+
```javascript 輕量瀏覽器用戶端 icon=logos:javascript
|
|
94
94
|
const GraphqlClientLite = require('@ocap/client/lite');
|
|
95
95
|
const client = new GraphqlClientLite('https://beta.abtnetwork.io/api');
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
## 總結
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
了解不同的用戶端實作,能讓您根據應用程式的環境和需求做出明智的選擇。透過選擇適當的用戶端,您可以針對效能、套件大小和易用性進行最佳化。
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
現在您已經了解了用戶端架構,可以更深入地研究交易是如何建構和處理的。請在 [交易生命週期](./core-concepts-transaction-lifecycle.md) 指南中了解更多資訊。
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
# 客户端架构
|
|
2
2
|
|
|
3
|
-
OCAP
|
|
3
|
+
OCAP 客户端采用模块化架构设计,以满足不同 JavaScript 环境和特定用例的需求。它并非提供一个“一刀切”的库,而是提供了多种客户端实现,每种实现都针对特定上下文进行了优化,例如 Node.js 后端或对包大小敏感的 Web 应用程序。这种方法让您可以根据需要选择最高效的客户端,从而在必要时确保更好的性能和更小的占用空间。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
所有客户端变体都构建于一个通用基础 `GraphQLClientBase` 之上,该基础提供了与区块链的 GraphQL API 交互的核心功能。
|
|
6
6
|
|
|
7
7
|
### 继承关系图
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
下图说明了不同客户端实现之间的关系:
|
|
10
10
|
|
|
11
11
|
```d2
|
|
12
12
|
direction: down
|
|
13
13
|
|
|
14
14
|
GraphQLClientBase: {
|
|
15
|
-
label: "GraphQLClientBase\n
|
|
15
|
+
label: "GraphQLClientBase\n(核心功能)"
|
|
16
16
|
shape: rectangle
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
GraphQLClient: {
|
|
20
|
-
label: "GraphQLClient\n
|
|
20
|
+
label: "GraphQLClient\n(完整客户端 + 辅助方法)"
|
|
21
21
|
shape: rectangle
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
GraphqlClientLite: {
|
|
25
|
-
label: "GraphqlClientLite\n
|
|
25
|
+
label: "GraphqlClientLite\n(浏览器优化)"
|
|
26
26
|
shape: rectangle
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
NativeGraphqlClient: {
|
|
30
|
-
label: "NativeGraphqlClient\n
|
|
30
|
+
label: "NativeGraphqlClient\n(Node.js 优化)"
|
|
31
31
|
shape: rectangle
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -40,41 +40,41 @@ GraphQLClient -> NativeGraphqlClient: "扩展"
|
|
|
40
40
|
|
|
41
41
|
以下是每种可用客户端及其预期用例的详细说明。
|
|
42
42
|
|
|
43
|
-
### `GraphQLClientBase
|
|
43
|
+
### `GraphQLClientBase`(核心)
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
这是所有其他客户端都扩展的基础、轻量级客户端。它提供了与区块链通信的基本功能:
|
|
46
46
|
|
|
47
47
|
- 发送 GraphQL 查询和变更。
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
48
|
+
- 建立用于实时事件订阅的 WebSocket 连接。
|
|
49
|
+
- 处理用于代付交易的 gas 支付头。
|
|
50
|
+
- 它与环境无关,但如果您使用订阅功能,则需要为 WebSocket 和 EventEmitter 提供兼容的实现。
|
|
51
51
|
|
|
52
52
|
如果您只需要基本的只读功能并希望最小化依赖项,那么这个客户端是理想的选择。
|
|
53
53
|
|
|
54
|
-
### `GraphQLClient
|
|
54
|
+
### `GraphQLClient`(完整客户端)
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
这是标准的、通用的客户端,也是您最可能经常使用的客户端。它扩展了 `GraphQLClientBase`,并添加了一组丰富的高级辅助方法,以简化常见的链上操作。这些辅助方法涵盖了创建资产、转移通证和管理质押等任务,将原始 GraphQL 变更的复杂性抽象出来。
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
默认情况下,它还在实例化时自动初始化其上下文,使其可以立即使用。
|
|
59
59
|
|
|
60
|
-
### `NativeGraphqlClient
|
|
60
|
+
### `NativeGraphqlClient`(用于 Node.js)
|
|
61
61
|
|
|
62
|
-
该客户端专门为 Node.js 运行时进行了优化。它扩展了完整的 `GraphQLClient`,并将其配置为使用 Node.js 的原生 `events`
|
|
62
|
+
该客户端专门为 Node.js 运行时进行了优化。它扩展了完整的 `GraphQLClient`,并将其配置为使用 Node.js 的原生 `events` 模块进行事件处理。这使其成为任何在服务器上运行的后端应用程序、命令行工具或脚本的性能最高、最可靠的选择。
|
|
63
63
|
|
|
64
|
-
### `GraphqlClientLite
|
|
64
|
+
### `GraphqlClientLite`(用于浏览器)
|
|
65
65
|
|
|
66
|
-
专为前端 Web
|
|
66
|
+
`GraphqlClientLite` 专为前端 Web 应用程序设计,它扩展了 `GraphQLClientBase` 并为最小化包体积进行了优化。它将 Node.js 特定的依赖项替换为浏览器兼容的替代品,如 `wolfy87-eventemitter`。如果您正在构建一个性能和加载时间至关重要的 Web 应用程序,该客户端可以在不增加完整辅助方法套件额外负担的情况下提供核心 OCAP 功能。
|
|
67
67
|
|
|
68
68
|
## 我应该使用哪个客户端?
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
为了帮助您做出决定,以下是针对每种场景推荐的客户端摘要:
|
|
71
71
|
|
|
72
|
-
| 环境 |
|
|
72
|
+
| 环境 | 使用场景 | 推荐客户端 | 导入路径 |
|
|
73
73
|
| :---------- | :------------------------------------------- | :----------------------- | :---------------------- |
|
|
74
74
|
| Node.js | 后端服务、脚本、CLI 工具 | `NativeGraphqlClient` | `@ocap/client/node` |
|
|
75
75
|
| 浏览器 | 通用 Web 应用(例如 React、Vue) | `GraphQLClient` | `@ocap/client` |
|
|
76
|
-
| 浏览器 |
|
|
77
|
-
|
|
|
76
|
+
| 浏览器 | 对包体积敏感的应用 | `GraphqlClientLite` | `@ocap/client/lite` |
|
|
77
|
+
| 任何环境 | 只读,仅需最少功能 | `GraphQLClientBase` | `@ocap/client/base` |
|
|
78
78
|
|
|
79
79
|
### 导入示例
|
|
80
80
|
|
|
@@ -90,13 +90,13 @@ const GraphQLClient = require('@ocap/client');
|
|
|
90
90
|
const client = new GraphQLClient('https://beta.abtnetwork.io/api');
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
```javascript
|
|
93
|
+
```javascript Lite 浏览器客户端 icon=logos:javascript
|
|
94
94
|
const GraphqlClientLite = require('@ocap/client/lite');
|
|
95
95
|
const client = new GraphqlClientLite('https://beta.abtnetwork.io/api');
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
## 总结
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
了解不同的客户端实现,可以帮助您根据应用程序的环境和需求做出明智的选择。通过选择合适的客户端,您可以优化性能、包体积和易用性。
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
现在您已经了解了客户端架构,可以更深入地了解交易是如何构建和处理的。请在[交易生命周期](./core-concepts-transaction-lifecycle.md)指南中了解更多信息。
|