@debridge-finance/solana-utils
Version:
Common utils package to power communication with Solana contracts at deBridge
78 lines • 5.42 kB
TypeScript
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