25ea7f9caf
* feat(explore): add /explore route (#3935) add route * Explore use top tokens (#3954) feat(explore): add a top tokens hook with mock data * feat(explore): use token price (#3958) feat(explore): add useTokenPrice hook and dumby data * fix(explore): mock data fetching hook return type (#3959) * chore(deps): bump token-lists (#3929) (#3961) Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com> * feat: Kg/add time selector dropdown UI (#3956) * feat: add time selector dropdown UI * update time selector style * feat(explore): use token relevant resources (#3963) chore(deps): bump token-lists (#3929) (#3961) Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com> Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com> * chore: merge main into explore (#3970) * chore(deps): bump token-lists (#3929) * feat: empty to deploy 628417f696f40cb54ef5bbba2374573e75a59915 (#3962) feat: empty to deploy * feat: fix metamask mobile browser connection (#3964) * fix metamask * forceActivate * remove forceActivate * unused change * feat(risk): cache risk check with ttl (#3965) Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com> Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com> * feat: add initial token table (#3957) * add token table UI * update token table with intial data pipeline * feat: Load token table with initial dummy data TODO: get token information (token name and symbol) * add token table UI and token row components * update table with token logo * update table with correct arrow * update table border * runs prettier (#3971) prettier * add header to tokenRow, format dollar util, add responsiveness * update table styling * update table styling and components setup * add back side padding * create header cell component * update table styling * fix padding * update css styling * Alphabetize styles Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com> * fix: add mobile responsiveness break point (#3988) update width mobile breakpoint * fix: hide header when mobile (#3989) hide header on token table when mobile view * feat: stack token name and symbol (mobile view) (#3996) * stack token name and symbol * style: clean up CSS * feat: add token table loading state (#3984) * add token table loading state * make token row components reusable * change typing and CSS styling * remove key props * feat: token table mobile view (#4003) * fix conflicts * style: CSS cleaning 2 * clean divs * add media breakpoint constants * feat: add favorites button frontend component (#4007) * add favorites button frontend component * fix height and width CSS * fix: small arrow sizing detail (#4012) fix small arrow sizing detail * feat: filter favorite tokens (#4010) * filter favorite tokens * fix atom * make showFavorite an atom * implement atom and clean CSS * change naming schema * feat: explore search bar UI (#4018) * search bar CSS * style css fix * change from atom to useState * fix: fix slow favoriting bug (#4033) * fix favoriting bug * fix code styling * minor change * feat: search responsiveness (#4034) * search responsiveness * hide placeholder * css fix * shared file * feat: token link page with token address URL param (#4039) * token detail draft * initial route path and some info * reduce PR * fixes * token null fix * feat: token detail page header UI (#4041) * token detail draft * initial route path and some info * reduce PR * token header * remove flex * font sizes * fix CSS * feat: add timeframe options UI (#4042) * add timeframe options * map times * list times * feat: explore & token detail linking (#4048) * link routing * fix focus * Update index.tsx * feat: token detail page metadata UI (#4047) * skeleton * padding change * fix link styling * add resource component * feat: remove swap button (#4055) * remove swap button & responsiveness * center sparkline * remove margin * fix: token details color fix (#4056) fix hover * feat: network balances component (#4059) * fix hover * initial network balance * fix network * checking 0 balance * add unsupported chain check * add network selector * multiple netwrk logic * change polygon logo * fix * naming * feat: add more and incorporate dummy data (#4066) * for demo * link protocol info * colors in shared file * feat: loading state for token detail (#4068) * animate chart mwaha * get rid of comments * add timeout * add fake widget * style * move loading into own file * fix: patch bad imports * feat: header hover states and favorite active state styling (#4079) * hover states * favorite * type boolean * fixes * fix eslint * fix prettier * fix import * feat(explore-table-filter): add basic text filtering to explore page (#4105) * feat(explore-table-filter): add basic text filtering to explore page token table * pr feedback * chore: merge in latest changes from main (#4108) * refactor: remove hideRouteDiagram prop (#3763) * fix: Revert "refactor: remove coinbase wallet resetState" (#4081) Revert "refactor: remove coinbase wallet resetState (#4024)" This reverts commit e36722ccb4cd282aa932ff7c7e6082190f3ed131. * feat: add support for Celo (#3915) * feat: Support for Celo * fix: wrong condition * combine celo and alfajores lists * use celo erc20 representation * fix: refactor infura.ts to networks.ts & add celo to rpc urls * feature: add celo contract addresses fix: remove celo from supported gas estimate chains until feature is available * refactor: useUSDCPrice to useStablecoinPrice fix: add celo to supported gas estimate chains * fix: use unique factory address for getting pool address * fix: darkmode background graident * fix: removing a comment left behind * fix: remove bad import * fix: remove dead link until the Celo is live on info.uniswap.org * fix: add asset to common bases & minor refactoring * fix: celo info links point to root info.uniswap.org * fix: change celo token bridge to portal * fix: update redux-multicall to latest version * refactor: for code readability * fix: celo banner colors & remove unused alternative logo * fix: change celo token list to hosted version * fix: update celo banner colors * fix: move celo to the bottom of the network selector list * fix: dedup dependencies @uniswap/router-sdk @uniswap/v3-sdk * fix: refactoring + move Celo above L2s * fix: update celo contract addresses * fix: update celo subgraph * fix: update v3-sdk and smart-order-router versions * fix: move Celo to the bottom of the network selector list * fix: downgrade smart-order-router and add casting fix * fix: downgrade smart-order-router and add casting fix * fix: resolve Pool dependency * fix: bridge chain id types * fix: explorer link test * fix: use quoter v2 ABI in useClientSideV3Trade fro Celo * fix: update connection "infura_rpc" to networks * fix: revert yarn.lock and force install * fix: dedup router and v3 sdk * refactor: mv quoter v2 to client side v3 trade * build: dedup lockfile * feature: add portal ether to common bases * fix: add comment for chains that use QuoterV2 * fix: use token as native asset * fix: supply correct factory address to getPoolAddress call & refactor nativeOnChain method * feature: adjust celo tokens presetned * fix: update celo explorer to celoscan * fix: celo token casting * fix: celo celo explorer it * fix: celo chain info should be consistent with block explorer used. Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> * fix: revert "fix button jump on currency panel" (#4083) fix padding * fix: unsupported chain displays message instead of crash (#4054) * made initial changes for pools page displaying w/ unsupported chains * condensed styling * added chain validation to CTACards and wrote tests for both CTAcards and Pools page * linted changes * switched from snapshot to text matching tests * switched test to use check for text instead of testid * fix: add crossplatform `prei18n-extract` script (#3728) * fix: 🐛 add crossplatform `prei18n-extract` script * fix: 🚨 add newline * Revert "fix: 🐛 add crossplatform `prei18n-extract` script" This reverts commit 201bd2308a3caf648368b3945d5b73d8cb46c816. * build: 📦 add `shx` as dev dep, use it in `prei18n:extract` script * fix: 🐛 use platform-specific commands for prei18n-extract * chore(i18n): new Crowdin translations (#4084) chore(i18n): synchronize translations from crowdin [skip ci] Co-authored-by: Crowdin Bot <support+bot@crowdin.com> * feat: implement trace framework for analytics (#4060) * init commit * add amplitude ts sdk to package.json * add more comments and documentation * respond to vm comments * respond to cmcewen comments * fix: remove unused constants * init commit * adapt to web * add optional event properties to trace * correct telemetry to analytics * change telemetry to analytics in doc * fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement * respond to zzmp comments * fixes * eliminate unnecessary state * respond to part of zzmp comments * respond to zzmp comments round 2 * fixes * respond to zzmp comments * refactor: wallet specific Option components (#4065) * refactor: wallet specific Option components * fix * fix * fix coinbase wallet logic * injected logic * remove wallet.ts * install metamask * move all into InjectedOption * fix mobile metamask * wip * more mocking * more test fixes * refactor * more special casing * isMetaMask * simplify components * fix imports * fix coinbase wallet * test fix * fix connectors changing * Revert "fix connectors changing" This reverts commit 2acfe645ca506048e599d515674a54b27d12144f. * more to typescript logic instead of jsx * chore(i18n): new Crowdin translations (#4090) * build: upgrade @typescript-eslint (#4095) build: update @typescript-eslint * build: update caniuse-lite (#4093) * test: enforce deps deduplication (#4097) * build: use fewer babel versions * build: dedup * test: test deps dedups * fix: test.yml * fix: typo * test: failing * fix: dedup * fix: dedup * test: comment dedup tests * chore: whitespace * feat: implement token selector events (#4067) * init commit * add amplitude ts sdk to package.json * add more comments and documentation * respond to vm comments * respond to cmcewen comments * fix: remove unused constants * init commit * adapt to web * add optional event properties to trace * correct telemetry to analytics * change telemetry to analytics in doc * fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement * init commit * respond to zzmp comments * add token selected event * fixes * eliminate unnecessary state * respond to part of zzmp comments * respond to zzmp comments round 2 * fixes * respond to zzmp comments * add imported token event and other fixes * also log onKeyPress for suggested tokens * respond to cmcewen comments * chore: updates web3-react, adds key for changing connector order (#4085) * fix connectors changing * update package * add connection name * rename file * de-dupe * cb wallet fix * fix * yarn change * log the key * re-order connections * memoize the key * some updates * rm console * prevent memory leak Co-authored-by: Noah Zinsmeister <noahwz@gmail.com> * feat: implement-page-viewed-event-for-all-main-pages-of-app (#4089) * init commit: initial constants for pages, implement vote page viewed * implement swap * implement pool * remove charts * simplify shouldLogImpression * chore: upgrade to react 18 (#3992) * chore: upgrade to react 18 * fix: update tests * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * fix: revert to prev commmit * rebase * rebase * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * rebase * fix: rebase * fix * eslint fix * fix: package.json changes * fix: package.json changes * fix yarn lock * fix version package.json * fix: downgrade react-router-dom to original * fix: undo modification of .github/workflows/release.yaml * fix: revert cypress testing version update * rebase * rebase * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * rebase * chore: upgrade to react 18 * fix: update tests * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * fix * eslint fix * fix: package.json changes * fix: package.json changes * fix yarn lock * fix version package.json * fix: downgrade react-router-dom to original * fix: undo modification of .github/workflows/release.yaml * fix: revert cypress testing version update * fix * fix: error boundary change * yarn.lock change * fix: cypress tests finally passing due to zzmp redux multicall fix HOORAY * undo service worker changes * build: dedup lockfile * yarn.lock + lint * update snapshot tests * checkpoint * yarn.lock * fix: fix type errors during build * fixes * fix yarn.lock * dedup yarn * fix: import react components explicitly instead of all of react * dedup * yarn.lock * yarn.lock * dedup * yarn * dedup * dedupe use-sync-external-store * fix build issues * dedup use-sync-external-store Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> * chore(web3-react): fix connectEagerly for MetaMask mobile (#4101) * chore(web3-react): fix connectEagerly for MetaMask mobile * fix * build: pause deploy (#4102) * fix: update styled-components in package.json to latest to remove react invalid hook call warnings (#4103) * fix warning vig found by updating styled-components * revert unnecessary yarn.lock changes * reduce unnecessary changes * dedup * manual fix and dedup of yarn.lock * manually dedup @emotion/is-prop-valid * update snapshot tests * build: upgrade prettier to v2.7.1 (#4109) * style: prettier based on v2.2 * 2.7.1 instead? * npx * ^ * add celo chain text colors Co-authored-by: Anas Yousef <anas.y0807@gmail.com> Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com> Co-authored-by: Jesse <31524583+Jesse-Sawa@users.noreply.github.com> Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> Co-authored-by: Kaylee George <62825936+kayleegeorge@users.noreply.github.com> Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> Co-authored-by: Bruno Crosier <bruno.crosier@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com> Co-authored-by: Noah Zinsmeister <noahwz@gmail.com> Co-authored-by: Charles Bachmeier <charlie@genie.xyz> * feat: favorite token on tokenDetail page (#4091) * favorite token on tokenDetail page * make favoriting reusable * export * fix hook call * fixes * fix * fix function * remove files * remove random * fix * fix spaces * fix color * Update settings.json * Update .gitignore * feat: add hook for multi-network token balances (#4104) * add hook for multi-network token balances * add predictable order to network balances * patch some lint issues and code cleanup * chore: add craco and vanilla extract libraries (#4100) * chore: upgrade to react 18 * fix: update tests * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * fix: revert to prev commmit * rebase * rebase * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * rebase * fix: rebase * fix * eslint fix * fix: package.json changes * fix: package.json changes * fix yarn lock * fix version package.json * fix: downgrade react-router-dom to original * fix: undo modification of .github/workflows/release.yaml * fix: revert cypress testing version update * rebase * rebase * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * rebase * chore: upgrade to react 18 * fix: update tests * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * fix * eslint fix * fix: package.json changes * fix: package.json changes * fix yarn lock * fix version package.json * fix: downgrade react-router-dom to original * fix: undo modification of .github/workflows/release.yaml * fix: revert cypress testing version update * fix * fix: error boundary change * yarn.lock change * fix: cypress tests finally passing due to zzmp redux multicall fix HOORAY * undo service worker changes * build: dedup lockfile * yarn.lock + lint * update snapshot tests * checkpoint * yarn.lock * fix: fix type errors during build * fixes * fix yarn.lock * dedup yarn * fix: import react components explicitly instead of all of react * chore: add craco and vanilla extract libraries * add craco config file * Add VE common styles, sprinkles, and themes * Actually add VE common styles, sprinkles, and themes Co-authored-by: Lynn Yu <lynn.yu@uniswap.org> Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com> Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> Co-authored-by: Charles Bachmeier <charlie@genie.xyz> * feat: Kg/explore expanding search bar (#4099) * expanding search * fix focus * making search * kms * ngmi * done * icons * color fix * add animation * fix start state * responsive * mouse * expanded Co-authored-by: Vignesh Mohankumar <me@vig.xyz> * fix: expand state (#4126) expand state * chore: merge main into explore (#4131) * refactor: remove hideRouteDiagram prop (#3763) * fix: Revert "refactor: remove coinbase wallet resetState" (#4081) Revert "refactor: remove coinbase wallet resetState (#4024)" This reverts commit e36722ccb4cd282aa932ff7c7e6082190f3ed131. * feat: add support for Celo (#3915) * feat: Support for Celo * fix: wrong condition * combine celo and alfajores lists * use celo erc20 representation * fix: refactor infura.ts to networks.ts & add celo to rpc urls * feature: add celo contract addresses fix: remove celo from supported gas estimate chains until feature is available * refactor: useUSDCPrice to useStablecoinPrice fix: add celo to supported gas estimate chains * fix: use unique factory address for getting pool address * fix: darkmode background graident * fix: removing a comment left behind * fix: remove bad import * fix: remove dead link until the Celo is live on info.uniswap.org * fix: add asset to common bases & minor refactoring * fix: celo info links point to root info.uniswap.org * fix: change celo token bridge to portal * fix: update redux-multicall to latest version * refactor: for code readability * fix: celo banner colors & remove unused alternative logo * fix: change celo token list to hosted version * fix: update celo banner colors * fix: move celo to the bottom of the network selector list * fix: dedup dependencies @uniswap/router-sdk @uniswap/v3-sdk * fix: refactoring + move Celo above L2s * fix: update celo contract addresses * fix: update celo subgraph * fix: update v3-sdk and smart-order-router versions * fix: move Celo to the bottom of the network selector list * fix: downgrade smart-order-router and add casting fix * fix: downgrade smart-order-router and add casting fix * fix: resolve Pool dependency * fix: bridge chain id types * fix: explorer link test * fix: use quoter v2 ABI in useClientSideV3Trade fro Celo * fix: update connection "infura_rpc" to networks * fix: revert yarn.lock and force install * fix: dedup router and v3 sdk * refactor: mv quoter v2 to client side v3 trade * build: dedup lockfile * feature: add portal ether to common bases * fix: add comment for chains that use QuoterV2 * fix: use token as native asset * fix: supply correct factory address to getPoolAddress call & refactor nativeOnChain method * feature: adjust celo tokens presetned * fix: update celo explorer to celoscan * fix: celo token casting * fix: celo celo explorer it * fix: celo chain info should be consistent with block explorer used. Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> * fix: revert "fix button jump on currency panel" (#4083) fix padding * fix: unsupported chain displays message instead of crash (#4054) * made initial changes for pools page displaying w/ unsupported chains * condensed styling * added chain validation to CTACards and wrote tests for both CTAcards and Pools page * linted changes * switched from snapshot to text matching tests * switched test to use check for text instead of testid * fix: add crossplatform `prei18n-extract` script (#3728) * fix: 🐛 add crossplatform `prei18n-extract` script * fix: 🚨 add newline * Revert "fix: 🐛 add crossplatform `prei18n-extract` script" This reverts commit 201bd2308a3caf648368b3945d5b73d8cb46c816. * build: 📦 add `shx` as dev dep, use it in `prei18n:extract` script * fix: 🐛 use platform-specific commands for prei18n-extract * chore(i18n): new Crowdin translations (#4084) chore(i18n): synchronize translations from crowdin [skip ci] Co-authored-by: Crowdin Bot <support+bot@crowdin.com> * feat: implement trace framework for analytics (#4060) * init commit * add amplitude ts sdk to package.json * add more comments and documentation * respond to vm comments * respond to cmcewen comments * fix: remove unused constants * init commit * adapt to web * add optional event properties to trace * correct telemetry to analytics * change telemetry to analytics in doc * fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement * respond to zzmp comments * fixes * eliminate unnecessary state * respond to part of zzmp comments * respond to zzmp comments round 2 * fixes * respond to zzmp comments * refactor: wallet specific Option components (#4065) * refactor: wallet specific Option components * fix * fix * fix coinbase wallet logic * injected logic * remove wallet.ts * install metamask * move all into InjectedOption * fix mobile metamask * wip * more mocking * more test fixes * refactor * more special casing * isMetaMask * simplify components * fix imports * fix coinbase wallet * test fix * fix connectors changing * Revert "fix connectors changing" This reverts commit 2acfe645ca506048e599d515674a54b27d12144f. * more to typescript logic instead of jsx * chore(i18n): new Crowdin translations (#4090) * build: upgrade @typescript-eslint (#4095) build: update @typescript-eslint * build: update caniuse-lite (#4093) * test: enforce deps deduplication (#4097) * build: use fewer babel versions * build: dedup * test: test deps dedups * fix: test.yml * fix: typo * test: failing * fix: dedup * fix: dedup * test: comment dedup tests * chore: whitespace * feat: implement token selector events (#4067) * init commit * add amplitude ts sdk to package.json * add more comments and documentation * respond to vm comments * respond to cmcewen comments * fix: remove unused constants * init commit * adapt to web * add optional event properties to trace * correct telemetry to analytics * change telemetry to analytics in doc * fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement * init commit * respond to zzmp comments * add token selected event * fixes * eliminate unnecessary state * respond to part of zzmp comments * respond to zzmp comments round 2 * fixes * respond to zzmp comments * add imported token event and other fixes * also log onKeyPress for suggested tokens * respond to cmcewen comments * chore: updates web3-react, adds key for changing connector order (#4085) * fix connectors changing * update package * add connection name * rename file * de-dupe * cb wallet fix * fix * yarn change * log the key * re-order connections * memoize the key * some updates * rm console * prevent memory leak Co-authored-by: Noah Zinsmeister <noahwz@gmail.com> * feat: implement-page-viewed-event-for-all-main-pages-of-app (#4089) * init commit: initial constants for pages, implement vote page viewed * implement swap * implement pool * remove charts * simplify shouldLogImpression * chore: upgrade to react 18 (#3992) * chore: upgrade to react 18 * fix: update tests * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * fix: revert to prev commmit * rebase * rebase * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * rebase * fix: rebase * fix * eslint fix * fix: package.json changes * fix: package.json changes * fix yarn lock * fix version package.json * fix: downgrade react-router-dom to original * fix: undo modification of .github/workflows/release.yaml * fix: revert cypress testing version update * rebase * rebase * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * rebase * chore: upgrade to react 18 * fix: update tests * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * fix * eslint fix * fix: package.json changes * fix: package.json changes * fix yarn lock * fix version package.json * fix: downgrade react-router-dom to original * fix: undo modification of .github/workflows/release.yaml * fix: revert cypress testing version update * fix * fix: error boundary change * yarn.lock change * fix: cypress tests finally passing due to zzmp redux multicall fix HOORAY * undo service worker changes * build: dedup lockfile * yarn.lock + lint * update snapshot tests * checkpoint * yarn.lock * fix: fix type errors during build * fixes * fix yarn.lock * dedup yarn * fix: import react components explicitly instead of all of react * dedup * yarn.lock * yarn.lock * dedup * yarn * dedup * dedupe use-sync-external-store * fix build issues * dedup use-sync-external-store Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> * chore(web3-react): fix connectEagerly for MetaMask mobile (#4101) * chore(web3-react): fix connectEagerly for MetaMask mobile * fix * build: pause deploy (#4102) * fix: update styled-components in package.json to latest to remove react invalid hook call warnings (#4103) * fix warning vig found by updating styled-components * revert unnecessary yarn.lock changes * reduce unnecessary changes * dedup * manual fix and dedup of yarn.lock * manually dedup @emotion/is-prop-valid * update snapshot tests * build: upgrade prettier to v2.7.1 (#4109) * style: prettier based on v2.2 * 2.7.1 instead? * npx * ^ * refactor: adding safe getter for ChainInfo (#4110) * replaced CHAIN_INFO access with a function call * updated CTACard tests to work with getChainInfo * updated typechecking, removed console.log * build: Revert "build: pause deploy" (#4107) * Revert "build: pause deploy (#4102)" This reverts commit 3a1ea3df85a60fd32f47b67ce933a6edd239384f. * prettier * refactor: remaining changes from the large celo merge (#4088) * refactor: useUSDCValue -> useStablecoinValue * refactor: use the isCelo() helper * refactor: remove unneeded white space * chore: upgrades react-router-dom, fixes dev-mode linking (#4115) * fix: stale route * fix: add e2e test * fix: update e2e test * fix: fixes Popover arrow positioning (#4119) fix: fix arrow position * build: don't fail cypress on unhandled exception (#4122) * fix: catch vibrant failure (#4123) fix: catch CORS error * feat: enable 1bp optimism fee tier (#4124) enable new optimism fee tier * balance summary fix * rm isChainAllowed Co-authored-by: Anas Yousef <anas.y0807@gmail.com> Co-authored-by: Jesse <31524583+Jesse-Sawa@users.noreply.github.com> Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> Co-authored-by: Kaylee George <62825936+kayleegeorge@users.noreply.github.com> Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> Co-authored-by: Bruno Crosier <bruno.crosier@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com> Co-authored-by: Noah Zinsmeister <noahwz@gmail.com> Co-authored-by: Sam Chen <chenxsan@gmail.com> * feat: share popout (#4112) * share popout * tweet * remove yarn update * update unnecessary adds * naming * success state * tweet * new window * new twitter window position and fix network display * fix css and add promise * comments * quick fixes * feat: Kg/explore network selector filter UI (#4129) * initial network * search bar fix * fix menu items * fix * renaming and remove comment * Update package.json * Update yarn.lock * Update yarn.lock * Update yarn.lock * update chain info * fix props * moving to another PR * fix: search responsiveness and expand state (#4142) * fix search expand * search moves to newline * chore: merge main into explore (#4153) * merge main * deprecated * deprecate colors * chore: merge main into explore (#4164) * merge main * re-work App.tsx * feat: add new colors to explore page (#4139) * update color theme file * update explore colors * fix * rename * hover state colors * table highlight * update colors! * small changes * Update settings.json * feat: different table states (#4166) * error state * center * filter at table level (error) * Update settings.json * filter at table * add hook * fix hook, add no tokens state * favorite in hook * add favorites part 2 * fix import * revert toptokens data type * componenet * feat: explore state management (#4171) * initial * add jotai * refile * save file * change style * reset filter string query * Update settings.json * location * feat: token details mobile responsiveness (#4172) * initial * gap * flexy * Update settings.json * flex box gains * fix: fix mobile padding on table and show header (#4168) * initial * fix padding * fix alignment * fix padding * Update settings.json * feat: change token price sparkline colors (#4173) * fix: make all token row content clickable (#4183) * initial * link content to token details * Update settings.json * header name token name label * cursor fix * Update settings.json * feat: token details small mobile views (320px min) (#4185) * initial * make min width 320 * Update settings.json * no mobile use * fix: hover color for TokenTable header cell state (#4184) * initial * change header cell hover state * add * Update settings.json * padding 4 to 8 * change header cell hover state * add * padding 4 to 8 * Update settings.json * reusability * Update settings.json * Update index.tsx * fix: Explore color changes (#4195) * initial * initial color changes * Update settings.json * color changes * fix: make token details loading state responsive (#4203) * initial * skeleton width * fix jumps * Update settings.json * rm wrapper * fix spaces * rm random height * fix props * fix: update colors on token details page (#4201) * initial * update token detail colors * Update settings.json * feat: explore table sort (#4202) * fix some sort style nits * style fixes * style fixes * sort functionality * refactor(explore): sortfn input from vig (#4209) sortfn input from vig * ts nits (#4210) * fix: add shimmer animation to Explore loading bubbles (#4211) * initial * add shimmer animation to loading bubbles * update shimmer * export * animation load * shared loaded * Update settings.json * feat: add error state for network balance summary (#4215) error state * feat: network badge on token details page (#4212) * initial network badge * update colors * fix color schema * update chain usage * change loading color * rm css * update naming * rename colors * feat: TokenDetailsPagequery (#4179) * general query for token details page * fix conditional useEffect * feat: amplitude analytics in explore, and make entire token row clickable (#4149) * initial * page log * token select * explore token page amplitude * add storage * comment * Update settings.json * rebased new * Update settings.json * fixes * fix amy * rebase with state management * rebase * Update TokenTable.tsx * Delete TokenTable.tsx * make row clickable and send event * rip out unnecessary leftover event * remove listNumber prop and derive from tokenListIndex directly Co-authored-by: Lynn Yu <lynn.yu@uniswap.org> * fix: rm underline for token details (#4255) rm underline * feat: initial price charts (#4254) * Created initial price chart using static data * addressed PR comments * applied theme, removed unused visx dependencies * chore: merge main into explore (#4260) * refactor: remove hideRouteDiagram prop (#3763) * fix: Revert "refactor: remove coinbase wallet resetState" (#4081) Revert "refactor: remove coinbase wallet resetState (#4024)" This reverts commit e36722ccb4cd282aa932ff7c7e6082190f3ed131. * feat: add support for Celo (#3915) * feat: Support for Celo * fix: wrong condition * combine celo and alfajores lists * use celo erc20 representation * fix: refactor infura.ts to networks.ts & add celo to rpc urls * feature: add celo contract addresses fix: remove celo from supported gas estimate chains until feature is available * refactor: useUSDCPrice to useStablecoinPrice fix: add celo to supported gas estimate chains * fix: use unique factory address for getting pool address * fix: darkmode background graident * fix: removing a comment left behind * fix: remove bad import * fix: remove dead link until the Celo is live on info.uniswap.org * fix: add asset to common bases & minor refactoring * fix: celo info links point to root info.uniswap.org * fix: change celo token bridge to portal * fix: update redux-multicall to latest version * refactor: for code readability * fix: celo banner colors & remove unused alternative logo * fix: change celo token list to hosted version * fix: update celo banner colors * fix: move celo to the bottom of the network selector list * fix: dedup dependencies @uniswap/router-sdk @uniswap/v3-sdk * fix: refactoring + move Celo above L2s * fix: update celo contract addresses * fix: update celo subgraph * fix: update v3-sdk and smart-order-router versions * fix: move Celo to the bottom of the network selector list * fix: downgrade smart-order-router and add casting fix * fix: downgrade smart-order-router and add casting fix * fix: resolve Pool dependency * fix: bridge chain id types * fix: explorer link test * fix: use quoter v2 ABI in useClientSideV3Trade fro Celo * fix: update connection "infura_rpc" to networks * fix: revert yarn.lock and force install * fix: dedup router and v3 sdk * refactor: mv quoter v2 to client side v3 trade * build: dedup lockfile * feature: add portal ether to common bases * fix: add comment for chains that use QuoterV2 * fix: use token as native asset * fix: supply correct factory address to getPoolAddress call & refactor nativeOnChain method * feature: adjust celo tokens presetned * fix: update celo explorer to celoscan * fix: celo token casting * fix: celo celo explorer it * fix: celo chain info should be consistent with block explorer used. Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> * fix: revert "fix button jump on currency panel" (#4083) fix padding * fix: unsupported chain displays message instead of crash (#4054) * made initial changes for pools page displaying w/ unsupported chains * condensed styling * added chain validation to CTACards and wrote tests for both CTAcards and Pools page * linted changes * switched from snapshot to text matching tests * switched test to use check for text instead of testid * fix: add crossplatform `prei18n-extract` script (#3728) * fix: 🐛 add crossplatform `prei18n-extract` script * fix: 🚨 add newline * Revert "fix: 🐛 add crossplatform `prei18n-extract` script" This reverts commit 201bd2308a3caf648368b3945d5b73d8cb46c816. * build: 📦 add `shx` as dev dep, use it in `prei18n:extract` script * fix: 🐛 use platform-specific commands for prei18n-extract * chore(i18n): new Crowdin translations (#4084) chore(i18n): synchronize translations from crowdin [skip ci] Co-authored-by: Crowdin Bot <support+bot@crowdin.com> * feat: implement trace framework for analytics (#4060) * init commit * add amplitude ts sdk to package.json * add more comments and documentation * respond to vm comments * respond to cmcewen comments * fix: remove unused constants * init commit * adapt to web * add optional event properties to trace * correct telemetry to analytics * change telemetry to analytics in doc * fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement * respond to zzmp comments * fixes * eliminate unnecessary state * respond to part of zzmp comments * respond to zzmp comments round 2 * fixes * respond to zzmp comments * refactor: wallet specific Option components (#4065) * refactor: wallet specific Option components * fix * fix * fix coinbase wallet logic * injected logic * remove wallet.ts * install metamask * move all into InjectedOption * fix mobile metamask * wip * more mocking * more test fixes * refactor * more special casing * isMetaMask * simplify components * fix imports * fix coinbase wallet * test fix * fix connectors changing * Revert "fix connectors changing" This reverts commit 2acfe645ca506048e599d515674a54b27d12144f. * more to typescript logic instead of jsx * chore(i18n): new Crowdin translations (#4090) * build: upgrade @typescript-eslint (#4095) build: update @typescript-eslint * build: update caniuse-lite (#4093) * test: enforce deps deduplication (#4097) * build: use fewer babel versions * build: dedup * test: test deps dedups * fix: test.yml * fix: typo * test: failing * fix: dedup * fix: dedup * test: comment dedup tests * chore: whitespace * feat: implement token selector events (#4067) * init commit * add amplitude ts sdk to package.json * add more comments and documentation * respond to vm comments * respond to cmcewen comments * fix: remove unused constants * init commit * adapt to web * add optional event properties to trace * correct telemetry to analytics * change telemetry to analytics in doc * fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement * init commit * respond to zzmp comments * add token selected event * fixes * eliminate unnecessary state * respond to part of zzmp comments * respond to zzmp comments round 2 * fixes * respond to zzmp comments * add imported token event and other fixes * also log onKeyPress for suggested tokens * respond to cmcewen comments * chore: updates web3-react, adds key for changing connector order (#4085) * fix connectors changing * update package * add connection name * rename file * de-dupe * cb wallet fix * fix * yarn change * log the key * re-order connections * memoize the key * some updates * rm console * prevent memory leak Co-authored-by: Noah Zinsmeister <noahwz@gmail.com> * feat: implement-page-viewed-event-for-all-main-pages-of-app (#4089) * init commit: initial constants for pages, implement vote page viewed * implement swap * implement pool * remove charts * simplify shouldLogImpression * chore: upgrade to react 18 (#3992) * chore: upgrade to react 18 * fix: update tests * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * fix: revert to prev commmit * rebase * rebase * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * rebase * fix: rebase * fix * eslint fix * fix: package.json changes * fix: package.json changes * fix yarn lock * fix version package.json * fix: downgrade react-router-dom to original * fix: undo modification of .github/workflows/release.yaml * fix: revert cypress testing version update * rebase * rebase * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * rebase * chore: upgrade to react 18 * fix: update tests * fix: fix lint issues and remove unnecessary react hooks testing library * fix: add types for stricter typescript checks * fix: fix additional typescript check issues * fix * eslint fix * fix: package.json changes * fix: package.json changes * fix yarn lock * fix version package.json * fix: downgrade react-router-dom to original * fix: undo modification of .github/workflows/release.yaml * fix: revert cypress testing version update * fix * fix: error boundary change * yarn.lock change * fix: cypress tests finally passing due to zzmp redux multicall fix HOORAY * undo service worker changes * build: dedup lockfile * yarn.lock + lint * update snapshot tests * checkpoint * yarn.lock * fix: fix type errors during build * fixes * fix yarn.lock * dedup yarn * fix: import react components explicitly instead of all of react * dedup * yarn.lock * yarn.lock * dedup * yarn * dedup * dedupe use-sync-external-store * fix build issues * dedup use-sync-external-store Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> * chore(web3-react): fix connectEagerly for MetaMask mobile (#4101) * chore(web3-react): fix connectEagerly for MetaMask mobile * fix * build: pause deploy (#4102) * fix: update styled-components in package.json to latest to remove react invalid hook call warnings (#4103) * fix warning vig found by updating styled-components * revert unnecessary yarn.lock changes * reduce unnecessary changes * dedup * manual fix and dedup of yarn.lock * manually dedup @emotion/is-prop-valid * update snapshot tests * build: upgrade prettier to v2.7.1 (#4109) * style: prettier based on v2.2 * 2.7.1 instead? * npx * ^ * refactor: adding safe getter for ChainInfo (#4110) * replaced CHAIN_INFO access with a function call * updated CTACard tests to work with getChainInfo * updated typechecking, removed console.log * build: Revert "build: pause deploy" (#4107) * Revert "build: pause deploy (#4102)" This reverts commit 3a1ea3df85a60fd32f47b67ce933a6edd239384f. * prettier * refactor: remaining changes from the large celo merge (#4088) * refactor: useUSDCValue -> useStablecoinValue * refactor: use the isCelo() helper * refactor: remove unneeded white space * chore: upgrades react-router-dom, fixes dev-mode linking (#4115) * fix: stale route * fix: add e2e test * fix: update e2e test * fix: fixes Popover arrow positioning (#4119) fix: fix arrow position * build: don't fail cypress on unhandled exception (#4122) * fix: catch vibrant failure (#4123) fix: catch CORS error * feat: enable 1bp optimism fee tier (#4124) enable new optimism fee tier * chore: move prettier, jest-styled-components to devDependencies (#4128) * change package * yarn.lock * feat: implement connect wallet category events (#4111) * init commit * wallet connected event init commit * add received_swap_quote event property * add page context, connect wallet event log * add received_swap_quote property * fix typo * respond to cmcewen comments * respond to vm comments * move trace to app.tsx from header * respond to vm comments * build: change project name to @uniswap/interface (#4125) * fix: increase celo blocksPerFetch to 5 to improve interface performance (#4130) * init commit * revert yarn.lock changes * update test snapshots * build: lock jest-styled-components@7.0.7 (#4132) * fix: don't toggle desktop NetworkSelector on click (#4134) fix: don't NetworkSelector onClick on desktop * chore: access router data with hooks (#4121) * chore: access router data with hooks * chore: clean RouteComponentProps * chore: use children instead of render * add import * test: fix swap test flake (#4135) * remove all the funky logic * clear stuff * uncomment some tests * remove expert mode tests * skip these tests again, smh * fix: sync chain query parameter (#4019) * replaceURLChain * reorder stuff * don't use usePrevious for previousChainId * remove the replace param call in promise * variable names * comment * confirm isActive * wrong place for isActive * change ret type * add comments * check if not previous chain id * fix: unused onClickOutside reference (#4140) * refactor: clean floating Route (#4144) * fix: increase Polygon gas limit (#3882) * Update graph link * Add Gas over ride temp for Polygon * removal of personal tweaks * Update index.tsx * reset to original file * missing EOL * Update useClientSideV3Trade.ts * remove space * fix: add celo gas override (#4147) fix: add celo gas override to circumvent 'out of gas' error from multicall * build: add global jest-styled-components config (#4148) * add test.config.ts * don't need per file * comment * ts -> js * rm test.config.js? * update snapshots * update jest-styled-components * style: Adds "deprecated_" prefix to all non-theme colors (#4146) * Add deprecated_ label to white and black * Add deprecated_ label to text1 through text5 * Add deprecated_ label for bg0 through bg6 * Add deprecated_ prefix to remaining colors * Add deprecated_ prefix to direct style references * Add deprecated_ prefix to all remaining colors * Update link color * Fix 'deprecated_white' -> theme.deprecated_white * Update snapshots * style: updating ui on unsupported network (#4138) * initial changes * disabled all swap ui buttons when on unsupported chain * implementing Cal's requests to change sizing and copy on pools * updated snapshots * reverted changed snapshots * updated unsupported network test * fixing deprecated colors missing * build: only test for highest yarn-deduplicate strategy (#4154) * build: only test for highest yarn-deduplicate strategy * remove exclusions * fix: fix swap details expanded not working on local build (#4156) fix swap details expanded not working * refactor: remove unused SwapPoolTabs (#4159) * chore: clean useless code * clean unused code * chore(i18n): new Crowdin translations (#4155) chore(i18n): synchronize translations from crowdin [skip ci] Co-authored-by: Crowdin Bot <support+bot@crowdin.com> * feat: implement other swap events part 1 (#4151) * init commit * fix prettier errors * check node env in vercel * add shouldLogImpression to TraceEvent * chore: upgrade cypress (#4161) * chore: upgrade cypress * 10.3.1 * feat: add updated theme colors (#4141) * add colors * Update settings.json * Update settings.json * remove comments * rename * feat: Web 214 implement the main submit swap event (#4061) * init commit * add amplitude ts sdk to package.json * add more comments and documentation * respond to vm comments * respond to cmcewen comments * fix: remove unused constants * init commit * adapt to web * add optional event properties to trace * correct telemetry to analytics * init commit * change telemetry to analytics in doc * init commit * fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement * add element name constant * init commit * correct price_impact calculation * resolve vm comments * fixes in response to comments * respond to vm * use ALL significant digits for token amounts * create helper function getPriceImpactPercentageNumber * 4 decimal points for percentages * change percentage to basis points units * feat: implement swap quote received event (#4165) * init commit * add amplitude ts sdk to package.json * add more comments and documentation * respond to vm comments * respond to cmcewen comments * fix: remove unused constants * init commit * adapt to web * add optional event properties to trace * correct telemetry to analytics * init commit * change telemetry to analytics in doc * init commit * fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement * add element name constant * init commit * correct price_impact calculation * resolve vm comments * fixes in response to comments * respond to vm * use ALL significant digits for token amounts * init commit * logged all properties * create helper function getPriceImpactPercentageNumber * 4 decimal points for percentages * price percentage fn * only log event on FIRST price fetch * respond to cmcewen comments * fix: scroll to top only when pathname changes (#4180) * fix: Update V2 Pool Document link (#4188) Update V2 Pool Document link Current link line 163 point to old documents, and gives error page changed to https://docs.uniswap.org/protocol/V2/concepts/core-concepts/pools current version of pool documents for V2 * fix: updated external docs link for Propose (#4186) FIxed Propose External Docs Link * chore: upgrade react-router-dom to v6 (#4143) * chore: upgrade react-router-dom to v6 * migrate Redirect to Navigate * use Routes instead of Switch * migrate useHistory to useNavigate * use To type * use element * work around activeClassName * fix typing for useParams * deduplicate * fix Navigate * add e2e tests * visit /swap directly Co-authored-by: Vignesh Mohankumar <me@vig.xyz> * style: Add Deprecated prefix to ThemedText components (#4192) * Add Deprecated prefix to ThemedText components * Fix lint errors * fix: update critical red HEX (#4191) change red * feat: Web 262 user model custom properties first PR (#4190) * init commit * abstract amplitude stuff away to separate function * feat: remaining swap events (#4169) * init commit * add amplitude ts sdk to package.json * add more comments and documentation * respond to vm comments * respond to cmcewen comments * fix: remove unused constants * init commit * adapt to web * add optional event properties to trace * correct telemetry to analytics * init commit * change telemetry to analytics in doc * init commit * fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement * add element name constant * init commit * correct price_impact calculation * resolve vm comments * fixes in response to comments * respond to vm * use ALL significant digits for token amounts * init commit * logged all properties * create helper function getPriceImpactPercentageNumber * 4 decimal points for percentages * price percentage fn * only log event on FIRST price fetch * init commit * add swap transaction completed event * respond to cmcewen comments * add two events * remove console.logs * move transaction completed logging to reducer * simplify and remove unnecessary logic and constants * respond to cmcewen comments * respond to cmcewen comments * respond to vm comment * feat: add time / duration based event properties to swap events (#4193) * init commit * remove absolute value in date calc * all the events are now logged properly plus changed native token address to NATIVE * add documentation line * remove unnecessary prop * respond to vm comments * merge and rename util method * respond to vm comments again * feat: fetch stablecoin price with SOR, PI warning (#4217) * feat: fetch stablecoins price with SOR, PI warning * calculate realized price impact * remove unrelated changes * dupe import * pr feedback * use the same calculation function for PI * use proper var * feat: update unsupported token list (#4219) * feat: new swap events and properties in taxonomy (#4204) * init commit * remove absolute value in date calc * all the events are now logged properly plus changed native token address to NATIVE * add documentation line * remove unnecessary prop * init * add approve token event * fix build * add route event properties * fix build * respond to vm comments * respond to vm comments * remove routes properties * feat(risk): tune down cache (#4208) * tune down cache from 7 days to 12 hours * minimal cache time * fix: hide text cursor on network selector hover (#4249) Dont' show text cursor when hovering over network dropdown text * feat: initial FeatureFlagProvider (#4248) * initial * add to index * show more logic * split up * nvm combine * combine more * loading state for the app * no conditional * rm var * comment * move comment * add control specifically * feat: amplitude logs is_reconnect (#4214) * modified redux state to track wallet connections to properly log reconnects * linted and removed console.log * fixes for lynn's comments + documenting * fix: update SOR to refundETH on high price impact ETH trades (#4251) fix lock * feat: theme color updates under feature flag (#4252) * toggle * fixed position * im bad at spelling * rm button * fix * add feature flag * naming * rm blue5 * uppercase * rm file * attempting to resolve some theme/unused var issues Co-authored-by: Anas Yousef <anas.y0807@gmail.com> Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com> Co-authored-by: Jesse <31524583+Jesse-Sawa@users.noreply.github.com> Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> Co-authored-by: Kaylee George <62825936+kayleegeorge@users.noreply.github.com> Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> Co-authored-by: Bruno Crosier <bruno.crosier@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com> Co-authored-by: Noah Zinsmeister <noahwz@gmail.com> Co-authored-by: Sam Chen <chenxsan@gmail.com> Co-authored-by: Rachel-Eichenberger <60412342+Rachel-Eichenberger@users.noreply.github.com> Co-authored-by: Daniel James <danielcolinjames@gmail.com> Co-authored-by: Akshit Choudhary <akshitchoudhary007@gmail.com> Co-authored-by: Vignesh Mohankumar <me@vig.xyz> Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com> Co-authored-by: David Walsh <davidwalsh83@gmail.com> Co-authored-by: Emily Williams <emag3m@gmail.com> * patch yarn.lock * chore: merge main into explore (#4264) merge main * fix: use absolute path for TokenRow Link (#4266) * feat: feature flag for explore (#4265) * deduplicate yarn.lock * build: default enabled flag on local (#4267) default flag on local * chore: Revert "chore: add craco and vanilla extract libraries (#4100)" (#4269) Revert "chore: add craco and vanilla extract libraries (#4100)" This reverts commit fa284d85f1c3cc9f9d276d2e0207ebc1fc5de656. * feat: Token safety labels/speedbumps (#4200) * setup warning modal * modal pops up on direct link to token details * updated styles based on fred's review, fixed error where token safety was innacurate on first site visit * test: updating snapshot changed by token safety (#4272) updated snapshot changed by token safety merge * refactor: moved token detail price into chart (#4274) * moved token price and delta into chart, expanded hoverability for crosshair * fix: update theme color files on explore (#4277) fix theme * fix: theme add hover state and flyout colors (#4279) * add flyout * fix hover * feat(token-details): lazy load some heavy stuff (#4282) * chore: merge main into explore (#4281) merge main into explore * feat: token balances across networks -- footer view for token details page (#4194) * initial * initial footer * network balances * alphabetize * add smallest media breakpoint * Update colors.ts * rm console log * add loading and error state * fix multiple vs single * updates * updates * fix * Update settings.json * import fix * test: update snapshots based on color change (#4287) * lint errors * build: declare d3-curve-circlecorners types (#4288) * fix: merging explore to main nits (#4289) nits Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com> Co-authored-by: matteenm <105068213+matteenm@users.noreply.github.com> Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com> Co-authored-by: Charles Bachmeier <charles@bachmeier.io> Co-authored-by: Anas Yousef <anas.y0807@gmail.com> Co-authored-by: Jesse <31524583+Jesse-Sawa@users.noreply.github.com> Co-authored-by: Zach Pomerantz <zzmp@uniswap.org> Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> Co-authored-by: Bruno Crosier <bruno.crosier@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com> Co-authored-by: Noah Zinsmeister <noahwz@gmail.com> Co-authored-by: Charles Bachmeier <charlie@genie.xyz> Co-authored-by: Lynn Yu <lynn.yu@uniswap.org> Co-authored-by: Vignesh Mohankumar <me@vig.xyz> Co-authored-by: Sam Chen <chenxsan@gmail.com> Co-authored-by: Rachel-Eichenberger <60412342+Rachel-Eichenberger@users.noreply.github.com> Co-authored-by: Daniel James <danielcolinjames@gmail.com> Co-authored-by: Akshit Choudhary <akshitchoudhary007@gmail.com> Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: David Walsh <davidwalsh83@gmail.com> Co-authored-by: Emily Williams <emag3m@gmail.com>
70 lines
2.3 KiB
TypeScript
70 lines
2.3 KiB
TypeScript
import { CurrencyAmount, Token } from '@uniswap/sdk-core'
|
|
import { SupportedChainId } from 'constants/chains'
|
|
import { gql } from 'graphql-request'
|
|
import { useEffect, useState } from 'react'
|
|
|
|
type NetworkTokenBalancesMap = Partial<Record<SupportedChainId, CurrencyAmount<Token>>>
|
|
|
|
interface useNetworkTokenBalancesResult {
|
|
data: NetworkTokenBalancesMap | null
|
|
error: null | string
|
|
loading: boolean
|
|
}
|
|
|
|
interface useNetworkTokenBalancesArgs {
|
|
address: string
|
|
}
|
|
|
|
export function useNetworkTokenBalances({ address }: useNetworkTokenBalancesArgs): useNetworkTokenBalancesResult {
|
|
const [data, setData] = useState<NetworkTokenBalancesMap | null>(null)
|
|
const [error, setError] = useState<string | null>(null)
|
|
const [loading, setLoading] = useState(false)
|
|
|
|
const query = gql``
|
|
|
|
useEffect(() => {
|
|
const FAKE_TOKEN_NETWORK_BALANCES = {
|
|
[SupportedChainId.ARBITRUM_ONE]: CurrencyAmount.fromRawAmount(
|
|
new Token(SupportedChainId.ARBITRUM_ONE, address, 18),
|
|
10e18
|
|
),
|
|
[SupportedChainId.MAINNET]: CurrencyAmount.fromRawAmount(new Token(SupportedChainId.MAINNET, address, 18), 1e18),
|
|
[SupportedChainId.RINKEBY]: CurrencyAmount.fromRawAmount(new Token(SupportedChainId.RINKEBY, address, 9), 10e18),
|
|
}
|
|
|
|
const fetchNetworkTokenBalances = async (address: string): Promise<NetworkTokenBalancesMap | void> => {
|
|
const waitRandom = (min: number, max: number): Promise<void> =>
|
|
new Promise((resolve) => setTimeout(resolve, min + Math.round(Math.random() * Math.max(0, max - min))))
|
|
try {
|
|
console.log('useNetworkTokenBalances.fetchNetworkTokenBalances', query)
|
|
setLoading(true)
|
|
setError(null)
|
|
console.log('useNetworkTokenBalances.fetchNetworkTokenBalances', address)
|
|
await waitRandom(250, 2000)
|
|
if (Math.random() < 0.05) {
|
|
throw new Error('fake error')
|
|
}
|
|
return FAKE_TOKEN_NETWORK_BALANCES
|
|
} catch (e) {
|
|
setError('something went wrong')
|
|
} finally {
|
|
setLoading(false)
|
|
}
|
|
}
|
|
setLoading(true)
|
|
setError(null)
|
|
fetchNetworkTokenBalances(address)
|
|
.then((data) => {
|
|
if (data) setData(data)
|
|
})
|
|
.catch((e) => setError(e))
|
|
.finally(() => setLoading(false))
|
|
}, [address, query])
|
|
|
|
return {
|
|
data,
|
|
error,
|
|
loading,
|
|
}
|
|
}
|