@ocap/client 1.25.6 → 1.26.1

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 +16 -16
@@ -1,39 +1,39 @@
1
- # トークンと資産のステーキング
1
+ # トークンとアセットのステーク
2
2
 
3
- ステーキングとは、トークンや資産 (NFT) を特定の受信者にロックアップするプロセスであり、多くの場合、ネットワークを保護したり、ガバナンスに参加したり、報酬を得たりするために行われます。このガイドでは、OCAP クライアントを使用したステーキングのライフサイクル全体 (ステークの作成、取り消し、資産の回収、懲罰的な理由によるステークの没収) をステップバイステップで説明します。
3
+ ステーキングとは、特定の受取人に対してトークンやアセット(NFT)をロックアップするプロセスであり、多くの場合、ネットワークのセキュリティを確保したり、ガバナンスに参加したり、報酬を得るために行われます。このガイドでは、OCAP Client を使用したステーキングのライフサイクル全体を段階的に説明します。これには、ステークの作成、その取り消し、アセットの請求、懲罰的な理由によるステークのスラッシュが含まれます。
4
4
 
5
- このプロセスには、いくつかの主要なメソッドが含まれます:
6
- - `stake()`: 新しいステークを作成するため。
7
- - `revokeStake()`: ステークしたアイテムを引き出すプロセスを開始するため。
8
- - `claimStake()`: 引き出しを完了し、アイテムをアカウントに戻すため。
9
- - `slashStake()`: 承認された当事者がステーカーにペナルティを課すことを許可するため。
5
+ このプロセスには、いくつかの主要なメソッドが関わります:
6
+ - `stake()`: 新しいステークを作成します。
7
+ - `revokeStake()`: ステークされたアイテムを引き出すプロセスを開始します。
8
+ - `claimStake()`: 引き出しを完了し、アイテムをアカウントに戻します。
9
+ - `slashStake()`: 権限を持つ者がステーカーにペナルティを課すことを許可します。
10
10
 
11
- ## ステークする方法
11
+ ## ステーク方法
12
12
 
13
- まず、`stake` メソッドを使用してトークンや資産をロックします。このアクションにより、ステークされたアイテムとそれらを管理するルールを保持する、新しいユニークなステークアドレスがチェーン上に作成されます。
13
+ まず、`stake` メソッドを使用してトークンやアセットをロックします。このアクションにより、ステークされたアイテムとそのルールを保持する、チェーン上で一意の新しいステークアドレスが作成されます。
14
14
 
15
15
  ### パラメータ
16
16
 
17
17
  <x-field-group>
18
- <x-field data-name="to" data-type="string" data-required="true" data-desc="ステークを受け取るアカウントの DID アドレス。"></x-field>
19
- <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="ステークする資産アドレス (NFT) の配列。"></x-field>
18
+ <x-field data-name="to" data-type="string" data-required="true" data-desc="ステークを受け取るアカウントのDIDアドレス。"></x-field>
19
+ <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="ステークするアセットアドレス(NFT)の配列。"></x-field>
20
20
  <x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="ステークするトークンオブジェクトの配列。">
21
21
  <x-field data-name="address" data-type="string" data-required="true" data-desc="トークンコントラクトのアドレス。"></x-field>
22
22
  <x-field data-name="value" data-type="number" data-required="true" data-desc="ステークするトークンの量。"></x-field>
23
23
  </x-field>
24
24
  <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="ステーカーのウォレットオブジェクト。"></x-field>
25
25
  <x-field data-name="locked" data-type="boolean" data-default="false" data-required="false" data-desc="作成時にステークがロックされるかどうかを示すブール値。"></x-field>
26
- <x-field data-name="slashers" data-type="string[]" data-required="false" data-desc="このステークをスラッシュすることが許可されている DID アドレスの配列。指定されていない場合、デフォルトで受信者のアドレスになります。"></x-field>
26
+ <x-field data-name="slashers" data-type="string[]" data-required="false" data-desc="このステークをスラッシュすることが許可されているDIDアドレスの配列。指定しない場合、デフォルトで受取人のアドレスになります。"></x-field>
27
27
  <x-field data-name="message" data-type="string" data-required="false" data-desc="ステークのためのオプションのメモまたはメッセージ。"></x-field>
28
28
  <x-field data-name="nonce" data-type="string" data-required="false" data-desc="ステークアドレスが一意であることを保証するためのオプションのナンス。"></x-field>
