Icon Link导入

predicate 关键字用于标识程序是一个 predicate。

predicate;

我们将在 predicate 中使用 Sway 标准库 Icon Link。删除模板代码,保留 predicate 关键字,并复制以下导入:

use std::{
    tx::{
        tx_witness_data,
        tx_witnesses_count,
        tx_id
    },
    constants::ZERO_B256,
    b512::B512,
    ecr::ec_recover_address
};

Icon Link交易

为了构建 MultiSig,我们需要通过标准库获取交易中的三个特定组件:

tx::{
    tx_witness_data,
    tx_witnesses_count,
    tx_id
},
  1. 交易见证数据:我们将使用它来附加交易的签名。
  2. 交易见证计数:这将帮助我们确定附加的签名数量。
  3. 交易 ID:交易的哈希值。

Icon Link常量

从常量库中,我们将使用 ZERO_B256 作为占位符。

constants::ZERO_B256,

Icon Link签名

我们需要 b512,因为签名是 b512 类型。

b512::B512,

Icon Link椭圆曲线

最后,我们将使用 ec_recover_address,即椭圆曲线恢复地址的缩写。它是一个允许我们加密恢复签名数据地址的函数:

signing_address = ec_recover_address(signed_data, original_data)

这一步对于保护资金并确保只有正确的钱包可以提供必要的签名至关重要。

ecr::ec_recover_address