@ocap/client 1.25.5 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +77 -79
  2. package/dist/base.js +2 -2
  3. package/dist/base.js.map +1 -1
  4. package/dist/bundle.js +1 -1
  5. package/dist/extension.js +4 -4
  6. package/dist/extension.js.map +1 -1
  7. package/dist/report.html +2 -2
  8. package/docs/api-reference-client-methods.ja.md +38 -38
  9. package/docs/api-reference-client-methods.zh-TW.md +47 -47
  10. package/docs/api-reference-client-methods.zh.md +34 -34
  11. package/docs/api-reference-data-types.ja.md +20 -20
  12. package/docs/api-reference-data-types.zh-TW.md +17 -17
  13. package/docs/api-reference-data-types.zh.md +24 -24
  14. package/docs/api-reference-low-level-api.ja.md +49 -49
  15. package/docs/api-reference-low-level-api.zh-TW.md +48 -48
  16. package/docs/api-reference-low-level-api.zh.md +43 -43
  17. package/docs/api-reference-query-mutation-methods.ja.md +85 -85
  18. package/docs/api-reference-query-mutation-methods.zh-TW.md +140 -140
  19. package/docs/api-reference-query-mutation-methods.zh.md +141 -141
  20. package/docs/api-reference-transaction-helpers.ja.md +120 -120
  21. package/docs/api-reference-transaction-helpers.zh-TW.md +119 -119
  22. package/docs/api-reference-transaction-helpers.zh.md +153 -153
  23. package/docs/api-reference.ja.md +6 -6
  24. package/docs/api-reference.zh-TW.md +5 -5
  25. package/docs/api-reference.zh.md +8 -8
  26. package/docs/core-concepts-client-architecture.ja.md +26 -26
  27. package/docs/core-concepts-client-architecture.zh-TW.md +34 -34
  28. package/docs/core-concepts-client-architecture.zh.md +26 -26
  29. package/docs/core-concepts-event-subscriptions.ja.md +29 -29
  30. package/docs/core-concepts-event-subscriptions.zh-TW.md +23 -23
  31. package/docs/core-concepts-event-subscriptions.zh.md +29 -29
  32. package/docs/core-concepts-gas-payment.ja.md +27 -27
  33. package/docs/core-concepts-gas-payment.zh-TW.md +28 -28
  34. package/docs/core-concepts-gas-payment.zh.md +32 -32
  35. package/docs/core-concepts-transaction-lifecycle.ja.md +40 -40
  36. package/docs/core-concepts-transaction-lifecycle.zh-TW.md +43 -43
  37. package/docs/core-concepts-transaction-lifecycle.zh.md +49 -49
  38. package/docs/core-concepts.ja.md +7 -7
  39. package/docs/core-concepts.zh-TW.md +6 -6
  40. package/docs/core-concepts.zh.md +7 -7
  41. package/docs/getting-started-basic-usage.ja.md +24 -24
  42. package/docs/getting-started-basic-usage.zh-TW.md +28 -28
  43. package/docs/getting-started-basic-usage.zh.md +24 -24
  44. package/docs/getting-started-installation.ja.md +13 -13
  45. package/docs/getting-started-installation.zh-TW.md +9 -9
  46. package/docs/getting-started-installation.zh.md +15 -15
  47. package/docs/getting-started.ja.md +5 -5
  48. package/docs/getting-started.zh-TW.md +6 -6
  49. package/docs/getting-started.zh.md +6 -7
  50. package/docs/how-to-guides-delegate-permissions.ja.md +21 -21
  51. package/docs/how-to-guides-delegate-permissions.zh-TW.md +20 -21
  52. package/docs/how-to-guides-delegate-permissions.zh.md +18 -18
  53. package/docs/how-to-guides-manage-accounts.ja.md +21 -21
  54. package/docs/how-to-guides-manage-accounts.zh-TW.md +23 -23
  55. package/docs/how-to-guides-manage-accounts.zh.md +17 -17
  56. package/docs/how-to-guides-manage-assets.ja.md +137 -60
  57. package/docs/how-to-guides-manage-assets.md +77 -0
  58. package/docs/how-to-guides-manage-assets.zh-TW.md +116 -39
  59. package/docs/how-to-guides-manage-assets.zh.md +142 -65
  60. package/docs/how-to-guides-manage-tokens.ja.md +47 -47
  61. package/docs/how-to-guides-manage-tokens.zh-TW.md +49 -49
  62. package/docs/how-to-guides-manage-tokens.zh.md +34 -34
  63. package/docs/how-to-guides-stake-tokens-and-assets.ja.md +56 -56
  64. package/docs/how-to-guides-stake-tokens-and-assets.zh-TW.md +55 -55
  65. package/docs/how-to-guides-stake-tokens-and-assets.zh.md +51 -51
  66. package/docs/how-to-guides-transfer-tokens-and-nfts.ja.md +45 -45
  67. package/docs/how-to-guides-transfer-tokens-and-nfts.zh-TW.md +46 -46
  68. package/docs/how-to-guides-transfer-tokens-and-nfts.zh.md +37 -37
  69. package/docs/how-to-guides.ja.md +8 -8
  70. package/docs/how-to-guides.zh-TW.md +4 -4
  71. package/docs/how-to-guides.zh.md +6 -6
  72. package/docs/overview.ja.md +15 -15
  73. package/docs/overview.zh-TW.md +14 -14
  74. package/docs/overview.zh.md +12 -12
  75. package/lib/base.js +2 -2
  76. package/lib/base.js.map +1 -1
  77. package/lib/extension.js +4 -4
  78. package/lib/extension.js.map +1 -1
  79. package/package.json +15 -15
@@ -1,26 +1,26 @@
1
1
  # Gas 支付
2
2
 
3
- 在大多數區塊鏈系統中,每筆交易都需要發起人支付一筆費用,通常稱為「gas」。對於可能沒有原生貨幣來支付這些費用的新使用者來說,這可能是一個重大的障礙。OCAP Client 引入了 Gas 支付功能,允許應用程式開發者贊助這些費用,為其使用者創造無縫的「無 gas」體驗。
3
+ 在大多數區塊鏈系統中,每筆交易都需要由發起人支付一筆費用,通常稱為「Gas」。對於可能沒有原生貨幣來支付這些費用的新使用者來說,這可能是一個重大的障礙。OCAP Client 引入了 Gas 支付功能,允許應用程式開發者贊助這些費用,為其使用者創造無縫的「免 Gas」體驗。
4
4
 
