在 Sway 中,b512
类型通常用于处理公钥和签名。本指南将解释在 Sway 中如何定义 b512
类型,如何使用 SDK 可视化 b512
值,以及如何与接受 b512
参数的合约函数进行交互。
在 Sway 中,b512
类型是两个 b256
类型的包装器,允许表示 64 字节的值。它被定义为一个结构体:
pub struct B512 {
bytes: [b256; 2],
}
b512
在 SDK 中,您可以通过查看钱包的公钥来可视化 b512
值:
// #import { Wallet };
const wallet = Wallet.generate({
provider,
});
console.log(walllet.publicKey);
// 0x97e3a666e4cd34b6b3cf778ef5ec617de4439b68f7a629245442a1fece7713094a1cb0aa7ad0ac253ca1ea47d4618f9090b2a881e829e091fb2c426763e94cca
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
合约函数,并期望返回的值与原始输入匹配。