29
29
  </x-field-group>
30
30
 
31
31
  ### 例
32
32
 
33
- ```javascript Staking Tokens and an Asset icon=logos:javascript
34
- // 'client' が初期化された GraphQLClient インスタンスであり、
35
- // 'stakerWallet' が有効なウォレットオブジェクトであると仮定します。
36
- const receiverAddress = 'z29d5852576b8a8b6f3a8b4b74a3f4a3e2e1d'; // ステーク受信者のアドレス
33
+ ```javascript トークンとアセットのステーキング icon=logos:javascript
34
+ // 'client' は初期化された GraphQLClient インスタンスであると仮定します
35
+ // また 'stakerWallet' は有効なウォレットオブジェクトであると仮定します。
36
+ const receiverAddress = 'z29d5852576b8a8b6f3a8b4b74a3f4a3e2e1d'; // ステーク受取人のアドレス
37
37
 
38
38
  async function createStake() {
39
39
  try {
@@ -43,16 +43,16 @@ async function createStake() {
43
43
  address: 'z35n6aTUTK8h5nAF43h21A1g84g3C3D7B5E', // ステークするトークンのアドレス
44
44
  value: 100, // ステークするトークンの量
45
45
  }],
46
- assets: ['zNKtA1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6'], // ステークする資産/NFTのアドレス
47
- message: 'バリデーター報酬のためのステーキング',
46
+ assets: ['zNKtA1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6'], // ステークするアセット/NFTのアドレス
47
+ message: 'Staking for validator rewards',
48
48
  wallet: stakerWallet,
49
49
  });
50
50
 
51
- console.log('ステークトランザクションが送信されました:', txHash);
52
- console.log('新しいステークアドレスが作成されました:', stakeAddress);
51
+ console.log('Stake transaction sent:', txHash);
52
+ console.log('New stake address created:', stakeAddress);
53
53
  return stakeAddress;
54
54
  } catch (error) {
55
- console.error('ステーク作成エラー:', error);
55
+ console.error('Error creating stake:', error);
56
56
  }
57
57
  }
58
58
  ```
@@ -63,27 +63,27 @@ async function createStake() {
63
63
 
64
64
  ---
65
65
 
66
- ## ステークを取り消す方法
66
+ ## ステークの取り消し方法
67
67
 
68
- ステークの取り消しは、ステーカーがロックされたトークンと資産を回収するために開始するプロセスです。このトランザクションは資金を即座に返すものではありません。代わりに、オンチェーンのロックアップ期間に従い、請求可能としてマークします。
68
+ ステークの取り消しは、ステーカーがロックされたトークンとアセットを回収するために開始するプロセスです。このトランザクションは資金を即座に返すのではなく、チェーン上のロックアップ期間に従って、請求可能としてマークします。
69
69
 
70
70
  ### パラメータ
71
71
 
72
72
  <x-field-group>
73
- <x-field data-name="from" data-type="string" data-required="true" data-desc="取り消すステークのアドレス ('stake' 呼び出しから取得)。"></x-field>
74
- <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="ステークから取り消す資産アドレスの配列。"></x-field>
73
+ <x-field data-name="from" data-type="string" data-required="true" data-desc="取り消すステークのアドレス('stake' 呼び出しから取得)。"></x-field>
74
+ <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="ステークから取り消すアセットアドレスの配列。"></x-field>
75
75
  <x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="取り消すトークンオブジェクトの配列。">
76
76
  <x-field data-name="address" data-type="string" data-required="true" data-desc="トークンコントラクトのアドレス。"></x-field>
77
77
  <x-field data-name="value" data-type="number" data-required="true" data-desc="取り消すトークンの量。"></x-field>
78
78
  </x-field>
79
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="ステーカーのウォレットオブジェクト。ステークの元の作成者でなければなりません。"></x-field>
79
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="ステーカーのウォレットオブジェクト。ステークの元の作成者である必要があります。"></x-field>
80
80
  </x-field-group>
81
81
 
82
82
  ### 例
83
83
 
84
- ```javascript Revoking a Stake icon=logos:javascript
85
- // 'stakeAddress' が前のステップで返されたアドレスであり、
86
- // 'stakerWallet' がステークの作成に使用されたのと同じウォレットであると仮定します。
84
+ ```javascript ステークの取り消し icon=logos:javascript
85
+ // 'stakeAddress' は前のステップで返されたアドレスであると仮定します
86
+ // また 'stakerWallet' はステークの作成に使用されたものと同じウォレットであると仮定します。
87
87
 
88
88
  async function revokeExistingStake(stakeAddress) {
89
89
  try {
@@ -97,38 +97,38 @@ async function revokeExistingStake(stakeAddress) {
97
97
  wallet: stakerWallet,
98
98
  });
99
99
 
100
- console.log('ステーク取り消しトランザクションが送信されました:', revokeTxHash);
101
- console.log('重要: 後でステークを請求するために、このハッシュを保存してください。');
100
+ console.log('Revoke stake transaction sent:', revokeTxHash);
101
+ console.log('IMPORTANT: Save this hash to claim your stake later.');
102
102
  return revokeTxHash;
103
103
  } catch (error) {
104
- console.error('ステーク取り消しエラー:', error);
104
+ console.error('Error revoking stake:', error);
105
105
  }
106
106
  }
107
107
  ```