5
- 這個強大的功能使 dApps 能夠將 gas 的複雜性抽離,從而改善使用者引導流程和應用程式的整體可用性。
5
+ 這個強大的功能使 dApp 能夠將 Gas 的複雜性抽象化,從而改善使用者引導流程和整體應用程式的可用性。
6
6
 
7
- ## 運作原理
7
+ ## 運作方式
8
8
 
9
- Gas 支付機制是透過標準的 HTTP 標頭實現的。當您在您的客戶端實例上配置一個 gas 支付者錢包時,客戶端會自動將兩個特殊的標頭附加到它發送到區塊鏈節點的每個 `sendTx` 變異中:
9
+ Gas 支付機制是透過標準的 HTTP 標頭來實現的。當您在客戶端實例上設定 Gas 支付者錢包時,客戶端會自動將兩個特殊的標頭附加到它發送給區塊鏈節點的每個 `sendTx` 變更中:
10
10
 
11
- - `x-gas-payer-pk`:將支付 gas 費用的錢包的公鑰。
12
- - `x-gas-payer-sig`:由 gas 支付者的私鑰簽署的 JSON Web Token (JWT)。此權杖包含交易的雜湊值,作為贊助商為該特定交易支付費用的可驗證授權。
11
+ - `x-gas-payer-pk`:將支付 Gas 費用的錢包的公鑰。
12
+ - `x-gas-payer-sig`:由 Gas 支付者私鑰簽署的 JSON Web Token (JWT)。此權杖包含交易的雜湊值,作為贊助者為該特定交易支付費用的可驗證授權。
13
13
 
14
- 當區塊鏈節點收到交易時,它會執行兩項關鍵的驗證:
14
+ 當區塊鏈節點收到交易時,它會執行兩項關鍵驗證:
15
15
 
16
- 1. 它會驗證使用者在交易本身上的簽名。
17
- 2. 它會根據交易雜湊值,驗證標頭中 gas 支付者的簽名。
16
+ 1. 驗證交易本身的使用者簽名。
17
+ 2. 根據交易雜湊值驗證標頭中的 Gas 支付者簽名。
18
18
 
19
- 如果兩個簽名都有效,交易將以使用者的權限執行,但相應的 gas 費用會從 gas 支付者的帳戶餘額中扣除。
19
+ 如果兩個簽名都有效,交易將在使用者授權下執行,但相應的 Gas 費用會從 Gas 支付者的帳戶餘額中扣除。
20
20
 
21
21
  ### 工作流程圖
22
22
 
23
- 下圖說明了從交易發起到執行的整個 gas 支付流程:
23
+ 下圖說明了從交易發起到執行的整個 Gas 支付流程:
24
24
 
25
25
  ```d2 Gas 支付工作流程 icon=mdi:gas-station
26
26
  direction: down
@@ -45,17 +45,17 @@ Blockchain-Node: {
45
45
  }
46
46
 
47
47
  User-App -> OCAP-Client: "1. 使用者發起交易"
48
- OCAP-Client -> OCAP-Client: "2. 使用使用者錢包\n準備並簽署交易"
49
- Gas-Payer-Wallet -> OCAP-Client: "3. gas 簽署交易雜湊"
48
+ OCAP-Client -> OCAP-Client: "2. 使用使用者錢包準備並簽署交易"
49
+ Gas-Payer-Wallet -> OCAP-Client: "3. 簽署交易雜湊值以支付 Gas"
50
50
  OCAP-Client -> Blockchain-Node: "4. 發送交易 + Gas 支付者標頭"
51
51
  Blockchain-Node -> Blockchain-Node: "5. 驗證雙方簽名"
52
52
  Blockchain-Node: "6. 執行交易"
53
- Blockchain-Node -> Gas-Payer-Wallet: "7. 扣除 gas 費用"
53
+ Blockchain-Node -> Gas-Payer-Wallet: "7. 扣除 Gas 費用"
54
54
  ```
55
55
 
56
56
  ## 使用範例
57
57
 
58
- 要啟用無 gas 交易,您只需為贊助帳戶創建一個錢包實例,並使用 `setGasPayer` 方法在客戶端上設定它。
58
+ 若要啟用免 Gas 交易,您只需為贊助帳戶建立一個錢包實例,並使用 `setGasPayer` 方法將其設定在客戶端上。
59
59
 
60
60
  ```javascript Gas 支付者設定與使用 icon=logos:javascript
61
61
  import Client from '@ocap/client';
@@ -64,7 +64,7 @@ import Wallet, { fromRandom } from '@ocap/wallet';
64
64
  // 1. 初始化客戶端以連接到 Beta 鏈
65
65
  const client = new Client('https://beta.abtnetwork.io/api');
66
66
 
67
- // 2. 為 gas 支付者(您的應用程式錢包)創建一個錢包
67
+ // 2. 為 Gas 支付者(您的應用程式錢包)建立一個錢包
68
68
  // 此錢包必須有足夠的原生代幣(TBA)來支付交易費用。
69
69
  // 您可以從水龍頭獲取測試代幣:https://faucet.abtnetwork.io/
70
70
  const gasPayerWallet = Wallet.fromJSON({
@@ -73,39 +73,39 @@ const gasPayerWallet = Wallet.fromJSON({
73
73
  address: '...your_sponsor_address...',
74
74
  });
75
75
 
76
- // 3. 在客戶端實例上設定 gas 支付者
76
+ // 3. 在客戶端實例上設定 Gas 支付者
77
77
  client.setGasPayer(gasPayerWallet);
78
78
 
79
- // 4. 為終端使用者創建一個錢包。
79
+ // 4. 為終端使用者建立一個錢包。
80
80
  const userWallet = fromRandom();
81
81
 
82
- // 5. 使用使用者的錢包發送一筆交易。
83
- // 該交易由使用者簽署,但 gas 費用由 gasPayerWallet 支付。
82
+ // 5. 使用使用者的錢包發送交易。
83
+ // 該交易由使用者簽署,但 Gas 費用由 gasPayerWallet 支付。
84
84
  async function performGaslessTransaction() {
85
85
  try {
86
- // 注意:雖然新帳戶在收到第一筆傳入交易時會在鏈上創建,
87
- // 但它必須先存在於鏈上,才能*發送*交易。
86
+ // 注意:雖然新帳戶在收到第一筆入帳交易時會在鏈上建立,
87
+ // 但它必須先存在於鏈上才能 *發送* 交易。
88
88
  // 您可以透過從水龍頭向其發送少量代幣來進行初始化。
89
89
 
90
- const receiverAddress = 'z1...'; // 一個有效的收款人地址
90
+ const receiverAddress = 'z1...'; // 一個有效的接收者地址
91
91
  const hash = await client.transfer({
92
92
  to: receiverAddress,
93
93
  tokens: [{ value: '0.1' }], // 發送 0.1 TBA
94
94
  wallet: userWallet,
95
95
  });
96
96
 
97
- console.log(' gas 交易成功。雜湊值:', hash);
98
- console.log(`在區塊鏈瀏覽器上查看:https://beta.abtnetwork.io/explorer/txs/${hash}`);
97
+ console.log('Gasless transaction successful. Hash:', hash);
98
+ console.log(`Review on explorer: https://beta.abtnetwork.io/explorer/txs/${hash}`);
99
99
  } catch (error) {
100
- console.error('交易失敗:', error);
100
+ console.error('Transaction failed:', error);
101
101
  }
