Sui 框架 (Sui Framework)
Sui Framework 是 Package Manifest 中預設的依賴集合。它依賴於 Standard Library,並提供 Sui 專屬的功能:儲存操作、原生型別,以及本章其餘內容所建立在其上的模組。
為了方便起見,我們將 Sui Framework 中的模組分成多個類別,但它們仍然是同一個框架的一部分。
核心 (Core)
| Module | Description | Chapter |
|---|---|---|
| sui::address | 為 address 型別 新增轉換方法 | Address |
| sui::transfer | 實作 Object 的儲存操作 | Storage Functions |
| sui::tx_context | 包含 TxContext 結構體以及讀取它的方法 | Transaction Context |
| sui::object | 定義建立物件所需的 UID 與 ID 型別 | UID and ID |
| sui::derived_object | 允許透過金鑰衍生產生 UID | UID Derivation |
| sui::clock | 定義 Clock 型別及其方法 | Epoch and Time |
| sui::dynamic_field | 實作新增、使用與移除動態欄位的方法 | Dynamic Fields |
| sui::dynamic_object_field | 實作新增、使用與移除動態物件欄位的方法 | Dynamic Object Fields |
| sui::event | 允許發出事件供鏈下監聽器使用 | Events |
| sui::package | 定義 Publisher 型別以及套件升級方法 | Publisher |
| sui::display | 實作 Display 物件以及建立與更新它的方式 | Display |
集合 (Collections)
| Module | Description | Chapter |
|---|---|---|
| sui::vec_set | 實作一種 set 型別 | Collections |
| sui::vec_map | 實作以 vector 為鍵的 map | Collections |
| sui::table | 實作 Table 型別以及與其互動的方法 | Dynamic Collections |
| sui::linked_table | 實作 LinkedTable 型別以及與其互動的方法 | Dynamic Collections |
| sui::bag | 實作 Bag 型別以及與其互動的方法 | Dynamic Collections |
| sui::object_table | 實作 ObjectTable 型別以及與其互動的方法 | Dynamic Collections |
| sui::object_bag | 實作 ObjectBag 型別以及與其互動的方法 | Dynamic Collections |
代幣與資產 (Coins and Assets)
| Module | Description | Chapter |
|---|---|---|
| sui::balance | Balance 型別 —— 價值的底層儲存方式 | Balance and Coin |
| sui::coin | Coin 型別 —— 可轉移的同質化資產 | Balance and Coin |
| sui::sui | SUI 代幣型別 | Balance and Coin |
| sui::pay | 用於拆分與合併代幣的輔助函式 | - |
| sui::deny_list | 用於受監管代幣型別的拒絕清單 | - |
| sui::token | 封閉迴路(closed-loop)代幣標準 | - |
實用工具 (Utilities)
| Module | Description | Chapter |
|---|---|---|
| sui::bcs | 實作 BCS 編碼與解碼函式 | Binary Canonical Serialization |
| sui::borrow | 實作以 value 方式借用的借用機制 | Hot Potato |
| sui::hex | 實作十六進位編碼與解碼函式 | - |
| sui::random | Random 物件與安全的鏈上隨機性 | Randomness |
| sui::types | 提供檢查型別是否為 One-Time-Witness 的方式 | One Time Witness |
該框架也包含本書未涵蓋的模組:商業原語 (sui::kiosk、 sui::transfer_policy)、一組 密碼學函式(sui::hash、 sui::ed25519、 sui::bls12381 等等),以及一些 輔助工具,例如 sui::url 與 sui::versioned。完整清單請參閱 框架文件。
匯出地址 (Exported Addresses)
Sui Framework 匯出了兩個具名地址:sui = 0x2,以及來自 std 依賴的 std = 0x1。
隱式匯入 (Implicit Imports)
就像 Standard Library 一樣,Sui Framework 中 有些模組與型別會被隱式匯入。以下是不需明確 use 匯入即可使用的模組與 型別清單:
- sui::object
- sui::object::ID
- sui::object::UID
- sui::tx_context
- sui::tx_context::TxContext
- sui::transfer
原始碼 (Source Code)
Sui Framework 的原始碼可在 Sui repository 中取得。