From 4578f4e96f84c84e5fa9ad7899c00949dea14dd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20=C4=90=E1=BB=A9c=20=C4=90=C3=A0o?= Date: Mon, 9 Mar 2026 10:26:52 +0700 Subject: [PATCH 1/2] [FE]: Code challenge solution --- readme.md | 7 +- src/problem1/.keep | 0 src/problem1/index.js | 28 + src/problem2/.eslintrc.cjs | 18 + src/problem2/.gitignore | 24 + src/problem2/README.md | 30 + src/problem2/index.html | 38 +- src/problem2/package.json | 32 + src/problem2/public/vite.svg | 1 + src/problem2/script.js | 0 src/problem2/src/App.css | 38 + src/problem2/src/App.tsx | 8 + .../src/assets/img/icons/arrow-down.svg | 3 + .../assets/img/icons/chevron-down-black.svg | 3 + .../assets/img/icons/chevron-down-white.svg | 3 + src/problem2/src/assets/img/icons/close.svg | 3 + src/problem2/src/assets/img/icons/loading.svg | 7 + src/problem2/src/assets/img/icons/search.svg | 3 + src/problem2/src/assets/img/index.ts | 871 ++++++++ src/problem2/src/assets/img/tokens/AAVE.svg | 10 + src/problem2/src/assets/img/tokens/ADA.svg | 4 + src/problem2/src/assets/img/tokens/AEVO.svg | 12 + src/problem2/src/assets/img/tokens/AGI.svg | 6 + src/problem2/src/assets/img/tokens/AKRO.svg | 10 + src/problem2/src/assets/img/tokens/AKT.svg | 5 + src/problem2/src/assets/img/tokens/ALGO.svg | 4 + src/problem2/src/assets/img/tokens/ALPHA.svg | 20 + src/problem2/src/assets/img/tokens/ALT.svg | 15 + src/problem2/src/assets/img/tokens/AMP.svg | 5 + src/problem2/src/assets/img/tokens/ANC.svg | 6 + src/problem2/src/assets/img/tokens/ANDR.svg | 48 + src/problem2/src/assets/img/tokens/ANKR.svg | 4 + src/problem2/src/assets/img/tokens/ANT.svg | 20 + src/problem2/src/assets/img/tokens/ANY.svg | 10 + src/problem2/src/assets/img/tokens/APE.svg | 14 + src/problem2/src/assets/img/tokens/APOLLO.svg | 21 + src/problem2/src/assets/img/tokens/AR.svg | 5 + src/problem2/src/assets/img/tokens/ARB.svg | 16 + src/problem2/src/assets/img/tokens/ARCH.svg | 11 + src/problem2/src/assets/img/tokens/ASA.svg | 4 + src/problem2/src/assets/img/tokens/ASTRO.svg | 12 + src/problem2/src/assets/img/tokens/ATOM.svg | 9 + src/problem2/src/assets/img/tokens/AUDIO.svg | 10 + src/problem2/src/assets/img/tokens/AUT.svg | 208 ++ src/problem2/src/assets/img/tokens/AVA.svg | 10 + src/problem2/src/assets/img/tokens/AVAX.svg | 4 + src/problem2/src/assets/img/tokens/AXL.svg | 4 + src/problem2/src/assets/img/tokens/AXS.svg | 4 + src/problem2/src/assets/img/tokens/AXT.svg | 71 + src/problem2/src/assets/img/tokens/BAKE.svg | 16 + src/problem2/src/assets/img/tokens/BAL.svg | 6 + src/problem2/src/assets/img/tokens/BAND.svg | 4 + src/problem2/src/assets/img/tokens/BAT.svg | 4 + src/problem2/src/assets/img/tokens/BCD.svg | 4 + src/problem2/src/assets/img/tokens/BCH.svg | 4 + src/problem2/src/assets/img/tokens/BCHA.svg | 5 + src/problem2/src/assets/img/tokens/BCN.svg | 4 + src/problem2/src/assets/img/tokens/BCNA.svg | 6 + src/problem2/src/assets/img/tokens/BELT.svg | 1 + src/problem2/src/assets/img/tokens/BHC.svg | 4 + src/problem2/src/assets/img/tokens/BIT.svg | 4 + src/problem2/src/assets/img/tokens/BLAST.svg | 11 + src/problem2/src/assets/img/tokens/BLD.svg | 19 + src/problem2/src/assets/img/tokens/BLOX.svg | 23 + src/problem2/src/assets/img/tokens/BLUR.svg | 19 + src/problem2/src/assets/img/tokens/BNB.svg | 4 + src/problem2/src/assets/img/tokens/BNT.svg | 4 + src/problem2/src/assets/img/tokens/BOLT.svg | 21 + src/problem2/src/assets/img/tokens/BOOT.svg | 10 + src/problem2/src/assets/img/tokens/BRAINS.svg | 11 + src/problem2/src/assets/img/tokens/BRKL.svg | 276 +++ src/problem2/src/assets/img/tokens/BTC.svg | 5 + src/problem2/src/assets/img/tokens/BTCST.svg | 4 + src/problem2/src/assets/img/tokens/BTG.svg | 4 + src/problem2/src/assets/img/tokens/BTM.svg | 7 + src/problem2/src/assets/img/tokens/BTMX.svg | 5 + src/problem2/src/assets/img/tokens/BTSG.svg | 4 + src/problem2/src/assets/img/tokens/BTT.svg | 7 + src/problem2/src/assets/img/tokens/BUNNY.svg | 4 + src/problem2/src/assets/img/tokens/BUSD.svg | 8 + src/problem2/src/assets/img/tokens/BUSDT.svg | 1 + src/problem2/src/assets/img/tokens/C98.svg | 7 + src/problem2/src/assets/img/tokens/CAKE.svg | 8 + src/problem2/src/assets/img/tokens/CANTO.svg | 11 + src/problem2/src/assets/img/tokens/CARB.svg | 11 + src/problem2/src/assets/img/tokens/CAT.svg | 65 + src/problem2/src/assets/img/tokens/CEL.svg | 11 + src/problem2/src/assets/img/tokens/CELO.svg | 4 + src/problem2/src/assets/img/tokens/CETH.svg | 17 + src/problem2/src/assets/img/tokens/CFX.svg | 5 + src/problem2/src/assets/img/tokens/CGAS.svg | 4 + src/problem2/src/assets/img/tokens/CHEQ.svg | 34 + src/problem2/src/assets/img/tokens/CHSB.svg | 10 + src/problem2/src/assets/img/tokens/CHT.svg | 54 + src/problem2/src/assets/img/tokens/CHZ.svg | 4 + src/problem2/src/assets/img/tokens/CKB.svg | 5 + src/problem2/src/assets/img/tokens/CLP.svg | 47 + src/problem2/src/assets/img/tokens/CMDX.svg | 4 + src/problem2/src/assets/img/tokens/CMST.svg | 13 + src/problem2/src/assets/img/tokens/CNT.svg | 110 + src/problem2/src/assets/img/tokens/COIN.svg | 4 + src/problem2/src/assets/img/tokens/COMP.svg | 4 + src/problem2/src/assets/img/tokens/CRBRUS.svg | 88 + src/problem2/src/assets/img/tokens/CRE.svg | 42 + src/problem2/src/assets/img/tokens/CRO.svg | 8 + src/problem2/src/assets/img/tokens/CRV.svg | 790 +++++++ src/problem2/src/assets/img/tokens/CTK.svg | 7 + src/problem2/src/assets/img/tokens/CW.svg | 13 + src/problem2/src/assets/img/tokens/DAG.svg | 10 + src/problem2/src/assets/img/tokens/DAI.svg | 4 + src/problem2/src/assets/img/tokens/DARC.svg | 9 + src/problem2/src/assets/img/tokens/DASH.svg | 5 + src/problem2/src/assets/img/tokens/DBC.svg | 4 + src/problem2/src/assets/img/tokens/DCR.svg | 11 + src/problem2/src/assets/img/tokens/DEC.svg | 38 + src/problem2/src/assets/img/tokens/DENT.svg | 15 + src/problem2/src/assets/img/tokens/DGB.svg | 4 + src/problem2/src/assets/img/tokens/DIG.svg | 54 + src/problem2/src/assets/img/tokens/DKT.svg | 65 + src/problem2/src/assets/img/tokens/DODO.svg | 6 + src/problem2/src/assets/img/tokens/DOGE.svg | 124 ++ src/problem2/src/assets/img/tokens/DOT.svg | 5 + src/problem2/src/assets/img/tokens/DPX.svg | 15 + src/problem2/src/assets/img/tokens/DRFT.svg | 83 + src/problem2/src/assets/img/tokens/DSM.svg | 4 + src/problem2/src/assets/img/tokens/DVPN.svg | 5 + src/problem2/src/assets/img/tokens/DYDX.svg | 20 + src/problem2/src/assets/img/tokens/DYM.svg | 11 + src/problem2/src/assets/img/tokens/EEUR.svg | 16 + src/problem2/src/assets/img/tokens/ELA.svg | 5 + src/problem2/src/assets/img/tokens/ELF.svg | 4 + src/problem2/src/assets/img/tokens/ENJ.svg | 63 + src/problem2/src/assets/img/tokens/ENS.svg | 10 + src/problem2/src/assets/img/tokens/EOS.svg | 4 + src/problem2/src/assets/img/tokens/EPS.svg | 25 + src/problem2/src/assets/img/tokens/ETC.svg | 6 + src/problem2/src/assets/img/tokens/ETH.svg | 9 + src/problem2/src/assets/img/tokens/ETN.svg | 4 + src/problem2/src/assets/img/tokens/EUROC.svg | 12 + src/problem2/src/assets/img/tokens/EUT.svg | 208 ++ src/problem2/src/assets/img/tokens/EVMOS.svg | 4 + src/problem2/src/assets/img/tokens/EWT.svg | 5 + src/problem2/src/assets/img/tokens/FEES.svg | 10 + src/problem2/src/assets/img/tokens/FET.svg | 19 + src/problem2/src/assets/img/tokens/FIL.svg | 4 + src/problem2/src/assets/img/tokens/FIS.svg | 20 + src/problem2/src/assets/img/tokens/FLIX.svg | 37 + src/problem2/src/assets/img/tokens/FLM.svg | 13 + src/problem2/src/assets/img/tokens/FLOW.svg | 5 + src/problem2/src/assets/img/tokens/FLUID.svg | 53 + src/problem2/src/assets/img/tokens/FLUO.svg | 11 + src/problem2/src/assets/img/tokens/FRANK.svg | 268 +++ src/problem2/src/assets/img/tokens/FTM.svg | 4 + src/problem2/src/assets/img/tokens/FTT.svg | 7 + src/problem2/src/assets/img/tokens/FTTC.svg | 7 + src/problem2/src/assets/img/tokens/FUN.svg | 4 + src/problem2/src/assets/img/tokens/GALA.svg | 6 + src/problem2/src/assets/img/tokens/GAS.svg | 4 + src/problem2/src/assets/img/tokens/GBT.svg | 212 ++ src/problem2/src/assets/img/tokens/GLP.svg | 15 + src/problem2/src/assets/img/tokens/GM.svg | 7 + src/problem2/src/assets/img/tokens/GMX.svg | 15 + src/problem2/src/assets/img/tokens/GNO.svg | 7 + src/problem2/src/assets/img/tokens/GNS.svg | 34 + src/problem2/src/assets/img/tokens/GRAV.svg | 44 + src/problem2/src/assets/img/tokens/GRT.svg | 4 + src/problem2/src/assets/img/tokens/GT.svg | 4 + src/problem2/src/assets/img/tokens/HBAR.svg | 4 + src/problem2/src/assets/img/tokens/HDN.svg | 9 + src/problem2/src/assets/img/tokens/HELMET.svg | 9 + src/problem2/src/assets/img/tokens/HKT.svg | 45 + src/problem2/src/assets/img/tokens/HNT.svg | 4 + src/problem2/src/assets/img/tokens/HOPE.svg | 144 ++ src/problem2/src/assets/img/tokens/HOT.svg | 4 + src/problem2/src/assets/img/tokens/HT.svg | 5 + src/problem2/src/assets/img/tokens/HUAHUA.svg | 22 + src/problem2/src/assets/img/tokens/HUNY.svg | 1 + src/problem2/src/assets/img/tokens/HUSD.svg | 6 + src/problem2/src/assets/img/tokens/IBCX.svg | 14 + src/problem2/src/assets/img/tokens/ICP.svg | 16 + src/problem2/src/assets/img/tokens/ICX.svg | 7 + src/problem2/src/assets/img/tokens/IDT.svg | 54 + src/problem2/src/assets/img/tokens/INJ.svg | 14 + src/problem2/src/assets/img/tokens/INT.svg | 82 + src/problem2/src/assets/img/tokens/ION.svg | 114 + src/problem2/src/assets/img/tokens/IOST.svg | 4 + src/problem2/src/assets/img/tokens/IOTX.svg | 26 + src/problem2/src/assets/img/tokens/IOV.svg | 9 + src/problem2/src/assets/img/tokens/IRIS.svg | 51 + src/problem2/src/assets/img/tokens/IXO.svg | 4 + src/problem2/src/assets/img/tokens/JPT.svg | 54 + src/problem2/src/assets/img/tokens/JTO.svg | 6 + src/problem2/src/assets/img/tokens/JUNO.svg | 6 + src/problem2/src/assets/img/tokens/JUP.svg | 34 + src/problem2/src/assets/img/tokens/KAS.svg | 3 + src/problem2/src/assets/img/tokens/KCS.svg | 4 + src/problem2/src/assets/img/tokens/KFLOKI.svg | 40 + src/problem2/src/assets/img/tokens/KLAY.svg | 7 + src/problem2/src/assets/img/tokens/KMD.svg | 15 + src/problem2/src/assets/img/tokens/KNC.svg | 7 + src/problem2/src/assets/img/tokens/KPEPE.svg | 28 + src/problem2/src/assets/img/tokens/KRT.svg | 248 +++ src/problem2/src/assets/img/tokens/KSM.svg | 4 + src/problem2/src/assets/img/tokens/KUJI.svg | 19 + src/problem2/src/assets/img/tokens/LDO.svg | 12 + src/problem2/src/assets/img/tokens/LEO.svg | 77 + src/problem2/src/assets/img/tokens/LET.svg | 15 + src/problem2/src/assets/img/tokens/LIKE.svg | 41 + src/problem2/src/assets/img/tokens/LINK.svg | 4 + src/problem2/src/assets/img/tokens/LKT.svg | 16 + src/problem2/src/assets/img/tokens/LOOM.svg | 15 + src/problem2/src/assets/img/tokens/LOOP.svg | 35 + src/problem2/src/assets/img/tokens/LOTA.svg | 10 + src/problem2/src/assets/img/tokens/LPT.svg | 4 + src/problem2/src/assets/img/tokens/LRC.svg | 4 + src/problem2/src/assets/img/tokens/LSI.svg | 53 + src/problem2/src/assets/img/tokens/LSK.svg | 4 + src/problem2/src/assets/img/tokens/LTC.svg | 4 + src/problem2/src/assets/img/tokens/LUM.svg | 12 + src/problem2/src/assets/img/tokens/LUNA.svg | 15 + src/problem2/src/assets/img/tokens/LUNAX.svg | 10 + src/problem2/src/assets/img/tokens/LUNC.svg | 6 + src/problem2/src/assets/img/tokens/LUNI.svg | 29 + src/problem2/src/assets/img/tokens/LUNR.svg | 15 + src/problem2/src/assets/img/tokens/LUV.svg | 49 + src/problem2/src/assets/img/tokens/M87.svg | 11 + src/problem2/src/assets/img/tokens/MANA.svg | 26 + src/problem2/src/assets/img/tokens/MANTA.svg | 25 + src/problem2/src/assets/img/tokens/MARBLE.svg | 8 + src/problem2/src/assets/img/tokens/MATH.svg | 4 + src/problem2/src/assets/img/tokens/MATIC.svg | 4 + src/problem2/src/assets/img/tokens/MDX.svg | 5 + src/problem2/src/assets/img/tokens/MED.svg | 8 + src/problem2/src/assets/img/tokens/MEME.svg | 13 + src/problem2/src/assets/img/tokens/METIS.svg | 11 + src/problem2/src/assets/img/tokens/MIAW.svg | 7 + src/problem2/src/assets/img/tokens/MINA.svg | 4 + src/problem2/src/assets/img/tokens/MINE.svg | 11 + src/problem2/src/assets/img/tokens/MIOTA.svg | 4 + src/problem2/src/assets/img/tokens/MIR.svg | 4 + src/problem2/src/assets/img/tokens/MKR.svg | 10 + src/problem2/src/assets/img/tokens/MNT.svg | 4 + src/problem2/src/assets/img/tokens/MNTA.svg | 18 + src/problem2/src/assets/img/tokens/MNTL.svg | 17 + src/problem2/src/assets/img/tokens/MYT.svg | 171 ++ src/problem2/src/assets/img/tokens/NANO.svg | 6 + src/problem2/src/assets/img/tokens/NAS.svg | 4 + src/problem2/src/assets/img/tokens/NEAR.svg | 4 + src/problem2/src/assets/img/tokens/NEO.svg | 6 + src/problem2/src/assets/img/tokens/NETA.svg | 6 + src/problem2/src/assets/img/tokens/NEX.svg | 5 + src/problem2/src/assets/img/tokens/NEXO.svg | 9 + src/problem2/src/assets/img/tokens/NGM.svg | 6 + src/problem2/src/assets/img/tokens/NKN.svg | 22 + src/problem2/src/assets/img/tokens/NMR.svg | 5 + src/problem2/src/assets/img/tokens/NOT.svg | 90 + src/problem2/src/assets/img/tokens/NOTE.svg | 17 + src/problem2/src/assets/img/tokens/NPXS.svg | 4 + src/problem2/src/assets/img/tokens/NTRN.svg | 12 + src/problem2/src/assets/img/tokens/NXM.svg | 8 + src/problem2/src/assets/img/tokens/OCEAN.svg | 4 + src/problem2/src/assets/img/tokens/OCH.svg | 15 + src/problem2/src/assets/img/tokens/OGN.svg | 4 + src/problem2/src/assets/img/tokens/OKB.svg | 15 + src/problem2/src/assets/img/tokens/OKT.svg | 15 + src/problem2/src/assets/img/tokens/OMG.svg | 7 + src/problem2/src/assets/img/tokens/OMG_2.svg | 4 + src/problem2/src/assets/img/tokens/OMI.svg | 18 + src/problem2/src/assets/img/tokens/ONE.svg | 10 + src/problem2/src/assets/img/tokens/ONT.svg | 4 + src/problem2/src/assets/img/tokens/OP.svg | 12 + src/problem2/src/assets/img/tokens/OPUL.svg | 7 + src/problem2/src/assets/img/tokens/ORDI.svg | 11 + src/problem2/src/assets/img/tokens/ORION.svg | 8 + src/problem2/src/assets/img/tokens/ORNE.svg | 6 + src/problem2/src/assets/img/tokens/OSMO.svg | 121 ++ src/problem2/src/assets/img/tokens/OXT.svg | 7 + src/problem2/src/assets/img/tokens/OXY.svg | 22 + src/problem2/src/assets/img/tokens/PAX.svg | 11 + src/problem2/src/assets/img/tokens/PEPE.svg | 28 + src/problem2/src/assets/img/tokens/PHT.svg | 124 ++ src/problem2/src/assets/img/tokens/PLAY.svg | 23 + src/problem2/src/assets/img/tokens/PLQ.svg | 15 + src/problem2/src/assets/img/tokens/PLY.svg | 42 + src/problem2/src/assets/img/tokens/POLY.svg | 55 + src/problem2/src/assets/img/tokens/PORT.svg | 4 + src/problem2/src/assets/img/tokens/PROM.svg | 5 + src/problem2/src/assets/img/tokens/PSI.svg | 4 + src/problem2/src/assets/img/tokens/PSTAKE.svg | 5 + src/problem2/src/assets/img/tokens/PYTH.svg | 12 + src/problem2/src/assets/img/tokens/QCK.svg | 80 + src/problem2/src/assets/img/tokens/QKC.svg | 10 + src/problem2/src/assets/img/tokens/QNT.svg | 10 + src/problem2/src/assets/img/tokens/QTUM.svg | 4 + src/problem2/src/assets/img/tokens/RATOM.svg | 55 + src/problem2/src/assets/img/tokens/RAY.svg | 14 + src/problem2/src/assets/img/tokens/RBN.svg | 4 + src/problem2/src/assets/img/tokens/REEF.svg | 10 + src/problem2/src/assets/img/tokens/REGEN.svg | 24 + src/problem2/src/assets/img/tokens/REN.svg | 16 + src/problem2/src/assets/img/tokens/REP.svg | 5 + src/problem2/src/assets/img/tokens/REV.svg | 12 + src/problem2/src/assets/img/tokens/RLB.svg | 11 + src/problem2/src/assets/img/tokens/RLC.svg | 4 + src/problem2/src/assets/img/tokens/RNDR.svg | 11 + src/problem2/src/assets/img/tokens/ROAR.svg | 18 + src/problem2/src/assets/img/tokens/ROWAN.svg | 11 + src/problem2/src/assets/img/tokens/RSR.svg | 4 + src/problem2/src/assets/img/tokens/RUNE.svg | 10 + src/problem2/src/assets/img/tokens/RVN.svg | 6 + .../src/assets/img/tokens/SAFEMOON.svg | 27 + src/problem2/src/assets/img/tokens/SAND.svg | 10 + src/problem2/src/assets/img/tokens/SAYVE.svg | 5 + src/problem2/src/assets/img/tokens/SC.svg | 4 + src/problem2/src/assets/img/tokens/SCRT.svg | 5 + src/problem2/src/assets/img/tokens/SDT.svg | 48 + src/problem2/src/assets/img/tokens/SEI.svg | 14 + src/problem2/src/assets/img/tokens/SET.svg | 65 + src/problem2/src/assets/img/tokens/SGT.svg | 138 ++ src/problem2/src/assets/img/tokens/SHD.svg | 34 + src/problem2/src/assets/img/tokens/SHIB.svg | 12 + src/problem2/src/assets/img/tokens/SITY.svg | 8 + src/problem2/src/assets/img/tokens/SLERF.svg | 24 + src/problem2/src/assets/img/tokens/SNT.svg | 4 + src/problem2/src/assets/img/tokens/SNX.svg | 10 + src/problem2/src/assets/img/tokens/SOL.svg | 12 + src/problem2/src/assets/img/tokens/SOM.svg | 10 + src/problem2/src/assets/img/tokens/SOMM.svg | 65 + src/problem2/src/assets/img/tokens/SPEC.svg | 4 + src/problem2/src/assets/img/tokens/SRM.svg | 20 + src/problem2/src/assets/img/tokens/SRV.svg | 5 + src/problem2/src/assets/img/tokens/STARS.svg | 16 + src/problem2/src/assets/img/tokens/STATOM.svg | 22 + src/problem2/src/assets/img/tokens/STEEM.svg | 6 + .../src/assets/img/tokens/STEVMOS.svg | 16 + src/problem2/src/assets/img/tokens/STLUNA.svg | 9 + src/problem2/src/assets/img/tokens/STMX.svg | 4 + src/problem2/src/assets/img/tokens/STORJ.svg | 13 + src/problem2/src/assets/img/tokens/STOSMO.svg | 16 + src/problem2/src/assets/img/tokens/STRAX.svg | 12 + src/problem2/src/assets/img/tokens/STRD.svg | 4 + src/problem2/src/assets/img/tokens/STREAM.svg | 4 + src/problem2/src/assets/img/tokens/STRK.svg | 13 + src/problem2/src/assets/img/tokens/STT.svg | 4 + src/problem2/src/assets/img/tokens/STX.svg | 4 + src/problem2/src/assets/img/tokens/SUSHI.svg | 26 + src/problem2/src/assets/img/tokens/SWTH.svg | 71 + src/problem2/src/assets/img/tokens/SXP.svg | 10 + src/problem2/src/assets/img/tokens/TEL.svg | 4 + src/problem2/src/assets/img/tokens/TFUEL.svg | 11 + src/problem2/src/assets/img/tokens/THETA.svg | 13 + src/problem2/src/assets/img/tokens/THT.svg | 68 + src/problem2/src/assets/img/tokens/TIA.svg | 11 + src/problem2/src/assets/img/tokens/TICK.svg | 17 + src/problem2/src/assets/img/tokens/TITAN.svg | 11 + src/problem2/src/assets/img/tokens/TLAND.svg | 5 + src/problem2/src/assets/img/tokens/TLM.svg | 16 + src/problem2/src/assets/img/tokens/TOMO.svg | 6 + src/problem2/src/assets/img/tokens/TON.svg | 11 + src/problem2/src/assets/img/tokens/TPC.svg | 17 + src/problem2/src/assets/img/tokens/TRAXX.svg | 14 + src/problem2/src/assets/img/tokens/TRB.svg | 11 + src/problem2/src/assets/img/tokens/TRU.svg | 6 + src/problem2/src/assets/img/tokens/TRX.svg | 4 + src/problem2/src/assets/img/tokens/TTT.svg | 6 + src/problem2/src/assets/img/tokens/TUSD.svg | 6 + src/problem2/src/assets/img/tokens/TWD.svg | 18 + src/problem2/src/assets/img/tokens/TWT.svg | 77 + src/problem2/src/assets/img/tokens/Token.svg | 15 + src/problem2/src/assets/img/tokens/UBQ.svg | 7 + src/problem2/src/assets/img/tokens/UMEE.svg | 39 + src/problem2/src/assets/img/tokens/UNA.svg | 7 + src/problem2/src/assets/img/tokens/UNI.svg | 12 + src/problem2/src/assets/img/tokens/UOS.svg | 5 + src/problem2/src/assets/img/tokens/USC.svg | 37 + src/problem2/src/assets/img/tokens/USD.svg | 8 + src/problem2/src/assets/img/tokens/USDC.svg | 6 + src/problem2/src/assets/img/tokens/USDP.svg | 12 + src/problem2/src/assets/img/tokens/USDT.svg | 5 + src/problem2/src/assets/img/tokens/USK.svg | 19 + src/problem2/src/assets/img/tokens/UST.svg | 5 + src/problem2/src/assets/img/tokens/VDL.svg | 6 + src/problem2/src/assets/img/tokens/VET.svg | 4 + src/problem2/src/assets/img/tokens/VKR.svg | 4 + src/problem2/src/assets/img/tokens/VRTX.svg | 22 + src/problem2/src/assets/img/tokens/W.svg | 30 + src/problem2/src/assets/img/tokens/WAVE.svg | 4 + src/problem2/src/assets/img/tokens/WBNB.svg | 4 + src/problem2/src/assets/img/tokens/WBTC.svg | 9 + src/problem2/src/assets/img/tokens/WETH.svg | 16 + src/problem2/src/assets/img/tokens/WHALE.svg | 10 + src/problem2/src/assets/img/tokens/WIF.svg | 23 + src/problem2/src/assets/img/tokens/WIN.svg | 5 + src/problem2/src/assets/img/tokens/WLD.svg | 11 + src/problem2/src/assets/img/tokens/WMATIC.svg | 6 + src/problem2/src/assets/img/tokens/WRX.svg | 7 + src/problem2/src/assets/img/tokens/XCAD.svg | 12 + src/problem2/src/assets/img/tokens/XDC.svg | 6 + src/problem2/src/assets/img/tokens/XEM.svg | 4 + src/problem2/src/assets/img/tokens/XKI.svg | 5 + src/problem2/src/assets/img/tokens/XLM.svg | 5 + src/problem2/src/assets/img/tokens/XMR.svg | 5 + src/problem2/src/assets/img/tokens/XPRT.svg | 5 + src/problem2/src/assets/img/tokens/XRP.svg | 4 + src/problem2/src/assets/img/tokens/XSGD.svg | 11 + src/problem2/src/assets/img/tokens/XTRA.svg | 9 + src/problem2/src/assets/img/tokens/XTZ.svg | 4 + src/problem2/src/assets/img/tokens/XVG.svg | 4 + src/problem2/src/assets/img/tokens/XVS.svg | 11 + src/problem2/src/assets/img/tokens/YAM.svg | 47 + src/problem2/src/assets/img/tokens/YFI.svg | 6 + .../src/assets/img/tokens/YieldUSD.svg | 17 + src/problem2/src/assets/img/tokens/ZCH.svg | 6 + src/problem2/src/assets/img/tokens/ZEC.svg | 10 + src/problem2/src/assets/img/tokens/ZEN.svg | 20 + src/problem2/src/assets/img/tokens/ZIL.svg | 7 + src/problem2/src/assets/img/tokens/ZRO.svg | 12 + src/problem2/src/assets/img/tokens/ZRX.svg | 7 + src/problem2/src/assets/img/tokens/ZWAP.svg | 5 + .../src/assets/img/tokens/ampKUJI.svg | 12 + .../src/assets/img/tokens/ampLUNA.svg | 15 + .../src/assets/img/tokens/axlUSDC.svg | 6 + src/problem2/src/assets/img/tokens/bCFX.svg | 5 + src/problem2/src/assets/img/tokens/bNEO.svg | 12 + src/problem2/src/assets/img/tokens/cGLP.svg | 23 + src/problem2/src/assets/img/tokens/cUSD.svg | 84 + src/problem2/src/assets/img/tokens/dINJ.svg | 20 + src/problem2/src/assets/img/tokens/dXCAD.svg | 13 + src/problem2/src/assets/img/tokens/eGLD.svg | 36 + src/problem2/src/assets/img/tokens/ePLAY.svg | 23 + src/problem2/src/assets/img/tokens/esFLUO.svg | 18 + src/problem2/src/assets/img/tokens/gZIL.svg | 12 + src/problem2/src/assets/img/tokens/iSEI.svg | 10 + src/problem2/src/assets/img/tokens/iUSD.svg | 5 + .../src/assets/img/tokens/milkTIA.svg | 18 + src/problem2/src/assets/img/tokens/nNEO.svg | 6 + src/problem2/src/assets/img/tokens/rSWTH.svg | 88 + src/problem2/src/assets/img/tokens/sARCH.svg | 11 + src/problem2/src/assets/img/tokens/stDYDX.svg | 6 + src/problem2/src/assets/img/tokens/stDYM.svg | 11 + src/problem2/src/assets/img/tokens/stETH.svg | 18 + src/problem2/src/assets/img/tokens/stFLUO.svg | 18 + src/problem2/src/assets/img/tokens/stIBCX.svg | 4 + src/problem2/src/assets/img/tokens/stINJ.svg | 4 + src/problem2/src/assets/img/tokens/stJUNO.svg | 5 + src/problem2/src/assets/img/tokens/stOKT.svg | 8 + .../src/assets/img/tokens/stSTARS.svg | 5 + src/problem2/src/assets/img/tokens/stTIA.svg | 4 + src/problem2/src/assets/img/tokens/stZIL.svg | 8 + .../src/assets/img/tokens/stkATOM.svg | 20 + .../src/assets/img/tokens/stkDYDX.svg | 22 + src/problem2/src/assets/img/tokens/vZWAP.svg | 12 + src/problem2/src/assets/img/tokens/veFLUO.svg | 18 + src/problem2/src/assets/img/tokens/wKAS.svg | 5 + src/problem2/src/assets/img/tokens/wstETH.svg | 11 + src/problem2/src/components/Button/Button.tsx | 77 + .../ConfirmSwapModal.styled.ts | 69 + .../ConfirmSwapModal/ConfirmSwapModal.tsx | 95 + .../src/components/Loading/Loading.tsx | 30 + .../SelectTokenModal.styled.ts | 120 ++ .../SelectTokensModal/SelectTokensModal.tsx | 86 + .../SwapSection/SwapSection.styled.ts | 94 + .../components/SwapSection/SwapSection.tsx | 93 + .../TokenImage/TokenImage.styled.ts | 8 + .../src/components/TokenImage/TokenImage.tsx | 27 + src/problem2/src/constants/index.ts | 5 + src/problem2/src/enums/index.ts | 10 + src/problem2/src/index.css | 201 ++ src/problem2/src/main.tsx | 10 + .../src/pages/SwapPage/SwapPage.styled.ts | 57 + src/problem2/src/pages/SwapPage/SwapPage.tsx | 314 +++ src/problem2/src/styles/Flex.styled.ts | 28 + src/problem2/src/types/index.ts | 7 + src/problem2/src/utils/delay.ts | 5 + .../src/utils/generateImportImages.js | 33 + src/problem2/src/vite-env.d.ts | 1 + src/problem2/style.css | 8 - src/problem2/tsconfig.json | 25 + src/problem2/tsconfig.node.json | 11 + src/problem2/vite.config.ts | 7 + src/problem2/yarn.lock | 1834 +++++++++++++++++ src/problem3/.keep | 0 src/problem3/Example.tsx | 97 + src/problem3/RefactorVersion.tsx | 136 ++ 484 files changed, 14041 insertions(+), 37 deletions(-) delete mode 100644 src/problem1/.keep create mode 100644 src/problem1/index.js create mode 100644 src/problem2/.eslintrc.cjs create mode 100644 src/problem2/.gitignore create mode 100644 src/problem2/README.md create mode 100644 src/problem2/package.json create mode 100644 src/problem2/public/vite.svg delete mode 100644 src/problem2/script.js create mode 100644 src/problem2/src/App.css create mode 100644 src/problem2/src/App.tsx create mode 100644 src/problem2/src/assets/img/icons/arrow-down.svg create mode 100644 src/problem2/src/assets/img/icons/chevron-down-black.svg create mode 100644 src/problem2/src/assets/img/icons/chevron-down-white.svg create mode 100644 src/problem2/src/assets/img/icons/close.svg create mode 100644 src/problem2/src/assets/img/icons/loading.svg create mode 100644 src/problem2/src/assets/img/icons/search.svg create mode 100644 src/problem2/src/assets/img/index.ts create mode 100644 src/problem2/src/assets/img/tokens/AAVE.svg create mode 100644 src/problem2/src/assets/img/tokens/ADA.svg create mode 100644 src/problem2/src/assets/img/tokens/AEVO.svg create mode 100644 src/problem2/src/assets/img/tokens/AGI.svg create mode 100644 src/problem2/src/assets/img/tokens/AKRO.svg create mode 100644 src/problem2/src/assets/img/tokens/AKT.svg create mode 100644 src/problem2/src/assets/img/tokens/ALGO.svg create mode 100644 src/problem2/src/assets/img/tokens/ALPHA.svg create mode 100644 src/problem2/src/assets/img/tokens/ALT.svg create mode 100644 src/problem2/src/assets/img/tokens/AMP.svg create mode 100644 src/problem2/src/assets/img/tokens/ANC.svg create mode 100644 src/problem2/src/assets/img/tokens/ANDR.svg create mode 100644 src/problem2/src/assets/img/tokens/ANKR.svg create mode 100644 src/problem2/src/assets/img/tokens/ANT.svg create mode 100644 src/problem2/src/assets/img/tokens/ANY.svg create mode 100644 src/problem2/src/assets/img/tokens/APE.svg create mode 100644 src/problem2/src/assets/img/tokens/APOLLO.svg create mode 100644 src/problem2/src/assets/img/tokens/AR.svg create mode 100644 src/problem2/src/assets/img/tokens/ARB.svg create mode 100644 src/problem2/src/assets/img/tokens/ARCH.svg create mode 100644 src/problem2/src/assets/img/tokens/ASA.svg create mode 100644 src/problem2/src/assets/img/tokens/ASTRO.svg create mode 100644 src/problem2/src/assets/img/tokens/ATOM.svg create mode 100644 src/problem2/src/assets/img/tokens/AUDIO.svg create mode 100644 src/problem2/src/assets/img/tokens/AUT.svg create mode 100644 src/problem2/src/assets/img/tokens/AVA.svg create mode 100644 src/problem2/src/assets/img/tokens/AVAX.svg create mode 100644 src/problem2/src/assets/img/tokens/AXL.svg create mode 100644 src/problem2/src/assets/img/tokens/AXS.svg create mode 100644 src/problem2/src/assets/img/tokens/AXT.svg create mode 100644 src/problem2/src/assets/img/tokens/BAKE.svg create mode 100644 src/problem2/src/assets/img/tokens/BAL.svg create mode 100644 src/problem2/src/assets/img/tokens/BAND.svg create mode 100644 src/problem2/src/assets/img/tokens/BAT.svg create mode 100644 src/problem2/src/assets/img/tokens/BCD.svg create mode 100644 src/problem2/src/assets/img/tokens/BCH.svg create mode 100644 src/problem2/src/assets/img/tokens/BCHA.svg create mode 100644 src/problem2/src/assets/img/tokens/BCN.svg create mode 100644 src/problem2/src/assets/img/tokens/BCNA.svg create mode 100644 src/problem2/src/assets/img/tokens/BELT.svg create mode 100644 src/problem2/src/assets/img/tokens/BHC.svg create mode 100644 src/problem2/src/assets/img/tokens/BIT.svg create mode 100644 src/problem2/src/assets/img/tokens/BLAST.svg create mode 100644 src/problem2/src/assets/img/tokens/BLD.svg create mode 100644 src/problem2/src/assets/img/tokens/BLOX.svg create mode 100644 src/problem2/src/assets/img/tokens/BLUR.svg create mode 100644 src/problem2/src/assets/img/tokens/BNB.svg create mode 100644 src/problem2/src/assets/img/tokens/BNT.svg create mode 100644 src/problem2/src/assets/img/tokens/BOLT.svg create mode 100644 src/problem2/src/assets/img/tokens/BOOT.svg create mode 100644 src/problem2/src/assets/img/tokens/BRAINS.svg create mode 100644 src/problem2/src/assets/img/tokens/BRKL.svg create mode 100644 src/problem2/src/assets/img/tokens/BTC.svg create mode 100644 src/problem2/src/assets/img/tokens/BTCST.svg create mode 100644 src/problem2/src/assets/img/tokens/BTG.svg create mode 100644 src/problem2/src/assets/img/tokens/BTM.svg create mode 100644 src/problem2/src/assets/img/tokens/BTMX.svg create mode 100644 src/problem2/src/assets/img/tokens/BTSG.svg create mode 100644 src/problem2/src/assets/img/tokens/BTT.svg create mode 100644 src/problem2/src/assets/img/tokens/BUNNY.svg create mode 100644 src/problem2/src/assets/img/tokens/BUSD.svg create mode 100644 src/problem2/src/assets/img/tokens/BUSDT.svg create mode 100644 src/problem2/src/assets/img/tokens/C98.svg create mode 100644 src/problem2/src/assets/img/tokens/CAKE.svg create mode 100644 src/problem2/src/assets/img/tokens/CANTO.svg create mode 100644 src/problem2/src/assets/img/tokens/CARB.svg create mode 100644 src/problem2/src/assets/img/tokens/CAT.svg create mode 100644 src/problem2/src/assets/img/tokens/CEL.svg create mode 100644 src/problem2/src/assets/img/tokens/CELO.svg create mode 100644 src/problem2/src/assets/img/tokens/CETH.svg create mode 100644 src/problem2/src/assets/img/tokens/CFX.svg create mode 100644 src/problem2/src/assets/img/tokens/CGAS.svg create mode 100644 src/problem2/src/assets/img/tokens/CHEQ.svg create mode 100644 src/problem2/src/assets/img/tokens/CHSB.svg create mode 100644 src/problem2/src/assets/img/tokens/CHT.svg create mode 100644 src/problem2/src/assets/img/tokens/CHZ.svg create mode 100644 src/problem2/src/assets/img/tokens/CKB.svg create mode 100644 src/problem2/src/assets/img/tokens/CLP.svg create mode 100644 src/problem2/src/assets/img/tokens/CMDX.svg create mode 100644 src/problem2/src/assets/img/tokens/CMST.svg create mode 100644 src/problem2/src/assets/img/tokens/CNT.svg create mode 100644 src/problem2/src/assets/img/tokens/COIN.svg create mode 100644 src/problem2/src/assets/img/tokens/COMP.svg create mode 100644 src/problem2/src/assets/img/tokens/CRBRUS.svg create mode 100644 src/problem2/src/assets/img/tokens/CRE.svg create mode 100644 src/problem2/src/assets/img/tokens/CRO.svg create mode 100644 src/problem2/src/assets/img/tokens/CRV.svg create mode 100644 src/problem2/src/assets/img/tokens/CTK.svg create mode 100644 src/problem2/src/assets/img/tokens/CW.svg create mode 100644 src/problem2/src/assets/img/tokens/DAG.svg create mode 100644 src/problem2/src/assets/img/tokens/DAI.svg create mode 100644 src/problem2/src/assets/img/tokens/DARC.svg create mode 100644 src/problem2/src/assets/img/tokens/DASH.svg create mode 100644 src/problem2/src/assets/img/tokens/DBC.svg create mode 100644 src/problem2/src/assets/img/tokens/DCR.svg create mode 100644 src/problem2/src/assets/img/tokens/DEC.svg create mode 100644 src/problem2/src/assets/img/tokens/DENT.svg create mode 100644 src/problem2/src/assets/img/tokens/DGB.svg create mode 100644 src/problem2/src/assets/img/tokens/DIG.svg create mode 100644 src/problem2/src/assets/img/tokens/DKT.svg create mode 100644 src/problem2/src/assets/img/tokens/DODO.svg create mode 100644 src/problem2/src/assets/img/tokens/DOGE.svg create mode 100644 src/problem2/src/assets/img/tokens/DOT.svg create mode 100644 src/problem2/src/assets/img/tokens/DPX.svg create mode 100644 src/problem2/src/assets/img/tokens/DRFT.svg create mode 100644 src/problem2/src/assets/img/tokens/DSM.svg create mode 100644 src/problem2/src/assets/img/tokens/DVPN.svg create mode 100644 src/problem2/src/assets/img/tokens/DYDX.svg create mode 100644 src/problem2/src/assets/img/tokens/DYM.svg create mode 100644 src/problem2/src/assets/img/tokens/EEUR.svg create mode 100644 src/problem2/src/assets/img/tokens/ELA.svg create mode 100644 src/problem2/src/assets/img/tokens/ELF.svg create mode 100644 src/problem2/src/assets/img/tokens/ENJ.svg create mode 100644 src/problem2/src/assets/img/tokens/ENS.svg create mode 100644 src/problem2/src/assets/img/tokens/EOS.svg create mode 100644 src/problem2/src/assets/img/tokens/EPS.svg create mode 100644 src/problem2/src/assets/img/tokens/ETC.svg create mode 100644 src/problem2/src/assets/img/tokens/ETH.svg create mode 100644 src/problem2/src/assets/img/tokens/ETN.svg create mode 100644 src/problem2/src/assets/img/tokens/EUROC.svg create mode 100644 src/problem2/src/assets/img/tokens/EUT.svg create mode 100644 src/problem2/src/assets/img/tokens/EVMOS.svg create mode 100644 src/problem2/src/assets/img/tokens/EWT.svg create mode 100644 src/problem2/src/assets/img/tokens/FEES.svg create mode 100644 src/problem2/src/assets/img/tokens/FET.svg create mode 100644 src/problem2/src/assets/img/tokens/FIL.svg create mode 100644 src/problem2/src/assets/img/tokens/FIS.svg create mode 100644 src/problem2/src/assets/img/tokens/FLIX.svg create mode 100644 src/problem2/src/assets/img/tokens/FLM.svg create mode 100644 src/problem2/src/assets/img/tokens/FLOW.svg create mode 100644 src/problem2/src/assets/img/tokens/FLUID.svg create mode 100644 src/problem2/src/assets/img/tokens/FLUO.svg create mode 100644 src/problem2/src/assets/img/tokens/FRANK.svg create mode 100644 src/problem2/src/assets/img/tokens/FTM.svg create mode 100644 src/problem2/src/assets/img/tokens/FTT.svg create mode 100644 src/problem2/src/assets/img/tokens/FTTC.svg create mode 100644 src/problem2/src/assets/img/tokens/FUN.svg create mode 100644 src/problem2/src/assets/img/tokens/GALA.svg create mode 100644 src/problem2/src/assets/img/tokens/GAS.svg create mode 100644 src/problem2/src/assets/img/tokens/GBT.svg create mode 100644 src/problem2/src/assets/img/tokens/GLP.svg create mode 100644 src/problem2/src/assets/img/tokens/GM.svg create mode 100644 src/problem2/src/assets/img/tokens/GMX.svg create mode 100644 src/problem2/src/assets/img/tokens/GNO.svg create mode 100644 src/problem2/src/assets/img/tokens/GNS.svg create mode 100644 src/problem2/src/assets/img/tokens/GRAV.svg create mode 100644 src/problem2/src/assets/img/tokens/GRT.svg create mode 100644 src/problem2/src/assets/img/tokens/GT.svg create mode 100644 src/problem2/src/assets/img/tokens/HBAR.svg create mode 100644 src/problem2/src/assets/img/tokens/HDN.svg create mode 100644 src/problem2/src/assets/img/tokens/HELMET.svg create mode 100644 src/problem2/src/assets/img/tokens/HKT.svg create mode 100644 src/problem2/src/assets/img/tokens/HNT.svg create mode 100644 src/problem2/src/assets/img/tokens/HOPE.svg create mode 100644 src/problem2/src/assets/img/tokens/HOT.svg create mode 100644 src/problem2/src/assets/img/tokens/HT.svg create mode 100644 src/problem2/src/assets/img/tokens/HUAHUA.svg create mode 100644 src/problem2/src/assets/img/tokens/HUNY.svg create mode 100644 src/problem2/src/assets/img/tokens/HUSD.svg create mode 100644 src/problem2/src/assets/img/tokens/IBCX.svg create mode 100644 src/problem2/src/assets/img/tokens/ICP.svg create mode 100644 src/problem2/src/assets/img/tokens/ICX.svg create mode 100644 src/problem2/src/assets/img/tokens/IDT.svg create mode 100644 src/problem2/src/assets/img/tokens/INJ.svg create mode 100644 src/problem2/src/assets/img/tokens/INT.svg create mode 100644 src/problem2/src/assets/img/tokens/ION.svg create mode 100644 src/problem2/src/assets/img/tokens/IOST.svg create mode 100644 src/problem2/src/assets/img/tokens/IOTX.svg create mode 100644 src/problem2/src/assets/img/tokens/IOV.svg create mode 100644 src/problem2/src/assets/img/tokens/IRIS.svg create mode 100644 src/problem2/src/assets/img/tokens/IXO.svg create mode 100644 src/problem2/src/assets/img/tokens/JPT.svg create mode 100644 src/problem2/src/assets/img/tokens/JTO.svg create mode 100644 src/problem2/src/assets/img/tokens/JUNO.svg create mode 100644 src/problem2/src/assets/img/tokens/JUP.svg create mode 100644 src/problem2/src/assets/img/tokens/KAS.svg create mode 100644 src/problem2/src/assets/img/tokens/KCS.svg create mode 100644 src/problem2/src/assets/img/tokens/KFLOKI.svg create mode 100644 src/problem2/src/assets/img/tokens/KLAY.svg create mode 100644 src/problem2/src/assets/img/tokens/KMD.svg create mode 100644 src/problem2/src/assets/img/tokens/KNC.svg create mode 100644 src/problem2/src/assets/img/tokens/KPEPE.svg create mode 100644 src/problem2/src/assets/img/tokens/KRT.svg create mode 100644 src/problem2/src/assets/img/tokens/KSM.svg create mode 100644 src/problem2/src/assets/img/tokens/KUJI.svg create mode 100644 src/problem2/src/assets/img/tokens/LDO.svg create mode 100644 src/problem2/src/assets/img/tokens/LEO.svg create mode 100644 src/problem2/src/assets/img/tokens/LET.svg create mode 100644 src/problem2/src/assets/img/tokens/LIKE.svg create mode 100644 src/problem2/src/assets/img/tokens/LINK.svg create mode 100644 src/problem2/src/assets/img/tokens/LKT.svg create mode 100644 src/problem2/src/assets/img/tokens/LOOM.svg create mode 100644 src/problem2/src/assets/img/tokens/LOOP.svg create mode 100644 src/problem2/src/assets/img/tokens/LOTA.svg create mode 100644 src/problem2/src/assets/img/tokens/LPT.svg create mode 100644 src/problem2/src/assets/img/tokens/LRC.svg create mode 100644 src/problem2/src/assets/img/tokens/LSI.svg create mode 100644 src/problem2/src/assets/img/tokens/LSK.svg create mode 100644 src/problem2/src/assets/img/tokens/LTC.svg create mode 100644 src/problem2/src/assets/img/tokens/LUM.svg create mode 100644 src/problem2/src/assets/img/tokens/LUNA.svg create mode 100644 src/problem2/src/assets/img/tokens/LUNAX.svg create mode 100644 src/problem2/src/assets/img/tokens/LUNC.svg create mode 100644 src/problem2/src/assets/img/tokens/LUNI.svg create mode 100644 src/problem2/src/assets/img/tokens/LUNR.svg create mode 100644 src/problem2/src/assets/img/tokens/LUV.svg create mode 100644 src/problem2/src/assets/img/tokens/M87.svg create mode 100644 src/problem2/src/assets/img/tokens/MANA.svg create mode 100644 src/problem2/src/assets/img/tokens/MANTA.svg create mode 100644 src/problem2/src/assets/img/tokens/MARBLE.svg create mode 100644 src/problem2/src/assets/img/tokens/MATH.svg create mode 100644 src/problem2/src/assets/img/tokens/MATIC.svg create mode 100644 src/problem2/src/assets/img/tokens/MDX.svg create mode 100644 src/problem2/src/assets/img/tokens/MED.svg create mode 100644 src/problem2/src/assets/img/tokens/MEME.svg create mode 100644 src/problem2/src/assets/img/tokens/METIS.svg create mode 100644 src/problem2/src/assets/img/tokens/MIAW.svg create mode 100644 src/problem2/src/assets/img/tokens/MINA.svg create mode 100644 src/problem2/src/assets/img/tokens/MINE.svg create mode 100644 src/problem2/src/assets/img/tokens/MIOTA.svg create mode 100644 src/problem2/src/assets/img/tokens/MIR.svg create mode 100644 src/problem2/src/assets/img/tokens/MKR.svg create mode 100644 src/problem2/src/assets/img/tokens/MNT.svg create mode 100644 src/problem2/src/assets/img/tokens/MNTA.svg create mode 100644 src/problem2/src/assets/img/tokens/MNTL.svg create mode 100644 src/problem2/src/assets/img/tokens/MYT.svg create mode 100644 src/problem2/src/assets/img/tokens/NANO.svg create mode 100644 src/problem2/src/assets/img/tokens/NAS.svg create mode 100644 src/problem2/src/assets/img/tokens/NEAR.svg create mode 100644 src/problem2/src/assets/img/tokens/NEO.svg create mode 100644 src/problem2/src/assets/img/tokens/NETA.svg create mode 100644 src/problem2/src/assets/img/tokens/NEX.svg create mode 100644 src/problem2/src/assets/img/tokens/NEXO.svg create mode 100644 src/problem2/src/assets/img/tokens/NGM.svg create mode 100644 src/problem2/src/assets/img/tokens/NKN.svg create mode 100644 src/problem2/src/assets/img/tokens/NMR.svg create mode 100644 src/problem2/src/assets/img/tokens/NOT.svg create mode 100644 src/problem2/src/assets/img/tokens/NOTE.svg create mode 100644 src/problem2/src/assets/img/tokens/NPXS.svg create mode 100644 src/problem2/src/assets/img/tokens/NTRN.svg create mode 100644 src/problem2/src/assets/img/tokens/NXM.svg create mode 100644 src/problem2/src/assets/img/tokens/OCEAN.svg create mode 100644 src/problem2/src/assets/img/tokens/OCH.svg create mode 100644 src/problem2/src/assets/img/tokens/OGN.svg create mode 100644 src/problem2/src/assets/img/tokens/OKB.svg create mode 100644 src/problem2/src/assets/img/tokens/OKT.svg create mode 100644 src/problem2/src/assets/img/tokens/OMG.svg create mode 100644 src/problem2/src/assets/img/tokens/OMG_2.svg create mode 100644 src/problem2/src/assets/img/tokens/OMI.svg create mode 100644 src/problem2/src/assets/img/tokens/ONE.svg create mode 100644 src/problem2/src/assets/img/tokens/ONT.svg create mode 100644 src/problem2/src/assets/img/tokens/OP.svg create mode 100644 src/problem2/src/assets/img/tokens/OPUL.svg create mode 100644 src/problem2/src/assets/img/tokens/ORDI.svg create mode 100644 src/problem2/src/assets/img/tokens/ORION.svg create mode 100644 src/problem2/src/assets/img/tokens/ORNE.svg create mode 100644 src/problem2/src/assets/img/tokens/OSMO.svg create mode 100644 src/problem2/src/assets/img/tokens/OXT.svg create mode 100644 src/problem2/src/assets/img/tokens/OXY.svg create mode 100644 src/problem2/src/assets/img/tokens/PAX.svg create mode 100644 src/problem2/src/assets/img/tokens/PEPE.svg create mode 100644 src/problem2/src/assets/img/tokens/PHT.svg create mode 100644 src/problem2/src/assets/img/tokens/PLAY.svg create mode 100644 src/problem2/src/assets/img/tokens/PLQ.svg create mode 100644 src/problem2/src/assets/img/tokens/PLY.svg create mode 100644 src/problem2/src/assets/img/tokens/POLY.svg create mode 100644 src/problem2/src/assets/img/tokens/PORT.svg create mode 100644 src/problem2/src/assets/img/tokens/PROM.svg create mode 100644 src/problem2/src/assets/img/tokens/PSI.svg create mode 100644 src/problem2/src/assets/img/tokens/PSTAKE.svg create mode 100644 src/problem2/src/assets/img/tokens/PYTH.svg create mode 100644 src/problem2/src/assets/img/tokens/QCK.svg create mode 100644 src/problem2/src/assets/img/tokens/QKC.svg create mode 100644 src/problem2/src/assets/img/tokens/QNT.svg create mode 100644 src/problem2/src/assets/img/tokens/QTUM.svg create mode 100644 src/problem2/src/assets/img/tokens/RATOM.svg create mode 100644 src/problem2/src/assets/img/tokens/RAY.svg create mode 100644 src/problem2/src/assets/img/tokens/RBN.svg create mode 100644 src/problem2/src/assets/img/tokens/REEF.svg create mode 100644 src/problem2/src/assets/img/tokens/REGEN.svg create mode 100644 src/problem2/src/assets/img/tokens/REN.svg create mode 100644 src/problem2/src/assets/img/tokens/REP.svg create mode 100644 src/problem2/src/assets/img/tokens/REV.svg create mode 100644 src/problem2/src/assets/img/tokens/RLB.svg create mode 100644 src/problem2/src/assets/img/tokens/RLC.svg create mode 100644 src/problem2/src/assets/img/tokens/RNDR.svg create mode 100644 src/problem2/src/assets/img/tokens/ROAR.svg create mode 100644 src/problem2/src/assets/img/tokens/ROWAN.svg create mode 100644 src/problem2/src/assets/img/tokens/RSR.svg create mode 100644 src/problem2/src/assets/img/tokens/RUNE.svg create mode 100644 src/problem2/src/assets/img/tokens/RVN.svg create mode 100644 src/problem2/src/assets/img/tokens/SAFEMOON.svg create mode 100644 src/problem2/src/assets/img/tokens/SAND.svg create mode 100644 src/problem2/src/assets/img/tokens/SAYVE.svg create mode 100644 src/problem2/src/assets/img/tokens/SC.svg create mode 100644 src/problem2/src/assets/img/tokens/SCRT.svg create mode 100644 src/problem2/src/assets/img/tokens/SDT.svg create mode 100644 src/problem2/src/assets/img/tokens/SEI.svg create mode 100644 src/problem2/src/assets/img/tokens/SET.svg create mode 100644 src/problem2/src/assets/img/tokens/SGT.svg create mode 100644 src/problem2/src/assets/img/tokens/SHD.svg create mode 100644 src/problem2/src/assets/img/tokens/SHIB.svg create mode 100644 src/problem2/src/assets/img/tokens/SITY.svg create mode 100644 src/problem2/src/assets/img/tokens/SLERF.svg create mode 100644 src/problem2/src/assets/img/tokens/SNT.svg create mode 100644 src/problem2/src/assets/img/tokens/SNX.svg create mode 100644 src/problem2/src/assets/img/tokens/SOL.svg create mode 100644 src/problem2/src/assets/img/tokens/SOM.svg create mode 100644 src/problem2/src/assets/img/tokens/SOMM.svg create mode 100644 src/problem2/src/assets/img/tokens/SPEC.svg create mode 100644 src/problem2/src/assets/img/tokens/SRM.svg create mode 100644 src/problem2/src/assets/img/tokens/SRV.svg create mode 100644 src/problem2/src/assets/img/tokens/STARS.svg create mode 100644 src/problem2/src/assets/img/tokens/STATOM.svg create mode 100644 src/problem2/src/assets/img/tokens/STEEM.svg create mode 100644 src/problem2/src/assets/img/tokens/STEVMOS.svg create mode 100644 src/problem2/src/assets/img/tokens/STLUNA.svg create mode 100644 src/problem2/src/assets/img/tokens/STMX.svg create mode 100644 src/problem2/src/assets/img/tokens/STORJ.svg create mode 100644 src/problem2/src/assets/img/tokens/STOSMO.svg create mode 100644 src/problem2/src/assets/img/tokens/STRAX.svg create mode 100644 src/problem2/src/assets/img/tokens/STRD.svg create mode 100644 src/problem2/src/assets/img/tokens/STREAM.svg create mode 100644 src/problem2/src/assets/img/tokens/STRK.svg create mode 100644 src/problem2/src/assets/img/tokens/STT.svg create mode 100644 src/problem2/src/assets/img/tokens/STX.svg create mode 100644 src/problem2/src/assets/img/tokens/SUSHI.svg create mode 100644 src/problem2/src/assets/img/tokens/SWTH.svg create mode 100644 src/problem2/src/assets/img/tokens/SXP.svg create mode 100644 src/problem2/src/assets/img/tokens/TEL.svg create mode 100644 src/problem2/src/assets/img/tokens/TFUEL.svg create mode 100644 src/problem2/src/assets/img/tokens/THETA.svg create mode 100644 src/problem2/src/assets/img/tokens/THT.svg create mode 100644 src/problem2/src/assets/img/tokens/TIA.svg create mode 100644 src/problem2/src/assets/img/tokens/TICK.svg create mode 100644 src/problem2/src/assets/img/tokens/TITAN.svg create mode 100644 src/problem2/src/assets/img/tokens/TLAND.svg create mode 100644 src/problem2/src/assets/img/tokens/TLM.svg create mode 100644 src/problem2/src/assets/img/tokens/TOMO.svg create mode 100644 src/problem2/src/assets/img/tokens/TON.svg create mode 100644 src/problem2/src/assets/img/tokens/TPC.svg create mode 100644 src/problem2/src/assets/img/tokens/TRAXX.svg create mode 100644 src/problem2/src/assets/img/tokens/TRB.svg create mode 100644 src/problem2/src/assets/img/tokens/TRU.svg create mode 100644 src/problem2/src/assets/img/tokens/TRX.svg create mode 100644 src/problem2/src/assets/img/tokens/TTT.svg create mode 100644 src/problem2/src/assets/img/tokens/TUSD.svg create mode 100644 src/problem2/src/assets/img/tokens/TWD.svg create mode 100644 src/problem2/src/assets/img/tokens/TWT.svg create mode 100644 src/problem2/src/assets/img/tokens/Token.svg create mode 100644 src/problem2/src/assets/img/tokens/UBQ.svg create mode 100644 src/problem2/src/assets/img/tokens/UMEE.svg create mode 100644 src/problem2/src/assets/img/tokens/UNA.svg create mode 100644 src/problem2/src/assets/img/tokens/UNI.svg create mode 100644 src/problem2/src/assets/img/tokens/UOS.svg create mode 100644 src/problem2/src/assets/img/tokens/USC.svg create mode 100644 src/problem2/src/assets/img/tokens/USD.svg create mode 100644 src/problem2/src/assets/img/tokens/USDC.svg create mode 100644 src/problem2/src/assets/img/tokens/USDP.svg create mode 100644 src/problem2/src/assets/img/tokens/USDT.svg create mode 100644 src/problem2/src/assets/img/tokens/USK.svg create mode 100644 src/problem2/src/assets/img/tokens/UST.svg create mode 100644 src/problem2/src/assets/img/tokens/VDL.svg create mode 100644 src/problem2/src/assets/img/tokens/VET.svg create mode 100644 src/problem2/src/assets/img/tokens/VKR.svg create mode 100644 src/problem2/src/assets/img/tokens/VRTX.svg create mode 100644 src/problem2/src/assets/img/tokens/W.svg create mode 100644 src/problem2/src/assets/img/tokens/WAVE.svg create mode 100644 src/problem2/src/assets/img/tokens/WBNB.svg create mode 100644 src/problem2/src/assets/img/tokens/WBTC.svg create mode 100644 src/problem2/src/assets/img/tokens/WETH.svg create mode 100644 src/problem2/src/assets/img/tokens/WHALE.svg create mode 100644 src/problem2/src/assets/img/tokens/WIF.svg create mode 100644 src/problem2/src/assets/img/tokens/WIN.svg create mode 100644 src/problem2/src/assets/img/tokens/WLD.svg create mode 100644 src/problem2/src/assets/img/tokens/WMATIC.svg create mode 100644 src/problem2/src/assets/img/tokens/WRX.svg create mode 100644 src/problem2/src/assets/img/tokens/XCAD.svg create mode 100644 src/problem2/src/assets/img/tokens/XDC.svg create mode 100644 src/problem2/src/assets/img/tokens/XEM.svg create mode 100644 src/problem2/src/assets/img/tokens/XKI.svg create mode 100644 src/problem2/src/assets/img/tokens/XLM.svg create mode 100644 src/problem2/src/assets/img/tokens/XMR.svg create mode 100644 src/problem2/src/assets/img/tokens/XPRT.svg create mode 100644 src/problem2/src/assets/img/tokens/XRP.svg create mode 100644 src/problem2/src/assets/img/tokens/XSGD.svg create mode 100644 src/problem2/src/assets/img/tokens/XTRA.svg create mode 100644 src/problem2/src/assets/img/tokens/XTZ.svg create mode 100644 src/problem2/src/assets/img/tokens/XVG.svg create mode 100644 src/problem2/src/assets/img/tokens/XVS.svg create mode 100644 src/problem2/src/assets/img/tokens/YAM.svg create mode 100644 src/problem2/src/assets/img/tokens/YFI.svg create mode 100644 src/problem2/src/assets/img/tokens/YieldUSD.svg create mode 100644 src/problem2/src/assets/img/tokens/ZCH.svg create mode 100644 src/problem2/src/assets/img/tokens/ZEC.svg create mode 100644 src/problem2/src/assets/img/tokens/ZEN.svg create mode 100644 src/problem2/src/assets/img/tokens/ZIL.svg create mode 100644 src/problem2/src/assets/img/tokens/ZRO.svg create mode 100644 src/problem2/src/assets/img/tokens/ZRX.svg create mode 100644 src/problem2/src/assets/img/tokens/ZWAP.svg create mode 100644 src/problem2/src/assets/img/tokens/ampKUJI.svg create mode 100644 src/problem2/src/assets/img/tokens/ampLUNA.svg create mode 100644 src/problem2/src/assets/img/tokens/axlUSDC.svg create mode 100644 src/problem2/src/assets/img/tokens/bCFX.svg create mode 100644 src/problem2/src/assets/img/tokens/bNEO.svg create mode 100644 src/problem2/src/assets/img/tokens/cGLP.svg create mode 100644 src/problem2/src/assets/img/tokens/cUSD.svg create mode 100644 src/problem2/src/assets/img/tokens/dINJ.svg create mode 100644 src/problem2/src/assets/img/tokens/dXCAD.svg create mode 100644 src/problem2/src/assets/img/tokens/eGLD.svg create mode 100644 src/problem2/src/assets/img/tokens/ePLAY.svg create mode 100644 src/problem2/src/assets/img/tokens/esFLUO.svg create mode 100644 src/problem2/src/assets/img/tokens/gZIL.svg create mode 100644 src/problem2/src/assets/img/tokens/iSEI.svg create mode 100644 src/problem2/src/assets/img/tokens/iUSD.svg create mode 100644 src/problem2/src/assets/img/tokens/milkTIA.svg create mode 100644 src/problem2/src/assets/img/tokens/nNEO.svg create mode 100644 src/problem2/src/assets/img/tokens/rSWTH.svg create mode 100644 src/problem2/src/assets/img/tokens/sARCH.svg create mode 100644 src/problem2/src/assets/img/tokens/stDYDX.svg create mode 100644 src/problem2/src/assets/img/tokens/stDYM.svg create mode 100644 src/problem2/src/assets/img/tokens/stETH.svg create mode 100644 src/problem2/src/assets/img/tokens/stFLUO.svg create mode 100644 src/problem2/src/assets/img/tokens/stIBCX.svg create mode 100644 src/problem2/src/assets/img/tokens/stINJ.svg create mode 100644 src/problem2/src/assets/img/tokens/stJUNO.svg create mode 100644 src/problem2/src/assets/img/tokens/stOKT.svg create mode 100644 src/problem2/src/assets/img/tokens/stSTARS.svg create mode 100644 src/problem2/src/assets/img/tokens/stTIA.svg create mode 100644 src/problem2/src/assets/img/tokens/stZIL.svg create mode 100644 src/problem2/src/assets/img/tokens/stkATOM.svg create mode 100644 src/problem2/src/assets/img/tokens/stkDYDX.svg create mode 100644 src/problem2/src/assets/img/tokens/vZWAP.svg create mode 100644 src/problem2/src/assets/img/tokens/veFLUO.svg create mode 100644 src/problem2/src/assets/img/tokens/wKAS.svg create mode 100644 src/problem2/src/assets/img/tokens/wstETH.svg create mode 100644 src/problem2/src/components/Button/Button.tsx create mode 100644 src/problem2/src/components/ConfirmSwapModal/ConfirmSwapModal.styled.ts create mode 100644 src/problem2/src/components/ConfirmSwapModal/ConfirmSwapModal.tsx create mode 100644 src/problem2/src/components/Loading/Loading.tsx create mode 100644 src/problem2/src/components/SelectTokensModal/SelectTokenModal.styled.ts create mode 100644 src/problem2/src/components/SelectTokensModal/SelectTokensModal.tsx create mode 100644 src/problem2/src/components/SwapSection/SwapSection.styled.ts create mode 100644 src/problem2/src/components/SwapSection/SwapSection.tsx create mode 100644 src/problem2/src/components/TokenImage/TokenImage.styled.ts create mode 100644 src/problem2/src/components/TokenImage/TokenImage.tsx create mode 100644 src/problem2/src/constants/index.ts create mode 100644 src/problem2/src/enums/index.ts create mode 100644 src/problem2/src/index.css create mode 100644 src/problem2/src/main.tsx create mode 100644 src/problem2/src/pages/SwapPage/SwapPage.styled.ts create mode 100644 src/problem2/src/pages/SwapPage/SwapPage.tsx create mode 100644 src/problem2/src/styles/Flex.styled.ts create mode 100644 src/problem2/src/types/index.ts create mode 100644 src/problem2/src/utils/delay.ts create mode 100644 src/problem2/src/utils/generateImportImages.js create mode 100644 src/problem2/src/vite-env.d.ts delete mode 100644 src/problem2/style.css create mode 100644 src/problem2/tsconfig.json create mode 100644 src/problem2/tsconfig.node.json create mode 100644 src/problem2/vite.config.ts create mode 100644 src/problem2/yarn.lock delete mode 100644 src/problem3/.keep create mode 100644 src/problem3/Example.tsx create mode 100644 src/problem3/RefactorVersion.tsx diff --git a/readme.md b/readme.md index 1ff4bc95b4..6e7fc4fcf7 100644 --- a/readme.md +++ b/readme.md @@ -1,10 +1,11 @@ -# 99Tech Code Challenge #1 # +# 99Tech Code Challenge #1 Note that if you fork this repository, your responses may be publicly linked to this repo. -Please submit your application along with the solutions attached or linked. +Please submit your application along with the solutions attached or linked. It is important that you minimally attempt the problems, even if you do not arrive at a working solution. -## Submission ## +## Submission + You can either provide a link to an online repository, attach the solution in your application, or whichever method you prefer. We're cool as long as we can view your solution without any pain. diff --git a/src/problem1/.keep b/src/problem1/.keep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/problem1/index.js b/src/problem1/index.js new file mode 100644 index 0000000000..f4a51f4dce --- /dev/null +++ b/src/problem1/index.js @@ -0,0 +1,28 @@ +// Implementation 1: Iterative +// This implementation uses a simple iterative loop to calculate the summation. +function sum_to_n_a(n) { + let sum = 0; + + for (let i = 1; i <= n; i++) { + sum += i; + } + + return sum; +} + +// Implementation 2: Recursive +// This implementation uses recursion to calculate the summation. +//Warning: When n is large, this implementation may cause a stack overflow error due to the large number of recursive calls. +function sum_to_n_b(n) { + if (n === 1) { + return 1; + } else { + return n + sum_to_n_b(n - 1); + } +} + +// Implementation 3: Formula +// This implementation utilizes the formula for the summation of the first N natural numbers, which is n * (n + 1) / 2. +function sum_to_n_c(n) { + return (n * (n + 1)) / 2; +} diff --git a/src/problem2/.eslintrc.cjs b/src/problem2/.eslintrc.cjs new file mode 100644 index 0000000000..d6c9537953 --- /dev/null +++ b/src/problem2/.eslintrc.cjs @@ -0,0 +1,18 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parser: '@typescript-eslint/parser', + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, +} diff --git a/src/problem2/.gitignore b/src/problem2/.gitignore new file mode 100644 index 0000000000..a547bf36d8 --- /dev/null +++ b/src/problem2/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/src/problem2/README.md b/src/problem2/README.md new file mode 100644 index 0000000000..0d6babeddb --- /dev/null +++ b/src/problem2/README.md @@ -0,0 +1,30 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default { + // other rules... + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + project: ['./tsconfig.json', './tsconfig.node.json'], + tsconfigRootDir: __dirname, + }, +} +``` + +- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` +- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list diff --git a/src/problem2/index.html b/src/problem2/index.html index 4058a68bff..81aefabd38 100644 --- a/src/problem2/index.html +++ b/src/problem2/index.html @@ -1,27 +1,13 @@ - - - - - Fancy Form - - - - - - - - -
-
Swap
- - - - - - - -
- - - + + + + + + + Vite + React + TS + + +
+ + diff --git a/src/problem2/package.json b/src/problem2/package.json new file mode 100644 index 0000000000..9cd28b0ce3 --- /dev/null +++ b/src/problem2/package.json @@ -0,0 +1,32 @@ +{ + "name": "problem2", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview", + "generateImageObject": "node src/utils/generateImportImages.js" + }, + "dependencies": { + "axios": "^1.6.8", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "styled-components": "^6.1.8" + }, + "devDependencies": { + "@types/node": "^20.12.2", + "@types/react": "^18.2.66", + "@types/react-dom": "^18.2.22", + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", + "@vitejs/plugin-react": "^4.2.1", + "eslint": "^8.57.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.6", + "typescript": "^5.2.2", + "vite": "^5.2.0" + } +} diff --git a/src/problem2/public/vite.svg b/src/problem2/public/vite.svg new file mode 100644 index 0000000000..e7b8dfb1b2 --- /dev/null +++ b/src/problem2/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/script.js b/src/problem2/script.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/problem2/src/App.css b/src/problem2/src/App.css new file mode 100644 index 0000000000..79fb1bf3b1 --- /dev/null +++ b/src/problem2/src/App.css @@ -0,0 +1,38 @@ +#root { +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/src/problem2/src/App.tsx b/src/problem2/src/App.tsx new file mode 100644 index 0000000000..a4947052c5 --- /dev/null +++ b/src/problem2/src/App.tsx @@ -0,0 +1,8 @@ +import "./App.css"; +import SwapPage from "./pages/SwapPage/SwapPage"; + +function App() { + return ; +} + +export default App; diff --git a/src/problem2/src/assets/img/icons/arrow-down.svg b/src/problem2/src/assets/img/icons/arrow-down.svg new file mode 100644 index 0000000000..d9bbc8aab5 --- /dev/null +++ b/src/problem2/src/assets/img/icons/arrow-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/problem2/src/assets/img/icons/chevron-down-black.svg b/src/problem2/src/assets/img/icons/chevron-down-black.svg new file mode 100644 index 0000000000..a36139bef5 --- /dev/null +++ b/src/problem2/src/assets/img/icons/chevron-down-black.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/problem2/src/assets/img/icons/chevron-down-white.svg b/src/problem2/src/assets/img/icons/chevron-down-white.svg new file mode 100644 index 0000000000..bb74535f66 --- /dev/null +++ b/src/problem2/src/assets/img/icons/chevron-down-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/problem2/src/assets/img/icons/close.svg b/src/problem2/src/assets/img/icons/close.svg new file mode 100644 index 0000000000..4416cc46ee --- /dev/null +++ b/src/problem2/src/assets/img/icons/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/problem2/src/assets/img/icons/loading.svg b/src/problem2/src/assets/img/icons/loading.svg new file mode 100644 index 0000000000..cb71211aef --- /dev/null +++ b/src/problem2/src/assets/img/icons/loading.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/icons/search.svg b/src/problem2/src/assets/img/icons/search.svg new file mode 100644 index 0000000000..cfe5976671 --- /dev/null +++ b/src/problem2/src/assets/img/icons/search.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/problem2/src/assets/img/index.ts b/src/problem2/src/assets/img/index.ts new file mode 100644 index 0000000000..e3cab805b2 --- /dev/null +++ b/src/problem2/src/assets/img/index.ts @@ -0,0 +1,871 @@ +import AAVE from './tokens/AAVE.svg'; +import ADA from './tokens/ADA.svg'; +import AEVO from './tokens/AEVO.svg'; +import AGI from './tokens/AGI.svg'; +import AKRO from './tokens/AKRO.svg'; +import AKT from './tokens/AKT.svg'; +import ALGO from './tokens/ALGO.svg'; +import ALPHA from './tokens/ALPHA.svg'; +import ALT from './tokens/ALT.svg'; +import AMP from './tokens/AMP.svg'; +import ANC from './tokens/ANC.svg'; +import ANDR from './tokens/ANDR.svg'; +import ANKR from './tokens/ANKR.svg'; +import ANT from './tokens/ANT.svg'; +import ANY from './tokens/ANY.svg'; +import APE from './tokens/APE.svg'; +import APOLLO from './tokens/APOLLO.svg'; +import AR from './tokens/AR.svg'; +import ARB from './tokens/ARB.svg'; +import ARCH from './tokens/ARCH.svg'; +import ASA from './tokens/ASA.svg'; +import ASTRO from './tokens/ASTRO.svg'; +import ATOM from './tokens/ATOM.svg'; +import AUDIO from './tokens/AUDIO.svg'; +import AUT from './tokens/AUT.svg'; +import AVA from './tokens/AVA.svg'; +import AVAX from './tokens/AVAX.svg'; +import AXL from './tokens/AXL.svg'; +import AXS from './tokens/AXS.svg'; +import AXT from './tokens/AXT.svg'; +import BAKE from './tokens/BAKE.svg'; +import BAL from './tokens/BAL.svg'; +import BAND from './tokens/BAND.svg'; +import BAT from './tokens/BAT.svg'; +import BCD from './tokens/BCD.svg'; +import BCH from './tokens/BCH.svg'; +import BCHA from './tokens/BCHA.svg'; +import BCN from './tokens/BCN.svg'; +import BCNA from './tokens/BCNA.svg'; +import BELT from './tokens/BELT.svg'; +import BHC from './tokens/BHC.svg'; +import BIT from './tokens/BIT.svg'; +import BLAST from './tokens/BLAST.svg'; +import BLD from './tokens/BLD.svg'; +import BLOX from './tokens/BLOX.svg'; +import BLUR from './tokens/BLUR.svg'; +import BNB from './tokens/BNB.svg'; +import BNT from './tokens/BNT.svg'; +import BOLT from './tokens/BOLT.svg'; +import BOOT from './tokens/BOOT.svg'; +import BRAINS from './tokens/BRAINS.svg'; +import BRKL from './tokens/BRKL.svg'; +import BTC from './tokens/BTC.svg'; +import BTCST from './tokens/BTCST.svg'; +import BTG from './tokens/BTG.svg'; +import BTM from './tokens/BTM.svg'; +import BTMX from './tokens/BTMX.svg'; +import BTSG from './tokens/BTSG.svg'; +import BTT from './tokens/BTT.svg'; +import BUNNY from './tokens/BUNNY.svg'; +import BUSD from './tokens/BUSD.svg'; +import BUSDT from './tokens/BUSDT.svg'; +import C98 from './tokens/C98.svg'; +import CAKE from './tokens/CAKE.svg'; +import CANTO from './tokens/CANTO.svg'; +import CARB from './tokens/CARB.svg'; +import CAT from './tokens/CAT.svg'; +import CEL from './tokens/CEL.svg'; +import CELO from './tokens/CELO.svg'; +import CETH from './tokens/CETH.svg'; +import CFX from './tokens/CFX.svg'; +import CGAS from './tokens/CGAS.svg'; +import CHEQ from './tokens/CHEQ.svg'; +import CHSB from './tokens/CHSB.svg'; +import CHT from './tokens/CHT.svg'; +import CHZ from './tokens/CHZ.svg'; +import CKB from './tokens/CKB.svg'; +import CLP from './tokens/CLP.svg'; +import CMDX from './tokens/CMDX.svg'; +import CMST from './tokens/CMST.svg'; +import CNT from './tokens/CNT.svg'; +import COIN from './tokens/COIN.svg'; +import COMP from './tokens/COMP.svg'; +import CRBRUS from './tokens/CRBRUS.svg'; +import CRE from './tokens/CRE.svg'; +import CRO from './tokens/CRO.svg'; +import CRV from './tokens/CRV.svg'; +import CTK from './tokens/CTK.svg'; +import CW from './tokens/CW.svg'; +import DAG from './tokens/DAG.svg'; +import DAI from './tokens/DAI.svg'; +import DARC from './tokens/DARC.svg'; +import DASH from './tokens/DASH.svg'; +import DBC from './tokens/DBC.svg'; +import DCR from './tokens/DCR.svg'; +import DEC from './tokens/DEC.svg'; +import DENT from './tokens/DENT.svg'; +import DGB from './tokens/DGB.svg'; +import DIG from './tokens/DIG.svg'; +import DKT from './tokens/DKT.svg'; +import DODO from './tokens/DODO.svg'; +import DOGE from './tokens/DOGE.svg'; +import DOT from './tokens/DOT.svg'; +import DPX from './tokens/DPX.svg'; +import DRFT from './tokens/DRFT.svg'; +import DSM from './tokens/DSM.svg'; +import DVPN from './tokens/DVPN.svg'; +import DYDX from './tokens/DYDX.svg'; +import DYM from './tokens/DYM.svg'; +import EEUR from './tokens/EEUR.svg'; +import ELA from './tokens/ELA.svg'; +import ELF from './tokens/ELF.svg'; +import ENJ from './tokens/ENJ.svg'; +import ENS from './tokens/ENS.svg'; +import EOS from './tokens/EOS.svg'; +import EPS from './tokens/EPS.svg'; +import ETC from './tokens/ETC.svg'; +import ETH from './tokens/ETH.svg'; +import ETN from './tokens/ETN.svg'; +import EUROC from './tokens/EUROC.svg'; +import EUT from './tokens/EUT.svg'; +import EVMOS from './tokens/EVMOS.svg'; +import EWT from './tokens/EWT.svg'; +import FEES from './tokens/FEES.svg'; +import FET from './tokens/FET.svg'; +import FIL from './tokens/FIL.svg'; +import FIS from './tokens/FIS.svg'; +import FLIX from './tokens/FLIX.svg'; +import FLM from './tokens/FLM.svg'; +import FLOW from './tokens/FLOW.svg'; +import FLUID from './tokens/FLUID.svg'; +import FLUO from './tokens/FLUO.svg'; +import FRANK from './tokens/FRANK.svg'; +import FTM from './tokens/FTM.svg'; +import FTT from './tokens/FTT.svg'; +import FTTC from './tokens/FTTC.svg'; +import FUN from './tokens/FUN.svg'; +import GALA from './tokens/GALA.svg'; +import GAS from './tokens/GAS.svg'; +import GBT from './tokens/GBT.svg'; +import GLP from './tokens/GLP.svg'; +import GM from './tokens/GM.svg'; +import GMX from './tokens/GMX.svg'; +import GNO from './tokens/GNO.svg'; +import GNS from './tokens/GNS.svg'; +import GRAV from './tokens/GRAV.svg'; +import GRT from './tokens/GRT.svg'; +import GT from './tokens/GT.svg'; +import HBAR from './tokens/HBAR.svg'; +import HDN from './tokens/HDN.svg'; +import HELMET from './tokens/HELMET.svg'; +import HKT from './tokens/HKT.svg'; +import HNT from './tokens/HNT.svg'; +import HOPE from './tokens/HOPE.svg'; +import HOT from './tokens/HOT.svg'; +import HT from './tokens/HT.svg'; +import HUAHUA from './tokens/HUAHUA.svg'; +import HUNY from './tokens/HUNY.svg'; +import HUSD from './tokens/HUSD.svg'; +import IBCX from './tokens/IBCX.svg'; +import ICP from './tokens/ICP.svg'; +import ICX from './tokens/ICX.svg'; +import IDT from './tokens/IDT.svg'; +import INJ from './tokens/INJ.svg'; +import INT from './tokens/INT.svg'; +import ION from './tokens/ION.svg'; +import IOST from './tokens/IOST.svg'; +import IOTX from './tokens/IOTX.svg'; +import IOV from './tokens/IOV.svg'; +import IRIS from './tokens/IRIS.svg'; +import IXO from './tokens/IXO.svg'; +import JPT from './tokens/JPT.svg'; +import JTO from './tokens/JTO.svg'; +import JUNO from './tokens/JUNO.svg'; +import JUP from './tokens/JUP.svg'; +import KAS from './tokens/KAS.svg'; +import KCS from './tokens/KCS.svg'; +import KFLOKI from './tokens/KFLOKI.svg'; +import KLAY from './tokens/KLAY.svg'; +import KMD from './tokens/KMD.svg'; +import KNC from './tokens/KNC.svg'; +import KPEPE from './tokens/KPEPE.svg'; +import KRT from './tokens/KRT.svg'; +import KSM from './tokens/KSM.svg'; +import KUJI from './tokens/KUJI.svg'; +import LDO from './tokens/LDO.svg'; +import LEO from './tokens/LEO.svg'; +import LET from './tokens/LET.svg'; +import LIKE from './tokens/LIKE.svg'; +import LINK from './tokens/LINK.svg'; +import LKT from './tokens/LKT.svg'; +import LOOM from './tokens/LOOM.svg'; +import LOOP from './tokens/LOOP.svg'; +import LOTA from './tokens/LOTA.svg'; +import LPT from './tokens/LPT.svg'; +import LRC from './tokens/LRC.svg'; +import LSI from './tokens/LSI.svg'; +import LSK from './tokens/LSK.svg'; +import LTC from './tokens/LTC.svg'; +import LUM from './tokens/LUM.svg'; +import LUNA from './tokens/LUNA.svg'; +import LUNAX from './tokens/LUNAX.svg'; +import LUNC from './tokens/LUNC.svg'; +import LUNI from './tokens/LUNI.svg'; +import LUNR from './tokens/LUNR.svg'; +import LUV from './tokens/LUV.svg'; +import M87 from './tokens/M87.svg'; +import MANA from './tokens/MANA.svg'; +import MANTA from './tokens/MANTA.svg'; +import MARBLE from './tokens/MARBLE.svg'; +import MATH from './tokens/MATH.svg'; +import MATIC from './tokens/MATIC.svg'; +import MDX from './tokens/MDX.svg'; +import MED from './tokens/MED.svg'; +import MEME from './tokens/MEME.svg'; +import METIS from './tokens/METIS.svg'; +import MIAW from './tokens/MIAW.svg'; +import MINA from './tokens/MINA.svg'; +import MINE from './tokens/MINE.svg'; +import MIOTA from './tokens/MIOTA.svg'; +import MIR from './tokens/MIR.svg'; +import MKR from './tokens/MKR.svg'; +import MNT from './tokens/MNT.svg'; +import MNTA from './tokens/MNTA.svg'; +import MNTL from './tokens/MNTL.svg'; +import MYT from './tokens/MYT.svg'; +import NANO from './tokens/NANO.svg'; +import NAS from './tokens/NAS.svg'; +import NEAR from './tokens/NEAR.svg'; +import NEO from './tokens/NEO.svg'; +import NETA from './tokens/NETA.svg'; +import NEX from './tokens/NEX.svg'; +import NEXO from './tokens/NEXO.svg'; +import NGM from './tokens/NGM.svg'; +import NKN from './tokens/NKN.svg'; +import NMR from './tokens/NMR.svg'; +import NOT from './tokens/NOT.svg'; +import NOTE from './tokens/NOTE.svg'; +import NPXS from './tokens/NPXS.svg'; +import NTRN from './tokens/NTRN.svg'; +import NXM from './tokens/NXM.svg'; +import OCEAN from './tokens/OCEAN.svg'; +import OCH from './tokens/OCH.svg'; +import OGN from './tokens/OGN.svg'; +import OKB from './tokens/OKB.svg'; +import OKT from './tokens/OKT.svg'; +import OMG from './tokens/OMG.svg'; +import OMG_2 from './tokens/OMG_2.svg'; +import OMI from './tokens/OMI.svg'; +import ONE from './tokens/ONE.svg'; +import ONT from './tokens/ONT.svg'; +import OP from './tokens/OP.svg'; +import OPUL from './tokens/OPUL.svg'; +import ORDI from './tokens/ORDI.svg'; +import ORION from './tokens/ORION.svg'; +import ORNE from './tokens/ORNE.svg'; +import OSMO from './tokens/OSMO.svg'; +import OXT from './tokens/OXT.svg'; +import OXY from './tokens/OXY.svg'; +import PAX from './tokens/PAX.svg'; +import PEPE from './tokens/PEPE.svg'; +import PHT from './tokens/PHT.svg'; +import PLAY from './tokens/PLAY.svg'; +import PLQ from './tokens/PLQ.svg'; +import PLY from './tokens/PLY.svg'; +import POLY from './tokens/POLY.svg'; +import PORT from './tokens/PORT.svg'; +import PROM from './tokens/PROM.svg'; +import PSI from './tokens/PSI.svg'; +import PSTAKE from './tokens/PSTAKE.svg'; +import PYTH from './tokens/PYTH.svg'; +import QCK from './tokens/QCK.svg'; +import QKC from './tokens/QKC.svg'; +import QNT from './tokens/QNT.svg'; +import QTUM from './tokens/QTUM.svg'; +import RATOM from './tokens/RATOM.svg'; +import RAY from './tokens/RAY.svg'; +import RBN from './tokens/RBN.svg'; +import REEF from './tokens/REEF.svg'; +import REGEN from './tokens/REGEN.svg'; +import REN from './tokens/REN.svg'; +import REP from './tokens/REP.svg'; +import REV from './tokens/REV.svg'; +import RLB from './tokens/RLB.svg'; +import RLC from './tokens/RLC.svg'; +import RNDR from './tokens/RNDR.svg'; +import ROAR from './tokens/ROAR.svg'; +import ROWAN from './tokens/ROWAN.svg'; +import RSR from './tokens/RSR.svg'; +import RUNE from './tokens/RUNE.svg'; +import RVN from './tokens/RVN.svg'; +import SAFEMOON from './tokens/SAFEMOON.svg'; +import SAND from './tokens/SAND.svg'; +import SAYVE from './tokens/SAYVE.svg'; +import SC from './tokens/SC.svg'; +import SCRT from './tokens/SCRT.svg'; +import SDT from './tokens/SDT.svg'; +import SEI from './tokens/SEI.svg'; +import SET from './tokens/SET.svg'; +import SGT from './tokens/SGT.svg'; +import SHD from './tokens/SHD.svg'; +import SHIB from './tokens/SHIB.svg'; +import SITY from './tokens/SITY.svg'; +import SLERF from './tokens/SLERF.svg'; +import SNT from './tokens/SNT.svg'; +import SNX from './tokens/SNX.svg'; +import SOL from './tokens/SOL.svg'; +import SOM from './tokens/SOM.svg'; +import SOMM from './tokens/SOMM.svg'; +import SPEC from './tokens/SPEC.svg'; +import SRM from './tokens/SRM.svg'; +import SRV from './tokens/SRV.svg'; +import STARS from './tokens/STARS.svg'; +import STATOM from './tokens/STATOM.svg'; +import STEEM from './tokens/STEEM.svg'; +import STEVMOS from './tokens/STEVMOS.svg'; +import STLUNA from './tokens/STLUNA.svg'; +import STMX from './tokens/STMX.svg'; +import STORJ from './tokens/STORJ.svg'; +import STOSMO from './tokens/STOSMO.svg'; +import STRAX from './tokens/STRAX.svg'; +import STRD from './tokens/STRD.svg'; +import STREAM from './tokens/STREAM.svg'; +import STRK from './tokens/STRK.svg'; +import STT from './tokens/STT.svg'; +import STX from './tokens/STX.svg'; +import SUSHI from './tokens/SUSHI.svg'; +import SWTH from './tokens/SWTH.svg'; +import SXP from './tokens/SXP.svg'; +import TEL from './tokens/TEL.svg'; +import TFUEL from './tokens/TFUEL.svg'; +import THETA from './tokens/THETA.svg'; +import THT from './tokens/THT.svg'; +import TIA from './tokens/TIA.svg'; +import TICK from './tokens/TICK.svg'; +import TITAN from './tokens/TITAN.svg'; +import TLAND from './tokens/TLAND.svg'; +import TLM from './tokens/TLM.svg'; +import TOMO from './tokens/TOMO.svg'; +import TON from './tokens/TON.svg'; +import TPC from './tokens/TPC.svg'; +import TRAXX from './tokens/TRAXX.svg'; +import TRB from './tokens/TRB.svg'; +import TRU from './tokens/TRU.svg'; +import TRX from './tokens/TRX.svg'; +import TTT from './tokens/TTT.svg'; +import TUSD from './tokens/TUSD.svg'; +import TWD from './tokens/TWD.svg'; +import TWT from './tokens/TWT.svg'; +import Token from './tokens/Token.svg'; +import UBQ from './tokens/UBQ.svg'; +import UMEE from './tokens/UMEE.svg'; +import UNA from './tokens/UNA.svg'; +import UNI from './tokens/UNI.svg'; +import UOS from './tokens/UOS.svg'; +import USC from './tokens/USC.svg'; +import USD from './tokens/USD.svg'; +import USDC from './tokens/USDC.svg'; +import USDP from './tokens/USDP.svg'; +import USDT from './tokens/USDT.svg'; +import USK from './tokens/USK.svg'; +import UST from './tokens/UST.svg'; +import VDL from './tokens/VDL.svg'; +import VET from './tokens/VET.svg'; +import VKR from './tokens/VKR.svg'; +import VRTX from './tokens/VRTX.svg'; +import W from './tokens/W.svg'; +import WAVE from './tokens/WAVE.svg'; +import WBNB from './tokens/WBNB.svg'; +import WBTC from './tokens/WBTC.svg'; +import WETH from './tokens/WETH.svg'; +import WHALE from './tokens/WHALE.svg'; +import WIF from './tokens/WIF.svg'; +import WIN from './tokens/WIN.svg'; +import WLD from './tokens/WLD.svg'; +import WMATIC from './tokens/WMATIC.svg'; +import WRX from './tokens/WRX.svg'; +import XCAD from './tokens/XCAD.svg'; +import XDC from './tokens/XDC.svg'; +import XEM from './tokens/XEM.svg'; +import XKI from './tokens/XKI.svg'; +import XLM from './tokens/XLM.svg'; +import XMR from './tokens/XMR.svg'; +import XPRT from './tokens/XPRT.svg'; +import XRP from './tokens/XRP.svg'; +import XSGD from './tokens/XSGD.svg'; +import XTRA from './tokens/XTRA.svg'; +import XTZ from './tokens/XTZ.svg'; +import XVG from './tokens/XVG.svg'; +import XVS from './tokens/XVS.svg'; +import YAM from './tokens/YAM.svg'; +import YFI from './tokens/YFI.svg'; +import YieldUSD from './tokens/YieldUSD.svg'; +import ZCH from './tokens/ZCH.svg'; +import ZEC from './tokens/ZEC.svg'; +import ZEN from './tokens/ZEN.svg'; +import ZIL from './tokens/ZIL.svg'; +import ZRO from './tokens/ZRO.svg'; +import ZRX from './tokens/ZRX.svg'; +import ZWAP from './tokens/ZWAP.svg'; +import ampKUJI from './tokens/ampKUJI.svg'; +import ampLUNA from './tokens/ampLUNA.svg'; +import axlUSDC from './tokens/axlUSDC.svg'; +import bCFX from './tokens/bCFX.svg'; +import bNEO from './tokens/bNEO.svg'; +import cGLP from './tokens/cGLP.svg'; +import cUSD from './tokens/cUSD.svg'; +import dINJ from './tokens/dINJ.svg'; +import dXCAD from './tokens/dXCAD.svg'; +import eGLD from './tokens/eGLD.svg'; +import ePLAY from './tokens/ePLAY.svg'; +import esFLUO from './tokens/esFLUO.svg'; +import gZIL from './tokens/gZIL.svg'; +import iSEI from './tokens/iSEI.svg'; +import iUSD from './tokens/iUSD.svg'; +import milkTIA from './tokens/milkTIA.svg'; +import nNEO from './tokens/nNEO.svg'; +import rSWTH from './tokens/rSWTH.svg'; +import sARCH from './tokens/sARCH.svg'; +import stDYDX from './tokens/stDYDX.svg'; +import stDYM from './tokens/stDYM.svg'; +import stETH from './tokens/stETH.svg'; +import stFLUO from './tokens/stFLUO.svg'; +import stIBCX from './tokens/stIBCX.svg'; +import stINJ from './tokens/stINJ.svg'; +import stJUNO from './tokens/stJUNO.svg'; +import stOKT from './tokens/stOKT.svg'; +import stSTARS from './tokens/stSTARS.svg'; +import stTIA from './tokens/stTIA.svg'; +import stZIL from './tokens/stZIL.svg'; +import stkATOM from './tokens/stkATOM.svg'; +import stkDYDX from './tokens/stkDYDX.svg'; +import vZWAP from './tokens/vZWAP.svg'; +import veFLUO from './tokens/veFLUO.svg'; +import wKAS from './tokens/wKAS.svg'; +import wstETH from './tokens/wstETH.svg'; export const images: { [key: string]: string } = { AAVE, +ADA, +AEVO, +AGI, +AKRO, +AKT, +ALGO, +ALPHA, +ALT, +AMP, +ANC, +ANDR, +ANKR, +ANT, +ANY, +APE, +APOLLO, +AR, +ARB, +ARCH, +ASA, +ASTRO, +ATOM, +AUDIO, +AUT, +AVA, +AVAX, +AXL, +AXS, +AXT, +BAKE, +BAL, +BAND, +BAT, +BCD, +BCH, +BCHA, +BCN, +BCNA, +BELT, +BHC, +BIT, +BLAST, +BLD, +BLOX, +BLUR, +BNB, +BNT, +BOLT, +BOOT, +BRAINS, +BRKL, +BTC, +BTCST, +BTG, +BTM, +BTMX, +BTSG, +BTT, +BUNNY, +BUSD, +BUSDT, +C98, +CAKE, +CANTO, +CARB, +CAT, +CEL, +CELO, +CETH, +CFX, +CGAS, +CHEQ, +CHSB, +CHT, +CHZ, +CKB, +CLP, +CMDX, +CMST, +CNT, +COIN, +COMP, +CRBRUS, +CRE, +CRO, +CRV, +CTK, +CW, +DAG, +DAI, +DARC, +DASH, +DBC, +DCR, +DEC, +DENT, +DGB, +DIG, +DKT, +DODO, +DOGE, +DOT, +DPX, +DRFT, +DSM, +DVPN, +DYDX, +DYM, +EEUR, +ELA, +ELF, +ENJ, +ENS, +EOS, +EPS, +ETC, +ETH, +ETN, +EUROC, +EUT, +EVMOS, +EWT, +FEES, +FET, +FIL, +FIS, +FLIX, +FLM, +FLOW, +FLUID, +FLUO, +FRANK, +FTM, +FTT, +FTTC, +FUN, +GALA, +GAS, +GBT, +GLP, +GM, +GMX, +GNO, +GNS, +GRAV, +GRT, +GT, +HBAR, +HDN, +HELMET, +HKT, +HNT, +HOPE, +HOT, +HT, +HUAHUA, +HUNY, +HUSD, +IBCX, +ICP, +ICX, +IDT, +INJ, +INT, +ION, +IOST, +IOTX, +IOV, +IRIS, +IXO, +JPT, +JTO, +JUNO, +JUP, +KAS, +KCS, +KFLOKI, +KLAY, +KMD, +KNC, +KPEPE, +KRT, +KSM, +KUJI, +LDO, +LEO, +LET, +LIKE, +LINK, +LKT, +LOOM, +LOOP, +LOTA, +LPT, +LRC, +LSI, +LSK, +LTC, +LUM, +LUNA, +LUNAX, +LUNC, +LUNI, +LUNR, +LUV, +M87, +MANA, +MANTA, +MARBLE, +MATH, +MATIC, +MDX, +MED, +MEME, +METIS, +MIAW, +MINA, +MINE, +MIOTA, +MIR, +MKR, +MNT, +MNTA, +MNTL, +MYT, +NANO, +NAS, +NEAR, +NEO, +NETA, +NEX, +NEXO, +NGM, +NKN, +NMR, +NOT, +NOTE, +NPXS, +NTRN, +NXM, +OCEAN, +OCH, +OGN, +OKB, +OKT, +OMG, +OMG_2, +OMI, +ONE, +ONT, +OP, +OPUL, +ORDI, +ORION, +ORNE, +OSMO, +OXT, +OXY, +PAX, +PEPE, +PHT, +PLAY, +PLQ, +PLY, +POLY, +PORT, +PROM, +PSI, +PSTAKE, +PYTH, +QCK, +QKC, +QNT, +QTUM, +RATOM, +RAY, +RBN, +REEF, +REGEN, +REN, +REP, +REV, +RLB, +RLC, +RNDR, +ROAR, +ROWAN, +RSR, +RUNE, +RVN, +SAFEMOON, +SAND, +SAYVE, +SC, +SCRT, +SDT, +SEI, +SET, +SGT, +SHD, +SHIB, +SITY, +SLERF, +SNT, +SNX, +SOL, +SOM, +SOMM, +SPEC, +SRM, +SRV, +STARS, +STATOM, +STEEM, +STEVMOS, +STLUNA, +STMX, +STORJ, +STOSMO, +STRAX, +STRD, +STREAM, +STRK, +STT, +STX, +SUSHI, +SWTH, +SXP, +TEL, +TFUEL, +THETA, +THT, +TIA, +TICK, +TITAN, +TLAND, +TLM, +TOMO, +TON, +TPC, +TRAXX, +TRB, +TRU, +TRX, +TTT, +TUSD, +TWD, +TWT, +Token, +UBQ, +UMEE, +UNA, +UNI, +UOS, +USC, +USD, +USDC, +USDP, +USDT, +USK, +UST, +VDL, +VET, +VKR, +VRTX, +W, +WAVE, +WBNB, +WBTC, +WETH, +WHALE, +WIF, +WIN, +WLD, +WMATIC, +WRX, +XCAD, +XDC, +XEM, +XKI, +XLM, +XMR, +XPRT, +XRP, +XSGD, +XTRA, +XTZ, +XVG, +XVS, +YAM, +YFI, +YieldUSD, +ZCH, +ZEC, +ZEN, +ZIL, +ZRO, +ZRX, +ZWAP, +ampKUJI, +ampLUNA, +axlUSDC, +bCFX, +bNEO, +cGLP, +cUSD, +dINJ, +dXCAD, +eGLD, +ePLAY, +esFLUO, +gZIL, +iSEI, +iUSD, +milkTIA, +nNEO, +rSWTH, +sARCH, +stDYDX, +stDYM, +stETH, +stFLUO, +stIBCX, +stINJ, +stJUNO, +stOKT, +stSTARS, +stTIA, +stZIL, +stkATOM, +stkDYDX, +vZWAP, +veFLUO, +wKAS, +wstETH,} \ No newline at end of file diff --git a/src/problem2/src/assets/img/tokens/AAVE.svg b/src/problem2/src/assets/img/tokens/AAVE.svg new file mode 100644 index 0000000000..a5cb956a17 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AAVE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ADA.svg b/src/problem2/src/assets/img/tokens/ADA.svg new file mode 100644 index 0000000000..c57bee9598 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ADA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/AEVO.svg b/src/problem2/src/assets/img/tokens/AEVO.svg new file mode 100644 index 0000000000..26c36a62dd --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AEVO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/AGI.svg b/src/problem2/src/assets/img/tokens/AGI.svg new file mode 100644 index 0000000000..2617764b4c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AGI.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/AKRO.svg b/src/problem2/src/assets/img/tokens/AKRO.svg new file mode 100644 index 0000000000..33501e5c2e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AKRO.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/AKT.svg b/src/problem2/src/assets/img/tokens/AKT.svg new file mode 100644 index 0000000000..a0733cd5e8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AKT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/ALGO.svg b/src/problem2/src/assets/img/tokens/ALGO.svg new file mode 100644 index 0000000000..0c79ab88fd --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ALGO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/ALPHA.svg b/src/problem2/src/assets/img/tokens/ALPHA.svg new file mode 100644 index 0000000000..9d916fb949 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ALPHA.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ALT.svg b/src/problem2/src/assets/img/tokens/ALT.svg new file mode 100644 index 0000000000..fb551dfa7d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ALT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/AMP.svg b/src/problem2/src/assets/img/tokens/AMP.svg new file mode 100644 index 0000000000..71bec9f9b4 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AMP.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/ANC.svg b/src/problem2/src/assets/img/tokens/ANC.svg new file mode 100644 index 0000000000..bd414783cf --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ANC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ANDR.svg b/src/problem2/src/assets/img/tokens/ANDR.svg new file mode 100644 index 0000000000..fc7e23b4ef --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ANDR.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ANKR.svg b/src/problem2/src/assets/img/tokens/ANKR.svg new file mode 100644 index 0000000000..b8599f0165 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ANKR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/ANT.svg b/src/problem2/src/assets/img/tokens/ANT.svg new file mode 100644 index 0000000000..f805ff79f5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ANT.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ANY.svg b/src/problem2/src/assets/img/tokens/ANY.svg new file mode 100644 index 0000000000..c504391175 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ANY.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/APE.svg b/src/problem2/src/assets/img/tokens/APE.svg new file mode 100644 index 0000000000..26ff9cfd4e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/APE.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/APOLLO.svg b/src/problem2/src/assets/img/tokens/APOLLO.svg new file mode 100644 index 0000000000..852aa5cea2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/APOLLO.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/AR.svg b/src/problem2/src/assets/img/tokens/AR.svg new file mode 100644 index 0000000000..5efc91fdb4 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AR.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/ARB.svg b/src/problem2/src/assets/img/tokens/ARB.svg new file mode 100644 index 0000000000..2666c28ab2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ARB.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ARCH.svg b/src/problem2/src/assets/img/tokens/ARCH.svg new file mode 100644 index 0000000000..b6deb843a1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ARCH.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ASA.svg b/src/problem2/src/assets/img/tokens/ASA.svg new file mode 100644 index 0000000000..7023a06245 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ASA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/ASTRO.svg b/src/problem2/src/assets/img/tokens/ASTRO.svg new file mode 100644 index 0000000000..23047ab947 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ASTRO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ATOM.svg b/src/problem2/src/assets/img/tokens/ATOM.svg new file mode 100644 index 0000000000..f3f9d10429 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ATOM.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/AUDIO.svg b/src/problem2/src/assets/img/tokens/AUDIO.svg new file mode 100644 index 0000000000..527d7ae79e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AUDIO.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/AUT.svg b/src/problem2/src/assets/img/tokens/AUT.svg new file mode 100644 index 0000000000..4f442bcfe1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AUT.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/AVA.svg b/src/problem2/src/assets/img/tokens/AVA.svg new file mode 100644 index 0000000000..b88859ee56 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AVA.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/AVAX.svg b/src/problem2/src/assets/img/tokens/AVAX.svg new file mode 100644 index 0000000000..a62f12b076 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AVAX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/AXL.svg b/src/problem2/src/assets/img/tokens/AXL.svg new file mode 100644 index 0000000000..a0d81a72ff --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AXL.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/AXS.svg b/src/problem2/src/assets/img/tokens/AXS.svg new file mode 100644 index 0000000000..ab64a1a097 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AXS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/AXT.svg b/src/problem2/src/assets/img/tokens/AXT.svg new file mode 100644 index 0000000000..a0be2a7e32 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/AXT.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BAKE.svg b/src/problem2/src/assets/img/tokens/BAKE.svg new file mode 100644 index 0000000000..48e18cc4c8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BAKE.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BAL.svg b/src/problem2/src/assets/img/tokens/BAL.svg new file mode 100644 index 0000000000..274d48692b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BAL.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BAND.svg b/src/problem2/src/assets/img/tokens/BAND.svg new file mode 100644 index 0000000000..fe0b053178 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BAND.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BAT.svg b/src/problem2/src/assets/img/tokens/BAT.svg new file mode 100644 index 0000000000..6bea15edba --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BAT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BCD.svg b/src/problem2/src/assets/img/tokens/BCD.svg new file mode 100644 index 0000000000..2eae4d86ac --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BCD.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BCH.svg b/src/problem2/src/assets/img/tokens/BCH.svg new file mode 100644 index 0000000000..c1b2185860 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BCH.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BCHA.svg b/src/problem2/src/assets/img/tokens/BCHA.svg new file mode 100644 index 0000000000..d1c50093bd --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BCHA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/BCN.svg b/src/problem2/src/assets/img/tokens/BCN.svg new file mode 100644 index 0000000000..446afbc222 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BCN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BCNA.svg b/src/problem2/src/assets/img/tokens/BCNA.svg new file mode 100644 index 0000000000..81cb2950dc --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BCNA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BELT.svg b/src/problem2/src/assets/img/tokens/BELT.svg new file mode 100644 index 0000000000..0711b1485c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BELT.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/src/assets/img/tokens/BHC.svg b/src/problem2/src/assets/img/tokens/BHC.svg new file mode 100644 index 0000000000..c1b2185860 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BHC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BIT.svg b/src/problem2/src/assets/img/tokens/BIT.svg new file mode 100644 index 0000000000..123a839eb5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BIT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BLAST.svg b/src/problem2/src/assets/img/tokens/BLAST.svg new file mode 100644 index 0000000000..d931df3f89 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BLAST.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BLD.svg b/src/problem2/src/assets/img/tokens/BLD.svg new file mode 100644 index 0000000000..1674899d4e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BLD.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BLOX.svg b/src/problem2/src/assets/img/tokens/BLOX.svg new file mode 100644 index 0000000000..7a3045c57f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BLOX.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BLUR.svg b/src/problem2/src/assets/img/tokens/BLUR.svg new file mode 100644 index 0000000000..bf1e280984 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BLUR.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BNB.svg b/src/problem2/src/assets/img/tokens/BNB.svg new file mode 100644 index 0000000000..a7c6699768 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BNB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BNT.svg b/src/problem2/src/assets/img/tokens/BNT.svg new file mode 100644 index 0000000000..4c29bec3c9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BOLT.svg b/src/problem2/src/assets/img/tokens/BOLT.svg new file mode 100644 index 0000000000..a74a21608e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BOLT.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BOOT.svg b/src/problem2/src/assets/img/tokens/BOOT.svg new file mode 100644 index 0000000000..2469b80cfd --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BOOT.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BRAINS.svg b/src/problem2/src/assets/img/tokens/BRAINS.svg new file mode 100644 index 0000000000..5c6a1d4184 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BRAINS.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BRKL.svg b/src/problem2/src/assets/img/tokens/BRKL.svg new file mode 100644 index 0000000000..5963d18244 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BRKL.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BTC.svg b/src/problem2/src/assets/img/tokens/BTC.svg new file mode 100644 index 0000000000..cd3b1e78e2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BTC.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/BTCST.svg b/src/problem2/src/assets/img/tokens/BTCST.svg new file mode 100644 index 0000000000..63d5b3c441 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BTCST.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BTG.svg b/src/problem2/src/assets/img/tokens/BTG.svg new file mode 100644 index 0000000000..41629e7d6a --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BTG.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BTM.svg b/src/problem2/src/assets/img/tokens/BTM.svg new file mode 100644 index 0000000000..16fdbdfda4 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BTM.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BTMX.svg b/src/problem2/src/assets/img/tokens/BTMX.svg new file mode 100644 index 0000000000..5e4a26a71e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BTMX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/BTSG.svg b/src/problem2/src/assets/img/tokens/BTSG.svg new file mode 100644 index 0000000000..9b82cf6a0b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BTSG.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BTT.svg b/src/problem2/src/assets/img/tokens/BTT.svg new file mode 100644 index 0000000000..736450a2db --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BTT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BUNNY.svg b/src/problem2/src/assets/img/tokens/BUNNY.svg new file mode 100644 index 0000000000..4bed16291f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BUNNY.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/BUSD.svg b/src/problem2/src/assets/img/tokens/BUSD.svg new file mode 100644 index 0000000000..b992764bd1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BUSD.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/BUSDT.svg b/src/problem2/src/assets/img/tokens/BUSDT.svg new file mode 100644 index 0000000000..a0f22bf490 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/BUSDT.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/src/assets/img/tokens/C98.svg b/src/problem2/src/assets/img/tokens/C98.svg new file mode 100644 index 0000000000..3a0ff2bb70 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/C98.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CAKE.svg b/src/problem2/src/assets/img/tokens/CAKE.svg new file mode 100644 index 0000000000..ce45fbe253 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CAKE.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CANTO.svg b/src/problem2/src/assets/img/tokens/CANTO.svg new file mode 100644 index 0000000000..d2758becf9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CANTO.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CARB.svg b/src/problem2/src/assets/img/tokens/CARB.svg new file mode 100644 index 0000000000..02e14d0bfe --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CARB.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CAT.svg b/src/problem2/src/assets/img/tokens/CAT.svg new file mode 100644 index 0000000000..8f81af95be --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CAT.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CEL.svg b/src/problem2/src/assets/img/tokens/CEL.svg new file mode 100644 index 0000000000..02cfbd269c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CEL.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CELO.svg b/src/problem2/src/assets/img/tokens/CELO.svg new file mode 100644 index 0000000000..5ff3c6c83c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CELO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/CETH.svg b/src/problem2/src/assets/img/tokens/CETH.svg new file mode 100644 index 0000000000..448a94a7a7 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CETH.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CFX.svg b/src/problem2/src/assets/img/tokens/CFX.svg new file mode 100644 index 0000000000..07e8c434db --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CFX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/CGAS.svg b/src/problem2/src/assets/img/tokens/CGAS.svg new file mode 100644 index 0000000000..3c31d75c0c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CGAS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/CHEQ.svg b/src/problem2/src/assets/img/tokens/CHEQ.svg new file mode 100644 index 0000000000..ed1621a482 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CHEQ.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CHSB.svg b/src/problem2/src/assets/img/tokens/CHSB.svg new file mode 100644 index 0000000000..0118cfce5c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CHSB.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CHT.svg b/src/problem2/src/assets/img/tokens/CHT.svg new file mode 100644 index 0000000000..19d6392712 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CHT.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CHZ.svg b/src/problem2/src/assets/img/tokens/CHZ.svg new file mode 100644 index 0000000000..68897c58f1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CHZ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/CKB.svg b/src/problem2/src/assets/img/tokens/CKB.svg new file mode 100644 index 0000000000..888ff3323e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CKB.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/CLP.svg b/src/problem2/src/assets/img/tokens/CLP.svg new file mode 100644 index 0000000000..bb168fcf19 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CLP.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CMDX.svg b/src/problem2/src/assets/img/tokens/CMDX.svg new file mode 100644 index 0000000000..028d44e951 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CMDX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/CMST.svg b/src/problem2/src/assets/img/tokens/CMST.svg new file mode 100644 index 0000000000..cd6cb419eb --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CMST.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CNT.svg b/src/problem2/src/assets/img/tokens/CNT.svg new file mode 100644 index 0000000000..c098860f72 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CNT.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/COIN.svg b/src/problem2/src/assets/img/tokens/COIN.svg new file mode 100644 index 0000000000..098ee36d37 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/COIN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/COMP.svg b/src/problem2/src/assets/img/tokens/COMP.svg new file mode 100644 index 0000000000..563bf3af25 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/COMP.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/CRBRUS.svg b/src/problem2/src/assets/img/tokens/CRBRUS.svg new file mode 100644 index 0000000000..d847b37b3c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CRBRUS.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CRE.svg b/src/problem2/src/assets/img/tokens/CRE.svg new file mode 100644 index 0000000000..4008331be2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CRE.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CRO.svg b/src/problem2/src/assets/img/tokens/CRO.svg new file mode 100644 index 0000000000..75ddad7d51 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CRO.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CRV.svg b/src/problem2/src/assets/img/tokens/CRV.svg new file mode 100644 index 0000000000..f9fa597fac --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CRV.svg @@ -0,0 +1,790 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CTK.svg b/src/problem2/src/assets/img/tokens/CTK.svg new file mode 100644 index 0000000000..96bfa4f618 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CTK.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/CW.svg b/src/problem2/src/assets/img/tokens/CW.svg new file mode 100644 index 0000000000..e0d8eef0af --- /dev/null +++ b/src/problem2/src/assets/img/tokens/CW.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DAG.svg b/src/problem2/src/assets/img/tokens/DAG.svg new file mode 100644 index 0000000000..a06db4c405 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DAG.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DAI.svg b/src/problem2/src/assets/img/tokens/DAI.svg new file mode 100644 index 0000000000..00fdd7ae1b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DAI.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/DARC.svg b/src/problem2/src/assets/img/tokens/DARC.svg new file mode 100644 index 0000000000..8e131ded9b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DARC.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DASH.svg b/src/problem2/src/assets/img/tokens/DASH.svg new file mode 100644 index 0000000000..17e5eb7146 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DASH.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/DBC.svg b/src/problem2/src/assets/img/tokens/DBC.svg new file mode 100644 index 0000000000..91e7b72378 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DBC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/DCR.svg b/src/problem2/src/assets/img/tokens/DCR.svg new file mode 100644 index 0000000000..d97040bcfe --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DCR.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DEC.svg b/src/problem2/src/assets/img/tokens/DEC.svg new file mode 100644 index 0000000000..025f6329b0 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DEC.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DENT.svg b/src/problem2/src/assets/img/tokens/DENT.svg new file mode 100644 index 0000000000..10035d5a1a --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DENT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DGB.svg b/src/problem2/src/assets/img/tokens/DGB.svg new file mode 100644 index 0000000000..ecf85eb29f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DGB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/DIG.svg b/src/problem2/src/assets/img/tokens/DIG.svg new file mode 100644 index 0000000000..b75f6740df --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DIG.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DKT.svg b/src/problem2/src/assets/img/tokens/DKT.svg new file mode 100644 index 0000000000..8d1d5a5604 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DKT.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DODO.svg b/src/problem2/src/assets/img/tokens/DODO.svg new file mode 100644 index 0000000000..514dd23b5e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DODO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DOGE.svg b/src/problem2/src/assets/img/tokens/DOGE.svg new file mode 100644 index 0000000000..f019ca4b5e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DOGE.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DOT.svg b/src/problem2/src/assets/img/tokens/DOT.svg new file mode 100644 index 0000000000..db6de54b24 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DOT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/DPX.svg b/src/problem2/src/assets/img/tokens/DPX.svg new file mode 100644 index 0000000000..d96e812979 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DPX.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DRFT.svg b/src/problem2/src/assets/img/tokens/DRFT.svg new file mode 100644 index 0000000000..3f64fd9620 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DRFT.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DSM.svg b/src/problem2/src/assets/img/tokens/DSM.svg new file mode 100644 index 0000000000..b305f5f5ea --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DSM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/DVPN.svg b/src/problem2/src/assets/img/tokens/DVPN.svg new file mode 100644 index 0000000000..cb35dbc086 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DVPN.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/DYDX.svg b/src/problem2/src/assets/img/tokens/DYDX.svg new file mode 100644 index 0000000000..7977307c0f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DYDX.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/DYM.svg b/src/problem2/src/assets/img/tokens/DYM.svg new file mode 100644 index 0000000000..e696de4fd5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/DYM.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/EEUR.svg b/src/problem2/src/assets/img/tokens/EEUR.svg new file mode 100644 index 0000000000..25f940a5b3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/EEUR.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ELA.svg b/src/problem2/src/assets/img/tokens/ELA.svg new file mode 100644 index 0000000000..7612168452 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ELA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/ELF.svg b/src/problem2/src/assets/img/tokens/ELF.svg new file mode 100644 index 0000000000..fd3bc6cfe8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ELF.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/ENJ.svg b/src/problem2/src/assets/img/tokens/ENJ.svg new file mode 100644 index 0000000000..7b832779f7 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ENJ.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ENS.svg b/src/problem2/src/assets/img/tokens/ENS.svg new file mode 100644 index 0000000000..94d385bc10 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ENS.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/EOS.svg b/src/problem2/src/assets/img/tokens/EOS.svg new file mode 100644 index 0000000000..61de71db6d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/EOS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/EPS.svg b/src/problem2/src/assets/img/tokens/EPS.svg new file mode 100644 index 0000000000..ef8bb614e1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/EPS.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ETC.svg b/src/problem2/src/assets/img/tokens/ETC.svg new file mode 100644 index 0000000000..7b3e8b3869 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ETC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ETH.svg b/src/problem2/src/assets/img/tokens/ETH.svg new file mode 100644 index 0000000000..6a7cd5afc4 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ETH.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ETN.svg b/src/problem2/src/assets/img/tokens/ETN.svg new file mode 100644 index 0000000000..a13bc14247 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ETN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/EUROC.svg b/src/problem2/src/assets/img/tokens/EUROC.svg new file mode 100644 index 0000000000..81134495c6 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/EUROC.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/EUT.svg b/src/problem2/src/assets/img/tokens/EUT.svg new file mode 100644 index 0000000000..56c4d324a5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/EUT.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/EVMOS.svg b/src/problem2/src/assets/img/tokens/EVMOS.svg new file mode 100644 index 0000000000..8d0b90acb4 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/EVMOS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/EWT.svg b/src/problem2/src/assets/img/tokens/EWT.svg new file mode 100644 index 0000000000..db6e0ec632 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/EWT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/FEES.svg b/src/problem2/src/assets/img/tokens/FEES.svg new file mode 100644 index 0000000000..f31a2e1f85 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FEES.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FET.svg b/src/problem2/src/assets/img/tokens/FET.svg new file mode 100644 index 0000000000..20b53be3d1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FET.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FIL.svg b/src/problem2/src/assets/img/tokens/FIL.svg new file mode 100644 index 0000000000..a875441006 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FIL.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/FIS.svg b/src/problem2/src/assets/img/tokens/FIS.svg new file mode 100644 index 0000000000..ae28f926c9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FIS.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FLIX.svg b/src/problem2/src/assets/img/tokens/FLIX.svg new file mode 100644 index 0000000000..962e47fb2d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FLIX.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FLM.svg b/src/problem2/src/assets/img/tokens/FLM.svg new file mode 100644 index 0000000000..73ba619981 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FLM.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FLOW.svg b/src/problem2/src/assets/img/tokens/FLOW.svg new file mode 100644 index 0000000000..7cf7e32db2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FLOW.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/FLUID.svg b/src/problem2/src/assets/img/tokens/FLUID.svg new file mode 100644 index 0000000000..9202222f8f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FLUID.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FLUO.svg b/src/problem2/src/assets/img/tokens/FLUO.svg new file mode 100644 index 0000000000..d4e4c7f345 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FLUO.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FRANK.svg b/src/problem2/src/assets/img/tokens/FRANK.svg new file mode 100644 index 0000000000..6a49dcfec1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FRANK.svg @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FTM.svg b/src/problem2/src/assets/img/tokens/FTM.svg new file mode 100644 index 0000000000..0f46c6923c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FTM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/FTT.svg b/src/problem2/src/assets/img/tokens/FTT.svg new file mode 100644 index 0000000000..fcd829ef4f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FTT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FTTC.svg b/src/problem2/src/assets/img/tokens/FTTC.svg new file mode 100644 index 0000000000..b53103bc49 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FTTC.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/FUN.svg b/src/problem2/src/assets/img/tokens/FUN.svg new file mode 100644 index 0000000000..59cdc4bf25 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/FUN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/GALA.svg b/src/problem2/src/assets/img/tokens/GALA.svg new file mode 100644 index 0000000000..58a423f8bb --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GALA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/GAS.svg b/src/problem2/src/assets/img/tokens/GAS.svg new file mode 100644 index 0000000000..3c31d75c0c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GAS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/GBT.svg b/src/problem2/src/assets/img/tokens/GBT.svg new file mode 100644 index 0000000000..7dcf617c3e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GBT.svg @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/GLP.svg b/src/problem2/src/assets/img/tokens/GLP.svg new file mode 100644 index 0000000000..c5eefed0ad --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GLP.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/GM.svg b/src/problem2/src/assets/img/tokens/GM.svg new file mode 100644 index 0000000000..7739426dcb --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GM.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/GMX.svg b/src/problem2/src/assets/img/tokens/GMX.svg new file mode 100644 index 0000000000..80a8c19e74 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GMX.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/GNO.svg b/src/problem2/src/assets/img/tokens/GNO.svg new file mode 100644 index 0000000000..b53b4961bc --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GNO.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/GNS.svg b/src/problem2/src/assets/img/tokens/GNS.svg new file mode 100644 index 0000000000..f47eaabf71 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GNS.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/GRAV.svg b/src/problem2/src/assets/img/tokens/GRAV.svg new file mode 100644 index 0000000000..658e155072 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GRAV.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/GRT.svg b/src/problem2/src/assets/img/tokens/GRT.svg new file mode 100644 index 0000000000..2d283004da --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GRT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/GT.svg b/src/problem2/src/assets/img/tokens/GT.svg new file mode 100644 index 0000000000..6cb00ff5c5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/GT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/HBAR.svg b/src/problem2/src/assets/img/tokens/HBAR.svg new file mode 100644 index 0000000000..62d8831906 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HBAR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/HDN.svg b/src/problem2/src/assets/img/tokens/HDN.svg new file mode 100644 index 0000000000..f5fb0b1a70 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HDN.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/HELMET.svg b/src/problem2/src/assets/img/tokens/HELMET.svg new file mode 100644 index 0000000000..1a50859878 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HELMET.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/HKT.svg b/src/problem2/src/assets/img/tokens/HKT.svg new file mode 100644 index 0000000000..d2f5c930a7 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HKT.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/HNT.svg b/src/problem2/src/assets/img/tokens/HNT.svg new file mode 100644 index 0000000000..402e236890 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/HOPE.svg b/src/problem2/src/assets/img/tokens/HOPE.svg new file mode 100644 index 0000000000..b7541ae4a9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HOPE.svg @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/HOT.svg b/src/problem2/src/assets/img/tokens/HOT.svg new file mode 100644 index 0000000000..eab9101a1f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HOT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/HT.svg b/src/problem2/src/assets/img/tokens/HT.svg new file mode 100644 index 0000000000..72cdfdd097 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/HUAHUA.svg b/src/problem2/src/assets/img/tokens/HUAHUA.svg new file mode 100644 index 0000000000..e94cd98d8d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HUAHUA.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/HUNY.svg b/src/problem2/src/assets/img/tokens/HUNY.svg new file mode 100644 index 0000000000..b06f2f5457 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HUNY.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/problem2/src/assets/img/tokens/HUSD.svg b/src/problem2/src/assets/img/tokens/HUSD.svg new file mode 100644 index 0000000000..30b26c0373 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/HUSD.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/IBCX.svg b/src/problem2/src/assets/img/tokens/IBCX.svg new file mode 100644 index 0000000000..061c6ccefe --- /dev/null +++ b/src/problem2/src/assets/img/tokens/IBCX.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ICP.svg b/src/problem2/src/assets/img/tokens/ICP.svg new file mode 100644 index 0000000000..c7a99ba9bd --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ICP.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ICX.svg b/src/problem2/src/assets/img/tokens/ICX.svg new file mode 100644 index 0000000000..53efc54ef9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ICX.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/IDT.svg b/src/problem2/src/assets/img/tokens/IDT.svg new file mode 100644 index 0000000000..91288c58bf --- /dev/null +++ b/src/problem2/src/assets/img/tokens/IDT.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/INJ.svg b/src/problem2/src/assets/img/tokens/INJ.svg new file mode 100644 index 0000000000..b6d304e498 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/INJ.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/INT.svg b/src/problem2/src/assets/img/tokens/INT.svg new file mode 100644 index 0000000000..9ab0d29f35 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/INT.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ION.svg b/src/problem2/src/assets/img/tokens/ION.svg new file mode 100644 index 0000000000..adad5f300f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ION.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/IOST.svg b/src/problem2/src/assets/img/tokens/IOST.svg new file mode 100644 index 0000000000..8f791796a3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/IOST.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/IOTX.svg b/src/problem2/src/assets/img/tokens/IOTX.svg new file mode 100644 index 0000000000..97a8461838 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/IOTX.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/IOV.svg b/src/problem2/src/assets/img/tokens/IOV.svg new file mode 100644 index 0000000000..2c37835fff --- /dev/null +++ b/src/problem2/src/assets/img/tokens/IOV.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/IRIS.svg b/src/problem2/src/assets/img/tokens/IRIS.svg new file mode 100644 index 0000000000..59b13b5aa6 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/IRIS.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/IXO.svg b/src/problem2/src/assets/img/tokens/IXO.svg new file mode 100644 index 0000000000..0d1fb10136 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/IXO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/JPT.svg b/src/problem2/src/assets/img/tokens/JPT.svg new file mode 100644 index 0000000000..14014e4cb8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/JPT.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/JTO.svg b/src/problem2/src/assets/img/tokens/JTO.svg new file mode 100644 index 0000000000..3ce7f51587 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/JTO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/JUNO.svg b/src/problem2/src/assets/img/tokens/JUNO.svg new file mode 100644 index 0000000000..d65fb3da31 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/JUNO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/JUP.svg b/src/problem2/src/assets/img/tokens/JUP.svg new file mode 100644 index 0000000000..adf9284819 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/JUP.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/KAS.svg b/src/problem2/src/assets/img/tokens/KAS.svg new file mode 100644 index 0000000000..1c9ea6bc49 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KAS.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/problem2/src/assets/img/tokens/KCS.svg b/src/problem2/src/assets/img/tokens/KCS.svg new file mode 100644 index 0000000000..a4b333dfb8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KCS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/KFLOKI.svg b/src/problem2/src/assets/img/tokens/KFLOKI.svg new file mode 100644 index 0000000000..d35699e87e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KFLOKI.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/KLAY.svg b/src/problem2/src/assets/img/tokens/KLAY.svg new file mode 100644 index 0000000000..6f1d4cabef --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KLAY.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/KMD.svg b/src/problem2/src/assets/img/tokens/KMD.svg new file mode 100644 index 0000000000..62598658bb --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KMD.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/KNC.svg b/src/problem2/src/assets/img/tokens/KNC.svg new file mode 100644 index 0000000000..d9ed00657f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KNC.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/KPEPE.svg b/src/problem2/src/assets/img/tokens/KPEPE.svg new file mode 100644 index 0000000000..92665e5502 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KPEPE.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/KRT.svg b/src/problem2/src/assets/img/tokens/KRT.svg new file mode 100644 index 0000000000..e6ea416cf6 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KRT.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/KSM.svg b/src/problem2/src/assets/img/tokens/KSM.svg new file mode 100644 index 0000000000..771f73596e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KSM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/KUJI.svg b/src/problem2/src/assets/img/tokens/KUJI.svg new file mode 100644 index 0000000000..7c169dd724 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/KUJI.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LDO.svg b/src/problem2/src/assets/img/tokens/LDO.svg new file mode 100644 index 0000000000..c8860768cf --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LDO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LEO.svg b/src/problem2/src/assets/img/tokens/LEO.svg new file mode 100644 index 0000000000..f94a11c945 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LEO.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LET.svg b/src/problem2/src/assets/img/tokens/LET.svg new file mode 100644 index 0000000000..8f6a4a06e6 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LET.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LIKE.svg b/src/problem2/src/assets/img/tokens/LIKE.svg new file mode 100644 index 0000000000..a0ac6ac6ac --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LIKE.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LINK.svg b/src/problem2/src/assets/img/tokens/LINK.svg new file mode 100644 index 0000000000..8484106a43 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LINK.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/LKT.svg b/src/problem2/src/assets/img/tokens/LKT.svg new file mode 100644 index 0000000000..f224ae0ff2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LKT.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LOOM.svg b/src/problem2/src/assets/img/tokens/LOOM.svg new file mode 100644 index 0000000000..5ad0435613 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LOOM.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LOOP.svg b/src/problem2/src/assets/img/tokens/LOOP.svg new file mode 100644 index 0000000000..6c69420439 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LOOP.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LOTA.svg b/src/problem2/src/assets/img/tokens/LOTA.svg new file mode 100644 index 0000000000..10c742ae6d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LOTA.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LPT.svg b/src/problem2/src/assets/img/tokens/LPT.svg new file mode 100644 index 0000000000..c026842d93 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LPT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/LRC.svg b/src/problem2/src/assets/img/tokens/LRC.svg new file mode 100644 index 0000000000..2319bb063d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LRC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/LSI.svg b/src/problem2/src/assets/img/tokens/LSI.svg new file mode 100644 index 0000000000..48618f66b3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LSI.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LSK.svg b/src/problem2/src/assets/img/tokens/LSK.svg new file mode 100644 index 0000000000..d7b38f123e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LSK.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/LTC.svg b/src/problem2/src/assets/img/tokens/LTC.svg new file mode 100644 index 0000000000..d734c3ac54 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LTC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/LUM.svg b/src/problem2/src/assets/img/tokens/LUM.svg new file mode 100644 index 0000000000..8994d02ad5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LUM.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LUNA.svg b/src/problem2/src/assets/img/tokens/LUNA.svg new file mode 100644 index 0000000000..6a839981dd --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LUNA.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LUNAX.svg b/src/problem2/src/assets/img/tokens/LUNAX.svg new file mode 100644 index 0000000000..afc19e17de --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LUNAX.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LUNC.svg b/src/problem2/src/assets/img/tokens/LUNC.svg new file mode 100644 index 0000000000..fe40173c96 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LUNC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LUNI.svg b/src/problem2/src/assets/img/tokens/LUNI.svg new file mode 100644 index 0000000000..1721643744 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LUNI.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LUNR.svg b/src/problem2/src/assets/img/tokens/LUNR.svg new file mode 100644 index 0000000000..958d0e6e11 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LUNR.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/LUV.svg b/src/problem2/src/assets/img/tokens/LUV.svg new file mode 100644 index 0000000000..0f7342c490 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/LUV.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/M87.svg b/src/problem2/src/assets/img/tokens/M87.svg new file mode 100644 index 0000000000..77f8c882b5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/M87.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MANA.svg b/src/problem2/src/assets/img/tokens/MANA.svg new file mode 100644 index 0000000000..0629467224 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MANA.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MANTA.svg b/src/problem2/src/assets/img/tokens/MANTA.svg new file mode 100644 index 0000000000..1970537a1f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MANTA.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MARBLE.svg b/src/problem2/src/assets/img/tokens/MARBLE.svg new file mode 100644 index 0000000000..4e9c2214f2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MARBLE.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MATH.svg b/src/problem2/src/assets/img/tokens/MATH.svg new file mode 100644 index 0000000000..144d40f0bb --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MATH.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/MATIC.svg b/src/problem2/src/assets/img/tokens/MATIC.svg new file mode 100644 index 0000000000..7f2e0a7037 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MATIC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/MDX.svg b/src/problem2/src/assets/img/tokens/MDX.svg new file mode 100644 index 0000000000..8f3b267801 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MDX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/MED.svg b/src/problem2/src/assets/img/tokens/MED.svg new file mode 100644 index 0000000000..900d139258 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MED.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MEME.svg b/src/problem2/src/assets/img/tokens/MEME.svg new file mode 100644 index 0000000000..d784304a65 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MEME.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/METIS.svg b/src/problem2/src/assets/img/tokens/METIS.svg new file mode 100644 index 0000000000..3bd43ffadb --- /dev/null +++ b/src/problem2/src/assets/img/tokens/METIS.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MIAW.svg b/src/problem2/src/assets/img/tokens/MIAW.svg new file mode 100644 index 0000000000..ddf46721c7 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MIAW.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MINA.svg b/src/problem2/src/assets/img/tokens/MINA.svg new file mode 100644 index 0000000000..d5aafd7398 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MINA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/MINE.svg b/src/problem2/src/assets/img/tokens/MINE.svg new file mode 100644 index 0000000000..ff71cab9e7 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MINE.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MIOTA.svg b/src/problem2/src/assets/img/tokens/MIOTA.svg new file mode 100644 index 0000000000..3d3c08c604 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MIOTA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/MIR.svg b/src/problem2/src/assets/img/tokens/MIR.svg new file mode 100644 index 0000000000..0247791318 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MIR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/MKR.svg b/src/problem2/src/assets/img/tokens/MKR.svg new file mode 100644 index 0000000000..9a639d1374 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MKR.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MNT.svg b/src/problem2/src/assets/img/tokens/MNT.svg new file mode 100644 index 0000000000..1aa231ddd4 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/MNTA.svg b/src/problem2/src/assets/img/tokens/MNTA.svg new file mode 100644 index 0000000000..e3b7cfa957 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MNTA.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MNTL.svg b/src/problem2/src/assets/img/tokens/MNTL.svg new file mode 100644 index 0000000000..71e1c497e9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MNTL.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/MYT.svg b/src/problem2/src/assets/img/tokens/MYT.svg new file mode 100644 index 0000000000..92cbc6468d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/MYT.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NANO.svg b/src/problem2/src/assets/img/tokens/NANO.svg new file mode 100644 index 0000000000..9ed54dd843 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NANO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NAS.svg b/src/problem2/src/assets/img/tokens/NAS.svg new file mode 100644 index 0000000000..071766c17c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NAS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/NEAR.svg b/src/problem2/src/assets/img/tokens/NEAR.svg new file mode 100644 index 0000000000..7bc784c808 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NEAR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/NEO.svg b/src/problem2/src/assets/img/tokens/NEO.svg new file mode 100644 index 0000000000..d4a90e1b27 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NEO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NETA.svg b/src/problem2/src/assets/img/tokens/NETA.svg new file mode 100644 index 0000000000..b617dbef98 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NETA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NEX.svg b/src/problem2/src/assets/img/tokens/NEX.svg new file mode 100644 index 0000000000..34be620b9e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NEX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/NEXO.svg b/src/problem2/src/assets/img/tokens/NEXO.svg new file mode 100644 index 0000000000..4f8507a40f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NEXO.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NGM.svg b/src/problem2/src/assets/img/tokens/NGM.svg new file mode 100644 index 0000000000..ebdc8a035d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NGM.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NKN.svg b/src/problem2/src/assets/img/tokens/NKN.svg new file mode 100644 index 0000000000..e008ac5d71 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NKN.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NMR.svg b/src/problem2/src/assets/img/tokens/NMR.svg new file mode 100644 index 0000000000..fcb458cafa --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NMR.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/NOT.svg b/src/problem2/src/assets/img/tokens/NOT.svg new file mode 100644 index 0000000000..7cdadfbc34 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NOT.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NOTE.svg b/src/problem2/src/assets/img/tokens/NOTE.svg new file mode 100644 index 0000000000..9f44e1971f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NOTE.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NPXS.svg b/src/problem2/src/assets/img/tokens/NPXS.svg new file mode 100644 index 0000000000..d9a52dfe14 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NPXS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/NTRN.svg b/src/problem2/src/assets/img/tokens/NTRN.svg new file mode 100644 index 0000000000..150a6137d2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NTRN.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/NXM.svg b/src/problem2/src/assets/img/tokens/NXM.svg new file mode 100644 index 0000000000..165bc3b984 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/NXM.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/OCEAN.svg b/src/problem2/src/assets/img/tokens/OCEAN.svg new file mode 100644 index 0000000000..ad0f99d6ae --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OCEAN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/OCH.svg b/src/problem2/src/assets/img/tokens/OCH.svg new file mode 100644 index 0000000000..51c3f8e039 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OCH.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/OGN.svg b/src/problem2/src/assets/img/tokens/OGN.svg new file mode 100644 index 0000000000..e15dbac858 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OGN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/OKB.svg b/src/problem2/src/assets/img/tokens/OKB.svg new file mode 100644 index 0000000000..786f75ba42 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OKB.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/OKT.svg b/src/problem2/src/assets/img/tokens/OKT.svg new file mode 100644 index 0000000000..0afcd8a1cf --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OKT.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/OMG.svg b/src/problem2/src/assets/img/tokens/OMG.svg new file mode 100644 index 0000000000..2d3d8ae8e6 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OMG.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/OMG_2.svg b/src/problem2/src/assets/img/tokens/OMG_2.svg new file mode 100644 index 0000000000..5735f9f726 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OMG_2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/OMI.svg b/src/problem2/src/assets/img/tokens/OMI.svg new file mode 100644 index 0000000000..b1d5020084 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OMI.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ONE.svg b/src/problem2/src/assets/img/tokens/ONE.svg new file mode 100644 index 0000000000..63c1260c06 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ONE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ONT.svg b/src/problem2/src/assets/img/tokens/ONT.svg new file mode 100644 index 0000000000..93378b4745 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ONT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/OP.svg b/src/problem2/src/assets/img/tokens/OP.svg new file mode 100644 index 0000000000..b5feac7946 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/OPUL.svg b/src/problem2/src/assets/img/tokens/OPUL.svg new file mode 100644 index 0000000000..c7ae4dbf3e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OPUL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ORDI.svg b/src/problem2/src/assets/img/tokens/ORDI.svg new file mode 100644 index 0000000000..380181270d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ORDI.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ORION.svg b/src/problem2/src/assets/img/tokens/ORION.svg new file mode 100644 index 0000000000..b5f9ba6fff --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ORION.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ORNE.svg b/src/problem2/src/assets/img/tokens/ORNE.svg new file mode 100644 index 0000000000..d986b3f31e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ORNE.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/OSMO.svg b/src/problem2/src/assets/img/tokens/OSMO.svg new file mode 100644 index 0000000000..e98545517b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OSMO.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/OXT.svg b/src/problem2/src/assets/img/tokens/OXT.svg new file mode 100644 index 0000000000..bba9547da1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OXT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/OXY.svg b/src/problem2/src/assets/img/tokens/OXY.svg new file mode 100644 index 0000000000..9175a0b900 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/OXY.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/PAX.svg b/src/problem2/src/assets/img/tokens/PAX.svg new file mode 100644 index 0000000000..32b0ef8211 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PAX.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/PEPE.svg b/src/problem2/src/assets/img/tokens/PEPE.svg new file mode 100644 index 0000000000..1e6ba151a3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PEPE.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/PHT.svg b/src/problem2/src/assets/img/tokens/PHT.svg new file mode 100644 index 0000000000..d515118058 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PHT.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/PLAY.svg b/src/problem2/src/assets/img/tokens/PLAY.svg new file mode 100644 index 0000000000..bae2577420 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PLAY.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/PLQ.svg b/src/problem2/src/assets/img/tokens/PLQ.svg new file mode 100644 index 0000000000..31b353bb45 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PLQ.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/PLY.svg b/src/problem2/src/assets/img/tokens/PLY.svg new file mode 100644 index 0000000000..c79b320445 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PLY.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/POLY.svg b/src/problem2/src/assets/img/tokens/POLY.svg new file mode 100644 index 0000000000..b894fef5d5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/POLY.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/PORT.svg b/src/problem2/src/assets/img/tokens/PORT.svg new file mode 100644 index 0000000000..d846537361 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PORT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/PROM.svg b/src/problem2/src/assets/img/tokens/PROM.svg new file mode 100644 index 0000000000..044c9e3576 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PROM.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/PSI.svg b/src/problem2/src/assets/img/tokens/PSI.svg new file mode 100644 index 0000000000..674744b4e5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PSI.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/PSTAKE.svg b/src/problem2/src/assets/img/tokens/PSTAKE.svg new file mode 100644 index 0000000000..caf13d8d63 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PSTAKE.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/PYTH.svg b/src/problem2/src/assets/img/tokens/PYTH.svg new file mode 100644 index 0000000000..b34cc9ea3d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/PYTH.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/QCK.svg b/src/problem2/src/assets/img/tokens/QCK.svg new file mode 100644 index 0000000000..358cb7dbbf --- /dev/null +++ b/src/problem2/src/assets/img/tokens/QCK.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/QKC.svg b/src/problem2/src/assets/img/tokens/QKC.svg new file mode 100644 index 0000000000..e312777506 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/QKC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/QNT.svg b/src/problem2/src/assets/img/tokens/QNT.svg new file mode 100644 index 0000000000..a611eaa24a --- /dev/null +++ b/src/problem2/src/assets/img/tokens/QNT.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/QTUM.svg b/src/problem2/src/assets/img/tokens/QTUM.svg new file mode 100644 index 0000000000..e96f6cf2ca --- /dev/null +++ b/src/problem2/src/assets/img/tokens/QTUM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/RATOM.svg b/src/problem2/src/assets/img/tokens/RATOM.svg new file mode 100644 index 0000000000..8cd5f8056f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/RATOM.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/RAY.svg b/src/problem2/src/assets/img/tokens/RAY.svg new file mode 100644 index 0000000000..e769284e27 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/RAY.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/RBN.svg b/src/problem2/src/assets/img/tokens/RBN.svg new file mode 100644 index 0000000000..ef40c376d8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/RBN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/REEF.svg b/src/problem2/src/assets/img/tokens/REEF.svg new file mode 100644 index 0000000000..5c777f840f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/REEF.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/REGEN.svg b/src/problem2/src/assets/img/tokens/REGEN.svg new file mode 100644 index 0000000000..242a4c66c9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/REGEN.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/REN.svg b/src/problem2/src/assets/img/tokens/REN.svg new file mode 100644 index 0000000000..bae08ca56f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/REN.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/REP.svg b/src/problem2/src/assets/img/tokens/REP.svg new file mode 100644 index 0000000000..c311970b6d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/REP.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/REV.svg b/src/problem2/src/assets/img/tokens/REV.svg new file mode 100644 index 0000000000..6dcaa131aa --- /dev/null +++ b/src/problem2/src/assets/img/tokens/REV.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/RLB.svg b/src/problem2/src/assets/img/tokens/RLB.svg new file mode 100644 index 0000000000..344fe8e022 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/RLB.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/RLC.svg b/src/problem2/src/assets/img/tokens/RLC.svg new file mode 100644 index 0000000000..c816edf016 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/RLC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/RNDR.svg b/src/problem2/src/assets/img/tokens/RNDR.svg new file mode 100644 index 0000000000..031e8816b3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/RNDR.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ROAR.svg b/src/problem2/src/assets/img/tokens/ROAR.svg new file mode 100644 index 0000000000..d29ab09634 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ROAR.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ROWAN.svg b/src/problem2/src/assets/img/tokens/ROWAN.svg new file mode 100644 index 0000000000..6b395742d4 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ROWAN.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/RSR.svg b/src/problem2/src/assets/img/tokens/RSR.svg new file mode 100644 index 0000000000..f85bb78c23 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/RSR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/RUNE.svg b/src/problem2/src/assets/img/tokens/RUNE.svg new file mode 100644 index 0000000000..ccbb65ceff --- /dev/null +++ b/src/problem2/src/assets/img/tokens/RUNE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/RVN.svg b/src/problem2/src/assets/img/tokens/RVN.svg new file mode 100644 index 0000000000..4d6d30eeef --- /dev/null +++ b/src/problem2/src/assets/img/tokens/RVN.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SAFEMOON.svg b/src/problem2/src/assets/img/tokens/SAFEMOON.svg new file mode 100644 index 0000000000..9ff12873a5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SAFEMOON.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SAND.svg b/src/problem2/src/assets/img/tokens/SAND.svg new file mode 100644 index 0000000000..4e01196b45 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SAND.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SAYVE.svg b/src/problem2/src/assets/img/tokens/SAYVE.svg new file mode 100644 index 0000000000..2cea35fc51 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SAYVE.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/SC.svg b/src/problem2/src/assets/img/tokens/SC.svg new file mode 100644 index 0000000000..aebc27644b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/SCRT.svg b/src/problem2/src/assets/img/tokens/SCRT.svg new file mode 100644 index 0000000000..9451de4116 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SCRT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/SDT.svg b/src/problem2/src/assets/img/tokens/SDT.svg new file mode 100644 index 0000000000..222a72897f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SDT.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SEI.svg b/src/problem2/src/assets/img/tokens/SEI.svg new file mode 100644 index 0000000000..65ea99277e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SEI.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SET.svg b/src/problem2/src/assets/img/tokens/SET.svg new file mode 100644 index 0000000000..f46a6ba24f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SET.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SGT.svg b/src/problem2/src/assets/img/tokens/SGT.svg new file mode 100644 index 0000000000..a975dece90 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SGT.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SHD.svg b/src/problem2/src/assets/img/tokens/SHD.svg new file mode 100644 index 0000000000..bdb7e6c29c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SHD.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SHIB.svg b/src/problem2/src/assets/img/tokens/SHIB.svg new file mode 100644 index 0000000000..2ab2cf8371 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SHIB.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SITY.svg b/src/problem2/src/assets/img/tokens/SITY.svg new file mode 100644 index 0000000000..7cfb8209bf --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SITY.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SLERF.svg b/src/problem2/src/assets/img/tokens/SLERF.svg new file mode 100644 index 0000000000..713f29af95 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SLERF.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SNT.svg b/src/problem2/src/assets/img/tokens/SNT.svg new file mode 100644 index 0000000000..cc8ad2df4c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SNT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/SNX.svg b/src/problem2/src/assets/img/tokens/SNX.svg new file mode 100644 index 0000000000..14e0591389 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SNX.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SOL.svg b/src/problem2/src/assets/img/tokens/SOL.svg new file mode 100644 index 0000000000..0568e80881 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SOL.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SOM.svg b/src/problem2/src/assets/img/tokens/SOM.svg new file mode 100644 index 0000000000..778bf9b5c9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SOM.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SOMM.svg b/src/problem2/src/assets/img/tokens/SOMM.svg new file mode 100644 index 0000000000..fa82d261ee --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SOMM.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SPEC.svg b/src/problem2/src/assets/img/tokens/SPEC.svg new file mode 100644 index 0000000000..75c9b37b2b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SPEC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/SRM.svg b/src/problem2/src/assets/img/tokens/SRM.svg new file mode 100644 index 0000000000..e488de82db --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SRM.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SRV.svg b/src/problem2/src/assets/img/tokens/SRV.svg new file mode 100644 index 0000000000..b15a61c77f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SRV.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/STARS.svg b/src/problem2/src/assets/img/tokens/STARS.svg new file mode 100644 index 0000000000..de6d376db8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STARS.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/STATOM.svg b/src/problem2/src/assets/img/tokens/STATOM.svg new file mode 100644 index 0000000000..c3e505f8b3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STATOM.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/STEEM.svg b/src/problem2/src/assets/img/tokens/STEEM.svg new file mode 100644 index 0000000000..503009b90d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STEEM.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/STEVMOS.svg b/src/problem2/src/assets/img/tokens/STEVMOS.svg new file mode 100644 index 0000000000..a2a8888208 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STEVMOS.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/problem2/src/assets/img/tokens/STLUNA.svg b/src/problem2/src/assets/img/tokens/STLUNA.svg new file mode 100644 index 0000000000..606be7947d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STLUNA.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/problem2/src/assets/img/tokens/STMX.svg b/src/problem2/src/assets/img/tokens/STMX.svg new file mode 100644 index 0000000000..976e86474b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STMX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/STORJ.svg b/src/problem2/src/assets/img/tokens/STORJ.svg new file mode 100644 index 0000000000..85a332a6ce --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STORJ.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/STOSMO.svg b/src/problem2/src/assets/img/tokens/STOSMO.svg new file mode 100644 index 0000000000..73d296046b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STOSMO.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/STRAX.svg b/src/problem2/src/assets/img/tokens/STRAX.svg new file mode 100644 index 0000000000..a34822931d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STRAX.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/STRD.svg b/src/problem2/src/assets/img/tokens/STRD.svg new file mode 100644 index 0000000000..f25a48536c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STRD.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/STREAM.svg b/src/problem2/src/assets/img/tokens/STREAM.svg new file mode 100644 index 0000000000..fba4ce0609 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STREAM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/STRK.svg b/src/problem2/src/assets/img/tokens/STRK.svg new file mode 100644 index 0000000000..22c139824d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STRK.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/STT.svg b/src/problem2/src/assets/img/tokens/STT.svg new file mode 100644 index 0000000000..d37590a8d3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/STX.svg b/src/problem2/src/assets/img/tokens/STX.svg new file mode 100644 index 0000000000..ed89fc9276 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/STX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/SUSHI.svg b/src/problem2/src/assets/img/tokens/SUSHI.svg new file mode 100644 index 0000000000..e118f213b5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SUSHI.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SWTH.svg b/src/problem2/src/assets/img/tokens/SWTH.svg new file mode 100644 index 0000000000..353c1b5bcc --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SWTH.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/SXP.svg b/src/problem2/src/assets/img/tokens/SXP.svg new file mode 100644 index 0000000000..89fd3b147e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/SXP.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TEL.svg b/src/problem2/src/assets/img/tokens/TEL.svg new file mode 100644 index 0000000000..2992514bf1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TEL.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/TFUEL.svg b/src/problem2/src/assets/img/tokens/TFUEL.svg new file mode 100644 index 0000000000..d57d7d9493 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TFUEL.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/THETA.svg b/src/problem2/src/assets/img/tokens/THETA.svg new file mode 100644 index 0000000000..8ff93f4019 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/THETA.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/THT.svg b/src/problem2/src/assets/img/tokens/THT.svg new file mode 100644 index 0000000000..8ee5eb9ff3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/THT.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TIA.svg b/src/problem2/src/assets/img/tokens/TIA.svg new file mode 100644 index 0000000000..41d8ab96c1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TIA.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TICK.svg b/src/problem2/src/assets/img/tokens/TICK.svg new file mode 100644 index 0000000000..3be70db269 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TICK.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TITAN.svg b/src/problem2/src/assets/img/tokens/TITAN.svg new file mode 100644 index 0000000000..d52faa138c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TITAN.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TLAND.svg b/src/problem2/src/assets/img/tokens/TLAND.svg new file mode 100644 index 0000000000..9f9e3e2330 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TLAND.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/TLM.svg b/src/problem2/src/assets/img/tokens/TLM.svg new file mode 100644 index 0000000000..1fe3283fee --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TLM.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TOMO.svg b/src/problem2/src/assets/img/tokens/TOMO.svg new file mode 100644 index 0000000000..45bda83d4b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TOMO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TON.svg b/src/problem2/src/assets/img/tokens/TON.svg new file mode 100644 index 0000000000..c1e0b91485 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TON.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TPC.svg b/src/problem2/src/assets/img/tokens/TPC.svg new file mode 100644 index 0000000000..29f8a4af8d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TPC.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TRAXX.svg b/src/problem2/src/assets/img/tokens/TRAXX.svg new file mode 100644 index 0000000000..05c2ec0999 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TRAXX.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TRB.svg b/src/problem2/src/assets/img/tokens/TRB.svg new file mode 100644 index 0000000000..e319e65d7e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TRB.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TRU.svg b/src/problem2/src/assets/img/tokens/TRU.svg new file mode 100644 index 0000000000..29ddc8ac24 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TRU.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TRX.svg b/src/problem2/src/assets/img/tokens/TRX.svg new file mode 100644 index 0000000000..c105ddc307 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TRX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/TTT.svg b/src/problem2/src/assets/img/tokens/TTT.svg new file mode 100644 index 0000000000..13e6080a8a --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TTT.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TUSD.svg b/src/problem2/src/assets/img/tokens/TUSD.svg new file mode 100644 index 0000000000..712ec923da --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TUSD.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TWD.svg b/src/problem2/src/assets/img/tokens/TWD.svg new file mode 100644 index 0000000000..014f525557 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TWD.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/TWT.svg b/src/problem2/src/assets/img/tokens/TWT.svg new file mode 100644 index 0000000000..b67bf37535 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/TWT.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/Token.svg b/src/problem2/src/assets/img/tokens/Token.svg new file mode 100644 index 0000000000..bed64e2942 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/Token.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/UBQ.svg b/src/problem2/src/assets/img/tokens/UBQ.svg new file mode 100644 index 0000000000..139af049ce --- /dev/null +++ b/src/problem2/src/assets/img/tokens/UBQ.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/UMEE.svg b/src/problem2/src/assets/img/tokens/UMEE.svg new file mode 100644 index 0000000000..f9243257df --- /dev/null +++ b/src/problem2/src/assets/img/tokens/UMEE.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/UNA.svg b/src/problem2/src/assets/img/tokens/UNA.svg new file mode 100644 index 0000000000..077c1555e7 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/UNA.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/UNI.svg b/src/problem2/src/assets/img/tokens/UNI.svg new file mode 100644 index 0000000000..aa1771ccf0 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/UNI.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/UOS.svg b/src/problem2/src/assets/img/tokens/UOS.svg new file mode 100644 index 0000000000..eb07c3cce8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/UOS.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/USC.svg b/src/problem2/src/assets/img/tokens/USC.svg new file mode 100644 index 0000000000..32bd9541f5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/USC.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/USD.svg b/src/problem2/src/assets/img/tokens/USD.svg new file mode 100644 index 0000000000..abf67ab105 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/USD.svg @@ -0,0 +1,8 @@ + + + Token Symbol/USD + + + + + \ No newline at end of file diff --git a/src/problem2/src/assets/img/tokens/USDC.svg b/src/problem2/src/assets/img/tokens/USDC.svg new file mode 100644 index 0000000000..eee4251a7b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/USDC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/USDP.svg b/src/problem2/src/assets/img/tokens/USDP.svg new file mode 100644 index 0000000000..b7e76ff9d1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/USDP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/USDT.svg b/src/problem2/src/assets/img/tokens/USDT.svg new file mode 100644 index 0000000000..0eb76592a1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/USDT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/USK.svg b/src/problem2/src/assets/img/tokens/USK.svg new file mode 100644 index 0000000000..15ba03fe9d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/USK.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/UST.svg b/src/problem2/src/assets/img/tokens/UST.svg new file mode 100644 index 0000000000..2a0a597074 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/UST.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/VDL.svg b/src/problem2/src/assets/img/tokens/VDL.svg new file mode 100644 index 0000000000..d839e0da4d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/VDL.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/VET.svg b/src/problem2/src/assets/img/tokens/VET.svg new file mode 100644 index 0000000000..88ebf982a5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/VET.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/VKR.svg b/src/problem2/src/assets/img/tokens/VKR.svg new file mode 100644 index 0000000000..cb3c68d595 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/VKR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/VRTX.svg b/src/problem2/src/assets/img/tokens/VRTX.svg new file mode 100644 index 0000000000..8cb3dc30ef --- /dev/null +++ b/src/problem2/src/assets/img/tokens/VRTX.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/W.svg b/src/problem2/src/assets/img/tokens/W.svg new file mode 100644 index 0000000000..3c3c6fdae3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/W.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/WAVE.svg b/src/problem2/src/assets/img/tokens/WAVE.svg new file mode 100644 index 0000000000..2ca6ac0708 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WAVE.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/WBNB.svg b/src/problem2/src/assets/img/tokens/WBNB.svg new file mode 100644 index 0000000000..e45c696b5c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WBNB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/WBTC.svg b/src/problem2/src/assets/img/tokens/WBTC.svg new file mode 100644 index 0000000000..3ab3886566 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WBTC.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/WETH.svg b/src/problem2/src/assets/img/tokens/WETH.svg new file mode 100644 index 0000000000..ed516a2cf2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WETH.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/WHALE.svg b/src/problem2/src/assets/img/tokens/WHALE.svg new file mode 100644 index 0000000000..a42a2449d8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WHALE.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/WIF.svg b/src/problem2/src/assets/img/tokens/WIF.svg new file mode 100644 index 0000000000..6df4ea15a2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WIF.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/WIN.svg b/src/problem2/src/assets/img/tokens/WIN.svg new file mode 100644 index 0000000000..bc2435409b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WIN.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/WLD.svg b/src/problem2/src/assets/img/tokens/WLD.svg new file mode 100644 index 0000000000..62191032d6 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WLD.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/WMATIC.svg b/src/problem2/src/assets/img/tokens/WMATIC.svg new file mode 100644 index 0000000000..ba0630b510 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WMATIC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/WRX.svg b/src/problem2/src/assets/img/tokens/WRX.svg new file mode 100644 index 0000000000..543f570909 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/WRX.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/XCAD.svg b/src/problem2/src/assets/img/tokens/XCAD.svg new file mode 100644 index 0000000000..545a88d1b9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XCAD.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/XDC.svg b/src/problem2/src/assets/img/tokens/XDC.svg new file mode 100644 index 0000000000..c90381022e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XDC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/XEM.svg b/src/problem2/src/assets/img/tokens/XEM.svg new file mode 100644 index 0000000000..da54e72a22 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XEM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/XKI.svg b/src/problem2/src/assets/img/tokens/XKI.svg new file mode 100644 index 0000000000..dd5fea7cf0 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XKI.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/XLM.svg b/src/problem2/src/assets/img/tokens/XLM.svg new file mode 100644 index 0000000000..d836619c15 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XLM.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/XMR.svg b/src/problem2/src/assets/img/tokens/XMR.svg new file mode 100644 index 0000000000..475a95cb7d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XMR.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/XPRT.svg b/src/problem2/src/assets/img/tokens/XPRT.svg new file mode 100644 index 0000000000..7ecd4ace95 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XPRT.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/XRP.svg b/src/problem2/src/assets/img/tokens/XRP.svg new file mode 100644 index 0000000000..b3d441bf40 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XRP.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/XSGD.svg b/src/problem2/src/assets/img/tokens/XSGD.svg new file mode 100644 index 0000000000..f04caab93b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XSGD.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/XTRA.svg b/src/problem2/src/assets/img/tokens/XTRA.svg new file mode 100644 index 0000000000..1c6367d3be --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XTRA.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/XTZ.svg b/src/problem2/src/assets/img/tokens/XTZ.svg new file mode 100644 index 0000000000..28b924e5c7 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XTZ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/XVG.svg b/src/problem2/src/assets/img/tokens/XVG.svg new file mode 100644 index 0000000000..537378cff6 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XVG.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/XVS.svg b/src/problem2/src/assets/img/tokens/XVS.svg new file mode 100644 index 0000000000..3176f9fb66 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/XVS.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/YAM.svg b/src/problem2/src/assets/img/tokens/YAM.svg new file mode 100644 index 0000000000..2e8a654216 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/YAM.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/YFI.svg b/src/problem2/src/assets/img/tokens/YFI.svg new file mode 100644 index 0000000000..b7674608b7 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/YFI.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/YieldUSD.svg b/src/problem2/src/assets/img/tokens/YieldUSD.svg new file mode 100644 index 0000000000..e435a687c9 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/YieldUSD.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ZCH.svg b/src/problem2/src/assets/img/tokens/ZCH.svg new file mode 100644 index 0000000000..1e9d4250d4 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ZCH.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ZEC.svg b/src/problem2/src/assets/img/tokens/ZEC.svg new file mode 100644 index 0000000000..b6b86dcc1d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ZEC.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ZEN.svg b/src/problem2/src/assets/img/tokens/ZEN.svg new file mode 100644 index 0000000000..b305169acb --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ZEN.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ZIL.svg b/src/problem2/src/assets/img/tokens/ZIL.svg new file mode 100644 index 0000000000..c89e8ce16f --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ZIL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ZRO.svg b/src/problem2/src/assets/img/tokens/ZRO.svg new file mode 100644 index 0000000000..e485e3b2ab --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ZRO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ZRX.svg b/src/problem2/src/assets/img/tokens/ZRX.svg new file mode 100644 index 0000000000..f42e914a6a --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ZRX.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ZWAP.svg b/src/problem2/src/assets/img/tokens/ZWAP.svg new file mode 100644 index 0000000000..130d14d73b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ZWAP.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/ampKUJI.svg b/src/problem2/src/assets/img/tokens/ampKUJI.svg new file mode 100644 index 0000000000..2692787da5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ampKUJI.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ampLUNA.svg b/src/problem2/src/assets/img/tokens/ampLUNA.svg new file mode 100644 index 0000000000..ebeab58687 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ampLUNA.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/axlUSDC.svg b/src/problem2/src/assets/img/tokens/axlUSDC.svg new file mode 100644 index 0000000000..fc879f679a --- /dev/null +++ b/src/problem2/src/assets/img/tokens/axlUSDC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/bCFX.svg b/src/problem2/src/assets/img/tokens/bCFX.svg new file mode 100644 index 0000000000..07e8c434db --- /dev/null +++ b/src/problem2/src/assets/img/tokens/bCFX.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/bNEO.svg b/src/problem2/src/assets/img/tokens/bNEO.svg new file mode 100644 index 0000000000..561b2282d8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/bNEO.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/cGLP.svg b/src/problem2/src/assets/img/tokens/cGLP.svg new file mode 100644 index 0000000000..eba97e4ff3 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/cGLP.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/cUSD.svg b/src/problem2/src/assets/img/tokens/cUSD.svg new file mode 100644 index 0000000000..812540db80 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/cUSD.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/dINJ.svg b/src/problem2/src/assets/img/tokens/dINJ.svg new file mode 100644 index 0000000000..05b1763cc2 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/dINJ.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/dXCAD.svg b/src/problem2/src/assets/img/tokens/dXCAD.svg new file mode 100644 index 0000000000..881f50fd02 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/dXCAD.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/eGLD.svg b/src/problem2/src/assets/img/tokens/eGLD.svg new file mode 100644 index 0000000000..e42ad2510e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/eGLD.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/ePLAY.svg b/src/problem2/src/assets/img/tokens/ePLAY.svg new file mode 100644 index 0000000000..bae2577420 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/ePLAY.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/esFLUO.svg b/src/problem2/src/assets/img/tokens/esFLUO.svg new file mode 100644 index 0000000000..0b69ed3189 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/esFLUO.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/gZIL.svg b/src/problem2/src/assets/img/tokens/gZIL.svg new file mode 100644 index 0000000000..27334389ba --- /dev/null +++ b/src/problem2/src/assets/img/tokens/gZIL.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/iSEI.svg b/src/problem2/src/assets/img/tokens/iSEI.svg new file mode 100644 index 0000000000..246b86f8a1 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/iSEI.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/iUSD.svg b/src/problem2/src/assets/img/tokens/iUSD.svg new file mode 100644 index 0000000000..ca263a0474 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/iUSD.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/milkTIA.svg b/src/problem2/src/assets/img/tokens/milkTIA.svg new file mode 100644 index 0000000000..d595abfa30 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/milkTIA.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/nNEO.svg b/src/problem2/src/assets/img/tokens/nNEO.svg new file mode 100644 index 0000000000..d4a90e1b27 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/nNEO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/rSWTH.svg b/src/problem2/src/assets/img/tokens/rSWTH.svg new file mode 100644 index 0000000000..d5250ff90d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/rSWTH.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/sARCH.svg b/src/problem2/src/assets/img/tokens/sARCH.svg new file mode 100644 index 0000000000..3ec2b656f0 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/sARCH.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/stDYDX.svg b/src/problem2/src/assets/img/tokens/stDYDX.svg new file mode 100644 index 0000000000..6d851637a8 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stDYDX.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/problem2/src/assets/img/tokens/stDYM.svg b/src/problem2/src/assets/img/tokens/stDYM.svg new file mode 100644 index 0000000000..d961755725 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stDYM.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/stETH.svg b/src/problem2/src/assets/img/tokens/stETH.svg new file mode 100644 index 0000000000..8c490e47f0 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stETH.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/stFLUO.svg b/src/problem2/src/assets/img/tokens/stFLUO.svg new file mode 100644 index 0000000000..bf182c96de --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stFLUO.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/stIBCX.svg b/src/problem2/src/assets/img/tokens/stIBCX.svg new file mode 100644 index 0000000000..8a10d241d5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stIBCX.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/stINJ.svg b/src/problem2/src/assets/img/tokens/stINJ.svg new file mode 100644 index 0000000000..6b97bec4f7 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stINJ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/stJUNO.svg b/src/problem2/src/assets/img/tokens/stJUNO.svg new file mode 100644 index 0000000000..8d92f375c6 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stJUNO.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/stOKT.svg b/src/problem2/src/assets/img/tokens/stOKT.svg new file mode 100644 index 0000000000..33b541d11d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stOKT.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/stSTARS.svg b/src/problem2/src/assets/img/tokens/stSTARS.svg new file mode 100644 index 0000000000..ffc7def96a --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stSTARS.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/stTIA.svg b/src/problem2/src/assets/img/tokens/stTIA.svg new file mode 100644 index 0000000000..3d3e28470d --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stTIA.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/problem2/src/assets/img/tokens/stZIL.svg b/src/problem2/src/assets/img/tokens/stZIL.svg new file mode 100644 index 0000000000..81323f746a --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stZIL.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/stkATOM.svg b/src/problem2/src/assets/img/tokens/stkATOM.svg new file mode 100644 index 0000000000..1e6c7a2b2c --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stkATOM.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/stkDYDX.svg b/src/problem2/src/assets/img/tokens/stkDYDX.svg new file mode 100644 index 0000000000..2d2883a9e6 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/stkDYDX.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/vZWAP.svg b/src/problem2/src/assets/img/tokens/vZWAP.svg new file mode 100644 index 0000000000..0874b89e8b --- /dev/null +++ b/src/problem2/src/assets/img/tokens/vZWAP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/veFLUO.svg b/src/problem2/src/assets/img/tokens/veFLUO.svg new file mode 100644 index 0000000000..3624b5647a --- /dev/null +++ b/src/problem2/src/assets/img/tokens/veFLUO.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/problem2/src/assets/img/tokens/wKAS.svg b/src/problem2/src/assets/img/tokens/wKAS.svg new file mode 100644 index 0000000000..14185747c5 --- /dev/null +++ b/src/problem2/src/assets/img/tokens/wKAS.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/problem2/src/assets/img/tokens/wstETH.svg b/src/problem2/src/assets/img/tokens/wstETH.svg new file mode 100644 index 0000000000..15c8a9716e --- /dev/null +++ b/src/problem2/src/assets/img/tokens/wstETH.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/problem2/src/components/Button/Button.tsx b/src/problem2/src/components/Button/Button.tsx new file mode 100644 index 0000000000..d28b1aff34 --- /dev/null +++ b/src/problem2/src/components/Button/Button.tsx @@ -0,0 +1,77 @@ +import React from "react"; +import styled from "styled-components"; +import Loading from "../Loading/Loading"; +import { ButtonVariant } from "../../types"; + +interface ButtonProps { + variant?: ButtonVariant; + disabled?: boolean; + title: string; + loading?: boolean; + onClick?: () => void; +} + +const ButtonContainer = styled.button>` + /* Shared styles */ + // padding: 16px 0; + height: 64px; + font-size: 20px; + font-weight: 600; + cursor: ${({ disabled }) => (disabled ? "not-allowed" : "pointer")}; + border-radius: 24px; + border: none; + outline: none; + transition: all 0.3s ease; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + gap: 8px; + + margin-top: 16px; + + ${({ variant }) => + variant === "primary" && + ` + background-color: #FFE2F1; + color: #fb118e; + `} + ${({ variant }) => + variant === "secondary" && + ` + background-color: #fb118e; + color: white; + `} + ${({ variant }) => + variant === "disabled" && + ` + background-color: #F5F6FC; + color: #BBBFCF; + `} + + &:hover { + opacity: 0.8; + } +`; + +const Button: React.FC = ({ + variant = "primary", + disabled, + title, + loading, + onClick, +}) => { + return ( + + {loading && } + {title} + + ); +}; + +export default Button; diff --git a/src/problem2/src/components/ConfirmSwapModal/ConfirmSwapModal.styled.ts b/src/problem2/src/components/ConfirmSwapModal/ConfirmSwapModal.styled.ts new file mode 100644 index 0000000000..b5d7cc1668 --- /dev/null +++ b/src/problem2/src/components/ConfirmSwapModal/ConfirmSwapModal.styled.ts @@ -0,0 +1,69 @@ +import styled from "styled-components"; + +const ConfirmSwapModalContainer = styled.div` + position: fixed; + width: 100%; + height: 100vh; + background-color: rgba(0, 0, 0, 0.35); + z-index: 2; + display: flex; + align-items: center; + justify-content: center; +`; + +const ConfirmSwapModalInner = styled.div` + max-width: 375px; + background-color: white; + border-radius: 16px; + padding: 32px; + position: relative; + margin: 16px; +`; + +const ConfirmSwapModalContent = styled.div` + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; +`; + +const Title = styled.h2` + font-size: 20px; + font-weight: 500; + margin-bottom: 16px; + color: black; + margin-top: 16px; +`; + +const Description = styled.p` + font-size: 16px; + color: #6e6e6e; + text-align: center; + line-height: 1.5; +`; + +const TokenSwapInformation = styled.div` + display: flex; + align-items: center; + justify-content: center; + gap: 16px; + margin: 32px 0; +`; + +const CloseModalIcon = styled.img` + position: absolute; + cursor: pointer; + padding: 16px 8px 16px; + top: 16px; + right: 16px; +`; + +export { + ConfirmSwapModalContainer, + ConfirmSwapModalInner, + ConfirmSwapModalContent, + Title, + TokenSwapInformation, + Description, + CloseModalIcon, +}; diff --git a/src/problem2/src/components/ConfirmSwapModal/ConfirmSwapModal.tsx b/src/problem2/src/components/ConfirmSwapModal/ConfirmSwapModal.tsx new file mode 100644 index 0000000000..9d5d6082bc --- /dev/null +++ b/src/problem2/src/components/ConfirmSwapModal/ConfirmSwapModal.tsx @@ -0,0 +1,95 @@ +import { ESwapStatus } from "../../enums"; +import { TokenPriceInfo } from "../../types"; +import Loading from "../Loading/Loading"; +import TokenImage from "../TokenImage/TokenImage"; +import CloseIcon from "../../assets/img/icons/close.svg"; +import { + CloseModalIcon, + ConfirmSwapModalContainer, + ConfirmSwapModalContent, + ConfirmSwapModalInner, + Description, + Title, + TokenSwapInformation, +} from "./ConfirmSwapModal.styled"; + +interface ConfirmSwapModalProps { + swapData: { + amountYouPay: string; + amountYouReceive: string; + tokenYouPay: TokenPriceInfo; + tokenYouReceive: TokenPriceInfo; + }; + swapStatus: ESwapStatus; + onCloseModal: () => void; +} + +const ConfirmSwapModal = (props: ConfirmSwapModalProps) => { + const { swapData, swapStatus, onCloseModal } = props; + + const { amountYouPay, amountYouReceive, tokenYouPay, tokenYouReceive } = + swapData; + + const generateModalContent = () => { + switch (swapStatus) { + case ESwapStatus.SUCCESS: + return ( + <> + Swap Success + + You have successfully swapped {amountYouPay}{" "} + {tokenYouPay.currency} for {amountYouReceive}{" "} + {tokenYouReceive.currency} + + + ); + case ESwapStatus.FAILED: + return ( + <> + Swap Failed + + Something went wrong. Please try again later. + + + ); + case ESwapStatus.IDLE: + return ( + <> + + Confirm Swap + + ); + + default: + return null; + } + }; + return ( + + + + + + {generateModalContent()} + + + + {amountYouPay} {swapData.tokenYouPay.currency} + + + + + {amountYouReceive} {tokenYouReceive.currency} + + + + + + ); +}; + +export default ConfirmSwapModal; diff --git a/src/problem2/src/components/Loading/Loading.tsx b/src/problem2/src/components/Loading/Loading.tsx new file mode 100644 index 0000000000..50d8de228c --- /dev/null +++ b/src/problem2/src/components/Loading/Loading.tsx @@ -0,0 +1,30 @@ +import styled, { keyframes } from "styled-components"; + +import LoadingIcon from "../../assets/img/icons/loading.svg"; + +const rotate = keyframes` + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +`; + +const LoadingContainer = styled.div``; + +const LoadingContent = styled.img` + width: 32px; + height: 32px; + animation: ${rotate} 2s linear infinite; +`; + +const Loading = () => { + return ( + + + + ); +}; + +export default Loading; diff --git a/src/problem2/src/components/SelectTokensModal/SelectTokenModal.styled.ts b/src/problem2/src/components/SelectTokensModal/SelectTokenModal.styled.ts new file mode 100644 index 0000000000..7fb0842dfa --- /dev/null +++ b/src/problem2/src/components/SelectTokensModal/SelectTokenModal.styled.ts @@ -0,0 +1,120 @@ +import styled from "styled-components"; + +const SelectTokensModalContainer = styled.div` + position: fixed; + width: 100%; + height: 100vh; + background-color: rgba(0, 0, 0, 0.35); + z-index: 2; + display: flex; + align-items: center; + justify-content: center; +`; + +const SelectTokensModalInner = styled.div` + width: 375px; + padding-bottom: 32px; + background-color: white; + border-radius: 16px; +`; + +const SelectTokensModalHeader = styled.div` + // padding-left: 24px; + padding: 16px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +`; + +const SelectTokenModalSearchInputBox = styled.div` + border-radius: 12px; + background-color: white; + border: 1px solid #d2d9ee; + display: flex; + align-items: center; + overflow: hidden; + padding: 8px; + margin-top: 8px; +`; + +const SelectTokenModalSearchInput = styled.input` + padding: 4px 0; + border: none; + outline: none; + color: rgb(34, 34, 34); + background-color: white; + &::placeholder { + color: rgb(125, 125, 125); + } + font-size: 15px; + font-weight: 500; + width: 100%; + // margin-top: 16px; + margin-left: 8px; +`; + +const SearchInputIcon = styled.img` + width: 20px; + height: 20px; +`; + +const Title = styled.h2` + font-size: 24px; + font-weight: 700; + color: rgb(34, 34, 34); +`; + +const CloseModalIcon = styled.img` + cursor: pointer; + padding: 16px 8px 16px; +`; + +const SelectTokensModalContent = styled.div` + height: 400px; + overflow-y: auto; + overflow-x: hidden; +`; + +const SubTitle = styled.h3` + font-size: 14px; + font-weight: 700; + color: rgb(155, 155, 155); + width: 100%; + margin: 16px; +`; + +const TokenImageItem = styled.div` + display: flex; + align-items: center; + justify-content: space-between; + cursor: pointer; + margin-bottom: 16px; + padding: 8px 16px; + border-radius: 8px; + transition: 0.3s; + &:hover { + background-color: #d2d9ee60; + } +`; + +const Currency = styled.div` + font-size: 16px; + font-weight: 700; + color: rgb(34, 34, 34); + width: 100%; + width: 100%; + height: 100%; +`; + +export { + SelectTokensModalContainer, + SelectTokensModalInner, + SelectTokensModalHeader, + Title, + SubTitle, + CloseModalIcon, + SelectTokensModalContent, + TokenImageItem, + Currency, + SelectTokenModalSearchInput, + SelectTokenModalSearchInputBox, + SearchInputIcon, +}; diff --git a/src/problem2/src/components/SelectTokensModal/SelectTokensModal.tsx b/src/problem2/src/components/SelectTokensModal/SelectTokensModal.tsx new file mode 100644 index 0000000000..701082ae09 --- /dev/null +++ b/src/problem2/src/components/SelectTokensModal/SelectTokensModal.tsx @@ -0,0 +1,86 @@ +import { TokenPriceInfo } from "../../types"; +import TokenImage from "../TokenImage/TokenImage"; +import CloseIcon from "../../assets/img/icons/close.svg"; +import SearchIcon from "../../assets/img/icons/search.svg"; +import { + CloseModalIcon, + Currency, + SearchInputIcon, + SelectTokenModalSearchInput, + SelectTokenModalSearchInputBox, + SelectTokensModalContainer, + SelectTokensModalContent, + SelectTokensModalHeader, + SelectTokensModalInner, + SubTitle, + Title, + TokenImageItem, +} from "./SelectTokenModal.styled"; +import Flex from "../../styles/Flex.styled"; + +interface SelectTokensModalProps { + tokenPriceInfo: TokenPriceInfo[]; + searchTokenValue: string; + onCloseModal: () => void; + onSelectToken: (token: TokenPriceInfo) => void; + onChangeSearchToken: (e: React.ChangeEvent) => void; +} + +const SelectTokensModal = ({ + tokenPriceInfo, + onCloseModal, + onSelectToken, + onChangeSearchToken, + searchTokenValue, +}: SelectTokensModalProps) => { + return ( + + + + + Select Token + + + + + + + + + + {tokenPriceInfo.length ? ( + <> + + {searchTokenValue + ? "Search Results" + : "Popular Token"} + + {tokenPriceInfo?.map( + (token: TokenPriceInfo, index: number) => ( + onSelectToken(token)} + > + {token.currency} + + + ) + )} + + ) : ( + No result found. + )} + + + + ); +}; + +export default SelectTokensModal; diff --git a/src/problem2/src/components/SwapSection/SwapSection.styled.ts b/src/problem2/src/components/SwapSection/SwapSection.styled.ts new file mode 100644 index 0000000000..01d0876b50 --- /dev/null +++ b/src/problem2/src/components/SwapSection/SwapSection.styled.ts @@ -0,0 +1,94 @@ +import styled from "styled-components"; + +const SwapSectionContainer = styled.div` + border: 1px solid rgb(249, 249, 249); + border-radius: 24px; + padding: 16px; + background-color: rgb(249, 249, 249); +`; + +const Title = styled.h3` + font-size: 16px; + font-weight: 700; + color: rgb(34, 34, 34); + margin-bottom: 16px; + width: 100%; +`; + +const InputContent = styled.div` + display: flex; + justify-content: space-between; + align-items: center; +`; + +const TextInput = styled.input` + padding: 8px 0; + border: none; + outline: none; + color: rgb(34, 34, 34); + background-color: rgb(249, 249, 249); + &::placeholder { + color: rgb(125, 125, 125); + } + font-size: 32px; + font-weight: 700; + margin-right: 32px; + width: 60%; +`; + +const PriceInUSD = styled.p` + color: rgb(125, 125, 125); + font-size: 14px; + margin-top: 16px; + width: 100%; + font-weight: 600; +`; + +const SelectTokenButton = styled.div` + background-color: #fb118e; + padding: 12px 16px; + color: white; + display: flex; + border-radius: 32px; + align-items: center; + justify-content: space-between; + cursor: pointer; + transition: 0.3s; + &:hover { + opacity: 0.6; + } +`; + +const SelectTokenButtonContent = styled.div` + display: flex; + align-items: center; +`; + +const SelectTokenButtonTitle = styled.p` + color: white; + font-size: 14px; + font-weight: 700; + margin-right: 8px; +`; + +const SelectTokenButtonImage = styled.div` + margin-right: 8px; +`; + +const SelectTokenButtonIcon = styled.img` + width: 16px; + height: 16px; +`; + +export { + SwapSectionContainer, + Title, + InputContent, + TextInput, + PriceInUSD, + SelectTokenButton, + SelectTokenButtonContent, + SelectTokenButtonTitle, + SelectTokenButtonImage, + SelectTokenButtonIcon, +}; diff --git a/src/problem2/src/components/SwapSection/SwapSection.tsx b/src/problem2/src/components/SwapSection/SwapSection.tsx new file mode 100644 index 0000000000..d154e76423 --- /dev/null +++ b/src/problem2/src/components/SwapSection/SwapSection.tsx @@ -0,0 +1,93 @@ +import { useMemo } from "react"; + +import ChevronDownWhiteIcon from "../../assets/img/icons/chevron-down-white.svg"; +import { TokenPriceInfo } from "../../types"; +import TokenImage from "../TokenImage/TokenImage"; +import { + InputContent, + PriceInUSD, + SelectTokenButton, + SelectTokenButtonContent, + SelectTokenButtonIcon, + SelectTokenButtonImage, + SelectTokenButtonTitle, + SwapSectionContainer, + TextInput, + Title, +} from "./SwapSection.styled"; +import { exceptThisSymbols } from "../../constants"; + +interface SwapSectionProps { + title: string; + amountInput: string; + isDisabledInput?: boolean; + selectedToken: TokenPriceInfo; + getAmountInput?: (amount: string) => void; + onToggleModal?: () => void; +} + +const SwapSection = ({ + title, + amountInput, + getAmountInput, + selectedToken, + isDisabledInput = false, + onToggleModal, +}: SwapSectionProps) => { + const handleAmountChange = (e: React.ChangeEvent) => { + getAmountInput && getAmountInput(e.target.value); + }; + + const USDPriceConverted = useMemo(() => { + if (!selectedToken || !amountInput) return null; + return selectedToken.price * parseFloat(amountInput); + }, [amountInput, selectedToken]); + + return ( + <> + + {title} + + + exceptThisSymbols.includes(e.key) && + e.preventDefault() + } + /> + + + {selectedToken?.currency && ( + + + + )} + + + {selectedToken?.currency || "Select Token"} + + + + + + + ${USDPriceConverted || " - "} + + + ); +}; + +export default SwapSection; diff --git a/src/problem2/src/components/TokenImage/TokenImage.styled.ts b/src/problem2/src/components/TokenImage/TokenImage.styled.ts new file mode 100644 index 0000000000..5ea67becd2 --- /dev/null +++ b/src/problem2/src/components/TokenImage/TokenImage.styled.ts @@ -0,0 +1,8 @@ +import styled from "styled-components"; + +const TokenImageContainer = styled.img` + width: ${(props) => props.width}; + height: ${(props) => props.height}; +`; + +export { TokenImageContainer }; diff --git a/src/problem2/src/components/TokenImage/TokenImage.tsx b/src/problem2/src/components/TokenImage/TokenImage.tsx new file mode 100644 index 0000000000..46e689f2f9 --- /dev/null +++ b/src/problem2/src/components/TokenImage/TokenImage.tsx @@ -0,0 +1,27 @@ +import { memo } from "react"; + +import { images } from "../../assets/img"; +import { TokenImageContainer } from "./TokenImage.styled"; + +interface TokenImageProps { + currency: string; + width?: string; + height?: string; +} + +const TokenImage = ({ + currency, + width = "44px", + height = "44px", +}: TokenImageProps) => { + return ( + + ); +}; + +export default memo(TokenImage); diff --git a/src/problem2/src/constants/index.ts b/src/problem2/src/constants/index.ts new file mode 100644 index 0000000000..2d22e13e52 --- /dev/null +++ b/src/problem2/src/constants/index.ts @@ -0,0 +1,5 @@ +export const DEFAULT_CURRENCY_YOU_PAY = "ETH"; +export const MOCK_TOKEN_PRICE_INFO_API = + "https://interview.switcheo.com/prices.json"; + +export const exceptThisSymbols = ["e", "E", "+", "-"]; diff --git a/src/problem2/src/enums/index.ts b/src/problem2/src/enums/index.ts new file mode 100644 index 0000000000..ae8c69338b --- /dev/null +++ b/src/problem2/src/enums/index.ts @@ -0,0 +1,10 @@ +export enum EInputType { + PAY = "pay", + RECEIVE = "receive", +} + +export enum ESwapStatus { + SUCCESS = "success", + FAILED = "failed", + IDLE = "idle", +} diff --git a/src/problem2/src/index.css b/src/problem2/src/index.css new file mode 100644 index 0000000000..ddb5a806d9 --- /dev/null +++ b/src/problem2/src/index.css @@ -0,0 +1,201 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + color: rgba(255, 255, 255, 0.87); + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +/* button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} */ + +/* @media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} */ + +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +main, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section { + display: block; +} +/* HTML5 hidden-attribute fix for newer browsers */ +*[hidden] { + display: none; +} +body { + line-height: 1; +} +menu, +ol, +ul { + list-style: none; +} +blockquote, +q { + quotes: none; +} +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ""; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* Chrome, Safari, Edge, Opera */ +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ +input[type="number"] { + -moz-appearance: textfield; +} diff --git a/src/problem2/src/main.tsx b/src/problem2/src/main.tsx new file mode 100644 index 0000000000..f9f4d613f2 --- /dev/null +++ b/src/problem2/src/main.tsx @@ -0,0 +1,10 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App.tsx"; +import "./index.css"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + +); diff --git a/src/problem2/src/pages/SwapPage/SwapPage.styled.ts b/src/problem2/src/pages/SwapPage/SwapPage.styled.ts new file mode 100644 index 0000000000..1440ef70ac --- /dev/null +++ b/src/problem2/src/pages/SwapPage/SwapPage.styled.ts @@ -0,0 +1,57 @@ +import styled from "styled-components"; + +const SwapPageContainer = styled.div` + height: 100vh; + padding: 0 16px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +`; + +const SwapPageInner = styled.div` + max-width: 500px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-radius: 32px; + border: 1px solid #d2d9ee; + padding: 12px; +`; + +const Heading = styled.h1` + font-size: 56px; + font-weight: 700; + margin-bottom: 32px; + color: rgb(34, 34, 34); + text-align: center; + width: 100%; +`; + +const SwapInputArrowButton = styled.div` + background-color: #f5f5f5; + padding: 16px; + margin: -28px; + border-radius: 16px; + display: flex; + align-items: center; + justify-content: center; + border: 6px solid white; + position: relative; + z-index: 1; + cursor: pointer; +`; + +const SwapArrowIcon = styled.img` + width: 20px; + height: 20px; +`; + +export { + SwapPageContainer, + SwapPageInner, + Heading, + SwapInputArrowButton, + SwapArrowIcon, +}; diff --git a/src/problem2/src/pages/SwapPage/SwapPage.tsx b/src/problem2/src/pages/SwapPage/SwapPage.tsx new file mode 100644 index 0000000000..6ae1e473e4 --- /dev/null +++ b/src/problem2/src/pages/SwapPage/SwapPage.tsx @@ -0,0 +1,314 @@ +import axios from "axios"; +import { useEffect, useRef, useState } from "react"; + +import { TokenPriceInfo } from "../../types"; +import { EInputType, ESwapStatus } from "../../enums"; +import { + SwapPageContainer, + SwapPageInner, + Heading, + SwapArrowIcon, + SwapInputArrowButton, +} from "./SwapPage.styled"; +import SwapSection from "../../components/SwapSection/SwapSection"; +import { MOCK_TOKEN_PRICE_INFO_API } from "../../constants"; +import SelectTokensModal from "../../components/SelectTokensModal/SelectTokensModal"; +import ArrowDownIcon from "../../assets/img/icons/arrow-down.svg"; +import Button from "../../components/Button/Button"; +import { delay } from "../../utils/delay"; +import ConfirmSwapModal from "../../components/ConfirmSwapModal/ConfirmSwapModal"; + +interface SelectedToken { + youPay: TokenPriceInfo; + youReceive: TokenPriceInfo; +} + +interface AmountOutput { + amountYouPay: string; + amountYouReceive: string; +} + +const SwapPage = () => { + const [tokenPriceInfo, setTokenPriceInfo] = useState([]); + + const tokenPriceInfoInitialState = useRef([]); + + const [selectedToken, setSelectedToken] = useState<{ + youPay: TokenPriceInfo; + youReceive: TokenPriceInfo; + }>({ + youPay: {} as TokenPriceInfo, + youReceive: {} as TokenPriceInfo, + }); + + const [amountOutput, setAmountOutput] = useState({ + amountYouPay: "", + amountYouReceive: "", + }); + + const [searchTokenValue, setSearchTokenValue] = useState(""); + + const [isConnectedWallet, setIsConnectedWallet] = useState(false); + const [loadingButton, setLoadingButton] = useState(false); + + const [isShowConfirmSwapModal, setIsShowConfirmSwapModal] = useState(false); + + const [swapStatus, setSwapStatus] = useState(ESwapStatus.IDLE); + + const getPrices = async () => { + try { + const response = await axios.get(MOCK_TOKEN_PRICE_INFO_API); + if (response && response.data) { + setTokenPriceInfo(response.data); + tokenPriceInfoInitialState.current = response.data; + } + } catch (error) { + console.log(error); + } + }; + + const handleAmountInput = (type: EInputType, amountInput: string) => { + switch (type) { + case EInputType.PAY: { + setAmountOutput({ + ...amountOutput, + amountYouPay: amountInput, + }); + break; + } + + default: { + return null; + } + } + }; + + const calculateAmountYouReceive = (selectedToken: SelectedToken) => { + const amountYouPay = parseFloat(amountOutput.amountYouPay); + const tokenPrice = tokenPriceInfo.find( + (token) => token.currency === selectedToken.youReceive.currency + ); + if (tokenPrice) { + const amountYouReceive = + (amountYouPay * selectedToken.youPay.price) / tokenPrice.price; + setAmountOutput({ + ...amountOutput, + amountYouReceive: amountYouReceive.toString(), + }); + } + }; + + const [modalState, setModalState] = useState({ + status: false, + modalType: "", + }); + + const handleToggleModal = (inputType: EInputType) => { + setModalState({ + status: !modalState.status, + modalType: inputType, + }); + }; + + const handleCloseModal = () => { + setModalState({ + status: false, + modalType: "", + }); + }; + + const handleSelectToken = (token: TokenPriceInfo) => { + switch (modalState.modalType) { + case EInputType.PAY: { + setSelectedToken({ + ...selectedToken, + youPay: token, + }); + break; + } + + case EInputType.RECEIVE: { + setSelectedToken({ + ...selectedToken, + youReceive: token, + }); + break; + } + + default: { + return null; + } + } + handleCloseModal(); + }; + + const handleChangeSearchToken = ( + e: React.ChangeEvent + ) => { + setSearchTokenValue(e.target.value); + }; + + const handleSearchPriceInModal = (searchValue: string) => { + if (!searchValue) + return setTokenPriceInfo(tokenPriceInfoInitialState.current); + const searchResult = tokenPriceInfo.filter((token) => + token.currency.toLowerCase().includes(searchValue.toLowerCase()) + ); + setTokenPriceInfo(searchResult); + }; + + useEffect(() => { + handleSearchPriceInModal(searchTokenValue); + }, [searchTokenValue]); + + useEffect(() => { + getPrices(); + }, []); + + useEffect(() => { + if (selectedToken.youReceive.currency) + calculateAmountYouReceive(selectedToken); + }, [selectedToken, amountOutput.amountYouPay]); + + const swapInputArrow = () => { + setSelectedToken({ + youPay: selectedToken.youReceive, + youReceive: selectedToken.youPay, + }); + setAmountOutput({ + amountYouPay: amountOutput.amountYouReceive, + amountYouReceive: amountOutput.amountYouPay, + }); + }; + + const connectWallet = async () => { + try { + setLoadingButton(true); + //Call API or call method to connect wallet + await delay(2000); + //Set connected wallet status if success + setIsConnectedWallet(true); + } catch (error) { + console.log(error); + //Set connected wallet status if failed + setIsConnectedWallet(false); + } finally { + setLoadingButton(false); + } + }; + + const generateButton = () => { + const isValidSwapToken = + selectedToken.youPay.currency && + selectedToken.youReceive.currency && + amountOutput.amountYouPay && + amountOutput.amountYouReceive; + + if (isConnectedWallet && !isValidSwapToken) { + return