@ocap/client 1.25.4 → 1.25.6

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 (68) hide show
  1. package/dist/report.html +1 -1
  2. package/docs/api-reference-client-methods.ja.md +229 -0
  3. package/docs/api-reference-client-methods.zh-TW.md +229 -0
  4. package/docs/api-reference-client-methods.zh.md +27 -27
  5. package/docs/api-reference-data-types.ja.md +482 -0
  6. package/docs/api-reference-data-types.zh-TW.md +482 -0
  7. package/docs/api-reference-data-types.zh.md +14 -14
  8. package/docs/api-reference-low-level-api.ja.md +228 -0
  9. package/docs/api-reference-low-level-api.zh-TW.md +228 -0
  10. package/docs/api-reference-low-level-api.zh.md +39 -39
  11. package/docs/api-reference-query-mutation-methods.ja.md +814 -0
  12. package/docs/api-reference-query-mutation-methods.zh-TW.md +814 -0
  13. package/docs/api-reference-query-mutation-methods.zh.md +158 -158
  14. package/docs/api-reference-transaction-helpers.ja.md +649 -0
  15. package/docs/api-reference-transaction-helpers.zh-TW.md +649 -0
  16. package/docs/api-reference-transaction-helpers.zh.md +112 -112
  17. package/docs/api-reference.ja.md +23 -0
  18. package/docs/api-reference.zh-TW.md +23 -0
  19. package/docs/api-reference.zh.md +6 -6
  20. package/docs/core-concepts-client-architecture.ja.md +102 -0
  21. package/docs/core-concepts-client-architecture.zh-TW.md +102 -0
  22. package/docs/core-concepts-client-architecture.zh.md +21 -21
  23. package/docs/core-concepts-event-subscriptions.ja.md +123 -0
  24. package/docs/core-concepts-event-subscriptions.zh-TW.md +123 -0
  25. package/docs/core-concepts-event-subscriptions.zh.md +22 -22
  26. package/docs/core-concepts-gas-payment.ja.md +111 -0
  27. package/docs/core-concepts-gas-payment.zh-TW.md +111 -0
  28. package/docs/core-concepts-gas-payment.zh.md +30 -30
  29. package/docs/core-concepts-transaction-lifecycle.ja.md +183 -0
  30. package/docs/core-concepts-transaction-lifecycle.zh-TW.md +183 -0
  31. package/docs/core-concepts-transaction-lifecycle.zh.md +51 -51
  32. package/docs/core-concepts.ja.md +22 -0
  33. package/docs/core-concepts.zh-TW.md +22 -0
  34. package/docs/core-concepts.zh.md +6 -6
  35. package/docs/getting-started-basic-usage.ja.md +87 -0
  36. package/docs/getting-started-basic-usage.zh-TW.md +87 -0
  37. package/docs/getting-started-basic-usage.zh.md +17 -17
  38. package/docs/getting-started-installation.ja.md +60 -0
  39. package/docs/getting-started-installation.zh-TW.md +60 -0
  40. package/docs/getting-started-installation.zh.md +14 -14
  41. package/docs/getting-started.ja.md +16 -0
  42. package/docs/getting-started.zh-TW.md +16 -0
  43. package/docs/getting-started.zh.md +6 -5
  44. package/docs/how-to-guides-delegate-permissions.ja.md +167 -0
  45. package/docs/how-to-guides-delegate-permissions.zh-TW.md +167 -0
  46. package/docs/how-to-guides-delegate-permissions.zh.md +27 -28
  47. package/docs/how-to-guides-manage-accounts.ja.md +73 -0
  48. package/docs/how-to-guides-manage-accounts.zh-TW.md +73 -0
  49. package/docs/how-to-guides-manage-accounts.zh.md +14 -14
  50. package/docs/how-to-guides-manage-assets.ja.md +255 -0
  51. package/docs/how-to-guides-manage-assets.zh-TW.md +255 -0
  52. package/docs/how-to-guides-manage-assets.zh.md +60 -60
  53. package/docs/how-to-guides-manage-tokens.ja.md +179 -0
  54. package/docs/how-to-guides-manage-tokens.zh-TW.md +179 -0
  55. package/docs/how-to-guides-manage-tokens.zh.md +52 -52
  56. package/docs/how-to-guides-stake-tokens-and-assets.ja.md +205 -0
  57. package/docs/how-to-guides-stake-tokens-and-assets.zh-TW.md +205 -0
  58. package/docs/how-to-guides-stake-tokens-and-assets.zh.md +44 -44
  59. package/docs/how-to-guides-transfer-tokens-and-nfts.ja.md +179 -0
  60. package/docs/how-to-guides-transfer-tokens-and-nfts.zh-TW.md +179 -0
  61. package/docs/how-to-guides-transfer-tokens-and-nfts.zh.md +47 -47
  62. package/docs/how-to-guides.ja.md +27 -0
  63. package/docs/how-to-guides.zh-TW.md +27 -0
  64. package/docs/how-to-guides.zh.md +11 -11
  65. package/docs/overview.ja.md +70 -0
  66. package/docs/overview.zh-TW.md +70 -0
  67. package/docs/overview.zh.md +8 -8
  68. package/package.json +14 -14
