UNPKG

zebec-instant-card-sdk

Version:

An sdk for interacting with zebec instant card program in solana.

136 lines (135 loc) 7.27 kB
/// <reference types="bn.js" /> /// <reference types="@coral-xyz/anchor/node_modules/@solana/web3.js" /> import { BN, Program } from "@coral-xyz/anchor"; import { PublicKey, TransactionInstruction } from "@solana/web3.js"; import { ZebecCardContract } from "./idl"; type CardType = "reloadable" | "non_reloadable"; /** * Data required while depositing */ export type DepositInstructionData = { amount: BN; sourceTokenAddress?: PublicKey; }; export type ParsedFeeTier = { minAmount: BN; maxAmount: BN; fee: BN; }; export type ParsedTokenFeeStruct = { tokenAddress: PublicKey; fee: BN; }; export type ParsedTokenFeeList = ParsedTokenFeeStruct[]; export type InitCardConfigInstructionData = { cardVault: PublicKey; revenueVault: PublicKey; commissionVault: PublicKey; revenueFee: BN; nativeFee: BN; nonNativeFee: BN; maxCardAmount: BN; minCardAmount: BN; dailyCardPurchaseLimit: BN; feeTiers: ParsedFeeTier[]; }; export type SetCardConfigInstructionData = { newZicOwner: PublicKey; cardVault: PublicKey; revenueVault: PublicKey; commissionVault: PublicKey; revenueFee: BN; nativeFee: BN; nonNativeFee: BN; maxCardAmount: BN; minCardAmount: BN; dailyCardPurchaseLimit: BN; feeTiers: ParsedFeeTier[]; }; export type BuyPrepaidDigitalCardInstructionData = { amount: BN; cardType: CardType; index: BN; }; export type BuyCardDirectInstructionData = { amount: BN; cardType: CardType; index: BN; sourceTokenAddress?: PublicKey; }; export type BuyCardBotInstructionData = { amount: BN; sourceTokenAddress: PublicKey; userId: string; cardType: CardType; }; export type InitBotConfigData = { botAdmin: PublicKey; }; export type IntiBotPdaData = { userId: string; }; export type SetBotAdminData = { newAdmin: PublicKey; }; export type ParsedCardConfigInfo = { index: BN; zicOwner: PublicKey; nativeFee: BN; nonNativeFee: BN; revenueFee: BN; usdcMint: PublicKey; revenueVault: PublicKey; commissionVault: PublicKey; cardVault: PublicKey; totalBought: BN; dailyCardBuyLimit: BN; providerConfig: ParsedProviderConfig; }; export type ParsedProviderConfig = { minCardAmount: BN; maxCardAmount: BN; feeTiers: { tiers: ParsedFeeTier[]; }; }; export type IntiOnRampUserCustodyData = { userId: string; }; export type InitOnRampInstructionData = { admin: PublicKey; zbcnToken: PublicKey; }; export type SetOnRampAdminInstructionData = { newAdmin: PublicKey; }; export type OnRampTransferZbcnInstructionData = { amount: BN; userId: string; }; /** * Zebec Card Instruction Factory */ export declare class ZebecCardInstructions { readonly cardProgram: Program<ZebecCardContract>; constructor(cardProgram: Program<ZebecCardContract>); getInitCardConfigsInstruction(cardPda: PublicKey, usdcToken: PublicKey, zicOwner: PublicKey, data: InitCardConfigInstructionData): Promise<TransactionInstruction>; getDepositInstruction(cardPda: PublicKey, feeMapPda: PublicKey, tokenMint: PublicKey, user: PublicKey, userAta: PublicKey, userVault: PublicKey, userVaultAta: PublicKey, userPurchaseRecord: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, data: DepositInstructionData): Promise<TransactionInstruction>; getSetCardConfigsInstruction(cardPda: PublicKey, zicOwner: PublicKey, data: SetCardConfigInstructionData): Promise<TransactionInstruction>; getWithdrawInstruction(user: PublicKey, tokenMint: PublicKey, userAta: PublicKey, userVault: PublicKey, userVaultAta: PublicKey, userPurchaseRecord: PublicKey, amount: BN): Promise<TransactionInstruction>; getBuyPrepaidDigitalCardInstruction(buyerPda: PublicKey, cardPda: PublicKey, cardVault: PublicKey, cardVaultAta: PublicKey, commissionVault: PublicKey, commissionVaultAta: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, usdcToken: PublicKey, user: PublicKey, userVault: PublicKey, userVaultAta: PublicKey, userPurchaseRecord: PublicKey, buyCardData: BuyPrepaidDigitalCardInstructionData): Promise<TransactionInstruction>; getGenerateYieldInstruction(user: PublicKey, userVault: PublicKey, userPurchaseRecord: PublicKey, userVaultAta: PublicKey, tokenMint: PublicKey, flexlendUserAccount: PublicKey, flexlendUserAta: PublicKey, promotionReservePda: PublicKey, reserveAdmin: PublicKey, amount: BN): Promise<TransactionInstruction>; getWithdrawYieldInstruction(user: PublicKey, userPurchaseRecord: PublicKey, userVault: PublicKey, userVaultAta: PublicKey, tokenMint: PublicKey, flexlendUserAccount: PublicKey, flexlendUserAta: PublicKey, promotionReserve: PublicKey, amount: BN, withdrawAll: boolean): Promise<TransactionInstruction>; getBuyCardDirectInstruction(buyerPda: PublicKey, cardPda: PublicKey, cardVault: PublicKey, cardVaultAta: PublicKey, feeMapPda: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, usdcToken: PublicKey, user: PublicKey, userAta: PublicKey, userPurchaseRecord: PublicKey, buyCardData: BuyCardDirectInstructionData): Promise<TransactionInstruction>; getSetCustomFeesInstruction(cardPda: PublicKey, feeMapPda: PublicKey, zicOwner: PublicKey, tokenFeeList: ParsedTokenFeeList): Promise<TransactionInstruction>; getDeleteCustomFeesInstruction(cardPda: PublicKey, feeMapPda: PublicKey, zicOwner: PublicKey, tokenFeeList: PublicKey[]): Promise<TransactionInstruction>; getInitBotConfigInstruction(cardBotConfig: PublicKey, cardPda: PublicKey, zicOwner: PublicKey, data: InitBotConfigData): Promise<TransactionInstruction>; getSetBotAdminInstruction(cardBotConfig: PublicKey, cardPda: PublicKey, zicOwner: PublicKey, data: SetBotAdminData): Promise<TransactionInstruction>; getInitBotUserCustodyInstruction(botAdmin: PublicKey, cardBotConfig: PublicKey, usdcToken: PublicKey, userCustody: PublicKey, userCustodyAta: PublicKey, data: IntiBotPdaData): Promise<TransactionInstruction>; getBuyCardBotInstruction(botAdmin: PublicKey, cardBotConfig: PublicKey, cardPda: PublicKey, cardVault: PublicKey, cardVaultAta: PublicKey, feeMapPda: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, usdcToken: PublicKey, userCustody: PublicKey, userCustodyAta: PublicKey, buyCardData: BuyCardBotInstructionData): Promise<TransactionInstruction>; getInitOnRampInstruction(zicOwner: PublicKey, cardConfig: PublicKey, onRampConfig: PublicKey, data: InitOnRampInstructionData): Promise<TransactionInstruction>; getInitOnRampUserCustodyInstruction(admin: PublicKey, onRampConfig: PublicKey, onRampUserCustody: PublicKey, onRampUserCustodyZbcnAccount: PublicKey, zbcnToken: PublicKey, data: IntiOnRampUserCustodyData): Promise<TransactionInstruction>; getSetOnRampAdminInstruction(cardConfig: PublicKey, onRampConfig: PublicKey, zicOwner: PublicKey, data: SetOnRampAdminInstructionData): Promise<TransactionInstruction>; getOnRampTransferZbcnInstruction(onRampAdmin: PublicKey, onRampConfig: PublicKey, onRampUserCustody: PublicKey, onRampUserCustodyZbcnAccount: PublicKey, receiverAccount: PublicKey, receiverZbcnAccount: PublicKey, zbcnToken: PublicKey, data: OnRampTransferZbcnInstructionData): Promise<TransactionInstruction>; } export {};