@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,86 +1,86 @@
|
|
|
1
1
|
# 轉移代幣和 NFT
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本指南將逐步引導您如何使用 OCAP Client 在帳戶之間轉移可替代代幣(包括原生代幣和自訂代幣)以及非同質化代幣(NFT 或資產)。所有轉移操作的主要方法是 `client.transfer()`。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
需要記住的一個關鍵特性是,當一個新帳戶收到第一筆入帳交易時,它會自動在鏈上被建立。這意味著您可以將代幣或資產轉移到一個全新的地址,而無需為接收方進行任何預先設定。
|
|
6
6
|
|
|
7
7
|
## `transfer` 方法
|
|
8
8
|
|
|
9
|
-
`client.transfer()`
|
|
9
|
+
`client.transfer()` 方法是一個多功能的輔助函式,可以簡化發送資產和代幣的過程。它透過單次呼叫即可建構、簽署並將相應的交易(`transferV2Tx`)發送到區塊鏈。
|
|
10
10
|
|
|
11
11
|
### 參數
|
|
12
12
|
|
|
13
13
|
<x-field-group>
|
|
14
14
|
<x-field data-name="to" data-type="string" data-required="true">
|
|
15
|
-
<x-field-desc markdown
|
|
15
|
+
<x-field-desc markdown>接收方的帳戶地址。此地址必須是有效的 DID 地址。</x-field-desc>
|
|
16
16
|
</x-field>
|
|
17
|
-
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="
|
|
17
|
+
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="用於簽署交易的發送方錢包物件。"></x-field>
|
|
18
18
|
<x-field data-name="token" data-type="number" data-default="0">
|
|
19
19
|
<x-field-desc markdown>要轉移的鏈原生代幣數量。客戶端會自動處理轉換為正確的小數位數。</x-field-desc>
|
|
20
20
|
</x-field>
|
|
21
|
-
<x-field data-name="assets" data-type="string[]" data-default="[]" data-desc="
|
|
21
|
+
<x-field data-name="assets" data-type="string[]" data-default="[]" data-desc="一個包含要轉移的資產地址(NFT)的陣列。"></x-field>
|
|
22
22
|
<x-field data-name="tokens" data-type="object[]" data-default="[]">
|
|
23
|
-
<x-field-desc markdown
|
|
23
|
+
<x-field-desc markdown>一個包含要轉移的自訂可替代代幣物件的陣列。</x-field-desc>
|
|
24
24
|
<x-field data-name="address" data-type="string" data-required="true" data-desc="自訂代幣合約的地址。"></x-field>
|
|
25
25
|
<x-field data-name="value" data-type="number" data-required="true" data-desc="要轉移的自訂代幣數量。"></x-field>
|
|
26
26
|
</x-field>
|
|
27
|
-
<x-field data-name="memo" data-type="string" data-required="false" data-desc="
|
|
27
|
+
<x-field data-name="memo" data-type="string" data-required="false" data-desc="可選的訊息或備註,將包含在交易中。"></x-field>
|
|
28
28
|
<x-field data-name="delegator" data-type="string" data-required="false">
|
|
29
|
-
<x-field-desc markdown>如果 `wallet`
|
|
29
|
+
<x-field-desc markdown>如果 `wallet` 是代表另一個帳戶操作,此處應為委託帳戶的地址。更多詳情請參閱 [委託權限](./how-to-guides-delegate-permissions.md) 指南。</x-field-desc>
|
|
30
30
|
</x-field>
|
|
31
31
|
</x-field-group>
|
|
32
32
|
|
|
33
33
|
### 返回值
|
|
34
34
|
|
|
35
35
|
<x-field data-name="Promise<string>" data-type="Promise">
|
|
36
|
-
<x-field-desc markdown>一個 Promise
|
|
36
|
+
<x-field-desc markdown>一個 Promise,在成功提交到區塊鏈後會解析為交易雜湊值。</x-field-desc>
|
|
37
37
|
</x-field>
|
|
38
38
|
|
|
39
39
|
## 逐步範例
|
|
40
40
|
|
|
41
|
-
###
|
|
41
|
+
### 前提條件
|
|
42
42
|
|
|
43
43
|
在開始之前,請確保您具備:
|
|
44
44
|
|
|
45
|
-
1.
|
|
46
|
-
2.
|
|
47
|
-
3.
|
|
45
|
+
1. 一個已初始化並連接到鏈主機(例如 `https://beta.abtnetwork.io`)的 `GraphQLClient`。
|
|
46
|
+
2. 一個發送方的錢包物件(`senderWallet`),其中有足夠的代幣來支付轉帳和交易費用。
|
|
47
|
+
3. 一個接收方的錢包物件(`recipientWallet`),以獲取其地址。接收方的帳戶尚無需存在於鏈上。
|
|
48
48
|
|
|
49
|
-
```javascript
|
|
49
|
+
```javascript 基本設定 icon=logos:javascript
|
|
50
50
|
import GraphQLClient from '@ocap/client';
|
|
51
51
|
import { fromRandom } from '@ocap/wallet';
|
|
52
52
|
|
|
53
53
|
// 1. 初始化客戶端
|
|
54
54
|
const client = new GraphQLClient({ endpoint: 'https://beta.abtnetwork.io/api' });
|
|
55
55
|
|
|
56
|
-
// 2.
|
|
57
|
-
//
|
|
56
|
+
// 2. 為發送方和接收方建立錢包
|
|
57
|
+
// 在實際應用中,發送方的錢包應該是載入的,而不是隨機建立的。
|
|
58
58
|
const senderWallet = fromRandom(); // 假設此錢包已有資金
|
|
59
59
|
const recipientWallet = fromRandom();
|
|
60
60
|
|
|
61
61
|
console.log(`Sender Address: ${senderWallet.address}`);
|
|
62
62
|
console.log(`Recipient Address: ${recipientWallet.address}`);
|
|
63
63
|
|
|
64
|
-
//
|
|
64
|
+
// 要為此範例中的發送方錢包儲值,請使用水龍頭:
|
|
65
65
|
// https://faucet.abtnetwork.io/
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
### 範例 1:轉移原生代幣
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
此範例展示如何從發送方發送 10 個原生代幣給接收方。
|
|
71
71
|
|
|
72
|
-
```javascript
|
|
72
|
+
```javascript 轉移原生代幣 icon=logos:javascript
|
|
73
73
|
async function transferNativeTokens() {
|
|
74
74
|
try {
|
|
75
75
|
const hash = await client.transfer({
|
|
76
76
|
to: recipientWallet.address,
|
|
77
77
|
token: 10, // 要發送的原生代幣數量
|
|
78
78
|
wallet: senderWallet,
|
|
79
|
-
memo: '
|
|
79
|
+
memo: 'Sending you 10 native tokens!'
|
|
80
80
|
});
|
|
81
|
-
console.log('
|
|
81
|
+
console.log('Native token transfer successful. Tx Hash:', hash);
|
|
82
82
|
} catch (err) {
|
|
83
|
-
console.error('
|
|
83
|
+
console.error('Error transferring tokens:', err);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -89,23 +89,23 @@ transferNativeTokens();
|
|
|
89
89
|
|
|
90
90
|
### 範例 2:轉移 NFT(資產)
|
|
91
91
|
|
|
92
|
-
要轉移 NFT
|
|
92
|
+
要轉移 NFT,您需要其唯一的資產地址。首先,您需要建立或取得一個資產(參見 [管理資產 (NFT)](./how-to-guides-manage-assets.md))。在此範例中,我們假設 `senderWallet` 已經擁有一個地址為 `zNKj...` 的 NFT。
|
|
93
93
|
|
|
94
|
-
```javascript
|
|
94
|
+
```javascript 轉移 NFT icon=logos:javascript
|
|
95
95
|
async function transferNFT() {
|
|
96
|
-
// 假設這是 senderWallet
|
|
96
|
+
// 假設這是 senderWallet 所擁有的 NFT 地址
|
|
97
97
|
const nftAddress = 'zNKjL4wTmxQPk5nN2ADDPCd58286b2de3f3e';
|
|
98
98
|
|
|
99
99
|
try {
|
|
100
100
|
const hash = await client.transfer({
|
|
101
101
|
to: recipientWallet.address,
|
|
102
|
-
assets: [nftAddress], //
|
|
102
|
+
assets: [nftAddress], // 一個資產地址的陣列
|
|
103
103
|
wallet: senderWallet,
|
|
104
|
-
memo: '
|
|
104
|
+
memo: 'Here is the NFT you wanted.'
|
|
105
105
|
});
|
|
106
|
-
console.log('NFT
|
|
106
|
+
console.log('NFT transfer successful. Tx Hash:', hash);
|
|
107
107
|
} catch (err) {
|
|
108
|
-
console.error('
|
|
108
|
+
console.error('Error transferring NFT:', err);
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
|
|
@@ -114,11 +114,11 @@ transferNFT();
|
|
|
114
114
|
|
|
115
115
|
### 範例 3:轉移自訂代幣
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
此範例展示如何轉移自訂可替代代幣。您需要該代幣的合約地址。有關建立自訂代幣的資訊,請參閱 [管理代幣](./how-to-guides-manage-tokens.md) 指南。
|
|
118
118
|
|
|
119
|
-
```javascript
|
|
119
|
+
```javascript 轉移自訂代幣 icon=logos:javascript
|
|
120
120
|
async function transferCustomToken() {
|
|
121
|
-
// 假設這是 senderWallet
|
|
121
|
+
// 假設這是 senderWallet 所擁有的自訂代幣地址
|
|
122
122
|
const customTokenAddress = 'z37bA4x...';
|
|
123
123
|
|
|
124
124
|
try {
|
|
@@ -126,13 +126,13 @@ async function transferCustomToken() {
|
|
|
126
126
|
to: recipientWallet.address,
|
|
127
127
|
wallet: senderWallet,
|
|
128
128
|
tokens: [
|
|
129
|
-
{ address: customTokenAddress, value: 50 } // 50
|
|
129
|
+
{ address: customTokenAddress, value: 50 } // 50 個單位的自訂代幣
|
|
130
130
|
],
|
|
131
|
-
memo: '
|
|
131
|
+
memo: 'Sending 50 custom tokens.'
|
|
132
132
|
});
|
|
133
|
-
console.log('
|
|
133
|
+
console.log('Custom token transfer successful. Tx Hash:', hash);
|
|
134
134
|
} catch (err) {
|
|
135
|
-
console.error('
|
|
135
|
+
console.error('Error transferring custom token:', err);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -141,11 +141,11 @@ transferCustomToken();
|
|
|
141
141
|
|
|
142
142
|
### 範例 4:組合轉移
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
您可以在單一的原子交易中同時發送原生代幣、自訂代幣和多個 NFT。這種方式非常高效。
|
|
145
145
|
|
|
146
|
-
```javascript
|
|
146
|
+
```javascript 組合轉移 icon=logos:javascript
|
|
147
147
|
async function combinedTransfer() {
|
|
148
|
-
// 假設這些是 senderWallet
|
|
148
|
+
// 假設這些是 senderWallet 所擁有的資產和代幣地址
|
|
149
149
|
const nftAddress1 = 'zNKjL4wTmxQPk5nN2ADDPCd58286b2de3f3e';
|
|
150
150
|
const nftAddress2 = 'zNKiabcdeQPk5nN2ADDPCd58286b2defghj';
|
|
151
151
|
const customTokenAddress = 'z37bA4x...'; // 自訂可替代代幣的地址
|
|
@@ -155,22 +155,22 @@ async function combinedTransfer() {
|
|
|
155
155
|
to: recipientWallet.address,
|
|
156
156
|
wallet: senderWallet,
|
|
157
157
|
token: 5, // 5 個原生代幣
|
|
158
|
-
assets: [nftAddress1, nftAddress2], //
|
|
158
|
+
assets: [nftAddress1, nftAddress2], // 一個包含兩個 NFT 的陣列
|
|
159
159
|
tokens: [
|
|
160
|
-
{ address: customTokenAddress, value: 50 } // 50
|
|
160
|
+
{ address: customTokenAddress, value: 50 } // 50 個單位的自訂代幣
|
|
161
161
|
],
|
|
162
|
-
memo: '
|
|
162
|
+
memo: 'Sending a mix of tokens and NFTs.'
|
|
163
163
|
});
|
|
164
|
-
console.log('
|
|
164
|
+
console.log('Combined transfer successful. Tx Hash:', hash);
|
|
165
165
|
} catch (err) {
|
|
166
|
-
console.error('
|
|
166
|
+
console.error('Error with combined transfer:', err);
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
combinedTransfer();
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
透過遵循這些範例,您可以輕鬆地在您的應用程式中實現代幣和 NFT 的轉移。有關建立您希望轉移的項目的更多詳細資訊,請參閱相關指南。
|
|
174
174
|
|
|
175
175
|
### 延伸閱讀
|
|
176
176
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# 转移通证和 NFT
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本指南将逐步引导您使用 OCAP Client 在账户之间转移可替代通证(包括原生通证和自定义通证)和非替代通证(NFT 或资产)。所有转移操作的主要方法是 `client.transfer()`。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
需要记住的一个关键特性是,当新账户首次接收到入账交易时,它会自动在链上创建。这意味着您可以将通证或资产转移到一个全新的地址,而无需接收方进行任何预先设置。
|
|
6
6
|
|
|
7
7
|
## `transfer` 方法
|
|
8
8
|
|
|
9
|
-
`client.transfer()`
|
|
9
|
+
`client.transfer()` 方法是一个多功能的辅助函数,可简化发送资产和通证的过程。它通过一次调用即可构建、签署相应的交易(`transferV2Tx`)并将其发送到区块链。
|
|
10
10
|
|
|
11
11
|
### 参数
|
|
12
12
|
|
|
13
13
|
<x-field-group>
|
|
14
14
|
<x-field data-name="to" data-type="string" data-required="true">
|
|
15
|
-
<x-field-desc markdown
|
|
15
|
+
<x-field-desc markdown>接收方的账户地址。必须是有效的 DID 地址。</x-field-desc>
|
|
16
16
|
</x-field>
|
|
17
17
|
<x-field data-name="wallet" data-type="WalletObject" data-required="true" data-desc="用于签署交易的发送方钱包对象。"></x-field>
|
|
18
18
|
<x-field data-name="token" data-type="number" data-default="0">
|
|
@@ -26,25 +26,25 @@
|
|
|
26
26
|
</x-field>
|
|
27
27
|
<x-field data-name="memo" data-type="string" data-required="false" data-desc="交易中包含的可选消息或备注。"></x-field>
|
|
28
28
|
<x-field data-name="delegator" data-type="string" data-required="false">
|
|
29
|
-
<x-field-desc markdown>如果 `wallet`
|
|
29
|
+
<x-field-desc markdown>如果 `wallet` 代表另一个账户操作,此处应为委托账户的地址。更多详情请参阅[委托权限](./how-to-guides-delegate-permissions.md)指南。</x-field-desc>
|
|
30
30
|
</x-field>
|
|
31
31
|
</x-field-group>
|
|
32
32
|
|
|
33
33
|
### 返回值
|
|
34
34
|
|
|
35
35
|
<x-field data-name="Promise<string>" data-type="Promise">
|
|
36
|
-
<x-field-desc markdown>一个 Promise
|
|
36
|
+
<x-field-desc markdown>一个 Promise,在成功提交到区块链后会解析为交易哈希值。</x-field-desc>
|
|
37
37
|
</x-field>
|
|
38
38
|
|
|
39
39
|
## 分步示例
|
|
40
40
|
|
|
41
|
-
###
|
|
41
|
+
### 前提条件
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
在开始之前,请确保您已具备:
|
|
44
44
|
|
|
45
|
-
1.
|
|
46
|
-
2.
|
|
47
|
-
3.
|
|
45
|
+
1. 一个已初始化的 `GraphQLClient`,已连接到链主机,例如 `https://beta.abtnetwork.io`。
|
|
46
|
+
2. 一个发送方的钱包对象 (`senderWallet`),其中存有足够的通证以支付转账和交易费用。
|
|
47
|
+
3. 一个接收方的钱包对象 (`recipientWallet`),用于获取其地址。接收方的账户此时无需已在链上存在。
|
|
48
48
|
|
|
49
49
|
```javascript Basic Setup icon=logos:javascript
|
|
50
50
|
import GraphQLClient from '@ocap/client';
|
|
@@ -54,20 +54,20 @@ import { fromRandom } from '@ocap/wallet';
|
|
|
54
54
|
const client = new GraphQLClient({ endpoint: 'https://beta.abtnetwork.io/api' });
|
|
55
55
|
|
|
56
56
|
// 2. 为发送方和接收方创建钱包
|
|
57
|
-
//
|
|
57
|
+
// 在实际应用中,发送方的钱包应为加载而非随机创建。
|
|
58
58
|
const senderWallet = fromRandom(); // 假设此钱包已有资金
|
|
59
59
|
const recipientWallet = fromRandom();
|
|
60
60
|
|
|
61
|
-
console.log(
|
|
62
|
-
console.log(
|
|
61
|
+
console.log(`Sender Address: ${senderWallet.address}`);
|
|
62
|
+
console.log(`Recipient Address: ${recipientWallet.address}`);
|
|
63
63
|
|
|
64
|
-
//
|
|
64
|
+
// 如需为本示例中的发送方钱包充值,请使用水龙头:
|
|
65
65
|
// https://faucet.abtnetwork.io/
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
### 示例 1:转移原生通证
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
此示例展示了如何从发送方发送 10 个原生通证给接收方。
|
|
71
71
|
|
|
72
72
|
```javascript Transfer Native Tokens icon=logos:javascript
|
|
73
73
|
async function transferNativeTokens() {
|
|
@@ -76,11 +76,11 @@ async function transferNativeTokens() {
|
|
|
76
76
|
to: recipientWallet.address,
|
|
77
77
|
token: 10, // 要发送的原生通证数量
|
|
78
78
|
wallet: senderWallet,
|
|
79
|
-
memo: '
|
|
79
|
+
memo: 'Sending you 10 native tokens!'
|
|
80
80
|
});
|
|
81
|
-
console.log('
|
|
81
|
+
console.log('Native token transfer successful. Tx Hash:', hash);
|
|
82
82
|
} catch (err) {
|
|
83
|
-
console.error('
|
|
83
|
+
console.error('Error transferring tokens:', err);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -89,7 +89,7 @@ transferNativeTokens();
|
|
|
89
89
|
|
|
90
90
|
### 示例 2:转移 NFT(资产)
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
要转移 NFT,您需要其唯一的资产地址。首先,您需要创建或获取一个资产(请参阅[管理资产 (NFT)](./how-to-guides-manage-assets.md))。在本示例中,我们假设 `senderWallet` 已拥有一个地址为 `zNKj...` 的 NFT。
|
|
93
93
|
|
|
94
94
|
```javascript Transfer an NFT icon=logos:javascript
|
|
95
95
|
async function transferNFT() {
|
|
@@ -99,13 +99,13 @@ async function transferNFT() {
|
|
|
99
99
|
try {
|
|
100
100
|
const hash = await client.transfer({
|
|
101
101
|
to: recipientWallet.address,
|
|
102
|
-
assets: [nftAddress], //
|
|
102
|
+
assets: [nftAddress], // 资产地址数组
|
|
103
103
|
wallet: senderWallet,
|
|
104
|
-
memo: '
|
|
104
|
+
memo: 'Here is the NFT you wanted.'
|
|
105
105
|
});
|
|
106
|
-
console.log('NFT
|
|
106
|
+
console.log('NFT transfer successful. Tx Hash:', hash);
|
|
107
107
|
} catch (err) {
|
|
108
|
-
console.error('
|
|
108
|
+
console.error('Error transferring NFT:', err);
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
|
|
@@ -114,7 +114,7 @@ transferNFT();
|
|
|
114
114
|
|
|
115
115
|
### 示例 3:转移自定义通证
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
此示例演示了如何转移自定义可替代通证。您需要该通证的合约地址。有关创建自定义通证的信息,请参阅[管理通证](./how-to-guides-manage-tokens.md)指南。
|
|
118
118
|
|
|
119
119
|
```javascript Transfer Custom Tokens icon=logos:javascript
|
|
120
120
|
async function transferCustomToken() {
|
|
@@ -126,13 +126,13 @@ async function transferCustomToken() {
|
|
|
126
126
|
to: recipientWallet.address,
|
|
127
127
|
wallet: senderWallet,
|
|
128
128
|
tokens: [
|
|
129
|
-
{ address: customTokenAddress, value: 50 } // 50
|
|
129
|
+
{ address: customTokenAddress, value: 50 } // 50 单位的自定义通证
|
|
130
130
|
],
|
|
131
|
-
memo: '
|
|
131
|
+
memo: 'Sending 50 custom tokens.'
|
|
132
132
|
});
|
|
133
|
-
console.log('
|
|
133
|
+
console.log('Custom token transfer successful. Tx Hash:', hash);
|
|
134
134
|
} catch (err) {
|
|
135
|
-
console.error('
|
|
135
|
+
console.error('Error transferring custom token:', err);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -141,7 +141,7 @@ transferCustomToken();
|
|
|
141
141
|
|
|
142
142
|
### 示例 4:组合转移
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
您可以将原生通证、自定义通证和多个 NFT 在一次原子交易中全部发送。这种方式非常高效。
|
|
145
145
|
|
|
146
146
|
```javascript Combined Transfer icon=logos:javascript
|
|
147
147
|
async function combinedTransfer() {
|
|
@@ -157,23 +157,23 @@ async function combinedTransfer() {
|
|
|
157
157
|
token: 5, // 5 个原生通证
|
|
158
158
|
assets: [nftAddress1, nftAddress2], // 包含两个 NFT 的数组
|
|
159
159
|
tokens: [
|
|
160
|
-
{ address: customTokenAddress, value: 50 } // 50
|
|
160
|
+
{ address: customTokenAddress, value: 50 } // 50 单位的自定义通证
|
|
161
161
|
],
|
|
162
|
-
memo: '
|
|
162
|
+
memo: 'Sending a mix of tokens and NFTs.'
|
|
163
163
|
});
|
|
164
|
-
console.log('
|
|
164
|
+
console.log('Combined transfer successful. Tx Hash:', hash);
|
|
165
165
|
} catch (err) {
|
|
166
|
-
console.error('
|
|
166
|
+
console.error('Error with combined transfer:', err);
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
combinedTransfer();
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
通过遵循这些示例,您可以轻松地在您的应用程序中实现通证和 NFT 的转移。有关创建您希望转移的项目的更多详细信息,请参阅相关指南。
|
|
174
174
|
|
|
175
|
-
###
|
|
175
|
+
### 延伸阅读
|
|
176
176
|
|
|
177
|
-
- [如何管理资产 (
|
|
177
|
+
- [如何管理资产 (NFT)](./how-to-guides-manage-assets.md)
|
|
178
178
|
- [如何管理通证](./how-to-guides-manage-tokens.md)
|
|
179
179
|
- [高级 API](./api-reference-transaction-helpers.md)
|
package/docs/how-to-guides.ja.md
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
# ハウツーガイド
|
|
2
2
|
|
|
3
|
-
このセクションでは、OCAP Client
|
|
3
|
+
このセクションでは、OCAP Client を使用して一般的なタスクを完了するための、実践的でステップバイステップの手順を説明します。各ガイドは、アカウントの管理から複雑なアトミックスワップの実行まで、特定の目標を達成するのに役立つ自己完結型のレシピとして設計されています。
|
|
4
4
|
|
|
5
5
|
<x-cards data-columns="2">
|
|
6
6
|
<x-card data-title="アカウントの管理" data-href="/how-to-guides/manage-accounts" data-icon="lucide:user-cog">
|
|
7
|
-
|
|
7
|
+
新しいキーへのアカウントの移行など、アカウント関連の操作について説明します。
|
|
8
8
|
</x-card>
|
|
9
9
|
<x-card data-title="権限の委任" data-href="/how-to-guides/delegate-permissions" data-icon="lucide:key-round">
|
|
10
|
-
|
|
10
|
+
あなたに代わってトランザクションを送信する権限を別のアカウントに与え、許可されるアクションを指定する方法を示します。
|
|
11
11
|
</x-card>
|
|
12
12
|
<x-card data-title="トークンとNFTの転送" data-href="/how-to-guides/transfer-tokens-and-nfts" data-icon="lucide:arrow-right-left">
|
|
13
|
-
|
|
13
|
+
ファンジブルトークンと非代替性トークン(アセット)をアカウント間で転送するためのステップバイステップガイドを提供します。
|
|
14
14
|
</x-card>
|
|
15
|
-
<x-card data-title="
|
|
16
|
-
|
|
15
|
+
<x-card data-title="アセット(NFT)の管理" data-href="/how-to-guides/manage-assets" data-icon="lucide:gem">
|
|
16
|
+
非代替性トークンの作成、更新、ファクトリーからのアセット取得など、完全なライフサイクルを順を追って説明します。
|
|
17
17
|
</x-card>
|
|
18
18
|
<x-card data-title="トークンの管理" data-href="/how-to-guides/manage-tokens" data-icon="lucide:coins">
|
|
19
|
-
|
|
19
|
+
トークンファクトリーからのトークンのミントやバーンなど、ファンジブルトークンの操作を実行する方法について説明します。
|
|
20
20
|
</x-card>
|
|
21
21
|
<x-card data-title="トークンとアセットのステーク" data-href="/how-to-guides/stake-tokens-and-assets" data-icon="lucide:piggy-bank">
|
|
22
|
-
|
|
22
|
+
トークンやアセットをレシーバーにステークする方法、およびステークの取り消しや請求を含むステップバイステップガイドです。
|
|
23
23
|
</x-card>
|
|
24
24
|
<x-card data-title="アトミックスワップの実行" data-href="/how-to-guides/perform-atomic-swaps" data-icon="lucide:repeat">
|
|
25
25
|
マルチシグネチャトランザクションを使用して、2つの当事者間でトークンとアセットを安全に交換する方法に関するガイドです。
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
# 操作指南
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本節提供實用、逐步的說明,協助您使用 OCAP Client 完成常見任務。每份指南都設計成一份獨立的操作說明,旨在幫助您達成特定目標,從管理帳戶到執行複雜的原子交換。
|
|
4
4
|
|
|
5
5
|
<x-cards data-columns="2">
|
|
6
6
|
<x-card data-title="管理帳戶" data-href="/how-to-guides/manage-accounts" data-icon="lucide:user-cog">
|
|
7
7
|
涵蓋與帳戶相關的操作,例如將帳戶遷移到新的金鑰。
|
|
8
8
|
</x-card>
|
|
9
9
|
<x-card data-title="委派權限" data-href="/how-to-guides/delegate-permissions" data-icon="lucide:key-round">
|
|
10
|
-
|
|
10
|
+
說明如何授權另一個帳戶代表您發送交易,並指定允許的操作。
|
|
11
11
|
</x-card>
|
|
12
12
|
<x-card data-title="轉移代幣和 NFT" data-href="/how-to-guides/transfer-tokens-and-nfts" data-icon="lucide:arrow-right-left">
|
|
13
13
|
提供在帳戶之間轉移同質化代幣和非同質化代幣(資產)的逐步指南。
|
|
14
14
|
</x-card>
|
|
15
15
|
<x-card data-title="管理資產(NFT)" data-href="/how-to-guides/manage-assets" data-icon="lucide:gem">
|
|
16
|
-
|
|
16
|
+
逐步介紹非同質化代幣的完整生命週期,包括從工廠創建、更新和獲取資產。
|
|
17
17
|
</x-card>
|
|
18
18
|
<x-card data-title="管理代幣" data-href="/how-to-guides/manage-tokens" data-icon="lucide:coins">
|
|
19
19
|
解釋如何執行同質化代幣操作,例如從代幣工廠鑄造和銷毀代幣。
|
|
@@ -22,6 +22,6 @@
|
|
|
22
22
|
關於如何將代幣或資產質押給接收者的逐步指南,包括撤銷和領取質押。
|
|
23
23
|
</x-card>
|
|
24
24
|
<x-card data-title="執行原子交換" data-href="/how-to-guides/perform-atomic-swaps" data-icon="lucide:repeat">
|
|
25
|
-
|
|
25
|
+
關於如何使用多重簽名交易在兩方之間安全地交換代幣和資產的指南。
|
|
26
26
|
</x-card>
|
|
27
27
|
</x-cards>
|
package/docs/how-to-guides.zh.md
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
# 操作指南
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本节提供使用 OCAP 客户端完成常见任务的实用分步说明。每篇指南都设计成一个独立的教程,旨在帮助您实现特定目标,从管理账户到执行复杂的原子交换。
|
|
4
4
|
|
|
5
5
|
<x-cards data-columns="2">
|
|
6
6
|
<x-card data-title="管理账户" data-href="/how-to-guides/manage-accounts" data-icon="lucide:user-cog">
|
|
7
7
|
涵盖与账户相关的操作,例如将账户迁移到新密钥。
|
|
8
8
|
</x-card>
|
|
9
9
|
<x-card data-title="委托权限" data-href="/how-to-guides/delegate-permissions" data-icon="lucide:key-round">
|
|
10
|
-
|
|
10
|
+
展示如何授权另一账户代表您发送交易,并指定允许的操作。
|
|
11
11
|
</x-card>
|
|
12
12
|
<x-card data-title="转移通证和 NFT" data-href="/how-to-guides/transfer-tokens-and-nfts" data-icon="lucide:arrow-right-left">
|
|
13
|
-
|
|
13
|
+
提供在账户之间转移同质化通证和非同质化通证(资产)的分步指南。
|
|
14
14
|
</x-card>
|
|
15
15
|
<x-card data-title="管理资产 (NFT)" data-href="/how-to-guides/manage-assets" data-icon="lucide:gem">
|
|
16
|
-
|
|
16
|
+
详细介绍非同质化通证的完整生命周期,包括创建、更新以及从工厂获取资产。
|
|
17
17
|
</x-card>
|
|
18
18
|
<x-card data-title="管理通证" data-href="/how-to-guides/manage-tokens" data-icon="lucide:coins">
|
|
19
|
-
|
|
19
|
+
解释如何执行同质化通证操作,例如从通证工厂铸造和销毁通证。
|
|
20
20
|
</x-card>
|
|
21
21
|
<x-card data-title="质押通证和资产" data-href="/how-to-guides/stake-tokens-and-assets" data-icon="lucide:piggy-bank">
|
|
22
|
-
|
|
22
|
+
关于如何向接收方质押通证或资产的分步指南,包括撤销和领取质押。
|
|
23
23
|
</x-card>
|
|
24
24
|
<x-card data-title="执行原子交换" data-href="/how-to-guides/perform-atomic-swaps" data-icon="lucide:repeat">
|
|
25
25
|
关于如何使用多重签名交易在两方之间安全交换通证和资产的指南。
|
package/docs/overview.ja.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# 概要
|
|
2
2
|
|
|
3
|
-
OCAP Clientは、アプリケーションをOCAP
|
|
3
|
+
OCAP Clientは、アプリケーションをOCAPベースのブロックチェーンに接続するために設計された、強力で多機能なJavaScriptライブラリです。データの読み書き、デジタル資産の管理、オンチェーンイベントの監視を行うための、効率的で開発者に優しいインターフェースを提供します。このクライアントは、あらゆるNode.jsまたはブラウザベースの環境で使用でき、バックエンドサービスとフロントエンドアプリケーションの両方に単一のソリューションを提供します。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
その中核となるのは、トランザクションのエンコーディングや署名の複雑さを抽象化することで、ブロックチェーンとの対話を簡素化することです。HTTP/Sを介したブロックチェーンノードとのすべての通信にGraphQL APIを使用しており、チェーンデータのクエリやトランザクションの送信が容易になります。
|
|
6
6
|
|
|
7
|
-
```d2
|
|
7
|
+
```d2 クライアントアーキテクチャ概要 icon=mdi:graphql
|
|
8
8
|
direction: down
|
|
9
9
|
|
|
10
10
|
your-app: {
|
|
11
|
-
label: "あなたのアプリケーション\n(Node.jsまたはブラウザ)"
|
|
11
|
+
label: "あなたのアプリケーション\n(Node.js またはブラウザ)"
|
|
12
12
|
shape: rectangle
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -23,33 +23,33 @@ direction: down
|
|
|
23
23
|
shape: cylinder
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
your-app -> ocap-client: "高レベルAPI
|
|
27
|
-
ocap-client -> ocap-node: "GraphQLクエリ/ミューテーション (HTTP/S)\nイベントサブスクリプション (WebSocket)"
|
|
26
|
+
your-app -> ocap-client: "高レベル API コール\n(例: transfer(), createAsset())"
|
|
27
|
+
ocap-client -> ocap-node: "GraphQL クエリ/ミューテーション (HTTP/S)\nイベントサブスクリプション (WebSocket)"
|
|
28
28
|
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
### 主な機能
|
|
32
32
|
|
|
33
|
-
OCAP Client
|
|
33
|
+
OCAP Clientは、ブロックチェーン通信のさまざまな側面を処理するために、いくつかの異なるメソッドのグループに整理されています。
|
|
34
34
|
|
|
35
35
|
<x-cards data-columns="2">
|
|
36
36
|
<x-card data-title="クエリ" data-icon="lucide:search">
|
|
37
|
-
|
|
37
|
+
ブロック、トランザクション、アカウントの状態、資産の詳細、一般的なチェーン情報など、ブロックチェーンからあらゆるデータを読み取ります。
|
|
38
38
|
</x-card>
|
|
39
39
|
<x-card data-title="ミューテーションとセンダー" data-icon="lucide:send">
|
|
40
|
-
ブロックチェーンにデータを書き込みます。`transfer
|
|
40
|
+
ブロックチェーンにデータを書き込みます。`transfer` や `createAsset` のような高レベルのヘルパーメソッドを使用して、トランザクションを簡単に準備、署名、送信できます。
|
|
41
41
|
</x-card>
|
|
42
42
|
<x-card data-title="サブスクリプション" data-icon="lucide:radio-tower">
|
|
43
|
-
リアルタイムのオンチェーンイベントを監視します。トピックを購読し、WebSocket
|
|
43
|
+
リアルタイムのオンチェーンイベントを監視します。トピックを購読し、WebSocket 接続を介して発生した更新を受信します。
|
|
44
44
|
</x-card>
|
|
45
|
-
<x-card data-title="
|
|
46
|
-
|
|
45
|
+
<x-card data-title="コーダーとサイナー" data-icon="lucide:edit">
|
|
46
|
+
高度なユースケースでは、トランザクションを手動でエンコードおよび署名でき、トランザクションのライフサイクルを完全に制御できます。
|
|
47
47
|
</x-card>
|
|
48
48
|
</x-cards>
|
|
49
49
|
|
|
50
50
|
### 重要な概念
|
|
51
51
|
|
|
52
|
-
- **アカウントの自動作成**: OCAP
|
|
52
|
+
- **アカウントの自動作成**: OCAPベースのチェーンでは、最初に入金トランザクション(例:トークンの受信)を受け取ると、新しいアカウントがオンチェーンで自動的に作成されます。アカウントを初期化するために別のトランザクションは必要ありません。
|
|
53
53
|
|
|
54
54
|
- **ガスレストランザクション**: このクライアントは、指定された「ガス支払者」ウォレットが他のユーザーのトランザクション手数料を負担できるガス支払いメカニズムをサポートしています。これにより、アプリケーションのユーザーにシームレスでガス代無料の体験を提供できます。
|
|
55
55
|
|
|
@@ -64,7 +64,7 @@ OCAP Clientは、ブロックチェーン通信のさまざまな側面を処理
|
|
|
64
64
|
<x-card data-title="ハウツーガイド" data-icon="lucide:book-open" data-href="/how-to-guides">
|
|
65
65
|
NFTの作成、トークンの転送、ステーキングなどの一般的なタスクについて、ステップバイステップのチュートリアルに従ってください。
|
|
66
66
|
</x-card>
|
|
67
|
-
<x-card data-title="APIリファレンス" data-icon="lucide:code" data-href="/api-reference">
|
|
68
|
-
|
|
67
|
+
<x-card data-title="API リファレンス" data-icon="lucide:code" data-href="/api-reference">
|
|
68
|
+
すべてのメソッド、パラメータ、データ型に関する詳細情報について、完全なAPIドキュメントをご覧ください。
|
|
69
69
|
</x-card>
|
|
70
70
|
</x-cards>
|