@ocap/client 1.25.4 → 1.25.5

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
@@ -1,13 +1,13 @@
1
1
  # 管理资产 (NFT)
2
2
 
3
- 本指南将全面介绍如何使用 OCAP Client 管理非同质化代币(NFT),也称资产的整个生命周期。你将学习如何从头开始创建新资产、更新其属性、建立用于标准化铸造的资产工厂,以及从该工厂获取新资产。
3
+ 本指南全面介绍了如何使用 OCAP Client 管理非同质化代币(NFT)(也称为资产)的整个生命周期。你将学习如何从头开始创建新资产、更新其属性、建立用于标准化铸造的资产工厂,以及从该工厂获取新资产。
4
4
 
5
5
  ## 创建新资产
6
6
 
7
- 你可以使用 `createAsset` 方法在区块链上创建一个独特的、独立的资产。每个资产都会被分配一个唯一的链上地址,该地址由其初始属性派生。
7
+ 你可以使用 `createAsset` 方法在区块链上创建一个独特的、独立的资产。每个资产都会根据其初始属性派生出一个唯一的链上地址。
8
8
 
9
9
  ```javascript icon=logos:javascript
10
- const { wallet } = getWallet(); // 用户的钱包对象
10
+ const { wallet } = getWallet(); // 用户钱包对象
11
11
 
12
12
  async function createNewAsset() {
13
13
  try {
@@ -25,11 +25,11 @@ async function createNewAsset() {
25
25
  wallet: wallet,
26
26
  });
27
27
 
28
- console.log(`资产创建交易已发送:${hash}`);
29
- console.log(`新资产地址:${address}`);
28
+ console.log(`资产创建交易已发送: ${hash}`);
29
+ console.log(`新资产地址: ${address}`);
30
30
  return address;
31
31
  } catch (error) {
32
- console.error('创建资产时出错:', error);
32
+ console.error('创建资产时出错:', error);
33
33
  }
34
34
  }
35
35
 
@@ -39,24 +39,24 @@ createNewAsset();
39
39
  ### 参数
40
40
 
41
41
  <x-field-group>
42
- <x-field data-name="moniker" data-type="string" data-required="true" data-desc="资产的名称。"></x-field>
43
- <x-field data-name="parent" data-type="string" data-default="''" data-required="false" data-desc="父资产的地址(如有)。"></x-field>
44
- <x-field data-name="data" data-type="object" data-required="true" data-desc="资产的数据负载,必须包含 typeUrl 和 value。"></x-field>
45
- <x-field data-name="readonly" data-type="boolean" data-default="false" data-required="false" data-desc="若为 true,则资产在创建后无法更新。"></x-field>
46
- <x-field data-name="transferrable" data-type="boolean" data-default="true" data-required="false" data-desc="若为 true,则资产可以转移到另一个账户。"></x-field>
47
- <x-field data-name="ttl" data-type="number" data-default="0" data-required="false" data-desc="资产首次消费后的存活时间(秒)。"></x-field>
48
- <x-field data-name="display" data-type="object" data-required="false" data-desc="包含资产显示信息的对象。"></x-field>
49
- <x-field data-name="endpoint" data-type="object" data-required="false" data-desc="包含资产端点详细信息的对象。"></x-field>
50
- <x-field data-name="tags" data-type="string[]" data-default="[]" data-required="false" data-desc="用于对资产进行分类的字符串数组。"></x-field>
51
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="资产初始所有者的钱包对象。"></x-field>
52
- <x-field data-name="delegator" data-type="string" data-default="''" data-required="false" data-desc="通过委托授权此交易的账户地址。"></x-field>
42
+ <x-field data-name="moniker" data-type="string" data-required="true" data-desc="资产的名称。" ></x-field>
43
+ <x-field data-name="parent" data-type="string" data-default="''" data-required="false" data-desc="父资产的地址(如有)。" ></x-field>
44
+ <x-field data-name="data" data-type="object" data-required="true" data-desc="资产的数据负载,必须包含 typeUrl 和 value。" ></x-field>
45
+ <x-field data-name="readonly" data-type="boolean" data-default="false" data-required="false" data-desc="如果为 true,资产在创建后无法更新。" ></x-field>
46
+ <x-field data-name="transferrable" data-type="boolean" data-default="true" data-required="false" data-desc="如果为 true,资产可以转移到另一个账户。" ></x-field>
47
+ <x-field data-name="ttl" data-type="number" data-default="0" data-required="false" data-desc="资产首次消费后的存活时间(秒)。" ></x-field>
48
+ <x-field data-name="display" data-type="object" data-required="false" data-desc="包含资产显示信息的对象。" ></x-field>
49
+ <x-field data-name="endpoint" data-type="object" data-required="false" data-desc="包含资产端点详细信息的对象。" ></x-field>
50
+ <x-field data-name="tags" data-type="string[]" data-default="[]" data-required="false" data-desc="用于对资产进行分类的字符串数组。" ></x-field>
51
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="资产初始所有者的钱包对象。" ></x-field>
52
+ <x-field data-name="delegator" data-type="string" data-default="''" data-required="false" data-desc="通过委托授权此交易的账户地址。" ></x-field>
53
53
  </x-field-group>
54
54
 
55
55
  ### 返回值
56
56
 
57
57
  一个 `Promise`,它会解析为一个包含交易哈希和新资产链上地址的数组。
58
58
 
59
- <x-field data-name="response" data-type="Promise<[string, string]>" data-desc="[交易哈希, 资产地址]"></x-field>
59
+ <x-field data-name="response" data-type="Promise<[string, string]>" data-desc="[transactionHash, assetAddress]"></x-field>
60
60
 
61
61
  ---
62
62
 
@@ -65,7 +65,7 @@ createNewAsset();
65
65
  如果资产创建时设置了 `readonly: false`,你可以使用 `updateAsset` 方法修改其 `moniker` 和 `data` 字段。资产通过其唯一地址进行识别。
66
66
 
67
67
  ```javascript icon=logos:javascript