108
108
 
109
109
  ### 戻り値
110
110
 
111
- この関数は、取り消し操作のトランザクションハッシュを返します。このハッシュは証拠として機能し、ステークを請求する最終ステップで**必須**です。
111
+ この関数は、取り消し操作のトランザクションハッシュを返します。このハッシュは証明として機能し、ステークを請求する最終ステップで**必須**となります。
112
112
 
113
113
  ---
114
114
 
115
- ## 取り消されたステークを請求する方法
115
+ ## 取り消されたステークの請求方法
116
116
 
117
- ステークが正常に取り消された後、ステーカーは `claimStake` トランザクションを送信して、トークンと資産を自分のアカウントに戻す必要があります。これにより、引き出しプロセスが完了します。
117
+ ステークが正常に取り消された後、ステーカーは `claimStake` トランザクションを送信して、トークンとアセットを自分のアカウントに戻す必要があります。これにより、引き出しプロセスが完了します。
118
118
 
119
119
  ### パラメータ
120
120
 
121
121
  <x-field-group>
122
122
  <x-field data-name="from" data-type="string" data-required="true" data-desc="ステークのアドレス。"></x-field>
123
- <x-field data-name="evidence" data-type="string" data-required="true" data-desc="'revokeStake' 呼び出しからのトランザクションハッシュ。取り消しの証明として機能します。"></x-field>
123
+ <x-field data-name="evidence" data-type="string" data-required="true" data-desc="'revokeStake' 呼び出しからのトランザクションハッシュ。これは取り消しの証明として機能します。"></x-field>
124
124
  <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="ステーカーのウォレットオブジェクト。"></x-field>
125
125
  </x-field-group>
126
126
 
127
127
  ### 例
128
128
 
129
- ```javascript Claiming Staked Items icon=logos:javascript
130
- // 'stakeAddress' と 'revokeTxHash' は前のステップからのものであり、
131
- // 'stakerWallet' はステーカーのウォレットであると仮定します。
129
+ ```javascript ステークされたアイテムの請求 icon=logos:javascript
130
+ // 'stakeAddress' と 'revokeTxHash' は前のステップからのものであると仮定します。
131
+ // また 'stakerWallet' はステーカーのウォレットであると仮定します。
132
132
 
133
133
  async function claimRevokedStake(stakeAddress, revokeTxHash) {
134
134
  try {
@@ -138,58 +138,58 @@ async function claimRevokedStake(stakeAddress, revokeTxHash) {
138
138
  wallet: stakerWallet,
139
139
  });
140
140
 
141
- console.log('ステーク請求トランザクションが送信されました:', claimTxHash);
142
- console.log('あなたのトークンと資産はあなたのアカウントに返却されました。');
141
+ console.log('Claim stake transaction sent:', claimTxHash);
142
+ console.log('Your tokens and assets have been returned to your account.');
143
143
  } catch (error) {
144
- console.error('ステーク請求エラー:', error);
144
+ console.error('Error claiming stake:', error);
145
145
  }
146
146
  }
