关于 MoveBit:
MoveBit 团队是一家服务于 Move 生态的安全公司, 已经陆续与全球多家知名项目合作,为合作伙伴提供安全审计服务,其愿景是让 Move 生态成为最安全的 Web3 生态系统。其团队由学术界安全大牛和企业界安全领军人物组成,具有 10 年的安全经验,在 NDSS、CCS 等顶级国际安全学术会议上发表安全研究成果,并且是 Move 生态最早期的贡献者,与 Move 开发者共同制定 Move 应用的安全标准和形式化验证的最佳实践。

Sui Move Analyzer 是一款由 MoveBit 研发的 Visual Studio Code IDE 插件 ,通过分析和改进 Move 代码的编写过程来简化 Sui 网络的开发过程。它支持 Visual Studio 集成开发环境(IDE)中的定义和自动完成,同时会提供一个大纲,让开发人员可以概览大型程序。
与其他 Move 开发工具不同,Sui Move Analyzer 中包含 Sui 特有的功能。Sui 项目模板和 Sui Move 代码片段能够引导开发工作,促使集成的 Sui 单元通过测试,提高开发人员写代码的速度。
📺 观看视频:https://youtu.be/79L0CrjLBUg
01
准备工作
下载和安装 Sui Move Analyzer 时,需要设置好我们的环境来开始构建项目。请注意,本教程使用的是 Ubuntu Linux LTS 做演示,如果使用的是其他平台,需要根据使用的系统制定操作命令。
1
//设置 Sui
使用 Sui 前需要根据操作系统安装一些必备软件并获取 Sui 二进制文件。此处推荐您参考以下 Sui 文档,其中包含有关 Linux、Mac 和 Windows 系统的详细信息。
查看操作系统必备软件:https://docs.sui.io/devnet/build/install#prerequisites
安装 Sui 二进制文件:
https://docs.sui.io/devnet/build/install#install-sui-binaries
除上述步骤外,设置 Sui 的文档还包括其他实用信息:https://docs.sui.io/devnet/build/install
2
//Move Analyzer Language Server
首先,我们需要安装 Move Language Analyzer Server,它可以接收来自 Sui Move Analyzer 插件的请求,对代码的词法和语义进行分析,以帮助插件提供特定语言的功能。使用 Rust 工具链安装此服务器是最可靠的方法,Rust 工具链包括编译器和其他可用于运行 Sui Move Analyzer 的工具,因此非常方便、非常可靠而且定期维护。
要获取 Rust 工具链,请打开命令行界面(CLI)并输入以下内容:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装好 Rust 工具链后,在 CLI 中执行以下命令:
cargo install --git https://github.com/movebit/move --branch move-analyzer 2 move-analyzer
使用以下命令检查是否已正确安装达到要求:
Sui
move-analyzer --version
CLI 会输出 Move Analyzer Language Server 当前的版本和帮助选项,这就表示依赖项已成功设置。
3
//Sui Move Analyzer 插件
现在一切准备就绪,可以安装 Sui Move Analyzer 了。但是,除此之外,我们还需要提前设置好 Microsoft Visual Studio:https://visualstudio.microsoft.com/
您需要前往 Sui Move Analyzer 下载页面并点击下载按钮:https://www.movebit.xyz/analyzer
4
//故障排除
如果您在安装 Move Analyzer Language Server 和 Rust 工具链时出现意外,我们建议您采取以下步骤:
确保您使用的是最新版本的 Rust。打开终端并输入rust up update命令,然后重复安装步骤并重新启动 Visual Studio。
如果您将 move-analyzer 可执行文件安装到 Visual Studio 目录以外的位置,则可以将其指向正确的设置位置。使用 Visual Studio 的搜索功能查找 “move-analyzer.server.path”,并将其设置到您安装 move-analyzer language server 的本地位置。在 MacOS 系统上,通过点击「Code menu(代码菜单)」,然后选择「Preferences(首选项)」>「Settings(设置)」来导入正确的目录。
如果上述步骤不起作用,则可以向 GitHub 上的 Move repository 发送问题报告:https://github.com/move-language/move/issues
此外,Sui Move Analyzer 的详情页面上也列出了常见问题:https://marketplace.visualstudio.com/items?itemName=MoveBit.sui-move-analyzer
02
创建一个新项目
为新项目设置所有必需的配置文件可能非常耗时间,因此我们将 Sui Framework 与 Sui Move Analyzer 集成在一起以快速启动该过程。要使用集成命令,请选择命令面板工具并输入“move analyzer/Sui”。在 MacOS 系统上,您需要转到「View(查看)」菜单并点击「Command Palette(命令面板)」,此时,Move Analyzer 上的命令列表将显示出来。