68
- const { wallet } = getWallet(); // 用户的钱包对象
68
+ const { wallet } = getWallet(); // 用户钱包对象
69
69
  const assetAddress = 'z362...'; // 要更新的资产地址
70
70
 
71
71
  async function updateExistingAsset() {
@@ -76,16 +76,16 @@ async function updateExistingAsset() {
76
76
  data: {
77
77
  typeUrl: 'json',
78
78
  value: {
79
- description: '我这件独特作品的更新描述。',
79
+ description: '我的独特作品的更新描述。',
80
80
  imageUrl: 'https://example.com/path/to/new_image.png',
81
81
  },
82
82
  },
83
83
  wallet: wallet,
84
84
  });
85
85
 
86
- console.log(`资产更新交易已发送:${hash}`);
86
+ console.log(`资产更新交易已发送: ${hash}`);
87
87
  } catch (error) {
88
- console.error('更新资产时出错:', error);
88
+ console.error('更新资产时出错:', error);
89
89
  }
90
90
  }
91
91
 
@@ -95,30 +95,30 @@ updateExistingAsset();
95
95
  ### 参数
96
96
 
97
97
  <x-field-group>
98
- <x-field data-name="address" data-type="string" data-required="true" data-desc="要更新资产的链上地址。"></x-field>
99
- <x-field data-name="moniker" data-type="string" data-required="true" data-desc="资产的新名称。"></x-field>
100
- <x-field data-name="data" data-type="object" data-required="true" data-desc="资产更新后的数据负载。"></x-field>
101
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="当前资产所有者的钱包对象。"></x-field>
98
+ <x-field data-name="address" data-type="string" data-required="true" data-desc="要更新的资产的链上地址。" ></x-field>
99
+ <x-field data-name="moniker" data-type="string" data-required="true" data-desc="资产的新名称。" ></x-field>
100
+ <x-field data-name="data" data-type="object" data-required="true" data-desc="资产的更新数据负载。" ></x-field>
101
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="当前资产所有者的钱包对象。" ></x-field>
102
102
  </x-field-group>
103
103
 
104
104
  ### 返回值
105
105
 
106
106
  一个 `Promise`,它会解析为交易哈希。
107
107
 
108
- <x-field data-name="response" data-type="Promise<string>" data-desc="交易哈希"></x-field>
108
+ <x-field data-name="response" data-type="Promise<string>" data-desc="transactionHash"></x-field>
109
109
 
110
110
  ---
111
111
 
112
112
  ## 创建资产工厂
113
113
 
114
- 资产工厂是用于创建多个相似资产的模板。它定义了铸造新资产的结构、规则和逻辑,比单独创建每个资产更高效。这非常适合发行活动门票、证书或收藏品等用例。
114
+ 资产工厂是用于创建多个相似资产的模板。它定义了铸造新资产的结构、规则和逻辑,比单独创建每个资产更高效。这对于发行活动门票、证书或收藏品等用例非常理想。
115
115
 
