* Move single hop toggle GA event
Move GA event from setSingleHopOnly hook to toggle function
* Fix code style issues with ESLint
* refactor ternary operator out
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* Update index.ts
* feature(service worker): add offline support (#1319)
* Revert "feature(service worker): add offline support (#1319)" (#1320)
This reverts commit 34dfb41a1e0a647596c5d37d5e3f7baa6c4005a3.
* Revert "Revert "feature(service worker): add offline support (#1319)" (#1320)" (#1321)
This reverts commit db3328c8d9d7ea7b7cf7e75dc658714798d007a4.
* unregisters all installed service workers (#1322)
* fix: modals stealing focus across frames (#1326)
* improvement(lists): add BA SEC tokens to unsupported list (#1327)
* show hidden search results by default
* update break styles
* optimize filter, use debounce on input
* increase debounce time
* add ba association list
* handle dismiss (#1328)
* split up sdk use between core and v2
* Fix code style issues with ESLint
* remove service worker
Co-authored-by: Moody Salem <moodysalem@users.noreply.github.com>
Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com>
Co-authored-by: Hyperion <72735936+moontools-hyperion@users.noreply.github.com>
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* show hidden search results by default
* update break styles
* optimize filter, use debounce on input
* increase debounce time
* add ba association list
* basic support for multiple active lists
* start search across inactive lists
* store card before list update
* basic import flow for inactive tokens
* update supported lists
* update import flow for address pasting
* basic mvp
* hide filter if no results
* update min heights
* update manage view, index tokens on page load
* start routing fix for multi hops
* switch to input amount comparison on exactOut
* start list import view
* updated list UI, token search updates, list import flow, surpress popups and warnings
* add unsupported tokens
* show warning if logged out
* update to opyn list
* show token details on warning;
* make percent logic more clear
* remove uneeded comaprisons
* move logic to functions for testing
* test updates
* update list reducer tests
* remove unused locals
* code cleanup
* add unsupported local list
* add multi hop disable switch
* add GA
* fix bug to return multihop no single
* update swap details
* copy updates
* Visual refinements
* Further tweaks
* copy updates, actual list order
* Move settings button
* Update all trade views with settings cog
* Add better tips, remove darkmode toggle from dropdown
* Clean up routing UI
* UI tweaks
* minor tweaks
* copy updates
* add local default list, use existing function for trade comparison, disable v1 helper, show inactive/active at once
* updated inactive view
* remove slippage fix
* update output amount return
* center button, update search to character threshold
* reset add state on back navigation
* style tweak on add button
* fix bug on search results
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* start routing fix for multi hops
* switch to input amount comparison on exactOut
* make percent logic more clear
* remove uneeded comaprisons
* move logic to functions for testing
* add multi hop disable switch
* add GA
* fix bug to return multihop no single
* update swap details
* code clean
* routing only
* fix: parseENSAddress #1200
* fix: lint error #1200
* fix: parseENSAddress - allow to match domains with twice characters; disallow more than once dash next to each other
* more list stuff
Use the selected list instead of the default list, but also use the default list
start list selection code
* move token warning to a modal, fix the install issue
* add/remove/enter key
* handle enter on currency select for ETHER
* change slippage tolerance to be a slider
* make ui closer to the mocks
* commit slider changes
* back to tabs
* copy changes
* bump list version
* some styling for the list select
* bump uniswap default list version
* use contract calls to get ens names and addresses
* show list logo
* fix failing integration test
* .eth.link
* list introduction screen
* remove showSendWithSwap
* fix integration and unit tests
* resolve ENS names
* logos from ens
* fix the lint errors
* some refactoring to better support using a the library provider from the user for resolving ENS names
* load list info from the list url for the introduction page
* make it slightly harder to remove a list
* minor clean up, some help text and links
* remove icon from list update popup
* show added/removed tokens
* add GA everywhere, don't debounce contenthash lookups
* show tags
* fix tag key
* tag display, list rendering, needs optimization
* fix list fetching in firefox, style issue in safari
* sort the lists, clean up styling
* use client provider when possible
* show token warning for url loaded tokens
* improve the warning modal
* some refactoring to fix the list fetching on networks other than mainnet
* fix tests
* some minor improvements
* increase timeout to maybe fix integration tests which pass locally
* build for tests using the dev network url
* reset the lists if we deleted the other two copies
* improve how we handle updating the default list of lists
* fix integration test
* Update token list selection styles
* fix external links, reuse the on click outside code, show add errors
* show the list origin instead of the full url
* fix update list link
* show host instead of hostname
do not automatically dismiss major version upgrades for lists
* fix link to tokenlists.org
* add uma
* clean up styling in list rows
* bump token list version
* bump token list version again
* hover symbol to see currency name
* bump version
* add cmc lists, dharma list
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* move the gas estimation stuff into its own hook and report errors from the gas estimation
* fix linter errors
* show the swap callback error separately
* rename some variables
* use a manually specified key for gas estimates
* flip price... thought i did this already
* only show swap callback error if approval state is approved
* some clean up to the swap components
* stop proactively looking for gas estimates
* improve some retry stuff, show errors inline
* add another retry test
* latest ethers
* fix integration tests
* simplify modal and fix jitter on open in mobile
* refactor confirmation modal into pieces before creating the error content
* finish refactoring of transaction confirmation modal
* show error state in the transaction confirmation modal
* fix lint errors
* error not always relevant
* fix lint errors, remove action item
* move a lot of code into ConfirmSwapModal.tsx
* show accept changes flow, not styled
* Adjust styles for slippage error states
* Add styles for updated price prompt
* Add input/output highlighting
* lint errors
* fix link to wallets in modal
* use total supply instead of reserves for `noLiquidity` (fixes#701)
* bump the walletconnect version to the fixed alpha
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* load tokens from url `useTokenList`
* improve performance of the loading
* move the loading to redux and save loaded lists
* lint error
* move the list fetching code to a separate component
* change how token lists are fetched to use the updater and add unit tests
* fix a crash with currencyEquals
* bump sdk version
* token lists should automatically update for minor/patch changes
* nit
* show popups for list updates
* support pointing at localhost
* spuport ipfs/ipns logos
* use the updater to bump list versions
* save the old/new list in the popup for viewing diffs
* improve the list popup
* fix linter error, make sure visibility checking is working
* show list update notifications
* address a couple metamask warnings, linter error
* fix the custom added/default tokens
* refactor some popup stuff to reuse the fader
* linter error
* Revert: refactor some popup stuff to reuse the fader (a7b0f752)
* style improvements, linter
* add to the readme, drop the token-request template
* back to the beta that works with wallet connect
* get the dependencies to a state that works with wallet connect and passes integration tests
* first pass of sdk 3.0
* second pass using weth
* kill unused pool popup
* get it compiling again
* first pass of sdk 3.0
* switch to currencies
* get it compiling after the big move merge
* restore margin
* clean up add liquidity more
* fix a bunch of bugs
* todo trade on v1
* show eth in currency list
* allow selecting eth in the swap page
* fix unit tests for swap page
* test lint errors
* fix failing integration tests
* fix another couple of failing unit tests
* handle selecting currency b when no currency a
* improve the import pool page
* clean up add liquidity for invalid pairs
* bold
* first pass at swap arguments for v1, some unit tests
* fix some bugs in add liquidity, burn hook
* fix last of ts errors in remove liquidity
* support wrapping/unwrapping weth
* kill a bunch of code including the dummy pairs
* required pair prop in the position card
* tests for the v1 swap arguments
* do not say estimated on the wrap ui
* show ETH instead of WETH in the pool summaries
* small size socks
* fix lint error
* in burn, use currencies from the URL
* fix some integration tests
* both contain weth
* receive eth/weth link
* fix empty row
* show wrapped only if one currency is weth
* currency selects in the remove liquidity page
* deleting some code first
* strict, some refactoring
* denser common bases
* more add liquidity refactoring
* add liquidity paths working
* show common bases in the token selects
* fix the ability to select duplicate tokens
* useless rename
* try to handle alllll the duplicate token edge cases
* think i got them all lol
* remove common bases header
* Revert "remove common bases header"
This reverts commit 6ac4565d
* fix and add integration tests
* make gap between rows smaller
* get integration tests actually running again
* try another format of the command, upgrade serve
* frozen lockfile on install
* try the cypress github action
* install cypress in ci
* remove redundant ignore-scripts command
* use a specific github commit for the pinata action
* fix a bug in the multicall reducer, improve token list rendering performance
* improve the enter key on the token search modal
* stop using history.push
* fix linting errors
* position card cleanup before updating to match mock
* quick poc for removing swap page
* accidental import
* error for recipient field
* query parameter working
* undo id change
* tweaks to match mocks better
* tweaks to match mocks better
* some extra integration tests
* clean up nav tabs a bit
* clean up nav tabs a bit
* space swap/pool better
* stop selecting button text when double clicking
* remove unused transfer modal header
* add info to swap confirm modal
* shorten address
* improve summary message, remove unused send callback, fix react ga event
* fix lint errors
* arrow color
https://www.augur.net/blog/v2-launch/
TL;DR: Augur v2 launch is coming up and will introduce a new REP token. FF has requested all exchanges rename REP to REPv1 to avoid confusion.
Going forward, REP tokens will contain versioning in their name/symbol on chain so this should be a one-time "fix" for Augur v1 REP.
* always show advanced
* fix test
* always show the price, less jitter
* show tokens in price field
* fix the dropdown sticking around when switching between swap/send
* lint
* fix ios scrolling the modal body into the viewport bug
* don't use react-spring for simple slide animation
* safer price impact constants
* no automatic add, major refactors
* fix nit with version link
* add/remove links in the token search modal
* close tooltip when user types
* remove skip
* 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
* Make the hooks directory strict
* Move using the v1 factory contract to hooks
* Add a comment to why we copy the token map
* Fix another lint error and make AllTokens deep readonly
* Move ALL_TOKENS to constants directory
* 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
* Token warning a la #789 and #790
* Clean up the duplicate name or symbol implementation
* Fix the spacing
* Change wording and add to send page
* Wording changes
* Refactor the common code to a component
* Fix lint error
* 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>
* key per-block SWR data with block number
* fix + tweak copy and decrease sig figs for lp fee
* don't use blocknumber as a key
instead mutate when it changes
* fix totalsupply + user liquidity sync issues
* fix v1 trade checker logic
* rough fix allowing removal of user added tokens
probably needs a more comprehensive overhaul...
* refactor SWR block updates to custom hook
* typo
* fix import error
* fix footer css to work cross-broswer
* disallow \ to be typing into amount inputs
add test case for this
add value assertions to all input integration tests
* fix import error
* remove console.log
* clean up address input a bit
trim whitespace from pasted addresses
* fix input maxing
remove spurious max output logic
* 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
* bug fixes on non-existent vs no reserves, fix scanning on pair search, small ui tweaks
* remove unused vars
* remove mainnet in injected connector
* code cleanup for pr
* update pair value check
* 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
* remove duplicated prettier from dependencies
* use swr for allowances
* slight improvements to error cascading
* fetch totalsupply with SWR
fetch pairs with SWR (except persistent pairs, will be refactored later)
* fix lint error
* stop using pair context, instead store per-user pairs in local storage
* add more pairs to the default list
remove unnecessary isWETH
fix lint error
* add more bases to trade consideration
* fix lint warnings
* get SWR data on same schedule
* don't pass value if it's 0
fix WETH equality checks
* clean up fixed/significant formatting
* fix slippage calculation bug in swap
add slippage to remove
* fix token logos
* show fewer sig figs
* lint error
* remove unused signer
* add calculateSlippageAmount safety check and tests
* fix useAllBalances type
stop spuriously sorting token amounts of different tokens
use slightly better comparisons for slippage calculations
* improve priceSlippage comparison logic
* useReserves -> usePair
* use checksum for DAI logo address
* First 2
* More typescript
* More and more
* Almost there
* More
* More typescript
* Fix remove liquidity button
* Make the error chain more readable
* Slippage tabs
* Add some basic integration tests and CI in GitHub
* Add push trigger
* Add badge for tests to readme
* Unit tests
* Just use the development infura URL in the tests
* Remove unused webpack config
* Make integration test run on the same port as yarn start
* make test a little bit better
* rename describe
* TypeScript in the utils directory, README fixes
* Remove unused methods
* Added unnecessary space
* Some env variable cleanup
* Bug in change
* Another file to ts
* App.tsx
* Header and Footer to tsx
* Few more TS migrations and add a commit hash title to the uni icon
* Few more TS migrations and put commit hash in code link
* Splitting up files
* Splitting up files (merged dark mode changes)
* TypeScript in the utils directory, README fixes
* Remove unused methods
* Added unnecessary space
* Some env variable cleanup
* Bug in change
* Another file to ts
* Prepare for V2 testing
* popup styles, slippage language and amounts, min max copy
* Bug fixes and tweaks
* Add form link
* remove other imports
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* updated keys in pair context
* fix bug on imported liquidity
* Add price bar and spacing tweaks
* Header tweaks
* Base for token import, query params, styling updates
* remove unused imports
* query params, create flow
* set ETH as default for create
* Style tweaks and price bar location
* add mobile popups, mobile styling on header
* updated mobile styles
* style updates mobile, fix build
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
* Hide dark and advanced, fix bug on empty balances
* remove unused imports
* change default dark mode
* add warning on main net
* remove unused imports
* update injected loading state
* basic setup
* add contexts
* minor changes
* refactor balances and USd price
* small tweaks
* clean up balances context code
don't store usd price except in hook
refactor getUSDPrice to make clear it's sync
* add small memo
* block some countries (#534)
* Adds min-width to custom slippage input. (#533)
On Firefox (maybe other browsers as well) the lack of min-width results in the default `input` element min-width which is ~92px. This results in the flex container overflowing the bounding element. By setting min-width to 20px, the box will instead grow to fill the available space, which is defined by its parent that has the pink border. This avoids the overflow issue (as long as the parent doesn't get too small, which it won't at the moment since it is fixed size).
* basic support for desktop and mobile, with or without web3
* stable before mobile view update
* mobile modal views
* remove unused modules
* create global context for wallet modal, update to click button to connect
* first pass
* drag with react pose
* try without pose
* replace context with new syntax, basic setup
* stable version on all browser types
* remove dev flags
* fix swap broken
* update to clickable connect button if logged out
* stable, good entry
* fix bugs, exit animations
* prep for merge
* stable version with updated application context
* update animations with correct gesture package
* refactor wallet logic to multi-root
* small fixes
* Style Updates
* remove unused imports
* refactor wallet page
* skeleton for migration - still need links and adrdess of new contract
* update render conditions
* fix close on click
* updated warning logic
* add mcd to token list
* changes before merge
* remove unused imports
* add checksums
* make jazzicon same as metamask
* fix token-token market rate
fix transactions bugs
add new contextual info to send
* fix .1 balance check on add liquidity
fix double click max balance bug