Pausable

目的

允许合约被授权账户暂停和取消暂停。

这个实用合约可以与任何 token 标准(可互换的、不可互换的、多 token)一起使用。

设计

为了在检查代码时更容易发现,我们将这个简单的功能变成了一个宏,可以注释你的智能合约函数。

一个例子:

#[when_paused]
pub fn emergency_reset(e: &Env) {
    e.storage().instance().set(&DataKey::Counter, &0);
}

它将扩展为以下代码:

pub fn emergency_reset(e: &Env) {
    when_paused(e);

    e.storage().instance().set(&DataKey::Counter, &0);
}