116
116
  ```javascript icon=logos:javascript
117
117
  const { wallet } = getWallet(); // 工厂所有者的钱包
118
118
 
119
119
  const factoryDefinition = {
120
120
  name: '会议门票工厂',
121
- description: '铸造 2024 年科技大会的门票。',
121
+ description: '铸造 2024 年技术大会的门票。',
122
122
  limit: 1000, // 最多可铸造 1000 张门票
123
123
  input: {
124
124
  // 定义铸造资产所需的数据
@@ -130,8 +130,8 @@ const factoryDefinition = {
130
130
  },
131
131
  output: {
132
132
  // 定义铸造资产的结构
133
- moniker: '{{attendeeName}} 的门票',
134
- description: '2024 年科技大会的 {{ticketType}} 门票。',
133
+ moniker: '{{attendeeName}}的门票',
134
+ description: '2024 年技术大会的{{ticketType}}门票。',
135
135
  transferrable: false, // 门票不可转让
136
136
  },
137
137
  hooks: [],
@@ -144,10 +144,10 @@ async function createFactory() {
144
144
  wallet: wallet,
145
145
  });
146
146
 
147
- console.log(`工厂创建交易已发送:${hash}`);
148
- console.log(`新工厂地址:${factoryAddress}`);
147
+ console.log(`工厂创建交易已发送: ${hash}`);
148
+ console.log(`新工厂地址: ${factoryAddress}`);
149
149
  } catch (error) {
150
- console.error('创建资产工厂时出错:', error);
150
+ console.error('创建资产工厂时出错:', error);
151
151
  }
152
152
  }
153
153
 
@@ -157,17 +157,17 @@ createFactory();
157
157
  ### 参数
158
158
 
159
159
  <x-field-group>
160
- <x-field data-name="factory" data-type="object" data-required="true" data-desc="定义工厂属性和铸造逻辑的对象。">
161
- <x-field data-name="name" data-type="string" data-required="true" data-desc="工厂的名称。"></x-field>
162
- <x-field data-name="description" data-type="string" data-required="true" data-desc="工厂用途的描述。"></x-field>
163
- <x-field data-name="limit" data-type="number" data-default="0" data-required="false" data-desc="可从此工厂铸造的最大资产数量。0 表示无限制。"></x-field>
164
- <x-field data-name="trustedIssuers" data-type="string[]" data-required="false" data-desc="有权从此工厂铸造的账户地址列表。"></x-field>
165
- <x-field data-name="input" data-type="object" data-required="true" data-desc="定义铸造资产所需的输入数据。"></x-field>
166
- <x-field data-name="output" data-type="object" data-required="true" data-desc="定义将要铸造的资产的结构和属性。"></x-field>
167
- <x-field data-name="hooks" data-type="object[]" data-required="false" data-desc="在铸造过程中执行的钩子列表。"></x-field>
168
- <x-field data-name="data" data-type="object" data-required="false" data-desc="与工厂一起存储的额外任意数据。"></x-field>
160
+ <x-field data-name="factory" data-type="object" data-required="true" data-desc="一个定义工厂属性和铸造逻辑的对象。">
161
+ <x-field data-name="name" data-type="string" data-required="true" data-desc="工厂的名称。" ></x-field>
162
+ <x-field data-name="description" data-type="string" data-required="true" data-desc="工厂用途的描述。" ></x-field>
163
+ <x-field data-name="limit" data-type="number" data-default="0" data-required="false" data-desc="可从此工厂铸造的最大资产数量。0 表示无限制。" ></x-field>
164
+ <x-field data-name="trustedIssuers" data-type="string[]" data-required="false" data-desc="有权从此工厂铸造的账户地址列表。" ></x-field>
165
+ <x-field data-name="input" data-type="object" data-required="true" data-desc="定义铸造资产所需的输入数据。" ></x-field>
166
+ <x-field data-name="output" data-type="object" data-required="true" data-desc="定义将要铸造的资产的结构和属性。" ></x-field>
167
+ <x-field data-name="hooks" data-type="object[]" data-required="false" data-desc="在铸造过程中执行的钩子列表。" ></x-field>
168
+ <x-field data-name="data" data-type="object" data-required="false" data-desc="与工厂一起存储的额外任意数据。" ></x-field>
169
169
  </x-field>
170
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="工厂所有者的钱包对象。"></x-field>
170
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="工厂所有者的钱包对象。" ></x-field>
171
171
  </x-field-group>
172
172
 
173
173
 
@@ -175,23 +175,23 @@ createFactory();
175
175
 
176
176
  一个 `Promise`,它会解析为一个包含交易哈希和新工厂链上地址的数组。
177
177
 
178
- <x-field data-name="response" data-type="Promise<[string, string]>" data-desc="[交易哈希, 工厂地址]"></x-field>
178
+ <x-field data-name="response" data-type="Promise<[string, string]>" data-desc="[transactionHash, factoryAddress]"></x-field>
179
179
 
180
180
  ---
181
181
 
182
182
  ## 从工厂获取资产
183
183
 
184
- 从工厂获取资产是一个两步过程。首先,准备铸造数据,这可以让你预览将要创建的资产。其次,将交易提交到区块链以正式获取资产。
184
+ 从工厂获取资产是一个两步过程。首先,你准备铸造数据,这可以让你预览将要创建的资产。其次,你将交易提交到区块链以正式获取资产。
185
185
 
186
- 这种分离很有用,因为它允许应用程序在用户签署并提交最终交易之前,向用户展示他们将要收到的内容。
186
+ 这种分离很有用,因为它允许应用程序在用户签署并提交最终交易之前,向用户展示他们将要收到的东西。
187
187
 
188
188
  ### 步骤 1:准备资产数据
189
189
 
190
- `preMintAsset` 方法接收工厂地址和用户提供的输入,以生成最终的资产数据。此过程在链下进行,无需交易。
190
+ `preMintAsset` 方法接收工厂地址和用户提供的输入,以生成最终的资产数据。此过程在链下发生,不需要交易。
191
191
 
192
192
  ```javascript icon=logos:javascript
