@roochnetwork/rooch-sdk
Version:
96 lines (95 loc) • 2.73 kB
JavaScript
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