UNPKG

@roochnetwork/rooch-sdk

Version:
96 lines (95 loc) 2.73 kB
import { bcs } from "@mysten/bcs"; import { isBytes, toHEX } from "../utils/index.js"; import { Address, ObjectId } from "./bcs.js"; import { Serializer } from "./serializer.js"; class Args { constructor(input) { this.value = input; } encodeWithHex() { return toHEX(this.value); } encode() { return this.value; } static u8(input) { return new Args(bcs.u8().serialize(input).toBytes()); } static u16(input) { return new Args(bcs.u16().serialize(input).toBytes()); } static u32(input) { return new Args(bcs.u32().serialize(input).toBytes()); } static u64(input) { return new Args(bcs.u64().serialize(input).toBytes()); } static u128(input) { return new Args(bcs.u128().serialize(input).toBytes()); } static u256(input) { return new Args(bcs.u256().serialize(input).toBytes()); } static bool(input) { return new Args(bcs.bool().serialize(input).toBytes()); } static string(input) { return new Args(bcs.string().serialize(input).toBytes()); } static address(input) { return new Args(Address.serialize(input).toBytes()); } static object(input) { return this.objectId(Serializer.structTagToObjectID(input)); } static objectId(input) { return new Args(ObjectId.serialize(input).toBytes()); } static struct(input) { return new Args(isBytes(input) ? input : input.toBytes()); } static vec(type, input) { let _value; switch (type) { case "u8": _value = bcs.vector(bcs.u8()).serialize(input).toBytes(); break; case "u16": _value = bcs.vector(bcs.u16()).serialize(input).toBytes(); break; case "u32": _value = bcs.vector(bcs.u32()).serialize(input).toBytes(); break; case "u64": _value = bcs.vector(bcs.u64()).serialize(input).toBytes(); break; case "u128": _value = bcs.vector(bcs.u128()).serialize(input).toBytes(); break; case "u256": _value = bcs.vector(bcs.u256()).serialize(input).toBytes(); break; case "bool": _value = bcs.vector(bcs.bool()).serialize(input).toBytes(); break; case "string": _value = bcs.vector(bcs.string()).serialize(input).toBytes(); break; case "object": const tmp = input.map(Serializer.structTagToObjectID); _value = bcs.vector(ObjectId).serialize(tmp).toBytes(); break; case "objectId": _value = bcs.vector(ObjectId).serialize(input).toBytes(); break; case "address": _value = bcs.vector(Address).serialize(input).toBytes(); break; } return new Args(_value); } } export { Args }; //# sourceMappingURL=args.js.map