147
147
  ```
148
148
 
149
149
  ### 戻り値
150
150
 
151
- このメソッドは最終的なトランザクションハッシュを返します。このトランザクションがチェーン上で確認されると、ステークされたアイテムは `wallet` のアドレスに返却されます。
151
+ このメソッドは、最終的なトランザクションハッシュを返します。このトランザクションがチェーン上で確認されると、ステークされたアイテムは `wallet` のアドレスに返されます。
152
152
 
153
153
  ---
154
154
 
155
- ## ステークをスラッシュする方法
155
+ ## ステークのスラッシュ方法
156
156
 
157
- スラッシュは、指定された `slasher` (通常はステークの受信者) がステーカーに対して行うことができる懲罰的なアクションです。これは通常、ステーカーが特定のルールに違反した場合に発生します。スラッシュされたトークンや資産はステークから削除され、指定された保管庫に送られます。
157
+ スラッシュは、指定された `slasher`(通常はステークの受取人)がステーカーに対して行うことができる懲罰的措置です。これは通常、ステーカーが特定のルールに違反した場合に発生します。スラッシュされたトークンやアセットはステークから削除され、指定された保管庫に送られます。
158
158
 
159
159
  ### パラメータ
160
160
 
161
161
  <x-field-group>
162
162
  <x-field data-name="from" data-type="string" data-required="true" data-desc="スラッシュされるステークのアドレス。"></x-field>
163
163
  <x-field data-name="reason" data-type="string" data-required="true" data-desc="スラッシュが発生する理由を説明する必須のメッセージ。"></x-field>
164
- <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="ステークからスラッシュされる資産アドレスの配列。"></x-field>
164
+ <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="ステークからスラッシュされるアセットアドレスの配列。"></x-field>
165
165
  <x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="スラッシュされるトークンオブジェクトの配列。">
166
166
  <x-field data-name="address" data-type="string" data-required="true" data-desc="トークンコントラクトのアドレス。"></x-field>
167
167
  <x-field data-name="value" data-type="number" data-required="true" data-desc="スラッシュするトークンの量。"></x-field>
168
168
  </x-field>
169
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="承認されたスラッシャーのウォレットオブジェクト。"></x-field>
169
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="権限のあるスラッシャーのウォレットオブジェクト。"></x-field>
170
170
  </x-field-group>
171
171
 
172
172
  ### 例
173
173
 
174
- ```javascript Slashing a Stake icon=logos:javascript
175
- // 'stakeAddress' がスラッシュされるステークのアドレスであり、
176
- // 'slasherWallet' が承認されたスラッシャーのウォレットであると仮定します。
174
+ ```javascript ステークのスラッシュ icon=logos:javascript
175
+ // 'stakeAddress' はスラッシュされるステークのアドレスであると仮定します。
176
+ // また 'slasherWallet' は権限のあるスラッシャーのウォレットであると仮定します。
177
177
 
178
178
  async function slashExistingStake(stakeAddress) {
179
179
  try {
180
180
  const slashTxHash = await client.slashStake({
181
181
  from: stakeAddress,
182
- reason: 'バリデーターが10回連続でブロックの署名を逃しました。',
182
+ reason: 'Validator missed signing 10 consecutive blocks.',
183
183
  tokens: [{
184
184
  address: 'z35n6aTUTK8h5nAF43h21A1g84g3C3D7B5E',
185
- value: 10, // 罰として10トークンをスラッシュ
185
+ value: 10, // ペナルティとして10トークンをスラッシュする
186
186
  }],
187
187
  wallet: slasherWallet,
188
188
  });
189
189
 
190
- console.log('ステークスラッシュトランザクションが送信されました:', slashTxHash);
190
+ console.log('Slash stake transaction sent:', slashTxHash);
191
191
  } catch (error) {
192
- console.error('ステークスラッシュエラー:', error);
192
+ console.error('Error slashing stake:', error);
193
193
  }
194
194
  }
195
195
  ```
