add new swap url
This commit is contained in:
parent
ea8ab3bc0e
commit
bedc864717
|
@ -38,6 +38,7 @@ import useJupiterSwapData from './useJupiterSwapData'
|
|||
// import { Transaction } from '@solana/web3.js'
|
||||
import {
|
||||
JUPITER_V6_QUOTE_API_MAINNET,
|
||||
MANGO_ROUTER_API_URL,
|
||||
SOUND_SETTINGS_KEY,
|
||||
} from 'utils/constants'
|
||||
import useLocalStorageState from 'hooks/useLocalStorageState'
|
||||
|
@ -216,10 +217,15 @@ export const fetchJupiterTransaction = async (
|
|||
slippage: number,
|
||||
inputMint: PublicKey,
|
||||
outputMint: PublicKey,
|
||||
origin?: 'mango' | 'jupiter' | 'raydium',
|
||||
): Promise<[TransactionInstruction[], AddressLookupTableAccount[]]> => {
|
||||
// docs https://station.jup.ag/api-v6/post-swap
|
||||
const transactions = await (
|
||||
await fetch(`${JUPITER_V6_QUOTE_API_MAINNET}/swap`, {
|
||||
await fetch(
|
||||
`${
|
||||
origin === 'mango' ? MANGO_ROUTER_API_URL : JUPITER_V6_QUOTE_API_MAINNET
|
||||
}/swap`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
|
@ -232,7 +238,8 @@ export const fetchJupiterTransaction = async (
|
|||
slippageBps: Math.ceil(slippage * 100),
|
||||
wrapAndUnwrapSol: false,
|
||||
}),
|
||||
})
|
||||
},
|
||||
)
|
||||
).json()
|
||||
|
||||
const { swapTransaction } = transactions
|
||||
|
@ -451,6 +458,7 @@ const SwapReviewRouteInfo = ({
|
|||
slippage,
|
||||
inputBank.mint,
|
||||
outputBank.mint,
|
||||
selectedRoute.origin,
|
||||
)
|
||||
|
||||
try {
|
||||
|
|
|
@ -110,6 +110,7 @@ const fetchJupiterRoute = async (
|
|||
slippage,
|
||||
new PublicKey(inputMint),
|
||||
new PublicKey(outputMint),
|
||||
'jupiter',
|
||||
)
|
||||
|
||||
if (
|
||||
|
@ -236,9 +237,10 @@ const fetchMangoRoute = async (
|
|||
throw 'No route found'
|
||||
}
|
||||
const res = await response.json()
|
||||
|
||||
if (res.outAmount) {
|
||||
resolve({
|
||||
bestRoute: res,
|
||||
bestRoute: { ...res, origin: 'mango' },
|
||||
})
|
||||
} else {
|
||||
reject('No route found')
|
||||
|
@ -378,7 +380,6 @@ export async function handleGetRoutes(
|
|||
wallet,
|
||||
sendAnalytics,
|
||||
)
|
||||
|
||||
routes.push(jupiterDirectRoute)
|
||||
}
|
||||
|
||||
|
|
|
@ -278,6 +278,7 @@ export default function SpotMarketOrderSwapForm() {
|
|||
slippage,
|
||||
inputBank.mint,
|
||||
outputBank.mint,
|
||||
selectedRoute.origin,
|
||||
)
|
||||
|
||||
try {
|
||||
|
|
|
@ -2,21 +2,34 @@ import useMangoAccount from './useMangoAccount'
|
|||
import { useWallet } from '@solana/wallet-adapter-react'
|
||||
import { WHITE_LIST_API } from 'utils/constants'
|
||||
import useMangoGroup from './useMangoGroup'
|
||||
import { PublicKey } from '@metaplex-foundation/js'
|
||||
import { useCallback } from 'react'
|
||||
import { useCallback, useMemo } from 'react'
|
||||
|
||||
export default function useAnalytics() {
|
||||
const { group } = useMangoGroup()
|
||||
const { mangoAccountAddress, mangoAccount } = useMangoAccount()
|
||||
const { publicKey } = useWallet()
|
||||
const analyticsTokenBank = group?.getFirstBankByMint(
|
||||
new PublicKey('EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm'),
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
const ignoredMints = [
|
||||
'mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So',
|
||||
'So11111111111111111111111111111111111111112',
|
||||
'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn',
|
||||
'bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1',
|
||||
'7Q2afV64in6N6SeZsAAB81TJzwDoD6zpqmHkzi9Dcavn',
|
||||
'7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj',
|
||||
]
|
||||
const banks = useMemo(() => {
|
||||
return group && mangoAccount
|
||||
? [...group.banksMapByMint.values()].filter(
|
||||
(x) =>
|
||||
x.length &&
|
||||
x[0] &&
|
||||
x[0].collateralFeePerDay > 0 &&
|
||||
!ignoredMints.includes(x[0].mint.toBase58()) &&
|
||||
mangoAccount.getTokenBalanceUi(x[0]) * x[0].uiPrice > 10000,
|
||||
)
|
||||
const val =
|
||||
mangoAccount && analyticsTokenBank
|
||||
? mangoAccount.getTokenBalanceUi(analyticsTokenBank) *
|
||||
analyticsTokenBank.uiPrice
|
||||
: 0
|
||||
: []
|
||||
}, [group, ignoredMints, mangoAccount])
|
||||
|
||||
const sendAnalytics = useCallback(
|
||||
async (data: object, tag: string) => {
|
||||
if (
|
||||
|
@ -24,7 +37,7 @@ export default function useAnalytics() {
|
|||
tag &&
|
||||
data &&
|
||||
mangoAccountAddress &&
|
||||
val >= 10000
|
||||
banks.length
|
||||
) {
|
||||
const enchantedData = JSON.stringify({
|
||||
mangoAccountAddress: mangoAccountAddress,
|
||||
|
@ -45,7 +58,7 @@ export default function useAnalytics() {
|
|||
})
|
||||
}
|
||||
},
|
||||
[val, mangoAccountAddress, publicKey],
|
||||
[banks, mangoAccountAddress, publicKey],
|
||||
)
|
||||
|
||||
return {
|
||||
|
|
|
@ -124,6 +124,7 @@ export interface JupiterV6RouteInfo {
|
|||
timeTaken?: number
|
||||
error?: string
|
||||
instructions?: TransactionInstruction[]
|
||||
origin?: 'jupiter' | 'mango' | 'raydium'
|
||||
}
|
||||
|
||||
export interface JupiterV6RoutePlan {
|
||||
|
|
|
@ -269,7 +269,6 @@ export const getSwapTransaction = async (
|
|||
slippage,
|
||||
directionIn,
|
||||
)
|
||||
console.log(bestRoute, '@@@')
|
||||
|
||||
const tokenInAta = getAssociatedTokenAddressSync(
|
||||
new PublicKey(directionIn ? bestRoute.outputMint : bestRoute.inputMint),
|
||||
|
|
Loading…
Reference in New Issue