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
6ffbf756
Unverified
Commit
6ffbf756
authored
Jun 02, 2020
by
Noah Zinsmeister
Committed by
GitHub
Jun 02, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
memoize common bases (#853)
* memoize common bases * improve memoization
parent
10837d7b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
11 deletions
+17
-11
index.ts
src/constants/index.ts
+1
-1
Trades.ts
src/hooks/Trades.ts
+16
-10
No files found.
src/constants/index.ts
View file @
6ffbf756
import
{
ChainId
,
JSBI
,
Percent
,
Token
,
WETH
,
Pair
,
TokenAmount
}
from
'
@uniswap/sdk
'
import
{
ChainId
,
JSBI
,
Percent
,
Token
,
WETH
,
Pair
,
TokenAmount
}
from
'
@uniswap/sdk
'
import
{
fortmatic
,
injected
,
portis
,
walletconnect
,
walletlink
}
from
'
../connectors
'
import
{
fortmatic
,
injected
,
portis
,
walletconnect
,
walletlink
}
from
'
../connectors
'
export
const
ROUTER_ADDRESS
=
'
0xf164fC0Ec4E93095b804a4795bBe1e041497b92a
'
export
const
ROUTER_ADDRESS
=
'
0xf164fC0Ec4E93095b804a4795bBe1e041497b92a
'
// used to construct intermediary pairs for trading
// used to construct intermediary pairs for trading
export
const
BASES_TO_CHECK_TRADES_AGAINST
:
{
readonly
[
chainId
in
ChainId
]:
Token
[]
}
=
{
export
const
BASES_TO_CHECK_TRADES_AGAINST
:
{
readonly
[
chainId
in
ChainId
]:
Token
[]
}
=
{
[
ChainId
.
MAINNET
]:
[
[
ChainId
.
MAINNET
]:
[
WETH
[
ChainId
.
MAINNET
],
WETH
[
ChainId
.
MAINNET
],
...
...
src/hooks/Trades.ts
View file @
6ffbf756
...
@@ -4,6 +4,7 @@ import flatMap from 'lodash.flatmap'
...
@@ -4,6 +4,7 @@ import flatMap from 'lodash.flatmap'
import
{
useActiveWeb3React
}
from
'
./index
'
import
{
useActiveWeb3React
}
from
'
./index
'
import
{
usePairs
}
from
'
../data/Reserves
'
import
{
usePairs
}
from
'
../data/Reserves
'
import
{
BASES_TO_CHECK_TRADES_AGAINST
}
from
'
../constants
'
import
{
BASES_TO_CHECK_TRADES_AGAINST
}
from
'
../constants
'
function
useAllCommonPairs
(
tokenA
?:
Token
,
tokenB
?:
Token
):
Pair
[]
{
function
useAllCommonPairs
(
tokenA
?:
Token
,
tokenB
?:
Token
):
Pair
[]
{
...
@@ -11,16 +12,21 @@ function useAllCommonPairs(tokenA?: Token, tokenB?: Token): Pair[] {
...
@@ -11,16 +12,21 @@ function useAllCommonPairs(tokenA?: Token, tokenB?: Token): Pair[] {
const
bases
=
useMemo
(()
=>
BASES_TO_CHECK_TRADES_AGAINST
[
chainId
as
ChainId
]
??
[],
[
chainId
])
const
bases
=
useMemo
(()
=>
BASES_TO_CHECK_TRADES_AGAINST
[
chainId
as
ChainId
]
??
[],
[
chainId
])
const
allPairs
=
usePairs
([
const
allPairCombinations
:
[
Token
|
undefined
,
Token
|
undefined
][]
=
useMemo
(
// the direct pair
()
=>
[
[
tokenA
,
tokenB
],
// the direct pair
// token A against all bases
[
tokenA
,
tokenB
],
...
bases
.
map
((
base
):
[
Token
|
undefined
,
Token
|
undefined
]
=>
[
tokenA
,
base
]),
// token A against all bases
// token B against all bases
...
bases
.
map
((
base
):
[
Token
|
undefined
,
Token
|
undefined
]
=>
[
tokenA
,
base
]),
...
bases
.
map
((
base
):
[
Token
|
undefined
,
Token
|
undefined
]
=>
[
tokenB
,
base
]),
// token B against all bases
// each base against all bases
...
bases
.
map
((
base
):
[
Token
|
undefined
,
Token
|
undefined
]
=>
[
tokenB
,
base
]),
...
flatMap
(
bases
,
(
base
):
[
Token
,
Token
][]
=>
bases
.
map
(
otherBase
=>
[
base
,
otherBase
]))
// each base against all bases
])
...
flatMap
(
bases
,
(
base
):
[
Token
,
Token
][]
=>
bases
.
map
(
otherBase
=>
[
base
,
otherBase
]))
],
[
tokenA
,
tokenB
,
bases
]
)
const
allPairs
=
usePairs
(
allPairCombinations
)
// only pass along valid pairs, non-duplicated pairs
// only pass along valid pairs, non-duplicated pairs
return
useMemo
(
return
useMemo
(
...
...
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