常用的设计模式
public struct AdminCap has key{
id:UID,
}
public struct Counter has key{
id:UID,
amount:u64,
}
fun init(ctx:&mut TxContext){
let admin=AdminCap{
id:object::new(ctx)
};
//将管理员权限转移给发布者
transfer(admin,ctx.sender());
let counter=Counter{
id:object::new(ctx),
amount:0,
};
//共享
share_object(counter);
}
//验证调用地址是否有admin权限
public entry fun use_counter(admin:&AdminCap,counter:&mut Counter,ctx:&mut TxContext){
counter.amont=counter.amount+1;
}
public struct Witness has drop{}
这个结构体创建出来的实例是为了创建了一个资产需要的一种权限,创建同一个实例只能使用一次,这个结构体创建出来需要可以销毁
只能使用一次
public struct Receipt{price:u64}
public fun create(xx:XX,....):(Receipt{},Coin<x>)
public fun burn(rece:Recipt,...)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!