Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
interface
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
LuckySwap
interface
Commits
23128973
Unverified
Commit
23128973
authored
Apr 16, 2021
by
Noah Zinsmeister
Committed by
GitHub
Apr 16, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add additional bases (#1363)
* add routing token * add logic for additional bases * update address
parent
140ff7a6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
10 deletions
+36
-10
index.ts
src/constants/index.ts
+17
-0
Trades.ts
src/hooks/Trades.ts
+19
-10
No files found.
src/constants/index.ts
View file @
23128973
...
@@ -19,6 +19,11 @@ export const DAI = new Token(ChainId.MAINNET, '0x6B175474E89094C44Da98b954EedeAC
...
@@ -19,6 +19,11 @@ export const DAI = new Token(ChainId.MAINNET, '0x6B175474E89094C44Da98b954EedeAC
export
const
USDC
=
new
Token
(
ChainId
.
MAINNET
,
'
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
'
,
6
,
'
USDC
'
,
'
USD//C
'
)
export
const
USDC
=
new
Token
(
ChainId
.
MAINNET
,
'
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
'
,
6
,
'
USDC
'
,
'
USD//C
'
)
export
const
USDT
=
new
Token
(
ChainId
.
MAINNET
,
'
0xdAC17F958D2ee523a2206206994597C13D831ec7
'
,
6
,
'
USDT
'
,
'
Tether USD
'
)
export
const
USDT
=
new
Token
(
ChainId
.
MAINNET
,
'
0xdAC17F958D2ee523a2206206994597C13D831ec7
'
,
6
,
'
USDT
'
,
'
Tether USD
'
)
export
const
WBTC
=
new
Token
(
ChainId
.
MAINNET
,
'
0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
'
,
8
,
'
WBTC
'
,
'
Wrapped BTC
'
)
export
const
WBTC
=
new
Token
(
ChainId
.
MAINNET
,
'
0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
'
,
8
,
'
WBTC
'
,
'
Wrapped BTC
'
)
export
const
FEI
=
new
Token
(
ChainId
.
MAINNET
,
'
0x956F47F50A910163D8BF957Cf5846D573E7f87CA
'
,
18
,
'
FEI
'
,
'
Fei USD
'
)
export
const
TRIBE
=
new
Token
(
ChainId
.
MAINNET
,
'
0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B
'
,
18
,
'
TRIBE
'
,
'
Tribe
'
)
export
const
FRAX
=
new
Token
(
ChainId
.
MAINNET
,
'
0x853d955aCEf822Db058eb8505911ED77F175b99e
'
,
18
,
'
FRAX
'
,
'
Frax
'
)
export
const
FXS
=
new
Token
(
ChainId
.
MAINNET
,
'
0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0
'
,
18
,
'
FXS
'
,
'
Frax Share
'
)
export
const
renBTC
=
new
Token
(
ChainId
.
MAINNET
,
'
0xEB4C2781e4ebA804CE9a9803C67d0893436bB27D
'
,
8
,
'
renBTC
'
,
'
renBTC
'
)
// Block time here is slightly higher (~1s) than average in order to avoid ongoing proposals past the displayed time
// Block time here is slightly higher (~1s) than average in order to avoid ongoing proposals past the displayed time
export
const
AVERAGE_BLOCK_TIME_IN_SECS
=
13
export
const
AVERAGE_BLOCK_TIME_IN_SECS
=
13
...
@@ -63,6 +68,18 @@ export const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {
...
@@ -63,6 +68,18 @@ export const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {
[
ChainId
.
MAINNET
]:
[...
WETH_ONLY
[
ChainId
.
MAINNET
],
DAI
,
USDC
,
USDT
,
WBTC
]
[
ChainId
.
MAINNET
]:
[...
WETH_ONLY
[
ChainId
.
MAINNET
],
DAI
,
USDC
,
USDT
,
WBTC
]
}
}
export
const
ADDITIONAL_BASES
:
{
[
chainId
in
ChainId
]?:
{
[
tokenAddress
:
string
]:
Token
[]
}
}
=
{
[
ChainId
.
MAINNET
]:
{
'
0xA948E86885e12Fb09AfEF8C52142EBDbDf73cD18
'
:
[
new
Token
(
ChainId
.
MAINNET
,
UNI_ADDRESS
,
18
,
'
UNI
'
,
'
Uniswap
'
)],
[
FEI
.
address
]:
[
TRIBE
],
[
TRIBE
.
address
]:
[
FEI
],
[
FRAX
.
address
]:
[
FXS
],
[
FXS
.
address
]:
[
FRAX
],
[
WBTC
.
address
]:
[
renBTC
],
[
renBTC
.
address
]:
[
WBTC
]
}
}
/**
/**
* Some tokens can only be swapped via certain pairs, so we override the list of bases that are considered for these
* Some tokens can only be swapped via certain pairs, so we override the list of bases that are considered for these
* tokens.
* tokens.
...
...
src/hooks/Trades.ts
View file @
23128973
...
@@ -3,7 +3,12 @@ import { Currency, CurrencyAmount, Pair, Token, Trade } from '@uniswap/sdk'
...
@@ -3,7 +3,12 @@ import { Currency, CurrencyAmount, Pair, Token, Trade } from '@uniswap/sdk'
import
flatMap
from
'
lodash.flatmap
'
import
flatMap
from
'
lodash.flatmap
'
import
{
useMemo
}
from
'
react
'
import
{
useMemo
}
from
'
react
'
import
{
BASES_TO_CHECK_TRADES_AGAINST
,
CUSTOM_BASES
,
BETTER_TRADE_LESS_HOPS_THRESHOLD
}
from
'
../constants
'
import
{
BASES_TO_CHECK_TRADES_AGAINST
,
CUSTOM_BASES
,
BETTER_TRADE_LESS_HOPS_THRESHOLD
,
ADDITIONAL_BASES
}
from
'
../constants
'
import
{
PairState
,
usePairs
}
from
'
../data/Reserves
'
import
{
PairState
,
usePairs
}
from
'
../data/Reserves
'
import
{
wrappedCurrency
}
from
'
../utils/wrappedCurrency
'
import
{
wrappedCurrency
}
from
'
../utils/wrappedCurrency
'
...
@@ -14,17 +19,22 @@ import { useUserSingleHopOnly } from 'state/user/hooks'
...
@@ -14,17 +19,22 @@ import { useUserSingleHopOnly } from 'state/user/hooks'
function
useAllCommonPairs
(
currencyA
?:
Currency
,
currencyB
?:
Currency
):
Pair
[]
{
function
useAllCommonPairs
(
currencyA
?:
Currency
,
currencyB
?:
Currency
):
Pair
[]
{
const
{
chainId
}
=
useActiveWeb3React
()
const
{
chainId
}
=
useActiveWeb3React
()
const
bases
:
Token
[]
=
chainId
?
BASES_TO_CHECK_TRADES_AGAINST
[
chainId
]
:
[]
const
[
tokenA
,
tokenB
]
=
chainId
const
[
tokenA
,
tokenB
]
=
chainId
?
[
wrappedCurrency
(
currencyA
,
chainId
),
wrappedCurrency
(
currencyB
,
chainId
)]
?
[
wrappedCurrency
(
currencyA
,
chainId
),
wrappedCurrency
(
currencyB
,
chainId
)]
:
[
undefined
,
undefined
]
:
[
undefined
,
undefined
]
const
bases
:
Token
[]
=
useMemo
(()
=>
{
if
(
!
chainId
)
return
[]
const
common
=
BASES_TO_CHECK_TRADES_AGAINST
[
chainId
]
??
[]
const
additionalA
=
tokenA
?
ADDITIONAL_BASES
[
chainId
]?.[
tokenA
.
address
]
??
[]
:
[]
const
additionalB
=
tokenB
?
ADDITIONAL_BASES
[
chainId
]?.[
tokenB
.
address
]
??
[]
:
[]
return
[...
common
,
...
additionalA
,
...
additionalB
]
},
[
chainId
,
tokenA
,
tokenB
])
const
basePairs
:
[
Token
,
Token
][]
=
useMemo
(
const
basePairs
:
[
Token
,
Token
][]
=
useMemo
(
()
=>
()
=>
flatMap
(
bases
,
(
base
):
[
Token
,
Token
][]
=>
bases
.
map
(
otherBase
=>
[
base
,
otherBase
])),
flatMap
(
bases
,
(
base
):
[
Token
,
Token
][]
=>
bases
.
map
(
otherBase
=>
[
base
,
otherBase
])).
filter
(
([
t0
,
t1
])
=>
t0
.
address
!==
t1
.
address
),
[
bases
]
[
bases
]
)
)
...
@@ -46,10 +56,9 @@ function useAllCommonPairs(currencyA?: Currency, currencyB?: Currency): Pair[] {
...
@@ -46,10 +56,9 @@ function useAllCommonPairs(currencyA?: Currency, currencyB?: Currency): Pair[] {
.
filter
(([
tokenA
,
tokenB
])
=>
{
.
filter
(([
tokenA
,
tokenB
])
=>
{
if
(
!
chainId
)
return
true
if
(
!
chainId
)
return
true
const
customBases
=
CUSTOM_BASES
[
chainId
]
const
customBases
=
CUSTOM_BASES
[
chainId
]
if
(
!
customBases
)
return
true
const
customBasesA
:
Token
[]
|
undefined
=
customBases
[
tokenA
.
address
]
const
customBasesA
:
Token
[]
|
undefined
=
customBases
?.
[
tokenA
.
address
]
const
customBasesB
:
Token
[]
|
undefined
=
customBases
[
tokenB
.
address
]
const
customBasesB
:
Token
[]
|
undefined
=
customBases
?.
[
tokenB
.
address
]
if
(
!
customBasesA
&&
!
customBasesB
)
return
true
if
(
!
customBasesA
&&
!
customBasesB
)
return
true
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment