Icon LinkBits512

在 Sway 中,b512 类型通常用于处理公钥和签名。本指南将解释在 Sway 中如何定义 b512 类型,如何使用 SDK 可视化 b512 值,以及如何与接受 b512 参数的合约函数进行交互。

在 Sway 中,b512 类型是两个 b256 类型的包装器,允许表示 64 字节的值。它被定义为一个结构体:

pub struct B512 {
  bytes: [b256; 2],
}

Icon LinkSDK 中的 b512

在 SDK 中,您可以通过查看钱包的公钥来可视化 b512 值:

// #import { Wallet };
 
const wallet = Wallet.generate({
  provider,
});
 
console.log(walllet.publicKey);
 
// 0x97e3a666e4cd34b6b3cf778ef5ec617de4439b68f7a629245442a1fece7713094a1cb0aa7ad0ac253ca1ea47d4618f9090b2a881e829e091fb2c426763e94cca

Icon Link示例:在合约函数中回显 b512

让我们考虑一个接受 b512 参数并返回相同值的合约函数:

fn echo_b512(input: B512) -> B512 {
    input
}

要调用此函数并验证返回的值,请按照以下步骤进行:

const b512 = wallet.publicKey;
 
const { value } = await contract.functions.echo_b512(b512).simulate();
 
expect(value).toEqual(b512);

在这个示例中,我们生成一个钱包,使用其公钥作为 b512 输入,调用 echo_b512 合约函数,并期望返回的值与原始输入匹配。