@@ -0,0 +1,167 @@
1
+ # 権限の委任
2
+
3
+ 権限の委任は、あるアカウント(委任者)が別のアカウント(被委任者)に、自身に代わって特定の種類のトランザクションを送信することを許可する強力な機能です。これは、ユーザーの主要な秘密鍵に直接アクセスすることなく、ユーザーのためにアクションを実行する必要があるアプリケーションにとって特に便利です。例えば、特定の資産を転送したり、スマートコントラクトと対話したりする権限をアプリケーション固有のキーに委任することで、キーの権限範囲を制限し、セキュリティを向上させることができます。
4
+
5
+ このガイドでは、委任の付与、使用、取り消しの手順を説明します。
6
+
7
+ ## 委任の付与
8
+
9
+ 別のアカウントを認可するには、`delegate` メソッドを使用します。誰に委任するのか、そして彼らが送信を許可される特定のトランザクションタイプを指定する必要があります。各権限には、どのトークンや資産が関与できるかなどの制限を設けることもできます。
10
+
11
+ ### パラメータ
12
+
13
+ <x-field-group>
14
+ <x-field data-name="from" data-type="WalletObject" data-required="true">
15
+ <x-field-desc markdown>委任者(権限を付与するアカウント)のウォレットオブジェクト。</x-field-desc>
16
+ </x-field>
17
+ <x-field data-name="to" data-type="WalletObject" data-required="true">
18
+ <x-field-desc markdown>被委任者(権限を受け取るアカウント)のウォレットオブジェクト。</x-field-desc>
19
+ </x-field>
20
+ <x-field data-name="privileges" data-type="Array<object>" data-required="true">
21
+ <x-field-desc markdown>付与する権限オブジェクトの配列。各オブジェクトは特定の認可を定義します。</x-field-desc>
22
+ <x-field data-name="typeUrl" data-type="string" data-required="true">
23
+ <x-field-desc markdown>許可されるトランザクションのタイプ URL(例:`fg:t:transfer_v2`)。</x-field-desc>
24
+ </x-field>
25
+ <x-field data-name="limit" data-type="object" data-required="false">
26
+ <x-field-desc markdown>権限に対するオプションの制限。特定のトークンや資産に制限するなど。</x-field-desc>
27
+ <x-field data-name="tokens" data-type="Array<string>" data-required="false" data-desc="この権限が適用されるトークンアドレスの配列。"></x-field>
28
+ <x-field data-name="assets" data-type="Array<string>" data-required="false" data-desc="この権限が適用される資産アドレスの配列。"></x-field>
29
+ </x-field>
30
+ </x-field>
31
+ </x-field-group>
32
+
33
+ ### 戻り値
34
+
35
+ <x-field data-name="result" data-type="Promise<[string, string]>" data-desc="トランザクションハッシュと新しく作成された委任アドレスを含む配列に解決される Promise。"></x-field>
36
+
37
+ ### 例
38
+
39
+ あるアカウントから別のアカウントに `transfer` 権限を委任する方法は次のとおりです。
40
+
41
+ ```javascript 転送権限の付与 icon=logos:javascript
42
+ import Client from '@ocap/client';
43
+ import { fromRandom } from '@ocap/wallet';
44
+ import { typeUrls } from '@ocap/proto';
45
+
46
+ const client = new Client('https://beta.abtnetwork.io/api');
47
+
48
+ // 権限を付与するアカウント
49
+ const delegatorWallet = fromRandom();
50
+
51
+ // 権限を受け取るアカウント
52
+ const delegateeWallet = fromRandom();
53
+
54
+ async function grantPermission() {
55
+ try {
56
+ // まず、委任者アカウントに資金があることを確認します。
57
+ // 実際のアプリケーションでは、faucet や別のアカウントから
58
+ // delegatorWallet.address に資金を送金します。
59
+ console.log(`Delegator address: ${delegatorWallet.address}`);
60
+ console.log(`Delegatee address: ${delegateeWallet.address}`);
61
+ console.log('Please fund the delegator account before proceeding.');
62
+
63
+ const privileges = [
64
+ {
65
+ typeUrl: typeUrls.TransferV2Tx,
66
+ // 制限は指定されておらず、任意のトークン/資産の転送を許可します
67
+ limit: { tokens: [], assets: [] },
68
+ },
69
+ ];
70
+
71
+ const [hash, delegateAddress] = await client.delegate({
72
+ from: delegatorWallet,
73
+ to: delegateeWallet,
74
+ privileges: privileges,
75
+ });
76
+
77
+ console.log('Delegation successful!');
78
+ console.log('Transaction Hash:', hash);
79
+ console.log('Delegate Address:', delegateAddress);
80
+ } catch (error) {
81
+ console.error('Error delegating permissions:', error);
82
+ }
83
+ }
84
+
85
+ grantPermission();
86
+ ```
87
+
88
+ ## 被委任者としてトランザクションを送信する
89
+
90
+ 委任されると、被委任者のウォレットは、トランザクションパラメータで `delegator` のアドレスを指定することにより、認可されたトランザクションを送信できます。トランザクションは被委任者によって署名されますが、委任者に代わって実行され、トランザクション手数料は委任者のアカウントから支払われます。
91
+
92
+ ### 例
93
+
94
+ ```javascript 被委任者として転送を送信する icon=logos:javascript
95
+ // 前の例の grantPermission() 関数が成功したと仮定します
96
+
97
+ // 転送の受信者
98
+ const recipientWallet = fromRandom();
99
+
100
+ async function sendDelegatedTransaction() {
101
+ try {
102
+ const hash = await client.transfer({
103
+ to: recipientWallet.address,
104
+ token: 1, // チェーンのネイティブトークンを1転送
105
+ wallet: delegateeWallet, // 被委任者によって署名
106
+ delegator: delegatorWallet.address, // 委任者に代わって実行
107
+ });
108
+
109
+ console.log('Delegated transfer successful!');
110
+ console.log('Transaction Hash:', hash);
111
+ console.log(`Check transaction at: https://beta.abtnetwork.io/explorer/txs/${hash}`);
112
+ } catch (error) {
113
+ console.error('Error sending delegated transaction:', error);
114
+ }
115
+ }
116
+
117
+ // 委任がオンチェーンで確認された後にこれを呼び出すようにしてください。
118
+ // sendDelegatedTransaction();
119
+ ```
120
+
121
+ ## 委任の取り消し
122
+
123
+ 委任者は、`revokeDelegate` メソッドを使用して、いつでも付与された権限を取り消すことができます。特定の被委任者に対してどのトランザクションタイプを取り消すかを指定する必要があります。
124
+
125
+ ### パラメータ
126
+
127
+ <x-field-group>
128
+ <x-field data-name="from" data-type="WalletObject" data-required="true">
129
+ <x-field-desc markdown>最初に権限を付与した委任者のウォレットオブジェクト。</x-field-desc>
130
+ </x-field>
131
+ <x-field data-name="to" data-type="WalletObject" data-required="true">
132
+ <x-field-desc markdown>権限が取り消される被委任者のウォレットオブジェクト。</x-field-desc>
133
+ </x-field>
134
+ <x-field data-name="privileges" data-type="Array<string>" data-required="true">
135
+ <x-field-desc markdown>取り消すトランザクションの `typeUrl` 文字列の配列。</x-field-desc>
136
+ </x-field>
137
+ </x-field-group>
138
+
139
+ ### 戻り値
140
+
141
+ <x-field data-name="hash" data-type="Promise<string>" data-desc="取り消しのトランザクションハッシュに解決される Promise。"></x-field>
142
+
143
+ ### 例
144
+
145
+ ```javascript 転送権限の取り消し icon=logos:javascript
146
+ // 前の例と同じ delegatorWallet と delegateeWallet を使用すると仮定します
147
+
148
+ async function revokePermission() {
149
+ try {
150
+ const hash = await client.revokeDelegate({
151
+ from: delegatorWallet,
152
+ to: delegateeWallet,
153
+ privileges: [typeUrls.TransferV2Tx], // 取り消す権限のリスト
154
+ });
155
+
156
+ console.log('Revocation successful!');
157
+ console.log('Transaction Hash:', hash);
158
+ console.log(`Check transaction at: https://beta.abtnetwork.io/explorer/txs/${hash}`);
159
+ } catch (error) {
160
+ console.error('Error revoking delegation:', error);
161
+ }
162
+ }
163
+
164
+ // revokePermission();
165
+ ```
166
+
167
+ このトランザクションが確認されると、`delegateeWallet` は `delegatorWallet` に代わって `transfer` トランザクションを送信できなくなります。
@@ -0,0 +1,167 @@
1
+ # 委派權限
2
+
3
+ 委派權限是一項強大的功能,它允許一個帳戶(委派人)授權另一個帳戶(受派人)代表其發送特定類型的交易。這對於需要為使用者執行操作但又不想直接存取使用者主私鑰的應用程式特別有用。例如,您可以將權限委派給特定於應用程式的金鑰,以轉移某些資產或與智慧合約互動,透過限制金鑰的權限範圍來增強安全性。
4
+
5
+ 本指南將引導您完成授予、使用和撤銷委派的過程。
6
+
7
+ ## 授予委派
8
+
9
+ 要授權另一個帳戶,您可以使用 `delegate` 方法。您必須指定要委派給誰以及他們被允許發送哪些特定的交易類型。每項權限還可以有其限制,例如可以涉及哪些代幣或資產。
10
+
11
+ ### 參數
12
+
13
+ <x-field-group>
14
+ <x-field data-name="from" data-type="WalletObject" data-required="true">
15
+ <x-field-desc markdown>委派人(授予權限的帳戶)的錢包物件。</x-field-desc>
16
+ </x-field>
17
+ <x-field data-name="to" data-type="WalletObject" data-required="true">
18
+ <x-field-desc markdown>受派人(接收權限的帳戶)的錢包物件。</x-field-desc>
19
+ </x-field>
20
+ <x-field data-name="privileges" data-type="Array<object>" data-required="true">
21
+ <x-field-desc markdown>要授予的權限物件陣列。每個物件定義一個特定的授權。</x-field-desc>
22
+ <x-field data-name="typeUrl" data-type="string" data-required="true">
23
+ <x-field-desc markdown>被允許的交易的類型 URL(例如 `fg:t:transfer_v2`)。</x-field-desc>
24
+ </x-field>
25
+ <x-field data-name="limit" data-type="object" data-required="false">
26
+ <x-field-desc markdown>對權限的可選限制,例如將其限制為特定的代幣或資產。</x-field-desc>
27
+ <x-field data-name="tokens" data-type="Array<string>" data-required="false" data-desc="此權限適用的代幣地址陣列。"></x-field>
28
+ <x-field data-name="assets" data-type="Array<string>" data-required="false" data-desc="此權限適用的資產地址陣列。"></x-field>
29
+ </x-field>
30
+ </x-field>
31
+ </x-field-group>
32
+
33
+ ### 返回值
34
+
35
+ <x-field data-name="result" data-type="Promise<[string, string]>" data-desc="一個解析為包含交易雜湊和新建立的委派地址的陣列的 Promise。"></x-field>
36
+
37
+ ### 範例
38
+
39
+ 以下是如何將 `transfer` 權限從一個帳戶委派給另一個帳戶的方法。
40
+
41
+ ```javascript Granting transfer permission icon=logos:javascript
42
+ import Client from '@ocap/client';
43
+ import { fromRandom } from '@ocap/wallet';
44
+ import { typeUrls } from '@ocap/proto';
45
+
46
+ const client = new Client('https://beta.abtnetwork.io/api');
47
+
48
+ // 授予權限的帳戶
49
+ const delegatorWallet = fromRandom();
50
+
51
+ // 接收權限的帳戶
52
+ const delegateeWallet = fromRandom();
53
+
54
+ async function grantPermission() {
55
+ try {
56
+ // 首先,確保委派人帳戶有資金。
57
+ // 在實際應用中,您需要將資金從水龍頭或其他帳戶轉入 delegatorWallet.address
58
+ // from a faucet or another account.
59
+ console.log(`Delegator address: ${delegatorWallet.address}`);
60
+ console.log(`Delegatee address: ${delegateeWallet.address}`);
61
+ console.log('Please fund the delegator account before proceeding.');
62
+
63
+ const privileges = [
64
+ {
65
+ typeUrl: typeUrls.TransferV2Tx,
66
+ // 未指定限制,允許轉移任何代幣/資產
67
+ limit: { tokens: [], assets: [] },
68
+ },
69
+ ];
70
+
71
+ const [hash, delegateAddress] = await client.delegate({
72
+ from: delegatorWallet,
73
+ to: delegateeWallet,
74
+ privileges: privileges,
75
+ });
76
+
77
+ console.log('Delegation successful!');
78
+ console.log('Transaction Hash:', hash);
79
+ console.log('Delegate Address:', delegateAddress);
80
+ } catch (error) {
81
+ console.error('Error delegating permissions:', error);
82
+ }
83
+ }
84
+
85
+ grantPermission();
86
+ ```
87
+
88
+ ## 作為受派人發送交易
89
+
90
+ 一旦被委派,受派人錢包可以通過在交易參數中指定 `delegator` 的地址來發送已授權的交易。該交易由受派人簽名,但代表委派人執行,交易費用從委派人的帳戶中支付。
91
+
92
+ ### 範例
93
+
94
+ ```javascript Sending a transfer as a delegatee icon=logos:javascript
95
+ // 假設前一個範例中的 grantPermission() 函數已成功執行
96
+
97
+ // 轉帳的接收者
98
+ const recipientWallet = fromRandom();
99
+
100
+ async function sendDelegatedTransaction() {
101
+ try {
102
+ const hash = await client.transfer({
103
+ to: recipientWallet.address,
104
+ token: 1, // 轉移 1 單位的鏈原生代幣
105
+ wallet: delegateeWallet, // 由受派人簽名
106
+ delegator: delegatorWallet.address, // 代表委派人執行
107
+ });
108
+
109
+ console.log('Delegated transfer successful!');
110
+ console.log('Transaction Hash:', hash);
111
+ console.log(`Check transaction at: https://beta.abtnetwork.io/explorer/txs/${hash}`);
112
+ } catch (error) {
113
+ console.error('Error sending delegated transaction:', error);
114
+ }
115
+ }
116
+
117
+ // 確保在鏈上確認委派後再調用此函數。
118
+ // sendDelegatedTransaction();
119
+ ```
120
+
121
+ ## 撤銷委派
122
+
123
+ 委派人可以隨時使用 `revokeDelegate` 方法撤銷任何已授予的權限。您需要為指定的受派人指定要撤銷哪些交易類型。
124
+
125
+ ### 參數
126
+
127
+ <x-field-group>
128
+ <x-field data-name="from" data-type="WalletObject" data-required="true">
129
+ <x-field-desc markdown>最初授予權限的委派人的錢包物件。</x-field-desc>
130
+ </x-field>
131
+ <x-field data-name="to" data-type="WalletObject" data-required="true">
132
+ <x-field-desc markdown>其權限正在被撤銷的受派人的錢包物件。</x-field-desc>
133
+ </x-field>
134
+ <x-field data-name="privileges" data-type="Array<string>" data-required="true">
135
+ <x-field-desc markdown>要撤銷的交易 `typeUrl` 字串陣列。</x-field-desc>
136
+ </x-field>
137
+ </x-field-group>
138
+
139
+ ### 返回值
140
+
141
+ <x-field data-name="hash" data-type="Promise<string>" data-desc="一個解析為撤銷交易雜湊的 Promise。"></x-field>
142
+
143
+ ### 範例
144
+
145
+ ```javascript Revoking transfer permission icon=logos:javascript
146
+ // 假設使用與前述範例相同的 delegatorWallet 和 delegateeWallet
147
+
148
+ async function revokePermission() {
149
+ try {
150
+ const hash = await client.revokeDelegate({
151
+ from: delegatorWallet,
152
+ to: delegateeWallet,
153
+ privileges: [typeUrls.TransferV2Tx], // 要撤銷的權限列表
154
+ });
155
+
156
+ console.log('Revocation successful!');
157
+ console.log('Transaction Hash:', hash);
158
+ console.log(`Check transaction at: https://beta.abtnetwork.io/explorer/txs/${hash}`);
159
+ } catch (error) {
160
+ console.error('Error revoking delegation:', error);
161
+ }
162
+ }
163
+
164
+ // revokePermission();
165
+ ```
166
+
167
+ 此交易確認後,`delegateeWallet` 將無法再代表 `delegatorWallet` 發送 `transfer` 交易。
@@ -1,12 +1,12 @@
1
1
  # 委托权限
2
2
 
3
- 委托权限是一项强大的功能,它允许一个账户(委托人)授权另一个账户(受托人)代表其发送特定类型的交易。这对于需要为用户执行操作但又不想直接访问用户主私钥的应用程序特别有用。例如,您可以将权限委托给特定于应用程序的密钥,以转移某些资产或与智能合约进行交互,通过限制密钥的权限范围来增强安全性。
3
+ 委托权限是一项强大的功能,它允许一个账户(委托人)授权另一个账户(被委托人)代表其发送特定类型的交易。这对于需要为用户执行操作但又不想直接访问用户主私钥的应用程序尤其有用。例如,您可以将权限委托给特定于应用程序的密钥,以转移某些资产或与智能合约交互,通过限制该密钥的权限范围来增强安全性。
4
4
 
5
- 本指南将引导您完成授予、使用和撤销委托的全过程。
5
+ 本指南将引导您完成授予、使用和撤销委托权限的过程。
6
6
 
7
7
  ## 授予委托
8
8
 
9
- 要授权另一个账户,您需要使用 `delegate` 方法。您必须指定要委托给谁以及他们被允许发送哪些特定的交易类型。每项权限还可以设置限制,例如可以涉及哪些代币或资产。
9
+ 要授权另一个账户,您可以使用 `delegate` 方法。您必须指定要委托给谁以及他们被允许发送哪些特定的交易类型。每个权限还可以有限制,例如可以涉及哪些代币或资产。
10
10
 
11
11
  ### 参数
12
12
 
@@ -15,15 +15,15 @@
15
15
  <x-field-desc markdown>委托人(授予权限的账户)的钱包对象。</x-field-desc>
16
16
  </x-field>
17
17
  <x-field data-name="to" data-type="WalletObject" data-required="true">
18
- <x-field-desc markdown>受托人(接收权限的账户)的钱包对象。</x-field-desc>
18
+ <x-field-desc markdown>被委托人(接收权限的账户)的钱包对象。</x-field-desc>
19
19
  </x-field>
20
20
  <x-field data-name="privileges" data-type="Array<object>" data-required="true">
21
21
  <x-field-desc markdown>要授予的权限对象数组。每个对象定义一个特定的授权。</x-field-desc>
22
22
  <x-field data-name="typeUrl" data-type="string" data-required="true">
23
- <x-field-desc markdown>被许可交易的类型 URL(例如,`fg:t:transfer_v2`)。</x-field-desc>
23
+ <x-field-desc markdown>被许可的交易的类型 URL(例如,`fg:t:transfer_v2`)。</x-field-desc>
24
24
  </x-field>
25
25
  <x-field data-name="limit" data-type="object" data-required="false">
26
- <x-field-desc markdown>对权限的可选限制,例如将其限制为特定的代币或资产。</x-field-desc>
26
+ <x-field-desc markdown>对权限的可选限制,例如限制于特定的代币或资产。</x-field-desc>
27
27
  <x-field data-name="tokens" data-type="Array<string>" data-required="false" data-desc="此权限适用的代币地址数组。"></x-field>
28
28
  <x-field data-name="assets" data-type="Array<string>" data-required="false" data-desc="此权限适用的资产地址数组。"></x-field>
29
29
  </x-field>
@@ -32,7 +32,7 @@
32
32
 
33
33
  ### 返回值
34
34
 
35
- <x-field data-name="result" data-type="Promise<[string, string]>" data-desc="一个 promise,解析后返回一个包含交易哈希和新创建的委托地址的数组。"></x-field>
35
+ <x-field data-name="result" data-type="Promise<[string, string]>" data-desc="一个 Promise,它解析为一个包含交易哈希和新创建的委托地址的数组。"></x-field>
36
36
 
37
37
  ### 示例
38
38
 
@@ -54,11 +54,10 @@ const delegateeWallet = fromRandom();
54
54
  async function grantPermission() {
55
55
  try {
56
56
  // 首先,确保委托人账户有资金。
57
- // 在实际应用中,您需要向 delegatorWallet.address 转账
58
- // 资金可以来自水龙头或另一个账户。
57
+ // 在实际应用中,您需要从水龙头或其他账户向 delegatorWallet.address 转账。
59
58
  console.log(`Delegator address: ${delegatorWallet.address}`);
60
59
  console.log(`Delegatee address: ${delegateeWallet.address}`);
61
- console.log('请在继续操作前为委托人账户注资。');
60
+ console.log('Please fund the delegator account before proceeding.');
62
61
 
63
62
  const privileges = [
64
63
  {
@@ -74,20 +73,20 @@ async function grantPermission() {
74
73
  privileges: privileges,
75
74
  });
76
75
 
77
- console.log('委托成功!');
78
- console.log('交易哈希:', hash);
79
- console.log('委托地址:', delegateAddress);
76
+ console.log('Delegation successful!');
77
+ console.log('Transaction Hash:', hash);
78
+ console.log('Delegate Address:', delegateAddress);
80
79
  } catch (error) {
81
- console.error('委托权限时出错:', error);
80
+ console.error('Error delegating permissions:', error);
82
81
  }
83
82
  }
84
83
 
85
84
  grantPermission();
86
85
  ```
