我们设计一个实现基本代币和余额接口的模块,代币可以在不同地址下的余额之间铸造和转移。
Move 语言被誉为最适合编写区块链智能合约的语言之一,并且多次被拿来与目前主流的 Solidity 进行比较并力压其一头,主要原因是 Move 对于区块链最核心的 Token 资产进行了更为贴合的处理,弥补了 Solidity 在直观性和安全性的缺陷,这里单独将其最具有特色的 Resource 类型进行重点讲解。
Move 命令行界面(Move CLI)是一种工具,它提供了一种与 Move 交互、测试编写和运行 Move 代码以及测试开发对 Move 开发有用的新工具的简单方法。
Resource 是一种特殊的结构体,可以在Move代码中定义和创建,也可以使用现有的 Resource。因此,我们可以像使用任何其它数据(比如向量或结构体)那样来管理数字资产。
Resource
Move 白皮书中详细描述了 Resource这个概念。最初,它是作为一种名为resource的结构体类型被实现,自从引入 ability 以后,它被实现成拥有 Key 和 Store 两种 ability 的结构体。Resource`可以安全的表示数字资产,它不能被复制,也不能被丢弃或重新使用,但是它却可以被安全地存储和转移。
Key
Store
执行事务脚本时,通常需要调用不同的 Move 模块,之前的模块示例所示。可以将新模块添加到调用 CLI 的包中的目录中。您还可以添加对其他包的依赖项,以访问它们定义的模块(就像我们对之前的模块所做的那样)。在运行给定脚本之前,该命令将编译并发布包中的每个模块以及包的每个可传递依赖项。