UNPKG

@saberhq/token-utils

Version:

Token-related math and transaction utilities for Solana.

67 lines 1.9 kB
/// <reference types="node" /> import type { Layout } from "@solana/buffer-layout"; import * as BufferLayout from "@solana/buffer-layout"; import type { AccountInfo, MintInfo } from "@solana/spl-token"; export { Layout as TypedLayout, Structure as TypedStructure, } from "@solana/buffer-layout"; /** * Typed struct buffer layout * @param fields * @param property * @param decodePrefixes * @returns */ export declare const structLayout: <T>(fields: Layout<T[keyof T]>[], property?: string | undefined, decodePrefixes?: boolean | undefined) => BufferLayout.Structure<T>; /** * Layout for a public key */ export declare const PublicKeyLayout: (property?: string) => BufferLayout.Blob; /** * Layout for a 64bit unsigned value */ export declare const Uint64Layout: (property?: string) => BufferLayout.Blob; /** * Layout for a TokenAccount. */ export declare const TokenAccountLayout: Layout<{ mint: Buffer; owner: Buffer; amount: Buffer; delegateOption: number; delegate: Buffer; state: number; delegatedAmount: Buffer; isNativeOption: number; isNative: Buffer; closeAuthorityOption: number; closeAuthority: Buffer; }>; /** * Layout for a Mint. */ export declare const MintLayout: Layout<{ mintAuthorityOption: number; mintAuthority: Buffer; supply: Buffer; decimals: number; isInitialized: number; freezeAuthorityOption: number; freezeAuthority: Buffer; }>; /** * Data in an SPL token account. */ export type TokenAccountData = Omit<AccountInfo, "address">; /** * Deserializes a token account. * @param address * @param data * @returns */ export declare const deserializeAccount: (data: Buffer) => TokenAccountData; /** * Deserialize a {@link Buffer} into a {@link MintInfo}. * @param data * @returns */ export declare const deserializeMint: (data: Buffer) => MintInfo; //# sourceMappingURL=layout.d.ts.map