UNPKG

@frakters/nft-lending-v2

Version:

Client library for interacting with nft lenging solana program

202 lines (201 loc) 8.1 kB
/// <reference types="node" /> import { TransactionInstruction, PublicKey } from '@solana/web3.js'; import * as Borsh from './utils/borsh'; import BN from 'bn.js'; export declare const toPublicKey: (key: string | PublicKey) => PublicKey; export declare type StringPublicKey = string; export declare const findProgramAddress: (seeds: (Buffer | Uint8Array)[], programId: PublicKey) => Promise<[PublicKey, number]>; export declare const VAULT_PREFIX = "vault"; export declare enum VaultKey { Uninitialized = 0, VaultV1 = 3, SafetyDepositBoxV1 = 1, ExternalPriceAccountV1 = 2, AuctionV1 = 4, BidV1 = 5, PoolWhitelistV1 = 6 } export declare enum WhitelistType { CreatorWhitelist = 0, SingleNFTWhitelist = 1 } export declare enum VaultState { Inactive = 0, Active = 1, Combined = 2, Deactivated = 3, AuctionStarted = 4 } export declare const MAX_VAULT_SIZE: number; export declare const MAX_SAFETY_DEPOSIT_SIZE: number; export declare const MAX_AUCTION_SIZE: number; export declare const MAX_BID_SIZE: number; export declare const MAX_POOL_WHITELIST_SIZE: number; export declare const MAX_EXTERNAL_ACCOUNT_SIZE: number; export declare class Vault { key: VaultKey; tokenProgram: StringPublicKey; fractionMint: StringPublicKey; authority: StringPublicKey; fractionTreasury: StringPublicKey; redeemTreasury: StringPublicKey; allowFurtherShareCreation: boolean; pricingLookupAddress: StringPublicKey; priceMint: StringPublicKey; fractionsSupply: BN; createdAt: number; tokenTypeCount: number; state: VaultState; lockedPricePerShare: BN; constructor(args: { tokenProgram: StringPublicKey; fractionMint: StringPublicKey; authority: StringPublicKey; fractionTreasury: StringPublicKey; redeemTreasury: StringPublicKey; allowFurtherShareCreation: boolean; pricingLookupAddress: StringPublicKey; priceMint: StringPublicKey; fractionsSupply: BN; tokenTypeCount: number; state: VaultState; lockedPricePerShare: BN; }); } export declare class SafetyDepositBox { key: VaultKey; vault: StringPublicKey; tokenMint: StringPublicKey; store: StringPublicKey; order: number; constructor(args: { vault: StringPublicKey; tokenMint: StringPublicKey; store: StringPublicKey; order: number; }); } export declare class ExternalPriceAccount { key: VaultKey; pricePerShare: BN; priceMint: StringPublicKey; allowedToCombine: boolean; constructor(args: { pricePerShare: BN; priceMint: StringPublicKey; allowedToCombine: boolean; }); } export declare class Auction { key: VaultKey; vault: StringPublicKey; current_winning_bid: StringPublicKey; version: BN; started_at: number; ending_at: number; end_auction_gap: number; min_tick_size: BN; is_started: boolean; is_enabled: boolean; total_uncancelled_bids: number; gap_tick_size_percentage: number; instant_sale_price: BN; constructor(args: { vault: StringPublicKey; current_winning_bid: StringPublicKey; version: BN; started_at: number; ending_at: number; end_auction_gap: number; min_tick_size: BN; is_started: boolean; is_enabled: boolean; total_uncancelled_bids: number; gap_tick_size_percentage: number; instant_sale_price: BN; }); } export declare const VAULT_SCHEMA: Map<any, any>; export declare const decodePoolWhitelist: (buffer: Buffer) => any; export declare const decodeBid: (buffer: Buffer) => any; export declare const decodeAuction: (buffer: Buffer) => any; export declare const decodeVault: (buffer: Buffer) => any; export declare const decodeExternalPriceAccount: (buffer: Buffer) => ExternalPriceAccount; export declare const decodeSafetyDeposit: (buffer: Buffer) => SafetyDepositBox; export declare function depositNFT(poolWhitelist: StringPublicKey, userNftTokenAccount: StringPublicKey, nftMint: StringPublicKey, store: StringPublicKey, userPubkey: StringPublicKey, transfer_authority_info: StringPublicKey, fractionalTreasury: StringPublicKey, fractionMint: StringPublicKey, userFractionsTokenAccount: StringPublicKey, vault: StringPublicKey, instructions: TransactionInstruction[], vaultProgramId: PublicKey): Promise<void>; export declare function withdrawNFT(userPubkey: StringPublicKey, userNftTokenAccount: StringPublicKey, nftMint: StringPublicKey, store: StringPublicKey, fractions_transfer_authority_info: StringPublicKey, fractionalTreasury: StringPublicKey, fractionMint: StringPublicKey, userFractionsTokenAccount: StringPublicKey, vault: StringPublicKey, instructions: TransactionInstruction[], vaultProgramId: PublicKey): Promise<void>; export declare function initVault(allowFurtherShareCreation: boolean, fractionalMint: StringPublicKey, priceMint: StringPublicKey, redeemTreasury: StringPublicKey, fractionalTreasury: StringPublicKey, vault: StringPublicKey, vaultAuthority: StringPublicKey, instructions: TransactionInstruction[], vaultProgramId: PublicKey): Promise<void>; export declare function addToWhitelist(is_creator: boolean, userPubkey: StringPublicKey, whitelisted_address: StringPublicKey, whitelist_info: StringPublicKey, vault: StringPublicKey, instructions: TransactionInstruction[], vaultProgramId: StringPublicKey): Promise<void>; export declare function getSafetyDepositBox(vault: StringPublicKey, tokenMint: StringPublicKey, vaultProgramId: PublicKey): Promise<StringPublicKey>; export declare function activateVault(vault: StringPublicKey, adminPubkey: StringPublicKey, vaultAuthority: StringPublicKey, instructions: TransactionInstruction[], vaultProgramId: PublicKey): Promise<void>; export declare function getSafetyDepositBoxAddress(vault: StringPublicKey, tokenMint: StringPublicKey, vaultProgramId: PublicKey): Promise<StringPublicKey>; declare type Args = { tokenProgram: StringPublicKey; fractionMint: StringPublicKey; authority: StringPublicKey; fractionTreasury: StringPublicKey; redeemTreasury: StringPublicKey; allowFurtherShareCreation: boolean; pricingLookupAddress: StringPublicKey; priceMintAddress: StringPublicKey; fractionsSupply: number; createdAt: number; tokenTypeCount: number; state: VaultState; lockedPricePerShare: BN; }; export declare class VaultData extends Borsh.Data<Args> { static readonly SCHEMA: Map<any, any>; key: VaultKey; tokenProgram: StringPublicKey; fractionMint: StringPublicKey; authority: StringPublicKey; fractionTreasury: StringPublicKey; redeemTreasury: StringPublicKey; allowFurtherShareCreation: boolean; pricingLookupAddress: StringPublicKey; priceMintAddress: StringPublicKey; fractionsSupply: number; createdAt: number; tokenTypeCount: number; state: VaultState; lockedPricePerShare: BN; constructor(args: Args); } export declare class AuctionData extends Borsh.Data<Args> { static readonly SCHEMA: Map<any, any>; key: VaultKey; vault: StringPublicKey; current_winning_bid: StringPublicKey; version: BN; started_at: number; ending_at: number; end_auction_gap: number; min_tick_size: BN; is_started: boolean; is_enabled: boolean; total_uncancelled_bids: number; gap_tick_size_percentage: number; instant_sale_price: BN; constructor(args: Args); } export declare class BidData extends Borsh.Data<Args> { static readonly SCHEMA: Map<any, any>; key: VaultKey; auction: StringPublicKey; bidder: StringPublicKey; bid_amount_per_share: BN; version: BN; placed_at: number; is_canceled: boolean; constructor(args: Args); } export declare class PoolWhitelistData extends Borsh.Data<Args> { static readonly SCHEMA: Map<any, any>; key: VaultKey; vault: StringPublicKey; whitelisted_address: StringPublicKey; whitelist_type: WhitelistType; constructor(args: Args); } export {};