predicate
关键字用于标识程序是一个 predicate。
predicate;
我们将在 predicate 中使用 Sway 标准库 。删除模板代码,保留 predicate
关键字,并复制以下导入:
use std::{
tx::{
tx_witness_data,
tx_witnesses_count,
tx_id
},
constants::ZERO_B256,
b512::B512,
ecr::ec_recover_address
};
为了构建 MultiSig,我们需要通过标准库获取交易中的三个特定组件:
tx::{
tx_witness_data,
tx_witnesses_count,
tx_id
},
从常量库中,我们将使用 ZERO_B256
作为占位符。
constants::ZERO_B256,
我们需要 b512
,因为签名是 b512
类型。
b512::B512,
最后,我们将使用 ec_recover_address
,即椭圆曲线恢复地址的缩写。它是一个允许我们加密恢复签名数据地址的函数:
signing_address = ec_recover_address(signed_data, original_data)
这一步对于保护资金并确保只有正确的钱包可以提供必要的签名至关重要。
ecr::ec_recover_address