@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.
- 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 +16 -16
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# 高階 API
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
交易輔助函式是內建於 OCAP Client 的高階函式,它抽象化了建立和簽署常見交易的複雜性。您可以使用這些便利的方法來處理建立資產、轉移代幣、質押和執行原子交換等工作流程,而無需手動建構交易物件。這些輔助函式確保了交易結構的正確性,並顯著簡化了開發過程。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
若要更深入地了解底層的交易生命週期,請參閱 [核心概念:交易生命週期](./core-concepts-transaction-lifecycle.md)。
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
|
|
11
11
|
### migrateAccount
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
將帳戶的所有權遷移到一個新的金鑰對。這對於金鑰輪替或帳戶復原非常有用。
|
|
14
14
|
|
|
15
15
|
**參數**
|
|
16
16
|
|
|
17
17
|
<x-field-group>
|
|
18
|
-
<x-field data-name="from" data-type="WalletObject" data-required="true" data-desc="
|
|
19
|
-
<x-field data-name="to" data-type="WalletObject" data-required="true" data-desc="
|
|
18
|
+
<x-field data-name="from" data-type="WalletObject" data-required="true" data-desc="要移轉來源帳戶的錢包物件。"></x-field>
|
|
19
|
+
<x-field data-name="to" data-type="WalletObject" data-required="true" data-desc="要移轉目標帳戶的錢包物件。"></x-field>
|
|
20
20
|
</x-field-group>
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
**回傳值**
|
|
23
23
|
|
|
24
24
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
25
25
|
|
|
@@ -30,28 +30,28 @@ const txHash = await client.migrateAccount({
|
|
|
30
30
|
from: oldWallet,
|
|
31
31
|
to: newWallet,
|
|
32
32
|
});
|
|
33
|
-
console.log('
|
|
33
|
+
console.log('遷移交易雜湊值:', txHash);
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
### delegate
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
授權另一個帳戶(被授權者)代表授權者發送特定類型的交易。這是一個用於建立安全、沙盒化權限的強大功能。
|
|
39
39
|
|
|
40
40
|
**參數**
|
|
41
41
|
|
|
42
42
|
<x-field-group>
|
|
43
|
-
<x-field data-name="from" data-type="WalletObject" data-required="true" data-desc="
|
|
44
|
-
<x-field data-name="to" data-type="WalletObject" data-required="true" data-desc="
|
|
45
|
-
<x-field data-name="privileges" data-type="array" data-required="true" data-desc="
|
|
46
|
-
<x-field data-name="typeUrl" data-type="string" data-required="true" data-desc="
|
|
43
|
+
<x-field data-name="from" data-type="WalletObject" data-required="true" data-desc="授權者的錢包,即授予權限的一方。"></x-field>
|
|
44
|
+
<x-field data-name="to" data-type="WalletObject" data-required="true" data-desc="被授權者的錢包,即接收權限的一方。"></x-field>
|
|
45
|
+
<x-field data-name="privileges" data-type="array" data-required="true" data-desc="一個權限物件陣列,用於指定允許的操作。">
|
|
46
|
+
<x-field data-name="typeUrl" data-type="string" data-required="true" data-desc="被允許交易的類型 URL(例如 'fg:t:transfer_v2')。"></x-field>
|
|
47
47
|
<x-field data-name="limit" data-type="object" data-required="false" data-desc="對委託的可選限制。">
|
|
48
48
|
<x-field data-name="tokens" data-type="array" data-desc="對特定同質化代幣的限制。"></x-field>
|
|
49
|
-
<x-field data-name="assets" data-type="array" data-desc="
|
|
49
|
+
<x-field data-name="assets" data-type="array" data-desc="對特定資產 (NFT) 的限制。"></x-field>
|
|
50
50
|
</x-field>
|
|
51
51
|
</x-field>
|
|
52
52
|
</x-field-group>
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
**回傳值**
|
|
55
55
|
|
|
56
56
|
<x-field data-name="result" data-type="Promise<[string, string]>" data-desc="一個包含交易雜湊值和新建立的委託地址的陣列。"></x-field>
|
|
57
57
|
|
|
@@ -67,25 +67,25 @@ const [txHash, delegateAddress] = await client.delegate({
|
|
|
67
67
|
},
|
|
68
68
|
],
|
|
69
69
|
});
|
|
70
|
-
console.log('
|
|
71
|
-
console.log('
|
|
70
|
+
console.log('委託交易雜湊值:', txHash);
|
|
71
|
+
console.log('委託地址:', delegateAddress);
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
### revokeDelegate
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
從被授權者處撤銷先前授予的權限。
|
|
77
77
|
|
|
78
78
|
**參數**
|
|
79
79
|
|
|
80
80
|
<x-field-group>
|
|
81
|
-
<x-field data-name="from" data-type="WalletObject" data-required="true" data-desc="
|
|
82
|
-
<x-field data-name="to" data-type="WalletObject" data-required="true" data-desc="
|
|
83
|
-
<x-field data-name="privileges" data-type="array" data-required="true" data-desc="
|
|
84
|
-
<x-field data-name="typeUrl" data-type="string" data-required="true" data-desc="
|
|
81
|
+
<x-field data-name="from" data-type="WalletObject" data-required="true" data-desc="授權者的錢包。"></x-field>
|
|
82
|
+
<x-field data-name="to" data-type="WalletObject" data-required="true" data-desc="被授權者的錢包。"></x-field>
|
|
83
|
+
<x-field data-name="privileges" data-type="array" data-required="true" data-desc="一個權限物件陣列,用於指定要撤銷的權限。">
|
|
84
|
+
<x-field data-name="typeUrl" data-type="string" data-required="true" data-desc="要撤銷的交易類型 URL(例如 'fg:t:transfer_v2')。"></x-field>
|
|
85
85
|
</x-field>
|
|
86
86
|
</x-field-group>
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
**回傳值**
|
|
89
89
|
|
|
90
90
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
91
91
|
|
|
@@ -97,34 +97,34 @@ const txHash = await client.revokeDelegate({
|
|
|
97
97
|
to: appWallet,
|
|
98
98
|
privileges: ['fg:t:transfer_v2'],
|
|
99
99
|
});
|
|
100
|
-
console.log('
|
|
100
|
+
console.log('撤銷委託交易雜湊值:', txHash);
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
---
|
|
104
104
|
|
|
105
|
-
##
|
|
105
|
+
## 資產 (NFT) 管理
|
|
106
106
|
|
|
107
107
|
### createAsset
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
在區塊鏈上建立一個新的資產(非同質化代幣)。
|
|
110
110
|
|
|
111
111
|
**參數**
|
|
112
112
|
|
|
113
113
|
<x-field-group>
|
|
114
114
|
<x-field data-name="moniker" data-type="string" data-required="true" data-desc="資產的簡短、易於閱讀的名稱。"></x-field>
|
|
115
|
-
<x-field data-name="data" data-type="object" data-required="true" data-desc="
|
|
116
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
115
|
+
<x-field data-name="data" data-type="object" data-required="true" data-desc="包含資產元資料的 JSON 物件。"></x-field>
|
|
116
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="資產初始擁有者的錢包。"></x-field>
|
|
117
117
|
<x-field data-name="parent" data-type="string" data-required="false" data-desc="父資產的地址,用於建立層級連結。"></x-field>
|
|
118
|
-
<x-field data-name="ttl" data-type="number" data-required="false" data-default="0" data-desc="
|
|
119
|
-
<x-field data-name="readonly" data-type="boolean" data-required="false" data-default="false" data-desc="
|
|
120
|
-
<x-field data-name="transferrable" data-type="boolean" data-required="false" data-default="true" data-desc="
|
|
118
|
+
<x-field data-name="ttl" data-type="number" data-required="false" data-default="0" data-desc="首次消耗後的存活時間 (以秒為單位)。"></x-field>
|
|
119
|
+
<x-field data-name="readonly" data-type="boolean" data-required="false" data-default="false" data-desc="若為 true,資產在建立後無法更新。"></x-field>
|
|
120
|
+
<x-field data-name="transferrable" data-type="boolean" data-required="false" data-default="true" data-desc="若為 true,資產可以轉移至另一個帳戶。"></x-field>
|
|
121
121
|
<x-field data-name="display" data-type="object" data-required="false" data-desc="用於資產顯示元資料的物件。"></x-field>
|
|
122
122
|
<x-field data-name="endpoint" data-type="object" data-required="false" data-desc="用於資產端點元資料的物件。"></x-field>
|
|
123
123
|
<x-field data-name="tags" data-type="string[]" data-required="false" data-desc="用於分類的標籤陣列。"></x-field>
|
|
124
|
-
<x-field data-name="delegator" data-type="string" data-required="false" data-desc="
|
|
124
|
+
<x-field data-name="delegator" data-type="string" data-required="false" data-desc="若交易由被授權者發送,則為授權者的地址。"></x-field>
|
|
125
125
|
</x-field-group>
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
**回傳值**
|
|
128
128
|
|
|
129
129
|
<x-field data-name="result" data-type="Promise<[string, string]>" data-desc="一個包含交易雜湊值和新建立資產地址的陣列。"></x-field>
|
|
130
130
|
|
|
@@ -139,13 +139,13 @@ const [txHash, assetAddress] = await client.createAsset({
|
|
|
139
139
|
},
|
|
140
140
|
wallet: userWallet,
|
|
141
141
|
});
|
|
142
|
-
console.log('
|
|
143
|
-
console.log('
|
|
142
|
+
console.log('建立資產交易雜湊值:', txHash);
|
|
143
|
+
console.log('新資產地址:', assetAddress);
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
### updateAsset
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
更新一個現有的、非唯讀資產的 `moniker` 和 `data` 欄位。
|
|
149
149
|
|
|
150
150
|
**參數**
|
|
151
151
|
|
|
@@ -153,10 +153,10 @@ console.log('New asset address:', assetAddress);
|
|
|
153
153
|
<x-field data-name="address" data-type="string" data-required="true" data-desc="要更新的資產地址。"></x-field>
|
|
154
154
|
<x-field data-name="moniker" data-type="string" data-required="true" data-desc="資產的新標識名。"></x-field>
|
|
155
155
|
<x-field data-name="data" data-type="object" data-required="true" data-desc="資產的新 JSON 資料物件。"></x-field>
|
|
156
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
156
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="資產當前擁有者的錢包。"></x-field>
|
|
157
157
|
</x-field-group>
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
**回傳值**
|
|
160
160
|
|
|
161
161
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
162
162
|
|
|
@@ -172,28 +172,28 @@ const txHash = await client.updateAsset({
|
|
|
172
172
|
},
|
|
173
173
|
wallet: userWallet,
|
|
174
174
|
});
|
|
175
|
-
console.log('
|
|
175
|
+
console.log('更新資產交易雜湊值:', txHash);
|
|
176
176
|
```
|
|
177
177
|
|
|
178
178
|
### createAssetFactory
|
|
179
179
|
|
|
180
|
-
|
|
180
|
+
建立一個資產工廠,它作為一個模板,用於鑄造多個具有一致結構的新資產。
|
|
181
181
|
|
|
182
182
|
**參數**
|
|
183
183
|
|
|
184
184
|
<x-field-group>
|
|
185
185
|
<x-field data-name="factory" data-type="object" data-required="true" data-desc="一個包含工廠配置的物件。">
|
|
186
|
-
<x-field data-name="name" data-type="string" data-required="true" data-desc="
|
|
187
|
-
<x-field data-name="description" data-type="string" data-required="true" data-desc="
|
|
188
|
-
<x-field data-name="limit" data-type="number" data-required="false" data-default="0" data-desc="
|
|
189
|
-
<x-field data-name="trustedIssuers" data-type="string[]" data-required="false" data-desc="
|
|
186
|
+
<x-field data-name="name" data-type="string" data-required="true" data-desc="工廠的名稱。"></x-field>
|
|
187
|
+
<x-field data-name="description" data-type="string" data-required="true" data-desc="工廠的描述。"></x-field>
|
|
188
|
+
<x-field data-name="limit" data-type="number" data-required="false" data-default="0" data-desc="可以鑄造的最大資產數量(0 表示無限制)。"></x-field>
|
|
189
|
+
<x-field data-name="trustedIssuers" data-type="string[]" data-required="false" data-desc="允許從此工廠鑄造資產的錢包地址列表。"></x-field>
|
|
190
190
|
<x-field data-name="input" data-type="object" data-required="true" data-desc="定義鑄造所需的輸入。"></x-field>
|
|
191
191
|
<x-field data-name="output" data-type="object" data-required="true" data-desc="定義鑄造資產的結構,通常使用模板。"></x-field>
|
|
192
192
|
</x-field>
|
|
193
193
|
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="擁有該工廠的錢包。"></x-field>
|
|
194
194
|
</x-field-group>
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
**回傳值**
|
|
197
197
|
|
|
198
198
|
<x-field data-name="result" data-type="Promise<[string, string]>" data-desc="一個包含交易雜湊值和新建立工廠地址的陣列。"></x-field>
|
|
199
199
|
|
|
@@ -212,8 +212,8 @@ const [txHash, factoryAddress] = await client.createAssetFactory({
|
|
|
212
212
|
factory: factoryConfig,
|
|
213
213
|
wallet: eventCreatorWallet,
|
|
214
214
|
});
|
|
215
|
-
console.log('
|
|
216
|
-
console.log('
|
|
215
|
+
console.log('建立工廠交易雜湊值:', txHash);
|
|
216
|
+
console.log('新工廠地址:', factoryAddress);
|
|
217
217
|
```
|
|
218
218
|
|
|
219
219
|
### acquireAsset
|
|
@@ -223,28 +223,28 @@ console.log('New factory address:', factoryAddress);
|
|
|
223
223
|
**參數**
|
|
224
224
|
|
|
225
225
|
<x-field-group>
|
|
226
|
-
<x-field data-name="itx" data-type="AcquireAssetV2Tx" data-required="true" data-desc="內部交易物件,通常使用像 `preMintAsset`
|
|
226
|
+
<x-field data-name="itx" data-type="AcquireAssetV2Tx" data-required="true" data-desc="內部交易物件,通常使用像 `preMintAsset` 這樣的輔助函式來準備。"></x-field>
|
|
227
227
|
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="獲取資產的使用者錢包。"></x-field>
|
|
228
|
-
<x-field data-name="delegator" data-type="string" data-required="false" data-desc="
|
|
228
|
+
<x-field data-name="delegator" data-type="string" data-required="false" data-desc="授權者的地址,如果適用。"></x-field>
|
|
229
229
|
</x-field-group>
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
**回傳值**
|
|
232
232
|
|
|
233
233
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
234
234
|
|
|
235
235
|
**範例**
|
|
236
236
|
|
|
237
237
|
```javascript Send an AcquireAssetV2Tx icon=logos:javascript
|
|
238
|
-
//
|
|
238
|
+
// 首先,準備鑄造交易 (例如,在伺服器上)
|
|
239
239
|
const itx = await client.preMintAsset({
|
|
240
240
|
factory: factoryAddress,
|
|
241
241
|
owner: userWallet.address,
|
|
242
242
|
wallet: issuerWallet,
|
|
243
243
|
});
|
|
244
244
|
|
|
245
|
-
//
|
|
245
|
+
// 然後,使用者發送交易
|
|
246
246
|
const txHash = await client.acquireAsset({ itx, wallet: userWallet });
|
|
247
|
-
console.log('
|
|
247
|
+
console.log('獲取資產交易雜湊值:', txHash);
|
|
248
248
|
```
|
|
249
249
|
|
|
250
250
|
### mintAsset
|
|
@@ -254,11 +254,11 @@ console.log('Acquire asset tx hash:', txHash);
|
|
|
254
254
|
**參數**
|
|
255
255
|
|
|
256
256
|
<x-field-group>
|
|
257
|
-
<x-field data-name="itx" data-type="MintAssetTx" data-required="true" data-desc="內部交易物件,通常使用 `preMintAsset`
|
|
257
|
+
<x-field data-name="itx" data-type="MintAssetTx" data-required="true" data-desc="內部交易物件,通常使用 `preMintAsset` 來準備。"></x-field>
|
|
258
258
|
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="受信任發行方的錢包。"></x-field>
|
|
259
259
|
</x-field-group>
|
|
260
260
|
|
|
261
|
-
|
|
261
|
+
**回傳值**
|
|
262
262
|
|
|
263
263
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
264
264
|
|
|
@@ -272,7 +272,7 @@ const itx = await client.preMintAsset({
|
|
|
272
272
|
});
|
|
273
273
|
|
|
274
274
|
const txHash = await client.mintAsset({ itx, wallet: issuerWallet });
|
|
275
|
-
console.log('
|
|
275
|
+
console.log('鑄造資產交易雜湊值:', txHash);
|
|
276
276
|
```
|
|
277
277
|
|
|
278
278
|
---
|
|
@@ -281,7 +281,7 @@ console.log('Mint asset tx hash:', txHash);
|
|
|
281
281
|
|
|
282
282
|
### createTokenFactory
|
|
283
283
|
|
|
284
|
-
|
|
284
|
+
為鑄造和銷毀特定的同質化代幣建立一個新工廠,通常基於聯合曲線定價模型。
|
|
285
285
|
|
|
286
286
|
**參數**
|
|
287
287
|
|
|
@@ -289,13 +289,13 @@ console.log('Mint asset tx hash:', txHash);
|
|
|
289
289
|
<x-field data-name="feeRate" data-type="number" data-required="false" data-default="0" data-desc="鑄造和銷毀操作的手續費率。"></x-field>
|
|
290
290
|
<x-field data-name="curve" data-type="object" data-required="true" data-desc="用於定價的聯合曲線配置。"></x-field>
|
|
291
291
|
<x-field data-name="token" data-type="object" data-required="true">
|
|
292
|
-
<x-field-desc markdown
|
|
292
|
+
<x-field-desc markdown>要建立的代幣的配置。這包括 `name`、`symbol`、`decimal` 和 `maxTotalSupply` 等屬性。</x-field-desc>
|
|
293
293
|
</x-field>
|
|
294
294
|
<x-field data-name="data" data-type="object" data-required="false" data-desc="代幣工廠的可選元資料。"></x-field>
|
|
295
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
295
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="工廠擁有者的錢包。"></x-field>
|
|
296
296
|
</x-field-group>
|
|
297
297
|
|
|
298
|
-
|
|
298
|
+
**回傳值**
|
|
299
299
|
|
|
300
300
|
<x-field data-name="result" data-type="Promise<[string, string]>" data-desc="一個包含交易雜湊值和新建立代幣工廠地址的陣列。"></x-field>
|
|
301
301
|
|
|
@@ -304,7 +304,7 @@ console.log('Mint asset tx hash:', txHash);
|
|
|
304
304
|
```javascript Send a CreateTokenFactoryTx icon=logos:javascript
|
|
305
305
|
const [txHash, factoryAddress] = await client.createTokenFactory({
|
|
306
306
|
feeRate: 100, // 1%
|
|
307
|
-
curve: { fixedPrice: '1' }, // 1
|
|
307
|
+
curve: { fixedPrice: '1' }, // 每個新代幣對應 1 個原生代幣
|
|
308
308
|
token: {
|
|
309
309
|
name: 'My Community Token',
|
|
310
310
|
symbol: 'MCT',
|
|
@@ -313,8 +313,8 @@ const [txHash, factoryAddress] = await client.createTokenFactory({
|
|
|
313
313
|
},
|
|
314
314
|
wallet: creatorWallet,
|
|
315
315
|
});
|
|
316
|
-
console.log('
|
|
317
|
-
console.log('
|
|
316
|
+
console.log('建立代幣工廠交易雜湊值:', txHash);
|
|
317
|
+
console.log('新代幣工廠地址:', factoryAddress);
|
|
318
318
|
```
|
|
319
319
|
|
|
320
320
|
### updateTokenFactory
|
|
@@ -327,10 +327,10 @@ console.log('New token factory address:', factoryAddress);
|
|
|
327
327
|
<x-field data-name="address" data-type="string" data-required="true" data-desc="要更新的代幣工廠地址。"></x-field>
|
|
328
328
|
<x-field data-name="feeRate" data-type="number" data-required="false" data-desc="鑄造和銷毀的新手續費率。"></x-field>
|
|
329
329
|
<x-field data-name="data" data-type="object" data-required="false" data-desc="代幣工廠的新元資料。"></x-field>
|
|
330
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
330
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="工廠擁有者的錢包。"></x-field>
|
|
331
331
|
</x-field-group>
|
|
332
332
|
|
|
333
|
-
|
|
333
|
+
**回傳值**
|
|
334
334
|
|
|
335
335
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
336
336
|
|
|
@@ -342,12 +342,12 @@ const txHash = await client.updateTokenFactory({
|
|
|
342
342
|
feeRate: 50, // 0.5%
|
|
343
343
|
wallet: ownerWallet,
|
|
344
344
|
});
|
|
345
|
-
console.log('
|
|
345
|
+
console.log('更新代幣工廠交易雜湊值:', txHash);
|
|
346
346
|
```
|
|
347
347
|
|
|
348
348
|
### mintToken
|
|
349
349
|
|
|
350
|
-
|
|
350
|
+
從代幣工廠鑄造新代幣,以換取儲備代幣(通常是鏈原生代幣)。成本由工廠的聯合曲線決定。
|
|
351
351
|
|
|
352
352
|
**參數**
|
|
353
353
|
|
|
@@ -360,7 +360,7 @@ console.log('Update token factory tx hash:', txHash);
|
|
|
360
360
|
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="發起鑄造的錢包。"></x-field>
|
|
361
361
|
</x-field-group>
|
|
362
362
|
|
|
363
|
-
|
|
363
|
+
**回傳值**
|
|
364
364
|
|
|
365
365
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
366
366
|
|
|
@@ -371,10 +371,10 @@ const txHash = await client.mintToken({
|
|
|
371
371
|
tokenFactory: 'z2f...',
|
|
372
372
|
amount: 100,
|
|
373
373
|
receiver: userWallet.address,
|
|
374
|
-
maxReserve: 105, //
|
|
374
|
+
maxReserve: 105, // 願意支付最多 105 個原生代幣
|
|
375
375
|
wallet: userWallet,
|
|
376
376
|
});
|
|
377
|
-
console.log('
|
|
377
|
+
console.log('鑄造代幣交易雜湊值:', txHash);
|
|
378
378
|
```
|
|
379
379
|
|
|
380
380
|
### burnToken
|
|
@@ -387,12 +387,12 @@ console.log('Mint token tx hash:', txHash);
|
|
|
387
387
|
<x-field data-name="tokenFactory" data-type="string" data-required="true" data-desc="代幣工廠的地址。"></x-field>
|
|
388
388
|
<x-field data-name="amount" data-type="number" data-required="true" data-desc="要銷毀的代幣數量。"></x-field>
|
|
389
389
|
<x-field data-name="receiver" data-type="string" data-required="true" data-desc="將接收儲備代幣的地址。"></x-field>
|
|
390
|
-
<x-field data-name="minReserve" data-type="number" data-required="true" data-desc="
|
|
390
|
+
<x-field data-name="minReserve" data-type="number" data-required="true" data-desc="使用者期望收到的儲備代幣最小數量。這可作為滑價保護。"></x-field>
|
|
391
391
|
<x-field data-name="data" data-type="object" data-required="false" data-desc="交易的可選元資料。"></x-field>
|
|
392
392
|
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="發起銷毀的錢包。"></x-field>
|
|
393
393
|
</x-field-group>
|
|
394
394
|
|
|
395
|
-
|
|
395
|
+
**回傳值**
|
|
396
396
|
|
|
397
397
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
398
398
|
|
|
@@ -403,10 +403,10 @@ const txHash = await client.burnToken({
|
|
|
403
403
|
tokenFactory: 'z2f...',
|
|
404
404
|
amount: 50,
|
|
405
405
|
receiver: userWallet.address,
|
|
406
|
-
minReserve: 48, //
|
|
406
|
+
minReserve: 48, // 期望收到至少 48 個原生代幣
|
|
407
407
|
wallet: userWallet,
|
|
408
408
|
});
|
|
409
|
-
console.log('
|
|
409
|
+
console.log('銷毀代幣交易雜湊值:', txHash);
|
|
410
410
|
```
|
|
411
411
|
|
|
412
412
|
---
|
|
@@ -415,7 +415,7 @@ console.log('Burn token tx hash:', txHash);
|
|
|
415
415
|
|
|
416
416
|
### transfer
|
|
417
417
|
|
|
418
|
-
|
|
418
|
+
在單一交易中將原生代幣、自訂同質化代幣和/或資產 (NFT) 轉移到另一個帳戶。
|
|
419
419
|
|
|
420
420
|
**參數**
|
|
421
421
|
|
|
@@ -423,16 +423,16 @@ console.log('Burn token tx hash:', txHash);
|
|
|
423
423
|
<x-field data-name="to" data-type="string" data-required="true" data-desc="接收方的地址。"></x-field>
|
|
424
424
|
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="發送方的錢包。"></x-field>
|
|
425
425
|
<x-field data-name="token" data-type="number" data-required="false" data-default="0" data-desc="要轉移的鏈原生代幣數量。"></x-field>
|
|
426
|
-
<x-field data-name="assets" data-type="string[]" data-required="false" data-desc="
|
|
426
|
+
<x-field data-name="assets" data-type="string[]" data-required="false" data-desc="要轉移的資產地址 (NFT) 陣列。"></x-field>
|
|
427
427
|
<x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="要轉移的自訂同質化代幣物件陣列。">
|
|
428
428
|
<x-field data-name="address" data-type="string" data-required="true" data-desc="自訂代幣合約的地址。"></x-field>
|
|
429
429
|
<x-field data-name="value" data-type="number" data-required="true" data-desc="要轉移的自訂代幣數量。"></x-field>
|
|
430
430
|
</x-field>
|
|
431
431
|
<x-field data-name="memo" data-type="string" data-required="false" data-desc="交易的可選備註。"></x-field>
|
|
432
|
-
<x-field data-name="delegator" data-type="string" data-required="false" data-desc="
|
|
432
|
+
<x-field data-name="delegator" data-type="string" data-required="false" data-desc="授權者的地址,如果適用。"></x-field>
|
|
433
433
|
</x-field-group>
|
|
434
434
|
|
|
435
|
-
|
|
435
|
+
**回傳值**
|
|
436
436
|
|
|
437
437
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
438
438
|
|
|
@@ -441,50 +441,50 @@ console.log('Burn token tx hash:', txHash);
|
|
|
441
441
|
```javascript Send a TransferV2Tx icon=logos:javascript
|
|
442
442
|
const txHash = await client.transfer({
|
|
443
443
|
to: 'z1sb...',
|
|
444
|
-
token: 1.5, // 1.5
|
|
445
|
-
assets: ['z3g...'], //
|
|
446
|
-
tokens: [{ address: 'z2t...', value: 100 }], // 100
|
|
444
|
+
token: 1.5, // 1.5 個鏈原生代幣
|
|
445
|
+
assets: ['z3g...'], // 一個 NFT
|
|
446
|
+
tokens: [{ address: 'z2t...', value: 100 }], // 100 個自訂代幣
|
|
447
447
|
memo: 'Payment for services',
|
|
448
448
|
wallet: senderWallet,
|
|
449
449
|
});
|
|
450
|
-
console.log('
|
|
450
|
+
console.log('轉帳交易雜湊值:', txHash);
|
|
451
451
|
```
|
|
452
452
|
|
|
453
453
|
### prepareExchange
|
|
454
454
|
|
|
455
|
-
|
|
455
|
+
準備原子交換(exchange)交易中發送方的一半。它會簽署發送方的要約並回傳一個可以傳遞給接收方的交易物件。
|
|
456
456
|
|
|
457
457
|
**參數**
|
|
458
458
|
|
|
459
459
|
<x-field-group>
|
|
460
460
|
<x-field data-name="receiver" data-type="string" data-required="true" data-desc="交換中另一方的地址。"></x-field>
|
|
461
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
461
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="提出要約的使用者錢包。"></x-field>
|
|
462
462
|
<x-field data-name="offerToken" data-type="number" data-required="false" data-desc="提供的原生代幣數量。"></x-field>
|
|
463
463
|
<x-field data-name="offerAssets" data-type="string[]" data-required="false" data-desc="提供的資產地址陣列。"></x-field>
|
|
464
464
|
<x-field data-name="offerTokens" data-type="object[]" data-required="false" data-desc="提供的自訂同質化代幣陣列。"></x-field>
|
|
465
|
-
<x-field data-name="demandToken" data-type="number" data-required="false" data-desc="
|
|
466
|
-
<x-field data-name="demandAssets" data-type="string[]" data-required="false" data-desc="
|
|
467
|
-
<x-field data-name="demandTokens" data-type="object[]" data-required="false" data-desc="
|
|
465
|
+
<x-field data-name="demandToken" data-type="number" data-required="false" data-desc="要求交換的原生代幣數量。"></x-field>
|
|
466
|
+
<x-field data-name="demandAssets" data-type="string[]" data-required="false" data-desc="要求交換的資產地址陣列。"></x-field>
|
|
467
|
+
<x-field data-name="demandTokens" data-type="object[]" data-required="false" data-desc="要求交換的自訂同質化代幣陣列。"></x-field>
|
|
468
468
|
<x-field data-name="memo" data-type="string" data-required="false" data-desc="交易的可選備註。"></x-field>
|
|
469
469
|
</x-field-group>
|
|
470
470
|
|
|
471
|
-
|
|
471
|
+
**回傳值**
|
|
472
472
|
|
|
473
473
|
<x-field data-name="transactionObject" data-type="Promise<object>" data-desc="部分簽署的交易物件。"></x-field>
|
|
474
474
|
|
|
475
475
|
### finalizeExchange
|
|
476
476
|
|
|
477
|
-
完成原子交換中接收方的一半。它接收來自 `prepareExchange`
|
|
477
|
+
完成原子交換中接收方的一半。它接收來自 `prepareExchange` 的部分簽署交易,加入接收方的簽名,並回傳完全簽署的交易物件。
|
|
478
478
|
|
|
479
479
|
**參數**
|
|
480
480
|
|
|
481
481
|
<x-field-group>
|
|
482
|
-
<x-field data-name="tx" data-type="object" data-required="true" data-desc="從 `prepareExchange`
|
|
483
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
482
|
+
<x-field data-name="tx" data-type="object" data-required="true" data-desc="從 `prepareExchange` 回傳的交易物件。"></x-field>
|
|
483
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="接受要約的使用者錢包。"></x-field>
|
|
484
484
|
<x-field data-name="data" data-type="object" data-required="false" data-desc="多重簽名中的額外資料。"></x-field>
|
|
485
485
|
</x-field-group>
|
|
486
486
|
|
|
487
|
-
|
|
487
|
+
**回傳值**
|
|
488
488
|
|
|
489
489
|
<x-field data-name="transactionObject" data-type="Promise<object>" data-desc="完全簽署的多重簽名交易物件。"></x-field>
|
|
490
490
|
|
|
@@ -495,34 +495,34 @@ console.log('Transfer tx hash:', txHash);
|
|
|
495
495
|
**參數**
|
|
496
496
|
|
|
497
497
|
<x-field-group>
|
|
498
|
-
<x-field data-name="tx" data-type="object" data-required="true" data-desc="從 `finalizeExchange`
|
|
498
|
+
<x-field data-name="tx" data-type="object" data-required="true" data-desc="從 `finalizeExchange` 回傳的交易物件。"></x-field>
|
|
499
499
|
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="提交交易的使用者錢包。"></x-field>
|
|
500
500
|
</x-field-group>
|
|
501
501
|
|
|
502
|
-
|
|
502
|
+
**回傳值**
|
|
503
503
|
|
|
504
504
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
505
505
|
|
|
506
506
|
**範例(完整交換流程)**
|
|
507
507
|
|
|
508
508
|
```javascript Perform an atomic swap icon=logos:javascript
|
|
509
|
-
// 1.
|
|
509
|
+
// 1. 要約方準備交易
|
|
510
510
|
const offerTx = await client.prepareExchange({
|
|
511
511
|
receiver: receiverWallet.address,
|
|
512
|
-
offerAssets: ['z3g...'], //
|
|
513
|
-
demandToken: 10, //
|
|
512
|
+
offerAssets: ['z3g...'], // 提供一個 NFT
|
|
513
|
+
demandToken: 10, // 要求 10 個原生代幣
|
|
514
514
|
wallet: offererWallet,
|
|
515
515
|
});
|
|
516
516
|
|
|
517
|
-
// 2.
|
|
517
|
+
// 2. 接收方完成交易
|
|
518
518
|
const finalTx = await client.finalizeExchange({
|
|
519
519
|
tx: offerTx,
|
|
520
520
|
wallet: receiverWallet,
|
|
521
521
|
});
|
|
522
522
|
|
|
523
|
-
// 3.
|
|
523
|
+
// 3. 任何一方都可以發送最終確定的交易
|
|
524
524
|
const txHash = await client.exchange({ tx: finalTx, wallet: offererWallet });
|
|
525
|
-
console.log('
|
|
525
|
+
console.log('交換交易雜湊值:', txHash);
|
|
526
526
|
```
|
|
527
527
|
|
|
528
528
|
---
|
|
@@ -541,11 +541,11 @@ console.log('Exchange tx hash:', txHash);
|
|
|
541
541
|
<x-field data-name="assets" data-type="string[]" data-required="false" data-desc="要質押的資產地址陣列。"></x-field>
|
|
542
542
|
<x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="要質押的同質化代幣物件陣列。"></x-field>
|
|
543
543
|
<x-field data-name="locked" data-type="boolean" data-required="false" data-default="false" data-desc="質押在建立時是否被鎖定。"></x-field>
|
|
544
|
-
<x-field data-name="slashers" data-type="string[]" data-required="false" data-desc="
|
|
544
|
+
<x-field data-name="slashers" data-type="string[]" data-required="false" data-desc="被允許削減此質押的地址列表。"></x-field>
|
|
545
545
|
<x-field data-name="message" data-type="string" data-required="false" data-desc="質押的可選備註。"></x-field>
|
|
546
546
|
</x-field-group>
|
|
547
547
|
|
|
548
|
-
|
|
548
|
+
**回傳值**
|
|
549
549
|
|
|
550
550
|
<x-field data-name="result" data-type="Promise<[string, string]>" data-desc="一個包含交易雜湊值和新建立質押地址的陣列。"></x-field>
|
|
551
551
|
|
|
@@ -558,24 +558,24 @@ const [txHash, stakeAddress] = await client.stake({
|
|
|
558
558
|
message: 'Staking for validator rewards',
|
|
559
559
|
wallet: userWallet,
|
|
560
560
|
});
|
|
561
|
-
console.log('
|
|
562
|
-
console.log('
|
|
561
|
+
console.log('質押交易雜湊值:', txHash);
|
|
562
|
+
console.log('新質押地址:', stakeAddress);
|
|
563
563
|
```
|
|
564
564
|
|
|
565
565
|
### revokeStake
|
|
566
566
|
|
|
567
|
-
|
|
567
|
+
撤銷先前質押的代幣和/或資產,啟動將其歸還給所有者的過程。請注意,在可以領取資產之前,可能會有一個解質押期。
|
|
568
568
|
|
|
569
569
|
**參數**
|
|
570
570
|
|
|
571
571
|
<x-field-group>
|
|
572
572
|
<x-field data-name="from" data-type="string" data-required="true" data-desc="要從中撤銷的質押地址。"></x-field>
|
|
573
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
573
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="質押擁有者的錢包。"></x-field>
|
|
574
574
|
<x-field data-name="assets" data-type="string[]" data-required="false" data-desc="要撤銷的資產地址陣列。"></x-field>
|
|
575
575
|
<x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="要撤銷的同質化代幣物件陣列。"></x-field>
|
|
576
576
|
</x-field-group>
|
|
577
577
|
|
|
578
|
-
|
|
578
|
+
**回傳值**
|
|
579
579
|
|
|
580
580
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
581
581
|
|
|
@@ -587,22 +587,22 @@ const txHash = await client.revokeStake({
|
|
|
587
587
|
tokens: [{ address: 'z2t...', value: 1000 }],
|
|
588
588
|
wallet: userWallet,
|
|
589
589
|
});
|
|
590
|
-
console.log('
|
|
590
|
+
console.log('撤銷質押交易雜湊值:', txHash);
|
|
591
591
|
```
|
|
592
592
|
|
|
593
593
|
### claimStake
|
|
594
594
|
|
|
595
|
-
|
|
595
|
+
從一個已成功撤銷並度過解質押期的質押中領取項目。
|
|
596
596
|
|
|
597
597
|
**參數**
|
|
598
598
|
|
|
599
599
|
<x-field-group>
|
|
600
600
|
<x-field data-name="from" data-type="string" data-required="true" data-desc="要從中領取的質押地址。"></x-field>
|
|
601
601
|
<x-field data-name="evidence" data-type="string" data-required="true" data-desc="`revokeStake` 交易的交易雜湊值。"></x-field>
|
|
602
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
602
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="質押擁有者的錢包。"></x-field>
|
|
603
603
|
</x-field-group>
|
|
604
604
|
|
|
605
|
-
|
|
605
|
+
**回傳值**
|
|
606
606
|
|
|
607
607
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
608
608
|
|
|
@@ -615,24 +615,24 @@ const txHash = await client.claimStake({
|
|
|
615
615
|
evidence: revokeTxHash,
|
|
616
616
|
wallet: userWallet,
|
|
617
617
|
});
|
|
618
|
-
console.log('
|
|
618
|
+
console.log('領取質押交易雜湊值:', txHash);
|
|
619
619
|
```
|
|
620
620
|
|
|
621
621
|
### slashStake
|
|
622
622
|
|
|
623
|
-
|
|
623
|
+
允許指定的削減者懲罰一個質押,通常是因為不當行為。被削減的資產會被轉移到一個指定的金庫地址。
|
|
624
624
|
|
|
625
625
|
**參數**
|
|
626
626
|
|
|
627
627
|
<x-field-group>
|
|
628
|
-
<x-field data-name="from" data-type="string" data-required="true" data-desc="
|
|
629
|
-
<x-field data-name="reason" data-type="string" data-required="true" data-desc="
|
|
630
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
631
|
-
<x-field data-name="assets" data-type="string[]" data-required="false" data-desc="
|
|
632
|
-
<x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="
|
|
628
|
+
<x-field data-name="from" data-type="string" data-required="true" data-desc="要削減的質押地址。"></x-field>
|
|
629
|
+
<x-field data-name="reason" data-type="string" data-required="true" data-desc="解釋削減原因的訊息。"></x-field>
|
|
630
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="指定削減者的錢包。"></x-field>
|
|
631
|
+
<x-field data-name="assets" data-type="string[]" data-required="false" data-desc="要削減的資產地址陣列。"></x-field>
|
|
632
|
+
<x-field data-name="tokens" data-type="object[]" data-required="false" data-desc="要削減的同質化代幣物件陣列。"></x-field>
|
|
633
633
|
</x-field-group>
|
|
634
634
|
|
|
635
|
-
|
|
635
|
+
**回傳值**
|
|
636
636
|
|
|
637
637
|
<x-field data-name="transactionHash" data-type="Promise<string>" data-desc="已提交交易的雜湊值。"></x-field>
|
|
638
638
|
|
|
@@ -645,5 +645,5 @@ const txHash = await client.slashStake({
|
|
|
645
645
|
tokens: [{ address: 'z2t...', value: 500 }],
|
|
646
646
|
wallet: slasherWallet,
|
|
647
647
|
});
|
|
648
|
-
console.log('
|
|
648
|
+
console.log('削減質押交易雜湊值:', txHash);
|
|
649
649
|
```
|