@@ -200,6 +200,6 @@ async function slashExistingStake(stakeAddress) {
200
200
 
201
201
  ## まとめ
202
202
 
203
- これで、OCAP ブロックチェーンでのステーキングの完全なライフサイクルを学びました: `stake` でステークを作成し、`revokeStake` と `claimStake` で資金を回収し、`slashStake` で悪意のある行為者を罰します。この強力なメカニズムは、多くの分散型アプリケーションの基本です。
203
+ これで、OCAP ブロックチェーン上でのステーキングの完全なライフサイクルを学びました:`stake` でステークを作成し、`revokeStake` と `claimStake` で資金を回収し、`slashStake` で不正な行為者を罰します。この強力なメカニズムは、多くの分散型アプリケーションの基礎となります。
204
204
 
205
- ステークできるアイテムについてさらに詳しく知るには、[トークンの管理](./how-to-guides-manage-tokens.md)および[資産 (NFT) の管理](./how-to-guides-manage-assets.md)ガイドを参照してください。
205
+ ステークできるアイテムについてさらに詳しく知りたい場合は、[トークンの管理](./how-to-guides-manage-tokens.md) および [アセット(NFT)の管理](./how-to-guides-manage-assets.md) のガイドを参照してください。
@@ -1,36 +1,36 @@
1
1
  # 質押代幣與資產
2
2
 
3
- 質押是將代幣或資產 (NFTs) 鎖定給特定接收者的過程,通常是為了保護網路、參與治理或賺取獎勵。本指南使用 OCAP Client,提供整個質押生命週期的逐步演練,包括創建質押、撤銷質押、領回資產,以及因懲罰性原因削減質押。
3
+ 「質押」是將代幣或資產 (NFT) 鎖定給特定接收者的過程,通常是為了保護網路、參與治理或賺取獎勵。本指南將逐步引導您使用 OCAP Client 完成整個質押生命週期,包括建立質押、撤銷質押、取回資產以及因懲罰性原因而削減質押。
4
4
 
5
5
  此過程涉及幾個關鍵方法:
6
- - `stake()`: 用於創建一個新的質押。
7
- - `revokeStake()`: 用於啟動撤回您已質押物品的過程。
8
- - `claimStake()`: 用於完成撤回並將物品返還至您的帳戶。
9
- - `slashStake()`: 用於允許授權方懲罰質押者。
6
+ - `stake()`: 建立新的質押。
7
+ - `revokeStake()`: 啟動撤回您已質押物品的過程。
8
+ - `claimStake()`: 完成撤回並將物品返還至您的帳戶。
9
+ - `slashStake()`: 允許授權方懲罰質押者。
10
10
 
11
11
  ## 如何質押
12
12
 
13
- 首先,您使用 `stake` 方法來鎖定您的代幣或資產。此操作會在鏈上創建一個新的、唯一的質押地址,該地址持有您質押的物品及管理它們的規則。
13
+ 首先,您使用 `stake` 方法來鎖定您的代幣或資產。此操作會在鏈上建立一個新的、唯一的質押地址,用於存放您質押的物品及管理它們的規則。
14
14
 
15
15
  ### 參數
16
16
 
17
17
  <x-field-group>
18
- <x-field data-name="to" data-type="string" data-required="true" data-desc="將接收質押的帳戶的 DID 地址。"></x-field>
19
- <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="要質押的資產地址 (NFTs) 陣列。"></x-field>
20
- <x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="要質押的代幣物件陣列。">
18
+ <x-field data-name="to" data-type="string" data-required="true" data-desc="將接收質押的帳戶 DID 地址。"></x-field>
19
+ <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="待質押的資產地址 (NFT) 陣列。"></x-field>
20
+ <x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="待質押的代幣物件陣列。">
21
21
  <x-field data-name="address" data-type="string" data-required="true" data-desc="代幣合約的地址。"></x-field>
22
- <x-field data-name="value" data-type="number" data-required="true" data-desc="要質押的代幣數量。"></x-field>
22
+ <x-field data-name="value" data-type="number" data-required="true" data-desc="質押的代幣數量。"></x-field>
23
23
  </x-field>
24
24
  <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="質押者的錢包物件。"></x-field>
25
- <x-field data-name="locked" data-type="boolean" data-default="false" data-required="false" data-desc="一個布林值,表示質押在創建時是否被鎖定。"></x-field>
25
+ <x-field data-name="locked" data-type="boolean" data-default="false" data-required="false" data-desc="一個布林值,表示質押在建立時是否被鎖定。"></x-field>
26
26
  <x-field data-name="slashers" data-type="string[]" data-required="false" data-desc="允許削減此質押的 DID 地址陣列。若未提供,則預設為接收者的地址。"></x-field>
27
- <x-field data-name="message" data-type="string" data-required="false" data-desc="質押的選填備註或訊息。"></x-field>
28
- <x-field data-name="nonce" data-type="string" data-required="false" data-desc="一個選填的 nonce,以確保質押地址是唯一的。"></x-field>
27
+ <x-field data-name="message" data-type="string" data-required="false" data-desc="質押的選用註記或訊息。"></x-field>
28
+ <x-field data-name="nonce" data-type="string" data-required="false" data-desc="一個選用的 nonce,以確保質押地址的唯一性。"></x-field>
29
29
  </x-field-group>
30
30
 
31
31
  ### 範例
32
32
 
33
- ```javascript 質押代幣與資產 icon=logos:javascript
33
+ ```javascript 質押代幣與一個資產 icon=logos:javascript
34
34
  // 假設 'client' 是一個已初始化的 GraphQLClient 實例
35
35
  // 且 'stakerWallet' 是一個有效的錢包物件。
36
36
  const receiverAddress = 'z29d5852576b8a8b6f3a8b4b74a3f4a3e2e1d'; // 質押接收者的地址
@@ -44,46 +44,46 @@ async function createStake() {
44
44
  value: 100, // 要質押的代幣數量
45
45
  }],