Sui Move Analyzer 包括一系列用于快速创建项目或执行其他功能的集成命令。
从命令列表中选择「Create SUI project(创建 SUI 项目)」命令,Sui Move Analyzer 即可自动从模板库中生成一个项目,同时还可以实现多项目开发功能。在创建新项目后,您可能需要重新打开一次 Visual Studio,以确保创建的项目正常工作。

Sui Move Analyzer 的项目模板包括一个基本的 Move 模块和一些代码助您快速开始操作。
除项目模板外,Sui Move Analyzer 还包含可提高开发人员效率的功能。它支持 Sui Framework 中许多常用的代码片段,例如,输入“fun init”即可快速生成一个初始函数。

Sui Move Analyzer 帮助构建者自动填充常用的代码,则无需重复输入相同的代码。
确保代码在模块中正常工作,这有助于避免对已部署程序或智能合约进行大量漏洞搜索。Sui Move Analyzer 集成了单元测试工具来验证代码,如输入“#[test_only]”标签会出现「Run Test(运行测试)」选项(如下所示)。

将单元测试集成到 Sui Move Analyzer 中,让构建者在创建代码时即可验证他们的代码。
到目前为止,我们介绍的功能可以帮助新的开发者快速在 Sui 上构建,并为其消除一些与编码相关的重复性工作。
03
使用 Sui Move 编码
Sui Move Analyzer 包含其他语言插件中的大部分功能,这些功能都可以在编码时轻松调用。要调出上下文菜单,请在编码屏幕中右键单击标识符(例如局部变量或参数名称)上的光标,然后选择一个选项,您将能够看到该标识符的定义、类型定义和参考项。

右键单击标识符会弹出上下文菜单,提供各种帮助选项。
将光标悬停在标识符上,会在功能提示中显示其名称。Sui Move Analyzer 几乎涵盖了 Sui Move 的所有标识符,包括内置类型。

将光标悬停在标识符上会弹出功能提示。
在打字时,Sui Move Analyzer 会自动显示出 Move 中几乎所有建议的元素。由于它集成了 Sui Framework,在 IDE 中键入「sui::」即可显示一个可供选择的模块列表。

自动完成功能将会在您输入时,显示有用的建议,包括模块。
除了上面列出的功能外,我们还优化了语义分析器的代码,从而提高了效率,也使内存分配更合理。
04
使用 MSL 编码
Move 规范语言(Move Specification Language,MSL)是 Move 的一个子集,它提供了 Move 函数如何相互交互的规范。MSL 是 Move Prover 的核心,而 Move Prover 是一种旨在帮助构建者准确使用 Move 代码的 CLI 工具。与 Sui Move Analyzer 支持 Sui Move 的方式类似,它还支持具有自定义和自动完成等功能的 MSL。想要在 MSL 上工作的构建者会发现,Sui Move Analyzer 真的很有帮助。

从标识符的上下文菜单中选择 Peek 可以显示更多信息。
MSL 的语法非常灵活,我们已经考虑了各种可能的示例。在函数中选择 MSL 语法时,自动完成功能将显示可能的标识符。

在此示例中,自动完成功能建议了编码时,MSL 语法中对应的标识符。
MSL 中的规范决定了 Sui Move 功能如何交互,Sui Move Analyzer 可以为单个函数或 .move 文件中的所有函数生成这些规范。

除了显示定义等功能外,Sui Move Analyzer 还可以为 MSL 生成函数规范。
上述功能将 Sui Move Analyzer 从帮助构建者为 Sui 编写应用程序扩展到为 MSL 项目做出贡献,它使代码验证变得简单,尤其是对于那些使用 Move Prover 的人来说更是。
05
快乐编码
我们希望构建者发现 Sui Move Analyzer 提高了其编码速度,对于使用过不同编程语言类似插件的人来说,它的许多功能并不陌生。
尽管我们仔细测试了 Sui Move Analyzer 的功能,但它仍然可能存在一些问题。我们期待收到有关改进或提升的反馈。如果您需要有关 Sui Move Analyzer 的帮助,请随时联系 MoveBit。
关于 MoveBit:
MoveBit 团队是一家服务于 Move 生态的安全公司, 已经陆续与全球多家知名项目合作,为合作伙伴提供安全审计服务,其愿景是让 Move 生态成为最安全的 Web3 生态系统。其团队由学术界安全大牛和企业界安全领军人物组成,具有 10 年的安全经验,在 NDSS、CCS 等顶级国际安全学术会议上发表安全研究成果,并且是 Move 生态最早期的贡献者,与 Move 开发者共同制定 Move 应用的安全标准和形式化验证的最佳实践。
MoveBit 官方社交媒体平台:
官方网址:https://www.movebit.xyz/
推特:https://twitter.com/MoveBit_
Medium:https://movebit.medium.com/
Discord:https://discord.com/invite/7wM8VU9Gyj
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。
