add redirects
This commit is contained in:
@@ -195,6 +195,136 @@ export async function getTokensList(): Promise<TokenInfo[]> {
|
||||
return res.data
|
||||
}
|
||||
|
||||
export interface JumperToken {
|
||||
address: string
|
||||
chainId: number
|
||||
symbol: string
|
||||
decimals: number
|
||||
name: string
|
||||
coinKey?: string
|
||||
logoURI?: string
|
||||
priceUSD: string
|
||||
}
|
||||
|
||||
export type JumperTokensMap = Record<string, JumperToken[]>
|
||||
|
||||
export async function getJumperTokens(): Promise<JumperTokensMap> {
|
||||
const res = await walletGet<{ tokens?: JumperTokensMap; data?: { tokens: JumperTokensMap } }>(
|
||||
'/api/jumper/tokens?chains=1,56,1151111081099710,728126428,20000000000001'
|
||||
)
|
||||
return res.data?.tokens ?? res.tokens ?? {}
|
||||
}
|
||||
|
||||
export interface JumperQuotePayload {
|
||||
fromChain: string
|
||||
toChain: string
|
||||
fromToken: string
|
||||
toToken: string
|
||||
fromAmount: string
|
||||
fromAddress: string
|
||||
toAddress: string
|
||||
slippage: number
|
||||
}
|
||||
|
||||
export interface JumperQuoteToken {
|
||||
address: string
|
||||
chainId: number
|
||||
symbol: string
|
||||
decimals: number
|
||||
name: string
|
||||
logoURI?: string
|
||||
priceUSD: string
|
||||
}
|
||||
|
||||
export interface JumperFeeCost {
|
||||
name: string
|
||||
description?: string
|
||||
token: JumperQuoteToken
|
||||
amount: string
|
||||
amountUSD: string
|
||||
percentage?: string
|
||||
included?: boolean
|
||||
}
|
||||
|
||||
export interface JumperQuote {
|
||||
type: string
|
||||
id: string
|
||||
tool: string
|
||||
toolDetails: { key: string; name: string; logoURI?: string }
|
||||
action: {
|
||||
fromToken: JumperQuoteToken
|
||||
fromAmount: string
|
||||
toToken: JumperQuoteToken
|
||||
fromChainId: number
|
||||
toChainId: number
|
||||
slippage: number
|
||||
fromAddress: string
|
||||
toAddress: string
|
||||
}
|
||||
estimate: {
|
||||
tool: string
|
||||
approvalAddress?: string
|
||||
toAmountMin: string
|
||||
toAmount: string
|
||||
fromAmount: string
|
||||
feeCosts?: JumperFeeCost[]
|
||||
}
|
||||
}
|
||||
|
||||
export async function getJumperQuote(payload: JumperQuotePayload): Promise<JumperQuote> {
|
||||
const qs = new URLSearchParams({
|
||||
fromChain: payload.fromChain,
|
||||
toChain: payload.toChain,
|
||||
fromToken: payload.fromToken,
|
||||
toToken: payload.toToken,
|
||||
fromAmount: payload.fromAmount,
|
||||
fromAddress: payload.fromAddress,
|
||||
toAddress: payload.toAddress,
|
||||
slippage: String(payload.slippage),
|
||||
}).toString()
|
||||
const res = await walletGet<{ body?: JumperQuote; data?: { body?: JumperQuote } }>(
|
||||
`/api/jumper/quote-best?${qs}`
|
||||
)
|
||||
return (res.data?.body ?? res.body) as JumperQuote
|
||||
}
|
||||
|
||||
export interface BridgeExecutePayload {
|
||||
provider: string
|
||||
fromChain: number
|
||||
toChain: number
|
||||
fromToken: string
|
||||
toToken: string
|
||||
fromAmount: string
|
||||
fromAddress: string
|
||||
toAddress: string
|
||||
acceptedMinOut?: string
|
||||
}
|
||||
|
||||
export interface BridgeExecuteResult {
|
||||
provider: string
|
||||
fromChain: number
|
||||
toChain: number
|
||||
toolName: string
|
||||
feeTxid?: string
|
||||
feeAmount?: string
|
||||
bridgeTxid: string
|
||||
fromAmount: string
|
||||
toAmountMin: string
|
||||
fromAmountUSD?: string
|
||||
toAmountUSD?: string
|
||||
trackerUrl?: string
|
||||
}
|
||||
|
||||
export async function executeBridge(payload: BridgeExecutePayload): Promise<BridgeExecuteResult> {
|
||||
const res = await walletPost<{ data?: { success: boolean; data: BridgeExecuteResult } }>(
|
||||
'/api/bridge/execute',
|
||||
payload,
|
||||
true,
|
||||
{ 'Idempotency-Key': crypto.randomUUID() }
|
||||
)
|
||||
return (res.data?.data ?? res) as BridgeExecuteResult
|
||||
}
|
||||
|
||||
export async function getRelayQuote(payload: RelayQuotePayload): Promise<RelayQuoteResponse> {
|
||||
return walletPost<RelayQuoteResponse>('/api/relay/quote', payload)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user