Share Dialog
Share Dialog
Subscribe to Untitled
Subscribe to Untitled
move语言被称为是最适合编写智能合约的编程语言之一,它具有面向资源编程、纯静态语言、形式化验证、分散存储、面向泛型编程等特点。
从本节开始,我们将开始进入move语言的学习。
进行move开发主要需要安装Move CLI,安装命令如下:
cargo install --git https://github.com/move-language/move move-cli --branch main
安装好后可以用如下命令查看版本信息:
move --version
在终端下通过如下命令创建一个move工程:
move new example1
创建工程后,目录中会有一个Move.toml和sources文件夹,我们要写代码主要在sources中。
在move中,有两种类型的文件,分别modules和transaction scripts(关于这两部分具体的内容我们后面再学习),此处我们就分别创建两种类型的文件。
由于生成项目默认给的Move标准库是Git地址很慢,所以可以使用aptos项目中的整理好的库来代替,我将aptos的代码放在当前工程的外层的外层,修改我的toml文件如下:
[package]
name = "example1"
version = "0.0.0"
[dependencies]
MoveStdlib = { local = "../../aptos-core/aptos-move/framework/move-stdlib" }
AptosStdlib = { local = "../../aptos-core/aptos-move/framework/aptos-stdlib" }
# MoveStdlib = { git = "https://github.com/move-language/move.git", subdir = "language/move-stdlib", rev = "main" }
[addresses]
std = "0x1"
新建模块 在sources文件夹下添加Coin.move文件,内容如下:
address 0x2 {
module Coin {
struct Coin has drop {
value: u64,
}
public fun mint(value: u64): Coin {
Coin { value }
}
public fun value(coin: &Coin): u64 {
coin.value
}
public fun burn(coin: Coin): u64 {
let Coin { value } = coin;
value
}
}
}
编译模块
编译命令如下:
move build
编译及发布模块
编译及发布模块的命令如下:
move sandbox publish -v
编写脚本
在sources下添加test-coin.move文件,内容如下:
script {
use std::debug;
use 0x2::Coin;
fun main() {
let coin = Coin::mint(100u64);
debug::print(&Coin::value(&coin));
Coin::burn(coin);
}
}
调用脚本
命令如下:
move sandbox run sources/test-coin.move
可以看到,终端上将打印:
[debug] 100
至此,整个环境就弄好了,后面我们正式进入move语言的学习。
move语言被称为是最适合编写智能合约的编程语言之一,它具有面向资源编程、纯静态语言、形式化验证、分散存储、面向泛型编程等特点。
从本节开始,我们将开始进入move语言的学习。
进行move开发主要需要安装Move CLI,安装命令如下:
cargo install --git https://github.com/move-language/move move-cli --branch main
安装好后可以用如下命令查看版本信息:
move --version
在终端下通过如下命令创建一个move工程:
move new example1
创建工程后,目录中会有一个Move.toml和sources文件夹,我们要写代码主要在sources中。
在move中,有两种类型的文件,分别modules和transaction scripts(关于这两部分具体的内容我们后面再学习),此处我们就分别创建两种类型的文件。
由于生成项目默认给的Move标准库是Git地址很慢,所以可以使用aptos项目中的整理好的库来代替,我将aptos的代码放在当前工程的外层的外层,修改我的toml文件如下:
[package]
name = "example1"
version = "0.0.0"
[dependencies]
MoveStdlib = { local = "../../aptos-core/aptos-move/framework/move-stdlib" }
AptosStdlib = { local = "../../aptos-core/aptos-move/framework/aptos-stdlib" }
# MoveStdlib = { git = "https://github.com/move-language/move.git", subdir = "language/move-stdlib", rev = "main" }
[addresses]
std = "0x1"
新建模块 在sources文件夹下添加Coin.move文件,内容如下:
address 0x2 {
module Coin {
struct Coin has drop {
value: u64,
}
public fun mint(value: u64): Coin {
Coin { value }
}
public fun value(coin: &Coin): u64 {
coin.value
}
public fun burn(coin: Coin): u64 {
let Coin { value } = coin;
value
}
}
}
编译模块
编译命令如下:
move build
编译及发布模块
编译及发布模块的命令如下:
move sandbox publish -v
编写脚本
在sources下添加test-coin.move文件,内容如下:
script {
use std::debug;
use 0x2::Coin;
fun main() {
let coin = Coin::mint(100u64);
debug::print(&Coin::value(&coin));
Coin::burn(coin);
}
}
调用脚本
命令如下:
move sandbox run sources/test-coin.move
可以看到,终端上将打印:
[debug] 100
至此,整个环境就弄好了,后面我们正式进入move语言的学习。
<100 subscribers
<100 subscribers
No activity yet