Compare commits

...

151 Commits

Author SHA1 Message Date
Eric Zhong
1dbd3240a3 feat: Add protcol.MIXED to protocols (#4334)
Add protcol.MIXED to protocols
2022-08-11 17:13:49 -04:00
Eric Zhong
47e6c0891e feat: Add support for mixed routes in the interface (#4181)
* Expand typing to match new QuoteResponse from routing api

* lint autofix

* Expand InterfaceTrade class to match router-sdk and allow mixedroutes

* Add new routing-api poolInRoute logic for client side trade

* eslint fix ==

* Add custom mxiedProtocolBadge and add into badgeDiagram

* Bump router-sdk to published version, and install latest local SOR

* git checkout main yarn.lock && yarn && npx yarn-deduplicate

* Bump SOR to 2.9.2

* bump SOR to 2.9.2

* Update yarn.lock

* revert slice.ts

* Add guesstimate logic for mixedRoutes

* Oops wrong pool import lol

* Add beta url + expand protocols array

* Add forceMixedRoutes for testing

* Fix cyrpress build issue: no-loop-func

* Change to prod url and remove testing param

* remove protocol flag

* Revisions: getRouteProtocol helper, fix gas acc for mixed route

* revert protocols array abck

* Remove :Protocol
2022-08-11 16:40:55 -04:00
Kaylee George
a6e35ed70f fix: fix naming in pricechart (#4332)
fix
2022-08-11 19:50:19 +00:00
Kaylee George
f570c3fa06 fix: update time option menu for token details and colors to match theme file (#4322)
* fix time options and colors

* fix line height

* color change
2022-08-11 19:35:34 +00:00
Vignesh Mohankumar
50556a295f test: skip fetchTokenList tests (#4330)
skip token list tests
2022-08-11 19:00:44 +00:00
cartcrom
acdca350a6 refactor: removing duplicate AccountDetails code (#4329)
fixed redundant code
2022-08-11 14:03:46 -04:00
Vignesh Mohankumar
fe55c7ae7a fix: increase Polygon auto-slippage min (#4327)
* fix: increase Polygon auto-slippage min

* comment

* update percent
2022-08-11 16:15:02 +00:00
Charles Bachmeier
8dbc91ee6b feat: Add utility code for NFT Features (#4256)
* import nft utilities

* re-add featureflag provider

* add back in useCurrencyBalanceString fn

* remove static assets for separate pr

* remove resolutions, swap dev and regular dependencies, respond to comments

* remove currently unused dependencies and resynth .lock

* build: update lockfile

* build: update lockfile

* remove env check

* useCurrencyBalanceString as fn

* remove supported_Wallets until wallet component merged in

* make Atoms an interface

* update abis

* remove outdated comment

* update usedebounce hook

* remove useDarkMode

* remove useLazyEffect

* remove getEtherscan helper fn

* remove useLastWallet

* remove useWindowDimensions

* refactor hooks

* move hooks from nft to general folder

* add walletBalanceInterface and remove wrongNetwork hook

* remove empty obj

* remove ethers imports

* fixed comparison

* same line eslint ignore

* gtag removed

* revert

* revert

* build: update lockfile

* remove walletinfo interface

* remove newline

* remove tslinst exception from isMobile

* remove hiding linter warnings

* remove unused util

* fix linter warnings

Co-authored-by: Charles Bachmeier <charlie@genie.xyz>
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
2022-08-10 16:38:23 -07:00
lynn
783f197463 feat: polish mobile explore table (#4295)
* test init

* breakpoint at 540

* fix nav link

* polishes

* respond to kaylee comments

* fix spacings

* ensure up to 8 digits shown for price on all size screens as per fred guidance
2022-08-10 18:06:11 -04:00
Vignesh Mohankumar
4b7c9782b5 test: fix swap test's select token copy (#4324) 2022-08-10 17:45:28 -04:00
Enzo Ferey
f109bfbb6a refactor: removes unused useFastForwardBlockNumber (#4297)
* Remove unused code

* Remove useFastForwardBlockNumber hook.

* Remove fastForward function.
2022-08-10 21:01:18 +00:00
Vignesh Mohankumar
baf00f203a feat: use filterTimeAtom for PriceChart (#4323)
* feat: use filterTimeAtom

* comment
2022-08-10 16:47:28 -04:00
github-actions[bot]
1309b1f11b chore(i18n): new Crowdin translations (#4290)
chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-10 12:35:18 -07:00
Vignesh Mohankumar
a146c93285 fix: update TokenTable loading row count (#4319) 2022-08-10 15:26:36 -04:00
Kaylee George
53cccef570 fix: change background color on Explore table (#4318)
change background color
2022-08-10 19:16:04 +00:00
cartcrom
b26c2bbc98 feat: added token sparklines to explore page (#4307)
* added sparklines, fixed overlay issue
* refactored, made LineChart generic
* memoized line and sparkline charts, used theme z-index
2022-08-10 15:15:41 -04:00
Callil Capuozzo
4b5246394b feat: update Swap styles, update theme colors (#4294)
* toggle

* fixed position

* im bad at spelling

* rm button

* fix

* initial

* fix

* styles

* iteration

* minor updates

* additions

* updates

* rm file

* color update

* updates

* start feature flag

* more flagging

* FLAGZ

* even more flagging

* flagbergasted

* more

* minor updates

* updates

* lets go

* merge

* merge fix

* merge fixes

* theme

* Merge remote-tracking branch 'origin/kg/explore-colorChanges2' into swap_and_colors

* Fix merge conflicts

* themeUpdates

* Update colors based on Phil's latest

* Add new default gradients

* toggle

* fixed position

* im bad at spelling

* rm button

* initial

* fix

* styles

* iteration

* minor updates

* additions

* updates

* rm file

* color update

* updates

* start feature flag

* more flagging

* FLAGZ

* even more flagging

* flagbergasted

* more

* minor updates

* updates

* lets go

* Merge remote-tracking branch 'origin/kg/explore-colorChanges2' into swap_and_colors

* merge

* Fix merge conflicts

* merge fixes

* theme

* themeUpdates

* Update colors based on Phil's latest

* Add new default gradients

* update swap index

* fix merge bugs

* Tweak swap

* update from main

* Fix merge issues and color bug

* Update index.test.tsx.snap

* Remove un-used constants

* updates

* font

* add space

* style

* style

* style

* hover state

* color fixes

* meh

* Update index.tsx

* fix conflict

Co-authored-by: Kaylee George <62825936+kayleegeorge@users.noreply.github.com>
2022-08-10 19:03:30 +00:00
David Walsh
18b93613cd fix: Ensure proper cursor for network dropdown (#4302) 2022-08-10 12:05:02 -04:00
cartcrom
1f78c236a9 fix: phaseflagging token import modals (#4317)
added phase flag check to conditionally render old vs new token import modal
2022-08-10 11:57:13 -04:00
Charles Bachmeier
09035643c3 ci: add .vercel to gitignore (#4315)
add .vercel to gitignore

Co-authored-by: Charles Bachmeier <charlie@genie.xyz>
2022-08-09 17:05:04 -07:00
cartcrom
97be3bcd05 fix: token selector spacing (#4314)
* fixed issue
* updated snapshot
2022-08-09 18:02:54 -04:00
Charles Bachmeier
a6de430cf3 feat: Phase 1 flag (#4310)
* add phase 1 feature flag

* update label text

Co-authored-by: Charles Bachmeier <charlie@genie.xyz>
2022-08-09 14:52:21 -07:00
cartcrom
b8b44a6eb2 fix: token safety icon not under phase0 flag (#4311)
* fixed issue
* updated snapshot
2022-08-09 13:28:55 -04:00
lynn
1d21eebcd3 feat: Web 714 additional swap submitted event properties (block number, route properties) (#4305)
* 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

* temp

* init

* add blockNumber

* remove console logs
2022-08-09 10:57:35 -04:00
lynn
bdce7ce32c feat: remove unnecessary user properties (#4308)
init
2022-08-08 18:24:11 -04:00
Zach Pomerantz
9b9d6aff78 build: add env utils (#4304)
* build: add env utils

* test: env utils
2022-08-08 09:38:37 -07:00
cartcrom
77c4e74fc6 feat: adding timeline to explore price chart (#4292)
* added timeline & time options selector functionality to price chart
2022-08-08 11:55:33 -04:00
Charles Bachmeier
bb2e67fc5a style: import static assets for NFTs (#4263)
add static assets for nfts

Co-authored-by: Charles Bachmeier <charlie@genie.xyz>
2022-08-08 07:55:27 -07:00
Kaylee George
2fb7b7fd25 fix: fix feature flag for staging env (#4296)
fix env
2022-08-05 18:56:29 -04:00
willpote
c7b49deb0f feat: Adjust gas estimates for auto slippage (#4213)
* refactor: Adjust gas estimates for auto slippage

* TODO for interleaved routes

* pr feedback
2022-08-05 22:03:16 +00:00
Kaylee George
51aa02d878 feat: add feature flag modal in local/staging environments (#4291)
* initial

* add feature flag modal

* updates

* help

* working now!

* SIMPLIFY

* useref delete

* naming

* move modal out

* rename

* make button

* rename

* work on vercel

* styling

Co-authored-by: Vignesh Mohankumar <me@vig.xyz>
2022-08-05 21:39:20 +00:00
Kaylee George
25ea7f9caf feat: explore UI (#4262)
* 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 628417f696 (#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 e36722ccb4.

* 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 201bd2308a.

* 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 2acfe645ca.

* 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 e36722ccb4.

* 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 201bd2308a.

* 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 2acfe645ca.

* 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 3a1ea3df85.

* 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 e36722ccb4.

* 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 201bd2308a.

* 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 2acfe645ca.

* 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 3a1ea3df85.

* 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 fa284d85f1.

* 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>
2022-08-05 17:37:19 +02:00
github-actions[bot]
8ce599790f chore(i18n): new Crowdin translations (#4280)
chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-05 16:31:06 +02:00
lynn
68733e00e7 feat: log is expert mode in amplitude user model (#4284)
* log is expert mode in amplitude user model

* remove extra
2022-08-04 21:30:08 +00:00
Vignesh Mohankumar
eb71b08cf0 refactor: separate files for feature flags, use BaseVariant (#4278)
* flag file structure update

* move

* switch

* update imports

* imports
2022-08-04 15:02:52 -04:00
Vignesh Mohankumar
9fc1d8a90e build: set .nvmrc to 14 (#4275)
set to 14 nvm
2022-08-04 16:07:25 +00:00
Vignesh Mohankumar
bd55b1ccdc build: add staging NODE_ENV (#4187)
* refactor: move initializeAnalytics code to top-level

* expect that there's a node env per key

* remove more dev specific stuff

* module.exports

* remove locales

* fix

* service worker update
2022-08-04 12:03:41 -04:00
github-actions[bot]
5a9b1e1001 chore(i18n): new Crowdin translations (#4270)
chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-04 16:53:03 +02:00
Jordan Frankfurt
d41e3c031e fix(ts): remove constant enum (#4261) 2022-08-03 17:38:03 -04:00
lynn
ed5902ad0b feat: second user model PR with wallet properties (#4206)
* 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

* init

* checkpoint

* checkpoint

* merge

* lint

* cleanup

* wallet user model stuff working as expected now

* add app loaded event and rest of user properties

* fix tests

* change token balances as per kyle rec

* refactor connected wallet state handling + rest of vm comments

* fix redux breaking, revert wallet from set to array
2022-08-03 13:04:29 -04:00
lynn
ec783fdb1c feat: log approve token and wrap token events directly in hooks (#4258)
* init

* clean up

* remove unnecessary constants

* undo yarn.lock change
2022-08-03 12:45:45 -04:00
Kaylee George
a02099f908 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
2022-08-02 16:32:47 -04:00
Emily Williams
fa70fe102e fix: update SOR to refundETH on high price impact ETH trades (#4251)
fix lock
2022-08-02 16:26:01 -04:00
cartcrom
f918b346a0 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
2022-08-02 13:08:36 -04:00
Vignesh Mohankumar
134879e465 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
2022-08-02 12:57:13 -04:00
David Walsh
1f2ffa1672 fix: hide text cursor on network selector hover (#4249)
Dont' show text cursor when hovering over network dropdown text
2022-08-01 22:23:59 -04:00
Jordan Frankfurt
134fa96d27 feat(risk): tune down cache (#4208)
* tune down cache from 7 days to 12 hours

* minimal cache time
2022-08-01 11:13:03 -04:00
lynn
c6e677d82d 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
2022-07-29 17:34:56 -04:00
matteenm
7a78a7b4d2 feat: update unsupported token list (#4219) 2022-07-29 16:15:34 -04:00
Connor McEwen
184a1419ed 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
2022-07-29 15:40:04 -04:00
lynn
6cb6faa92b 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
2022-07-28 19:35:18 +00:00
lynn
3c5cc21ed5 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
2022-07-28 19:05:55 +00:00
lynn
594dcb90e3 feat: Web 262 user model custom properties first PR (#4190)
* init commit

* abstract amplitude stuff away to separate function
2022-07-26 23:07:03 +00:00
Kaylee George
d0f7c8d6f3 fix: update critical red HEX (#4191)
change red
2022-07-26 17:35:40 -04:00
Daniel James
352e016621 style: Add Deprecated prefix to ThemedText components (#4192)
* Add Deprecated prefix to ThemedText components

* Fix lint errors
2022-07-26 17:14:43 -04:00
Sam Chen
2a7b1e7ff0 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>
2022-07-26 17:10:57 -04:00
Akshit Choudhary
8836ae1986 fix: updated external docs link for Propose (#4186)
FIxed Propose External Docs Link
2022-07-26 15:17:42 +00:00
Rachel-Eichenberger
0bf694a1ff 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
2022-07-26 11:14:57 -04:00
Sam Chen
b8829639e9 fix: scroll to top only when pathname changes (#4180) 2022-07-24 14:31:55 -04:00
lynn
62550a4a1f 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
2022-07-22 15:50:49 -04:00
lynn
e01f30c0b4 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
2022-07-21 17:44:34 -04:00
Kaylee George
c60c028dbe feat: add updated theme colors (#4141)
* add colors

* Update settings.json

* Update settings.json

* remove comments

* rename
2022-07-21 12:31:41 -04:00
Vignesh Mohankumar
439fe5e6d4 chore: upgrade cypress (#4161)
* chore: upgrade cypress

* 10.3.1
2022-07-21 12:11:01 -04:00
lynn
e06142e26b feat: implement other swap events part 1 (#4151)
* init commit

* fix prettier errors

* check node env in vercel

* add shouldLogImpression to TraceEvent
2022-07-21 12:09:33 -04:00
github-actions[bot]
1f763a1c7a chore(i18n): new Crowdin translations (#4155)
chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-21 10:37:05 -04:00
Sam Chen
de6e3747cb refactor: remove unused SwapPoolTabs (#4159)
* chore: clean useless code

* clean unused code
2022-07-21 09:34:18 -04:00
lynn
475af6312f fix: fix swap details expanded not working on local build (#4156)
fix swap details expanded not working
2022-07-20 22:16:27 +00:00
Vignesh Mohankumar
c4c6d7553d build: only test for highest yarn-deduplicate strategy (#4154)
* build: only test for highest yarn-deduplicate strategy

* remove exclusions
2022-07-20 17:33:54 -04:00
cartcrom
0e3c95706e 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
2022-07-20 17:29:37 -04:00
Daniel James
d5e4e21a79 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
2022-07-20 16:18:38 -04:00
Vignesh Mohankumar
4649051843 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
2022-07-20 15:27:40 -04:00
Jesse
4ba6275b71 fix: add celo gas override (#4147)
fix: add celo gas override to circumvent 'out of gas' error from multicall
2022-07-20 14:48:53 -04:00
Rachel-Eichenberger
17c7a9ee9d 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
2022-07-20 11:59:44 -04:00
Sam Chen
0e36944b23 refactor: clean floating Route (#4144) 2022-07-20 09:47:42 -04:00
Vignesh Mohankumar
5050fe7b06 fix: unused onClickOutside reference (#4140) 2022-07-19 17:54:06 -04:00
Vignesh Mohankumar
80b965f2ca 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
2022-07-19 21:42:52 +00:00
Vignesh Mohankumar
417e940c0a 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
2022-07-19 16:42:45 -04:00
Sam Chen
c42a5ccf26 chore: access router data with hooks (#4121)
* chore: access router data with hooks

* chore: clean RouteComponentProps

* chore: use children instead of render

* add import
2022-07-19 16:14:16 -04:00
Vignesh Mohankumar
7ba9b1faf6 fix: don't toggle desktop NetworkSelector on click (#4134)
fix: don't NetworkSelector onClick on desktop
2022-07-19 14:35:24 -04:00
Vignesh Mohankumar
5d43d08ff3 build: lock jest-styled-components@7.0.7 (#4132) 2022-07-18 21:42:07 -04:00
lynn
85625d09f0 fix: increase celo blocksPerFetch to 5 to improve interface performance (#4130)
* init commit

* revert yarn.lock changes

* update test snapshots
2022-07-18 18:25:14 -04:00
Vignesh Mohankumar
d85f1f44b9 build: change project name to @uniswap/interface (#4125) 2022-07-18 17:41:32 -04:00
lynn
f41580e43c 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
2022-07-18 17:26:29 -04:00
Vignesh Mohankumar
47fe9911fa chore: move prettier, jest-styled-components to devDependencies (#4128)
* change package

* yarn.lock
2022-07-18 16:32:03 -04:00
Noah Zinsmeister
e0f6d82d6c feat: enable 1bp optimism fee tier (#4124)
enable new optimism fee tier
2022-07-18 10:48:28 -04:00
Sam Chen
fb691cf17b fix: catch vibrant failure (#4123)
fix: catch CORS error
2022-07-18 10:05:56 -04:00
Vignesh Mohankumar
f596293b6c build: don't fail cypress on unhandled exception (#4122) 2022-07-18 09:46:31 -04:00
Sam Chen
8012789f69 fix: fixes Popover arrow positioning (#4119)
fix: fix arrow position
2022-07-17 11:22:50 -04:00
Sam Chen
4013743473 chore: upgrades react-router-dom, fixes dev-mode linking (#4115)
* fix: stale route

* fix: add e2e test

* fix: update e2e test
2022-07-17 11:15:04 -04:00
Jesse
e9ef3193ab refactor: remaining changes from the large celo merge (#4088)
* refactor: useUSDCValue -> useStablecoinValue

* refactor: use the isCelo() helper

* refactor: remove unneeded white space
2022-07-15 10:36:19 -04:00
Vignesh Mohankumar
6a1506ade6 build: Revert "build: pause deploy" (#4107)
* Revert "build: pause deploy (#4102)"

This reverts commit 3a1ea3df85.

* prettier
2022-07-14 12:19:23 -04:00
cartcrom
839d4ac8e2 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
2022-07-14 11:52:37 -04:00
Vignesh Mohankumar
29fdcb80f6 build: upgrade prettier to v2.7.1 (#4109)
* style: prettier based on v2.2

* 2.7.1 instead?

* npx

* ^
2022-07-14 11:28:51 -04:00
lynn
817ea44e8d 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
2022-07-14 10:15:46 -04:00
Vignesh Mohankumar
3a1ea3df85 build: pause deploy (#4102) 2022-07-13 21:24:58 -04:00
Vignesh Mohankumar
2667a897a1 chore(web3-react): fix connectEagerly for MetaMask mobile (#4101)
* chore(web3-react): fix connectEagerly for MetaMask mobile

* fix
2022-07-13 18:20:50 -04:00
lynn
65129604bd 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>
2022-07-13 16:56:09 -04:00
lynn
4e0c9b36a0 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
2022-07-13 16:16:42 -04:00
Vignesh Mohankumar
64cb9f3ff2 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>
2022-07-13 15:44:42 -04:00
lynn
cb094a1f4b 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
2022-07-13 15:43:51 -04:00
Zach Pomerantz
d05fefc231 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
2022-07-13 11:31:19 -04:00
Zach Pomerantz
3e1805a20f build: update caniuse-lite (#4093) 2022-07-13 10:16:21 -04:00
Zach Pomerantz
f58dfe1284 build: upgrade @typescript-eslint (#4095)
build: update @typescript-eslint
2022-07-13 10:14:53 -04:00
github-actions[bot]
f67b7f8b66 chore(i18n): new Crowdin translations (#4090) 2022-07-12 13:09:59 -10:00
Vignesh Mohankumar
869691d43f 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 2acfe645ca.

* more to typescript logic instead of jsx
2022-07-12 18:33:24 -04:00
lynn
817d808ec5 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
2022-07-12 16:43:37 -04:00
github-actions[bot]
aee1bce612 chore(i18n): new Crowdin translations (#4084)
chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-12 13:52:06 -04:00
Bruno Crosier
8b38a9c4e0 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 201bd2308a.

* build: 📦 add `shx` as dev dep, use it in `prei18n:extract` script

* fix: 🐛 use platform-specific commands for prei18n-extract
2022-07-12 18:51:24 +02:00
cartcrom
0a115fab17 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
2022-07-12 12:02:02 -04:00
Kaylee George
882147b533 fix: revert "fix button jump on currency panel" (#4083)
fix padding
2022-07-12 11:43:04 -04:00
Jesse
eb06aef199 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>
2022-07-12 16:48:03 +02:00
Vignesh Mohankumar
1b91e7ce30 fix: Revert "refactor: remove coinbase wallet resetState" (#4081)
Revert "refactor: remove coinbase wallet resetState (#4024)"

This reverts commit e36722ccb4.
2022-07-12 00:37:45 -04:00
Anas Yousef
535e670c63 refactor: remove hideRouteDiagram prop (#3763) 2022-07-11 20:30:16 -04:00
Bruno Crosier
0b4c77155e fix: NetworkSelect mobile toggle bug (#3698)
* fix windows dev environment bugs

* fix NetworkSelector toggle bug

* revert:  add `prei18n:extract` script back

this change to make the script Windows-compatible will be dealt with in a separate PR

* revert:  revert prettier endOfLine fix

Will be dealt with in a separate PR

* updates

Co-authored-by: Vignesh Mohankumar <vignesh@vigneshmohankumar.com>
Co-authored-by: Vignesh Mohankumar <me@vig.xyz>
2022-07-11 15:55:59 -04:00
Vignesh Mohankumar
e36722ccb4 refactor: remove coinbase wallet resetState (#4024)
* refactor: remove coinbase wallet resetState

* unused import

* bump web3-react

* rm unused

* bump everything
2022-07-11 13:49:49 -04:00
Ian Lapham
ec0b94a920 fix: Fix spacing type (#4073)
* fix: Fix spacing type

* prettier

Co-authored-by: Vignesh Mohankumar <me@vig.xyz>
2022-07-11 13:37:40 -04:00
Zach Pomerantz
d5eed8b15f build: wait 1m between release tests (#4077) 2022-07-11 13:24:01 -04:00
Zach Pomerantz
2447afc43e build: wait on passing cypress (#4076)
* build: wait on passing cypress

* build: video upload
2022-07-11 18:55:03 +02:00
Zach Pomerantz
8eef757f7f refactor: analytics initialization (#4070)
* refactor: analytics initialization

* fix: typings
2022-07-11 12:46:58 -04:00
Zach Pomerantz
b1c29b3bf1 build: resolve cypress matrix to single job (#4075)
* build: resolve cypress matrix to single job

* build: output on cypress-tests

* build: explicitly name matrix steps

* build: quote cypress string

* build: omit protocol

* build: test

* build: fix indentation

* build: test

* build: test

* build: test

* build: cleanup

* build: cleanup
2022-07-11 17:36:48 +02:00
Zach Pomerantz
b211c9f150 build: wait on tests (#4074) 2022-07-11 16:42:52 +02:00
lynn
66cae715f4 feat: implement initial setup of amplitude SDK (#4044)
* 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

* fix: respond to cmcewen comments + initialize analytics in app.tsx + add missing return statement
2022-07-08 11:57:47 -04:00
github-actions[bot]
5a4a2782e8 chore(i18n): new Crowdin translations (#4045)
chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-07 13:03:44 -07:00
Vignesh Mohankumar
4e462ddbef refactor: extract Web3Provider hooks, create internal Connection representation (#4040)
* refactor: separate hooks file for Web3Provider

* move utils

* rename + comments

* rename Wallet enum to ConnectionType

* more wallet -> connectiontype

* more wallet -> connectiontype

* move hooks

* use Connection everywhere

* connector -> connection

* generic getConnection

* rename injected -> injectedConnection

* check connectionType

* rm unused
2022-07-07 15:17:49 -04:00
Zach Pomerantz
48a962a750 build: enable auto-release (#4058) 2022-07-07 11:56:03 -07:00
Zach Pomerantz
9a55402bdf build: add sleep in release (#4057) 2022-07-07 11:09:47 -07:00
lynn
663644553e feat: update privacy policy to include amplitude (#4046)
init commit
2022-07-06 18:15:12 -04:00
Vignesh Mohankumar
ceec3f0e65 feat: remove Tally Ho specific rendering (#4023)
feat: remove tally
2022-07-06 16:39:24 -04:00
Vignesh Mohankumar
904d1835d2 style: rename library to provider (#4038) 2022-07-06 12:36:54 -04:00
lynn
77366bf81b feat: configure blocks per fetch for l2s (#4028)
* init commit

* update redux multicall version to 1.1.5 in package.json

* fix respond to zzmp comments

* update optimism blocks per fetch to 15

* simplify

Co-authored-by: Lynn Yu <lynn.yu@uniswap.org>
2022-07-05 12:13:20 -04:00
Zach Pomerantz
cd8b048829 fix: deploy after pinning 2022-07-05 09:04:13 -07:00
Zach Pomerantz
d62596ecfc fix: release file 2022-07-05 08:52:54 -07:00
Zach Pomerantz
2b496c62f1 build: deploy without needing check suite 2022-07-05 08:50:28 -07:00
Zach Pomerantz
a3c77708e2 build: deploy without waiting on check suite 2022-07-05 08:49:11 -07:00
Zach Pomerantz
b9e8139699 fix: alter headers on cached response (#4032)
* fix: alter headers on cached response

* test: deflake
2022-07-05 08:31:06 -07:00
Zach Pomerantz
c82dcabd19 build: disable scheduled release (#4022) 2022-07-01 15:26:42 -07:00
Zach Pomerantz
26b37d5274 build: fix await-check-suite with (#4021)
* build: fix await-check-suites

* build: fix await-check-suite with
2022-07-01 15:12:51 -07:00
Zach Pomerantz
d5c464b26b build: fix await-check-suites (#4020) 2022-07-01 15:10:08 -07:00
Zach Pomerantz
c48d4c5425 build: simplify actions (#4014)
* build: simplify actions

* build: add checkout

* build: fix path

* build: fix all paths

* build: missing steps

* build: update build name

* build: rename action

* build: add shell

* build: formalize lint

* build: cleanup

* build: update release

* build: comment workflows
2022-07-01 15:05:37 -07:00
Kaylee George
b28cd9c8b0 fix: token button jump (#4017)
* fix token button jump

* Update index.tsx

* move inline style to CSS
2022-07-01 16:18:46 -04:00
Vignesh Mohankumar
071017879c feat: don't allow disconnect/change on injected mobile wallets (#4015)
* feat: don't allow disconnect/change on injected mobile wallets

* new variable
2022-07-01 13:57:15 -04:00
github-actions[bot]
5535c83db5 chore(i18n): new Crowdin translations (#4013)
chore(i18n): synchronize translations from crowdin [skip ci]

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-01 09:03:06 -07:00
Andrii Bodnar
8f9eccabaf fix: Crowdin translations download (#3927) 2022-07-01 09:00:20 -07:00
Vignesh Mohankumar
322cdaf888 refactor: rm useActiveWeb3React (#4004)
* rm activeweb3react

* wrap in web3provider?
2022-06-30 16:38:02 -07:00
Vignesh Mohankumar
edcdbfd8f5 feat: disconnect for coinbase wallet (#3993)
* feat: disconnect for coinbase wallet

* change isActive logic

* remove logs

* reset state for coinbase wallet

* active -> isActive

* rm data-cy
2022-06-30 18:04:42 -04:00
Vignesh Mohankumar
d36f13d7e2 fix: resolves network switch race condition (#4005)
* don't need undo logic

* maybe need to return connector

* make sure the urlChainId doesn't equal existing chainId

* fix network switching

* add back revert logic

* undo changes to switchChain

* move revert logic into the hook
2022-06-30 11:51:23 -05:00
Vignesh Mohankumar
8548b33bd9 feat: show injected options in wallet browsers (#3995)
* feat: show injected options in wallet browsers

* initial testing

* more mocking

* mock more

* mobile tests

* updates

* add data test

* finally got the mock to work

* WORKING

* uncomment

* rm console.log

* fix

* check length

* fix tests to use useWeb3React

* rm

* rename tests
2022-06-30 12:26:22 -04:00
Vignesh Mohankumar
0e148bb1b3 style: use data-testid in cypress test (#4001)
* use data-testid

* findByTestId

test -> it

add types

temp

rm exclude

get -> find

* Revert "findByTestId"

This reverts commit 1e1c483ef9.

* rm some test ids

* fix
2022-06-29 16:57:21 -04:00
Vignesh Mohankumar
9ddb37a982 chore: move cypress to devDependencies (#4002) 2022-06-29 13:41:20 -07:00
Zach Pomerantz
63227cd2c5 build: dedup lockfile (#3985)
* build: dedup ethers

* build: dedup token-lists

* build: dedup deps

* build: clean deps
2022-06-29 09:43:01 -07:00
Zach Pomerantz
dc38dc1c10 build: disable release (#3994) 2022-06-28 18:03:40 -07:00
549 changed files with 28675 additions and 8383 deletions

1
.env
View File

@@ -1,3 +1,2 @@
REACT_APP_INFURA_KEY="4bf032f2d38a4ed6bb975b80d6340847"
REACT_APP_FORTMATIC_KEY="pk_live_357F77728B8EB880"
REACT_APP_LOCALES="locales"

View File

@@ -1,3 +1,4 @@
REACT_APP_AMPLITUDE_KEY="1c694b28cd089acc2c386d518f93a775"
REACT_APP_INFURA_KEY="099fc58e0de9451d80b18d7c74caa7c1"
REACT_APP_FORTMATIC_KEY="pk_live_F937DF033A1666BF"
REACT_APP_GOOGLE_ANALYTICS_ID="G-KDP9B6W4H8"

21
.github/actions/setup/action.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Setup
runs:
using: composite
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14
registry-url: https://registry.npmjs.org
cache: yarn
- uses: actions/cache@v3
id: install-cache
with:
path: node_modules/
key: ${{ runner.os }}-install-${{ hashFiles('**/yarn.lock') }}
- if: steps.install-cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --ignore-scripts
shell: bash

View File

@@ -2,9 +2,9 @@ version: 2
updates:
- package-ecosystem: npm
# Files stored in repository root
directory: "/"
directory: '/'
schedule:
interval: "daily"
interval: 'daily'
allow:
- dependency-name: "@uniswap/token-lists"
- dependency-name: "@uniswap/default-token-list"
- dependency-name: '@uniswap/token-lists'
- dependency-name: '@uniswap/default-token-list'

View File

@@ -1,4 +1,4 @@
name: "Check PR Title"
name: Check PR Title
on:
pull_request_target:
@@ -8,8 +8,8 @@ on:
- synchronize
jobs:
check-pr-title:
name: Check PR Title
# Ensures that the PR title adheres to [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/).
conventional-commit:
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v3.4.0

View File

@@ -2,34 +2,18 @@ name: Crowdin Download
on:
schedule:
- cron: '0 * * * *' # every hour we download translations and update the pr from crowdin
# Download translations every hour.
# This is not done as part of the build so that builds remain reproducible.
- cron: '0 * * * *'
# manual trigger
workflow_dispatch:
jobs:
download-translations:
name: Download translations
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14
registry-url: https://registry.npmjs.org
cache: 'yarn'
- uses: actions/cache@v3
id: install-cache
with:
path: node_modules/
key: ${{ runner.os }}-install-${{ hashFiles('**/yarn.lock') }}
- if: steps.install-cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --ignore-scripts
- uses: ./.github/actions/setup
- run: yarn i18n:extract
- name: Download Crowdin translations
@@ -41,8 +25,9 @@ jobs:
token: ${{ secrets.CROWDIN_PERSONAL_TOKEN_SECRET }}
source: 'src/locales/en-US.po'
translation: 'src/locales/%locale%.po'
create_pull_request: false
localization_branch_name: main
commit_message: "chore(i18n): synchronize translations from crowdin [skip ci]"
create_pull_request: true
pull_request_title: 'chore(i18n): new Crowdin translations'
localization_branch_name: l10n_crowdin
commit_message: 'chore(i18n): synchronize translations from crowdin [skip ci]'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -6,28 +6,11 @@ on:
- main
jobs:
synchronize-with-crowdin:
name: Upload sources to Crowdin
upload-sources:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14
registry-url: https://registry.npmjs.org
cache: 'yarn'
- uses: actions/cache@v3
id: install-cache
with:
path: node_modules/
key: ${{ runner.os }}-install-${{ hashFiles('**/yarn.lock') }}
- if: steps.install-cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --ignore-scripts
- uses: ./.github/actions/setup
- run: yarn i18n:extract
- name: Upload Crowdin sources

View File

@@ -1,45 +0,0 @@
name: Lint
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
run-linters:
name: Run linters
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14
registry-url: https://registry.npmjs.org
cache: 'yarn'
- uses: actions/cache@v3
id: install-cache
with:
path: node_modules/
key: ${{ runner.os }}-install-${{ hashFiles('**/yarn.lock') }}
- if: steps.install-cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --ignore-scripts
- name: Run eslint w/ autofix
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.owner.login == github.repository_owner }}
uses: wearerequired/lint-action@36c7e6689e80d785d27a22f71d970f3a3b4fcb70
with:
github_token: ${{ secrets.github_token }}
eslint: true
eslint_args: "-c .eslintrc.json"
auto_fix: true
- name: Run eslint
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.owner.login != github.repository_owner }}
run: yarn eslint .

View File

@@ -1,61 +1,58 @@
name: Release
on:
schedule:
- cron: '0 12 * * 1-4' # every day 12:00 UTC Monday-Thursday
- cron: '0 12 * * 1-4' # every day 12:00 UTC Monday-Thursday
# manual trigger
workflow_dispatch:
jobs:
bump_version:
name: Bump Version
wait-on-tests:
runs-on: ubuntu-latest
steps:
- id: unit-tests
uses: fountainhead/action-wait-for-check@v1.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
checkName: unit-tests
- id: cypress-tests
uses: fountainhead/action-wait-for-check@v1.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
checkName: cypress-tests
- if: steps.unit-tests.outputs.conclusion != 'success' || steps.cypress-tests.outputs.conclusion != 'success'
run: exit 1
tag:
needs: wait-on-tests
runs-on: ubuntu-latest
outputs:
new_tag: ${{ steps.github_tag_action.outputs.new_tag }}
changelog: ${{ steps.github_tag_action.outputs.changelog }}
new_tag: ${{ steps.github-tag-action.outputs.new_tag }}
changelog: ${{ steps.github-tag-action.outputs.changelog }}
steps:
- uses: actions/checkout@v3
- name: Bump version and push tag
id: github_tag_action
uses: mathieudutour/github-tag-action@331898d5052eedac9b15fec867b5ba66ebf9b692
- name: Bump and tag
id: github-tag-action
uses: mathieudutour/github-tag-action@v6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
release_branches: .*
default_bump: false
default_bump: patch
create_release:
name: Create Release
release:
needs: tag
if: ${{ needs.tag.outputs.new_tag != null }}
runs-on: ubuntu-latest
needs: bump_version
if: ${{ needs.bump_version.outputs.new_tag != null }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14
registry-url: https://registry.npmjs.org
cache: 'yarn'
- uses: actions/cache@v3
id: install-cache
with:
path: node_modules/
key: ${{ runner.os }}-install-${{ hashFiles('**/yarn.lock') }}
- if: steps.install-cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --ignore-scripts
- uses: ./.github/actions/setup
- run: yarn prepare
- run: yarn build
- name: Pin to IPFS
id: upload
id: pinata
uses: anantaramdas/ipfs-pinata-deploy-action@39bbda1ce1fe24c69c6f57861b8038278d53688d
with:
pin-name: Uniswap ${{ needs.bump_version.outputs.new_tag }}
pin-name: Uniswap ${{ needs.tag.outputs.new_tag }}
path: './build'
pinata-api-key: ${{ secrets.PINATA_API_KEY }}
pinata-secret-api-key: ${{ secrets.PINATA_API_SECRET_KEY }}
@@ -69,12 +66,24 @@ jobs:
seeds: ${{ secrets.CRUST_SEEDS }}
- name: Convert CIDv0 to CIDv1
id: convert_cidv0
id: convert-cidv0
uses: uniswap/convert-cidv0-cidv1@v1.0.0
with:
cidv0: ${{ steps.upload.outputs.hash }}
- run: sleep 600
cidv0: ${{ steps.pinata.outputs.hash }}
- uses: actions/cache@v3
id: cypress-cache
with:
path: /home/runner/.cache/Cypress
key: ${{ runner.os }}-cypress-${{ hashFiles('node_modules/cypress') }}
- if: steps.cypress-cache.outputs.cache-hit != 'true'
run: yarn cypress install
- uses: cypress-io/github-action@v4
with:
install: false
browser: chrome
config-file: cypress.release.config.ts
config: baseUrl=https://cloudflare-ipfs.com/ipfs/${{ steps.pinata.outputs.hash }}
- name: Update DNS with new IPFS hash
env:
@@ -84,20 +93,19 @@ jobs:
CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }}
uses: textileio/cloudflare-update-dnslink@0fe7b7a1ffc865db3a4da9773f0f987447ad5848
with:
cid: ${{ steps.upload.outputs.hash }}
cid: ${{ steps.pinata.outputs.hash }}
- name: Create GitHub Release
id: create_release
- name: Release
uses: actions/create-release@v1.1.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.bump_version.outputs.new_tag }}
release_name: Release ${{ needs.bump_version.outputs.new_tag }}
tag_name: ${{ needs.tag.outputs.new_tag }}
release_name: Release ${{ needs.tag.outputs.new_tag }}
body: |
IPFS hash of the deployment:
- CIDv0: `${{ steps.upload.outputs.hash }}`
- CIDv1: `${{ steps.convert_cidv0.outputs.cidv1 }}`
- CIDv0: `${{ steps.pinata.outputs.hash }}`
- CIDv1: `${{ steps.convert-cidv0.outputs.cidv1 }}`
The latest release is always accessible via our alias to the Cloudflare IPFS gateway at [app.uniswap.org](https://app.uniswap.org).
@@ -107,8 +115,8 @@ jobs:
Your Uniswap settings are never remembered across different URLs.
IPFS gateways:
- https://${{ steps.convert_cidv0.outputs.cidv1 }}.ipfs.dweb.link/
- https://${{ steps.convert_cidv0.outputs.cidv1 }}.ipfs.cf-ipfs.com/
- [ipfs://${{ steps.upload.outputs.hash }}/](ipfs://${{ steps.upload.outputs.hash }}/)
- https://${{ steps.convert-cidv0.outputs.cidv1 }}.ipfs.dweb.link/
- https://${{ steps.convert-cidv0.outputs.cidv1 }}.ipfs.cf-ipfs.com/
- [ipfs://${{ steps.upload.outputs.hash }}/](ipfs://${{ steps.pinata.outputs.hash }}/)
${{ needs.bump_version.outputs.changelog }}
${{ needs.tag.outputs.changelog }}

View File

@@ -1,4 +1,4 @@
name: End-to-End Tests
name: Test
on:
push:
@@ -7,33 +7,40 @@ on:
pull_request:
branches:
- main
# manual trigger
workflow_dispatch:
jobs:
build:
name: Build
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- run: yarn lint
- uses: actions/setup-node@v3
with:
node-version: 14
registry-url: https://registry.npmjs.org
cache: 'yarn'
deps-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- run: npx yarn-deduplicate --strategy=highest --list --fail
- uses: actions/cache@v3
id: install-cache
with:
path: node_modules/
key: ${{ runner.os }}-install-${{ hashFiles('**/yarn.lock') }}
- if: steps.install-cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --ignore-scripts
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- run: yarn prepare
- run: yarn test
cypress-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- run: yarn prepare
- run: yarn build
- uses: actions/upload-artifact@v2
with:
name: build
@@ -45,35 +52,19 @@ jobs:
with:
path: /home/runner/.cache/Cypress
key: ${{ runner.os }}-cypress-${{ hashFiles('node_modules/cypress') }}
- if: steps.cypress-cache.outputs.cache-hit != 'true'
run: yarn cypress install
cypress-tests:
name: Run tests
cypress-test-matrix:
needs: cypress-build
runs-on: ubuntu-latest
needs: build
strategy:
fail-fast: false
matrix:
containers: [1, 2, 3, 4]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14
registry-url: https://registry.npmjs.org
cache: 'yarn'
- uses: actions/cache@v3
id: install-cache
with:
path: node_modules/ # this should always be a cache hit, from install
key: ${{ runner.os }}-install-${{ hashFiles('**/yarn.lock') }}
- if: steps.install-cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --ignore-scripts
- uses: ./.github/actions/setup
- uses: actions/download-artifact@v2
with:
@@ -85,7 +76,6 @@ jobs:
with:
path: /home/runner/.cache/Cypress
key: ${{ runner.os }}-cypress-${{ hashFiles('node_modules/cypress') }}
- if: steps.cypress-cache.outputs.cache-hit != 'true'
run: yarn cypress install
@@ -98,6 +88,12 @@ jobs:
record: true
parallel: true
env:
CI: false # disables lint checks when building
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Included as a single job to check against for cypress test success, as cypress runs in a matrix.
cypress-tests:
needs: cypress-test-matrix
runs-on: ubuntu-latest
steps:
- run: echo 'Finished cypress tests https\://dashboard.cypress.io/projects/yp82ef'

View File

@@ -1,35 +0,0 @@
name: Unit Tests
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
unit-tests:
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 14
registry-url: https://registry.npmjs.org
cache: 'yarn'
- uses: actions/cache@v3
id: install-cache
with:
path: node_modules/
key: ${{ runner.os }}-install-${{ hashFiles('**/yarn.lock') }}
- if: steps.install-cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --ignore-scripts
- run: yarn prepare
- run: yarn test

1
.gitignore vendored
View File

@@ -39,3 +39,4 @@ package-lock.json
cypress/videos
cypress/screenshots
.vercel

2
.nvmrc
View File

@@ -1 +1 @@
lts/*
14

View File

@@ -48,4 +48,4 @@ The Uniswap Interface supports swapping, adding liquidity, removing liquidity an
## Accessing Uniswap V1
The Uniswap V1 interface for mainnet and testnets is accessible via IPFS gateways
linked from the [v1.0.0 release](https://github.com/Uniswap/uniswap-interface/releases/tag/v1.0.0).
linked from the [v1.0.0 release](https://github.com/Uniswap/uniswap-interface/releases/tag/v1.0.0).

View File

@@ -1,4 +1,4 @@
const isDev = process.env.NODE_ENV !== 'production'
const isDev = process.env.NODE_ENV === 'development'
module.exports = {
styledComponents: {

19
craco.config.cjs Normal file
View File

@@ -0,0 +1,19 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { VanillaExtractPlugin } = require('@vanilla-extract/webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
module.exports = {
babel: {
plugins: ['@vanilla-extract/babel-plugin'],
},
webpack: {
plugins: [new VanillaExtractPlugin()],
configure: (webpackConfig) => {
const instanceOfMiniCssExtractPlugin = webpackConfig.plugins.find(
(plugin) => plugin instanceof MiniCssExtractPlugin
)
if (instanceOfMiniCssExtractPlugin !== undefined) instanceOfMiniCssExtractPlugin.options.ignoreOrder = true
return webpackConfig
},
},
}

View File

@@ -0,0 +1,8 @@
import { defineConfig } from 'cypress'
export default defineConfig({
projectId: 'yp82ef',
e2e: {
specPattern: 'cypress/release.ts',
},
})

8
cypress/e2e/link.test.ts Normal file
View File

@@ -0,0 +1,8 @@
// see https://github.com/Uniswap/interface/pull/4115
describe('Link', () => {
it('should update route', () => {
cy.visit('/')
cy.get('[data-cy="pool-nav-link"]').click()
cy.get('[data-cy="join-pool-button"]').should('exist')
})
})

View File

@@ -0,0 +1,10 @@
describe('Redirect', () => {
it('should redirect to /vote/create-proposal when visiting /create-proposal', () => {
cy.visit('/create-proposal')
cy.url().should('match', /\/vote\/create-proposal/)
})
it('should redirect to /swap when visiting nonexist url', () => {
cy.visit('/none-exist-url')
cy.url().should('match', /\/swap/)
})
})

View File

@@ -1,5 +1,5 @@
describe('Swap', () => {
beforeEach(() => {
before(() => {
cy.visit('/swap')
})
@@ -7,77 +7,47 @@ describe('Swap', () => {
cy.get('#swap-currency-input .token-amount-input').should('have.value', '')
cy.get('#swap-currency-input .token-symbol-container').should('contain.text', 'ETH')
cy.get('#swap-currency-output .token-amount-input').should('not.have.value')
cy.get('#swap-currency-output .token-symbol-container').should('contain.text', 'Select a token')
cy.get('#swap-currency-output .token-symbol-container').should('contain.text', 'Select token')
})
it('can enter an amount into input', () => {
cy.get('#swap-currency-input .token-amount-input')
.clear()
.type('0.001', { delay: 200 })
.should('have.value', '0.001')
cy.get('#swap-currency-input .token-amount-input').clear().type('0.001').should('have.value', '0.001')
})
it('zero swap amount', () => {
cy.get('#swap-currency-input .token-amount-input').clear().type('0.0', { delay: 200 }).should('have.value', '0.0')
cy.get('#swap-currency-input .token-amount-input').clear().type('0.0').should('have.value', '0.0')
})
it('invalid swap amount', () => {
cy.get('#swap-currency-input .token-amount-input').clear().type('\\', { delay: 200 }).should('have.value', '')
cy.get('#swap-currency-input .token-amount-input').clear().type('\\').should('have.value', '')
})
it('can enter an amount into output', () => {
cy.get('#swap-currency-output .token-amount-input').type('0.001', { delay: 200 }).should('have.value', '0.001')
cy.get('#swap-currency-output .token-amount-input').clear().type('0.001').should('have.value', '0.001')
})
it('zero output amount', () => {
cy.get('#swap-currency-output .token-amount-input').type('0.0', { delay: 200 }).should('have.value', '0.0')
cy.get('#swap-currency-output .token-amount-input').clear().type('0.0').should('have.value', '0.0')
})
it.skip('can swap ETH for DAI', () => {
cy.get('#swap-currency-output .open-currency-select-button').click()
cy.get('.token-item-0xc7AD46e0b8a400Bb3C915120d284AafbA8fc4735').should('be.visible')
cy.get('.token-item-0xc7AD46e0b8a400Bb3C915120d284AafbA8fc4735').click({ force: true })
cy.get('#swap-currency-input .token-amount-input').should('be.visible')
cy.get('#swap-currency-input .token-amount-input').type('0.001', { force: true, delay: 200 })
cy.get('.token-item-0xc7AD46e0b8a400Bb3C915120d284AafbA8fc4735').click()
cy.get('#swap-currency-input .token-amount-input').clear().type('0.0000001')
cy.get('#swap-currency-output .token-amount-input').should('not.equal', '')
cy.get('#swap-button').click()
cy.get('#confirm-swap-or-send').should('contain', 'Confirm Swap')
cy.get('[data-cy="confirmation-close-icon"]').click()
})
it.skip('add a recipient does not exist unless in expert mode', () => {
it('add a recipient does not exist unless in expert mode', () => {
cy.get('#add-recipient-button').should('not.exist')
})
it('ETH to wETH is same value (wrapped swaps have no price impact)', () => {
it.skip('ETH to wETH is same value (wrapped swaps have no price impact)', () => {
cy.get('#swap-currency-output .open-currency-select-button').click()
cy.get('.token-item-0xc778417E063141139Fce010982780140Aa0cD5Ab').click({ force: true })
cy.get('#swap-currency-input .token-amount-input').type('0.01', { force: true, delay: 100 })
cy.get('.token-item-0xc778417E063141139Fce010982780140Aa0cD5Ab').click()
cy.get('#swap-currency-input .token-amount-input').clear().type('0.01')
cy.get('#swap-currency-output .token-amount-input').should('have.value', '0.01')
})
describe('expert mode', () => {
beforeEach(() => {
cy.window().then((win) => {
cy.stub(win, 'prompt').returns('confirm')
})
cy.get('#open-settings-dialog-button').click()
cy.get('#toggle-expert-mode-button').click()
cy.get('#confirm-expert-mode').click()
})
it.skip('add a recipient is visible', () => {
cy.get('#add-recipient-button').should('be.visible')
})
it.skip('add a recipient', () => {
cy.get('#add-recipient-button').click()
cy.get('#recipient').should('exist')
})
it.skip('remove recipient', () => {
cy.get('#add-recipient-button').click()
cy.get('#remove-recipient-button').click()
cy.get('#recipient').should('not.exist')
})
})
})

View File

@@ -2,29 +2,29 @@ import { TEST_ADDRESS_NEVER_USE_SHORTENED } from '../support/ethereum'
describe('Wallet', () => {
before(() => {
cy.visit('/')
cy.visit('/swap')
})
it('displays account details', () => {
cy.get('#web3-status-connected').contains(TEST_ADDRESS_NEVER_USE_SHORTENED).click()
cy.get('[data-testid=web3-status-connected]').contains(TEST_ADDRESS_NEVER_USE_SHORTENED).click()
})
it('displays account view in wallet modal', () => {
cy.get('#web3-account-identifier-row').contains(TEST_ADDRESS_NEVER_USE_SHORTENED)
cy.get('[data-testid=web3-account-identifier-row]').contains(TEST_ADDRESS_NEVER_USE_SHORTENED)
})
it('changes back to the options grid', () => {
cy.get('[data-cy=wallet-change]').click()
cy.get('[data-cy=option-grid]').should('exist')
cy.contains('Change').click()
cy.get('[data-testid=option-grid]').should('exist')
})
it('selects injected wallet option', () => {
cy.contains('Injected').click()
cy.get('#web3-account-identifier-row').contains(TEST_ADDRESS_NEVER_USE_SHORTENED)
cy.get('[data-testid=web3-account-identifier-row]').contains(TEST_ADDRESS_NEVER_USE_SHORTENED)
})
it('shows connect buttons after disconnect', () => {
cy.get('[data-cy=wallet-disconnect]').click()
cy.get('[data-cy=option-grid]').should('exist')
cy.contains('Disconnect').click()
cy.get('[data-testid=option-grid]').should('exist')
})
})

20
cypress/release.ts Normal file
View File

@@ -0,0 +1,20 @@
const ONE_MINUTE = 60_000
describe(
'Release',
{
pageLoadTimeout: ONE_MINUTE,
retries: 30,
},
() => {
it('loads swap page', () => {
// We *must* wait in order to space out the retry attempts.
cy.wait(ONE_MINUTE)
.visit('/', {
retryOnStatusCodeFailure: true,
retryOnNetworkFailure: true,
})
.get('#swap-page')
})
}
)

View File

@@ -50,3 +50,9 @@ beforeEach(() => {
res.continue()
})
})
Cypress.on('uncaught:exception', (_err, _runnable) => {
// returning false here prevents Cypress from
// failing the test
return false
})

View File

@@ -1,5 +1,5 @@
{
"name": "@uniswap/widgets",
"name": "@uniswap/interface",
"version": "1.0.7",
"description": "Uniswap Interface",
"homepage": ".",
@@ -9,15 +9,16 @@
"contracts:compile:v3": "typechain --target ethers-v5 --out-dir src/types/v3 \"./node_modules/@uniswap/**/artifacts/contracts/**/*[!dbg].json\"",
"contracts:compile": "yarn contracts:compile:abi && yarn contracts:compile:v3",
"graphql:generate": "graphql-codegen --config codegen.yml",
"prei18n:extract": "touch src/locales/en-US.po",
"prei18n:extract": "node prei18n-extract.js",
"i18n:extract": "lingui extract --locale en-US",
"i18n:compile": "yarn i18n:extract && lingui compile",
"i18n:pseudo": "lingui extract --locale pseudo && lingui compile",
"prepare": "yarn contracts:compile && yarn graphql:generate && yarn i18n:compile",
"start": "react-scripts start",
"build": "react-scripts build",
"start": "craco start",
"build": "craco build",
"serve": "serve build -l 3000",
"test": "react-scripts test --coverage",
"lint": "yarn eslint .",
"test": "craco test --coverage",
"cypress:open": "cypress open --browser chrome --e2e",
"cypress:run": "cypress run --browser chrome --e2e"
},
@@ -53,29 +54,16 @@
"last 1 safari version"
]
},
"dependencies": {
"@coinbase/wallet-sdk": "^3.2.0",
"devDependencies": {
"@craco/craco": "6.4.3",
"@ethersproject/experimental": "^5.4.0",
"@fontsource/ibm-plex-mono": "^4.5.1",
"@fontsource/inter": "^4.5.1",
"@gnosis.pm/safe-apps-web3-react": "^0.6.0",
"@graphql-codegen/cli": "1.21.5",
"@graphql-codegen/typescript": "1.22.3",
"@graphql-codegen/typescript-operations": "^1.18.2",
"@graphql-codegen/typescript-rtk-query": "^1.1.1",
"@lingui/cli": "^3.9.0",
"@lingui/core": "^3.9.0",
"@lingui/macro": "^3.9.0",
"@lingui/react": "^3.9.0",
"@metamask/jazzicon": "^2.0.0",
"@popperjs/core": "^2.4.4",
"@reach/dialog": "^0.10.3",
"@reach/portal": "^0.10.3",
"@react-hook/window-scroll": "^1.3.0",
"@reduxjs/toolkit": "^1.6.1",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^12.0.0",
"@testing-library/react-hooks": "^7.0.2",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.1",
"@typechain/ethers-v5": "^7.0.0",
"@types/array.prototype.flat": "^1.2.1",
"@types/array.prototype.flatmap": "^1.2.2",
@@ -88,52 +76,21 @@
"@types/multicodec": "^1.0.0",
"@types/node": "^13.13.5",
"@types/qs": "^6.9.2",
"@types/react": "^17.0.2",
"@types/react-dom": "^17.0.1",
"@types/react-redux": "^7.1.16",
"@types/react-router-dom": "^5.0.0",
"@types/react": "^18.0.15",
"@types/react-dom": "^18.0.6",
"@types/react-redux": "^7.1.24",
"@types/react-router-dom": "^5.3.3",
"@types/react-virtualized-auto-sizer": "^1.0.0",
"@types/react-window": "^1.8.2",
"@types/rebass": "^4.0.7",
"@types/styled-components": "^5.1.0",
"@types/styled-components": "^5.1.25",
"@types/testing-library__cypress": "^5.0.5",
"@types/ua-parser-js": "^0.7.35",
"@types/uuid": "^8.3.4",
"@types/wcag-contrast": "^3.0.0",
"@typescript-eslint/eslint-plugin": "^4.1.0",
"@typescript-eslint/parser": "^4.1.0",
"@uniswap/default-token-list": "^3.0.0",
"@uniswap/governance": "^1.0.2",
"@uniswap/liquidity-staker": "^1.0.2",
"@uniswap/merkle-distributor": "1.0.1",
"@uniswap/redux-multicall": "^1.1.1",
"@uniswap/router-sdk": "^1.0.3",
"@uniswap/sdk-core": "^3.0.1",
"@uniswap/smart-order-router": "^2.5.26",
"@uniswap/token-lists": "^1.0.0-beta.30",
"@uniswap/v2-core": "1.0.0",
"@uniswap/v2-periphery": "^1.1.0-beta.0",
"@uniswap/v2-sdk": "^3.0.1",
"@uniswap/v3-core": "1.0.0",
"@uniswap/v3-periphery": "^1.1.1",
"@uniswap/v3-sdk": "^3.8.2",
"@walletconnect/ethereum-provider": "1.7.1",
"@web3-react/coinbase-wallet": "^8.0.33-beta.0",
"@web3-react/core": "^8.0.33-beta.0",
"@web3-react/eip1193": "^8.0.25-beta.0",
"@web3-react/empty": "^8.0.19-beta.0",
"@web3-react/gnosis-safe": "^8.0.5-beta.0",
"@web3-react/metamask": "^8.0.26-beta.0",
"@web3-react/network": "^8.0.26-beta.0",
"@web3-react/types": "^8.0.19-beta.0",
"@web3-react/url": "^8.0.24-beta.0",
"@web3-react/walletconnect": "^8.0.34-beta.0",
"ajv": "^6.12.3",
"array.prototype.flat": "^1.2.4",
"array.prototype.flatmap": "^1.2.4",
"cids": "^1.0.0",
"copy-to-clipboard": "^3.2.0",
"cypress": "^10.1.0",
"d3": "^7.0.0",
"@typescript-eslint/eslint-plugin": "^4",
"@typescript-eslint/parser": "^4",
"cypress": "^10.3.1",
"env-cmd": "^10.1.0",
"eslint": "^7.11.0",
"eslint-config-prettier": "^6.11.0",
@@ -143,62 +100,128 @@
"eslint-plugin-react-hooks": "^4.0.0",
"eslint-plugin-simple-import-sort": "^7.0.0",
"eslint-plugin-unused-imports": "^2.0.0",
"jest-styled-components": "^7.0.8",
"ms.macro": "^2.0.0",
"prettier": "^2.7.1",
"react-scripts": "^4.0.3",
"serve": "^11.3.2",
"typechain": "^5.0.0",
"typescript": "^4.4.3",
"@vanilla-extract/babel-plugin": "^1.1.7",
"@vanilla-extract/webpack-plugin": "^2.1.11"
},
"dependencies": {
"@amplitude/analytics-browser": "^0.5.1",
"@amplitude/experiment-js-client": "^1.5.4",
"@coinbase/wallet-sdk": "^3.3.0",
"@fontsource/ibm-plex-mono": "^4.5.1",
"@fontsource/inter": "^4.5.1",
"@lingui/core": "^3.14.0",
"@lingui/macro": "^3.14.0",
"@lingui/react": "^3.14.0",
"@looksrare/sdk": "^0.7.1",
"@metamask/jazzicon": "^2.0.0",
"@opensea/seaport-js": "^1.0.2",
"@popperjs/core": "^2.4.4",
"@reach/dialog": "^0.10.3",
"@reach/portal": "^0.10.3",
"@react-hook/window-scroll": "^1.3.0",
"@reduxjs/toolkit": "^1.6.1",
"@uniswap/governance": "^1.0.2",
"@uniswap/liquidity-staker": "^1.0.2",
"@uniswap/merkle-distributor": "1.0.1",
"@uniswap/redux-multicall": "^1.1.5",
"@uniswap/router-sdk": "^1.3.0",
"@uniswap/sdk-core": "^3.0.1",
"@uniswap/smart-order-router": "^2.9.2",
"@uniswap/token-lists": "^1.0.0-beta.30",
"@uniswap/v2-core": "1.0.0",
"@uniswap/v2-periphery": "^1.1.0-beta.0",
"@uniswap/v2-sdk": "^3.0.1",
"@uniswap/v3-core": "1.0.0",
"@uniswap/v3-periphery": "^1.1.1",
"@uniswap/v3-sdk": "^3.9.0",
"@vanilla-extract/css": "^1.7.2",
"@vanilla-extract/css-utils": "^0.1.2",
"@vanilla-extract/dynamic": "^2.0.2",
"@vanilla-extract/sprinkles": "^1.4.1",
"@visx/axis": "^2.12.2",
"@visx/event": "^2.6.0",
"@visx/glyph": "^2.10.0",
"@visx/group": "^2.10.0",
"@visx/responsive": "^2.10.0",
"@visx/shape": "^2.11.1",
"@walletconnect/ethereum-provider": "1.7.1",
"@web3-react/coinbase-wallet": "^8.0.34-beta.0",
"@web3-react/core": "^8.0.35-beta.0",
"@web3-react/eip1193": "^8.0.26-beta.0",
"@web3-react/empty": "^8.0.20-beta.0",
"@web3-react/gnosis-safe": "^8.0.6-beta.0",
"@web3-react/metamask": "^8.0.28-beta.0",
"@web3-react/network": "^8.0.27-beta.0",
"@web3-react/types": "^8.0.20-beta.0",
"@web3-react/url": "^8.0.25-beta.0",
"@web3-react/walletconnect": "^8.0.35-beta.0",
"ajv": "^6.12.3",
"array.prototype.flat": "^1.2.4",
"array.prototype.flatmap": "^1.2.4",
"cids": "^1.0.0",
"clsx": "^1.1.1",
"copy-to-clipboard": "^3.2.0",
"d3": "^7.6.1",
"d3-curve-circlecorners": "^0.1.6",
"ethers": "^5.1.4",
"firebase": "^9.1.3",
"focus-visible": "^5.2.0",
"fortmatic": "^2.4.0",
"graphql": "^15.5.0",
"graphql-request": "^3.4.0",
"immer": "^9.0.6",
"inter-ui": "^3.13.1",
"jest-styled-components": "^7.0.5",
"jotai": "^1.3.7",
"jsbi": "^3.1.4",
"make-plural": "^7.0.0",
"ms.macro": "^2.0.0",
"multicodec": "^3.0.1",
"multihashes": "^4.0.2",
"node-vibrant": "^3.2.1-alpha.1",
"numbro": "^2.3.6",
"polished": "^3.3.2",
"polyfill-object.fromentries": "^1.0.1",
"popper-max-size-modifier": "^0.2.0",
"prettier": "^2.2.1",
"qs": "^6.9.4",
"react": "^17.0.1",
"react": "^18.2.0",
"react-confetti": "^6.0.0",
"react-dom": "^17.0.1",
"react-dom": "^18.2.0",
"react-feather": "^2.0.8",
"react-ga4": "^1.4.1",
"react-is": "^17.0.2",
"react-markdown": "^4.3.1",
"react-popper": "^2.2.3",
"react-redux": "^7.2.2",
"react-router-dom": "^5.0.0",
"react-scripts": "^4.0.3",
"react-query": "^3.39.1",
"react-redux": "^8.0.2",
"react-router-dom": "^6.3.0",
"react-spring": "^8.0.27",
"react-table": "^7.8.0",
"react-use-gesture": "^6.0.14",
"react-virtualized-auto-sizer": "^1.0.2",
"react-window": "^1.8.5",
"rebass": "^4.0.7",
"redux": "^4.1.2",
"redux-localstorage-simple": "^2.3.1",
"sass": "^1.45.1",
"serve": "^11.3.2",
"setimmediate": "^1.0.5",
"styled-components": "^5.3.0",
"styled-components": "^5.3.5",
"tiny-invariant": "^1.2.0",
"typechain": "^5.0.0",
"typescript": "^4.4.3",
"ua-parser-js": "^0.7.28",
"use-count-up": "^2.2.5",
"use-resize-observer": "^8.0.0",
"use-resize-observer": "^9.0.2",
"uuid": "^8.3.2",
"video-extensions": "^1.2.0",
"wcag-contrast": "^3.0.0",
"web-vitals": "^2.1.0",
"workbox-core": "^6.1.0",
"workbox-navigation-preload": "^6.1.0",
"workbox-precaching": "^6.1.0",
"workbox-routing": "^6.1.0"
},
"resolutions": {
"@walletconnect/ethereum-provider": "1.7.1"
"workbox-routing": "^6.1.0",
"zustand": "^4.0.0-rc.1"
}
}

9
prei18n-extract.js Normal file
View File

@@ -0,0 +1,9 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
const exec = require('child_process').exec
const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE)
if (isWindows) {
exec(`type nul > src/locales/en-US.po`)
} else {
exec(`touch src/locales/en-US.po`)
}

View File

@@ -24,83 +24,83 @@
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<link rel="preconnect" href="https://www.google-analytics.com/">
<link rel="preconnect" href="https://www.google-analytics.com/" />
<link rel="preload" href="%PUBLIC_URL%/fonts/Inter-roman.var.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="%PUBLIC_URL%/fonts/Inter-roman.var.woff2" as="font" type="font/woff2" crossorigin />
<style>
* {
font-family: 'Inter', sans-serif;
box-sizing: border-box;
}
* {
font-family: 'Inter', sans-serif;
box-sizing: border-box;
}
/**
/**
Explicitly load Inter var from public/ so it does not block LCP's critical path.
*/
@font-face {
font-family: 'Inter custom';
font-weight: 100 900;
font-style: normal;
font-display: block;
font-named-instance: 'Regular';
src: url(%PUBLIC_URL%/fonts/Inter-roman.var.woff2) format("woff2 supports variations(gvar)"),
url(%PUBLIC_URL%/fonts/Inter-roman.var.woff2) format("woff2-variations"),
url(%PUBLIC_URL%/fonts/Inter-roman.var.woff2) format("woff2");
}
@font-face {
font-family: 'Inter custom';
font-weight: 100 900;
font-style: normal;
font-display: block;
font-named-instance: 'Regular';
src: url(%PUBLIC_URL%/fonts/Inter-roman.var.woff2) format('woff2 supports variations(gvar)'),
url(%PUBLIC_URL%/fonts/Inter-roman.var.woff2) format('woff2-variations'),
url(%PUBLIC_URL%/fonts/Inter-roman.var.woff2) format('woff2');
}
@supports (font-variation-settings: normal) {
* {
font-family: 'Inter custom', sans-serif;
}
@supports (font-variation-settings: normal) {
* {
font-family: 'Inter custom', sans-serif;
}
}
html,
body {
margin: 0;
padding: 0;
}
html,
body {
margin: 0;
padding: 0;
}
button {
user-select: none;
}
button {
user-select: none;
}
html {
font-size: 16px;
font-variant: none;
font-smooth: always;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-feature-settings: 'ss01' on, 'ss02' on, 'cv01' on, 'cv03' on;
}
#background-radial-gradient {
position: fixed;
top: 0;
left: 0;
right: 0;
pointer-events: none;
width: 200vw;
height: 200vh;
background: radial-gradient(50% 50% at 50% 50%, #fc077d10 0%, rgba(255, 255, 255, 0) 100%);
transform: translate(-50vw, -100vh);
z-index: -1;
}
html {
min-height: 100%;
}
@media (prefers-color-scheme: dark) {
html {
font-size: 16px;
font-variant: none;
font-smooth: always;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-feature-settings: 'ss01' on, 'ss02' on, 'cv01' on, 'cv03' on;
background-color: #212429;
}
#background-radial-gradient {
position: fixed;
top: 0;
left: 0;
right: 0;
pointer-events: none;
width: 200vw;
height: 200vh;
background: radial-gradient(50% 50% at 50% 50%, #fc077d10 0%, rgba(255, 255, 255, 0) 100%);
transform: translate(-50vw, -100vh);
z-index: -1;
}
}
@media (prefers-color-scheme: light) {
html {
min-height: 100%;
}
@media (prefers-color-scheme: dark) {
html {
background-color: #212429;
}
}
@media (prefers-color-scheme: light) {
html {
background-color: #F7F8FA;
}
background-color: #f7f8fa;
}
}
</style>
</head>
<body>

BIN
public/nft/arrow_down.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

BIN
public/nft/banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
public/nft/bannerIcons.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

BIN
public/nft/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -0,0 +1,3 @@
<svg width="29" height="28" viewBox="0 0 29 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.74219 20.29C6.74219 22.1885 7.71777 23.1729 9.59863 23.1729H18.959C20.8398 23.1729 21.8154 22.1885 21.8154 20.29V7.02734C21.8154 5.1377 20.8398 4.14453 18.959 4.14453H9.59863C7.71777 4.14453 6.74219 5.1377 6.74219 7.02734V20.29ZM8.46484 20.1846V7.13281C8.46484 6.31543 8.88672 5.86719 9.73926 5.86719H18.8096C19.6621 5.86719 20.0928 6.31543 20.0928 7.13281V20.1846C20.0928 21.002 19.6621 21.4502 18.8096 21.4502H9.73926C8.88672 21.4502 8.46484 21.002 8.46484 20.1846ZM10.5391 9.16309C10.9961 9.16309 11.3564 8.79395 11.3564 8.3457C11.3564 7.88867 10.9961 7.52832 10.5391 7.52832C10.0908 7.52832 9.72168 7.89746 9.72168 8.3457C9.72168 8.79395 10.0908 9.16309 10.5391 9.16309ZM12.9561 8.91699H18.2646C18.5811 8.91699 18.8359 8.66211 18.8359 8.3457C18.8359 8.0293 18.5811 7.77441 18.2646 7.77441H12.9561C12.6396 7.77441 12.3848 8.0293 12.3848 8.3457C12.3848 8.66211 12.6396 8.91699 12.9561 8.91699ZM10.5391 11.7822C10.9961 11.7822 11.3564 11.4131 11.3564 10.9648C11.3564 10.5078 10.9961 10.1562 10.5391 10.1562C10.082 10.1562 9.72168 10.5166 9.72168 10.9648C9.72168 11.4131 10.082 11.7822 10.5391 11.7822ZM12.9561 11.5361H18.2646C18.5898 11.5361 18.8359 11.2812 18.8359 10.9648C18.8359 10.6484 18.5898 10.4023 18.2646 10.4023H12.9561C12.6309 10.4023 12.3848 10.6484 12.3848 10.9648C12.3848 11.2812 12.6309 11.5361 12.9561 11.5361ZM10.5391 14.5332C10.9961 14.5332 11.3564 14.1641 11.3564 13.7158C11.3564 13.2588 10.9961 12.8896 10.5391 12.8896C10.0908 12.8896 9.72168 13.2676 9.72168 13.7158C9.72168 14.1553 10.0908 14.5332 10.5391 14.5332ZM12.9561 14.2871H18.2646C18.5811 14.2871 18.8359 14.0234 18.8359 13.7158C18.8359 13.3994 18.5898 13.1445 18.2646 13.1445H12.9561C12.6309 13.1445 12.3848 13.3994 12.3848 13.7158C12.3848 14.0234 12.6396 14.2871 12.9561 14.2871Z" fill="#0A0A3B"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
public/nft/logos/argent.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
public/nft/logos/frame.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
public/nft/logos/gnosis.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
public/nft/logos/wc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,4 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.57471 23.4444H20.6489C22.4664 23.4444 23.5211 22.3897 23.5211 20.3745V10.6281C23.5211 8.61286 22.457 7.55818 20.4229 7.55818H19.0951C19.0481 5.4488 17.2494 3.69727 14.9988 3.69727C12.7576 3.69727 10.9496 5.4488 10.9025 7.55818H9.57471C7.54067 7.55818 6.47656 8.61286 6.47656 10.6281V20.3745C6.47656 22.3897 7.54067 23.4444 9.57471 23.4444ZM14.9988 5.36405C16.2889 5.36405 17.24 6.33398 17.2777 7.55818H12.7199C12.7576 6.33398 13.7087 5.36405 14.9988 5.36405Z" fill="#4673FA"/>
<path d="M14.4407 20.3577C14.057 20.3577 13.744 20.1936 13.4613 19.814L10.9875 16.757C10.8057 16.5313 10.7148 16.2851 10.7148 16.0287C10.7148 15.5055 11.1187 15.0746 11.6438 15.0746C11.9568 15.0746 12.1991 15.1977 12.4516 15.526L14.4003 18.0393L18.5806 11.2483C18.7926 10.8995 19.0854 10.7148 19.3985 10.7148C19.9033 10.7148 20.3577 11.0739 20.3577 11.6073C20.3577 11.8433 20.2466 12.0997 20.0952 12.3357L15.3697 19.814C15.1475 20.173 14.8143 20.3577 14.4407 20.3577Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
<path fill="#4673FA" d="M11.783 18.094c-.315.489-.78.763-1.32.763-.554 0-.988-.229-1.393-.763l-3.537-4.393c-.255-.32-.39-.656-.39-1.022 0-.763.57-1.358 1.304-1.358.45 0 .81.168 1.17.64l2.787 3.616 5.92-9.671c.315-.519.72-.763 1.17-.763.704 0 1.363.503 1.363 1.25 0 .352-.18.718-.374 1.038l-6.7 10.663z"/>
</svg>

After

Width:  |  Height:  |  Size: 410 B

View File

@@ -0,0 +1,3 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.7783 21.1514C12.9805 21.3447 13.2266 21.4502 13.5078 21.4502C14.0967 21.4502 14.5537 20.9932 14.5537 20.4131C14.5537 20.123 14.4395 19.8594 14.2373 19.6572L8.08496 13.6455L14.2373 7.65137C14.4395 7.44922 14.5537 7.17676 14.5537 6.89551C14.5537 6.31543 14.0967 5.8584 13.5078 5.8584C13.2266 5.8584 12.9805 5.96387 12.7871 6.15723L5.94922 12.8369C5.70312 13.0654 5.58008 13.3467 5.58008 13.6543C5.58008 13.9619 5.70312 14.2256 5.94043 14.4629L12.7783 21.1514ZM20.6357 21.1514C20.8379 21.3447 21.0752 21.4502 21.3652 21.4502C21.9541 21.4502 22.4111 20.9932 22.4111 20.4131C22.4111 20.123 22.2881 19.8594 22.0947 19.6572L15.9336 13.6455L22.0947 7.65137C22.2969 7.44922 22.4111 7.17676 22.4111 6.89551C22.4111 6.31543 21.9541 5.8584 21.3652 5.8584C21.0752 5.8584 20.8379 5.96387 20.6357 6.15723L13.7979 12.8369C13.5605 13.0654 13.4375 13.3467 13.4287 13.6543C13.4287 13.9619 13.5518 14.2256 13.7979 14.4629L20.6357 21.1514Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,10 @@
<svg width="29" height="28" viewBox="0 0 29 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_564_11230)">
<path d="M7.2207 16.0615L13.9092 9.22363C14.1377 8.97754 14.4102 8.86328 14.7178 8.86328C15.0254 8.86328 15.3066 8.98633 15.5352 9.22363L22.2148 16.0615C22.4082 16.2549 22.5137 16.501 22.5137 16.791C22.5137 17.3799 22.0566 17.8369 21.4766 17.8369C21.1953 17.8369 20.9229 17.7314 20.7207 17.5205L14.7266 11.3594L8.71484 17.5205C8.52148 17.7227 8.24902 17.8369 7.95898 17.8369C7.37891 17.8369 6.92188 17.3799 6.92188 16.791C6.92188 16.5098 7.02734 16.2549 7.2207 16.0615Z" fill="currentColor"/>
</g>
<defs>
<clipPath id="clip0_564_11230">
<rect width="28" height="28" fill="white" transform="translate(0.716797)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 774 B

View File

@@ -0,0 +1,3 @@
<svg width="33" height="32" viewBox="0 0 33 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.12898 13.5458C4.33545 13.5458 4.13456 14.1484 4.56648 14.7411L7.02741 18.1362C7.35889 18.6083 7.89125 18.5982 8.21268 18.1362L10.6736 14.731C11.0854 14.1585 10.8946 13.5458 10.1111 13.5458H8.66469C9.56871 9.93973 12.8131 7.29799 16.7205 7.29799C19.4024 7.30804 21.7529 8.55357 23.2596 10.5324C23.6714 11.0045 24.2741 11.1551 24.7663 10.7935C25.2283 10.4621 25.3187 9.80915 24.8667 9.26674C23.0185 6.84598 19.9649 5.21875 16.7205 5.21875C11.7283 5.21875 7.49951 8.82478 6.53523 13.5458H5.12898ZM16.3488 9.78906C15.8567 9.78906 15.4649 10.1808 15.4649 10.6629V16.1071C15.4649 16.3482 15.5453 16.5692 15.716 16.8002L18.1167 19.9542C18.4683 20.4263 18.9906 20.5067 19.4225 20.1953C19.8343 19.904 19.8745 19.3717 19.5531 18.9397L17.2227 15.8058V10.6629C17.2227 10.1808 16.831 9.78906 16.3488 9.78906ZM16.7205 25.9911C21.7127 25.9911 25.9415 22.385 26.9058 17.6641H28.312C29.1055 17.6641 29.3064 17.0614 28.8745 16.4688L26.4236 13.0737C26.0821 12.6116 25.5497 12.6116 25.2283 13.0737L22.7674 16.4788C22.3555 17.0614 22.5464 17.6641 23.3299 17.6641H24.7863C23.8723 21.2701 20.6279 23.9219 16.7205 23.9219C14.0386 23.9118 11.6881 22.6563 10.1814 20.6775C9.7696 20.2054 9.17697 20.0547 8.67473 20.4163C8.21268 20.7478 8.12228 21.4007 8.57429 21.9531C10.4225 24.3638 13.4761 25.9911 16.7205 25.9911Z" fill="#4673FA"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

20
public/nft/svgs/close.svg Normal file
View File

@@ -0,0 +1,20 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="13.75 11.75 46.5 46.5">
<g filter="url(#filter0_d_12_3296)">
<circle cx="37" cy="35" r="21" fill="#EEEEEE" shape-rendering="crispEdges"/>
<circle cx="37" cy="35" r="21.75" stroke="black" stroke-opacity="0.1" stroke-width="1.5" shape-rendering="crispEdges"/>
</g>
<path d="M30 28L44.5 42.5" stroke="#A6A6A6" stroke-width="3" stroke-linecap="round"/>
<path d="M44.5 28L30 42.5" stroke="#A6A6A6" stroke-width="3" stroke-linecap="round"/>
<defs>
<filter id="filter0_d_12_3296" x="0.5" y="0.5" width="73" height="73" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="2"/>
<feGaussianBlur stdDeviation="7"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_12_3296"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_12_3296" result="shape"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

3
public/nft/svgs/down.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="14" height="8" viewBox="0 0 14 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.880867 0.48089C1.12465 0.237177 1.45525 0.100267 1.79997 0.100267C2.14468 0.100267 2.47528 0.237177 2.71907 0.48089L6.99997 4.76179L11.2809 0.48089C11.4008 0.356727 11.5442 0.25769 11.7028 0.189558C11.8614 0.121426 12.032 0.0855639 12.2046 0.084064C12.3773 0.082564 12.5484 0.115456 12.7082 0.180821C12.868 0.246186 13.0131 0.342715 13.1352 0.464776C13.2572 0.586836 13.3538 0.731984 13.4191 0.891749C13.4845 1.05151 13.5174 1.2227 13.5159 1.39531C13.5144 1.56792 13.4785 1.73851 13.4104 1.89712C13.3423 2.05572 13.2432 2.19917 13.1191 2.31909L7.91907 7.51909C7.67528 7.7628 7.34468 7.89971 6.99997 7.89971C6.65525 7.89971 6.32465 7.7628 6.08087 7.51909L0.880867 2.31909C0.637154 2.0753 0.500244 1.7447 0.500244 1.39999C0.500244 1.05528 0.637154 0.724676 0.880867 0.48089Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 942 B

10
public/nft/svgs/eth.svg Normal file
View File

@@ -0,0 +1,10 @@
<svg width="15" height="24" viewBox="0 0 15 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g opacity="0.5">
<path d="M7.49805 0V8.87184L14.995 12.2225L7.49805 0Z" fill="black" fill-opacity="0.602"/>
<path d="M7.49797 0L0 12.2225L7.49797 8.87184V0Z" fill="black"/>
<path d="M7.49805 17.9718V24L15 13.6189L7.49805 17.9718Z" fill="black" fill-opacity="0.602"/>
<path d="M7.49797 24V17.9708L0 13.6189L7.49797 24Z" fill="black"/>
<path d="M7.49805 16.5766L14.995 12.2227L7.49805 8.87402V16.5766Z" fill="black" fill-opacity="0.2"/>
<path d="M0 12.2227L7.49797 16.5766V8.87402L0 12.2227Z" fill="black" fill-opacity="0.602"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 636 B

4
public/nft/svgs/eth2.svg Normal file
View File

@@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.85742 7.95904L8.00028 2.57129L11.1431 7.95904L8.00028 9.75496L4.85742 7.95904Z" fill="currentColor"/>
<path d="M4.85742 8.85742L8.00028 10.6533L11.1431 8.85742L8.00028 13.3472L4.85742 8.85742Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 331 B

View File

@@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.85742 7.95904L8.00028 2.57129L11.1431 7.95904L8.00028 9.75496L4.85742 7.95904Z" fill="white"/>
<path d="M4.85742 8.85742L8.00028 10.6533L11.1431 8.85742L8.00028 13.3472L4.85742 8.85742Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 317 B

View File

@@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.85742 7.95904L8.00028 2.57129L11.1431 7.95904L8.00028 9.75496L4.85742 7.95904Z" fill="black"/>
<path d="M4.85742 8.85742L8.00028 10.6533L11.1431 8.85742L8.00028 13.3472L4.85742 8.85742Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 317 B

1
public/nft/svgs/gem.svg Normal file
View File

@@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1353.92 1353.92"><defs><style>.cls-1{fill:#ff4d05;}.cls-2{fill:#a7fff1;}.cls-3{fill:#00e4ef;}.cls-4{fill:#5ecbf1;}.cls-5{fill:#8eefea;}.cls-6{fill:#c30047;}.cls-7{fill:#ff6826;}</style></defs><title>Design</title><path class="cls-1" d="M1671.77,915.9,1354.19,596.41,1560.92,864,1000,1546l120.29,120.36A681.16,681.16,0,0,1,1000,1677c-373.87,0-677-303.09-677-677s303.09-677,677-677c345.41,0,630.4,258.7,671.79,592.91Z" transform="translate(-323.04 -323.04)"/><polygon class="cls-2" points="464.42 540.93 117.01 540.93 322.55 273.37 464.42 540.93"/><polygon class="cls-3" points="676.96 273.37 464.42 540.93 322.55 273.37 676.96 273.37"/><polygon class="cls-4" points="1031.15 273.37 890.71 540.93 676.96 273.37 1031.15 273.37"/><polygon class="cls-3" points="1237.88 540.93 890.71 540.93 1031.15 273.37 1237.88 540.93"/><polygon class="cls-2" points="1237.88 540.93 676.96 1222.91 890.71 540.93 1237.88 540.93"/><polygon class="cls-4" points="890.71 540.93 676.96 1222.91 676.96 540.93 890.71 540.93"/><polygon class="cls-5" points="676.96 1222.91 117.01 540.93 464.42 540.93 676.96 1222.91"/><polygon class="cls-3" points="890.71 540.93 676.96 540.93 676.96 273.37 890.71 540.93"/><polygon class="cls-2" points="676.96 273.37 676.96 540.93 464.42 540.93 676.96 273.37"/><polygon class="cls-3" points="676.96 540.93 676.96 1222.91 574.38 893.76 560.06 847.8 483.41 601.87 469.12 556 464.42 540.93 676.96 540.93"/><path class="cls-6" d="M1677,1000c0,332.82-240.18,609.54-556.67,666.31L1000,1546l560.92-682L1354.19,596.41,1671.77,915.9l0,.05A683.76,683.76,0,0,1,1677,1000Z" transform="translate(-323.04 -323.04)"/><path class="cls-7" d="M842.93,864A207.19,207.19,0,0,1,1000,791.73V758.94A240.18,240.18,0,0,0,801.65,864q-5,7.35-9.49,15.07A240.41,240.41,0,0,0,1000,1239.89V1207.1A207.6,207.6,0,0,1,842.93,864Z" transform="translate(-323.04 -323.04)"/><path class="cls-6" d="M1240.84,999.42c0,132.81-107.66,240.47-240.47,240.47H1000V1207.1h.37c114.7,0,207.68-93,207.68-207.68s-93-207.69-207.68-207.69H1000V758.94h.37C1133.18,758.94,1240.84,866.61,1240.84,999.42Z" transform="translate(-323.04 -323.04)"/><path class="cls-6" d="M1037.67,999.42a37.3,37.3,0,0,1-37.3,37.3H1000V962.11h.37A37.3,37.3,0,0,1,1037.67,999.42Z" transform="translate(-323.04 -323.04)"/><path class="cls-7" d="M1000,962.11v74.61a37.31,37.31,0,0,1,0-74.61Z" transform="translate(-323.04 -323.04)"/><rect class="cls-6" x="772.73" y="661.52" width="181.07" height="31.37"/><rect class="cls-7" x="399.19" y="661.52" width="181.07" height="31.37"/><rect class="cls-6" x="676.96" y="773.8" width="16.05" height="181.07"/><rect class="cls-7" x="661.64" y="773.8" width="15.32" height="181.07"/><rect class="cls-6" x="676.96" y="398.8" width="16.05" height="181.07"/><rect class="cls-7" x="661.64" y="398.8" width="15.32" height="181.07"/></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,8 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.418 5.06609C10.4704 5.37012 10.5351 5.67294 10.6121 5.97456C10.6213 6.01097 10.6308 6.0473 10.6406 6.08354C10.6907 6.27249 10.7457 6.45997 10.8056 6.64599C10.813 6.66892 10.8213 6.69185 10.8313 6.71453C10.8599 6.78424 10.897 6.85018 10.9416 6.91085C10.9442 6.91446 10.9468 6.91807 10.9496 6.92142C11.0188 7.01331 11.1044 7.09143 11.2022 7.15176L11.2047 7.1533L11.2204 7.16232L11.2307 7.16824L11.7594 7.47485L11.7635 7.47716L11.7758 7.48438L11.7802 7.4867L11.7997 7.49803L11.8061 7.50164L11.8197 7.50808C11.8323 7.51478 11.8454 7.52097 11.8582 7.52689L11.887 7.53926C11.899 7.54415 11.9114 7.54905 11.9234 7.55343C11.9355 7.55781 11.9455 7.56116 11.9565 7.56477L11.9878 7.5743L12.0258 7.58409L12.0618 7.59208L12.0777 7.59543C12.1906 7.61595 12.3064 7.61508 12.4191 7.59285C12.6152 7.55094 12.8094 7.50396 13.0017 7.45192C13.0379 7.44238 13.0741 7.43233 13.11 7.42229C13.5952 7.28706 14.071 7.11965 14.5341 6.92116C14.6408 6.87564 14.7466 6.82841 14.8513 6.77945C15.1314 6.64925 15.4052 6.50823 15.6727 6.35639C15.4639 6.0239 15.2266 5.71035 14.9635 5.41933L14.9581 5.41314L14.9532 5.40773L14.9512 5.40541L14.9478 5.40181L14.9373 5.39021L14.9358 5.38867L14.9334 5.38609C14.9077 5.35861 14.8803 5.3328 14.8513 5.30879C14.7435 5.21963 14.617 5.15611 14.4812 5.123C14.3454 5.08989 14.204 5.08805 14.0674 5.11762L14.0605 5.11942C14.0428 5.12329 14.0253 5.12767 14.0076 5.13282L13.9968 5.13617C13.9812 5.14107 13.9655 5.14596 13.9499 5.15163L13.8698 5.18693L13.8392 5.20032C13.5675 5.31798 13.2895 5.42328 13.0053 5.5162C12.8224 5.57598 12.637 5.63034 12.4491 5.67929C12.3962 5.49379 12.3499 5.30656 12.3102 5.11762C12.3102 5.11427 12.3089 5.11118 12.3082 5.10783C12.3054 5.09443 12.3025 5.08206 12.3 5.06738C12.2433 4.79255 12.1987 4.51601 12.1662 4.23775C12.1614 4.19653 12.1567 4.1553 12.1526 4.11382C12.1388 4.0336 12.1143 3.95561 12.0797 3.88194C12.0205 3.75564 11.9337 3.64435 11.8258 3.55631C11.7178 3.46827 11.5915 3.40573 11.4563 3.37334C11.398 3.36046 11.3397 3.34757 11.281 3.33701C10.9415 3.27093 10.5975 3.23139 10.252 3.21875C10.2557 3.60683 10.2789 3.99447 10.3213 4.38023C10.3468 4.60833 10.379 4.83695 10.418 5.06609Z" fill="#30B465"/>
<path d="M9.74715 3.2151C9.34195 3.22987 8.93894 3.28162 8.54308 3.36969C8.36795 3.41102 8.2087 3.50292 8.085 3.63405C7.96129 3.76518 7.87855 3.9298 7.84698 4.1076C7.8439 4.13748 7.84056 4.16711 7.83723 4.19674C7.83594 4.20937 7.83466 4.22251 7.83312 4.23436C7.8285 4.27533 7.82285 4.31629 7.81746 4.35726C7.78666 4.59344 7.74731 4.8291 7.69939 5.06425C7.6958 5.08099 7.69246 5.09774 7.68887 5.11449C7.64883 5.30343 7.60305 5.49168 7.55155 5.67925C7.36332 5.63047 7.17791 5.57611 6.99533 5.51616L6.95786 5.50354C6.76501 5.43964 6.57499 5.36999 6.38778 5.29458L6.36622 5.28608C6.33825 5.27474 6.31078 5.26289 6.28306 5.2513C6.24174 5.23404 6.20041 5.21729 6.1596 5.19977C6.12315 5.18397 6.08688 5.16799 6.05077 5.15185C6.03948 5.14772 6.02818 5.14437 6.01689 5.14077L5.99276 5.13278C5.97916 5.12892 5.96555 5.12582 5.95221 5.12247L5.93296 5.11784C5.91627 5.11397 5.89959 5.11114 5.8829 5.10856L5.87315 5.10676C5.74517 5.08773 5.61464 5.09582 5.48998 5.13053C5.36531 5.16523 5.24926 5.22577 5.14933 5.30824C5.12035 5.33224 5.09292 5.35806 5.06719 5.38553L5.06386 5.38914L5.05821 5.39532L5.04794 5.40666L5.03767 5.41826C4.77372 5.70935 4.53564 6.02308 4.32617 6.35584C4.59346 6.50768 4.86724 6.6487 5.14753 6.7789C5.25225 6.82785 5.358 6.87509 5.46478 6.9206C5.92737 7.11929 6.40258 7.28696 6.88727 7.4225C6.92321 7.43255 6.9594 7.4426 6.99559 7.45213L7.04487 7.46502C7.22061 7.51191 7.39831 7.55485 7.57799 7.59384C7.69062 7.61607 7.80641 7.61695 7.91936 7.59642C7.92809 7.59487 7.93682 7.59255 7.94503 7.59075L7.96608 7.58611C7.98225 7.5825 7.99791 7.57812 8.01382 7.57374L8.03949 7.56601L8.07516 7.5539L8.11059 7.53999L8.13831 7.52814C8.15242 7.5217 8.16654 7.51474 8.1804 7.50779L8.19093 7.50263L8.19632 7.4998L8.21018 7.49181H8.21146L8.21377 7.49052L8.23764 7.47661L8.75099 7.1798L8.79334 7.15532L8.79591 7.15378C8.89417 7.09278 8.98005 7.01366 9.04899 6.9206C9.05181 6.91725 9.05438 6.91365 9.05695 6.91004C9.11592 6.82962 9.16159 6.74019 9.19221 6.64518C9.20299 6.61168 9.21326 6.57819 9.22378 6.54469C9.27153 6.39131 9.31602 6.23732 9.35726 6.08273C9.36701 6.04632 9.37651 6.00999 9.38575 5.97375C9.46292 5.6723 9.5276 5.36947 9.57979 5.06528C9.61898 4.83631 9.65132 4.60666 9.67682 4.37632C9.7192 3.99057 9.74233 3.60292 9.74612 3.21484L9.74715 3.2151Z" fill="#30B465"/>
<path d="M5.57074 12.0222C5.81355 11.8202 6.04866 11.6074 6.27608 11.3838C6.30303 11.358 6.32947 11.3322 6.35616 11.3047C6.40596 11.2549 6.45472 11.2039 6.50349 11.1532C6.52762 11.1274 6.55175 11.1032 6.57562 11.0779C6.6344 11.0156 6.69292 10.9527 6.75041 10.8891C6.90195 10.7247 6.98935 10.511 6.99656 10.2872V10.2246C6.99656 10.2055 6.99451 10.1862 6.99246 10.1671H6.99656V9.70337H6.99271C6.99477 9.68327 6.99605 9.66292 6.99656 9.64256V9.57995C6.98858 9.36819 6.90901 9.16546 6.77095 9.00514C6.7635 8.99664 6.7558 8.98839 6.7481 8.97937L6.73014 8.96005C6.67298 8.89684 6.61515 8.8344 6.55662 8.77274L6.54713 8.76269C6.48398 8.69622 6.42007 8.63052 6.35539 8.56559C6.32972 8.53983 6.30226 8.51277 6.27531 8.48649C6.04824 8.2632 5.81312 8.05038 5.56997 7.84804C5.4317 7.73278 5.29096 7.62114 5.14774 7.5131C4.8683 7.30182 4.58048 7.10429 4.28428 6.9205C4.21481 6.87722 4.14482 6.83471 4.07432 6.79297C4.05191 6.83522 4.03009 6.87773 4.00887 6.9205C3.85905 7.21965 3.73189 7.52971 3.62848 7.84804H3.63412C3.59393 7.95218 3.57297 8.0628 3.57227 8.17448C3.57227 8.18221 3.57227 8.1902 3.57227 8.19793C3.57227 8.2005 3.57227 8.20308 3.57227 8.20566C3.57741 8.44434 3.67425 8.6718 3.84254 8.8405L3.85743 8.85416C3.87001 8.86627 3.8831 8.87838 3.89593 8.88997C3.91621 8.90466 3.93649 8.91986 3.95676 8.9348C3.97114 8.94537 3.98551 8.95567 3.99963 8.96649C4.17708 9.09927 4.35025 9.23831 4.51914 9.38363C4.57527 9.43241 4.63113 9.48179 4.68675 9.53177L4.72859 9.56991C4.76127 9.59979 4.79378 9.62994 4.82612 9.66034L4.87027 9.70182C4.94984 9.77757 5.0283 9.85486 5.10564 9.93371C5.0283 10.0125 4.94984 10.0898 4.87027 10.1656C4.8097 10.2233 4.74852 10.28 4.68675 10.3356C4.46549 10.5356 4.23645 10.724 3.99963 10.9009L3.9465 10.9403C3.92956 10.9527 3.91287 10.9661 3.89516 10.9774C3.79706 11.0615 3.71762 11.1653 3.662 11.2821C3.60638 11.3989 3.57581 11.5261 3.57227 11.6556C3.57227 11.6602 3.57227 11.6646 3.57227 11.6692C3.57227 11.6739 3.57227 11.6829 3.57227 11.6896C3.57232 11.8033 3.59329 11.9161 3.63412 12.0222H3.63053C3.73394 12.3405 3.8611 12.6506 4.01092 12.9497C4.03231 12.9925 4.05413 13.0355 4.07637 13.0786C4.1467 13.0368 4.21669 12.9939 4.28634 12.9497C4.58202 12.7661 4.86984 12.5686 5.14979 12.3571C5.29199 12.2493 5.4323 12.1376 5.57074 12.0222Z" fill="#30B465"/>
<path d="M16.4283 11.6721C16.4283 11.6695 16.4283 11.6669 16.4283 11.6643C16.4232 11.4256 16.3263 11.1982 16.158 11.0295C16.1534 11.0248 16.148 11.0205 16.1434 11.0158C16.1306 11.0037 16.1177 10.9916 16.1046 10.98L16.0438 10.9352L16.0009 10.9035C15.8235 10.7707 15.6503 10.6317 15.4814 10.4864C15.4253 10.4376 15.3694 10.3882 15.3138 10.3382L15.2715 10.2996C15.2391 10.2699 15.207 10.2403 15.1752 10.2102L15.1282 10.1669C15.0487 10.0911 14.9702 10.0138 14.8929 9.93499C14.9701 9.85615 15.0485 9.77886 15.1282 9.70311C15.1888 9.6454 15.25 9.58871 15.3118 9.53306C15.533 9.33313 15.7621 9.1447 15.9989 8.96778L16.052 8.92836C16.069 8.91599 16.0856 8.9026 16.1034 8.89126C16.2015 8.80719 16.2809 8.7034 16.3366 8.58659C16.3922 8.46978 16.4229 8.34256 16.4265 8.21313C16.4265 8.20849 16.4265 8.20411 16.4265 8.19947C16.4265 8.19484 16.4265 8.18582 16.4265 8.17912C16.4266 8.06595 16.406 7.95373 16.3657 7.84804H16.3693C16.2659 7.52971 16.1387 7.21966 15.9889 6.92051C15.9675 6.87774 15.9457 6.83522 15.9234 6.79297C15.8531 6.83471 15.7831 6.87722 15.7135 6.92051C15.4178 7.10429 15.13 7.30182 14.85 7.5131C14.707 7.62097 14.5662 7.73261 14.4278 7.84804C14.185 8.05004 13.9499 8.26285 13.7224 8.48649C13.6955 8.51226 13.6691 8.53802 13.6424 8.56559C13.591 8.61712 13.5417 8.66865 13.4917 8.72018C13.4691 8.74388 13.4463 8.76733 13.4239 8.79103C13.3649 8.85356 13.3063 8.91685 13.2481 8.98092C13.0965 9.14533 13.0091 9.35913 13.002 9.58305V9.64565C13.002 9.66472 13.004 9.68404 13.0061 9.70311H13.002V10.1669H13.0058C13.0038 10.187 13.0025 10.2073 13.002 10.2277V10.2903C13.0101 10.502 13.0896 10.7047 13.2276 10.8651C13.235 10.8736 13.2427 10.8819 13.2504 10.8909L13.2684 10.9102C13.3257 10.9734 13.3835 11.0358 13.4419 11.0975L13.4514 11.1076C13.5148 11.174 13.5784 11.2397 13.6431 11.3047C13.6688 11.3304 13.6963 11.3575 13.7232 11.3838C13.9503 11.607 14.1854 11.8199 14.4286 12.0222C14.567 12.1375 14.7077 12.2491 14.8508 12.3571C15.1304 12.5684 15.4182 12.766 15.7142 12.9497C15.7839 12.993 15.8539 13.036 15.9242 13.0786C15.9464 13.0363 15.9683 12.9934 15.9896 12.9497C16.1395 12.6506 16.2666 12.3405 16.37 12.0222H16.3664C16.4067 11.9181 16.4278 11.8075 16.4286 11.6958C16.4278 11.687 16.4283 11.6798 16.4283 11.6721Z" fill="#30B465"/>
<path d="M9.58082 14.8058C9.52846 14.5018 9.46377 14.199 9.38677 13.8974C9.37753 13.8609 9.36803 13.8246 9.35828 13.7884C9.30814 13.5994 9.25313 13.4119 9.19324 13.2259C9.18579 13.203 9.17758 13.1801 9.16757 13.1574C9.13871 13.0877 9.10156 13.0218 9.05694 12.9611C9.05438 12.9575 9.05181 12.9538 9.04899 12.9505C8.97982 12.8586 8.89416 12.7805 8.79642 12.7202L8.79385 12.7186L8.7782 12.7096L8.76793 12.7037L8.23918 12.3971L8.23507 12.3948L8.22275 12.3875L8.21864 12.3852L8.19888 12.3739L8.19246 12.3703L8.17912 12.3638C8.16628 12.3571 8.15345 12.351 8.14036 12.345L8.11161 12.3327C8.09955 12.3278 8.08748 12.3229 8.07516 12.3185L8.04205 12.3072L8.01074 12.2976L7.97301 12.2878L7.93682 12.2798L7.9209 12.2765C7.80795 12.256 7.69216 12.2568 7.57952 12.2791C7.38342 12.321 7.18921 12.368 6.99687 12.42C6.96068 12.4295 6.92449 12.4396 6.88856 12.4496C6.40344 12.5849 5.9278 12.7523 5.46478 12.9508C5.358 12.9963 5.25225 13.0435 5.14753 13.0925C4.86741 13.2225 4.59363 13.3635 4.32617 13.5155C4.53493 13.848 4.77223 14.1616 5.03536 14.4526L5.04101 14.4588L5.04563 14.4642L5.04768 14.4665L5.05102 14.4701L5.06154 14.4817L5.06309 14.4832L5.0654 14.4858C5.09112 14.5133 5.11856 14.5391 5.14753 14.5631C5.25539 14.6523 5.38197 14.7158 5.51777 14.7489C5.65357 14.7821 5.79507 14.7839 5.93167 14.7543L5.93835 14.7525C5.95606 14.7486 5.97377 14.7442 5.99122 14.7391L6.002 14.7357C6.01766 14.7309 6.03332 14.726 6.04897 14.7203L6.12906 14.685L6.1596 14.6716C6.4315 14.5538 6.70948 14.4485 6.99354 14.3557C7.17646 14.2959 7.36186 14.2416 7.54975 14.1926C7.60108 14.3802 7.64686 14.5684 7.68707 14.7574C7.68707 14.7607 7.68835 14.7638 7.68912 14.7672C7.69195 14.7806 7.69477 14.7942 7.69734 14.8076C7.75398 15.0833 7.79855 15.3599 7.83107 15.6373C7.83594 15.6785 7.84056 15.7197 7.84467 15.7612C7.85853 15.8414 7.88305 15.9194 7.91757 15.9931C7.97682 16.1194 8.06362 16.2307 8.17155 16.3187C8.27947 16.4067 8.40575 16.4693 8.54103 16.5017V16.503C8.59929 16.5158 8.65781 16.5287 8.71634 16.5393C9.05578 16.6053 9.39981 16.6449 9.74535 16.6575C9.74156 16.2695 9.71843 15.8818 9.67604 15.4961C9.65157 15.265 9.61983 15.035 9.58082 14.8058Z" fill="#30B465"/>
<path d="M14.5333 12.9504C14.0707 12.7517 13.5955 12.584 13.1108 12.4485C13.0749 12.4384 13.0387 12.4284 13.0025 12.4188L12.9532 12.4059C12.7773 12.359 12.5996 12.3161 12.4201 12.2771C12.3074 12.2549 12.1917 12.254 12.0787 12.2745C12.07 12.2761 12.0613 12.2784 12.053 12.2802L12.032 12.2848C12.0161 12.2885 12.0002 12.2928 11.9843 12.2972L11.9586 12.3049L11.9229 12.3171C11.9111 12.3214 11.8993 12.3261 11.8877 12.331L11.8598 12.3428C11.8456 12.3493 11.8315 12.3562 11.8177 12.3632L11.8071 12.3683L11.8018 12.3712L11.7879 12.3791H11.7866L11.7843 12.3804L11.7604 12.3943L11.2473 12.6927L11.205 12.7185L11.2024 12.72C11.1043 12.7801 11.0184 12.8583 10.9491 12.9504C10.9463 12.9537 10.9437 12.9573 10.9411 12.9609C10.8822 13.0413 10.8365 13.1308 10.8059 13.2258C10.7951 13.2593 10.7848 13.2928 10.7743 13.3263C10.7265 13.4795 10.6821 13.6335 10.6408 13.7882C10.6311 13.8246 10.6216 13.861 10.6123 13.8972C10.5352 14.1987 10.4705 14.5015 10.4183 14.8057C10.3791 15.0348 10.3468 15.2645 10.3213 15.4946C10.2789 15.8804 10.2557 16.268 10.252 16.6561C10.6571 16.6413 11.0602 16.5896 11.456 16.5015V16.5002C11.6312 16.4589 11.7904 16.367 11.9141 16.2359C12.0378 16.1047 12.1205 15.9401 12.1521 15.7623C12.1552 15.7324 12.1585 15.7028 12.1619 15.6732C12.1632 15.6606 12.1644 15.6474 12.166 15.6356C12.1709 15.5946 12.1762 15.5536 12.1816 15.5127C12.2124 15.2763 12.2518 15.0407 12.2997 14.8057C12.3033 14.7889 12.3066 14.7722 12.3102 14.7541C12.3503 14.5652 12.396 14.377 12.4475 14.1894C12.6358 14.238 12.8212 14.2924 13.0038 14.3525L13.0412 14.3651C13.2339 14.429 13.4239 14.4986 13.6113 14.5741L13.6331 14.5826L13.7163 14.6173C13.7574 14.6346 13.7987 14.6513 13.8395 14.6689C13.8759 14.6845 13.9122 14.7005 13.9483 14.7168H13.9496C13.9609 14.7209 13.9722 14.7243 13.9835 14.7279L14.0079 14.7359C14.0212 14.7397 14.0348 14.7428 14.0482 14.7462L14.0674 14.7508C14.0841 14.7547 14.1008 14.7575 14.1188 14.7601L14.1283 14.7619C14.2562 14.7809 14.3868 14.7728 14.5114 14.7381C14.6361 14.7034 14.7521 14.6429 14.8521 14.5604C14.8811 14.5364 14.9085 14.5106 14.9342 14.4831L14.9376 14.4795L14.9432 14.4733L14.9535 14.462L14.9637 14.4504C15.2264 14.1599 15.4634 13.8469 15.6719 13.5151C15.4046 13.3634 15.1308 13.2224 14.8505 13.0921C14.7458 13.0431 14.6401 12.9959 14.5333 12.9504Z" fill="#30B465"/>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,3 @@
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.91211 12.6289H10.5146C11.877 12.6289 12.5801 11.9258 12.5801 10.5823V2.9421C12.5801 1.59863 11.877 0.895508 10.5146 0.895508H2.91211C1.55608 0.895508 0.84668 1.59235 0.84668 2.9421V10.5823C0.84668 11.9258 1.55608 12.6289 2.91211 12.6289ZM8.76939 8.46666C8.43666 8.46666 8.22321 8.24065 8.22321 7.87653V6.84696L8.31111 5.91155L7.44475 6.86579L5.18471 9.12584C5.05915 9.2514 4.90848 9.31417 4.72642 9.31417C4.39369 9.31417 4.14886 9.08189 4.14886 8.73033C4.14886 8.57338 4.21791 8.41643 4.33719 8.30343L6.60979 6.03083L7.57031 5.1582L6.68513 5.25865H5.59277C5.23493 5.25865 4.99637 5.0452 4.99637 4.71247C4.99637 4.37974 5.22866 4.16629 5.5865 4.16629H8.63756C9.0519 4.16629 9.30929 4.37974 9.30929 4.83803V7.86398C9.30929 8.22182 9.09584 8.46666 8.76939 8.46666Z" fill="#30B465"/>
</svg>

After

Width:  |  Height:  |  Size: 895 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="52" height="52" fill="none" viewBox="0 0 52 52">
<path fill="#70757A" d="M12.949 18.023h26.085c.882 0 1.591-.776 1.591-1.7 0-.96-.71-1.698-1.591-1.698H12.949c-.882 0-1.574.757-1.574 1.699 0 .923.692 1.699 1.574 1.699zm0 9.676h26.085c.882 0 1.591-.776 1.591-1.699 0-.96-.71-1.699-1.591-1.699H12.949c-.882 0-1.574.757-1.574 1.699 0 .923.692 1.699 1.574 1.699zm0 9.676h26.085c.882 0 1.591-.776 1.591-1.699 0-.942-.71-1.699-1.591-1.699H12.949c-.882 0-1.574.757-1.574 1.7 0 .922.692 1.698 1.574 1.698z"/>
</svg>

After

Width:  |  Height:  |  Size: 556 B

View File

@@ -0,0 +1,5 @@
<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 3C10.5597 3 8.3102 3.20126 6.50463 3.43972C4.87965 3.65433 3.65433 4.87965 3.43972 6.50463C3.20126 8.3102 3 10.5597 3 13C3 15.4403 3.20126 17.6898 3.43972 19.4954C3.65433 21.1203 4.87965 22.3457 6.50463 22.5603C8.3102 22.7987 10.5597 23 13 23C15.4403 23 17.6898 22.7987 19.4954 22.5603C21.1203 22.3457 22.3457 21.1203 22.5603 19.4954C22.7987 17.6898 23 15.4403 23 13C23 10.5597 22.7987 8.3102 22.5603 6.50463C22.3457 4.87965 21.1203 3.65433 19.4954 3.43972C17.6898 3.20126 15.4403 3 13 3ZM6.1773 0.961241C3.4313 1.32391 1.32391 3.4313 0.961241 6.1773C0.711918 8.0651 0.5 10.4266 0.5 13C0.5 15.5734 0.711918 17.9349 0.961241 19.8227C1.32391 22.5687 3.4313 24.6761 6.1773 25.0388C8.0651 25.2881 10.4266 25.5 13 25.5C15.5734 25.5 17.9349 25.2881 19.8227 25.0388C22.5687 24.6761 24.6761 22.5687 25.0388 19.8227C25.2881 17.9349 25.5 15.5734 25.5 13C25.5 10.4266 25.2881 8.0651 25.0388 6.1773C24.6761 3.4313 22.5687 1.32391 19.8227 0.961241C17.9349 0.711918 15.5734 0.5 13 0.5C10.4266 0.5 8.0651 0.711918 6.1773 0.961241Z" fill="#B1B5C3"/>
<path d="M9.25022 11.75C10.6309 11.75 11.7502 10.6307 11.7502 9.25C11.7502 7.86929 10.6309 6.75 9.25022 6.75C7.86951 6.75 6.75022 7.86929 6.75022 9.25C6.75022 10.6307 7.86951 11.75 9.25022 11.75Z" fill="#B1B5C3"/>
<path d="M20.6519 13.8841L22.8948 16.127C22.8174 17.2973 22.7044 18.3832 22.5798 19.3476L18.8841 15.6519C18.3959 15.1637 17.6045 15.1637 17.1163 15.6519L14.4019 18.3663C12.9374 19.8308 10.563 19.8308 9.09856 18.3663L8.8841 18.1519C8.39594 17.6637 7.60449 17.6637 7.11633 18.1519L4.105 21.1632C3.75616 20.6902 3.52255 20.1226 3.43972 19.4954C3.39454 19.1533 3.3509 18.7954 3.30952 18.4232L5.34857 16.3841C6.81303 14.9196 9.1874 14.9197 10.6519 16.3841L10.8663 16.5986C11.3545 17.0867 12.1459 17.0867 12.6341 16.5986L15.3486 13.8841C16.813 12.4196 19.1874 12.4197 20.6519 13.8841Z" fill="#B1B5C3"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1 @@
<svg role="img" width="29" height="28" viewBox="0 0 29 28" fill="none" xmlns="http://www.w3.org/2000/svg" > <path d="M6.74219 20.29C6.74219 22.1885 7.71777 23.1729 9.59863 23.1729H18.959C20.8398 23.1729 21.8154 22.1885 21.8154 20.29V7.02734C21.8154 5.1377 20.8398 4.14453 18.959 4.14453H9.59863C7.71777 4.14453 6.74219 5.1377 6.74219 7.02734V20.29ZM8.46484 20.1846V7.13281C8.46484 6.31543 8.88672 5.86719 9.73926 5.86719H18.8096C19.6621 5.86719 20.0928 6.31543 20.0928 7.13281V20.1846C20.0928 21.002 19.6621 21.4502 18.8096 21.4502H9.73926C8.88672 21.4502 8.46484 21.002 8.46484 20.1846ZM10.5391 9.16309C10.9961 9.16309 11.3564 8.79395 11.3564 8.3457C11.3564 7.88867 10.9961 7.52832 10.5391 7.52832C10.0908 7.52832 9.72168 7.89746 9.72168 8.3457C9.72168 8.79395 10.0908 9.16309 10.5391 9.16309ZM12.9561 8.91699H18.2646C18.5811 8.91699 18.8359 8.66211 18.8359 8.3457C18.8359 8.0293 18.5811 7.77441 18.2646 7.77441H12.9561C12.6396 7.77441 12.3848 8.0293 12.3848 8.3457C12.3848 8.66211 12.6396 8.91699 12.9561 8.91699ZM10.5391 11.7822C10.9961 11.7822 11.3564 11.4131 11.3564 10.9648C11.3564 10.5078 10.9961 10.1562 10.5391 10.1562C10.082 10.1562 9.72168 10.5166 9.72168 10.9648C9.72168 11.4131 10.082 11.7822 10.5391 11.7822ZM12.9561 11.5361H18.2646C18.5898 11.5361 18.8359 11.2812 18.8359 10.9648C18.8359 10.6484 18.5898 10.4023 18.2646 10.4023H12.9561C12.6309 10.4023 12.3848 10.6484 12.3848 10.9648C12.3848 11.2812 12.6309 11.5361 12.9561 11.5361ZM10.5391 14.5332C10.9961 14.5332 11.3564 14.1641 11.3564 13.7158C11.3564 13.2588 10.9961 12.8896 10.5391 12.8896C10.0908 12.8896 9.72168 13.2676 9.72168 13.7158C9.72168 14.1553 10.0908 14.5332 10.5391 14.5332ZM12.9561 14.2871H18.2646C18.5811 14.2871 18.8359 14.0234 18.8359 13.7158C18.8359 13.3994 18.5898 13.1445 18.2646 13.1445H12.9561C12.6309 13.1445 12.3848 13.3994 12.3848 13.7158C12.3848 14.0234 12.6396 14.2871 12.9561 14.2871Z" fill="currentColor" /> </svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%; display: block; shape-rendering: auto;" width="200px" height="200px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
<circle cx="50" cy="50" fill="none" stroke="#ffffff" stroke-width="10" r="35" stroke-dasharray="164.93361431346415 56.97787143782138">
<animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform>
</circle>
<!-- [ldio] generated by https://loading.io/ --></svg>

After

Width:  |  Height:  |  Size: 676 B

4
public/nft/svgs/logo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@@ -0,0 +1,12 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5348_11251)">
<path d="M13.75 22.5C18.5825 22.5 22.5 18.5825 22.5 13.75C22.5 8.91751 18.5825 5 13.75 5C8.91751 5 5 8.91751 5 13.75C5 18.5825 8.91751 22.5 13.75 22.5Z" fill="#0CE466"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.7501 14.6959C12.7492 14.6959 11.937 13.8845 11.937 12.8828C11.937 11.8811 12.7492 11.0697 13.7501 11.0697C14.751 11.0697 15.5631 11.8811 15.5631 12.8828C15.5631 13.8845 14.751 14.6959 13.7501 14.6959ZM12.9618 12.8828C12.9618 13.3183 13.3149 13.6711 13.7501 13.6711C14.1853 13.6711 14.5384 13.3183 14.5384 12.8828C14.5384 12.4473 14.1853 12.0945 13.7501 12.0945C13.3149 12.0945 12.9618 12.4473 12.9618 12.8828Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.91675 12.8852L11.3852 9.41434H16.1149L19.5834 12.8852L13.7501 18.7161L7.91675 12.8852ZM16.4302 11.6215C14.9565 10.1413 12.5436 10.1413 11.0699 11.6215L9.80864 12.8828L11.0699 14.1441C12.5436 15.6243 14.9565 15.6243 16.4302 14.1441L17.6915 12.8828L16.4302 11.6215Z" fill="black"/>
</g>
<defs>
<clipPath id="clip0_5348_11251">
<rect width="17.5" height="17.5" fill="white" transform="translate(5 5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="34" height="32" fill="none" viewBox="0 0 34 32">
<path fill="#0A0A3B" d="M15.228 21.753a7.952 7.952 0 004.37-1.306l4.431 4.41a1.52 1.52 0 001.073.421c.84 0 1.456-.653 1.456-1.476 0-.382-.131-.754-.414-1.035l-4.401-4.39a7.802 7.802 0 001.447-4.53c0-4.349-3.582-7.905-7.962-7.905-4.37 0-7.962 3.556-7.962 7.905 0 4.35 3.581 7.906 7.962 7.906zm0-2.11c-3.207 0-5.838-2.611-5.838-5.796 0-3.184 2.63-5.795 5.838-5.795 3.207 0 5.837 2.611 5.837 5.796 0 3.184-2.63 5.795-5.837 5.795z"/>
</svg>

After

Width:  |  Height:  |  Size: 535 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="33" height="32" fill="none" viewBox="0 0 33 32">
<path fill="#FDFEFF" d="M15.04 21.752a7.856 7.856 0 004.339-1.306l4.4 4.41c.29.28.662.421 1.064.421.834 0 1.446-.653 1.446-1.476 0-.382-.13-.754-.411-1.035l-4.37-4.39a7.84 7.84 0 001.437-4.53c0-4.349-3.556-7.905-7.906-7.905-4.339 0-7.905 3.556-7.905 7.906 0 4.349 3.556 7.905 7.905 7.905zm0-2.11c-3.185 0-5.796-2.611-5.796-5.795 0-3.185 2.611-5.796 5.795-5.796 3.185 0 5.796 2.611 5.796 5.796 0 3.184-2.611 5.795-5.796 5.795z"/>
</svg>

After

Width:  |  Height:  |  Size: 534 B

View File

@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 364 364">
<defs>
<style>.cls-1{fill:#0052ff;}.cls-2{fill:#fff;}</style>
</defs>
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<rect class="cls-1" width="364" height="364" />
<path class="cls-2" d="M232.77,192.91a53.51,53.51,0,1,1-.08-22.16,1.38,1.38,0,0,0,1.34,1.09h51.48a1.38,1.38,0,0,0,1.37-1.52A107.12,107.12,0,0,0,178.39,74.9c-57.49,1-104.27,48-105.1,105.51a107.12,107.12,0,0,0,213.63,12.92,1.39,1.39,0,0,0-1.38-1.52H234.11A1.36,1.36,0,0,0,232.77,192.91Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 593 B

View File

@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 364 364">
<defs>
<style>.cls-1{fill:#0083c9;}.cls-2{fill:#f89c1b;}.cls-3{fill:#80c241;}.cls-4{fill:#ed1c24;}</style>
</defs>
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<rect width="364" height="364" />
<rect class="cls-1" x="140.51" y="105.4" width="39.59" height="153.99"/>
<rect class="cls-2" x="190.26" y="106.12" width="39.59" height="103.62"/>
<rect class="cls-3" x="226.65" y="183.4" width="39.59" height="112.38" transform="translate(6.86 486.04) rotate(-90)"/>
<rect class="cls-4" x="75.34" y="204.11" width="39.59" height="70.95" transform="translate(-144.45 334.72) rotate(-90)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 743 B

View File

@@ -0,0 +1,6 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="32" height="32" fill="black"/>
<path d="M8.4264 12.5C8.50338 12.3667 8.69583 12.3667 8.77281 12.5L12.7565 19.4C12.8335 19.5333 12.7373 19.7 12.5833 19.7H4.61589C4.46193 19.7 4.36571 19.5333 4.44269 19.4L8.4264 12.5Z" fill="white"/>
<circle cx="15.9" cy="16" r="3.9" fill="white"/>
<rect x="20.25" y="12.35" width="7.25" height="7.25" rx="0.2" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 474 B

View File

@@ -0,0 +1,5 @@
<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="200" height="200" fill="#04CD58"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M100 112C87.3026 112 77 101.708 77 89C77 76.2923 87.3026 66 100 66C112.697 66 123 76.2923 123 89C123 101.708 112.697 112 100 112ZM90 89C90 94.5251 94.4794 99 100 99C105.521 99 110 94.5251 110 89C110 83.4749 105.521 79 100 79C94.4794 79 90 83.4749 90 89Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M26 89.0304L70 45H130L174 89.0304L100 163L26 89.0304ZM134 72.9998C115.305 54.2224 84.6953 54.2225 66 72.9999L50 89.0001L66 105C84.6953 123.778 115.305 123.777 134 105L150 89.0001L134 72.9998Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 731 B

View File

@@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 363 364">
<defs>
<style>.cls-1{fill:#3d3d3d;}.cls-2{fill:#24ddd8;}</style>
</defs>
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<rect class="cls-1" width="363" height="364"/>
<path class="cls-2" d="M218.1,115.8V102.1S187,101,177.94,115.76l-.22-13.45s-28.93-1.57-42.2,15.37c-3.53,4.51-6.09,8.14-7.88,12.7-3.86,9.81-3.27,24.88-3.27,24.88l0,66s-8.86-1.72-14.32,3a1.68,1.68,0,0,1-2,.23,1.4,1.4,0,0,1-.57-.8c-1.52-5.38-12.33-8.91-18.74-2.09-6.87,7.31-3.2,20.58,8.72,21.06,0,0-2.49,19.78,13.62,27.16,13.38,6.13,22,0,22,0s5,6.92,17.61,6.92h86.71c6.24,0,20.32-7.19,20.32-21.73V102.27S225,101.08,218.1,115.8ZM250.17,256c0,10.83-13.41,13.94-15.23,13.94H149.49a18.79,18.79,0,0,1-15.24-7.75c-5.62,4.89-13.89,3.68-13.89,3.68-16-1.09-16.76-19.32-15.67-22.93s.26-6.87-6.28-6.77-8.08-6.93-3.77-9.69,8.41-.16,8.44,3.19c0,2,2,4.43,5.19,4.53,4.23.13,6.21-5.52,12.68-5.88a19.4,19.4,0,0,1,10.77,2.4s.82-52.07.82-85.95c0-7.69,3.83-15.12,7.79-20.3a36.74,36.74,0,0,1,8-7.8,37.65,37.65,0,0,1,22.83-7.12v37.59h0c0-34.3,39.88-37.59,39.88-37.59v36.93h0c0-34.61,39.1-36.93,39.1-36.93Z"/>
<path class="cls-2" d="M238.24,214.27v31.47a11,11,0,0,1-11,11h-1.9a.65.65,0,0,1-.65-.65v-6.49a6.8,6.8,0,0,0-5.76-6.81,6.65,6.65,0,0,0-7.52,6.59v6.29a1.06,1.06,0,0,1-1.06,1.07h-37.8a1.07,1.07,0,0,1-1.07-1.07v-6a6.82,6.82,0,0,0-6.44-6.91,6.64,6.64,0,0,0-6.84,6.64v6.71a.65.65,0,0,1-.65.65h-1.45a11,11,0,0,1-11-11V214.28a11,11,0,0,1,11-11h1.45a.65.65,0,0,1,.65.65v6.84a6.64,6.64,0,0,0,13.28,0V204.3a1.06,1.06,0,0,1,1.07-1.06h37.8a1.05,1.05,0,0,1,1.06,1.06v6.14a6.82,6.82,0,0,0,6.44,6.91,6.63,6.63,0,0,0,6.84-6.62v-6.84a.65.65,0,0,1,.65-.65h1.91A11,11,0,0,1,238.24,214.27Z"/>
<rect class="cls-2" x="158.03" y="170.28" width="13.88" height="20.1" rx="3.72"/>
<rect class="cls-2" x="211.11" y="170.28" width="13.88" height="20.1" rx="3.72"/>
<path class="cls-2" d="M242.71,116.19s-29.8,2.46-25.51,37.8a92,92,0,0,1,8.33-23.15C229.06,124.34,237.32,119.4,242.71,116.19Z"/>
<path class="cls-2" d="M202.64,116.19s-29.8,2.46-25.51,37.8a92,92,0,0,1,8.33-23.15C189,124.34,197.25,119.4,202.64,116.19Z"/>
<path class="cls-2" d="M163.31,116.19s-29.8,2.46-25.51,37.8a92,92,0,0,1,8.33-23.15C149.65,124.34,157.92,119.4,163.31,116.19Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,30 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 364 364.73">
<defs>
<style>.cls-1{fill:#fffdfd;}.cls-2{fill:url(#linear-gradient);}.cls-3{isolation:isolate;opacity:0.5;fill:url(#linear-gradient-2);}</style>
<linearGradient id="linear-gradient" x1="235.4" y1="269.1" x2="133.56" y2="167.26" gradientTransform="matrix(1, 0, 0, -1, 0, 364.73)" gradientUnits="userSpaceOnUse">
<stop offset="0.09" stop-color="#ff6d41"/>
<stop offset="0.5" stop-color="#fa297f"/>
<stop offset="1" stop-color="#fa297f"/>
</linearGradient>
<linearGradient id="linear-gradient-2" x1="207.26" y1="295.68" x2="105" y2="193.43" gradientTransform="matrix(1, 0, 0, -1, 0, 364.73)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#652cb4"/><stop offset="0.07" stop-color="#652cb4" stop-opacity="0.82"/>
<stop offset="0.19" stop-color="#652cb4" stop-opacity="0.53"/>
<stop offset="0.3" stop-color="#652cb4" stop-opacity="0.3"/>
<stop offset="0.4" stop-color="#652cb4" stop-opacity="0.14"/>
<stop offset="0.49" stop-color="#652cb4" stop-opacity="0.04"/>
<stop offset="0.55" stop-color="#652cb4" stop-opacity="0"/>
</linearGradient>
</defs>
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<g id="NFTX"><rect class="cls-1" width="364" height="364.73" />
<polygon class="cls-2" points="182.52 38.79 73.06 148.78 182.52 254.16 291.97 148.78 182.52 38.79"/>
<polygon class="cls-3" points="182.52 148.78 73.06 148.78 182.52 38.79 182.52 148.78"/>
<path d="M127.44,242.37a116.42,116.42,0,0,1,7.42-9.31C102,241,79.31,257.71,79.31,277c0,.72,0,1.44.1,2.15,3.23-1.23,6.64-2.7,10.25-4.49C111.39,263.94,119.92,252.48,127.44,242.37Z"/>
<path d="M161.7,277.86C168.28,269,174,261.38,190,253.45s25.54-7.77,36.53-7.6c7.36.11,15.3.24,25-1.85-11.81-6.37-27-11.2-44.15-13.78l-24.86,23.93-17.38-16.73c-12.39,8.38-18.73,16.9-24.49,24.63-6.58,8.85-12.26,16.49-28.32,24.41C101.07,292,93,293.61,85.45,294c6,8,16.06,15,29,20.35,3-1.17,6.16-2.56,9.5-4.2C145.65,299.43,154.17,288,161.7,277.86Z"/>
<path d="M261.22,255c-12.57-.21-26.8-.43-48.53,10.3s-30.26,22.19-37.78,32.3C168.33,306.4,162.65,314,146.6,322c-.73.36-1.43.7-2.14,1a193,193,0,0,0,33.94,2.95c2.5,0,5-.05,7.45-.14A135,135,0,0,0,196,313.35c6.58-8.85,12.26-16.49,28.32-24.41s25.55-7.77,36.53-7.6a130.72,130.72,0,0,0,16.37-.47,23.62,23.62,0,0,0,.31-3.85c0-7.92-3.82-15.4-10.59-22C265,255,263.14,255,261.22,255Z"/>
<path d="M218.12,321.83c26-5.61,46.1-16.56,54.75-30A97.82,97.82,0,0,0,247,300.73C232.93,307.66,224.42,314.87,218.12,321.83Z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,5 @@
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="100" height="100" fill="#2081E2"/>
<path d="M24.6679 51.6802L24.8836 51.3411L37.8906 30.9933C38.0807 30.6954 38.5276 30.7262 38.6714 31.0498C40.8444 35.9197 42.7194 41.9763 41.841 45.7469C41.466 47.2983 40.4386 49.3993 39.2827 51.3411C39.1338 51.6237 38.9694 51.9011 38.7947 52.1682C38.7125 52.2915 38.5738 52.3634 38.4248 52.3634H25.048C24.6884 52.3634 24.4778 51.973 24.6679 51.6802Z" fill="white"/>
<path d="M82.6444 55.461V58.6819C82.6444 58.8668 82.5314 59.0312 82.367 59.1031C81.3602 59.5346 77.9132 61.1168 76.48 63.11C72.8224 68.2008 70.0279 75.48 63.7812 75.48H37.721C28.4847 75.48 21 67.9697 21 58.7024V58.4045C21 58.1579 21.2003 57.9576 21.4469 57.9576H35.9745C36.2621 57.9576 36.4727 58.2247 36.4471 58.5072C36.3443 59.4524 36.519 60.4182 36.9659 61.2966C37.8289 63.0484 39.6166 64.1426 41.5481 64.1426H48.74V58.5278H41.6303C41.2656 58.5278 41.0499 58.1065 41.2605 57.8086C41.3375 57.6904 41.4249 57.5672 41.5173 57.4285C42.1903 56.473 43.1509 54.9884 44.1064 53.2983C44.7588 52.1579 45.3906 50.9404 45.8992 49.7178C46.002 49.4969 46.0841 49.2708 46.1663 49.0499C46.305 48.6595 46.4489 48.2948 46.5516 47.9301C46.6544 47.6218 46.7365 47.2982 46.8187 46.9951C47.0602 45.9574 47.1629 44.8581 47.1629 43.7177C47.1629 43.2708 47.1424 42.8033 47.1013 42.3564C47.0807 41.8684 47.0191 41.3803 46.9574 40.8923C46.9163 40.4608 46.8393 40.0344 46.7571 39.5875C46.6544 38.9351 46.5105 38.2879 46.3461 37.6354L46.2896 37.3889C46.1663 36.9419 46.0636 36.5156 45.9198 36.0687C45.5139 34.6662 45.0465 33.2998 44.5533 32.0207C44.3735 31.5121 44.168 31.0241 43.9625 30.5361C43.6595 29.8015 43.3512 29.1337 43.0687 28.5018C42.9249 28.2141 42.8016 27.9521 42.6783 27.685C42.5396 27.3819 42.3958 27.0788 42.2519 26.7912C42.1492 26.5703 42.031 26.3648 41.9488 26.1593L41.0704 24.536C40.9471 24.3151 41.1526 24.0531 41.394 24.1199L46.8907 25.6096H46.9061C46.9163 25.6096 46.9215 25.6148 46.9266 25.6148L47.6509 25.8151L48.4472 26.0412L48.74 26.1233V22.8562C48.74 21.2791 50.0037 20 51.5654 20C52.3462 20 53.0551 20.3185 53.5637 20.8373C54.0722 21.3562 54.3907 22.0651 54.3907 22.8562V27.7056L54.9764 27.8699C55.0226 27.8854 55.0688 27.9059 55.1099 27.9367C55.2538 28.0446 55.4592 28.2038 55.7212 28.3991C55.9267 28.5634 56.1476 28.7638 56.4147 28.9693C56.9438 29.3956 57.5757 29.9453 58.2692 30.5772C58.4541 30.7364 58.6339 30.9008 58.7983 31.0652C59.6922 31.8974 60.6939 32.8734 61.6494 33.9522C61.9165 34.2553 62.1785 34.5635 62.4456 34.8871C62.7127 35.2159 62.9953 35.5395 63.2418 35.8632C63.5655 36.2947 63.9148 36.7416 64.2179 37.2091C64.3617 37.43 64.5261 37.656 64.6648 37.8769C65.0552 38.4676 65.3994 39.079 65.7282 39.6903C65.8669 39.9728 66.0107 40.281 66.134 40.5841C66.4987 41.4009 66.7864 42.2331 66.9713 43.0653C67.0278 43.2451 67.0689 43.4403 67.0895 43.615V43.6561C67.1511 43.9026 67.1717 44.1646 67.1922 44.4317C67.2744 45.2845 67.2333 46.1372 67.0484 46.9951C66.9713 47.3599 66.8686 47.704 66.7453 48.0688C66.622 48.4181 66.4987 48.7828 66.3395 49.127C66.0313 49.841 65.6665 50.5551 65.235 51.2229C65.0963 51.4695 64.9319 51.7315 64.7675 51.9781C64.5877 52.24 64.4028 52.4866 64.2384 52.7281C64.0124 53.0363 63.771 53.3599 63.5244 53.6476C63.3035 53.9507 63.0775 54.2538 62.8309 54.5209C62.4867 54.9267 62.1579 55.312 61.8137 55.6819C61.6083 55.9233 61.3874 56.1699 61.1613 56.3908C60.9405 56.6373 60.7144 56.8582 60.5089 57.0637C60.1648 57.4079 59.8771 57.675 59.6356 57.8959L59.0706 58.4148C58.9884 58.4867 58.8805 58.5278 58.7675 58.5278H54.3907V64.1426H59.8976C61.1305 64.1426 62.3018 63.7059 63.247 62.9045C63.5706 62.622 64.9833 61.3994 66.6528 59.5552C66.7093 59.4935 66.7813 59.4473 66.8635 59.4268L82.0742 55.0295C82.3568 54.9473 82.6444 55.163 82.6444 55.461Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 363 364">
<defs>
<style>.cls-1{fill:#fcd903;}.cls-2{fill:#020100;}</style>
</defs>
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<path class="cls-1" d="M285.85,364H77.15A77.15,77.15,0,0,1,0,286.85V77.15A77.15,77.15,0,0,1,77.15,0h208.7A77.15,77.15,0,0,1,363,77.15v209.7A77.15,77.15,0,0,1,285.85,364ZM74.09,107.52V267.34H137.6V213.41c26.76,0,53-.21,79.21.11,9.71.12,14.67,5.83,14.84,15.73.18,10.13,0,20.27,0,30.4v7.72h63.37c0-15.84.82-31.47-.24-47-1-14.64-9.32-25.25-22.75-31.56-1.29-.61-2.62-1.12-4-1.71.27-.36.35-.54.48-.61a8.62,8.62,0,0,1,1.32-.67c15-5.49,22.36-16.53,23.09-32.17.77-16.55-4.49-30-20-38.08-12.45-6.44-26-8.1-39.64-8.17-52.49-.26-105-.18-157.48-.21A11.44,11.44,0,0,0,74.09,107.52Z"/>
<path class="cls-2" d="M74.09,107.52a11.44,11.44,0,0,1,1.73-.3c52.5,0,105,0,157.48.21,13.65.07,27.19,1.73,39.64,8.17,15.55,8,20.81,21.53,20,38.08-.73,15.64-8.11,26.68-23.09,32.17a8.62,8.62,0,0,0-1.32.67c-.13.07-.21.25-.48.61,1.37.59,2.7,1.1,4,1.71,13.43,6.31,21.75,16.92,22.75,31.56,1.06,15.5.24,31.13.24,47H231.7v-7.72c0-10.13.13-20.27,0-30.4-.17-9.9-5.13-15.61-14.84-15.73-26.22-.32-52.45-.11-79.21-.11v53.93H74.09Zm63.65,62.39c23.83,0,47.39,0,70.95,0,3.66,0,7.32,0,11-.28,5.58-.49,6.71-2.27,7.14-8.08.41-5.37-2.86-6.48-6.93-7a49.5,49.5,0,0,0-6-.25q-35.89,0-71.78,0c-1.44,0-2.87.13-4.37.2Z"/>
<path class="cls-1" d="M137.74,169.91v-15.4c1.5-.07,2.93-.2,4.37-.2q35.89,0,71.78,0a49.5,49.5,0,0,1,6,.25c4.07.5,7.34,1.61,6.93,7-.43,5.81-1.56,7.59-7.14,8.08-3.64.32-7.3.28-11,.28C185.13,169.92,161.57,169.91,137.74,169.91Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,34 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 364 364">
<defs>
<style>.cls-1{fill:#fff;}.cls-2{fill:#0d0f23;}.cls-3{fill:#2f2f2f;}.cls-4{fill:url(#linear-gradient);}.cls-5{fill:url(#linear-gradient-2);}</style>
<linearGradient id="linear-gradient" x1="177.18" y1="64.07" x2="177.18" y2="292.45" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#1bace4"/>
<stop offset="0.7" stop-color="#fa52a0"/>
</linearGradient>
<linearGradient id="linear-gradient-2" x1="164.69" y1="109.21" x2="242.53" y2="187.05" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#8f82c4"/>
<stop offset="1" stop-color="#e65ba7"/>
</linearGradient>
</defs>
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<rect class="cls-1" width="364" height="364" />
<path class="cls-2" d="M306.26,190.34h0a58.84,58.84,0,0,0-2.07-7.38c-1-2.39-10.24-2.92-11.31-3q.81,2.07,1.5,4.2c2.1,6.46,3.42,13.7,2.81,20.39-1,10.66-9.86,16.75-23.12,17.78-1.82.14-3.65,0-5.48,0a101.74,101.74,0,0,1-16.07-1.56l-1.17-.21c-1-.18-1.72-.32-2.06-.4l-.13,0-.11,0a80.19,80.19,0,0,1-5.48,7.6l.22,0c.76,0,2.81.49,2.3,2.4-.56,2.08-3.55,1.64-5.55,1.17-6.58,7.34-16.39,15.73-27.36,16.53-19.84,1.44-30-20.5-47-39.29S122.52,218.3,112,228.86s-20.79,9.39-20.79,9.39.38.39,1.12,1.08l0,0a249,249,0,0,0,42.51,33.08c7.21,4.5,14.53,8.74,22,12.53,5.1,2.45,10.56,4.92,16.42,7.4l.18.08.13.05A135.84,135.84,0,0,0,215.92,302c15.06.83,28.52-2.82,37.92-16.29l1.1-1.57,0-.05.84-1.19c13.11-18.76,26.36-37.44,40-55.84l.74-1C307.51,211.05,307.64,198.11,306.26,190.34Zm-30.21,43.22c-1.38.18-12.9,1.8-23.57-.17,0,0-2.84,0-2.84-2.5,0,0,.22-2.36,4.14-1.36s16.31,1.41,21.63.16c0,0,2.19-.72,2.89,1S277.43,233.39,276.05,233.56Z"/>
<path class="cls-3" d="M255.81,282.93c13.11-18.76,26.36-37.44,40-55.84C280.76,247.75,260.19,276.75,255.81,282.93Z"/>
<path class="cls-1" d="M249.64,230.89s.22-2.36,4.14-1.36,16.31,1.41,21.63.16c0,0,2.19-.72,2.89,1s-.87,2.67-2.25,2.84-12.9,1.8-23.57-.17C252.48,233.39,249.64,233.34,249.64,230.89Z"/>
<path class="cls-3" d="M252.52,220.8c.78.14,1.57.25,2.36.37C254,221.05,253.22,220.92,252.52,220.8Z"/>
<path class="cls-3" d="M306.26,190.33a58.84,58.84,0,0,0-2.07-7.38.3.3,0,0,1,0,.08A44.32,44.32,0,0,1,306.26,190.33Z"/>
<path class="cls-4" d="M173.32,292.37c-5.86-2.48-11.32-4.95-16.42-7.4l2,1,2.05,1,1,.49q.76.38,1.53.72,1.16.54,2.31,1.05c2.52,1.13,5.06,2.19,7.63,3.2Zm76.49-72.08-.38-.07,1.22.24Zm53.89-38.72c-6.17-16.66-16.37-30.79-28.17-43.74a252.85,252.85,0,0,0-83.44-60.35c-16.76-7.58-34.22-12.78-49.8-13.41-19.83,0-29.84,4.43-38.43,16.31q-24.23,33.54-48.19,67.27c-4.61,6.48-6.07,13.87-5.31,21.77,1.46,15.06,8.21,28,16.64,40.05.56.81,1.13,1.61,1.71,2.41,1.35,1.89,2.73,3.74,4.15,5.57.5.65,1,1.3,1.51,1.94,1.69,2.15,3.43,4.25,5.2,6.31.63.74,1.26,1.47,1.91,2.2.35.41.71.81,1.08,1.21s.87,1,1.32,1.47c.6.65,1.19,1.3,1.79,1.94,1.07,1.14,2.14,2.26,3.23,3.37l1.71,1.73c.58.58.06.09.63.65.61,0,.93,0,.93,0s9.33,1.13,19.84-9.42,37.05-39.07,54.13-20.29,27.2,40.73,47,39.29c11-.8,20.78-9.19,27.36-16.53l-.72-.18c-1.91-.5-5-1.84-3.91-4s4-.33,4-.33c.4.17.79.3,1.16.42l.54.15.5.12c.32.07.61.12.86.16l.28,0,.35,0a80.19,80.19,0,0,0,5.48-7.6c-1.86-.39-3.72-.83-5.56-1.3-.93-.24-1.86-.49-2.78-.76s-2-.58-3-.89-2-.62-3-1-2-.67-3-1q-3-1-5.87-2.24l-2.28-.94c-1.19-.5-2.36-1-3.54-1.53a243.23,243.23,0,0,1-78.8-55.73c-12.58-13.35-23.67-27.87-29.42-45.7a43.18,43.18,0,0,1-2-8.71c-1.7-16.83,7.61-26.45,26.48-27.06,13.66-.45,26.76,2.92,39.4,7.6,36.7,13.6,67.77,35.63,94.09,64.38.66.72,1.31,1.43,1.95,2.16.52.58,1,1.17,1.55,1.76.37.43.74.85,1.1,1.28s.77.9,1.14,1.36c.56.66,1.11,1.33,1.65,2l1.41,1.79c.32.4.63.81.94,1.22s.78,1,1.16,1.56l.31.42c.48.65.95,1.3,1.4,2l.22.32c.44.63.88,1.26,1.3,1.91q1.47,2.2,2.82,4.48c.16.27.33.55.48.83s.2.33.29.5c.29.51.58,1,.86,1.54l.26.47c.35.65.69,1.3,1,2s.63,1.27.94,1.91l.33.7c.32.71.64,1.42.95,2.14s.58,1.38.86,2.08c.05.12.1.23.14.35,1.07.06,10.33.59,11.31,3C304,182.49,303.87,182,303.7,181.57ZM99,102.88a2.27,2.27,0,0,1,2.17-2.1,2.11,2.11,0,0,1,1.76,2.79,4.47,4.47,0,0,0,.07,2.28c.11.38.29,2.87-1.83,2.87C98.46,108.72,98.89,104.88,99,102.88Zm20.73,40.6c12.15,18.19,35.9,37.84,36.79,38.66s3.51,2,2,3.94-4.56-.5-4.56-.5c-6.44-4.67-24.83-23.05-36.73-38.23S101.1,117,100.53,114.44a8,8,0,0,1-.14-1,2.07,2.07,0,0,1,2.88-2.15,2.36,2.36,0,0,1,1.18,1.63C105.09,115.88,107.61,125.28,119.76,143.48Z"/>
<path class="cls-1" d="M246.09,230.16c-.63,2.35-4.37,1.48-6.27,1s-5-1.84-3.91-4,4-.33,4-.33a13,13,0,0,0,3.91.95C244.55,227.76,246.6,228.25,246.09,230.16Z"/>
<path class="cls-1" d="M276.05,233.56c-1.38.18-12.9,1.8-23.57-.17,0,0-2.84,0-2.84-2.5,0,0,.22-2.36,4.14-1.36s16.31,1.41,21.63.16c0,0,2.19-.72,2.89,1S277.43,233.39,276.05,233.56Z"/>
<path class="cls-1" d="M101.2,108.72c-2.74,0-2.31-3.84-2.17-5.84a2.27,2.27,0,0,1,2.17-2.1,2.11,2.11,0,0,1,1.76,2.79,4.47,4.47,0,0,0,.07,2.28C103.14,106.23,103.32,108.72,101.2,108.72Z"/>
<path class="cls-1" d="M158.55,186.08c-1.51,2-4.56-.5-4.56-.5-6.44-4.67-24.83-23.05-36.73-38.23S101.1,117,100.53,114.44a8,8,0,0,1-.14-1,2.07,2.07,0,0,1,2.88-2.15,2.36,2.36,0,0,1,1.18,1.63c.64,2.92,3.16,12.32,15.31,30.52s35.9,37.84,36.79,38.66S160.06,184.11,158.55,186.08Z"/>
<path class="cls-1" d="M294.38,184.17q-.69-2.13-1.5-4.2c0-.12-.09-.23-.14-.35-.28-.7-.56-1.4-.86-2.08s-.63-1.43-.95-2.14l-.33-.7c-.31-.64-.62-1.28-.94-1.91s-.67-1.31-1-2l-.26-.47c-.28-.52-.57-1-.86-1.54-.09-.17-.19-.34-.29-.5l-.48-.83q-1.35-2.28-2.82-4.48c-.42-.64-.85-1.28-1.3-1.91l-.22-.32c-.46-.66-.92-1.31-1.4-2l-.31-.42c-.38-.53-.77-1-1.16-1.56s-.62-.82-.94-1.22l-1.41-1.79c-.55-.67-1.09-1.34-1.65-2-.37-.46-.76-.91-1.14-1.36s-.73-.85-1.1-1.28c-.51-.59-1-1.18-1.55-1.76q-1-1.1-1.95-2.16c-26.32-28.75-57.39-50.78-94.09-64.38-12.64-4.68-25.74-8-39.4-7.6-18.87.61-28.18,10.23-26.48,27.06a43.18,43.18,0,0,0,2,8.71c5.75,17.83,16.84,32.35,29.42,45.7a243.23,243.23,0,0,0,78.8,55.73c1.18.52,2.35,1,3.54,1.53l2.28.94c1.95.79,3.9,1.53,5.87,2.24,1,.35,2,.7,3,1s2,.65,3,1,2,.61,3,.89,1.85.52,2.78.76c1.84.47,3.7.91,5.56,1.3l.11,0,.13,0,.14,0,.38.07.13,0,.71.14.33.06a102.69,102.69,0,0,0,17.61,1.84c1.83,0,3.66.12,5.48,0,13.26-1,22.16-7.12,23.12-17.78C297.8,197.87,296.48,190.63,294.38,184.17ZM247,182.45a11.09,11.09,0,0,1-1,.65,5.7,5.7,0,0,1-.54.3,12.23,12.23,0,0,1-1.15.55l-.62.24c-.42.16-.86.3-1.31.43l-.71.19c-.47.12-1,.22-1.48.31l-.78.13-.81.11-1.27.13q-.65.06-1.32.09l-.15,0A70.87,70.87,0,0,1,220.6,182c-23.73-8.6-43.49-22.66-57.57-43.88-2.77-4.18-4.52-9.23-5.9-14.11-.08-.3-.16-.59-.21-.89s-.07-.36-.1-.54a10.55,10.55,0,0,1-.12-1.56c0-.17,0-.33,0-.49a10,10,0,0,1,.16-1.35,3.12,3.12,0,0,1,.09-.44l.12-.42a2.58,2.58,0,0,1,.13-.42c0-.14.1-.27.16-.4s.11-.27.17-.4a2.4,2.4,0,0,1,.2-.39c.06-.13.14-.25.21-.38a3.17,3.17,0,0,1,.23-.36c.08-.12.16-.24.25-.35a3,3,0,0,1,.27-.35c.09-.11.19-.22.29-.32a1.79,1.79,0,0,1,.3-.32c.16-.16.33-.32.51-.47s.36-.29.55-.43.38-.27.59-.4l.63-.36.67-.32c.22-.1.46-.19.7-.28s.49-.17.74-.24l.52-.14.26-.06c.66-.15,1.32-.27,2-.38s1.35-.19,2-.25a35.2,35.2,0,0,1,4.11-.12l1.16.07q.66,0,1.32.12c.39,0,.78.1,1.17.16.65.1,1.31.22,1.95.34l1,.19,1.23.26c.19,0,.39.08.57.12,1.43.32,2.84.67,4.23,1.07l.16,0c.53.15,1.06.3,1.58.47.33.09.66.19,1,.3,1.75.55,3.48,1.16,5.17,1.83.5.2,1,.39,1.47.6s.88.36,1.32.55c.62.26,1.23.54,1.85.82l1.75.83,1.32.66c.51.25,1,.51,1.52.78,1,.51,1.92,1,2.87,1.58,1.53.87,3,1.78,4.52,2.73,1,.61,1.91,1.24,2.86,1.89h0c.94.64,1.88,1.3,2.81,2s1.62,1.2,2.43,1.81q3.61,2.76,7.08,5.77l1.18,1,1.17,1.07,1.53,1.45c1,1,2.09,2.06,3.1,3.12l1,1c.91,1,1.8,1.94,2.67,2.92.53.59,1.06,1.18,1.58,1.78l1.56,1.8c.52.6,1,1.21,1.54,1.81l2,2.43.29.36c.17.19.31.38.45.57s.38.49.55.74.47.66.69,1,.52.79.75,1.2c.14.22.28.45.4.68s.21.35.31.53.31.56.46.85c.38.72.75,1.44,1.09,2.18.57,1.17,1.08,2.36,1.57,3.55C251.92,173.82,251.21,179.29,247,182.45Z"/>
<path class="cls-5" d="M247,182.45a11.09,11.09,0,0,1-1,.65,5.7,5.7,0,0,1-.54.3,12.23,12.23,0,0,1-1.15.55l-.62.24c-.42.16-.86.3-1.31.43l-.71.19c-.47.11-1,.22-1.48.31l-.78.13-.81.11-1.27.13-1.32.08h-.15A70.87,70.87,0,0,1,220.6,182c-23.73-8.6-43.49-22.66-57.57-43.88-2.77-4.18-4.52-9.23-5.9-14.11-.08-.3-.16-.59-.21-.89s-.07-.36-.1-.54a10.55,10.55,0,0,1-.12-1.56c0-.17,0-.33,0-.49a10,10,0,0,1,.16-1.35,3.12,3.12,0,0,1,.09-.44l.12-.42a2.58,2.58,0,0,1,.13-.42c0-.14.1-.27.16-.4s.11-.27.17-.4a2.4,2.4,0,0,1,.2-.39c.06-.13.14-.25.21-.38a3.17,3.17,0,0,1,.23-.36c.08-.12.16-.24.25-.35a3,3,0,0,1,.27-.35c.09-.11.19-.22.29-.32a1.79,1.79,0,0,1,.3-.32c.16-.16.33-.32.51-.47s.36-.29.55-.43.38-.27.59-.4l.63-.36.67-.32c.22-.1.46-.19.7-.28s.49-.17.74-.24l.52-.14.26-.06c.66-.15,1.32-.27,2-.38s1.35-.19,2-.25a35.2,35.2,0,0,1,4.11-.12l1.16.07q.66,0,1.32.12c.39,0,.78.1,1.17.16.65.1,1.31.22,1.95.34l1,.19,1.23.26c.19,0,.39.08.57.12,1.43.32,2.84.67,4.23,1.07l.16,0c.53.15,1.06.3,1.58.47.33.09.66.19,1,.3,1.75.55,3.48,1.16,5.17,1.83.5.2,1,.39,1.47.6s.88.36,1.32.55c.62.26,1.23.54,1.85.82l1.75.83,1.32.66c.51.25,1,.51,1.52.78,1,.51,1.92,1,2.87,1.58,1.53.87,3,1.78,4.52,2.73,1,.61,1.91,1.24,2.86,1.89h0c.94.64,1.88,1.3,2.81,2s1.62,1.2,2.43,1.81q3.61,2.76,7.08,5.77l1.18,1,1.17,1.07,1.53,1.45c1,1,2.09,2.06,3.1,3.12l1,1c.91,1,1.8,1.94,2.67,2.92.53.59,1.06,1.18,1.58,1.78l1.56,1.8c.52.6,1,1.21,1.54,1.81l2,2.43.29.36c.17.19.31.38.45.57s.37.49.55.74.47.66.69,1,.52.79.75,1.2c.14.22.28.45.4.68s.21.35.31.53.31.56.46.85c.38.72.75,1.44,1.09,2.18.57,1.17,1.08,2.36,1.57,3.55C251.92,173.82,251.21,179.29,247,182.45Z"/>
<path d="M156.87,119.18a10,10,0,0,0-.16,1.35A6.73,6.73,0,0,1,156.87,119.18Z"/>
<path d="M166.45,111.55c-.67.11-1.33.23-2,.38l-.26.06.26-.07C165.12,111.78,165.78,111.65,166.45,111.55Z"/>
<path d="M226.1,137.19l-1.18-1q-3.46-3-7.08-5.77c2.41,1.83,4.77,3.76,7.08,5.76C225.32,136.49,225.71,136.84,226.1,137.19Z"/>
<path d="M235.87,185.56A55.12,55.12,0,0,1,220.6,182,70.87,70.87,0,0,0,235.87,185.56Z"/><path d="M242.53,154.94l-.29-.36-2-2.43q1,1.22,2,2.43A4.39,4.39,0,0,1,242.53,154.94Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 363 363.93">
<defs>
<style>.cls-1{fill:#fff;}.cls-2,.cls-3{fill:#ff007a;}.cls-3{fill-rule:evenodd;}</style>
</defs>
<g id="Layer_2" data-name="Layer 2">
<g id="US">
<rect class="cls-1" width="363" height="363.93" />
<path class="cls-2" d="M133.66,88.51c-2.58-.4-2.69-.45-1.48-.64,2.34-.36,7.84.13,11.64,1,8.85,2.11,16.91,7.51,25.51,17.12l2.29,2.55,3.27-.53c13.77-2.22,27.78-.46,39.5,5,3.23,1.5,8.31,4.47,9,5.23a14.12,14.12,0,0,1,.82,3.49c.87,5.78.44,10.21-1.33,13.53-1,1.8-1,2.37-.37,3.91a3.79,3.79,0,0,0,3.38,2.14c2.91,0,6-4.72,7.5-11.29l.58-2.61,1.14,1.3c6.27,7.12,11.19,16.83,12,23.75l.22,1.8-1-1.64a20.33,20.33,0,0,0-6-6.29c-4.21-2.79-8.66-3.74-20.44-4.36-10.64-.56-16.66-1.47-22.63-3.42-10.15-3.33-15.27-7.75-27.34-23.62-5.36-7-8.67-11-12-14.09C150.44,93.72,143.08,90,133.66,88.51Z"/>
<path class="cls-2" d="M225.74,104.25c.26-4.73.9-7.84,2.19-10.69a11.42,11.42,0,0,1,1.06-2,7.31,7.31,0,0,1-.49,1.85c-.94,2.76-1.09,6.54-.45,10.93.82,5.58,1.28,6.38,7.16,12.41,2.76,2.82,6,6.39,7.13,7.92l2.11,2.78-2.11-2a90.34,90.34,0,0,0-9.85-7.85c-.88-.45-1-.45-1.55.09s-.61,1.25-.68,4.8c-.1,5.53-.86,9.08-2.67,12.63-1,1.92-1.14,1.51-.25-.66.66-1.61.73-2.33.73-7.68,0-10.75-1.29-13.34-8.76-17.77-1.89-1.12-5-2.74-6.92-3.59a28.13,28.13,0,0,1-3.39-1.66c.21-.21,7.5,1.92,10.43,3,4.36,1.68,5.08,1.9,5.61,1.7C225.39,108.33,225.56,107.29,225.74,104.25Z"/>
<path class="cls-2" d="M138.68,122.64c-5.24-7.24-8.49-18.35-7.79-26.65l.22-2.57,1.19.22a29.77,29.77,0,0,1,7.93,3c5,3,7.12,7,9.31,17.24.64,3,1.48,6.39,1.87,7.54a51.22,51.22,0,0,0,4.89,9c1.38,2,.46,3-2.58,2.7C149.06,132.62,142.75,128.26,138.68,122.64Z"/>
<path class="cls-2" d="M219.37,176.56c-24.53-9.9-33.17-18.49-33.17-33a22.78,22.78,0,0,1,.17-3.88,18.57,18.57,0,0,1,2.1,1.56c5,4,10.55,5.71,26,8,9.07,1.33,14.18,2.4,18.89,4,15,5,24.23,15.08,26.44,28.84a47.74,47.74,0,0,1-.78,15.44c-.82,3.12-3.32,8.75-4,9-.18.06-.36-.64-.41-1.61a20,20,0,0,0-7.23-14C242.39,186.56,235.7,183.15,219.37,176.56Z"/>
<path class="cls-2" d="M202.15,180.67a45.44,45.44,0,0,0-1.18-5.2l-.63-1.87,1.16,1.31a21,21,0,0,1,4,7.21c.82,2.36.92,3.06.91,6.88s-.11,4.55-.87,6.67a21,21,0,0,1-5.18,8.25c-4.48,4.57-10.24,7.11-18.55,8.16-1.44.18-5.66.49-9.36.68-9.33.48-15.47,1.49-21,3.43a4.46,4.46,0,0,1-1.57.38c-.23-.22,3.53-2.47,6.64-4,4.37-2.11,8.73-3.26,18.49-4.89,4.82-.81,9.8-1.78,11.06-2.17C198,201.87,204.11,192.4,202.15,180.67Z"/>
<path class="cls-2" d="M213.39,200.69c-3.25-7-4-13.8-2.22-20.13.19-.67.5-1.22.69-1.22a6.48,6.48,0,0,1,1.7.92c1.51,1,4.52,2.72,12.54,7.11,10,5.47,15.72,9.71,19.61,14.55a31.65,31.65,0,0,1,6.51,15,50.93,50.93,0,0,1-.61,14.72c-2.7,10.6-9,18.91-17.88,23.77a25.08,25.08,0,0,1-2.6,1.3,9.37,9.37,0,0,1,1.05-2.7,24.32,24.32,0,0,0,1.08-19.23c-1.39-4.17-4.23-9.26-9.95-17.86C216.66,206.88,215,204.22,213.39,200.69Z"/>
<path class="cls-2" d="M121.27,238.59c9.1-7.71,20.42-13.18,30.74-14.86a47.87,47.87,0,0,1,16,.62c6.6,1.69,12.5,5.49,15.57,10s4.29,8.27,5.63,16.83c.53,3.38,1.1,6.77,1.28,7.54,1,4.43,3,8,5.39,9.76,3.85,2.83,10.49,3,17,.45a8.38,8.38,0,0,1,2.14-.66c.24.23-3,2.44-5.37,3.6a18.13,18.13,0,0,1-8.9,2.17c-6,0-11-3.05-15.09-9.27a71.72,71.72,0,0,1-4.07-8.15c-4.38-10-6.54-13.05-11.62-16.38-4.42-2.9-10.12-3.42-14.41-1.31a9.37,9.37,0,0,0-3.17,14.55,12.49,12.49,0,0,0,7,3.69,7.51,7.51,0,0,0,8.51-7.54c0-3-1.16-4.73-4.06-6-4-1.79-8.22.3-8.2,4a3.34,3.34,0,0,0,2.29,3.31c1,.46,1,.5.21.33-3.63-.76-4.48-5.15-1.56-8.07,3.51-3.5,10.77-2,13.26,2.82a12.36,12.36,0,0,1,.26,8.42c-2,5.41-8,8.25-14,6.7-4.11-1.05-5.79-2.19-10.75-7.31-8.62-8.9-12-10.63-24.39-12.57l-2.38-.38Z"/>
<path class="cls-3" d="M56.26,39.17c28.79,35,73.17,89.56,75.38,92.62,1.82,2.52,1.13,4.79-2,6.56a18.77,18.77,0,0,1-7.08,2,9,9,0,0,1-5.94-2.55c-1.17-1.11-5.9-8.18-16.8-25.14-8.34-13-15.32-23.74-15.51-23.92-.44-.42-.43-.4,14.66,26.67,9.48,17,12.68,23,12.68,23.82,0,1.64-.44,2.5-2.46,4.75-3.35,3.75-4.85,8-5.93,16.69-1.22,9.78-4.63,16.68-14.08,28.51-5.54,6.92-6.44,8.19-7.84,11a20.31,20.31,0,0,0-2.44,9.91,30.85,30.85,0,0,0,1.63,12.2c1.25,3.93,2.55,6.52,5.89,11.71,2.88,4.47,4.54,7.79,4.54,9.1,0,1,.2,1,4.66,0,10.69-2.42,19.36-6.67,24.24-11.89,3-3.22,3.73-5,3.76-9.43,0-2.89-.09-3.5-.87-5.16-1.27-2.71-3.58-5-8.68-8.45-6.67-4.58-9.52-8.26-10.31-13.32-.64-4.16.11-7.09,3.8-14.85,3.82-8,4.77-11.45,5.41-19.55.41-5.23,1-7.29,2.48-8.94s3-2.31,6.84-2.84c6.31-.87,10.32-2.5,13.62-5.55a11.86,11.86,0,0,0,4.25-9l.14-2.9-1.6-1.87C132.92,122.52,52.38,33.84,52,33.84,52,33.84,53.86,36.24,56.26,39.17Zm38,176.2a5.16,5.16,0,0,0-1.58-6.78c-2.07-1.38-5.29-.73-5.29,1.07,0,.55.3,1,1,1.3,1.14.59,1.23,1.26.32,2.62s-.84,2.59.21,3.42C90.57,218.33,93,217.6,94.23,215.37Z"/>
<path class="cls-3" d="M144.29,150.18a11.14,11.14,0,0,0-6.73,7.36c-.54,2-.23,5.54.58,6.63,1.31,1.76,2.59,2.22,6,2.2,6.74-.05,12.6-3,13.29-6.57.55-3-2-7.09-5.57-8.9A13.16,13.16,0,0,0,144.29,150.18Zm7.88,6.18c1-1.48.59-3.08-1.18-4.16-3.37-2.07-8.46-.36-8.46,2.83,0,1.59,2.65,3.32,5.09,3.32A6.55,6.55,0,0,0,152.17,156.36Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -0,0 +1,20 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="28" height="28" fill="#F9F9F9"/>
<path d="M21.94 7.92004C20.4077 6.42277 18.3116 5.5 16 5.5C11.3056 5.5 7.5 9.30559 7.5 14C7.5 18.6944 11.3056 22.5 16 22.5C18.3116 22.5 20.4077 21.5772 21.94 20.08C20.1123 22.4633 17.2356 24 14 24C8.47715 24 4 19.5229 4 14C4 8.47715 8.47715 4 14 4C17.2356 4 20.1123 5.53668 21.94 7.92004Z" fill="url(#paint0_linear_6993_17582)"/>
<path d="M9.64795 18.864C10.8738 20.0618 12.5507 20.8 14.4 20.8C18.1555 20.8 21.2 17.7555 21.2 14C21.2 10.2445 18.1555 7.2 14.4 7.2C12.5507 7.2 10.8738 7.9382 9.64795 9.13601C11.1102 7.22934 13.4115 6 16 6C20.4183 6 24 9.58172 24 14C24 18.4183 20.4183 22 16 22C13.4115 22 11.1102 20.7707 9.64795 18.864Z" fill="url(#paint1_linear_6993_17582)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20 14C20 17.3137 17.3137 20 14 20C10.6863 20 8 17.3137 8 14C8 10.6863 10.6863 8 14 8C17.3137 8 20 10.6863 20 14ZM18 14C18 16.2091 16.2091 18 14 18C11.7909 18 10 16.2091 10 14C10 11.7909 11.7909 10 14 10C16.2091 10 18 11.7909 18 14Z" fill="url(#paint2_linear_6993_17582)"/>
<defs>
<linearGradient id="paint0_linear_6993_17582" x1="4" y1="13.6552" x2="24" y2="13.6552" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#562EC8"/>
</linearGradient>
<linearGradient id="paint1_linear_6993_17582" x1="3.99998" y1="13.6552" x2="24" y2="13.6552" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#562EC8"/>
</linearGradient>
<linearGradient id="paint2_linear_6993_17582" x1="4" y1="13.6552" x2="24" y2="13.6552" gradientUnits="userSpaceOnUse">
<stop stop-color="#00E0FF"/>
<stop offset="1" stop-color="#562EC8"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M25.9972 16.101C25.9972 21.5098 21.5205 25.9872 16.101 25.9872C10.6919 25.9872 6.21484 21.5101 6.21484 16.101C6.21484 10.6913 10.6825 6.21484 16.091 6.21484C21.5111 6.21484 25.9972 10.6928 25.9972 16.101Z" fill="#F95E14" stroke="white"/>
<path d="M11.4277 16.0118C11.4277 16.716 11.9415 17.1431 12.6608 17.1431H19.349C20.0682 17.1431 20.5706 16.716 20.5706 16.0118C20.5706 15.3076 20.0911 14.8574 19.349 14.8574H12.6608C11.9187 14.8574 11.4277 15.3076 11.4277 16.0118Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 597 B

View File

@@ -0,0 +1,3 @@
<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.371094 2.19531L0.371093 9.79785C0.371093 11.1602 1.07422 11.8633 2.41769 11.8633L10.0579 11.8633C11.4014 11.8633 12.1045 11.1602 12.1045 9.79785L12.1045 2.19531C12.1045 0.839286 11.4076 0.129883 10.0579 0.129883L2.41769 0.129882C1.07422 0.129882 0.371094 0.839285 0.371094 2.19531ZM4.53334 8.05259C4.53334 7.71987 4.75935 7.50642 5.12346 7.50642L6.15304 7.50642L7.08845 7.59431L6.13421 6.72796L3.87416 4.46791C3.7486 4.34235 3.68583 4.19168 3.68583 4.00963C3.68583 3.6769 3.91811 3.43206 4.26967 3.43206C4.42662 3.43206 4.58357 3.50112 4.69657 3.6204L6.96917 5.893L7.8418 6.85352L7.74135 5.96833L7.74135 4.87598C7.74135 4.51814 7.9548 4.27958 8.28753 4.27958C8.62026 4.27958 8.8337 4.51186 8.8337 4.8697L8.8337 7.92076C8.8337 8.3351 8.62026 8.59249 8.16197 8.59249L5.13602 8.59249C4.77818 8.59249 4.53334 8.37905 4.53334 8.05259Z" fill="#F95E14"/>
</svg>

After

Width:  |  Height:  |  Size: 963 B

3
public/nft/svgs/plus.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" color="inherit" xmlns="http://www.w3.org/2000/svg">
<path d="M7 2V12M2 7H12" stroke="currentColor" stroke-opacity="0.5" stroke-width="2.5" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 231 B

View File

@@ -0,0 +1,3 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.1829 9.95313H7.67718V15.4474C7.67718 16.1679 8.26794 16.7709 9.0007 16.7709C9.73345 16.7709 10.3242 16.1679 10.3242 15.4474V9.95313H15.8185C16.539 9.95313 17.142 9.36236 17.142 8.6296C17.142 7.89685 16.539 7.30608 15.8185 7.30608H10.3242V1.8118C10.3242 1.09131 9.73345 0.488281 9.0007 0.488281C8.26794 0.488281 7.67718 1.09131 7.67718 1.8118V7.30608H2.1829C1.46241 7.30608 0.859375 7.89685 0.859375 8.6296C0.859375 9.36236 1.46241 9.95313 2.1829 9.95313Z" fill="white" stroke="white" stroke-width="0.5"/>
</svg>

After

Width:  |  Height:  |  Size: 620 B

View File

@@ -0,0 +1,4 @@
<svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.1653 10.6536L51.6412 29.1107C54.4662 31.9357 54.485 34.9114 51.6411 37.7742L38.211 51.2043C35.3671 54.0858 32.3726 54.0482 29.5475 51.2231L11.0905 32.7284C9.60263 31.2594 9.45197 30.393 9.45197 28.2648V21.108C9.45197 19.0363 9.94164 18.3206 11.4672 16.7763L17.1943 11.0491C18.7198 9.52361 19.4355 9.03394 21.5261 9.03394H28.664C30.8111 9.03394 31.6774 9.1846 33.1653 10.6536ZM20.5 24C22.433 24 24 22.433 24 20.5C24 18.567 22.433 17 20.5 17C18.567 17 17 18.567 17 20.5C17 22.433 18.567 24 20.5 24Z" fill="#4673FA"/>
<path d="M39.5483 35.5323C39.4754 35.6084 39.3784 35.6569 39.2737 35.6696C38.2369 35.7822 37.3633 35.9138 36.6532 36.0643C35.943 36.2149 35.3624 36.4234 34.9112 36.6898C34.4643 36.9528 34.0918 37.3254 33.8288 37.7724C33.5584 38.2269 33.3442 38.8132 33.1864 39.5313C33.0285 40.2494 32.8857 41.1382 32.7581 42.1977C32.7415 42.3019 32.6923 42.3981 32.6174 42.4723C32.5384 42.5423 32.4352 42.5785 32.3298 42.5732C32.2802 42.5756 32.2307 42.5679 32.1842 42.5506C32.1377 42.5332 32.0952 42.5066 32.0594 42.4723C31.9879 42.3976 31.9441 42.3007 31.9351 42.1977C31.7979 41.1377 31.6476 40.2507 31.4842 39.5368C31.3209 38.8228 31.1028 38.2401 30.8301 37.7889C30.5671 37.3438 30.1962 36.9722 29.7518 36.7083C29.3043 36.441 28.7275 36.2305 28.0215 36.0767C27.3155 35.9229 26.4436 35.7856 25.4058 35.6648C25.2953 35.6536 25.192 35.6052 25.1127 35.5275C25.0758 35.4905 25.0468 35.4465 25.0274 35.398C25.0081 35.3495 24.9988 35.2975 25.0001 35.2453C24.9988 35.1931 25.0081 35.1412 25.0274 35.0927C25.0468 35.0442 25.0758 35.0001 25.1127 34.9632C25.192 34.8855 25.2953 34.8371 25.4058 34.8259C26.2838 34.7445 27.157 34.6166 28.0215 34.4428C28.7275 34.2922 29.308 34.0862 29.7628 33.8249C30.2138 33.5654 30.5889 33.1921 30.8507 32.7423C31.1211 32.2846 31.3373 31.6962 31.4993 30.9772C31.6613 30.2582 31.8059 29.3657 31.9331 28.2998C31.9452 28.2005 31.9887 28.1076 32.0573 28.0348C32.0923 27.9989 32.1344 27.9707 32.181 27.9523C32.2277 27.9338 32.2777 27.9254 32.3277 27.9277C32.3804 27.9252 32.4331 27.9333 32.4825 27.9518C32.532 27.9702 32.5771 27.9984 32.6153 28.0348C32.6873 28.1073 32.7363 28.1995 32.756 28.2998C32.8837 29.3671 33.0264 30.2596 33.1843 30.9772C33.3422 31.6949 33.5563 32.2832 33.8268 32.7423C34.0878 33.1908 34.4608 33.5638 34.9092 33.8249C35.3603 34.0876 35.941 34.2936 36.6511 34.4428C37.5173 34.6164 38.392 34.7442 39.2717 34.8259C39.3763 34.8385 39.4733 34.887 39.5462 34.9632C39.6176 35.0395 39.6561 35.1408 39.6533 35.2453C39.6556 35.2977 39.6475 35.35 39.6295 35.3993C39.6114 35.4485 39.5838 35.4937 39.5483 35.5323ZM42.7742 27.7121C42.3569 27.7663 41.9428 27.8433 41.5339 27.9428C41.2333 28.022 41.0059 28.1364 40.8517 28.2861C40.6979 28.4371 40.5847 28.6602 40.5133 28.9575C40.4251 29.3537 40.3593 29.7546 40.3163 30.1582C40.3085 30.301 40.2371 30.3724 40.1022 30.3724C39.9745 30.3724 39.8992 30.3037 39.8763 30.1664C39.8282 29.7666 39.7595 29.3695 39.6704 28.9767C39.5986 28.6879 39.4876 28.4701 39.3376 28.3231C39.1875 28.1762 38.9621 28.0618 38.6615 27.9799C38.3609 27.8975 37.9475 27.8073 37.4212 27.7094C37.2785 27.6792 37.2071 27.6002 37.2071 27.4725C37.2071 27.3352 37.2785 27.2599 37.4212 27.2467C37.8373 27.187 38.2498 27.1043 38.6567 26.9988C38.9537 26.9165 39.1754 26.7961 39.3218 26.6377C39.4682 26.4794 39.5773 26.254 39.6492 25.9615C39.7206 25.6686 39.7974 25.2702 39.8798 24.7663C39.8816 24.7387 39.8889 24.7118 39.9013 24.6871C39.9138 24.6624 39.931 24.6405 39.9521 24.6226C39.9732 24.6047 39.9976 24.5913 40.024 24.5831C40.0504 24.5748 40.0781 24.572 40.1056 24.5747C40.2333 24.5747 40.3047 24.6434 40.3198 24.7807C40.4021 25.2841 40.481 25.6771 40.5565 25.9594C40.6113 26.2028 40.7278 26.4279 40.8949 26.613C41.0455 26.7677 41.269 26.8863 41.5655 26.9686C41.862 27.051 42.2697 27.1448 42.7886 27.2501C42.9314 27.2652 43.0027 27.3405 43.0027 27.476C43.0027 27.603 42.9272 27.6819 42.7776 27.7149L42.7742 27.7121Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,4 @@
<svg width="15" height="16" viewBox="0 0 15 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.5686 4.46908C4.74662 4.26563 5.0038 4.14893 5.27414 4.14893L10.1451 4.14893C10.4154 4.14893 10.6726 4.26563 10.8506 4.46908L13.0437 6.97546C13.3654 7.34308 13.3509 7.89609 13.0104 8.24632L8.38181 13.0071C8.01367 13.3858 7.40558 13.3858 7.03744 13.0071L2.40887 8.24632C2.06836 7.89609 2.05385 7.34308 2.37552 6.97546L4.5686 4.46908Z" fill="#4673FA"/>
<path d="M7.50864 10.6846C7.31466 10.6846 7.15641 10.6016 7.01348 10.4097L5.76283 8.86422C5.67094 8.75013 5.625 8.62566 5.625 8.49601C5.625 8.23151 5.82919 8.01369 6.09463 8.01369C6.25288 8.01369 6.37539 8.07593 6.50301 8.24188L7.48822 9.51249L9.60157 6.07925C9.70877 5.90292 9.85681 5.80957 10.0151 5.80957C10.2703 5.80957 10.5 5.99109 10.5 6.26077C10.5 6.38005 10.4438 6.5097 10.3673 6.62898L7.97827 10.4097C7.86597 10.5912 7.69751 10.6846 7.50864 10.6846Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 940 B

View File

@@ -0,0 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26.967 7.78458C27.2959 8.11906 27.4495 8.46808 27.4279 8.83162C27.4063 9.19516 27.201 9.54618 26.812 9.88465L18.4399 17.2592L16.2344 15.0429L23.6132 6.67857C23.954 6.29337 24.305 6.08767 24.6661 6.06146C25.0273 6.03524 25.374 6.18909 25.7063 6.523L26.967 7.78458Z" fill="white"/>
<path d="M17.7447 18.4454C18.006 18.7086 18.1369 18.9893 18.1374 19.2873C18.138 19.5853 18.0111 19.8617 17.7567 20.1164L17.4159 20.4514C17.1581 20.7107 16.8843 20.8381 16.5947 20.8335C16.3051 20.8289 16.0276 20.6956 15.7624 20.4335L12.8661 17.5214C12.6003 17.2548 12.4666 16.9753 12.4649 16.6829C12.4632 16.3906 12.5909 16.1151 12.8482 15.8564L13.1762 15.5214C13.43 15.2667 13.7046 15.1384 13.9999 15.1367C14.2952 15.135 14.5758 15.2672 14.8416 15.5333L17.7447 18.4454Z" fill="white"/>
<path d="M8.62826 20.1654C8.65085 20.1626 8.6714 20.1509 8.68537 20.1329C8.69935 20.1148 8.70562 20.092 8.7028 20.0693C8.69997 20.0466 8.68829 20.026 8.67032 20.012C8.65234 19.998 8.62956 19.9917 8.60696 19.9945C8.41018 19.9945 7.01738 19.9945 5.89036 19.8595C4.91853 19.7421 3.95842 19.5419 3.02042 19.2612C2.97243 19.2422 2.93221 19.2076 2.90627 19.1629C2.58256 18.3329 2.48033 17.7397 2.30996 16.9765C2.26566 16.8243 2.2614 16.6867 2.37896 16.5653C2.49652 16.444 2.64815 16.4482 2.80064 16.4961C4.58189 17.0508 6.20129 17.4201 8.05836 17.6192C9.70672 17.7961 11.3474 17.7842 12.9677 17.3808C13.0443 17.3507 13.124 17.3295 13.2053 17.3175L16.0557 19.8766C16.0557 20.0142 16.0557 20.0125 16.0557 20.1484C16.0455 21.288 15.9787 22.4276 15.8555 23.5673C15.7724 24.3723 15.6404 25.1716 15.4602 25.9605C15.3078 26.6144 15.1195 27.346 14.7941 27.9401C14.6084 28.2768 14.3238 28.3973 13.9499 28.3213C13.3323 28.2418 12.6056 28.1452 12.1916 27.9392C12.8314 27.046 13.3561 25.7126 13.6781 24.6015C13.7849 24.2073 13.8719 23.8079 13.9388 23.4049C13.9455 23.383 13.9432 23.3594 13.9325 23.3392C13.9218 23.319 13.9035 23.3039 13.8817 23.2972C13.8599 23.2905 13.8364 23.2928 13.8162 23.3035C13.7961 23.3142 13.7811 23.3326 13.7744 23.3544C13.5393 23.8912 13.1781 24.6673 12.7973 25.34C12.3986 26.0391 10.9334 27.5512 10.6676 27.4067C9.34468 26.858 8.30285 26.2477 7.2772 25.3631C7.26272 25.3511 8.64956 24.5938 9.71524 23.91C10.0032 23.7245 11.4914 22.4724 11.7597 22.0903C11.7677 22.0823 11.774 22.0728 11.7782 22.0623C11.7825 22.0518 11.7847 22.0406 11.7846 22.0293C11.7846 22.018 11.7823 22.0068 11.778 21.9964C11.7736 21.9859 11.7673 21.9765 11.7593 21.9685C11.7513 21.9605 11.7418 21.9542 11.7314 21.9499C11.721 21.9456 11.7098 21.9435 11.6985 21.9435C11.6872 21.9435 11.6761 21.9458 11.6657 21.9502C11.6553 21.9545 11.6459 21.9609 11.6379 21.9689L11.5527 22.0313C10.9147 22.4843 9.46309 23.1835 8.1674 23.6066C7.53983 23.8026 6.89568 23.9405 6.24303 24.0186C5.8878 24.0391 5.87758 24.0288 5.60754 23.7536C4.70182 22.8202 3.97731 21.7257 3.47106 20.5261C3.45317 20.4996 5.00442 20.6048 6.387 20.5261C7.14314 20.4717 7.89308 20.351 8.62826 20.1654Z" fill="white"/>
<path d="M10.3219 5.94445C10.2502 5.6248 10.1886 5.37125 10.1405 5.18652C10.1013 5.02768 10.0252 4.88031 9.91824 4.75638C9.80011 4.64129 9.65419 4.55863 9.49463 4.51641C9.30595 4.45755 9.04108 4.39417 8.70637 4.32625C8.61566 4.30542 8.56667 4.25743 8.56667 4.18137C8.56548 4.16328 8.56827 4.14514 8.57486 4.12824C8.58144 4.11134 8.59165 4.09609 8.60477 4.08356C8.6336 4.05859 8.66874 4.04199 8.70637 4.03558C8.97256 3.9862 9.23574 3.9218 9.49463 3.8427C9.65397 3.79851 9.79964 3.71505 9.91824 3.60001C10.0252 3.47608 10.1013 3.32871 10.1405 3.16987C10.1931 2.98393 10.2536 2.73311 10.3219 2.41737C10.3391 2.32682 10.3854 2.28516 10.4616 2.28516C10.5378 2.28516 10.5859 2.32954 10.6076 2.41737C10.6748 2.73311 10.7352 2.98393 10.789 3.16987C10.8294 3.3288 10.9065 3.4761 11.014 3.60001C11.133 3.71506 11.2789 3.7985 11.4385 3.8427C11.6973 3.92214 11.9605 3.98654 12.2268 4.03558C12.2636 4.03768 12.2981 4.05415 12.3229 4.08142C12.3477 4.10869 12.3607 4.14458 12.3592 4.18137C12.3592 4.25743 12.3148 4.30542 12.2268 4.32625C11.961 4.37636 11.6979 4.43983 11.4385 4.51641C11.2787 4.55864 11.1325 4.64129 11.014 4.75638C10.9065 4.88029 10.8294 5.02759 10.789 5.18652C10.7337 5.36762 10.6729 5.6248 10.6076 5.94445C10.5859 6.03501 10.5378 6.07757 10.4616 6.07757C10.3854 6.07757 10.3373 6.0332 10.3219 5.94445Z" fill="white"/>
<path d="M15.2461 8.99394C15.1709 8.60453 15.1005 8.29414 15.0367 8.06373C14.9893 7.86568 14.8946 7.68207 14.7607 7.52865C14.6127 7.38592 14.4309 7.28307 14.2323 7.22971C13.9127 7.13653 13.5878 7.06213 13.2594 7.00691C13.1443 6.98977 13.0862 6.92979 13.0862 6.82791C13.0849 6.80474 13.0884 6.78156 13.0964 6.75978C13.1045 6.73801 13.1168 6.7181 13.1328 6.70129C13.1678 6.66887 13.2121 6.64823 13.2594 6.64226C13.5875 6.58682 13.9123 6.51339 14.2323 6.42232C14.4318 6.37127 14.6142 6.2681 14.7607 6.12337C14.8942 5.96858 14.9888 5.78416 15.0367 5.58543C15.1005 5.35502 15.1709 5.04463 15.2461 4.65427C15.2465 4.63147 15.2515 4.60898 15.2607 4.58815C15.27 4.56733 15.2834 4.54861 15.3002 4.53312C15.3169 4.51763 15.3366 4.50571 15.3581 4.49806C15.3796 4.49041 15.4024 4.48719 15.4251 4.48861C15.5203 4.48861 15.5822 4.54383 15.605 4.65427C15.6805 5.04463 15.7504 5.35502 15.8145 5.58543C15.8615 5.78371 15.9548 5.96804 16.0867 6.12337C16.2326 6.26885 16.4152 6.37214 16.615 6.42232C16.9364 6.51321 17.2624 6.58664 17.5917 6.64226C17.6159 6.64242 17.6397 6.64759 17.6618 6.65746C17.6838 6.66733 17.7035 6.68167 17.7197 6.69958C17.7359 6.71748 17.7483 6.73855 17.7559 6.76147C17.7635 6.78438 17.7663 6.80863 17.764 6.83268C17.764 6.93455 17.7069 6.99453 17.5917 7.01167C17.2622 7.06708 16.936 7.14146 16.615 7.23446C16.4161 7.28692 16.2341 7.3899 16.0867 7.53342C15.9544 7.68741 15.8611 7.87092 15.8145 8.0685C15.751 8.29891 15.6812 8.60898 15.605 8.9987C15.5822 9.1101 15.5232 9.16532 15.4251 9.16532C15.4019 9.16663 15.3787 9.16314 15.3569 9.15509C15.3351 9.14704 15.3152 9.1346 15.2984 9.11853C15.2816 9.10245 15.2683 9.08309 15.2593 9.06166C15.2503 9.04023 15.2458 9.01718 15.2461 8.99394Z" fill="white"/>
<path d="M8.7807 15.7704C8.74441 15.7714 8.70831 15.7651 8.67449 15.7519C8.64068 15.7387 8.60984 15.7188 8.58378 15.6936C8.5297 15.6411 8.49302 15.5732 8.4787 15.4992C8.37979 14.9102 8.28207 14.4179 8.18552 14.0221C8.1113 13.6824 7.98879 13.3551 7.82171 13.0502C7.68254 12.8056 7.48313 12.6006 7.24244 12.4548C6.94981 12.2894 6.63262 12.1718 6.30288 12.1067C5.91611 12.0201 5.43338 11.938 4.85469 11.8602C4.77608 11.8515 4.70299 11.8156 4.64806 11.7586C4.59716 11.7044 4.5693 11.6325 4.57035 11.5581C4.56912 11.4836 4.597 11.4117 4.64806 11.3575C4.70276 11.3003 4.77597 11.2643 4.85469 11.2559C5.43397 11.1817 5.91758 11.1004 6.30553 11.0121C6.63932 10.9437 6.96065 10.8245 7.25833 10.6587C7.50305 10.5146 7.70746 10.311 7.85262 10.0668C8.02255 9.76573 8.14526 9.44035 8.21643 9.10203C8.30886 8.70682 8.39716 8.21326 8.48134 7.62134C8.49212 7.54612 8.52789 7.47672 8.58289 7.42432C8.60926 7.39823 8.64058 7.37767 8.675 7.36387C8.70943 7.35006 8.74626 7.34328 8.78334 7.34393C8.8206 7.34261 8.85775 7.34873 8.89262 7.36192C8.92749 7.37512 8.95938 7.39513 8.98644 7.42079C9.04039 7.47339 9.07704 7.54119 9.09153 7.61516C9.19396 8.20708 9.29345 8.70064 9.38999 9.09585C9.46517 9.43524 9.58763 9.76237 9.75381 10.0677C9.89378 10.3115 10.093 10.516 10.3331 10.6622C10.625 10.8284 10.9411 10.9476 11.27 11.0156C11.655 11.104 12.1368 11.1852 12.7155 11.2595C12.7942 11.2678 12.8675 11.3038 12.9222 11.3611C12.973 11.4153 13.0006 11.4873 12.999 11.5616C13 11.6366 12.9726 11.7093 12.9222 11.7648C12.8686 11.8232 12.7946 11.8586 12.7155 11.8637C12.2276 11.8971 11.742 11.9588 11.2612 12.0484C10.9248 12.1073 10.6008 12.2229 10.3031 12.3903C10.0542 12.541 9.84898 12.7542 9.70789 13.0087C9.5398 13.3212 9.41841 13.6567 9.34761 14.0044C9.25459 14.4096 9.16923 14.9082 9.09153 15.5001C9.08237 15.5763 9.04747 15.647 8.99263 15.7006C8.96369 15.7258 8.93005 15.7449 8.89367 15.7568C8.85729 15.7688 8.81888 15.7734 8.7807 15.7704Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 72 KiB

View File

@@ -0,0 +1,4 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.33909 19.3278C6.33802 20.166 6.53963 20.7864 6.94391 21.1889C7.34713 21.5926 7.95889 21.7911 8.77923 21.7847H10.6049C10.6812 21.7818 10.7573 21.7946 10.8284 21.8222C10.8996 21.8498 10.9644 21.8917 11.0188 21.9453L12.3183 23.23C12.9087 23.8199 13.4873 24.1132 14.0542 24.11C14.621 24.1068 15.1996 23.8134 15.79 23.23L17.0735 21.9453C17.1297 21.8911 17.1965 21.8489 17.2695 21.8213C17.3426 21.7937 17.4206 21.7812 17.4986 21.7847H19.3131C20.142 21.7858 20.7596 21.584 21.166 21.1793C21.5725 20.7746 21.7757 20.1542 21.7757 19.3181V17.5019C21.7715 17.3445 21.8291 17.1918 21.9361 17.0764L23.2196 15.7917C23.8174 15.204 24.1142 14.6253 24.11 14.0558C24.1057 13.4863 23.8089 12.9071 23.2196 12.3183L21.9361 11.0336C21.8288 10.9184 21.7712 10.7655 21.7757 10.6081V8.79185C21.7746 7.95467 21.573 7.33429 21.1709 6.93069C20.7687 6.52709 20.1494 6.32528 19.3131 6.32528H17.4986C17.4206 6.32849 17.3427 6.31593 17.2697 6.28834C17.1966 6.26075 17.1299 6.21869 17.0735 6.1647L15.79 4.88002C15.1996 4.29015 14.621 3.99681 14.0542 4.00003C13.4873 4.00324 12.9087 4.29657 12.3183 4.88002L11.0188 6.1647C10.9642 6.21806 10.8995 6.25981 10.8283 6.28741C10.7572 6.31501 10.6812 6.32789 10.6049 6.32528H8.77923C7.95141 6.32635 7.33589 6.52655 6.93267 6.92586C6.52946 7.32518 6.32785 7.94718 6.32785 8.79185V10.6129C6.33235 10.7703 6.27471 10.9232 6.16742 11.0384L4.88397 12.3231C4.29466 12.9108 4 13.49 4 14.0606C4 14.6312 4.29841 15.2115 4.89521 15.8014L6.17866 17.086C6.28565 17.2014 6.34324 17.3542 6.33909 17.5116V19.3278Z" fill="#4673FA"/>
<path d="M13.9964 17.491C13.8069 17.7797 13.5273 17.942 13.2025 17.942C12.8687 17.942 12.6071 17.8067 12.3635 17.491L10.2345 14.8929C10.0812 14.7034 10 14.505 10 14.2885C10 13.8374 10.3428 13.4856 10.7848 13.4856C11.0555 13.4856 11.272 13.5848 11.4885 13.8645L13.1664 16.0025L16.7298 10.2831C16.9192 9.97637 17.1628 9.83203 17.4334 9.83203C17.8574 9.83203 18.2543 10.1297 18.2543 10.5718C18.2543 10.7793 18.1461 10.9958 18.0288 11.1852L13.9964 17.491Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -1,15 +1,143 @@
[
{
"constant": true,
"inputs": [
{
"internalType": "string",
"name": "uri_",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "TransferBatch",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "TransferSingle",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "value",
"type": "string"
},
{
"indexed": true,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "URI",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "_id",
"name": "id",
"type": "uint256"
}
],
@@ -21,16 +149,165 @@
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address[]",
"name": "accounts",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
}
],
"name": "balanceOfBatch",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeBatchTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"name": "",
"type": "uint256"
}
],
@@ -42,7 +319,6 @@
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}

View File

@@ -1,5 +1,320 @@
[
{
"inputs": [
{
"internalType": "address",
"name": "punkContract",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "proxy",
"type": "address"
}
],
"name": "ProxyRegistered",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "baseURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "punkIndex",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "punkIndex",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
@@ -15,10 +330,263 @@
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "pause",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "proxyInfo",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "punkContract",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "registerProxy",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "string",
"name": "baseUri",
"type": "string"
}
],
"name": "setBaseURI",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
@@ -34,7 +602,72 @@
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "unpause",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1 @@
<svg id="Celo_Rings" data-name="Celo Rings" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 950 950"><defs><style>.cls-1{fill:#fbcc5c;}.cls-2{fill:#35d07f;}.cls-3{fill:#5ea33b;}</style></defs><title>Artboard 1</title><path id="Bottom_Ring" data-name="Bottom Ring" class="cls-1" d="M375,850c151.88,0,275-123.12,275-275S526.88,300,375,300,100,423.12,100,575,223.12,850,375,850Zm0,100C167.9,950,0,782.1,0,575S167.9,200,375,200,750,367.9,750,575,582.1,950,375,950Z"/><path id="Top_Ring" data-name="Top Ring" class="cls-2" d="M575,650c151.88,0,275-123.12,275-275S726.88,100,575,100,300,223.12,300,375,423.12,650,575,650Zm0,100c-207.1,0-375-167.9-375-375S367.9,0,575,0,950,167.9,950,375,782.1,750,575,750Z"/><path id="Rings_Overlap" data-name="Rings Overlap" class="cls-3" d="M587.39,750a274.38,274.38,0,0,0,54.55-108.06A274.36,274.36,0,0,0,750,587.4a373.63,373.63,0,0,1-29.16,133.45A373.62,373.62,0,0,1,587.39,750ZM308.06,308.06A274.36,274.36,0,0,0,200,362.6a373.63,373.63,0,0,1,29.16-133.45A373.62,373.62,0,0,1,362.61,200,274.38,274.38,0,0,0,308.06,308.06Z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#99A1BD" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>

After

Width:  |  Height:  |  Size: 303 B

View File

@@ -0,0 +1,3 @@
<svg width="12" height="7" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.4 1.13333C5.2 0.0666671 6.8 0.0666668 7.6 1.13333L12 7H0L4.4 1.13333Z" fill="#0D0E0E"/>
</svg>

After

Width:  |  Height:  |  Size: 201 B

View File

@@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.24453 18.0887C3.24331 19.0467 3.47372 19.7558 3.93576 20.2158C4.39658 20.6771 5.09574 20.904 6.03326 20.8967H8.11975C8.20693 20.8934 8.29386 20.9079 8.37521 20.9395C8.45656 20.9711 8.53062 21.019 8.5928 21.0802L10.0779 22.5484C10.7527 23.2226 11.4139 23.5578 12.0617 23.5541C12.7096 23.5504 13.3709 23.2152 14.0456 22.5484L15.5124 21.0802C15.5767 21.0182 15.6529 20.97 15.7365 20.9385C15.82 20.9069 15.9091 20.8927 15.9982 20.8967H18.0719C19.0192 20.8979 19.7251 20.6673 20.1896 20.2048C20.6541 19.7423 20.8864 19.0333 20.8864 18.0777V16.0021C20.8816 15.8222 20.9474 15.6476 21.0697 15.5157L22.5365 14.0475C23.2198 13.3758 23.559 12.7145 23.5541 12.0636C23.5492 11.4127 23.21 10.7508 22.5365 10.0779L21.0697 8.6097C20.9471 8.47802 20.8812 8.30329 20.8864 8.12336V6.04769C20.8851 5.09092 20.6547 4.3819 20.1951 3.92064C19.7355 3.45939 19.0278 3.22875 18.0719 3.22875H15.9982C15.9091 3.23242 15.8201 3.21807 15.7366 3.18653C15.6532 3.155 15.5769 3.10694 15.5124 3.04523L14.0456 1.57703C13.3709 0.902883 12.7096 0.567648 12.0617 0.571319C11.4139 0.574989 10.7527 0.910224 10.0779 1.57703L8.5928 3.04523C8.53043 3.10622 8.45638 3.15393 8.37508 3.18547C8.29377 3.21701 8.20689 3.23173 8.11975 3.22875H6.03326C5.08718 3.22998 4.38373 3.45877 3.92291 3.91513C3.4621 4.3715 3.23168 5.08235 3.23168 6.04769V8.12887C3.23683 8.3088 3.17096 8.48352 3.04833 8.6152L1.58154 10.0834C0.908042 10.7551 0.571289 11.417 0.571289 12.0691C0.571289 12.7213 0.912332 13.3844 1.59439 14.0585L3.06118 15.5267C3.18346 15.6586 3.24928 15.8332 3.24453 16.0131V18.0887Z" fill="#4C82FB"/>
<path d="M11.996 15.9909C11.7795 16.3208 11.4599 16.5064 11.0887 16.5064C10.7072 16.5064 10.4083 16.3517 10.1299 15.9909L7.69677 13.0216C7.5215 12.8051 7.42871 12.5783 7.42871 12.3309C7.42871 11.8154 7.82049 11.4133 8.32567 11.4133C8.63497 11.4133 8.8824 11.5267 9.12984 11.8463L11.0475 14.2897L15.1199 7.75329C15.3364 7.40275 15.6147 7.23779 15.924 7.23779C16.4086 7.23779 16.8622 7.57802 16.8622 8.0832C16.8622 8.32033 16.7385 8.56777 16.6045 8.78427L11.996 15.9909Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

1
src/assets/svg/x.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#99A1BD" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>

After

Width:  |  Height:  |  Size: 294 B

View File

@@ -6,7 +6,7 @@ import styled from 'styled-components/macro'
import { LinkStyledButton } from 'theme'
const CopyIcon = styled(LinkStyledButton)`
color: ${({ color, theme }) => color || theme.text3};
color: ${({ color, theme }) => color || theme.accentAction};
flex-shrink: 0;
display: flex;
text-decoration: none;
@@ -14,7 +14,7 @@ const CopyIcon = styled(LinkStyledButton)`
:active,
:focus {
text-decoration: none;
color: ${({ color, theme }) => color || theme.text2};
color: ${({ color, theme }) => color || theme.accentAction};
}
`
const StyledText = styled.span`

View File

@@ -1,4 +1,4 @@
import useActiveWeb3React from 'hooks/useActiveWeb3React'
import { useWeb3React } from '@web3-react/core'
import { CheckCircle, Triangle } from 'react-feather'
import styled from 'styled-components/macro'
@@ -27,15 +27,16 @@ const TransactionState = styled(ExternalLink)<{ pending: boolean; success?: bool
padding: 0.25rem 0rem;
font-weight: 500;
font-size: 0.825rem;
color: ${({ theme }) => theme.primary1};
color: ${({ theme }) => theme.deprecated_primary1};
`
const IconWrapper = styled.div<{ pending: boolean; success?: boolean }>`
color: ${({ pending, success, theme }) => (pending ? theme.primary1 : success ? theme.green1 : theme.red1)};
color: ${({ pending, success, theme }) =>
pending ? theme.deprecated_primary1 : success ? theme.deprecated_green1 : theme.deprecated_red1};
`
export default function Transaction({ hash }: { hash: string }) {
const { chainId } = useActiveWeb3React()
const { chainId } = useWeb3React()
const allTransactions = useAllTransactions()
const tx = allTransactions?.[hash]

View File

@@ -1,16 +1,17 @@
import { Trans } from '@lingui/macro'
import { Connector } from '@web3-react/types'
import { useWeb3React } from '@web3-react/core'
import CopyHelper from 'components/AccountDetails/Copy'
import useActiveWeb3React from 'hooks/useActiveWeb3React'
import { useCallback, useContext } from 'react'
import { getConnection, getConnectionName, getIsCoinbaseWallet, getIsMetaMask } from 'connection/utils'
import { Context, useCallback, useContext } from 'react'
import { ExternalLink as LinkIcon } from 'react-feather'
import { useAppDispatch } from 'state/hooks'
import { updateSelectedWallet } from 'state/user/reducer'
import { removeConnectedWallet } from 'state/wallets/reducer'
import { DefaultTheme } from 'styled-components/macro'
import styled, { ThemeContext } from 'styled-components/macro'
import { isMobile } from 'utils/userAgent'
import { ReactComponent as Close } from '../../assets/images/x.svg'
import { coinbaseWallet, injected } from '../../connectors'
import { SUPPORTED_WALLETS } from '../../constants/wallet'
import { clearAllTransactions } from '../../state/transactions/reducer'
import { ExternalLink, LinkStyledButton, ThemedText } from '../../theme'
import { shortenAddress } from '../../utils'
@@ -24,7 +25,7 @@ const HeaderRow = styled.div`
${({ theme }) => theme.flexRowNoWrap};
padding: 1rem 1rem;
font-weight: 500;
color: ${(props) => (props.color === 'blue' ? ({ theme }) => theme.primary1 : 'inherit')};
color: ${(props) => (props.color === 'blue' ? ({ theme }) => theme.deprecated_primary1 : 'inherit')};
${({ theme }) => theme.mediaWidth.upToMedium`
padding: 1rem;
`};
@@ -52,7 +53,7 @@ const UpperSection = styled.div`
const InfoCard = styled.div`
padding: 1rem;
border: 1px solid ${({ theme }) => theme.bg3};
border: 1px solid ${({ theme }) => theme.deprecated_bg3};
border-radius: 20px;
position: relative;
display: grid;
@@ -65,7 +66,7 @@ const AccountGroupingRow = styled.div`
justify-content: space-between;
align-items: center;
font-weight: 400;
color: ${({ theme }) => theme.text1};
color: ${({ theme }) => theme.deprecated_text1};
div {
${({ theme }) => theme.flexRowNoWrap}
@@ -95,14 +96,14 @@ const LowerSection = styled.div`
padding: 1.5rem;
flex-grow: 1;
overflow: auto;
background-color: ${({ theme }) => theme.bg2};
background-color: ${({ theme }) => theme.deprecated_bg2};
border-bottom-left-radius: 20px;
border-bottom-right-radius: 20px;
h5 {
margin: 0;
font-weight: 400;
color: ${({ theme }) => theme.text3};
color: ${({ theme }) => theme.deprecated_text3};
}
`
@@ -128,14 +129,14 @@ const AccountControl = styled.div`
}
`
const AddressLink = styled(ExternalLink)<{ hasENS: boolean; isENS: boolean }>`
const AddressLink = styled(ExternalLink)`
font-size: 0.825rem;
color: ${({ theme }) => theme.text3};
color: ${({ theme }) => theme.deprecated_text3};
margin-left: 1rem;
font-size: 0.825rem;
display: flex;
:hover {
color: ${({ theme }) => theme.text2};
color: ${({ theme }) => theme.deprecated_text2};
}
`
@@ -151,7 +152,7 @@ const CloseIcon = styled.div`
const CloseColor = styled(Close)`
path {
stroke: ${({ theme }) => theme.text4};
stroke: ${({ theme }) => theme.deprecated_text4};
}
`
@@ -159,32 +160,9 @@ const WalletName = styled.div`
width: initial;
font-size: 0.825rem;
font-weight: 500;
color: ${({ theme }) => theme.text3};
color: ${({ theme }) => theme.deprecated_text3};
`
const IconWrapper = styled.div<{ size?: number }>`
${({ theme }) => theme.flexColumnNoWrap};
align-items: center;
justify-content: center;
margin-right: 8px;
& > img,
span {
height: ${({ size }) => (size ? size + 'px' : '32px')};
width: ${({ size }) => (size ? size + 'px' : '32px')};
}
${({ theme }) => theme.mediaWidth.upToMedium`
align-items: flex-end;
`};
`
function WrappedStatusIcon({ connector }: { connector: Connector }) {
return (
<IconWrapper size={16}>
<StatusIcon connector={connector} />
</IconWrapper>
)
}
const TransactionListWrapper = styled.div`
${({ theme }) => theme.flexColumnNoWrap};
`
@@ -226,22 +204,20 @@ export default function AccountDetails({
ENSName,
openOptions,
}: AccountDetailsProps) {
const { chainId, account, connector } = useActiveWeb3React()
const theme = useContext(ThemeContext)
const { chainId, account, connector } = useWeb3React()
const connectionType = getConnection(connector).type
const theme = useContext(ThemeContext as Context<DefaultTheme>)
const dispatch = useAppDispatch()
const isMetaMask = getIsMetaMask()
const isCoinbaseWallet = getIsCoinbaseWallet()
const isInjectedMobileBrowser = (isMetaMask || isCoinbaseWallet) && isMobile
function formatConnectorName() {
const { ethereum } = window
const isMetaMask = !!(ethereum && ethereum.isMetaMask)
const name = Object.keys(SUPPORTED_WALLETS)
.filter(
(k) =>
SUPPORTED_WALLETS[k].connector === connector && (connector !== injected || isMetaMask === (k === 'METAMASK'))
)
.map((k) => SUPPORTED_WALLETS[k].name)[0]
return (
<WalletName>
<Trans>Connected with {name}</Trans>
<Trans>Connected with</Trans> {getConnectionName(connectionType, isMetaMask)}
</WalletName>
)
}
@@ -265,104 +241,61 @@ export default function AccountDetails({
<AccountGroupingRow>
{formatConnectorName()}
<div>
{/* Coinbase Wallet reloads the page right now, which breaks the selectedWallet from being set properly on localStorage */}
{connector !== coinbaseWallet && (
<WalletAction
style={{ fontSize: '.825rem', fontWeight: 400, marginRight: '8px' }}
onClick={() => {
connector.deactivate ? connector.deactivate() : connector.resetState()
dispatch(updateSelectedWallet({ wallet: undefined }))
openOptions()
}}
data-cy="wallet-disconnect"
>
<Trans>Disconnect</Trans>
</WalletAction>
{!isInjectedMobileBrowser && (
<>
<WalletAction
style={{ fontSize: '.825rem', fontWeight: 400, marginRight: '8px' }}
onClick={() => {
const walletType = getConnectionName(getConnection(connector).type, getIsMetaMask())
if (connector.deactivate) {
connector.deactivate()
} else {
connector.resetState()
}
dispatch(updateSelectedWallet({ wallet: undefined }))
dispatch(removeConnectedWallet({ account, walletType }))
openOptions()
}}
>
<Trans>Disconnect</Trans>
</WalletAction>
<WalletAction
style={{ fontSize: '.825rem', fontWeight: 400 }}
onClick={() => {
openOptions()
}}
>
<Trans>Change</Trans>
</WalletAction>
</>
)}
<WalletAction
style={{ fontSize: '.825rem', fontWeight: 400 }}
onClick={() => {
openOptions()
}}
data-cy="wallet-change"
>
<Trans>Change</Trans>
</WalletAction>
</div>
</AccountGroupingRow>
<AccountGroupingRow id="web3-account-identifier-row">
<AccountGroupingRow data-testid="web3-account-identifier-row">
<AccountControl>
{ENSName ? (
<>
<div>
{connector && <WrappedStatusIcon connector={connector} />}
<p> {ENSName}</p>
</div>
</>
) : (
<>
<div>
{connector && <WrappedStatusIcon connector={connector} />}
<p> {account && shortenAddress(account)}</p>
</div>
</>
)}
<div>
<StatusIcon connectionType={connectionType} />
<p>{ENSName ? ENSName : account && shortenAddress(account)}</p>
</div>
</AccountControl>
</AccountGroupingRow>
<AccountGroupingRow>
{ENSName ? (
<>
<AccountControl>
<div>
{account && (
<CopyHelper toCopy={account} iconPosition="left">
<span style={{ marginLeft: '4px' }}>
<Trans>Copy Address</Trans>
</span>
</CopyHelper>
)}
{chainId && account && (
<AddressLink
hasENS={!!ENSName}
isENS={true}
href={getExplorerLink(chainId, ENSName, ExplorerDataType.ADDRESS)}
>
<LinkIcon size={16} />
<span style={{ marginLeft: '4px' }}>
<Trans>View on Explorer</Trans>
</span>
</AddressLink>
)}
</div>
</AccountControl>
</>
) : (
<>
<AccountControl>
<div>
{account && (
<CopyHelper toCopy={account} iconPosition="left">
<span style={{ marginLeft: '4px' }}>
<Trans>Copy Address</Trans>
</span>
</CopyHelper>
)}
{chainId && account && (
<AddressLink
hasENS={!!ENSName}
isENS={false}
href={getExplorerLink(chainId, account, ExplorerDataType.ADDRESS)}
>
<LinkIcon size={16} />
<span style={{ marginLeft: '4px' }}>
<Trans>View on Explorer</Trans>
</span>
</AddressLink>
)}
</div>
</AccountControl>
</>
)}
<AccountControl>
<div>
{account && (
<CopyHelper toCopy={account} iconPosition="left">
<Trans>Copy Address</Trans>
</CopyHelper>
)}
{chainId && account && (
<AddressLink href={getExplorerLink(chainId, ENSName ?? account, ExplorerDataType.ADDRESS)}>
<LinkIcon size={16} />
<Trans>View on Explorer</Trans>
</AddressLink>
)}
</div>
</AccountControl>
</AccountGroupingRow>
</InfoCard>
</YourAccount>
@@ -371,9 +304,9 @@ export default function AccountDetails({
{!!pendingTransactions.length || !!confirmedTransactions.length ? (
<LowerSection>
<AutoRow mb={'1rem'} style={{ justifyContent: 'space-between' }}>
<ThemedText.Body>
<ThemedText.DeprecatedBody>
<Trans>Recent Transactions</Trans>
</ThemedText.Body>
</ThemedText.DeprecatedBody>
<LinkStyledButton onClick={clearAllTransactionsCallback}>
<Trans>(clear all)</Trans>
</LinkStyledButton>
@@ -383,9 +316,9 @@ export default function AccountDetails({
</LowerSection>
) : (
<LowerSection>
<ThemedText.Body color={theme.text1}>
<ThemedText.DeprecatedBody color={theme.deprecated_text1}>
<Trans>Your transactions will appear here...</Trans>
</ThemedText.Body>
</ThemedText.DeprecatedBody>
</LowerSection>
)}
</>

View File

@@ -1,9 +1,9 @@
import { Trans } from '@lingui/macro'
// eslint-disable-next-line no-restricted-imports
import { t } from '@lingui/macro'
import useActiveWeb3React from 'hooks/useActiveWeb3React'
import { ReactNode, useCallback, useContext } from 'react'
import styled, { ThemeContext } from 'styled-components/macro'
import { useWeb3React } from '@web3-react/core'
import { ChangeEvent, Context, ReactNode, useCallback, useContext } from 'react'
import styled, { DefaultTheme, ThemeContext } from 'styled-components/macro'
import useENS from '../../hooks/useENS'
import { ExternalLink, ThemedText } from '../../theme'
@@ -15,7 +15,7 @@ const InputPanel = styled.div`
${({ theme }) => theme.flexColumnNoWrap}
position: relative;
border-radius: 1.25rem;
background-color: ${({ theme }) => theme.bg1};
background-color: ${({ theme }) => theme.deprecated_bg1};
z-index: 1;
width: 100%;
`
@@ -25,10 +25,10 @@ const ContainerRow = styled.div<{ error: boolean }>`
justify-content: center;
align-items: center;
border-radius: 1.25rem;
border: 1px solid ${({ error, theme }) => (error ? theme.red1 : theme.bg2)};
border: 1px solid ${({ error, theme }) => (error ? theme.deprecated_red1 : theme.deprecated_bg2)};
transition: border-color 300ms ${({ error }) => (error ? 'step-end' : 'step-start')},
color 500ms ${({ error }) => (error ? 'step-end' : 'step-start')};
background-color: ${({ theme }) => theme.bg1};
background-color: ${({ theme }) => theme.deprecated_bg1};
`
const InputContainer = styled.div`
@@ -42,15 +42,15 @@ const Input = styled.input<{ error?: boolean }>`
border: none;
flex: 1 1 auto;
width: 0;
background-color: ${({ theme }) => theme.bg1};
background-color: ${({ theme }) => theme.deprecated_bg1};
transition: color 300ms ${({ error }) => (error ? 'step-end' : 'step-start')};
color: ${({ error, theme }) => (error ? theme.red1 : theme.text1)};
color: ${({ error, theme }) => (error ? theme.deprecated_red1 : theme.deprecated_text1)};
overflow: hidden;
text-overflow: ellipsis;
font-weight: 500;
width: 100%;
::placeholder {
color: ${({ theme }) => theme.text4};
color: ${({ theme }) => theme.deprecated_text4};
}
padding: 0px;
-webkit-appearance: textfield;
@@ -65,7 +65,7 @@ const Input = styled.input<{ error?: boolean }>`
}
::placeholder {
color: ${({ theme }) => theme.text4};
color: ${({ theme }) => theme.deprecated_text4};
}
`
@@ -86,13 +86,13 @@ export default function AddressInputPanel({
// triggers whenever the typed value changes
onChange: (value: string) => void
}) {
const { chainId } = useActiveWeb3React()
const theme = useContext(ThemeContext)
const { chainId } = useWeb3React()
const theme = useContext(ThemeContext as Context<DefaultTheme>)
const { address, loading, name } = useENS(value)
const handleInput = useCallback(
(event) => {
(event: ChangeEvent<HTMLInputElement>) => {
const input = event.target.value
const withoutSpaces = input.replace(/\s+/g, '')
onChange(withoutSpaces)
@@ -108,9 +108,9 @@ export default function AddressInputPanel({
<InputContainer>
<AutoColumn gap="md">
<RowBetween>
<ThemedText.Black color={theme.text2} fontWeight={500} fontSize={14}>
<ThemedText.DeprecatedBlack color={theme.deprecated_text2} fontWeight={500} fontSize={14}>
{label ?? <Trans>Recipient</Trans>}
</ThemedText.Black>
</ThemedText.DeprecatedBlack>
{address && chainId && (
<ExternalLink
href={getExplorerLink(chainId, name ?? address, ExplorerDataType.ADDRESS)}

View File

@@ -0,0 +1,57 @@
import { createContext, memo, PropsWithChildren, useContext, useEffect, useMemo } from 'react'
import { sendAnalyticsEvent } from '.'
import { ElementName, EventName, ModalName, PageName, SectionName } from './constants'
export interface ITraceContext {
// Highest order context: eg Swap or Explore.
page?: PageName
// Enclosed section name. For contexts with modals, refers to the
// section of the page from which the user triggered the modal.
section?: SectionName
modal?: ModalName
// Element name mostly used to identify events sources
// Does not need to be unique given the higher order page and section.
element?: ElementName
}
export const TraceContext = createContext<ITraceContext>({})
type TraceProps = {
shouldLogImpression?: boolean // whether to log impression on mount
name?: EventName
properties?: Record<string, unknown>
} & ITraceContext
/**
* Sends an analytics event on mount (if shouldLogImpression is set),
* and propagates the context to child traces.
*/
export const Trace = memo(
({ shouldLogImpression, name, children, page, section, element, properties }: PropsWithChildren<TraceProps>) => {
const parentTrace = useContext(TraceContext)
const combinedProps = useMemo(
() => ({
...parentTrace,
...Object.fromEntries(Object.entries({ page, section, element }).filter(([_, v]) => v !== undefined)),
}),
[element, parentTrace, page, section]
)
useEffect(() => {
if (shouldLogImpression) {
sendAnalyticsEvent(name ?? EventName.PAGE_VIEWED, { ...combinedProps, ...properties })
}
// Impressions should only be logged on mount.
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [])
return <TraceContext.Provider value={combinedProps}>{children}</TraceContext.Provider>
}
)
Trace.displayName = 'Trace'

View File

@@ -0,0 +1,75 @@
import { Children, cloneElement, isValidElement, memo, PropsWithChildren, SyntheticEvent } from 'react'
import { sendAnalyticsEvent } from '.'
import { Event, EventName } from './constants'
import { ITraceContext, Trace, TraceContext } from './Trace'
type TraceEventProps = {
events: Event[]
name: EventName
properties?: Record<string, unknown>
shouldLogImpression?: boolean
} & ITraceContext
/**
* Analytics instrumentation component that wraps event callbacks with logging logic.
*
* @example
* <TraceEvent events={[Event.onClick]} element={ElementName.SWAP_BUTTON}>
* <Button onClick={() => console.log('clicked')}>Click me</Button>
* </TraceEvent>
*/
export const TraceEvent = memo((props: PropsWithChildren<TraceEventProps>) => {
const { shouldLogImpression, name, properties, events, children, ...traceProps } = props
return (
<Trace {...traceProps}>
<TraceContext.Consumer>
{(traceContext) =>
Children.map(children, (child) => {
if (!isValidElement(child)) {
return child
}
// For each child, augment event handlers defined in `events` with event tracing.
return cloneElement(
child,
getEventHandlers(child, traceContext, events, name, properties, shouldLogImpression)
)
})
}
</TraceContext.Consumer>
</Trace>
)
})
TraceEvent.displayName = 'TraceEvent'
/**
* Given a set of child element and event props, returns a spreadable
* object of the event handlers augmented with analytics logging.
*/
function getEventHandlers(
child: React.ReactElement,
traceContext: ITraceContext,
events: Event[],
name: EventName,
properties?: Record<string, unknown>,
shouldLogImpression = true
) {
const eventHandlers: Partial<Record<Event, (e: SyntheticEvent<Element, Event>) => void>> = {}
for (const event of events) {
eventHandlers[event] = (eventHandlerArgs: unknown) => {
// call child event handler with original arguments, must be in array
const args = Array.isArray(eventHandlerArgs) ? eventHandlerArgs : [eventHandlerArgs]
child.props[event]?.apply(child, args)
// augment handler with analytics logging
if (shouldLogImpression) sendAnalyticsEvent(name, { ...traceContext, ...properties, action: event })
}
}
// return a spreadable event handler object
return eventHandlers
}

View File

@@ -0,0 +1,132 @@
/**
* Event names that can occur in this application.
*
* Subject to change as new features are added and new events are defined
* and logged.
*/
export enum EventName {
APP_LOADED = 'Application Loaded',
APPROVE_TOKEN_TXN_SUBMITTED = 'Approve Token Transaction Submitted',
CONNECT_WALLET_BUTTON_CLICKED = 'Connect Wallet Button Clicked',
EXPLORE_TOKEN_ROW_CLICKED = 'Explore Token Row Clicked',
PAGE_VIEWED = 'Page Viewed',
SWAP_AUTOROUTER_VISUALIZATION_EXPANDED = 'Swap Autorouter Visualization Expanded',
SWAP_DETAILS_EXPANDED = 'Swap Details Expanded',
SWAP_MAX_TOKEN_AMOUNT_SELECTED = 'Swap Max Token Amount Selected',
SWAP_PRICE_UPDATE_ACKNOWLEDGED = 'Swap Price Update Acknowledged',
SWAP_QUOTE_RECEIVED = 'Swap Quote Received',
SWAP_SUBMITTED = 'Swap Submitted',
SWAP_TOKENS_REVERSED = 'Swap Tokens Reversed',
SWAP_TRANSACTION_COMPLETED = 'Swap Transaction Completed',
TOKEN_IMPORTED = 'Token Imported',
TOKEN_SELECTED = 'Token Selected',
TOKEN_SELECTOR_OPENED = 'Token Selector Opened',
WALLET_CONNECT_TXN_COMPLETED = 'Wallet Connect Transaction Completed',
WALLET_SELECTED = 'Wallet Selected',
WRAP_TOKEN_TXN_SUBMITTED = 'Wrap Token Transaction Submitted',
// alphabetize additional event names.
}
export enum CUSTOM_USER_PROPERTIES {
ALL_WALLET_ADDRESSES_CONNECTED = 'all_wallet_addresses_connected',
ALL_WALLET_CHAIN_IDS = 'all_wallet_chain_ids',
BROWSER = 'browser',
DARK_MODE = 'is_dark_mode',
EXPERT_MODE = 'is_expert_mode',
SCREEN_RESOLUTION_HEIGHT = 'screen_resolution_height',
SCREEN_RESOLUTION_WIDTH = 'screen_resolution_width',
WALLET_ADDRESS = 'wallet_address',
WALLET_NATIVE_CURRENCY_BALANCE_USD = 'wallet_native_currency_balance_usd',
WALLET_TOKENS_ADDRESSES = 'wallet_tokens_addresses',
WALLET_TOKENS_SYMBOLS = 'wallet_tokens_symbols',
WALLET_TYPE = 'wallet_type',
}
export enum CUSTOM_USER_PROPERTY_SUFFIXES {
WALLET_TOKEN_AMOUNT_SUFFIX = '_token_amount',
}
export enum BROWSER {
FIREFOX = 'Mozilla Firefox',
SAMSUNG = 'Samsung Internet',
OPERA = 'Opera',
INTERNET_EXPLORER = 'Microsoft Internet Explorer',
EDGE = 'Microsoft Edge (Legacy)',
EDGE_CHROMIUM = 'Microsoft Edge (Chromium)',
CHROME = 'Google Chrome or Chromium',
SAFARI = 'Apple Safari',
UNKNOWN = 'unknown',
}
export enum WALLET_CONNECTION_RESULT {
SUCCEEDED = 'Succeeded',
FAILED = 'Failed',
}
export const NATIVE_CHAIN_ID = 'NATIVE'
export enum SWAP_PRICE_UPDATE_USER_RESPONSE {
ACCEPTED = 'Accepted',
REJECTED = 'Rejected',
}
/**
* Known pages in the app. Highest order context.
*/
export enum PageName {
EXPLORE_PAGE = 'explore-page',
POOL_PAGE = 'pool-page',
SWAP_PAGE = 'swap-page',
VOTE_PAGE = 'vote-page',
// alphabetize additional page names.
}
/**
* Sections. Disambiguates low-level elements that may share a name.
* eg a `back` button in a modal will have the same `element`,
* but a different `section`.
*/
export enum SectionName {
CURRENCY_INPUT_PANEL = 'swap-currency-input',
CURRENCY_OUTPUT_PANEL = 'swap-currency-output',
// alphabetize additional section names.
}
/** Known modals for analytics purposes. */
export enum ModalName {
CONFIRM_SWAP = 'confirm-swap-modal',
TOKEN_SELECTOR = 'token-selector-modal',
// alphabetize additional modal names.
}
/**
* Known element names for analytics purposes.
* Use to identify low-level components given a TraceContext
*/
export enum ElementName {
AUTOROUTER_VISUALIZATION_ROW = 'expandable-autorouter-visualization-row',
COMMON_BASES_CURRENCY_BUTTON = 'common-bases-currency-button',
CONFIRM_SWAP_BUTTON = 'confirm-swap-or-send',
CONNECT_WALLET_BUTTON = 'connect-wallet-button',
IMPORT_TOKEN_BUTTON = 'import-token-button',
MAX_TOKEN_AMOUNT_BUTTON = 'max-token-amount-button',
PRICE_UPDATE_ACCEPT_BUTTON = 'price-update-accept-button',
SWAP_BUTTON = 'swap-button',
SWAP_DETAILS_DROPDOWN = 'swap-details-dropdown',
SWAP_TOKENS_REVERSE_ARROW_BUTTON = 'swap-tokens-reverse-arrow-button',
TOKEN_SELECTOR_ROW = 'token-selector-row',
WALLET_TYPE_OPTION = 'wallet-type-option',
// alphabetize additional element names.
}
/**
* Known events that trigger callbacks.
* @example
* <TraceEvent events={[Event.onClick]} element={name}>
*/
export enum Event {
onClick = 'onClick',
onKeyPress = 'onKeyPress',
onSelect = 'onSelect',
// alphabetize additional events.
}

Some files were not shown because too many files have changed in this diff Show More