46
46
  assets: ['zNKtA1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6'], // 要質押的資產/NFT 地址
47
- message: '為驗證者獎勵而質押',
47
+ message: 'Staking for validator rewards',
48
48
  wallet: stakerWallet,
49
49
  });
50
50
 
51
- console.log('質押交易已發送:', txHash);
52
- console.log('已創建新的質押地址:', stakeAddress);
51
+ console.log('Stake transaction sent:', txHash);
52
+ console.log('New stake address created:', stakeAddress);
53
53
  return stakeAddress;
54
54
  } catch (error) {
55
- console.error('創建質押時發生錯誤:', error);
55
+ console.error('Error creating stake:', error);
56
56
  }
57
57
  }
58
58
  ```
59
59
 
60
- ### 返回值
60
+ ### 回傳值
61
61
 
62
- `stake` 方法會返回一個包含交易雜湊值和新創建的 `stakeAddress` 的元組。此地址對於未來與此特定質押的所有互動(例如撤銷或削減)至關重要。
62
+ `stake` 方法會回傳一個包含交易雜湊值和新建立的 `stakeAddress` 的元組 (tuple)。此地址對於未來所有與此特定質押相關的互動(例如撤銷或削減)至關重要。
63
63
 
64
64
  ---
65
65
 
66
66
  ## 如何撤銷質押
67
67
 
68
- 撤銷質押是由質押者發起,用以取回其鎖定代幣和資產的過程。此交易不會立即返還資金;而是將其標記為可領取,但需遵守任何鏈上的鎖定期。
68
+ 撤銷質押是由質押者發起以取回其鎖定代幣和資產的過程。此交易不會立即返還資金;而是將其標記為可供領取,但需遵守任何鏈上的鎖定期。
69
69
 
70
70
  ### 參數
71
71
 
72
72
  <x-field-group>
73
- <x-field data-name="from" data-type="string" data-required="true" data-desc="要撤銷的質押地址(從 'stake' 調用中獲取)。"></x-field>
74
- <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="要從質押中撤銷的資產地址陣列。"></x-field>
75
- <x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="要撤銷的代幣物件陣列。">
73
+ <x-field data-name="from" data-type="string" data-required="true" data-desc="待撤銷的質押地址(從 'stake' 呼叫中取得)。"></x-field>
74
+ <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="從質押中撤銷的資產地址陣列。"></x-field>
75
+ <x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="待撤銷的代幣物件陣列。">
76
76
  <x-field data-name="address" data-type="string" data-required="true" data-desc="代幣合約的地址。"></x-field>
77
- <x-field data-name="value" data-type="number" data-required="true" data-desc="要撤銷的代幣數量。"></x-field>
77
+ <x-field data-name="value" data-type="number" data-required="true" data-desc="待撤銷的代幣數量。"></x-field>
78
78
  </x-field>
79
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="質押者的錢包物件,必須是質押的原始創建者。"></x-field>
79
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="質押者的錢包物件,必須是質押的原始建立者。"></x-field>
80
80
  </x-field-group>
81
81
 
82
82
  ### 範例
83
83
 
84
84
  ```javascript 撤銷質押 icon=logos:javascript