193
- const factoryAddress = 'z2...'; // 先前创建的工厂地址
194
- const { wallet: issuerWallet } = getIssuerWallet(); // 工厂所有者或受信任的发行者
193
+ const factoryAddress = 'z2...'; // 先前创建的工厂的地址
194
+ const { wallet: issuerWallet } = getIssuerWallet(); // 工厂所有者或受信任的发行人
195
195
  const { wallet: userWallet } = getUserWallet(); // 将拥有新资产的用户
196
196
 
197
197
  async function prepareAssetForMinting() {
@@ -206,17 +206,17 @@ async function prepareAssetForMinting() {
206
206
  wallet: issuerWallet,
207
207
  });
208
208
 
209
- console.log('准备好用于铸造的资产数据:', mintingData);
209
+ console.log('已准备好用于铸造的资产数据:', mintingData);
210
210
  return mintingData;
211
211
  } catch (error) {
212
- console.error('准备资产时出错:', error);
212
+ console.error('准备资产时出错:', error);
213
213
  }
214
214
  }
215
215
  ```
216
216
 
217
217
  ### 步骤 2:发送交易
218
218
 
219
- 铸造数据准备好后,用户(即未来的资产所有者)签署并发送 `acquireAsset` 交易。`preMintAsset` 返回的 `itx` 对象将用作有效载荷。
219
+ 一旦铸造数据准备好,用户(未来的资产所有者)签署并发送 `acquireAsset` 交易。来自 `preMintAsset` `itx` 对象被用作有效负载。
220
220
 
221
221
  ```javascript icon=logos:javascript
222
222
  async function acquireNewAsset() {
@@ -230,10 +230,10 @@ async function acquireNewAsset() {
230
230
  wallet: userWallet, // 用户的钱包签署交易
231
231
  });
232
232
 
233
- console.log(`资产获取交易已发送:${hash}`);
234
- console.log(`新资产将在以下地址可用:${itx.address}`);
233
+ console.log(`资产获取交易已发送: ${hash}`);
234
+ console.log(`新资产将在以下地址可用: ${itx.address}`);
235
235
  } catch (error) {
236
- console.error('获取资产时出错:', error);
236
+ console.error('获取资产时出错:', error);
237
237
  }
238
238
  }
239
239
 
@@ -243,13 +243,13 @@ acquireNewAsset();
243
243
  ### `acquireAsset` 的参数
244
244
 
245
245
  <x-field-group>
246
- <x-field data-name="itx" data-type="object" data-required="true" data-desc="从 `preMintAsset` 方法返回的内部交易对象。"></x-field>
247
- <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="正在获取资产的用户的钱包。"></x-field>
248
- <x-field data-name="delegator" data-type="string" data-default="''" data-required="false" data-desc="通过委托授权此交易的账户地址。"></x-field>
246
+ <x-field data-name="itx" data-type="object" data-required="true" data-desc="从 `preMintAsset` 方法返回的内部交易对象。" ></x-field>
247
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="正在获取资产的用户的钱包。" ></x-field>
248
+ <x-field data-name="delegator" data-type="string" data-default="''" data-required="false" data-desc="通过委托授权此交易的账户地址。" ></x-field>
249
249
  </x-field-group>
250
250
 
251
251
  ### 返回值
252
252
 
253
253
  一个 `Promise`,它会解析为 `acquireAsset` 操作的交易哈希。
254
254
 