87
86
 
88
- ## 作为受托人发送交易
87
+ ## 作为被委托人发送交易
89
88
 
90
- 一旦获得委托,受托人钱包就可以通过在交易参数中指定 `delegator` 的地址来发送已授权的交易。该交易由受托人签名,但代表委托人执行,交易费用从委托人的账户中支付。
89
+ 一旦被委托,被委托人钱包可以通过在交易参数中指定 `delegator` 的地址来发送已授权的交易。该交易由被委托人签名,但代表委托人执行,并且交易费用从委托人的账户中支付。
91
90
 
92
91
  ### 示例
93
92
 
@@ -102,15 +101,15 @@ async function sendDelegatedTransaction() {
102
101
  const hash = await client.transfer({
103
102
  to: recipientWallet.address,
104
103
  token: 1, // 转移 1 个链的原生代币
105
- wallet: delegateeWallet, // 由受托人签名
104
+ wallet: delegateeWallet, // 由被委托人签名
106
105
  delegator: delegatorWallet.address, // 代表委托人执行
107
106
  });
108
107
 
109
- console.log('委托转账成功!');
110
- console.log('交易哈希:', hash);
108
+ console.log('Delegated transfer successful!');
109
+ console.log('Transaction Hash:', hash);
111
110
  console.log(`Check transaction at: https://beta.abtnetwork.io/explorer/txs/${hash}`);
112
111
  } catch (error) {
113
- console.error('发送委托交易时出错:', error);
112
+ console.error('Error sending delegated transaction:', error);
114
113
  }
