UNPKG

@debridge-finance/solana-utils

Version:

Common utils package to power communication with Solana contracts at deBridge

78 lines 5.42 kB
import { Buffer } from "buffer"; import { PublicKey } from "@solana/web3.js"; import { BNable, SolanaPubkey } from "./interfaces"; import { Options as MemoizeOptions } from "micro-memoize"; export declare const TOKEN_2022_PROGRAM_ID: PublicKey; export declare const TOKEN_METADATA_PROGRAM_ID: PublicKey; export declare const TOKEN_PROGRAM_ID: PublicKey; export declare const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey; export declare const WRAPPED_SOL_MINT: PublicKey; export declare function findAssociatedTokenAddress(wallet: PublicKey, tokenMint: PublicKey, tokenProgramId?: PublicKey, associatedTokenProramId?: PublicKey): [PublicKey, number]; /** * @deprecated same as findAssociatedTokenAddress */ export declare function findAssociatedTokenAddressSync(wallet: PublicKey, tokenMint: PublicKey, tokenProgramId?: PublicKey, associatedTokenProramId?: PublicKey): [PublicKey, number]; export declare function getTokenMetadataAddress(tokenMint: PublicKey, tokenMetadataProgramId: PublicKey): [PublicKey, number]; type Head<T extends unknown[]> = T extends [...infer Head, unknown] ? Head : unknown[]; type EmptyTuple = []; type OmitLastParam<F> = F extends (...args: infer P) => infer Ret ? Head<P> extends EmptyTuple ? () => Ret : (...args: Head<P>) => Ret : never; type FnContainer = { [K: string]: AnyFn; }; type AnyFn = (...args: any[]) => any; type AccountResolver<T> = { readonly methods: { [K in keyof T]: OmitLastParam<T[K]>; }; }; type MemoizeParam<Obj, Keys extends keyof Obj = keyof Obj> = { [K in Keys]?: MemoizeOptions<AnyFn>; }; declare class Resolver<T extends FnContainer> implements AccountResolver<T> { readonly methods: AccountResolver<T>["methods"]; readonly programId: PublicKey; constructor(programId: SolanaPubkey, obj: T, memoizeList: MemoizeParam<T>); } declare class ResolverContainer2<R1 extends Resolver<FnContainer>, R2 extends Resolver<FnContainer>> { readonly methods: R1["methods"] & R2["methods"]; constructor(resolver1: R1, resolver2: R2); } export declare const DeBridgeResolver: (programId: SolanaPubkey, settingsProgramId: SolanaPubkey) => ResolverContainer2<Resolver<{ getClaimMarkerAddress: (DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number]; getExternalCallStorageAddress: (submissionId: Buffer, executorPubkey: SolanaPubkey, sourceChainId: BNable, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number]; getExternalCallMetaAddress: (externalCallStorage: SolanaPubkey, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number]; getNonceAddress: (DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number]; getSubmissionAddress: (submissionId: Buffer, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number]; getSubmissionAuthAddress: (submissionAddress: SolanaPubkey, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number]; getMintAuthorityAddress: (bridge: SolanaPubkey, DEBRIDGE_PROGRAM_ID: PublicKey) => [PublicKey, number]; }>, Resolver<{ getTokenMetadataMasterAddress: (SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getTokenMintAddress: (debridgeId: Buffer, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getStateAddress: (SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getConfirmationsStorageAddress: (message: Buffer, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getBridgeFeeAddress: (bridge: PublicKey, chainId: BNable, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getChainSupportInfoAddress: (chainId: BNable, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getDiscountInfoAddress: (user: PublicKey, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getBridgeAddress: (tokenMint: PublicKey, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getBridgeMapAddress: (bridgeId: Buffer, SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getNoDiscountAddress: (SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; getNoBridgeFeeAddress: (SETTINGS_PROGRAM_ID: PublicKey) => [PublicKey, number]; }>>; export declare const dlnSrcResolver: (programId: SolanaPubkey) => Resolver<{ getStateAccount: (DLN_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number]; getNonceAccount: (maker: PublicKey | Buffer, DLN_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number]; getGiveOrderStateAccount: (orderId: Buffer, DLN_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number]; getAuthorizedNativeSenderAddress: (chainId: Buffer, DLN_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number]; getGiveOrderWalletAddress: (orderId: Buffer, DLN_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number]; getFeeLedgerWalletAddress: (tokenMint: PublicKey, DLN_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number]; getFeeLedgerAddress: (DLN_SRC_PROGRAM_ID: PublicKey) => [PublicKey, number]; }>; export declare const dlnDstResolver: (programId: SolanaPubkey) => Resolver<{ getStateAddress: (DLN_DST_PROGRAM_ID: PublicKey) => [PublicKey, number]; getAuthorizedSrcContractAddress: (chainId: Buffer, DLN_DST_PROGRAM_ID: PublicKey) => [PublicKey, number]; getAuthorizedDstNativeSenderAddress: (DLN_DST_PROGRAM_ID: PublicKey) => [PublicKey, number]; getTakeOrderStateAddress: (orderId: Buffer, DLN_DST_PROGRAM_ID: PublicKey) => [PublicKey, number]; getTakePatchAddress: (orderId: Buffer, DLN_DST_PROGRAM_ID: PublicKey) => [PublicKey, number]; }>; export {}; //# sourceMappingURL=accounts.d.ts.map