@saberhq/token-utils
Version:
Token-related math and transaction utilities for Solana.
67 lines • 1.9 kB
TypeScript
/// <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