@ocap/client 1.25.6 → 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.
Files changed (79) hide show
  1. package/README.md +77 -79
  2. package/dist/base.js +2 -2
  3. package/dist/base.js.map +1 -1
  4. package/dist/bundle.js +1 -1
  5. package/dist/extension.js +4 -4
  6. package/dist/extension.js.map +1 -1
  7. package/dist/report.html +2 -2
  8. package/docs/api-reference-client-methods.ja.md +38 -38
  9. package/docs/api-reference-client-methods.zh-TW.md +47 -47
  10. package/docs/api-reference-client-methods.zh.md +34 -34
  11. package/docs/api-reference-data-types.ja.md +20 -20
  12. package/docs/api-reference-data-types.zh-TW.md +17 -17
  13. package/docs/api-reference-data-types.zh.md +24 -24
  14. package/docs/api-reference-low-level-api.ja.md +49 -49
  15. package/docs/api-reference-low-level-api.zh-TW.md +48 -48
  16. package/docs/api-reference-low-level-api.zh.md +43 -43
  17. package/docs/api-reference-query-mutation-methods.ja.md +85 -85
  18. package/docs/api-reference-query-mutation-methods.zh-TW.md +140 -140
  19. package/docs/api-reference-query-mutation-methods.zh.md +141 -141
  20. package/docs/api-reference-transaction-helpers.ja.md +120 -120
  21. package/docs/api-reference-transaction-helpers.zh-TW.md +119 -119
  22. package/docs/api-reference-transaction-helpers.zh.md +153 -153
  23. package/docs/api-reference.ja.md +6 -6
  24. package/docs/api-reference.zh-TW.md +5 -5
  25. package/docs/api-reference.zh.md +8 -8
  26. package/docs/core-concepts-client-architecture.ja.md +26 -26
  27. package/docs/core-concepts-client-architecture.zh-TW.md +34 -34
  28. package/docs/core-concepts-client-architecture.zh.md +26 -26
  29. package/docs/core-concepts-event-subscriptions.ja.md +29 -29
  30. package/docs/core-concepts-event-subscriptions.zh-TW.md +23 -23
  31. package/docs/core-concepts-event-subscriptions.zh.md +29 -29
  32. package/docs/core-concepts-gas-payment.ja.md +27 -27
  33. package/docs/core-concepts-gas-payment.zh-TW.md +28 -28
  34. package/docs/core-concepts-gas-payment.zh.md +32 -32
  35. package/docs/core-concepts-transaction-lifecycle.ja.md +40 -40
  36. package/docs/core-concepts-transaction-lifecycle.zh-TW.md +43 -43
  37. package/docs/core-concepts-transaction-lifecycle.zh.md +49 -49
  38. package/docs/core-concepts.ja.md +7 -7
  39. package/docs/core-concepts.zh-TW.md +6 -6
  40. package/docs/core-concepts.zh.md +7 -7
  41. package/docs/getting-started-basic-usage.ja.md +24 -24
  42. package/docs/getting-started-basic-usage.zh-TW.md +28 -28
  43. package/docs/getting-started-basic-usage.zh.md +24 -24
  44. package/docs/getting-started-installation.ja.md +13 -13
  45. package/docs/getting-started-installation.zh-TW.md +9 -9
  46. package/docs/getting-started-installation.zh.md +15 -15
  47. package/docs/getting-started.ja.md +5 -5
  48. package/docs/getting-started.zh-TW.md +6 -6
  49. package/docs/getting-started.zh.md +6 -7
  50. package/docs/how-to-guides-delegate-permissions.ja.md +21 -21
  51. package/docs/how-to-guides-delegate-permissions.zh-TW.md +20 -21
  52. package/docs/how-to-guides-delegate-permissions.zh.md +18 -18
  53. package/docs/how-to-guides-manage-accounts.ja.md +21 -21
  54. package/docs/how-to-guides-manage-accounts.zh-TW.md +23 -23
  55. package/docs/how-to-guides-manage-accounts.zh.md +17 -17
  56. package/docs/how-to-guides-manage-assets.ja.md +137 -60
  57. package/docs/how-to-guides-manage-assets.md +77 -0
  58. package/docs/how-to-guides-manage-assets.zh-TW.md +116 -39
  59. package/docs/how-to-guides-manage-assets.zh.md +142 -65
  60. package/docs/how-to-guides-manage-tokens.ja.md +47 -47
  61. package/docs/how-to-guides-manage-tokens.zh-TW.md +49 -49
  62. package/docs/how-to-guides-manage-tokens.zh.md +34 -34
  63. package/docs/how-to-guides-stake-tokens-and-assets.ja.md +56 -56
  64. package/docs/how-to-guides-stake-tokens-and-assets.zh-TW.md +55 -55
  65. package/docs/how-to-guides-stake-tokens-and-assets.zh.md +51 -51
  66. package/docs/how-to-guides-transfer-tokens-and-nfts.ja.md +45 -45
  67. package/docs/how-to-guides-transfer-tokens-and-nfts.zh-TW.md +46 -46
  68. package/docs/how-to-guides-transfer-tokens-and-nfts.zh.md +37 -37
  69. package/docs/how-to-guides.ja.md +8 -8
  70. package/docs/how-to-guides.zh-TW.md +4 -4
  71. package/docs/how-to-guides.zh.md +6 -6
  72. package/docs/overview.ja.md +15 -15
  73. package/docs/overview.zh-TW.md +14 -14
  74. package/docs/overview.zh.md +12 -12
  75. package/lib/base.js +2 -2
  76. package/lib/base.js.map +1 -1
  77. package/lib/extension.js +4 -4
  78. package/lib/extension.js.map +1 -1
  79. package/package.json +15 -15
