@truenetworkio/sdk
Version:
True Network SDK is the abstracted interface for interacting with True Network nodes.
146 lines (145 loc) • 4.82 kB
TypeScript
import { AttestationResponseType, TrueApi } from "..";
type PrimitiveType = string | number | boolean | bigint;
export declare abstract class SchemaType<T extends PrimitiveType> {
abstract sizeInBytes: number;
abstract id: number;
abstract isValid(v: T): boolean;
abstract serialize(v: T): string;
abstract deserialize(v: string): T;
protected hexToLittleEndianNumber(hex: string): number;
protected hexToLittleEndianBigInt(hex: string): bigint;
}
declare class CharType extends SchemaType<string> {
sizeInBytes: number;
id: number;
isValid(v: string): boolean;
serialize(v: string): string;
deserialize(v: string): string;
}
declare class U8Type extends SchemaType<number> {
sizeInBytes: number;
id: number;
isValid(v: number): boolean;
serialize(v: number): string;
deserialize(v: string): number;
}
declare class I8Type extends SchemaType<number> {
sizeInBytes: number;
id: number;
isValid(v: number): boolean;
serialize(v: number): string;
deserialize(v: string): number;
}
declare class U16Type extends SchemaType<number> {
sizeInBytes: number;
id: number;
isValid(v: number): boolean;
serialize(v: number): string;
deserialize(v: string): number;
}
declare class I16Type extends SchemaType<number> {
sizeInBytes: number;
id: number;
isValid(v: number): boolean;
serialize(v: number): string;
deserialize(v: string): number;
}
declare class U32Type extends SchemaType<number> {
sizeInBytes: number;
id: number;
isValid(v: number): boolean;
serialize(v: number): string;
deserialize(v: string): number;
}
declare class I32Type extends SchemaType<number> {
sizeInBytes: number;
id: number;
isValid(v: number): boolean;
serialize(v: number): string;
deserialize(v: string): number;
}
declare class U64Type extends SchemaType<bigint> {
sizeInBytes: number;
id: number;
isValid(v: bigint | number): boolean;
serialize(v: bigint | number): string;
deserialize(v: string): bigint;
}
declare class I64Type extends SchemaType<bigint> {
sizeInBytes: number;
id: number;
isValid(v: bigint | number): boolean;
serialize(v: bigint | number): string;
deserialize(v: string): bigint;
}
declare class F32Type extends SchemaType<number> {
sizeInBytes: number;
id: number;
isValid(v: number): boolean;
serialize(v: number): string;
deserialize(v: string): number;
}
declare class F64Type extends SchemaType<number> {
sizeInBytes: number;
id: number;
isValid(v: number): boolean;
serialize(v: number): string;
deserialize(v: string): number;
}
declare class HashType extends SchemaType<string> {
sizeInBytes: number;
id: number;
isValid(v: string): boolean;
serialize(v: string): string;
deserialize(v: string): string;
}
declare class BoolType extends SchemaType<boolean> {
sizeInBytes: number;
id: number;
isValid(v: boolean): boolean;
serialize(v: boolean): string;
deserialize(v: string): boolean;
}
declare class StringType extends SchemaType<string> {
sizeInBytes: number;
id: number;
isValid(v: string): boolean;
serialize(v: string): string;
deserialize(v: string): string;
}
export declare const Char: CharType;
export declare const U8: U8Type;
export declare const I8: I8Type;
export declare const U16: U16Type;
export declare const I16: I16Type;
export declare const U32: U32Type;
export declare const I32: I32Type;
export declare const U64: U64Type;
export declare const I64: I64Type;
export declare const F32: F32Type;
export declare const F64: F64Type;
export declare const Hash: HashType;
export declare const Bool: BoolType;
export declare const Text: StringType;
export declare const stringToSchemaType: (type: string) => SchemaType<any> | undefined;
type SchemaDefinition = Record<string, SchemaType<any>>;
export declare class Schema<T extends SchemaDefinition> {
private readonly def;
private readonly schemaHash;
constructor(def: T);
readonly type: {
[K in keyof T]: T[K] extends SchemaType<infer V> ? V : never;
};
static create<T extends SchemaDefinition>(def: T): Schema<T>;
getAttestations(api: TrueApi, address: string): Promise<typeof this.type[]>;
private getSortedEntries;
getEntries(): [string, any][];
getSchemaObject(): any[][];
getSchemaHash(): string;
ifExistAlready(api: TrueApi): Promise<boolean>;
register(api: TrueApi): Promise<string>;
private validate;
attest(api: TrueApi, user: string, attestation: typeof this.type): Promise<AttestationResponseType>;
updateAttestation(api: TrueApi, user: string, attestationId: number, attestation: typeof this.type): Promise<AttestationResponseType | undefined>;
}
export {};