Move笔记第001篇-第1个例子

Move Move笔记

1 哪里获取Move的资料

目前Move的资料特别少,英文好的直接去官方文档中心https://diem.github.io/move/introduction.html 喜欢看中文的去到对应的中文翻译 https://github.com/move-language/move/blob/main/language/documentation/book/translations/move-book-zh/src/SUMMARY.md 除此之外,还有一个中文文档地方 https://move-book.com/cn/introduction/getting-started.html 喜欢视频的去到 http://www.aptoseden.com/#/dashbord 国内目前查到的就这么多把,老铁如果有更好的链接请留言分享,谢谢

2 第一个例子

与其他语言不同,第一个例子是Mint,而不是常见的Hello World ,毕竟区块链都是和钱有关的。 在百度 move 环境安装之后,我本地是用vscode进行move开发的,我们先建一个project,名字叫“BasicCoin”。 move new BasicCoin 运行后可以看到生成了一个sources目录和Move.toml文件

image.png

这里突然想到一个问题,Move语言的命名规范是啥,虽然编译器没有太多限制,但还是遵循约定的比较好,在官方文档的后面找到了一个编码约定

image.png 这是对应中文的翻译,但发现有矛盾,我红框标记的,于是看看英文版的

image.png 没毛病,看来还是不能太偷懒才行。 简单来说,Move语言的模块命名出函数命名方法外其他和Java比较像,但script的命名又和JS有点像,感觉还是比较奇怪的,有知道的同学麻烦告知。 于是去到在线代码工具的例子工程的命名,再一次验证了我的猜想

image.png

扯远了,回到正题,生成好了目录后,还要建一个tests目录,毕竟,在区块链的世界:“不要相信,要验证”。 下面开始写代码: 1)在sources目录下创建一个文件 BasicCoin.move ,代码如下

module 0x01:: BasicCoin {
    struct Coin has key {
        val: u64,
    }
    public fun mint(account: signer ,value: u64){
        move_to(&account,Coin{val:value})
    }
}

2)写一个测试类,在tests目录创建一个BasicCoinTest.move,代码如下

module 0x01::BasicCoinTest {
    use 0x01:: BasicCoin;

    #[test(account = @0x01)]
    fun test_mint_10(account: signer) {
        let addr = 0x1::signer::address_of(&account);
        BasicCoin::mint(account, 10);
        assert!(BasicCoin::balance(addr)== 10, 0);
    }
}

image.png 成功完成

点赞 0
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

3 条评论

请先 登录 后评论
WorkerOfCrypto
WorkerOfCrypto
江湖只有他的大名,没有他的介绍。