@lodestar/types
Version:
Typescript types required for lodestar
59 lines (48 loc) • 1.29 kB
text/typescript
import {BasicType} from "@chainsafe/ssz";
export class StringType<T extends string = string> extends BasicType<T> {
readonly typeName = "string";
byteLength = 0;
fixedSize = 0;
minSize = 0;
maxSize = 0;
defaultValue(): T {
return "" as T;
}
// Serialization + deserialization
value_serializeToBytes(): number {
throw Error("Not supported in String type");
}
value_deserializeFromBytes(): T {
throw Error("Not supported in String type");
}
tree_serializeToBytes(): number {
throw Error("Not supported in String type");
}
tree_deserializeFromBytes(): never {
throw Error("Not supported in String type");
}
// Fast tree opts
tree_getFromNode(): T {
throw Error("Not supported in String type");
}
tree_setToNode(): void {
throw Error("Not supported in String type");
}
tree_getFromPackedNode(): T {
throw Error("Not supported in String type");
}
tree_setToPackedNode(): void {
throw Error("Not supported in String type");
}
// JSON
fromJson(json: unknown): T {
if (typeof json !== "string") {
throw Error(`JSON invalid type ${typeof json} expected string`);
}
return json as T;
}
toJson(value: T): unknown {
return value;
}
}
export const stringType = new StringType();