@@ -1,43 +1,43 @@
1
- # 低レベルAPI
1
+ # 低レベル API
2
2
 
3
- 低レベルAPIは、トランザクションのライフサイクル全体にわたって詳細な制御を提供します。[高レベルAPI](./api-reference-transaction-helpers.md)が詳細を抽象化するのとは異なり、これらのメソッドを使用すると、手動でトランザクションを構築、エンコード、署名、送信できます。これは、トランザクションがブロードキャストされる前に複数の当事者が署名する必要があるマルチシグネチャワークフローなど、高度なシナリオに最適です。
3
+ 低レベル API は、トランザクションのライフサイクル全体にわたるきめ細やかな制御を提供します。[高レベル API](./api-reference-transaction-helpers.md) が詳細を抽象化するのとは異なり、これらのメソッドを使用すると、トランザクションを手動で構築、エンコード、署名、送信できます。これは、ブロードキャストされる前に異なる関係者がトランザクションに署名する必要があるマルチシグネチャワークフローなどの高度なシナリオに最適です。
4
4
 
5
- このAPIは、トランザクションライフサイクルの各段階に対応する4つの主要なメソッドグループに分かれています。
5
+ この API は、トランザクションライフサイクルの各段階に対応する4つの主要なメソッドグループに整理されています。
6
6
 
7
- 1. **エンコード**: トランザクションを準備し、バイナリバッファにシリアライズします。
7
+ 1. **エンコード**: トランザクションを準備し、バイナリバッファにシリアル化します。
8
8
  2. **署名**: エンコードされたトランザクションにデジタル署名を追加します。
9
- 3. **マルチシグ**: トランザクションに複数のデジタル署名を追加します。
9
+ 3. **マルチ署名**: トランザクションに複数のデジタル署名を追加します。
10
10
  4. **送信**: 署名されたトランザクションをブロックチェーンにブロードキャストします。
11
11
 
12
12
  ## トランザクションのエンコード
13
13
 
14
- エンコードは、トランザクションを作成する最初のステップです。`encode[Type]Tx`メソッドは、コアトランザクションデータ(`itx`)を標準のトランザクション構造でラップし、`chainId`や`nonce`などの必要な詳細を追加します。結果として、人間が読める形式のトランザクションオブジェクトと、署名可能なバイナリバッファが生成されます。
14
+ エンコードは、トランザクションを作成する最初のステップです。`encode[Type]Tx` メソッドは、コアトランザクションデータ (`itx`) を受け取り、それを標準的なトランザクション構造でラップし、`chainId` や `nonce` などの必要な詳細を追加します。結果として、人間が読める形式のトランザクションオブジェクトと、署名準備ができたバイナリバッファが生成されます。
15
15
 
16
- チェーンでサポートされているすべてのトランザクションタイプに対応する`encode`メソッドが存在します。`client.getTxEncodeMethods()`を呼び出すことで、全リストを取得できます。
16
+ チェーンでサポートされているすべてのトランザクションタイプに対して `encode` メソッドが存在します。`client.getTxEncodeMethods()` を呼び出すことで、全リストを取得できます。
17
17
 
18
18
  ### `encode[Type]Tx(payload)`
19
19
 
20
- トランザクションに署名せずにエンコードします。
20
+ トランザクションを署名せずにエンコードします。
21
21
 
22
- **パラメーター**
22
+ **パラメータ**
23
23
 
24
24
  <x-field-group>
25
25
  <x-field data-name="tx" data-type="object" data-required="true">
26
26
  <x-field-desc markdown>トランザクションデータオブジェクト。</x-field-desc>
27
27
  <x-field data-name="itx" data-type="object" data-required="true" data-desc="トランザクションタイプに固有の内部トランザクションオブジェクト。"></x-field>
28
- <x-field data-name="from" data-type="string" data-required="false" data-desc="送信者のアドレス。指定しない場合、ウォレットから派生します。"></x-field>
29
- <x-field data-name="nonce" data-type="number" data-required="false" data-desc="トランザクションのnonce。設定されていない場合、デフォルトは`Date.now()`です。"></x-field>
30
- <x-field data-name="chainId" data-type="string" data-required="false" data-desc="チェーンID。指定しない場合、接続されたノードから取得されます。"></x-field>
28
+ <x-field data-name="from" data-type="string" data-required="false" data-desc="送信者のアドレス。指定されていない場合は、ウォレットから派生します。"></x-field>
29
+ <x-field data-name="nonce" data-type="number" data-required="false" data-desc="トランザクションのナンス。設定されていない場合は、`Date.now()` がデフォルト値となります。"></x-field>
30
+ <x-field data-name="chainId" data-type="string" data-required="false" data-desc="チェーン ID。指定されていない場合は、接続されたノードから取得されます。"></x-field>
31
31
  </x-field>