102
102
  }
103
103
 
104
104
  performGaslessTransaction();
105
105
  ```
106
106
 
107
- 在此範例中,`userWallet` 即使原生代幣餘額為零,也可以成功發送交易,因為 `gasPayerWallet` 支付了費用。這創造了一種順暢的體驗,特別是對於加入您應用程式的新使用者。
107
+ 在此範例中,即使 `userWallet` 的原生代幣餘額為零,它也可以成功發送交易,因為 `gasPayerWallet` 支付了費用。這創造了一種無摩擦的體驗,特別是對於加入您應用程式的新使用者而言。
108
108
 
109
109
  ---
110
110
 
111
- 要了解交易從創建到最終確定的完整過程,請參閱 [交易生命週期](./core-concepts-transaction-lifecycle.md) 文件。
111
+ 若要了解交易從建立到最終確認的完整過程,請參閱 [交易生命週期](./core-concepts-transaction-lifecycle.md) 文件。
@@ -1,28 +1,28 @@
1
- # Gas 支付
1
+ # Gas 费支付
2
2
 
3
- 在大多数区块链系统中,每笔交易都需要发起者支付一笔费用,通常称为“gas”。对于没有原生货币来支付这些费用的新用户来说,这可能是一个巨大的障碍。OCAP Client 引入了 Gas 支付功能,允许应用程序开发者代付这些费用,从而为用户创造无缝的、“无 gas”体验。
3
+ 在大多数区块链系统中,每笔交易都需要发起者支付一笔费用,通常称为“Gas 费”。对于可能没有原生货币来支付这些费用的新用户来说,这可能是一个巨大的障碍。OCAP 客户端引入了 Gas 费支付功能,允许应用开发者代付这些费用,从而为他们的用户创造无缝的“无 Gas 费”体验。
4
4
 
5
- 这一强大功能使 dApp 能够屏蔽 gas 的复杂性,从而改善用户引导流程和应用的整体易用性。
5
+ 这一强大功能使 dApp 能够将 Gas 费的复杂性抽象出来,从而改善用户入门体验和应用的整体可用性。
6
6
 
7
7
  ## 工作原理
8
8
 
9
- gas 支付机制通过标准的 HTTP 标头实现。当您在客户端实例上配置 gas 代付方钱包时,客户端会自动将两个特殊的标头附加到它发送给区块链节点的每个 `sendTx` mutation 请求中:
9
+ Gas 费支付机制通过标准的 HTTP 标头实现。当您在客户端实例上配置一个 Gas 费支付方钱包时,客户端会自动将两个特殊的标头附加到它发送给区块链节点的每个 `sendTx` 变更请求中:
10
10
 
11
- - `x-gas-payer-pk`:将支付 gas 费用的钱包的公钥。
12
- - `x-gas-payer-sig`:由 gas 代付方私钥签名的 JSON Web Token (JWT)。此令牌包含交易的哈希值,作为代付方为该特定交易支付费用的可验证授权。
11
+ - `x-gas-payer-pk`:将支付 Gas 费的钱包的公钥。
12
+ - `x-gas-payer-sig`:由 Gas 费支付方私钥签名的 JSON Web Token (JWT)。此令牌包含交易的哈希值,作为支付方为该特定交易支付费用的可验证授权。
13
13
 
14
- 当区块链节点收到交易时,它会执行两项关键验证:
14
+ 当区块链节点收到交易时,它会执行两个关键验证:
15
15
 
16
- 1. 验证用户在交易本身的签名。
17
- 2. 根据交易哈希验证标头中 gas 代付方的签名。
16
+ 1. 验证用户在交易本身上的签名。
17
+ 2. 根据交易哈希验证标头中 Gas 费支付方的签名。
18
18
 
19
- 如果两个签名都有效,交易将在用户的授权下执行,但相应的 gas 费用将从 gas 代付方的账户余额中扣除。
19
+ 如果两个签名都有效,交易将在用户的授权下执行,但相应的 Gas 费将从 Gas 费支付方的账户余额中扣除。
20
20
 
21
21
  ### 工作流程图
22
22
 
23
- 下图说明了从交易发起 Gas 支付到执行的整个流程:
23
+ 下图说明了从交易发起 Gas 费支付到执行的完整流程:
24
24
 
25
- ```d2 Gas 支付工作流 icon=mdi:gas-station
25
+ ```d2 Gas 费支付工作流程 icon=mdi:gas-station
26
26
  direction: down
27
27
 
28
28
  User-App: {
@@ -31,12 +31,12 @@ User-App: {
31
31
  }
32
32
 
33
33
  Gas-Payer-Wallet: {
34
- label: "Gas 代付方钱包\n(应用后端的钱包)"
34
+ label: "Gas 费支付方钱包\n(应用后端钱包)"
35
35
  shape: cylinder
36
36
  }
37
37
 
38
38
  OCAP-Client: {
39
- label: "OCAP Client 实例"
39
+ label: "OCAP 客户端实例"
40
40
  }
41
41
 
42
42
  Blockchain-Node: {
@@ -46,66 +46,66 @@ Blockchain-Node: {
46
46
 
47
47
  User-App -> OCAP-Client: "1. 用户发起交易"
48
48
  OCAP-Client -> OCAP-Client: "2. 使用用户钱包\n准备并签署交易"
49
- Gas-Payer-Wallet -> OCAP-Client: "3. 为 gas 签署交易哈希"
50
- OCAP-Client -> Blockchain-Node: "4. 发送交易 + Gas 代付方标头"
49
+ Gas-Payer-Wallet -> OCAP-Client: "3. 为 Gas 费签署交易哈希"
50
+ OCAP-Client -> Blockchain-Node: "4. 发送交易及 Gas 费支付方标头"
51
51
  Blockchain-Node -> Blockchain-Node: "5. 验证双方签名"
52
52
  Blockchain-Node: "6. 执行交易"
53
- Blockchain-Node -> Gas-Payer-Wallet: "7. 扣除 gas 费用"
53
+ Blockchain-Node -> Gas-Payer-Wallet: "7. 扣除 Gas "
54
54
  ```
