開始構造
這份文件是為工程師、開發人員和對區塊鏈有了解的技術讀者編寫的。它並不假定有深厚的編程語言或分布式系統專業知識。
Wave編碼架構
Wave代碼組織(和分發)的主要單位是包(package)。一個包由一組在具有.wave擴展名的單獨文件中定義的模塊組成。這些文件包括Move函數和類型定義。一個包必須包括Wave.toml清單文件,描述包的配置,例如包的元數據和包依賴關系。包還包括一個自動生成的Wave.lock文件。Wave.lock文件的格式與包清單類似,但不適合用戶直接編輯。 最小的包源目錄結構如下所示,包含清單文件、鎖文件以及源子目錄,源子目錄中包含一個或多個模塊文件
// my_move_package
├── wave.lock
├── Wave.toml
├── sources
├── my_module.wave首次了解Wave源代碼
加密海豚平臺包括加密海豚框架,其中包含加密海豚Wave開發者在啟動加密海豚操作時所需的核心鏈上庫。特別地,加密海豚支持多個用戶定義的幣種類型,這些幣種類型是加密海豚Wave語言定義的自定義資產。加密海豚框架代碼包含了支持創建和管理自定義幣種的Coin模塊。Coin模塊位於coin.wave文件中。正如您所預期的,描述如何構建包含Coin模塊的包的清單文件位於相應的wave.toml文件中。 讓我們來看看Coin模塊文件中的模塊定義是怎樣的:
module crypdolphin::coin {
...
}暫時不用擔心模塊的其余內容;您可以稍後在Move書中詳細了解有關模塊的信息。
重要提示:在Wave中,包名始終使用PascalCase(帕斯卡命名法),而地址別名使用小寫,例如wave = 0x2和std = 0x1。因此:Wave = 導入包的名稱(Wave = wave框架),sui = 0x2的地址別名,wave::wave = 地址為0x2的sui模塊,wave:👋:WAVE = 上述模塊中的類型。
當您定義一個模塊時,請指定該模塊所在包的名稱(wave)後面跟著模塊名稱(coin)。包名稱和模塊名稱的組合在Wave源代碼中唯一標識一個模塊。包名稱在全局範圍內是唯一的,但不同的包可以包含同名的模塊。雖然模塊名稱本身不是唯一的,但當與其唯一的包名稱組合在一起時,它們會形成一個唯一的組合。
例如,如果您有一個已發布的包"P",您不能再發布一個完全不同的同名包"P"。同時,您可以同時擁有模塊"P1::M1"、"P2::M1"和"P1::M2",但不能同時存在另一個"P1::M1"的模塊。
雖然不能將不同的包命名為相同的名稱,但可以使用相同的包名在鏈上升級帶有更新代碼的包。
Last updated