85
- // 假設 'stakeAddress' 是上一步返回的地址
86
- // 且 'stakerWallet' 是用於創建質押的同一個錢包。
85
+ // 假設 'stakeAddress' 是上一步回傳的地址
86
+ // 且 'stakerWallet' 是用於建立質押的同一個錢包。
87
87
 
88
88
  async function revokeExistingStake(stakeAddress) {
89
89
  try {
@@ -97,36 +97,36 @@ async function revokeExistingStake(stakeAddress) {
97
97
  wallet: stakerWallet,
98
98
  });
99
99
 
100
- console.log('撤銷質押交易已發送:', revokeTxHash);
101
- console.log('重要:請保存此雜湊值,以便稍後領取您的質押。');
100
+ console.log('Revoke stake transaction sent:', revokeTxHash);
101
+ console.log('重要:請儲存此雜湊值,以便稍後領取您的質押。');
102
102
  return revokeTxHash;
103
103
  } catch (error) {
104
- console.error('撤銷質押時發生錯誤:', error);
104
+ console.error('Error revoking stake:', error);
105
105
  }
106
106
  }
107
107
  ```
108
108
 
109
- ### 返回值
109
+ ### 回傳值
110
110
 
111
- 此函數會返回撤銷操作的交易雜湊值。此雜湊值可作為證據,並且是領取質押最終步驟的**必要**條件。
111
+ 此函數回傳撤銷操作的交易雜湊值。此雜湊值作為證據,並且是領取質押的最後一步所**必需**的。
112
112
 
113
113
  ---
114
114
 
115
115
  ## 如何領取已撤銷的質押
116
116
 
117
- 質押成功撤銷後,質押者必須發送一筆 `claimStake` 交易,才能將代幣和資產移回其帳戶。此步驟將完成整個提款過程。
117
+ 在質押成功撤銷後,質押者必須傳送一筆 `claimStake` 交易,以將代幣和資產移回其帳戶。這一步驟會完成整個撤回過程。
118
118
 
119
119
  ### 參數
120
120
 
121
121
  <x-field-group>
122
122
  <x-field data-name="from" data-type="string" data-required="true" data-desc="質押的地址。"></x-field>
123
- <x-field data-name="evidence" data-type="string" data-required="true" data-desc="來自 'revokeStake' 調用的交易雜湊值,作為撤銷的證明。"></x-field>
123
+ <x-field data-name="evidence" data-type="string" data-required="true" data-desc="來自 'revokeStake' 呼叫的交易雜湊值,作為撤銷的證明。"></x-field>
124
124
  <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="質押者的錢包物件。"></x-field>
125
125
  </x-field-group>
126
126
 
127
127
  ### 範例
128
128
 
129
- ```javascript 領取已質押的物品 icon=logos:javascript
129
+ ```javascript 領取已質押物品 icon=logos:javascript
130
130
  // 假設 'stakeAddress' 和 'revokeTxHash' 來自之前的步驟,
131
131
  // 且 'stakerWallet' 是質押者的錢包。
132
132
 
@@ -138,33 +138,33 @@ async function claimRevokedStake(stakeAddress, revokeTxHash) {
138
138
  wallet: stakerWallet,
139
139
  });
140
140
 
141
- console.log('領取質押交易已發送:', claimTxHash);
141
+ console.log('Claim stake transaction sent:', claimTxHash);
142
142
  console.log('您的代幣和資產已返還至您的帳戶。');
143
143
  } catch (error) {
144
- console.error('領取質押時發生錯誤:', error);
144
+ console.error('Error claiming stake:', error);
145
145
  }
146
146
  }
147
147
  ```
148
148
 
149
- ### 返回值
149
+ ### 回傳值
150
150
 
151
- 此方法會返回最終的交易雜湊值。一旦此交易在鏈上得到確認,質押的物品就會返還至 `wallet` 的地址。
151
+ 此方法會回傳最終的交易雜湊值。一旦此交易在鏈上確認,已質押的物品將返還至 `wallet` 的地址。
152
152
 
153
153
  ---
154
154
 
155
155
  ## 如何削減質押
156
156
 
157
- 削減是由指定的 `slasher`(通常是質押接收者)對質押者採取的懲罰性行動。這通常發生在質押者違反某些規則的情況下。被削減的代幣或資產會從質押中移除,並發送到指定的金庫。
157
+ 「削減」是一種懲罰性行為,可由指定的 `slasher`(通常是質押接收者)對質押者執行。這種情況通常發生在質押者違反某些規則時。被削減的代幣或資產會從質押中移除,並傳送到指定的金庫。
158
158
 