55
55
 
56
- ## 用法示例
56
+ ## 使用示例
57
57
 
58
- 要启用无 gas 交易,您只需为代付账户创建一个钱包实例,并使用 `setGasPayer` 方法在客户端上进行设置。
58
+ 要启用无 Gas 费交易,您只需为代付账户创建一个钱包实例,并使用 `setGasPayer` 方法在客户端上进行设置。
59
59
 
60
- ```javascript Gas Payer 设置与使用 icon=logos:javascript
60
+ ```javascript Gas 费支付方设置与使用 icon=logos:javascript
61
61
  import Client from '@ocap/client';
62
62
  import Wallet, { fromRandom } from '@ocap/wallet';
63
63
 
64
64
  // 1. 初始化客户端以连接到 Beta 链
65
65
  const client = new Client('https://beta.abtnetwork.io/api');
66
66
 
67
- // 2. 为 gas 代付方(您的应用程序的钱包)创建一个钱包
67
+ // 2. 为 Gas 费支付方(你的应用钱包)创建一个钱包
68
68
  // 此钱包必须有足够的原生代币(TBA)来支付交易费用。
69
- // 您可以从水龙头获取测试代币:https://faucet.abtnetwork.io/
69
+ // 你可以从水龙头获取测试代币:https://faucet.abtnetwork.io/
70
70
  const gasPayerWallet = Wallet.fromJSON({
71
71
  sk: '...your_sponsor_secret_key...',
72
72
  pk: '...your_sponsor_public_key...',
73
73
  address: '...your_sponsor_address...',
74
74
  });
75
75
 
76
- // 3. 在客户端实例上设置 gas 代付方
76
+ // 3. 在客户端实例上设置 Gas 费支付方
77
77
  client.setGasPayer(gasPayerWallet);
78
78
 
79
79
  // 4. 为最终用户创建一个钱包。
80
80
  const userWallet = fromRandom();
81
81
 
82
- // 5. 使用用户的钱包发送一笔交易。
83
- // 交易由用户签名,但 gas 费用由 gasPayerWallet 支付。
82
+ // 5. 使用用户钱包发送一笔交易。
83
+ // 该交易由用户签名,但 Gas 费由 gasPayerWallet 支付。
84
84
  async function performGaslessTransaction() {
85
85
  try {
86
86
  // 注意:虽然新账户在收到第一笔入账交易时会在链上创建,
87
87
  // 但它必须在链上存在才能 *发送* 交易。
88
- // 您可以通过从水龙头向其发送少量代币来初始化它。
88
+ // 你可以通过从水龙头向其发送少量代币来初始化它。
89
89
 
90
- const receiverAddress = 'z1...'; // 一个有效的接收者地址
90
+ const receiverAddress = 'z1...'; // 一个有效的接收地址
91
91
  const hash = await client.transfer({
92
92
  to: receiverAddress,
93
93
  tokens: [{ value: '0.1' }], // 发送 0.1 TBA
94
94
  wallet: userWallet,
95
95
  });
96
96
 
97
- console.log(' gas 交易成功。哈希:', hash);
98
- console.log(`在浏览器上查看: https://beta.abtnetwork.io/explorer/txs/${hash}`);
97
+ console.log('Gasless transaction successful. Hash:', hash);
98
+ console.log(`Review on explorer: https://beta.abtnetwork.io/explorer/txs/${hash}`);
99
99
  } catch (error) {
100
- console.error('交易失败:', error);
100
+ console.error('Transaction failed:', error);
101
101
  }
102
102
  }
103
103
 
104
104
  performGaslessTransaction();
105
105
  ```
106
106
 
107
- 在此示例中,`userWallet` 即使原生代币余额为零也能成功发送交易,因为 `gasPayerWallet` 承担了费用。这创造了无摩擦的体验,特别是对于加入您应用程序的新用户而言。
107
+ 在此示例中,即使 `userWallet` 的原生代币余额为零,它也可以成功发送交易,因为 `gasPayerWallet` 支付了费用。这创造了一种无摩擦的体验,特别是对于加入您应用的新用户而言。
108
108
 
109
109
  ---
110
110
 
111
- 要了解从创建到最终确认的完整交易过程,请参阅[交易生命周期](./core-concepts-transaction-lifecycle.md)文档。
111
+ 要了解交易从创建到最终确认的完整过程,请参阅[交易生命周期](./core-concepts-transaction-lifecycle.md)文档。
@@ -1,10 +1,10 @@
1
1
  # トランザクションのライフサイクル
2
2
 
3
- トークンの転送やアセットの作成など、ブロックチェーンの状態を変更するすべてのアクションは、トランザクションを通じて実行されます。トランザクションのライフサイクルを理解することは、OCAP Clientを使用してアプリケーションを構築するための基本です。このプロセスには、準備、エンコード、署名、送信の4つの主要なステージが含まれます。
3
+ トークンの転送やアセットの作成など、ブロックチェーンの状態を変更するすべてのアクションは、トランザクションを通じて実行されます。トランザクションのライフサイクルを理解することは、OCAP Client を使用してアプリケーションを構築する上で基本となります。このプロセスには、準備、エンコード、署名、送信という4つの主要な段階が含まれます。
4
4
 
5
- OCAP Clientは、最大限の制御のためにこれらのステップを個別に実行するか、利便性のためにそれらを組み合わせた高レベルのヘルパーを使用することができる、柔軟なメソッドセットを提供します。
5
+ OCAP Client は柔軟なメソッドセットを提供しており、最大限の制御のためにこれらのステップを個別に実行することも、利便性のためにこれらを組み合わせた高レベルのヘルパーを使用することもできます。
6
6
 
7
- このガイドでは、各ステージを分解し、単一署名と複数署名の両方のワークフローを説明します。
7
+ このガイドでは、各段階を詳しく解説し、単一署名と複数署名の両方のワークフローを説明します。
8
8
 
9
9
  ## ライフサイクルの概要
10
10
 
@@ -72,30 +72,30 @@ Multi-Sign-Flow -> Send-Tx
72
72
  Send-Tx -> End
73
73
  ```