32
32
  <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="送信者のアドレスと公開鍵を派生させるために使用されるウォレットオブジェクト。"></x-field>
33
- <x-field data-name="delegator" data-type="string" data-required="false" data-desc="該当する場合、権限を委任するアカウントのアドレス。"></x-field>
33
+ <x-field data-name="delegator" data-type="string" data-required="false" data-desc="該当する場合、権限を委任しているアカウントのアドレス。"></x-field>
34
34
  </x-field-group>
35
35
 
36
36
  **戻り値**
37
37
 
38
- <x-field data-name="Promise<object>" data-type="Promise<object>" data-desc="エンコードされたトランザクションを含むオブジェクトに解決されるPromise。">
38
+ <x-field data-name="Promise<object>" data-type="Promise<object>" data-desc="エンコードされたトランザクションを含むオブジェクトに解決される Promise。">
39
39
  <x-field data-name="object" data-type="object" data-desc="人間が読める形式のトランザクションオブジェクト。"></x-field>
40
- <x-field data-name="buffer" data-type="Buffer" data-desc="署名可能な、シリアライズされたトランザクションのバイナリバッファ。"></x-field>
40
+ <x-field data-name="buffer" data-type="Buffer" data-desc="署名準備ができた、シリアル化されたトランザクションのバイナリバッファ。"></x-field>
41
41
  </x-field>
42
42
 
43
43
  **例**
@@ -57,32 +57,32 @@ const { object, buffer } = await encodeTransferV2Tx({
57
57
  wallet: senderWallet,
58
58
  });
59
59
 
60
- console.log('エンコードされたTXオブジェクト:', object);
61
- console.log('署名するバッファ:', buffer.toString('hex'));
60
+ console.log('Encoded TX Object:', object);
61
+ console.log('Buffer to Sign:', buffer.toString('hex'));
62
62
  ```
63
63
 
64
- ## トランザクションの署名
64
+ ## トランザクションへの署名
65
65
 
66
- `sign[Type]Tx`メソッドは、エンコードのステップにデジタル署名の追加を加えて構築されます。これらのメソッドはトランザクションをエンコードし、提供されたウォレットを使用して生成されたバイナリバッファに署名します。
66
+ `sign[Type]Tx` メソッドは、エンコードステップにデジタル署名を追加することで、そのステップを基盤としています。これらのメソッドはトランザクションをエンコードし、提供されたウォレットを使用して結果のバイナリバッファに署名します。
67
67
 
68
- `client.getTxSignMethods()`を呼び出すことで、利用可能な署名メソッドの全リストを取得できます。
68
+ `client.getTxSignMethods()` を呼び出すことで、利用可能な署名メソッドの全リストを取得できます。
69
69
 
70
70
  ### `sign[Type]Tx(payload)`
71
71
 
72
72
  トランザクションをエンコードし、署名します。
73
73
 
74
- **パラメーター**
74
+ **パラメータ**
75
75
 
76
76
  <x-field-group>
77
77
  <x-field data-name="tx" data-type="object" data-required="true" data-desc="トランザクションデータオブジェクト。エンコード用と同じです。"></x-field>
78
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="トランザクションの署名に使用されるウォレット。"></x-field>
78
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="トランザクションへの署名に使用されるウォレット。"></x-field>
79
79
  <x-field data-name="delegator" data-type="string" data-required="false" data-desc="該当する場合、デリゲータのアドレス。"></x-field>
80
- <x-field data-name="encoding" data-type="string" data-required="false" data-desc="出力のオプションのエンコーディング('base16''hex''base58''base64')。省略した場合、トランザクションオブジェクトを返します。"></x-field>
80
+ <x-field data-name="encoding" data-type="string" data-required="false" data-desc="出力のオプションのエンコーディング ('base16', 'hex', 'base58', 'base64')。省略された場合、トランザクションオブジェクトを返します。"></x-field>
81
81
  </x-field-group>
82
82
 
83
83
  **戻り値**
84
84
 
85
- <x-field data-name="Promise<object|string>" data-type="Promise<object|string>" data-desc="署名されたトランザクションオブジェクト、または`encoding`が指定されている場合はエンコードされた文字列に解決されるPromise。"></x-field>
85
+ <x-field data-name="Promise<object|string>" data-type="Promise<object|string>" data-desc="署名されたトランザクションオブジェクト、または `encoding` が指定されている場合はエンコードされた文字列に解決される Promise。"></x-field>
86
86
 
87
87
  **例**
88
88
 
@@ -101,32 +101,32 @@ const signedTx = await signTransferV2Tx({
101
101
  wallet: senderWallet,
102
102
  });
103
103
 
104
- console.log('署名済みTX:', signedTx);
104
+ console.log('Signed TX:', signedTx);
105
105
  ```
106
106
 
107
107
  ## トランザクションの送信
108
108
 
