sui move 转账与安全学习

开发环境:sui1.24版本代码结构说明:代码主要功能为向tiny转1000_000_000_000的资金。move合约代码分为:use:导入,最新版本的可以自动导入。另外usesui::tx_context::{Self,TxContext};需要放置在最后constant:

开发环境:

sui 1.24 版本

代码结构说明:

代码主要功能为向tiny转1000_000_000_000的资金。

move合约代码分为:

use: 导入,最新版本的可以自动导入。另外use sui::tx_context::{Self, TxContext};需要放置在最后

constant: 常量

struct: 结构体,注意最新语法添加public

Event: 事件,提供给链下日志调用

Error: 错误

Funciton: 函数,主要的方法

代码示例如下:

#[allow(duplicate_alias)]
module zhuhai::zhuhai {
    use sui::coin::{ Coin};
    use sui::sui::SUI;
    use sui::balance::{Self, Balance};
    use sui::tx_context::{Self, TxContext};

    // use
    // Constant
    const FEE: u64 = 1000_000_000_000;

    // Struct 
    public struct Price has key {
        id: UID,
        fee: u64,
    }

    public struct Bank has key {
        id: UID,
        balance: Balance<SUI>,
    }

    public struct AdminCap has key, store {
        id: UID,
    }
    // Event
    // Error
    // Function
    fun init(ctx: &mut TxContext) {
    }

    public fun pay(bank: &mut Bank, price: &Price, fee: &mut Coin<SUI>, ctx: &mut TxContext) {
        // let to = coin::split<SUI>(fee, FEE, ctx);
        let to = fee.split(FEE, ctx);
        // transfer coin to tiny
        transfer::public_transfer(to, @tiny);
    }    
}

其中tiny变量为地址类型,需要在配置文件中配置。或者在合约中自定义即可

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

0 条评论

请先 登录 后评论
用户_18921
用户_18921
0xa10f...9ab5
江湖只有他的大名,没有他的介绍。