74
74
 
75
- ## ステージ1:準備(`itx`の作成)
75
+ ## ステージ1: 準備(`itx`の作成)
76
76
 
77
- すべてのトランザクションは`itx`(内部トランザクション)から始まります。これは、実行したいアクションの特定のデータを含むプレーンなJavaScriptオブジェクトです。例えば、転送`itx`には受信者のアドレスと金額が含まれます。
77
+ すべてのトランザクションは `itx` (内部トランザクション) から始まります。これは、実行したいアクションの特定のデータを含むプレーンな JavaScript オブジェクトです。例えば、転送用の `itx` には、受信者のアドレスと金額が含まれます。
78
78
 
79
79
  ```javascript Preparing the itx icon=logos:javascript
80
80
  // 転送トランザクションのコアデータ
81
81
  const itx = {
82
82
  to: 'z2C8j81aL2oXpA5t42s2h4g9o8p1k6m3n7b', // 受信者のアドレス
83
- value: await client.fromTokenToUnit(10), // 送信する量、チェーンの基本単位に変換済み
83
+ value: await client.fromTokenToUnit(10), // 送信する金額、チェーンの基本単位に変換済み
84
84
  };
85
85
  ```
86
86
 
87
- ## ステージ2:エンコード
87
+ ## ステージ2: エンコード
88
88
 
89
- エンコードは、`itx`と他のメタデータを、暗号学的に署名できる標準化されたバイナリ形式に変換します。クライアントは、各トランザクションタイプに対して`encode{TxType}Tx`メソッド(例:`encodeTransferV2Tx`)を提供します。
89
+ エンコードは、`itx` とその他のメタデータを、暗号学的に署名可能な標準化されたバイナリ形式に変換します。クライアントは、各トランザクションタイプごとに `encode{TxType}Tx` メソッド(例:`encodeTransferV2Tx`)を提供します。
90
90
 
91
- このステージで、クライアントは自動的に必須のメタデータを追加します。
91
+ この段階で、クライアントは自動的に必須のメタデータを追加します。
92
92
 
93
- * **`from`**:送信者のアドレス、提供されたウォレットから導出されます。
94
- * **`chainId`**:ターゲットブロックチェーンの識別子、自動的に取得されます。
95
- * **`nonce`**:リプレイ攻撃を防ぐためのユニークな番号で、デフォルトは現在のタイムスタンプ(`Date.now()`)です。
96
- * **`pk`**:送信者のウォレットの公開鍵。
93
+ * **`from`**: 送信者のアドレス。提供されたウォレットから派生します。
94
+ * **`chainId`**: ターゲットブロックチェーンの識別子。自動的に取得されます。
95
+ * **`nonce`**: リプレイ攻撃を防ぐためのユニークな番号。デフォルトでは現在のタイムスタンプ(`Date.now()`)になります。
96
+ * **`pk`**: 送信者ウォレットの公開鍵。
97
97
 
98
- エンコード関数は、完全なトランザクションオブジェクトと、署名に使用されるシリアライズされたデータの`Buffer`の両方を返します。
98
+ エンコード関数は、完全なトランザクションオブジェクトと、署名に使用されるシリアライズされたデータの `Buffer` の両方を返します。
99
99
 
100
100
  ```javascript Encoding the Transaction icon=logos:javascript
101
101
  const { object: encodedTx, buffer: txBuffer } = await client.encodeTransferV2Tx({
@@ -103,40 +103,40 @@ const { object: encodedTx, buffer: txBuffer } = await client.encodeTransferV2Tx(
103
103
  wallet: senderWallet,
104
104
  });
105
105
 
106
- console.log('エンコードされたTXオブジェクト:', encodedTx);
107
- console.log('署名されるバッファ:', txBuffer);
106
+ console.log('Encoded TX Object:', encodedTx);
107
+ console.log('Buffer to be signed:', txBuffer);
108
108
  ```
109
109
 
110
- ## ステージ3:署名
110
+ ## ステージ3: 署名
111
111
 
112
- 署名はアカウントの所有権を証明し、トランザクションを承認します。このプロセスは単一署名と複数署名のワークフローで異なります。
112
+ 署名は、アカウントの所有権を証明し、トランザクションを承認するものです。このプロセスは、単一署名と複数署名のワークフローで異なります。
113
113
 
114
114
  ### 単一署名ワークフロー
115
115
 
116
- これは最も一般的なシナリオで、単一のユーザーがトランザクションに署名します。`sign{TxType}Tx`メソッドは、エンコードされたトランザクションを受け取り、ユーザーの秘密鍵でバイナリバッファに署名し、`signature`フィールドに値を設定します。
116
+ これは、単一のユーザーがトランザクションに署名する、最も一般的なシナリオです。`sign{TxType}Tx` メソッドは、エンコードされたトランザクションを受け取り、ユーザーの秘密鍵でバイナリバッファに署名し、`signature` フィールドに値を設定します。
117
117
 
118
118
  ```javascript Signing with a Single Signature icon=logos:javascript
119
119
  const signedTx = await client.signTransferV2Tx({
120
- tx: encodedTx, // エンコードステップからのオブジェクト
120
+ tx: encodedTx, // エンコードステップで得られたオブジェクト
121
121
  wallet: senderWallet,
122
122
  });
123
123
 
124
- console.log('署名:', signedTx.signature);
124
+ console.log('Signature:', signedTx.signature);
125
125
  ```
126
126
 
127
127
  ### 複数署名ワークフロー
128
128
 
129
- 複数署名(マルチシグ)トランザクションは、複数の関係者からの承認が必要です。これは一般的にアトミックスワップや共有アカウントで使用されます。プロセスは順次実行されます。
129
+ 複数署名(マルチシグ)トランザクションは、複数の当事者からの承認を必要とします。これは、アトミックスワップや共有アカウントで一般的に使用されます。プロセスは順次的に行われます。
130
130
 