109
- `send[Type]Tx`メソッドは、トランザクションをブロックチェーンにブロードキャストする役割を担います。これらのメソッドは、署名されていないトランザクションとウォレットが提供された場合に暗黙的に署名を行うか、すでに署名済みのトランザクションを送信することができます。
109
+ `send[Type]Tx` メソッドは、トランザクションをブロックチェーンにブロードキャストする役割を担います。これらのメソッドは、署名されていないトランザクションとウォレットが提供された場合に署名ステップを暗黙的に実行することも、すでに署名されたトランザクションを送信することもできます。
110
110
 
111
- `client.getTxSendMethods()`を介して送信メソッドの全リストが利用可能です。
111
+ 送信メソッドの全リストは `client.getTxSendMethods()` を介して利用できます。
112
112
 
113
113
  ### `send[Type]Tx(payload)`
114
114
 
115
115
  トランザクションに署名し(必要な場合)、チェーンに送信します。
116
116
 
117
- **パラメーター**
117
+ **パラメータ**
118
118
 
119
119
  <x-field-group>
120
120
  <x-field data-name="tx" data-type="object" data-required="true" data-desc="トランザクションオブジェクト。署名済みでも未署名でもかまいません。"></x-field>
121
121
  <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="トランザクションに署名するためのウォレット。トランザクションが事前に署名されていても、送信者を特定するために必要です。"></x-field>
122
- <x-field data-name="signature" data-type="string" data-required="false" data-desc="トランザクションの事前計算された署名。提供された場合、ウォレットは再度署名に使用されません。"></x-field>
122
+ <x-field data-name="signature" data-type="string" data-required="false" data-desc="トランザクションの事前に計算された署名。指定された場合、ウォレットは再署名に使用されません。"></x-field>
123
123
  <x-field data-name="delegator" data-type="string" data-required="false" data-desc="該当する場合、デリゲータのアドレス。"></x-field>
124
124
  <x-field data-name="commit" data-type="boolean" data-default="false" data-required="false" data-desc="解決する前に、トランザクションがブロックにコミットされるのを待つかどうか。"></x-field>
125
125
  </x-field-group>
126
126
 
127
127
  **戻り値**
128
128
 
129
- <x-field data-name="Promise<string>" data-type="Promise<string>" data-desc="トランザクションハッシュに解決されるPromise。"></x-field>
129
+ <x-field data-name="Promise<string>" data-type="Promise<string>" data-desc="トランザクションハッシュに解決される Promise。"></x-field>
130
130
 
131
131
  **例:自動署名**
132
132
 
@@ -135,7 +135,7 @@ const { sendTransferV2Tx } = client;
135
135
  const senderWallet = fromRandom();
136
136
  const receiverAddress = 'z1...';
137
137
 
