2023-01-15 05:15:35 -08:00
|
|
|
import { AccountInfo, PublicKey, TransactionInstruction } from '@solana/web3.js'
|
2022-07-10 19:01:16 -07:00
|
|
|
|
2022-11-18 11:11:06 -08:00
|
|
|
export declare type SideType = typeof Side.Ask | typeof Side.Bid
|
|
|
|
export declare const Side: {
|
|
|
|
Bid: {
|
2023-01-12 13:22:46 -08:00
|
|
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
2022-11-18 11:11:06 -08:00
|
|
|
bid: {}
|
|
|
|
}
|
|
|
|
Ask: {
|
2023-01-12 13:22:46 -08:00
|
|
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
2022-11-18 11:11:06 -08:00
|
|
|
ask: {}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface QuoteParams {
|
|
|
|
sourceMint: string
|
|
|
|
destinationMint: string
|
|
|
|
amount: number
|
|
|
|
swapMode: SwapMode
|
|
|
|
}
|
|
|
|
export declare type TokenMintAddress = string
|
|
|
|
export interface Quote {
|
|
|
|
notEnoughLiquidity: boolean
|
|
|
|
minInAmount?: number
|
|
|
|
minOutAmount?: number
|
|
|
|
inAmount: number
|
|
|
|
outAmount: number
|
|
|
|
feeAmount: number
|
|
|
|
feeMint: TokenMintAddress
|
|
|
|
feePct: number
|
|
|
|
priceImpactPct: number
|
|
|
|
}
|
|
|
|
export declare type QuoteMintToReferrer = Map<TokenMintAddress, string>
|
|
|
|
export interface SwapParams {
|
|
|
|
sourceMint: string
|
|
|
|
destinationMint: string
|
|
|
|
userSourceTokenAccount: string
|
|
|
|
userDestinationTokenAccount: string
|
|
|
|
userTransferAuthority: string
|
|
|
|
/**
|
|
|
|
* amount is used for instruction and can be null when it is an intermediate swap, only the first swap has an amount
|
|
|
|
*/
|
|
|
|
amount: number
|
|
|
|
swapMode: SwapMode
|
|
|
|
openOrdersAddress?: string
|
|
|
|
quoteMintToReferrer?: QuoteMintToReferrer
|
|
|
|
}
|
|
|
|
export declare type PlatformFee = {
|
|
|
|
feeBps: number
|
|
|
|
feeAccount: string
|
|
|
|
}
|
|
|
|
export interface ExactOutSwapParams extends SwapParams {
|
|
|
|
inAmount: number
|
|
|
|
slippageBps: number
|
|
|
|
platformFee?: PlatformFee
|
|
|
|
overflowFeeAccount?: string
|
|
|
|
}
|
|
|
|
export declare type AccountInfoMap = Map<string, AccountInfo<Buffer> | null>
|
|
|
|
|
2023-01-12 13:22:46 -08:00
|
|
|
export declare type AmmLabel =
|
2022-11-18 11:11:06 -08:00
|
|
|
| 'Aldrin'
|
|
|
|
| 'Crema'
|
|
|
|
| 'Cropper'
|
|
|
|
| 'Cykura'
|
|
|
|
| 'DeltaFi'
|
|
|
|
| 'GooseFX'
|
|
|
|
| 'Invariant'
|
|
|
|
| 'Lifinity'
|
|
|
|
| 'Lifinity V2'
|
|
|
|
| 'Marinade'
|
|
|
|
| 'Mercurial'
|
|
|
|
| 'Meteora'
|
|
|
|
| 'Raydium'
|
|
|
|
| 'Raydium CLMM'
|
|
|
|
| 'Saber'
|
|
|
|
| 'Serum'
|
|
|
|
| 'Orca'
|
|
|
|
| 'Step'
|
|
|
|
| 'Penguin'
|
|
|
|
| 'Saros'
|
|
|
|
| 'Stepn'
|
|
|
|
| 'Orca (Whirlpools)'
|
|
|
|
| 'Sencha'
|
|
|
|
| 'Saber (Decimals)'
|
|
|
|
| 'Dradex'
|
|
|
|
| 'Balansol'
|
|
|
|
| 'Openbook'
|
|
|
|
| 'Unknown'
|
|
|
|
|
|
|
|
export interface TransactionFeeInfo {
|
|
|
|
signatureFee: number
|
|
|
|
openOrdersDeposits: number[]
|
|
|
|
ataDeposits: number[]
|
|
|
|
totalFeeAndDeposits: number
|
|
|
|
minimumSOLForTransaction: number
|
|
|
|
}
|
|
|
|
|
|
|
|
export declare enum SwapMode {
|
|
|
|
ExactIn = 'ExactIn',
|
|
|
|
ExactOut = 'ExactOut',
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface Fee {
|
|
|
|
amount: number
|
|
|
|
mint: string
|
|
|
|
pct: number
|
|
|
|
}
|
|
|
|
|
2023-10-16 21:12:46 -07:00
|
|
|
export interface JupiterV6RouteInfo {
|
|
|
|
inputMint: string
|
2022-11-18 11:11:06 -08:00
|
|
|
inAmount: number
|
2023-10-16 21:12:46 -07:00
|
|
|
outputMint: string
|
2022-11-18 11:11:06 -08:00
|
|
|
outAmount: number
|
2023-10-16 21:12:46 -07:00
|
|
|
otherAmountThreshold: number
|
2022-11-18 11:11:06 -08:00
|
|
|
swapMode: SwapMode
|
2023-10-16 21:12:46 -07:00
|
|
|
slippageBps: number
|
|
|
|
platformFee?: {
|
|
|
|
amount: string
|
|
|
|
feeBps: number
|
|
|
|
}
|
|
|
|
priceImpactPct: number
|
|
|
|
routePlan: JupiterV6RoutePlan[]
|
|
|
|
contextSlot?: number
|
|
|
|
timeTaken?: number
|
2023-10-17 16:24:40 -07:00
|
|
|
error?: string
|
2022-11-18 11:11:06 -08:00
|
|
|
}
|
|
|
|
|
2023-10-16 21:12:46 -07:00
|
|
|
export interface JupiterV6RoutePlan {
|
|
|
|
swapInfo: {
|
|
|
|
ammKey: string
|
|
|
|
label?: string
|
|
|
|
inputMint: string
|
|
|
|
outputMint: string
|
|
|
|
inAmount: number
|
|
|
|
outAmount: number
|
|
|
|
feeAmount: number
|
|
|
|
feeMint: string
|
|
|
|
}
|
|
|
|
percent: number
|
2022-07-10 19:01:16 -07:00
|
|
|
}
|
2022-07-11 20:00:22 -07:00
|
|
|
|
2023-02-25 16:22:39 -08:00
|
|
|
export type Token = {
|
|
|
|
address: string
|
|
|
|
chainId: number
|
|
|
|
decimals: number
|
|
|
|
name: string
|
|
|
|
symbol: string
|
|
|
|
logoURI: string
|
|
|
|
extensions: {
|
|
|
|
coingeckoId?: string
|
2022-08-02 11:04:00 -07:00
|
|
|
}
|
2023-02-25 16:22:39 -08:00
|
|
|
tags: string[]
|
2022-07-11 20:00:22 -07:00
|
|
|
}
|