131
- 1. **準備**:初期トランザクションは、必要なすべての署名者を定義する`signaturesList`と共に作成されます。
132
- 2. **順次署名**:トランザクションは署名者から次の署名者へと渡されます。各署名者は対応する`multiSign{TxType}Tx`メソッドを使用して自身の署名を追加します。
131
+ 1. **準備**: 最初のトランザクションは、必要なすべての署名者を定義する `signaturesList` とともに作成されます。
132
+ 2. **順次署名**: トランザクションは署名者から次の署名者へと渡されます。各署名者は、対応する `multiSign{TxType}Tx` メソッドを使用して自身の署名を追加します。
133
133
 
134
- 内部的に、`multiSign`メソッドは、署名のためにトランザクションをエンコードする前に既存のすべての署名を一時的に削除することで、各関係者が全く同じトランザクションダイジェストに署名することを保証します。
134
+ 内部的に、`multiSign` メソッドは、署名のためにトランザクションをエンコードする前に、既存のすべての署名を一時的に取り除くことで、各当事者が全く同じトランザクションダイジェストに署名することを保証します。
135
135
 
136
- 以下は、二者がアセットを交換する`ExchangeTx`の例です。
136
+ 以下は、2つの当事者がアセットを交換する `ExchangeTx` の例です。
137
137
 
138
138
  ```javascript Multi-Signature Signing Example icon=logos:javascript
139
- // ステップ1Alice(オファー側)が交換トランザクションを準備し、署名します。
139
+ // ステップ1: Alice(オファー側)が交換トランザクションを準備し、署名します。
140
140
  const txFromAlice = await client.prepareExchange({
141
141
  offerToken: 10,
142
142
  demandToken: 20,
@@ -144,40 +144,40 @@ const txFromAlice = await client.prepareExchange({
144
144
  wallet: aliceWallet,
145
145
  });
146
146
 
147
- // ステップ2:トランザクションがBobに送信されます。
148
- // Bob(要求側)が署名を追加して最終化します。
147
+ // ステップ2: トランザクションが Bob に送信されます。
148
+ // Bob(デマンド側)が署名を追加して完了させます。
149
149
  const txFromBob = await client.finalizeExchange({
150
- tx: txFromAlice, // Aliceによって署名されたトランザクション
150
+ tx: txFromAlice, // Alice によって署名されたトランザクション
151
151
  wallet: bobWallet,
152
152
  });
153
153
 
154
- console.log('Aliceの署名:', txFromBob.signaturesList[0].signature);
155
- console.log('Bobの署名:', txFromBob.signaturesList[1].signature);
154
+ console.log('Alice\'s Signature:', txFromBob.signaturesList[0].signature);
155
+ console.log('Bob\'s Signature:', txFromBob.signaturesList[1].signature);
156
156
  ```
157
157
 
158
- ## ステージ4:送信
158
+ ## ステージ4: 送信
159
159
 
160
- トランザクションが完全に署名されると、処理のためにブロックチェーンノードに送信できます。`send{TxType}Tx`メソッドがこの最終ステップを処理します。
160
+ トランザクションが完全に署名されると、処理のためにブロックチェーンノードに送信できます。`send{TxType}Tx` メソッドがこの最終ステップを処理します。
161
161
 
162
- 便宜上、ウォレットと未署名のトランザクションを提供すれば、これらのメソッドは署名ステップを暗黙的に実行することもできます。メソッドは、送信が成功するとトランザクションハッシュで解決されるプロミスを返します。
162
+ 利便性のために、これらのメソッドは、ウォレットと未署名のトランザクションを提供した場合、署名ステップを暗黙的に実行することもできます。このメソッドは、送信が成功するとトランザクションハッシュで解決されるプロミスを返します。
163
163
 
164
164
  ```javascript Sending the Signed Transaction icon=logos:javascript
165
165
  // 事前に署名されたトランザクションを使用
166
166
  const hash = await client.sendTransferV2Tx({ tx: signedTx, wallet: senderWallet });
167
167
 
168
- // または、sendメソッドに署名を自動的に処理させる
168
+ // または、send メソッドに署名を自動的に処理させる
169
169
  const hash2 = await client.sendTransferV2Tx({
170
170
  tx: { itx }, // 内部トランザクションのみ
171
171
  wallet: senderWallet,
172
172
  });
173
173
 
174
- console.log('トランザクション送信完了! ハッシュ:', hash);
174
+ console.log('Transaction sent! Hash:', hash);
175
175
  ```
176
176
 
177
- `commit: true`オプションを含めることで、プロミスが解決される前に、トランザクションが完全に確認され、ブロックに含まれるまでクライアントを待機させることもできます。
177
+ また、`commit: true` オプションを含めることで、プロミスが解決される前に、トランザクションが完全に確認され、ブロックに含まれるまでクライアントを待機させることもできます。
178
178
 
179
179
  ## まとめ
180
180
 
181
- トランザクションのライフサイクルは、ブロックチェーンと対話するための堅牢で柔軟なフレームワークを提供します。プロセスを準備、エンコード、署名、送信という明確なステージに分けることで、OCAP Clientは開発者にトランザクション作成に対するきめ細かな制御を提供すると同時に、一般的なユースケースのためのシンプルで高レベルなヘルパーも提供します。
181
+ トランザクションのライフサイクルは、ブロックチェーンと対話するための堅牢で柔軟なフレームワークを提供します。プロセスを準備、エンコード、署名、送信という明確な段階に分けることで、OCAP Client は開発者にトランザクション作成に対するきめ細やかな制御を提供すると同時に、一般的なユースケースのためのシンプルで高レベルなヘルパーも提供します。
182
182
 
183
- トランザクション手数料の処理方法についての詳細は、[ガス支払い](./core-concepts-gas-payment.md)ガイドを参照してください。利用可能なさまざまなクライアントタイプを理解するには、[クライアントアーキテクチャ](./core-concepts-client-architecture.md)ドキュメントを参照してください。
183
+ トランザクション手数料の処理方法に関する詳細は、[ガス支払い](./core-concepts-gas-payment.md)ガイドを参照してください。利用可能なさまざまなクライアントタイプを理解するには、[クライアントアーキテクチャ](./core-concepts-client-architecture.md)のドキュメントを参照してください。
@@ -1,10 +1,10 @@
1
1
  # 交易生命週期
2
2
 
3
- 每個修改區塊鏈狀態的動作,例如轉移代幣或創建資產,都是透過交易來執行的。理解交易的生命週期是使用 OCAP Client 建立應用程式的基礎。此過程涉及四個主要階段:準備、編碼、簽署和發送。
3
+ 凡是會修改區塊鏈狀態的每個操作,例如轉移代幣或創建資產,都是透過交易來執行的。了解交易的生命週期是使用 OCAP 用戶端建構應用程式的基礎。此過程涉及四個主要階段:準備、編碼、簽署和發送。
4
4
 
