可以使用 Bytes
类型表示字节值的动态数组,该类型表示原始字节。
// #import { Bytes };
const bytes: Bytes = [40, 41, 42];
const { value } = await contract.functions.bytes_comparison(bytes).simulate();
expect(value).toBeTruthy();
Bytes
类型可以与您的合约调用集成。考虑以下合约,它可以比较并返回一个 Bytes
:
contract;
use std::bytes::Bytes;
abi BytesTest {
fn echo_bytes(value: Bytes) -> Bytes;
fn bytes_comparison(value: Bytes) -> bool;
}
impl BytesTest for Contract {
fn echo_bytes(value: Bytes) -> Bytes {
value
}
fn bytes_comparison(value: Bytes) -> bool {
let mut bytes = Bytes::new();
bytes.push(40u8);
bytes.push(41u8);
bytes.push(42u8);
value == bytes
}
}
可以使用 JavaScript 的本机数组或大数数组创建一个 Bytes
数组,并发送到 Sway 合约:
// #import { Bytes };
const bytes: Bytes = [8, 42, 77];
const { value } = await contract.functions.echo_bytes(bytes).simulate();
expect(value).toStrictEqual(new Uint8Array(bytes));