在我的智能合约中,我想检查布尔值是否为真,如果不是,智能合约应该中止或抛出类似的错误
(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))