import type { AugmentedProvider, TransactionEnvelope } from "@saberhq/solana-contrib"; import type { TokenAmount, u64 } from "@saberhq/token-utils"; import type { AccountInfo, PublicKey } from "@solana/web3.js"; import { Keypair } from "@solana/web3.js"; import type { TransfererData, TransferWrapperData, TransferWrapperProgram } from "../../programs/transferWrapper"; import type { QuarrySDK } from "../../sdk"; export declare class TransferWrapper { readonly sdk: QuarrySDK; readonly program: TransferWrapperProgram; constructor(sdk: QuarrySDK); get provider(): AugmentedProvider; newWrapper({ tokenMint, baseKP, tokenProgram, admin, payer, }: { tokenMint: PublicKey; baseKP?: Keypair; tokenProgram?: PublicKey; admin?: PublicKey; payer?: PublicKey; }): Promise; /** * Fetches info on a Transfer Wrapper. * @param wrapper * @returns */ fetchTransferWrapper(wrapper: PublicKey): Promise; /** * Fetches info on a transferer. * @param wrapper * @returns */ fetchTransferer(wrapper: PublicKey, authority: PublicKey): Promise; newTransferer(wrapper: PublicKey, authority: PublicKey): Promise; /** * Updates a transferer's allowance. * @param wrapper * @param allowance * @returns */ transfererUpdate(wrapper: PublicKey, authority: PublicKey, allowance: u64): Promise; /** * Updates a transferer's cap. * @param wrapper * @param cap * @returns */ updateCap(wrapper: PublicKey, cap: u64): Promise; /** * withdraw token * @param wrapper * @param dest * @returns */ withdraw(wrapper: PublicKey, dest: PublicKey): Promise; /** * Creates a new Transferer with an allowance. * @param wrapper * @param authority * @param allowance * @returns */ newTransfererWithAllowance(wrapper: PublicKey, authority: PublicKey, allowance: u64): Promise; transferAdmin(wrapper: PublicKey, nextAdmin: PublicKey): TransactionEnvelope; acceptAdmin(wrapper: PublicKey): TransactionEnvelope; /** * Transfer tokens to an address as a Transferer on the Transfer Wrapper. */ performTransferTo({ amount, transferWrapper, transfererAuthority, destOwner, }: { amount: TokenAmount; transferWrapper: PublicKey; transfererAuthority?: PublicKey; destOwner?: PublicKey; }): Promise; /** * Performs a transfer of tokens to an account. * @returns */ performTransfer({ amount, transferWrapper, transferer, }: { amount: TokenAmount; transferWrapper: PublicKey; transferer: { accountId: PublicKey; accountInfo: AccountInfo; }; }): Promise; } //# sourceMappingURL=transferWrapper.d.ts.map