1
1
import { AccountType , BparamsMsgValue } from "@namada/types" ;
2
- import { calcAmountWithSlippage } from "@osmonauts/math" ;
3
2
import { defaultAccountAtom } from "atoms/accounts" ;
4
3
import {
5
4
namadaShieldedAssetsAtom ,
@@ -25,7 +24,7 @@ async function _fetchPrices(coinGeckoIds: string[]): Promise<any> {
25
24
}
26
25
27
26
const SUPPORTED_TOKENS_SYMBOLS = [ "OSMO" , "ATOM" , "TIA" ] as const ;
28
- const SLIPPAGE = 0.1 ;
27
+ const SLIPPAGE = 0.005 ;
29
28
30
29
export const OsmosisSwap : React . FC = ( ) => {
31
30
const osmosisSymbolAssetsMap = useAtomValue ( osmosisSymbolAssetMapAtom ) ;
@@ -62,10 +61,10 @@ export const OsmosisSwap: React.FC = () => {
62
61
const response : SwapResponse = await quote . json ( ) ;
63
62
64
63
if ( ! ( response as SwapResponseError ) . message ) {
65
- const minAmount = calcAmountWithSlippage (
66
- ( response as SwapResponseOk ) . amount_out ,
67
- SLIPPAGE
68
- ) ;
64
+ const r = response as SwapResponseOk ;
65
+ const minAmount = BigNumber ( r . amount_out )
66
+ . times ( BigNumber ( 1 ) . minus ( SLIPPAGE ) )
67
+ . toString ( ) ;
69
68
setQuote ( { ...( response as SwapResponseOk ) , minAmount } ) ;
70
69
} else {
71
70
setQuote ( null ) ;
@@ -233,8 +232,17 @@ export const OsmosisSwap: React.FC = () => {
233
232
Min amount out: { quote . minAmount }
234
233
{ osmosisBaseAssetsMap [ to ] . denom_units [ 0 ] . aliases ?. [ 0 ] || to }
235
234
</ div >
236
- < div > Slippage: { SLIPPAGE } %</ div >
235
+ < div > Slippage: { SLIPPAGE * 100 } %</ div >
237
236
< div > Routes: </ div >
237
+ < div > Effective fee: { BigNumber ( quote . effective_fee ) . toString ( ) } </ div >
238
+ < div >
239
+ Price: 1 { osmosisBaseAssetsMap [ from ] . symbol } ≈{ " " }
240
+ { BigNumber ( quote . amount_out ) . div ( BigNumber ( amount ) ) . toString ( ) } { " " }
241
+ { osmosisBaseAssetsMap [ to ] . symbol }
242
+ </ div >
243
+ < div >
244
+ Price impact: { BigNumber ( quote . price_impact ) . dp ( 3 ) . toString ( ) }
245
+ </ div >
238
246
< ul className = "list-disc list-inside" >
239
247
{ quote . route . map ( ( r , i ) => (
240
248
< li key = { i } >
@@ -250,22 +258,6 @@ export const OsmosisSwap: React.FC = () => {
250
258
</ li >
251
259
) ) }
252
260
</ ul >
253
- < div > Effective fee: { BigNumber ( quote . effective_fee ) . toString ( ) } </ div >
254
- < div >
255
- Price: 1 { osmosisBaseAssetsMap [ from ] . symbol } ≈{ " " }
256
- { BigNumber ( quote . in_base_out_quote_spot_price )
257
- . times (
258
- BigNumber ( 1 )
259
- . minus ( BigNumber ( quote . effective_fee ) )
260
- . plus ( BigNumber ( quote . price_impact ) )
261
- )
262
- . dp ( 3 )
263
- . toString ( ) } { " " }
264
- { osmosisBaseAssetsMap [ to ] . symbol }
265
- </ div >
266
- < div >
267
- Price impact: { BigNumber ( quote . price_impact ) . dp ( 3 ) . toString ( ) }
268
- </ div >
269
261
</ div >
270
262
) }
271
263
</ div >
0 commit comments