* swap-v1
* toggle the version switch based on the search query parameter
* rework some of the query parameter stuff in send/swap
* hide the url when they click it
* allow switching back to v2 via the toggle
* represent the v1 trade in the UI if they toggle it on
* show trade link in both directions (5% threshold for v1 link)
* input amounts should reflect v1/v2
* perform the approve on v1 exchange for v1 trades
* get swap on v1 working
* move some code around to reduce duplication
* fix ts error
* correct input allowance
* fix exact token to token on v1
* fix pending approvals to be specific to the spender
* google analytics for swap version
* disable the version switch on pages other than swap and send
* use single call to get token information
* delete the bytes32 overload
* console log statement
* add a bunch of tests to actions.ts for multicall
* fix to work with bytes32 symbols/names
* only include name/symbol
* enforce lowercase calldata
* links and page
* print all the details of the liquidity
* show working approve/migrate buttons
* testnet v1 factory addresses
* split code up into two pages
* getting closer to styled
* compute min amount out of eth and token
* compute min amount out of eth and token
* add a back button to the list page
* Improve empty states
* Improve the state management
* change the display of the migrate page to be more similar to original
* style fix, pending transaction hook fix
* add forwarding to netlify.toml
* handle case where v2 spot price does not exist because pair does not exist
* make ternaries more accurate
* handle first liquidity provider situation
* Style tweaks for migrate
* merge
* Address feedback
- show pool token amount
- show success when migration complete
- show price warning only if price difference is large
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* initial refactoring
* rebase lint error
* start implementing reducer
* multicall reducer
* working multicall!
* clean up performance, re-fix annoying error
* use multicall everywhere
* use multicall for balances
* fix lint warning
* Use checksummed address
* Fix strict warning
* get it to a working state with the more generic form
* convert useETHBalances
* Remove the eth-scan contract completely
* Remove the eth-scan contract completely more
* Default export
* Put the encoding/decoding in the methods that can do it most efficiently
* Avoid duplicate fetches via debounce
* Reduce delay to something less noticeable
* Return null if pair reserves are undefined to indicate it does not exist
* give add liquidity the reducer treatment
rename setDefaultsFromURL to setDefaultsFromURLSearch
* fix tests and crash
* rework DOM structure to make flow more natural
* allow slippage + deadline setting in add liquidity
* migrate burn
* disable token selection in mint
clear input between pairs
* reset fields between pairs
* tweak helper text
* address review comments
* give add liquidity the reducer treatment
rename setDefaultsFromURL to setDefaultsFromURLSearch
* fix tests and crash
* rework DOM structure to make flow more natural
* allow slippage + deadline setting in add liquidity
* disable token selection in mint
clear input between pairs
* Search modal performance improvements
* Move more code out of the search modal
* Add the question helper to the search
* Fix a couple lint errors
* Fix the tests, duplicate import text
* Hide the token info on small screens, flex the list
* Fix token sorting, have a link that focuses and shows a tooltip for the search input
* Remove reach tooltip css
* Fix pair balances in the search modal
* Get the arrow working
* Only clear the input when they re-open
* Better way to exclude props
* More small performance tweaks
* Revert "Temporarily disable the token warning for style fixes"
This reverts commit 70722b5e
* Move pages around and refactor to better support rendering content outside the app body
* Automatically add tokens in the add and remove liquidity pages
* Put the warning above the send/swap pages
* Add a margin below the token warning cards
* Save token warning dismissal state in user state
* Linting errors
* style fix
* generalize useApproveCallback
* show proper slippageAdjustedAmounts in dialog
* make confirmed button text readable in light mode
* default timeout from 15 -> 20 minutes
* add manual approve fallback to remove liquidity
* remove console log
* fix bad web3-react import introduced by refactor
* rename our wrapped version of useWeb3React
* return an enum from useApproveCallback
* fix comment
* Make typescript compilation strict in some new code
* Fix other errors, change how we set dark mode to always respond to url parameter
* Fix bug in block number
* mainnet config
* fix token + pair sorting
* standardize wrapped useWeb3React imports
* add final return to pair sorting
* add connecting pairs
* break tokens out into separate files
revert isAddress change
* filter out duplicate pairs
* remove add liquidity prompts
* link to v1 trades that are invalid on v2
* forward v2 subdomain to apex
* update blog link
* get rid of smart quotes
* link to uniswap info in position card
* improve pair sorting/searching
break out token identification
fix crash on early pool position clicks
change pair token separator from : to /
* Part 1, separate swap and send, move duplicate code into separate files
* Move some more constants out of the swap/send
* Support defaults from URL parameters
* Implement query string parsing via a redux action
* Finish merging the changes
* Fix the slippage warnings
* Clean up some other files
* More refactoring
* Move the price bar out of the component
* Move advanced details and some computations into utilities
* Make same improvements to send
* Approval hook
* Swap page functional with swap callback hook
* Swap/send page functional with swap callback hook
* Fix lint
* Move styleds.ts
* Fix integration test
* Fix error state in swap and move some things around
* Move send callback out of send page
* Make send behave more like current behavior
* Differentiate swap w/o send on send page from swap w/o send on swap page
* Remove userAdvanced which was always false
* Remove the price bar which is not used in the new UI
* Delete the file
* Fix null in the send dialog and move another component out of send
* Move the swap modal header out to another file
* Include change after merge
* Add recipient to swap message
* Keep input token selected if user has no balance and clicks send with swap
* Move the modal footer out of send component
* Remove the hard coded estimated time
* Fix the label/action for swap/sends
* Share the swap modal footer between swap and send
* Fix integration test
* remove margin from popper to suppress warnings
fix missing ENS name recipient link
default deadline to 15 minutes
* ensure useApproveCallback returns accurate data
* clean up callbacks
* extra space
* Re-apply ignored changes from v2 branch ExchangePage file
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* Bunch of refactoring
* Add an integration test that gets as far as swapping
* Drop the nonce code that isn't doing anything right now
* Undo one of the accidental changes to the reducer
* Create the wallet store
* Get the updater completed
* Code complete
* Fix token balance bug
* Fix another bug in the hooks
* Final bug fix, blockNumber can be undefined
* Formalize the fact that block number can be undefined
* Woops add package
* Add more info to errors
* Replace balances in the v1 methods with the new ones
* Only return a balance value if it's present
* Address comments
* Trigger updateVersion before anything else
* Rewrite the local storage context into a redux store for user data
* Separate out the mega methods
* Fix infinite loop
* Missing dependency
* Missing dependency, rename version field
* Introduce redux for one of the state stores
* Remove unused state
* Clean up hooks
* Add types for react-redux and fix error from any type on useSelector
* Strongly type the web3 provider
* Make the popup content into a POJO
* Lint errors
* Clean up method call
* Fix lint error
* Fix lint error
* Lint