mango-v4-ui/types/jupiter.ts

154 lines
3.1 KiB
TypeScript
Raw Normal View History

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: {
// eslint-disable-next-line @typescript-eslint/ban-types
2022-11-18 11:11:06 -08:00
bid: {}
}
Ask: {
// 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>
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
}
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
}
tags: string[]
}