255
- <x-field data-name="response" data-type="Promise<string>" data-desc="交易哈希"></x-field>
255
+ <x-field data-name="response" data-type="Promise<string>" data-desc="transactionHash"></x-field>
@@ -0,0 +1,179 @@
1
+ # トークンを管理する
2
+
3
+ このガイドでは、OCAP Client を使用してファンジブルトークンを管理するための手順を詳しく説明します。トークンの設計図として機能するトークンファクトリーを設定し、それを使用してミント(新しいトークンの作成)およびバーン(既存のトークンの破棄)する方法を学びます。これらの操作は、アプリケーション内で独自の経済システムを構築・管理する上で基本となります。
4
+
5
+ トークンをミントした後は、アカウント間で転送できます。そのプロセスの詳細については、[トークンとNFTの転送](./how-to-guides-transfer-tokens-and-nfts.md)ガイドを参照してください。
6
+
7
+ ## トークンファクトリーを作成する
8
+
9
+ トークンファクトリーは、名前、シンボル、供給メカニズムなど、ファンジブルトークンのプロパティとルールを定義するスマートコントラクトです。また、ミントとバーンのプロセスも管理します。新しいトークンを流通させるには、まずファクトリーを作成する必要があります。
10
+
11
+ `createTokenFactory` メソッドは、新しいトークンファクトリーをブロックチェーンにデプロイします。
12
+
13
+ ### パラメータ
14
+ <x-field-group>
15
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="トランザクションに署名するために使用される、ファクトリー所有者のウォレットオブジェクト。"></x-field>
16
+ <x-field data-name="token" data-type="object" data-required="true" data-desc="作成されるトークンのプロパティを定義するオブジェクト。">
17
+ <x-field data-name="name" data-type="string" data-required="true" data-desc="トークンのフルネーム(例:'My Awesome Token')。"></x-field>
18
+ <x-field data-name="symbol" data-type="string" data-required="true" data-desc="トークンのティッカーシンボル(例:'MAT')。"></x-field>
19
+ <x-field data-name="decimal" data-type="number" data-required="true" data-desc="トークンがサポートする小数点以下の桁数。"></x-field>
20
+ <x-field data-name="description" data-type="string" data-required="false" data-desc="トークンの簡単な説明。"></x-field>
21
+ <x-field data-name="icon" data-type="string" data-required="false" data-desc="トークンのアイコンへのURL。"></x-field>
22
+ <x-field data-name="maxTotalSupply" data-type="number" data-required="false" data-desc="これまでにミントできる最大総供給量。"></x-field>
23
+ </x-field>
24
+ <x-field data-name="curve" data-type="object" data-required="false" data-desc="トークンの価格をプログラムで制御するボンディングカーブの設定。省略した場合、ミント/バーンはリザーブトークンに結び付けられません。">
25
+ <x-field data-name="basePrice" data-type="number" data-required="false" data-desc="リザーブ通貨でのトークンの基本価格。"></x-field>
26
+ <x-field data-name="fixedPrice" data-type="number" data-required="false" data-desc="動的なカーブを使用しない場合のトークンの固定価格。"></x-field>
27
+ <x-field data-name="slope" data-type="number" data-required="false" data-desc="ボンディングカーブの傾きで、その急勾配を決定します。"></x-field>
28
+ </x-field>
29
+ <x-field data-name="feeRate" data-type="number" data-default="0" data-required="false" data-desc="ミントおよびバーン操作の手数料率(ベーシスポイント単位)。"></x-field>
30
+ <x-field data-name="data" data-type="object" data-required="false" data-desc="トークンファクトリーに添付するオプションのカスタムデータ。"></x-field>
31
+ </x-field-group>
32
+
33
+ ### 戻り値
34
+
35
+ トランザクションハッシュと新しく作成されたトークンファクトリーのアドレスを含む配列に解決されるプロミスを返します。
36
+
37
+ <x-field-group>
38
+ <x-field data-name="[0]" data-type="string" data-desc="ファクトリー作成のトランザクションハッシュ。"></x-field>
39
+ <x-field data-name="[1]" data-type="string" data-desc="新しいトークンファクトリーのアドレス。"></x-field>
40
+ </x-field-group>
41
+
42
+ ### 例
43
+
44
+ ```javascript Create a Token Factory icon=logos:javascript
45
+ import Client from '@ocap/client';
46
+ import Wallet from '@ocap/wallet';
47
+
48
+ const endpoint = 'https://beta.abtnetwork.io/api';
49
+ const client = new Client(endpoint);
50
+ const wallet = Wallet.fromRandom();
51
+
52
+ // まず、ウォレットに資金があることを確認します。テストトークンはフォーセットから入手できます:
53
+ // https://faucet.abtnetwork.io/
54
+
55
+ async function createFactory() {
56
+ try {
57
+ const [hash, factoryAddress] = await client.createTokenFactory({
58
+ wallet,
59
+ token: {
60
+ name: 'My Game Coin',
61
+ symbol: 'MGC',
62
+ decimal: 18,
63
+ description: 'The official currency for My Awesome Game.',
64
+ maxTotalSupply: 1000000,
65
+ },
66
+ feeRate: 100, // 1%の手数料
67
+ });
68
+
69
+ console.log('トークンファクトリーが正常に作成されました!');
70
+ console.log('トランザクションハッシュ:', hash);
71
+ console.log('ファクトリーアドレス:', factoryAddress);
72
+ return factoryAddress;
73
+ } catch (error) {
74
+ console.error('トークンファクトリーの作成中にエラーが発生しました:', error);
75
+ }
76
+ }
77
+
78
+ createFactory();
79
+ ```
80
+
81
+ ## トークンをミントする
82
+
83
+ ミントとは、新しいトークンを作成して総供給量に追加するプロセスです。これはトークンファクトリーを通じて行われます。ファクトリーがボンディングカーブで設定されている場合、ミントにはリザーブトークンでの支払いが必要になります。
84
+
85
+ `mintToken` メソッドは、ファクトリーから指定された量のトークンをミントするトランザクションを開始します。
86
+
87
+ ### パラメータ
88
+ <x-field-group>
89
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="ミント操作に資金を提供し、トランザクションに署名するウォレット。"></x-field>
90
+ <x-field data-name="tokenFactory" data-type="string" data-required="true" data-desc="ミント元となるトークンファクトリーのアドレス。"></x-field>
91
+ <x-field data-name="amount" data-type="number" data-required="true" data-desc="ミントするトークンの数量。"></x-field>
92
+ <x-field data-name="receiver" data-type="string" data-required="true" data-desc="新しくミントされたトークンを受け取るアドレス。"></x-field>
93
+ <x-field data-name="maxReserve" data-type="number" data-required="true" data-desc="ウォレットが支払う意思のあるリザーブトークンの最大量。これはスリッページ保護メカニズムとして機能します。"></x-field>
94
+ <x-field data-name="data" data-type="object" data-required="false" data-desc="ミントトランザクションに添付するオプションのカスタムデータ。"></x-field>
95
+ </x-field-group>
96
+
97
+ ### 戻り値
98
+
99
+ トランザクションハッシュに解決されるプロミスを返します。
100
+
101
+ <x-field data-name="hash" data-type="string" data-desc="ミント操作のトランザクションハッシュ。"></x-field>
102
+
103
+ ### 例
104
+
105
+ ```javascript Mint Tokens from a Factory icon=logos:javascript
106
+ async function mintNewTokens(factoryAddress) {
107
+ try {
108
+ const hash = await client.mintToken({
109
+ wallet,
110
+ tokenFactory: factoryAddress,
111
+ amount: 5000,
112
+ receiver: wallet.address, // 自身のウォレットにトークンをミントする
113
+ maxReserve: 10, // 支払うリザーブトークンの最大値。ボンディングカーブの価格に基づいて調整してください。
114
+ });
115
+
116
+ console.log('トークンが正常にミントされました!');
117
+ console.log('トランザクションハッシュ:', hash);
118
+ } catch (error) {
119
+ console.error('トークンのミント中にエラーが発生しました:', error);
120
+ }
121
+ }
122
+
123
+ // `factoryAddress` が createFactory の例から利用可能であると仮定
124
+ // const factoryAddress = '...';
125
+ // mintNewTokens(factoryAddress);
126
+ ```
127
+
128
+ ## トークンをバーンする
129
+
130
+ バーンはミントの反対で、トークンを流通から永久に削除します。トークンファクトリーがボンディングカーブを使用している場合、トークンをバーンすると、ユーザーに比例した量のリザーブ通貨が返されます。
131
+
132
+ `burnToken` メソッドがこのプロセスを開始します。
133
+
134
+ ### パラメータ
135
+ <x-field-group>
136
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="バーンされるトークンを保持し、トランザクションに署名するウォレット。"></x-field>
137
+ <x-field data-name="tokenFactory" data-type="string" data-required="true" data-desc="トークンファクトリーのアドレス。"></x-field>
138
+ <x-field data-name="amount" data-type="number" data-required="true" data-desc="バーンするトークンの数量。"></x-field>
139
+ <x-field data-name="receiver" data-type="string" data-required="true" data-desc="見返りとしてリザーブトークンを受け取るアドレス。"></x-field>
140
+ <x-field data-name="minReserve" data-type="number" data-required="true" data-desc="ウォレットが受け取ると期待するリザーブトークンの最小量。これは価格の滑りから保護します。"></x-field>
141
+ <x-field data-name="data" data-type="object" data-required="false" data-desc="バーントランザクションに添付するオプションのカスタムデータ。"></x-field>
142
+ </x-field-group>
143
+
144
+ ### 戻り値
145
+
146
+ トランザクションハッシュに解決されるプロミスを返します。
147
+
148
+ <x-field data-name="hash" data-type="string" data-desc="バーン操作のトランザクションハッシュ。"></x-field>
149
+
150
+ ### 例
151
+
152
+ ```javascript Burn Tokens icon=logos:javascript
153
+ async function burnExistingTokens(factoryAddress) {
154
+ try {
155
+ const hash = await client.burnToken({
156
+ wallet,
157
+ tokenFactory: factoryAddress,
158
+ amount: 1000,
159
+ receiver: wallet.address, // 自身のウォレットにリザーブトークンを受け取る
160
+ minReserve: 1, // 受け取るリザーブトークンの最小値。ボンディングカーブの価格に基づいて調整してください。
161
+ });
162
+
163
+ console.log('トークンが正常にバーンされました!');
164
+ console.log('トランザクションハッシュ:', hash);
165
+ } catch (error) {
166
+ console.error('トークンのバーン中にエラーが発生しました:', error);
167
+ }
168
+ }
169
+
170
+ // `factoryAddress` が createFactory の例から利用可能であると仮定
171
+ // const factoryAddress = '...';
172
+ // burnExistingTokens(factoryAddress);
173
+ ```
174
+
175
+ ## まとめ
176
+
177
+ このガイドでは、ファンジブルトークンを管理するための完全なライフサイクル(ファクトリーの作成、新しいトークンのミント、供給を減らすためのバーン)を学びました。これらの強力なプリミティブにより、OCAP プラットフォーム上で高度な経済システムを構築できます。
178
+
179
+ トークンの作成方法を学んだので、次のステップはトークンの移動方法を学ぶことです。[トークンとNFTの転送](./how-to-guides-transfer-tokens-and-nfts.md)ガイドでその方法を確認してください。
@@ -0,0 +1,179 @@
1
+ # 管理代幣
2
+
3
+ 本指南提供使用 OCAP Client 管理同質化代幣的逐步說明。您將學習如何設定代幣工廠(作為您代幣的藍圖),然後用它來鑄造(創建新代幣)和銷毀(摧毀現有代幣)。這些操作是在您的應用程式中創建和管理自訂經濟體的基礎。
4
+
5
+ 一旦鑄造了代幣,您就可以在帳戶之間轉移它們。有關該過程的更多詳細資訊,請參閱 [轉移代幣和 NFT](./how-to-guides-transfer-tokens-and-nfts.md) 指南。
6
+
7
+ ## 建立代幣工廠
8
+
9
+ 代幣工廠是一種智能合約,它定義了同質化代幣的屬性和規則,例如其名稱、符號和供應機制。它還管理鑄造和銷毀的過程。建立工廠是任何新代幣進入流通前的第一步。
10
+
11
+ `createTokenFactory` 方法將一個新的代幣工廠部署到區塊鏈上。
12
+
13
+ ### 參數
14
+ <x-field-group>
15
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="工廠所有者的錢包物件,用於簽署交易。"></x-field>
16
+ <x-field data-name="token" data-type="object" data-required="true" data-desc="一個定義要創建的代幣屬性的物件。">
17
+ <x-field data-name="name" data-type="string" data-required="true" data-desc="代幣的全名(例如,'My Awesome Token')。"></x-field>
18
+ <x-field data-name="symbol" data-type="string" data-required="true" data-desc="代幣的股票代碼(例如,'MAT')。"></x-field>
19
+ <x-field data-name="decimal" data-type="number" data-required="true" data-desc="代幣支援的小數位數。"></x-field>
20
+ <x-field data-name="description" data-type="string" data-required="false" data-desc="代幣的簡要描述。"></x-field>
21
+ <x-field data-name="icon" data-type="string" data-required="false" data-desc="代幣圖示的 URL。"></x-field>
22
+ <x-field data-name="maxTotalSupply" data-type="number" data-required="false" data-desc="可鑄造的最大總供應量。"></x-field>
23
+ </x-field>
24
+ <x-field data-name="curve" data-type="object" data-required="false" data-desc="聯合曲線的設定,以程式化方式控制代幣價格。如果省略,鑄造/銷毀將不與儲備代幣掛鉤。">
25
+ <x-field data-name="basePrice" data-type="number" data-required="false" data-desc="代幣以儲備貨幣計價的基礎價格。"></x-field>
26
+ <x-field data-name="fixedPrice" data-type="number" data-required="false" data-desc="代幣的固定價格,如果不使用動態曲線。"></x-field>
27
+ <x-field data-name="slope" data-type="number" data-required="false" data-desc="聯合曲線的斜率,決定其陡峭程度。"></x-field>
28
+ </x-field>
29
+ <x-field data-name="feeRate" data-type="number" data-default="0" data-required="false" data-desc="鑄造和銷毀操作的費率(以基點為單位)。"></x-field>
30
+ <x-field data-name="data" data-type="object" data-required="false" data-desc="可選的自訂資料,附加到代幣工廠。"></x-field>
31
+ </x-field-group>
32
+
33
+ ### 返回值
34
+
35
+ 返回一個解析為包含交易雜湊值和新創建代幣工廠地址的陣列的 promise。
36
+
37
+ <x-field-group>
38
+ <x-field data-name="[0]" data-type="string" data-desc="工廠創建的交易雜湊值。"></x-field>
39
+ <x-field data-name="[1]" data-type="string" data-desc="新代幣工廠的地址。"></x-field>
40
+ </x-field-group>
41
+
42
+ ### 範例
43
+
44
+ ```javascript Create a Token Factory icon=logos:javascript
45
+ import Client from '@ocap/client';
46
+ import Wallet from '@ocap/wallet';
47
+
48
+ const endpoint = 'https://beta.abtnetwork.io/api';
49
+ const client = new Client(endpoint);
50
+ const wallet = Wallet.fromRandom();
51
+
52
+ // 首先,確保錢包有資金。您可以從水龍頭獲取測試代幣:
53
+ // https://faucet.abtnetwork.io/
54
+
55
+ async function createFactory() {
56
+ try {
57
+ const [hash, factoryAddress] = await client.createTokenFactory({
58
+ wallet,
59
+ token: {
60
+ name: 'My Game Coin',
61
+ symbol: 'MGC',
62
+ decimal: 18,
63
+ description: 'The official currency for My Awesome Game.',
64
+ maxTotalSupply: 1000000,
65
+ },
66
+ feeRate: 100, // 1% 手續費
67
+ });
68
+
69
+ console.log('代幣工廠建立成功!');
70
+ console.log('交易雜湊值:', hash);
71
+ console.log('工廠地址:', factoryAddress);
72
+ return factoryAddress;
73
+ } catch (error) {
74
+ console.error('建立代幣工廠時出錯:', error);
75
+ }
76
+ }
77
+
78
+ createFactory();
79
+ ```
80
+
81
+ ## 鑄造代幣
82
+
83
+ 鑄造是創建新代幣並將其加入總供應量的過程。這是透過代幣工廠完成的。如果工廠配置了聯合曲線,鑄造將需要支付儲備代幣。
84
+
85
+ `mintToken` 方法會啟動一個交易,從工廠鑄造指定數量的代幣。
86
+
87
+ ### 參數
88
+ <x-field-group>
89
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="為鑄造操作提供資金並簽署交易的錢包。"></x-field>
90
+ <x-field data-name="tokenFactory" data-type="string" data-required="true" data-desc="要從中鑄造代幣的代幣工廠地址。"></x-field>
91
+ <x-field data-name="amount" data-type="number" data-required="true" data-desc="要鑄造的代幣數量。"></x-field>
92
+ <x-field data-name="receiver" data-type="string" data-required="true" data-desc="將接收新鑄造代幣的地址。"></x-field>
93
+ <x-field data-name="maxReserve" data-type="number" data-required="true" data-desc="錢包願意花費的儲備代幣最大數量。這可作為一種滑價保護機制。"></x-field>
94
+ <x-field data-name="data" data-type="object" data-required="false" data-desc="可選的自訂資料,附加到鑄造交易中。"></x-field>
95
+ </x-field-group>
96
+
97
+ ### 返回值
98
+
99
+ 返回一個解析為交易雜湊值的 promise。
100
+
101
+ <x-field data-name="hash" data-type="string" data-desc="鑄造操作的交易雜湊值。"></x-field>
102
+
103
+ ### 範例
104
+
105
+ ```javascript Mint Tokens from a Factory icon=logos:javascript
106
+ async function mintNewTokens(factoryAddress) {
107
+ try {
108
+ const hash = await client.mintToken({
109
+ wallet,
110
+ tokenFactory: factoryAddress,
111
+ amount: 5000,
112
+ receiver: wallet.address, // 將代幣鑄造到我們自己的錢包
113
+ maxReserve: 10, // 要支付的最大儲備代幣。根據聯合曲線價格進行調整。
114
+ });
115
+
116
+ console.log('代幣鑄造成功!');
117
+ console.log('交易雜湊值:', hash);
118
+ } catch (error) {
119
+ console.error('鑄造代幣時出錯:', error);
120
+ }
121
+ }
122
+
123
+ // 假設 `factoryAddress` 可從 createFactory 範例中獲得
124
+ // const factoryAddress = '...';
125
+ // mintNewTokens(factoryAddress);
126
+ ```
127
+
128
+ ## 銷毀代幣
129
+
130
+ 銷毀與鑄造相反;它會永久地將代幣從流通中移除。如果代幣工廠使用聯合曲線,銷毀代幣將按比例返還儲備貨幣給用戶。
131
+
132
+ `burnToken` 方法會啟動此過程。
133
+
134
+ ### 參數
135
+ <x-field-group>
136
+ <x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="持有要銷毀的代幣並將簽署交易的錢包。"></x-field>
137
+ <x-field data-name="tokenFactory" data-type="string" data-required="true" data-desc="代幣工廠的地址。"></x-field>
138
+ <x-field data-name="amount" data-type="number" data-required="true" data-desc="要銷毀的代幣數量。"></x-field>
139
+ <x-field data-name="receiver" data-type="string" data-required="true" data-desc="將接收返還的儲備代幣的地址。"></x-field>
140
+ <x-field data-name="minReserve" data-type="number" data-required="true" data-desc="錢包預期收到的最少儲備代幣數量。這可以防止價格滑動。"></x-field>
141
+ <x-field data-name="data" data-type="object" data-required="false" data-desc="可選的自訂資料,附加到銷毀交易中。"></x-field>
142
+ </x-field-group>
143
+
144
+ ### 返回值
145
+
146
+ 返回一個解析為交易雜湊值的 promise。
147
+
148
+ <x-field data-name="hash" data-type="string" data-desc="銷毀操作的交易雜湊值。"></x-field>
149
+
150
+ ### 範例
151
+
152
+ ```javascript Burn Tokens icon=logos:javascript
153
+ async function burnExistingTokens(factoryAddress) {
154
+ try {
155
+ const hash = await client.burnToken({
156
+ wallet,
157
+ tokenFactory: factoryAddress,
158
+ amount: 1000,
159
+ receiver: wallet.address, // 將儲備代幣接收回我們自己的錢包
160
+ minReserve: 1, // 要接收的最小儲備代幣。根據聯合曲線價格進行調整。
161
+ });
162
+
163
+ console.log('代幣銷毀成功!');
164
+ console.log('交易雜湊值:', hash);
165
+ } catch (error) {
166
+ console.error('銷毀代幣時出錯:', error);
167
+ }
168
+ }
169
+
170
+ // 假設 `factoryAddress` 可從 createFactory 範例中獲得
171
+ // const factoryAddress = '...';
172
+ // burnExistingTokens(factoryAddress);
173
+ ```
174
+
175
+ ## 總結
176
+
177
+ 在本指南中,您學習了管理同質化代幣的完整生命週期:建立工廠、鑄造新代幣使其存在,以及銷毀它們以減少供應。這些強大的基礎功能讓您可以在 OCAP 平台上建構複雜的經濟系統。
178
+
179
+ 既然您知道了如何創建代幣,接下來合乎邏輯的一步就是學習如何轉移它們。請前往 [轉移代幣和 NFT](./how-to-guides-transfer-tokens-and-nfts.md) 指南查看如何操作。