Documentation
    Preparing search index...

    Class BcsStruct<T, Name>

    BcsType for a Move struct: an ordered set of named, typed fields.

    Type Parameters

    • T extends Record<string, BcsType<any>>
    • const Name extends string = string

    Hierarchy (View Summary)

    • BcsType<
          { [K in keyof T]: T[K] extends BcsType<infer U, any> ? U : never },
          { [K in keyof T]: T[K] extends BcsType<any, infer U> ? U : never },
          Name,
      >
      • BcsStruct
    Index

    Constructors

    • Type Parameters

      • T extends Record<string, BcsType<any, any, string>>
      • const Name extends string = string

      Parameters

      • __namedParameters: BcsStructOptions<T, Name> & {
            decoder?: {
                buildEnumDecoder: (
                    variantKeys: string[],
                    variantReaders: ((() => unknown) | null)[],
                    enumName?: string,
                ) => () => unknown;
                buildFixedArrayDecoder: (
                    len: number,
                    elemReader: () => unknown,
                    kind?: string,
                ) => () => unknown;
                buildMapDecoder: (
                    keyReader: () => unknown,
                    valueReader: () => unknown,
                ) => () => unknown;
                buildOptionDecoder: (
                    innerReader: () => unknown,
                ) => { decode: () => unknown; parse: (bytes: Uint8Array) => unknown };
                buildStructDecoder: (
                    keys: string[],
                    readers: (() => unknown)[],
                ) => () => unknown;
                buildTupleDecoder: (readers: (() => unknown)[]) => () => unknown;
                buildVectorDecoder: (
                    elemReader: () => unknown,
                    kind?: string,
                ) => () => unknown;
                bulkDecodeBool: (n: number) => boolean[];
                bulkDecodeU16: (n: number) => number[];
                bulkDecodeU32: (n: number) => number[];
                bulkDecodeU64: (n: number) => string[];
                bulkDecodeU8: (n: number) => number[];
                data: Uint8Array<ArrayBufferLike>;
                decodeBool: () => boolean;
                decodeByteVector: () => Uint8Array;
                decodeFixedBytes: (size: number) => Uint8Array;
                decodeString: () => string;
                decodeU128: () => string;
                decodeU16: () => number;
                decodeU256: () => string;
                decodeU32: () => number;
                decodeU64: () => string;
                decodeU8: () => number;
                init: (data: Uint8Array) => void;
                offset: number;
                readUleb: () => number;
            };
            encoder?: {
                buildEnumEncoder: (
                    variantKeys: string[],
                    variantWriters: (((v: unknown) => void) | null)[],
                ) => (v: unknown) => void;
                buildFixedArrayEncoder: (
                    len: number,
                    elemWriter: (v: unknown) => void,
                    kind?: string,
                ) => (v: unknown) => void;
                buildMapEncoder: (
                    keyWriter: (v: unknown) => void,
                    valueWriter: (v: unknown) => void,
                ) => (v: unknown) => void;
                buildOptionEncoder: (
                    innerWriter: (v: unknown) => void,
                ) => (v: unknown) => void;
                buildStructEncoder: (
                    keys: string[],
                    writers: ((v: unknown) => void)[],
                ) => (v: unknown) => void;
                buildTupleEncoder: (
                    writers: ((v: unknown) => void)[],
                ) => (v: unknown) => void;
                buildVectorEncoder: (
                    elemWriter: (v: unknown) => void,
                    kind?: string,
                ) => (v: unknown) => void;
                bulkEncodeBool: (a: boolean[]) => void;
                bulkEncodeU16: (a: number[]) => void;
                bulkEncodeU32: (a: number[]) => void;
                bulkEncodeU64: (a: (string | number | bigint)[]) => void;
                bulkEncodeU8: (a: number[] | Uint8Array<ArrayBufferLike>) => void;
                encodeBool: (v: boolean) => void;
                encodeByteVector: (v: Iterable<number>) => void;
                encodeFixedBytes: (v: Iterable<number>, size: number) => void;
                encodeString: (v: string) => void;
                encodeU128: (v: string | number | bigint) => void;
                encodeU16: (v: number) => void;
                encodeU256: (v: string | number | bigint) => void;
                encodeU32: (v: number) => void;
                encodeU64: (v: string | number | bigint) => void;
                encodeU8: (v: number) => void;
                ensure: (n: number) => void;
                fastSerialize: (
                    writeFn: (value: unknown) => void,
                    value: unknown,
                ) => Uint8Array<ArrayBuffer>;
                getEncodeResult: () => Uint8Array<ArrayBuffer>;
                initEncode: () => void;
                offset: number;
                writeRawBytes: (bytes: Uint8Array) => void;
                writeUleb: (n: number) => void;
            };
        }

      Returns BcsStruct<T, Name>

    Properties

    _codec: {
        kind?: string;
        read: () => {
            [K in string
            | number
            | symbol]: T[K] extends BcsType<U, any, string> ? U : never
        };
        write: (
            value: {
                [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                    ? U
                    : never
            },
        ) => void;
    }

    Internal codec holding the fast read/write closures and an optional kind tag used by bulk encoder/decoder dispatch.

    $inferInput: {
        [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
            ? U
            : never
    }
    $inferType: {
        [K in string | number | symbol]: T[K] extends BcsType<U, any, string>
            ? U
            : never
    }
    name: Name
    serialize: (
        value: {
            [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                ? U
                : never
        },
        options?: BcsWriterOptions,
    ) => SerializedBcs<
        {
            [K in string
            | number
            | symbol]: T[K] extends BcsType<U, any, string> ? U : never
        },
        {
            [K in string
            | number
            | symbol]: T[K] extends BcsType<any, U, string> ? U : never
        },
    >
    serializedSize: (
        value: {
            [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                ? U
                : never
        },
        options?: BcsWriterOptions,
    ) => number | null
    validate: (
        value: {
            [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                ? U
                : never
        },
    ) => void

    Methods

    • Parameters

      • b58: string

      Returns {
          [K in string | number | symbol]: T[K] extends BcsType<U, any, string>
              ? U
              : never
      }

    • Parameters

      • b64: string

      Returns {
          [K in string | number | symbol]: T[K] extends BcsType<U, any, string>
              ? U
              : never
      }

    • Parameters

      • hex: string

      Returns {
          [K in string | number | symbol]: T[K] extends BcsType<U, any, string>
              ? U
              : never
      }

    • Parameters

      • bytes: Uint8Array

      Returns {
          [K in string | number | symbol]: T[K] extends BcsType<U, any, string>
              ? U
              : never
      }

    • Decode from a BcsReader. Syncs the singleton decoder to the reader's state, runs the fast decode path, then syncs the position back. For the common case, use parse() instead.

      Parameters

      Returns {
          [K in string | number | symbol]: T[K] extends BcsType<U, any, string>
              ? U
              : never
      }

    • Parameters

      • value: {
            [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                ? U
                : never
        }

      Returns string

    • Parameters

      • value: {
            [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                ? U
                : never
        }

      Returns string

    • Parameters

      • value: {
            [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                ? U
                : never
        }

      Returns Uint8Array<ArrayBuffer>

    • Parameters

      • value: {
            [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                ? U
                : never
        }

      Returns string

    • Type Parameters

      • T2 = {
            [K in string | number | symbol]: T[K] extends BcsType<U, any, string>
                ? U
                : never
        }
      • Input2 = {
            [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                ? U
                : never
        }
      • NewName extends string = Name

      Parameters

      • __namedParameters: {
            input?: (
                val: Input2,
            ) => {
                [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                    ? U
                    : never
            };
            output?: (
                value: {
                    [K in string | number | symbol]: T[K] extends BcsType<U, any, string>
                        ? U
                        : never
                },
            ) => T2;
        } & BcsTypeOptions<T2, Input2, NewName>

      Returns BcsType<T2, Input2, NewName>

    • Parameters

      • value: {
            [K in string | number | symbol]: T[K] extends BcsType<any, U, string>
                ? U
                : never
        }
      • Optional_writer: BcsWriter

      Returns void