159
159
  ### 參數
160
160
 
161
161
  <x-field-group>
162
- <x-field data-name="from" data-type="string" data-required="true" data-desc="要削減的質押地址。"></x-field>
163
- <x-field data-name="reason" data-type="string" data-required="true" data-desc="一條解釋為何發生削減的強制性訊息。"></x-field>
164
- <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="要從質押中削減的資產地址陣列。"></x-field>
165
- <x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="要削減的代幣物件陣列。">
162
+ <x-field data-name="from" data-type="string" data-required="true" data-desc="待削減的質押地址。"></x-field>
163
+ <x-field data-name="reason" data-type="string" data-required="true" data-desc="解釋削減原因的必要訊息。"></x-field>
164
+ <x-field data-name="assets" data-type="string[]" data-required="false" data-desc="從質押中削減的資產地址陣列。"></x-field>
165
+ <x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="待削減的代幣物件陣列。">
166
166
  <x-field data-name="address" data-type="string" data-required="true" data-desc="代幣合約的地址。"></x-field>
167
- <x-field data-name="value" data-type="number" data-required="true" data-desc="要削減的代幣數量。"></x-field>
167
+ <x-field data-name="value" data-type="number" data-required="true" data-desc="待削減的代幣數量。"></x-field>
168
168
  </x-field>
169
169
  <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="授權削減者的錢包物件。"></x-field>
170
170
  </x-field-group>
@@ -172,34 +172,34 @@ async function claimRevokedStake(stakeAddress, revokeTxHash) {
172
172
  ### 範例
173
173
 
174
174
  ```javascript 削減質押 icon=logos:javascript
175
- // 假設 'stakeAddress' 是要削減的質押地址,
175
+ // 假設 'stakeAddress' 是待削減質押的地址,
176
176
  // 且 'slasherWallet' 是一個授權削減者的錢包。
177
177
 
178
178
  async function slashExistingStake(stakeAddress) {
179
179
  try {
180
180
  const slashTxHash = await client.slashStake({
181
181
  from: stakeAddress,
182
- reason: '驗證者錯過了連續 10 個區塊的簽署。',
182
+ reason: '驗證者連續錯過 10 個區塊的簽署。',
183
183
  tokens: [{
184
184
  address: 'z35n6aTUTK8h5nAF43h21A1g84g3C3D7B5E',
185
- value: 10, // 作為懲罰削減 10 個代幣
185
+ value: 10, // 削減 10 個代幣作為懲罰
186
186
  }],
187
187
  wallet: slasherWallet,
188
188
  });
189
189
 
190
- console.log('削減質押交易已發送:', slashTxHash);
190
+ console.log('Slash stake transaction sent:', slashTxHash);
191
191
  } catch (error) {
192
- console.error('削減質押時發生錯誤:', error);
192
+ console.error('Error slashing stake:', error);
193
193
  }
194
194
  }
195
195
  ```
196
196
 
197
- ### 返回值
197
+ ### 回傳值
198
198
 
199
- 此方法會返回削減操作的交易雜湊值。
199
+ 此方法回傳削減操作的交易雜湊值。
200
200
 
201
201
  ## 總結
202
202
 
203
- 您現在已經學會了在 OCAP 區塊鏈上質押的完整生命週期:使用 `stake` 創建質押,使用 `revokeStake` 和 `claimStake` 取回資金,以及使用 `slashStake` 懲罰不良行為者。這個強大的機制是許多去中心化應用的基礎。
203
+ 您現在已經學會了在 OCAP 區塊鏈上質押的完整生命週期:使用 `stake` 建立質押,使用 `revokeStake` 和 `claimStake` 取回資金,以及使用 `slashStake` 懲罰不良行為者。這個強大的機制是許多去中心化應用的基礎。
204
204
 
205
- 要了解更多關於您可以質押的物品,請參閱 [管理代幣](./how-to-guides-manage-tokens.md) 和 [管理資產 (NFTs)](./how-to-guides-manage-assets.md) 指南。
205
+ 若要深入了解您可以質押的物品,請參閱 [管理代幣](./how-to-guides-manage-tokens.md) 和 [管理資產 (NFT)](./how-to-guides-manage-assets.md) 指南。