5
- OCAP Client 提供了一套靈活的方法,讓您可以為了最大程度的控制而單獨執行這些步驟,或者為了方便而使用將它們組合在一起的高階輔助函式。
5
+ OCAP 用戶端提供了一套彈性的方法,讓您可以為了最大程度的控制而單獨執行這些步驟,或者為了方便而使用將它們結合在一起的高階輔助函式。
6
6
 
7
- 本指南將分解每個階段,並說明單簽和多簽的工作流程。
7
+ 本指南將分解每個階段,並闡述單一簽章和多重簽章的工作流程。
8
8
 
9
9
  ## 生命週期總覽
10
10
 
@@ -29,20 +29,20 @@ Sign-Tx: {
29
29
  }
30
30
 
31
31
  Single-Sign: {
32
- label: "單一簽名\n(sign<Type>Tx)"
32
+ label: "單一簽章\n(sign<Type>Tx)"
33
33
  shape: rectangle
34
34
  }
35
35
 
36
36
  Multi-Sign-Flow: {
37
- label: "多重簽名"
37
+ label: "多重簽章"
38
38
  shape: rectangle
39
39
 
40
40
  Multi-Sign-1: {
41
- label: "簽署者 1\n(multiSign<Type>Tx)"
41
+ label: "簽署人 1\n(multiSign<Type>Tx)"
42
42
  }
43
43
 
44
44
  Multi-Sign-2: {
45
- label: "簽署者 2\n(multiSign<Type>Tx)"
45
+ label: "簽署人 2\n(multiSign<Type>Tx)"
46
46
  }
47
47
 
48
48
  Multi-Sign-N: {
@@ -65,16 +65,16 @@ End: {
65
65
 
66
66
  Start -> Encode-Tx
67
67
  Encode-Tx -> Sign-Tx
68
- Sign-Tx -> Single-Sign: "單一簽署者"
69
- Sign-Tx -> Multi-Sign-Flow: "多重簽署者"
68
+ Sign-Tx -> Single-Sign: "單一簽署人"
69
+ Sign-Tx -> Multi-Sign-Flow: "多個簽署人"
70
70
  Single-Sign -> Send-Tx
71
71
  Multi-Sign-Flow -> Send-Tx
72
72
  Send-Tx -> End
73
73
  ```
74
74
 
75
- ## 階段 1:準備 (建立 `itx`)
75
+ ## 階段 1:準備 (創建 `itx`)
76
76
 
77
- 每筆交易都始於一個 `itx` (內部交易)。這是一個純粹的 JavaScript 物件,其中包含您想要執行的動作的具體資料。例如,一筆轉帳 `itx` 會包含收款人的地址和金額。
77
+ 每筆交易都始於一個 `itx`(內部交易)。這是一個純 JavaScript 物件,其中包含您想執行操作的特定資料。例如,一個轉帳 `itx` 會包含收款人地址和金額。
78
78
 
79
79
  ```javascript 準備 itx icon=logos:javascript
80
80
  // 我們轉帳交易的核心資料
@@ -86,16 +86,16 @@ const itx = {
86
86
 
87
87
  ## 階段 2:編碼
88
88
 
89
- 編碼會將 `itx` 和其他元資料轉換為一個標準化的二進位格式,以便進行密碼學簽署。客戶端為每種交易類型提供了一個 `encode{TxType}Tx` 方法(例如 `encodeTransferV2Tx`)。
89
+ 編碼是將 `itx` 和其他元資料轉換為可進行密碼學簽署的標準化二進位格式。用戶端為每種交易類型提供了一個 `encode{TxType}Tx` 方法(例如 `encodeTransferV2Tx`)。
90
90
 
91
- 在此階段,客戶端會自動添加必要的元資料:
91
+ 在此階段,用戶端會自動添加必要的元資料:
92
92
 
93
- * **`from`**:發送者的地址,從提供的錢包中派生。
94
- * **`chainId`**:目標區塊鏈的識別碼,會自動擷取。
95
- * **`nonce`**:一個唯一的數字,用以防止重放攻擊,預設為當前時間戳 (`Date.now()`)。
96
- * **`pk`**:發送者錢包的公鑰。
93
+ * **`from`**:發送方地址,從提供的錢包中衍生而來。
94
+ * **`chainId`**:目標區塊鏈的識別碼,會自動獲取。
95
+ * **`nonce`**:一個用來防止重放攻擊的唯一數字,預設為當前時間戳 (`Date.now()`)。
96
+ * **`pk`**:發送方錢包的公鑰。
97
97
 
98
- 編碼函式會回傳完整的交易物件和序列化資料的 `Buffer`,後者用於簽署。
98
+ 編碼函式會返回完整的交易物件和序列化資料的 `Buffer`,後者用於簽署。
99
99
 
100
100
  ```javascript 編碼交易 icon=logos:javascript
101
101
  const { object: encodedTx, buffer: txBuffer } = await client.encodeTransferV2Tx({
@@ -103,40 +103,40 @@ const { object: encodedTx, buffer: txBuffer } = await client.encodeTransferV2Tx(
103
103
  wallet: senderWallet,
104
104
  });
105
105
 
106
- console.log('編碼後的 TX 物件:', encodedTx);
107
- console.log('待簽署的 Buffer:', txBuffer);
106
+ console.log('Encoded TX Object:', encodedTx);
107
+ console.log('Buffer to be signed:', txBuffer);
108
108
  ```
109
109
 
110
110
  ## 階段 3:簽署
111
111
 
112
- 簽署證明了帳戶的所有權並授權該交易。單簽和多簽工作流程的過程有所不同。
112
+ 簽署證明了帳戶的所有權並授權該筆交易。單一簽章和多重簽章工作流程的過程有所不同。
113
113
 
114
- ### 單簽工作流程
114
+ ### 單一簽章工作流程
115
115
 
116
- 這是最常見的情境,即單一使用者簽署一筆交易。`sign{TxType}Tx` 方法會接收編碼後的交易,使用者的私鑰簽署二進位緩衝區,並填入 `signature` 欄位。
116
+ 這是最常見的情境,即由單一使用者簽署一筆交易。`sign{TxType}Tx` 方法會接收編碼後的交易,使用者的私鑰簽署二進位緩衝區,並填入 `signature` 欄位。
117
117
 
118
- ```javascript 使用單一簽名進行簽署 icon=logos:javascript
118
+ ```javascript 使用單一簽章進行簽署 icon=logos:javascript
119
119
  const signedTx = await client.signTransferV2Tx({
120
120
  tx: encodedTx, // 來自編碼步驟的物件
121
121
  wallet: senderWallet,
122
122
  });
123
123
 
124
- console.log('簽名:', signedTx.signature);
124
+ console.log('Signature:', signedTx.signature);
125
125
  ```
126
126
 
127
- ### 多簽工作流程
127
+ ### 多重簽章工作流程
128
128
 
129
- 多重簽名 (multisig) 交易需要多方批准。這通常用於原子交換或共享帳戶。此過程是循序的:
129
+ 多重簽章(multisig)交易需要多方批准。這通常用於原子交換或共享帳戶。這個過程是循序的:
130
130
 
131
- 1. **準備**:初始交易會與一個定義了所有必要簽署者的 `signaturesList` 一同建立。
132
- 2. **循序簽署**:交易會從一個簽署者傳遞到下一個。每個簽署者都使用對應的 `multiSign{TxType}Tx` 方法來添加他們的簽名。
131
+ 1. **準備**:創建初始交易時,會帶有一個 `signaturesList`,其中定義了所有必要的簽署人。
132
+ 2. **循序簽署**:交易從一個簽署人傳遞給下一個。每個簽署人都會使用對應的 `multiSign{TxType}Tx` 方法來添加自己的簽章。
133
133
 
134
- 在內部,`multiSign` 方法會透過在編碼交易以供簽署前,暫時移除所有現有簽名,來確保各方簽署的是完全相同的交易摘要。
134
+ 在內部,`multiSign` 方法會透過在編碼交易以進行簽署前,暫時移除所有現有簽章,來確保每一方都簽署完全相同的交易摘要。
135
135
 
136
136
  以下是一個 `ExchangeTx` 的範例,其中兩方交換資產。
137
137
 
138
- ```javascript 多重簽名範例 icon=logos:javascript
139
- // 步驟 1:Alice (要約方) 準備並簽署交換交易。
138
+ ```javascript 多重簽章範例 icon=logos:javascript
139
+ // 步驟 1:Alice(要約人)準備並簽署交換交易。
140
140
  const txFromAlice = await client.prepareExchange({
141
141
  offerToken: 10,
142
142
  demandToken: 20,
@@ -144,22 +144,22 @@ const txFromAlice = await client.prepareExchange({
144
144
  wallet: aliceWallet,
145
145
  });
146
146
 
147
- // 步驟 2:交易被發送給 Bob。
148
- // Bob (承諾方) 添加他的簽名以完成交易。
147
+ // 步驟 2:將交易發送給 Bob。
148
+ // Bob(要求人)添加他的簽章以完成交易。
149
149
  const txFromBob = await client.finalizeExchange({
150
150
  tx: txFromAlice, // 由 Alice 簽署的交易
151
151
  wallet: bobWallet,
152
152
  });
153
153
 
154
- console.log('Alice 的簽名:', txFromBob.signaturesList[0].signature);
155
- console.log('Bob 的簽名:', txFromBob.signaturesList[1].signature);
154
+ console.log('Alice\'s Signature:', txFromBob.signaturesList[0].signature);
155
+ console.log('Bob\'s Signature:', txFromBob.signaturesList[1].signature);
156
156
  ```
157
157
 
158
158
  ## 階段 4:發送
159
159
 
160
- 一旦交易完全簽署,就可以將其發送到區塊鏈節點進行處理。`send{TxType}Tx` 方法負責處理這最後一步。
160
+ 一旦交易被完整簽署,就可以將其發送到區塊鏈節點進行處理。`send{TxType}Tx` 方法處理這最後一步。
161
161
 
162
- 為了方便起見,如果您提供一個錢包和一筆未簽署的交易,這些方法也可以隱式地執行簽署步驟。此方法會回傳一個 promise,在成功提交後,該 promise 會解析並回傳交易雜湊值。
162
+ 為求方便,如果您提供一個錢包和一筆未簽署的交易,這些方法也可以隱式地執行簽署步驟。該方法會返回一個 promise,在成功提交後,該 promise 會解析並回傳交易雜湊值。
163
163
 
164
164
  ```javascript 發送已簽署的交易 icon=logos:javascript
165
165
  // 使用預先簽署的交易
@@ -167,17 +167,17 @@ const hash = await client.sendTransferV2Tx({ tx: signedTx, wallet: senderWallet
167
167
 
168
168
  // 或者,讓發送方法自動處理簽署
169
169
  const hash2 = await client.sendTransferV2Tx({
170
- tx: { itx }, // 僅有內部交易
170
+ tx: { itx }, // 只需內部交易
171
171
  wallet: senderWallet,
172
172
  });
173
173
 
174
- console.log('交易已發送!雜湊值:', hash);
174
+ console.log('Transaction sent! Hash:', hash);
175
175
  ```
176
176
 
177
- 您也可以包含一個 `commit: true` 選項,使客戶端等到交易完全確認並被包含在一個區塊中後,才解析該 promise。
177
+ 您也可以加入 `commit: true` 選項,讓用戶端等到交易完全確認並被納入一個區塊後,才解析該 promise。
178
178
 
179
179
  ## 總結
180
180
 
181
- 交易生命週期提供了一個穩健且靈活的框架,用於與區塊鏈互動。透過將過程分解為不同的階段——準備、編碼、簽署和發送——OCAP Client 為開發者提供了對交易創建的精細控制,同時也為常見用例提供了簡單的高階輔助函式。
181
+ 交易生命週期為與區塊鏈互動提供了一個穩健而彈性的框架。透過將過程分解為不同的階段——準備、編碼、簽署和發送——OCAP 用戶端為開發者提供了對交易創建的精細控制,同時也為常見用例提供了簡單的高階輔助函式。
182
182
 
183
- 有關交易手續費如何處理的更多詳情,請參閱 [Gas 費用支付](./core-concepts-gas-payment.md) 指南。要了解可用的不同客戶端類型,請參閱 [客戶端架構](./core-concepts-client-architecture.md) 文件。
183
+ 有關交易費用如何處理的更多詳情,請參閱 [Gas 支付](./core-concepts-gas-payment.md) 指南。要了解可用的不同用戶端類型,請參閱 [用戶端架構](./core-concepts-client-architecture.md) 文件。