如何在Clarity智能合约中要求真正的价值



在我的智能合约中,我想检查布尔值是否为真,如果不是,智能合约应该中止或抛出类似的错误

(begin
(require-true value)
...continue
)

我该怎么做?

您可以在函数中使用unwrap-panic,例如

(define-private (require-true (value bool))
(unwrap-panic (if value (some true) none))
)

asserts!将返回true,并且只有在其计算的布尔表达式为true时才继续执行。否则,它将返回抛出的值并退出当前控制流。

签名为:(asserts! boolean-expression thrown-value)

返回true并继续执行的示例:

(asserts! (is-eq 1 1) (err 1))

最新更新