115
114
  }
116
115
 
@@ -120,7 +119,7 @@ async function sendDelegatedTransaction() {
120
119
 
121
120
  ## 撤销委托
122
121
 
123
- 委托人可以随时使用 `revokeDelegate` 方法撤销任何已授予的权限。您需要指定要为给定受托人撤销哪些交易类型。
122
+ 委托人可以随时使用 `revokeDelegate` 方法撤销任何已授予的权限。您需要为给定的被委托人指定要撤销的交易类型。
124
123
 
125
124
  ### 参数
126
125
 
@@ -129,7 +128,7 @@ async function sendDelegatedTransaction() {
129
128
  <x-field-desc markdown>最初授予权限的委托人的钱包对象。</x-field-desc>
130
129
  </x-field>
131
130
  <x-field data-name="to" data-type="WalletObject" data-required="true">
132
- <x-field-desc markdown>其权限正在被撤销的受托人的钱包对象。</x-field-desc>
131
+ <x-field-desc markdown>其权限被撤销的被委托人的钱包对象。</x-field-desc>
133
132
  </x-field>
134
133
  <x-field data-name="privileges" data-type="Array<string>" data-required="true">
135
134
  <x-field-desc markdown>要撤销的交易 `typeUrl` 字符串数组。</x-field-desc>
@@ -138,12 +137,12 @@ async function sendDelegatedTransaction() {
138
137
 
139
138
  ### 返回值
140
139
 
141
- <x-field data-name="hash" data-type="Promise<string>" data-desc="一个 promise,解析后返回撤销操作的交易哈希。"></x-field>
140
+ <x-field data-name="hash" data-type="Promise<string>" data-desc="一个 Promise,它解析为撤销操作的交易哈希。"></x-field>
142
141
 
143
142
  ### 示例
144
143
 
145
144
  ```javascript Revoking transfer permission icon=logos:javascript
146
- // 假设使用与前面示例中相同的 delegatorWallet 和 delegateeWallet
145
+ // 假设使用与前面示例相同的 delegatorWallet 和 delegateeWallet
147
146
 
148
147
  async function revokePermission() {
149
148
  try {
@@ -153,15 +152,15 @@ async function revokePermission() {
153
152
  privileges: [typeUrls.TransferV2Tx], // 要撤销的权限列表
154
153
  });
155
154
 
156
- console.log('撤销成功!');
157
- console.log('交易哈希:', hash);
155
+ console.log('Revocation successful!');
156
+ console.log('Transaction Hash:', hash);
158
157
  console.log(`Check transaction at: https://beta.abtnetwork.io/explorer/txs/${hash}`);
159
158
  } catch (error) {
160
- console.error('撤销委托时出错:', error);
159
+ console.error('Error revoking delegation:', error);
161
160
  }
162
161
  }
163
162
 
164
163
  // revokePermission();
165
164
  ```
166
165
 
167
- 此交易确认后,`delegateeWallet` 将不再能够代表 `delegatorWallet` 发送 `transfer` 交易。
166
+ 此交易确认后,`delegateeWallet` 将无法再代表 `delegatorWallet` 发送 `transfer` 交易。
@@ -0,0 +1,73 @@
1
+ # アカウントの管理
2
+
3
+ OCAP を利用したブロックチェーンでは、アカウントは基本的にアドレスに関連付けられた状態であり、暗号鍵のペア(公開鍵と秘密鍵)によって制御されます。理解すべき重要な概念は、アカウントが暗黙的に作成されるということです。アカウントは、トークンや資産の転送など、最初の受信トランザクションを受け取るとすぐに、チェーン上で公式に存在します。明示的な `createAccount` トランザクションはありません。
4
+
5
+ このガイドでは、重要なアカウント管理操作である、アカウントを新しい鍵セットに移行する方法に焦点を当てます。これは、アドレス、残高、または資産を変更することなく、アカウントの所有権を変更できる重要なセキュリティ機能です。
6
+
7
+ ## アカウントを新しい鍵に移行する
8
+
9
+ `migrateAccount` 関数を使用すると、既存のアカウントアドレスを新しい公開鍵に関連付けることができます。これは、次のような複数のシナリオで役立ちます。
10
+
11
+ - **鍵の侵害**:秘密鍵が漏洩した疑いがある場合、アカウントを新しい安全な鍵ペアに移行して、不正アクセスを防ぐことができます。
12
+ - **セキュリティのアップグレード**:古いタイプの鍵から、より新しく安全な鍵に移行したい場合があります。
13
+
14
+ この操作により、ブロックチェーン上の履歴と状態を保持しながら、アカウントの制御を効果的に移転できます。
15
+
16
+ ### パラメーター
17
+
18
+ <x-field-group>
19
+ <x-field data-name="from" data-type="WalletObject" data-required="true">
20
+ <x-field-desc markdown>移行される現在のアカウントを表すウォレットオブジェクト。このウォレットは、所有権を証明するためにトランザクションに署名する必要があります。</x-field-desc>
21
+ </x-field>
22
+ <x-field data-name="to" data-type="WalletObject" data-required="true">
23
+ <x-field-desc markdown>制御が移転される新しいウォレットオブジェクト。このウォレットの公開鍵が、アカウントアドレスの新しい権限になります。</x-field-desc>
24
+ </x-field>
25
+ </x-field-group>
26
+
27
+ ### 戻り値
28
+
29
+ `migrateAccount` メソッドは、トランザクションハッシュを文字列として解決する Promise を返します。
30
+
31
+ ### 例
32
+
33
+ 古いウォレットから新しいウォレットにアカウントを移行する方法を次に示します。
34
+
35
+ ```javascript Migrating an Account icon=logos:javascript
36
+ import Client from '@ocap/client';
37
+ import { fromRandom } from '@ocap/wallet';
38
+
39
+ const client = new Client('https://beta.abtnetwork.io/api');
40
+
41
+ // oldWallet がアカウントの現在承認されているウォレットであると仮定します
42
+ const oldWallet = fromRandom();
43
+
44
+ // 新しい鍵セットで新しいウォレットを作成します
45
+ const newWallet = fromRandom();
46
+
47
+ async function migrate() {
48
+ try {
49
+ // 移行する前に、通常は oldWallet のアドレスに資金を供給します。
50
+ // この例では、トランザクション手数料を支払うのに十分な資金があると仮定します。
51
+ // テストトークンは https://faucet.abtnetwork.io/ から入手できます
52
+ console.log(`アカウントを ${oldWallet.address} から ${newWallet.address} に関連付けられた新しい鍵に移行しています`);
53
+
54
+ const hash = await client.migrateAccount({
55
+ from: oldWallet,
56
+ to: newWallet,
57
+ });
58
+
59
+ console.log('アカウント移行トランザクションは正常に送信されました!');
60
+ console.log('トランザクションハッシュ:', hash);
61
+ console.log(`トランザクションを表示: https://beta.abtnetwork.io/explorer/txs/${hash}`);
62
+
63
+ } catch (err) {
64
+ console.error('アカウント移行エラー:', err);
65
+ }
66
+ }
67
+
68
+ migrate();
69
+ ```
70
+
71
+ ---
72
+
73
+ 鍵を移行してアカウントを保護する方法がわかったので、プライマリキーを共有せずに他のアカウントに限定的な権限を付与する方法を学びたいと思うかもしれません。詳細については、[権限の委任](./how-to-guides-delegate-permissions.md) ガイドを参照してください。
@@ -0,0 +1,73 @@
1
+ # 管理帳戶
2
+
3
+ 在由 OCAP 驅動的區塊鏈上,帳戶基本上是與一個地址相關聯的狀態,由一對加密金鑰(一個公鑰和一個私鑰)控制。一個需要理解的關鍵概念是,帳戶是隱式創建的。一個帳戶只要收到第一筆傳入交易(例如代幣或資產轉移),就正式存在於鏈上。沒有明確的 `createAccount` 交易。
4
+
5
+ 本指南著重於一個關鍵的帳戶管理操作:將帳戶遷移到一組新的金鑰。這是一項重要的安全功能,讓您可以在不改變帳戶地址、餘額或資產的情況下,變更帳戶的所有權。
6
+
7
+ ## 將帳戶遷移至新金鑰
8
+
9
+ `migrateAccount` 函數可讓您將現有帳戶地址與新的公鑰關聯。這在幾種情況下很有用,例如:
10
+
11
+ - **金鑰洩露**:如果您懷疑您的私鑰已外洩,您可以將帳戶遷移到一個新的、安全的金鑰對,以防止未經授權的存取。
12
+ - **升級安全性**:您可能希望從較舊的金鑰類型遷移到更新、更安全的金鑰類型。
13
+
14
+ 此操作有效地轉移了帳戶的控制權,同時保留了其在區塊鏈上的歷史和狀態。
15
+
16
+ ### 參數
17
+
18
+ <x-field-group>
19
+ <x-field data-name="from" data-type="WalletObject" data-required="true">
20
+ <x-field-desc markdown>代表正在遷移的目前帳戶的錢包物件。此錢包必須簽署交易以證明所有權。</x-field-desc>
21
+ </x-field>
22
+ <x-field data-name="to" data-type="WalletObject" data-required="true">
23
+ <x-field-desc markdown>控制權將轉移至的新錢包物件。來自此錢包的公鑰將成為該帳戶地址的新權限。</x-field-desc>
24
+ </x-field>
25
+ </x-field-group>
26
+
27
+ ### 返回值
28
+
29
+ `migrateAccount` 方法返回一個 Promise,該 Promise 會解析為交易雜湊值(字串)。
30
+
31
+ ### 範例
32
+
33
+ 以下是如何將帳戶從舊錢包遷移到新錢包的方法。
34
+
35
+ ```javascript Migrating an Account icon=logos:javascript
36
+ import Client from '@ocap/client';
37
+ import { fromRandom } from '@ocap/wallet';
38
+
39
+ const client = new Client('https://beta.abtnetwork.io/api');
40
+
41
+ // 假設 oldWallet 是目前授權給該帳戶的錢包
42
+ const oldWallet = fromRandom();
43
+
44
+ // 創建一個具有新金鑰組的新錢包
45
+ const newWallet = fromRandom();
46
+
47
+ async function migrate() {
48
+ try {
49
+ // 在遷移之前,您通常需要為 oldWallet 的地址儲值。
50
+ // 在本範例中,我們假設它有足夠的資金來支付交易費用。
51
+ // 您可以從 https://faucet.abtnetwork.io/ 獲取測試代幣
52
+ console.log(`正在將帳戶從 ${oldWallet.address} 遷移至與 ${newWallet.address} 關聯的新金鑰`);
53
+
54
+ const hash = await client.migrateAccount({
55
+ from: oldWallet,
56
+ to: newWallet,
57
+ });
58
+
59
+ console.log('帳戶遷移交易已成功發送!');
60
+ console.log('交易雜湊:', hash);
61
+ console.log(`在此查看交易:https://beta.abtnetwork.io/explorer/txs/${hash}`);
62
+
63
+ } catch (err) {
64
+ console.error('遷移帳戶時出錯:', err);
65
+ }
66
+ }
67
+
68
+ migrate();
69
+ ```
70
+
71
+ ---
72
+
73
+ 現在您已了解如何透過遷移金鑰來保護您的帳戶,您可能想學習如何在不分享主金鑰的情況下,授予其他帳戶有限的權限。更多詳細資訊,請參閱 [委派權限](./how-to-guides-delegate-permissions.md) 指南。