UNPKG

@truenetworkio/sdk

Version:

True Network SDK is the abstracted interface for interacting with True Network nodes.

146 lines (145 loc) 4.82 kB
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 {};