138
- // クライアントは送信前にsenderWalletを使用してこのトランザクションに署名します。
138
+ // クライアントは送信前に senderWallet を使用してこのトランザクションに署名します。
139
139
  const txHash = await sendTransferV2Tx({
140
140
  tx: {
141
141
  itx: {
@@ -146,13 +146,13 @@ const txHash = await sendTransferV2Tx({
146
146
  wallet: senderWallet,
147
147
  });
148
148
 
149
- console.log('トランザクションがハッシュで送信されました:', txHash);
149
+ console.log('Transaction sent with hash:', txHash);
150
150
  ```
151
151
 
152
- **例:事前署名済みトランザクションの送信**
152
+ **例:署名済みトランザクションの送信**
153
153
 
154
154
  ```javascript TransferV2Tx icon=logos:javascript
155
- // signedTxはsign[Type]Txの例からのものと仮定します
155
+ // signedTx sign[Type]Tx の例からのものと仮定します
156
156
  const { sendTransferV2Tx } = client;
157
157
 
158
158
  const txHash = await sendTransferV2Tx({
@@ -160,49 +160,49 @@ const txHash = await sendTransferV2Tx({
160
160
  wallet: senderWallet,
161
161
  });
162
162
 
163
- console.log('事前署名されたトランザクションがハッシュで送信されました:', txHash);
163
+ console.log('Pre-signed transaction sent with hash:', txHash);
164
164
  ```
165
165
 
166
166
  ## マルチシグネチャトランザクション
167
167
 
168
- 複数の署名が必要なワークフロー(アトミックスワップなど)では、`multiSign[Type]Tx`メソッドを使用します。このプロセスでは、まず一方の当事者が(標準の`sign[Type]Tx`メソッドを使用して)トランザクションに署名し、続いて他の当事者が対応する`multiSign[Type]Tx`メソッドを使用して署名を追加します。
168
+ アトミックスワップのように複数の署名を必要とするワークフローでは、`multiSign[Type]Tx` メソッドが使用されます。このプロセスでは、まず一方の当事者が(標準の `sign[Type]Tx` メソッドを使用して)トランザクションに署名し、後続の当事者が対応する `multiSign[Type]Tx` メソッドを使用して自身の署名を追加します。
169
169
 
170
- `client.getTxMultiSignMethods()`を介して、複数の署名をサポートするトランザクションのリストを取得できます。
170
+ `client.getTxMultiSignMethods()` を介して、複数の署名をサポートするトランザクションのリストを取得できます。
171
171
 
172
172
  ### `multiSign[Type]Tx(payload)`
173
173
 
174
174
  すでに1つ以上の署名があるトランザクションに署名を追加します。
175
175
 
176
- **パラメーター**
176
+ **パラメータ**
177
177
 
178
178
  <x-field-group>
179
- <x-field data-name="tx" data-type="object" data-required="true" data-desc="トランザクションオブジェクト。すでに少なくとも1つの署名が含まれている必要があります。"></x-field>
179
+ <x-field data-name="tx" data-type="object" data-required="true" data-desc="トランザクションオブジェクト。少なくとも1つの署名がすでに含まれている必要があります。"></x-field>
180
180
  <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="現在の署名者のウォレット。"></x-field>
181
181
  <x-field data-name="delegator" data-type="string" data-required="false" data-desc="該当する場合、現在の署名者のデリゲータのアドレス。"></x-field>
182
182
  <x-field data-name="data" data-type="any" data-required="false" data-desc="署名に含めるオプションのデータ。"></x-field>
183
- <x-field data-name="encoding" data-type="string" data-required="false" data-desc="出力のオプションのエンコーディング('base16''hex''base58''base64')。"></x-field>
183
+ <x-field data-name="encoding" data-type="string" data-required="false" data-desc="出力のオプションのエンコーディング ('base16', 'hex', 'base58', 'base64')。"></x-field>
184
184
  </x-field-group>
185
185
 
186
186
  **戻り値**
187
187
 
188
- <x-field data-name="Promise<object|string>" data-type="Promise<object|string>" data-desc="新しい署名が追加されたトランザクションオブジェクトに解決されるPromise。"></x-field>
188
+ <x-field data-name="Promise<object|string>" data-type="Promise<object|string>" data-desc="新しい署名が追加されたトランザクションオブジェクトに解決される Promise。"></x-field>
189
189
 
190
190
  **例:アトミックスワップ (`ExchangeV2Tx`)**
191
191
 
192
192
  ```javascript ExchangeV2Tx icon=logos:javascript
193
- // 2つの当事者のウォレット
193
+ // 2者のウォレット
194
194
  const aliceWallet = fromRandom();
195
195
  const bobWallet = fromRandom();
196
196
 
197
- // 1. Aliceが最初の交換トランザクションを準備し、署名します
197
+ // 1. アリスが最初の交換トランザクションを準備し、署名します
198
198
  const exchangeTx = {
199
199
  itx: {
200
200
  to: bobWallet.address,
201
201
  sender: {
202
- value: await client.fromTokenToUnit(10), // Aliceは10トークンを提供します
202
+ value: await client.fromTokenToUnit(10), // アリスは10トークンを提供します
203
203
  },
204
204
  receiver: {
205
- value: await client.fromTokenToUnit(5), // Aliceは5トークンを要求します
205
+ value: await client.fromTokenToUnit(5), // アリスは5トークンを要求します
206
206
  },
207
207
  },
208
208
  };
@@ -212,17 +212,17 @@ const signedByAlice = await client.signExchangeV2Tx({
212
212
  wallet: aliceWallet,
213
213
  });
214
214
 
215
- // 2. Aliceは`signedByAlice`をBobに送信します。Bobは自分の署名を追加します。
215
+ // 2. アリスは `signedByAlice` をボブに送信します。ボブは自身の署名を追加します。
216
216
  const signedByBoth = await client.multiSignExchangeV2Tx({
217
217
  tx: signedByAlice,
218
218
  wallet: bobWallet,
219
219
  });
220
220
 
221
- // 3. Bobは`signedByBoth`をAliceに送り返します。Aliceが最終的なトランザクションを送信します。
221
+ // 3. ボブは `signedByBoth` をアリスに返送します。アリスが最終的なトランザクションを送信します。
222
222
  const txHash = await client.sendExchangeV2Tx({
223
223
  tx: signedByBoth,
224
- wallet: aliceWallet, // 送信者のウォレットが送信に使用されます
224
+ wallet: aliceWallet, // 送信者のウォレットが提出に使用されます
225
225
  });
226
226
 
227
- console.log('アトミックスワップトランザクションが送信されました:', txHash);
227
+ console.log('Atomic swap transaction sent:', txHash);
228
228
  ```
@@ -1,23 +1,23 @@
1
1
  # 低階 API
2
2
 
3
- The Low-level API 提供了對整個交易生命週期的精細控制。與將細節抽象化的 [高階 API](./api-reference-transaction-helpers.md) 不同,這些方法允許您手動建構、編碼、簽署和發送交易。這對於進階場景非常理想,例如多重簽名工作流程,其中不同方需要在廣播交易之前簽署交易。
3
+ 低階 API 提供了對整個交易生命週期的細粒度控制。與抽象化細節的[高階 API](./api-reference-transaction-helpers.md)不同,這些方法允許您手動建構、編碼、簽署和傳送交易。這對於進階情境非常理想,例如多重簽署工作流程,其中不同方需要在交易廣播前簽署交易。
4
4
 
5
5
  此 API 分為四個主要的方法群組,每個群組對應交易生命週期中的一個階段:
6
6
 
7
7
  1. **編碼**:準備一筆交易並將其序列化為二進位緩衝區。
8
- 2. **簽署**:為已編碼的交易新增數位簽章。
9
- 3. **多重簽署**:為一筆交易新增多個數位簽章。
10
- 4. **發送**:將已簽署的交易廣播到區塊鏈。
8
+ 2. **簽署**:為已編碼的交易新增數位簽名。
9
+ 3. **多重簽署**:為一筆交易新增多個數位簽名。
10
+ 4. **傳送**:將已簽署的交易廣播到區塊鏈。
11
11
 
12
12
  ## 編碼交易
13
13
 
14
- 編碼是建立交易的第一步。`encode[Type]Tx` 方法會接收核心交易資料(`itx`)並將其包裝在標準交易結構中,新增必要的細節,如 `chainId` 和 `nonce`。結果是一個可讀的交易物件和一個準備好簽署的二進位緩衝區。
14
+ 編碼是建立交易的第一步。`encode[Type]Tx` 方法會接收核心交易資料(`itx`)並將其包裝在標準交易結構中,新增如 `chainId` 和 `nonce` 等必要細節。結果是一個可供人類讀取的交易物件和一個準備好簽署的二進位緩衝區。
15
15
 
16
- 鏈支援的每種交易類型都有一個 `encode` 方法。您可以透過呼叫 `client.getTxEncodeMethods()` 來取得完整列表。
16
+ 鏈上支援的每種交易類型都有一個對應的 `encode` 方法。您可以透過呼叫 `client.getTxEncodeMethods()` 來獲取完整列表。
17
17
 
18
18
  ### `encode[Type]Tx(payload)`
19
19
 
20
- 編碼一筆交易而不進行簽署。
20
+ 編碼一筆交易但不進行簽署。
21
21
 
22
22
  **參數**
23
23
 
@@ -25,19 +25,19 @@ The Low-level API 提供了對整個交易生命週期的精細控制。與將
25
25
  <x-field data-name="tx" data-type="object" data-required="true">
26
26
  <x-field-desc markdown>交易資料物件。</x-field-desc>
27
27
  <x-field data-name="itx" data-type="object" data-required="true" data-desc="特定於交易類型的內部交易物件。"></x-field>
28
- <x-field data-name="from" data-type="string" data-required="false" data-desc="發送者地址。如果未提供,則從錢包中衍生。"></x-field>
29
- <x-field data-name="nonce" data-type="number" data-required="false" data-desc="交易 nonce。如果未設定,預設為 `Date.now()`。"></x-field>
30
- <x-field data-name="chainId" data-type="string" data-required="false" data-desc="鏈 ID。如果未提供,則從連接的節點中獲取。"></x-field>
28
+ <x-field data-name="from" data-type="string" data-required="false" data-desc="傳送者地址。若未提供,則從錢包推導得出。"></x-field>
29
+ <x-field data-name="nonce" data-type="number" data-required="false" data-desc="交易 nonce。若未設定,預設為 `Date.now()`。"></x-field>
30
+ <x-field data-name="chainId" data-type="string" data-required="false" data-desc="鏈 ID。若未提供,則從連接的節點獲取。"></x-field>
31
31
  </x-field>
32
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="用於衍生發送者地址和公鑰的錢包物件。"></x-field>
33
- <x-field data-name="delegator" data-type="string" data-required="false" data-desc="委託權限的帳戶地址(如適用)。"></x-field>
32
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="用於推導傳送者地址和公鑰的錢包物件。"></x-field>
33
+ <x-field data-name="delegator" data-type="string" data-required="false" data-desc="委派權限的帳戶地址(如果適用)。"></x-field>
34
34
  </x-field-group>
35
35
 
36
36
  **回傳值**
37
37
 
38
- <x-field data-name="Promise<object>" data-type="Promise<object>" data-desc="一個解析為包含已編碼交易物件的 promise">
39
- <x-field data-name="object" data-type="object" data-desc="可讀的交易物件。"></x-field>
40
- <x-field data-name="buffer" data-type="Buffer" data-desc="已序列化的交易二進位緩衝區,準備好進行簽署。"></x-field>
38
+ <x-field data-name="Promise<object>" data-type="Promise<object>" data-desc="一個 promise,其解析為包含已編碼交易的物件。">
39
+ <x-field data-name="object" data-type="object" data-desc="可供人類讀取的交易物件。"></x-field>
40
+ <x-field data-name="buffer" data-type="Buffer" data-desc="已序列化的交易二進位緩衝區,可供簽署。"></x-field>
41
41
  </x-field>
42
42
 
43
43
  **範例**
@@ -57,15 +57,15 @@ const { object, buffer } = await encodeTransferV2Tx({
57
57
  wallet: senderWallet,
58
58
  });
59
59
 
60
- console.log('已編碼的交易物件:', object);
61
- console.log('待簽署的緩衝區:', buffer.toString('hex'));
60
+ console.log('Encoded TX Object:', object);
61
+ console.log('Buffer to Sign:', buffer.toString('hex'));
62
62
  ```
63
63
 
64
64
  ## 簽署交易
65
65
 
66
- The `sign[Type]Tx` 方法建立在編碼步驟之上,透過新增數位簽章。這些方法會編碼交易,然後使用提供的錢包來簽署產生的二進位緩衝區。
66
+ `sign[Type]Tx` 方法建立在編碼步驟之上,增加了數位簽名。這些方法會編碼交易,然後使用提供的錢包來簽署產生的二進位緩衝區。
67
67
 
68
- 您可以透過呼叫 `client.getTxSignMethods()` 來取得所有可用的簽署方法列表。
68
+ 您可以透過呼叫 `client.getTxSignMethods()` 來獲取所有可用的簽署方法完整列表。
69
69
 
70
70
  ### `sign[Type]Tx(payload)`
71
71
 
@@ -76,13 +76,13 @@ The `sign[Type]Tx` 方法建立在編碼步驟之上,透過新增數位簽章
76
76
  <x-field-group>
77
77
  <x-field data-name="tx" data-type="object" data-required="true" data-desc="交易資料物件,與編碼時相同。"></x-field>
78
78
  <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="用於簽署交易的錢包。"></x-field>
79
- <x-field data-name="delegator" data-type="string" data-required="false" data-desc="委託人地址(如適用)。"></x-field>
80
- <x-field data-name="encoding" data-type="string" data-required="false" data-desc="輸出的可選編碼('base16'、'hex'、'base58'、'base64')。如果省略,則回傳交易物件。"></x-field>
79
+ <x-field data-name="delegator" data-type="string" data-required="false" data-desc="委派者地址(如果適用)。"></x-field>
80
+ <x-field data-name="encoding" data-type="string" data-required="false" data-desc="輸出的可選編碼('base16'、'hex'、'base58'、'base64')。若省略,則回傳交易物件。"></x-field>
81
81
  </x-field-group>
82
82
 
83
83
  **回傳值**
84
84
 
85
- <x-field data-name="Promise<object|string>" data-type="Promise<object|string>" data-desc="一個解析為已簽署交易物件的 promise,如果指定了 `encoding`,則為編碼後的字串。"></x-field>
85
+ <x-field data-name="Promise<object|string>" data-type="Promise<object|string>" data-desc="一個 promise,其解析為已簽署的交易物件,或在指定 `encoding` 時解析為編碼後的字串。"></x-field>
86
86
 
87
87
  **範例**
88
88
 
@@ -101,27 +101,27 @@ const signedTx = await signTransferV2Tx({
101
101
  wallet: senderWallet,
102
102
  });
103
103
 
104
- console.log('已簽署的交易:', signedTx);
104
+ console.log('Signed TX:', signedTx);
105
105
  ```
106
106
 
107
- ## 發送交易
107
+ ## 傳送交易
108
108
 
109
- The `send[Type]Tx` 方法負責將交易廣播到區塊鏈。如果提供了未簽署的交易和錢包,這些方法可以隱式地執行簽署步驟,或者它們可以發送已經簽署的交易。
109
+ `send[Type]Tx` 方法負責將交易廣播到區塊鏈。如果提供的是未簽署的交易和一個錢包,這些方法可以隱式地執行簽署步驟;或者它們也可以傳送一個已經簽署過的交易。
110
110
 
111
- 可透過 `client.getTxSendMethods()` 取得完整的發送方法列表。
111
+ 可透過 `client.getTxSendMethods()` 獲取傳送方法的完整列表。
112
112
 
113
113
  ### `send[Type]Tx(payload)`
114
114
 
115
- 簽署(如果需要)並將交易發送到鏈上。
115
+ 簽署(如有必要)並將交易傳送到鏈上。
116
116
 
117
117
  **參數**
118
118
 
119
119
  <x-field-group>
120
120
  <x-field data-name="tx" data-type="object" data-required="true" data-desc="交易物件。可以是已簽署或未簽署的。"></x-field>
121
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="用於簽署交易的錢包。即使交易已預先簽署,仍需要此錢包來識別發送者。"></x-field>
122
- <x-field data-name="signature" data-type="string" data-required="false" data-desc="交易的預先計算簽章。如果提供此項,錢包將不會再次用於簽署。"></x-field>
123
- <x-field data-name="delegator" data-type="string" data-required="false" data-desc="委託人地址(如適用)。"></x-field>
124
- <x-field data-name="commit" data-type="boolean" data-default="false" data-required="false" data-desc="是否在解析前回傳,等待交易被提交到區塊中。"></x-field>
121
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="用於簽署交易的錢包。即使交易已預先簽署,仍需此錢包來識別傳送者。"></x-field>
122
+ <x-field data-name="signature" data-type="string" data-required="false" data-desc="交易的預先計算簽名。若提供此簽名,將不會再次使用錢包進行簽署。"></x-field>
123
+ <x-field data-name="delegator" data-type="string" data-required="false" data-desc="委派者地址(如果適用)。"></x-field>
124
+ <x-field data-name="commit" data-type="boolean" data-default="false" data-required="false" data-desc="是否等待交易被提交到區塊後才完成 promise。"></x-field>
125
125
  </x-field-group>
126
126
 
127
127
  **回傳值**
@@ -135,7 +135,7 @@ const { sendTransferV2Tx } = client;
135
135
  const senderWallet = fromRandom();
136
136
  const receiverAddress = 'z1...';
137
137
 
138
- // 客戶端將在發送前使用 senderWallet 簽署此交易。
138
+ // 客戶端將在傳送前使用 senderWallet 簽署此交易。
139
139
  const txHash = await sendTransferV2Tx({
140
140
  tx: {
141
141
  itx: {
@@ -146,10 +146,10 @@ const txHash = await sendTransferV2Tx({
146
146
  wallet: senderWallet,
147
147
  });
148
148
 
149
- console.log('已發送交易,雜湊值為:', txHash);
149
+ console.log('Transaction sent with hash:', txHash);
150
150
  ```
151
151
 
152
- **範例:發送預先簽署的交易**
152
+ **範例:傳送預先簽署的交易**
153
153
 
154
154
  ```javascript TransferV2Tx icon=logos:javascript
155
155
  // 假設 signedTx 來自 sign[Type]Tx 範例
@@ -160,32 +160,32 @@ const txHash = await sendTransferV2Tx({
160
160
  wallet: senderWallet,
161
161
  });
162
162
 
163
- console.log('已發送預先簽署的交易,雜湊值為:', txHash);
163
+ console.log('Pre-signed transaction sent with hash:', txHash);
164
164
  ```
165
165
 
166
- ## 多重簽章交易
166
+ ## 多重簽署交易
167
167
 
168
- 對於需要多個簽章的工作流程(例如原子交換),會使用 `multiSign[Type]Tx` 方法。該過程涉及一方首先簽署交易(使用標準的 `sign[Type]Tx` 方法),然後後續各方使用相應的 `multiSign[Type]Tx` 方法新增其簽章。
168
+ 對於需要多個簽名(如原子交換)的工作流程,會使用 `multiSign[Type]Tx` 方法。此過程涉及一方先簽署交易(使用標準的 `sign[Type]Tx` 方法),然後後續的參與方使用對應的 `multiSign[Type]Tx` 方法新增他們的簽名。
169
169
 
170
- 您可以透過 `client.getTxMultiSignMethods()` 取得支援多重簽章的交易列表。
170
+ 您可以透過 `client.getTxMultiSignMethods()` 獲取支援多重簽名的交易列表。
171
171
 
172
172
  ### `multiSign[Type]Tx(payload)`
173
173
 
174
- 為一個已有一或多個簽章的交易新增一個簽章。
174
+ 為一個已經有一個或多個簽名的交易新增一個簽名。
175
175
 
176
176
  **參數**
177
177
 
178
178
  <x-field-group>
179
- <x-field data-name="tx" data-type="object" data-required="true" data-desc="交易物件,應已包含至少一個簽章。"></x-field>
180
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="目前簽署者的錢包。"></x-field>
181
- <x-field data-name="delegator" data-type="string" data-required="false" data-desc="目前簽署者的委託人地址(如適用)。"></x-field>
182
- <x-field data-name="data" data-type="any" data-required="false" data-desc="可選資料,與簽章一起包含。"></x-field>
179
+ <x-field data-name="tx" data-type="object" data-required="true" data-desc="交易物件,應已包含至少一個簽名。"></x-field>
180
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="當前簽署者的錢包。"></x-field>
181
+ <x-field data-name="delegator" data-type="string" data-required="false" data-desc="當前簽署者的委派者地址(如果適用)。"></x-field>
182
+ <x-field data-name="data" data-type="any" data-required="false" data-desc="可隨簽名包含的選用資料。"></x-field>
183
183
  <x-field data-name="encoding" data-type="string" data-required="false" data-desc="輸出的可選編碼('base16'、'hex'、'base58'、'base64')。"></x-field>
184
184
  </x-field-group>
185
185
 
186
186
  **回傳值**
187
187
 
188
- <x-field data-name="Promise<object|string>" data-type="Promise<object|string>" data-desc="一個解析為新增了新簽章的交易物件的 promise"></x-field>
188
+ <x-field data-name="Promise<object|string>" data-type="Promise<object|string>" data-desc="一個 promise,其解析為已新增新簽名的交易物件。"></x-field>
189
189
 
190
190
  **範例:原子交換 (`ExchangeV2Tx`)**
191
191
 
@@ -212,17 +212,17 @@ const signedByAlice = await client.signExchangeV2Tx({
212
212
  wallet: aliceWallet,
213
213
  });
214
214
 
215
- // 2. Alice 將 `signedByAlice` 發送給 Bob。Bob 新增他的簽章。
215
+ // 2. Alice 將 `signedByAlice` 傳送給 Bob。Bob 加入他的簽名。
216
216
  const signedByBoth = await client.multiSignExchangeV2Tx({
217
217
  tx: signedByAlice,
218
218
  wallet: bobWallet,
219
219
  });
220
220
 
221
- // 3. Bob 將 `signedByBoth` 發回給 Alice。Alice 發送最終交易。
221
+ // 3. Bob 將 `signedByBoth` 傳回給 Alice。Alice 傳送最終的交易。
222
222
  const txHash = await client.sendExchangeV2Tx({
223
223
  tx: signedByBoth,
224
- wallet: aliceWallet, // 使用發送者錢包提交
224
+ wallet: aliceWallet, // 使用傳送者錢包來提交
225
225
  });
226
226
 
227
- console.log('原子交換交易已發送:', txHash);
227
+ console.log('Atomic swap transaction sent:', txHash);
228
228
  ```