├── .env.local.template ├── .envrc ├── .eslintignore ├── .eslintrc.json ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ └── bug-report.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .gitmodules ├── .husky └── pre-commit ├── .lintstagedrc.js ├── .prettierrc ├── LICENSE ├── README.md ├── docs └── canvas.md ├── next.config.mjs ├── package.json ├── postcss.config.mjs ├── public ├── ahrefs_35cc25b0147733d39d875e8ae541f56f6de0925fcc49bec17bcb322e610594bf ├── favicon_new.ico ├── files │ ├── CCC-Handbook.pdf │ ├── airdrop │ │ └── terms-and-conditions.pdf │ ├── generate_polynomials.py │ ├── whitepaper.pdf │ └── world.json ├── imgs │ ├── canvas-badge │ │ ├── Ambient.webp │ │ ├── Cog.png │ │ ├── EAS.png │ │ ├── FLock-x.png │ │ ├── Flock.png │ │ ├── Panda.png │ │ ├── Passport.png │ │ ├── Pencils.png │ │ ├── Scroller.png │ │ ├── Scrolly.png │ │ ├── SymTrader.png │ │ ├── Symbiosis.png │ │ ├── Zebra.webp │ │ ├── badgePlaceholder.svg │ │ ├── badges-header-bg.webp │ │ ├── featured-badges-bg-mobile.webp │ │ └── featured-badges-bg.webp │ ├── canvas │ │ ├── Badge_Ethereum_Year.png │ │ ├── NFTCardPlaceholder.svg │ │ ├── NFTPlaceholder.svg │ │ ├── OriginsNFT.svg │ │ ├── Penguin1.webp │ │ ├── ScrollCanvas.svg │ │ ├── Scrolly_Coding.webp │ │ ├── Scrolly_Coding_s.webp │ │ ├── Scrolly_Wen.png │ │ ├── Scrolly_Wen.webp │ │ ├── avatarPlaceholder.svg │ │ ├── badgePlaceholder.svg │ │ ├── canvas.gif │ │ ├── heartbeat.webp │ │ ├── scroll.mp4 │ │ ├── support │ │ │ ├── contact.svg │ │ │ ├── discord.svg │ │ │ ├── telegram.svg │ │ │ └── x.svg │ │ └── warning.png │ ├── career │ │ ├── career-header-bg.webp │ │ ├── join-us-m.png │ │ ├── join-us.png │ │ ├── news │ │ │ ├── news-cover-1.png │ │ │ ├── news-cover-2.png │ │ │ └── news-cover-3.png │ │ ├── work-approach-1.jpg │ │ ├── work-approach-2.jpg │ │ ├── work-approach-3.jpg │ │ ├── work-approach-4.jpg │ │ ├── work-approach-5.jpg │ │ └── work-approach-6.jpg │ ├── community │ │ ├── globe │ │ │ ├── 0xblob.jpg │ │ │ ├── Berlin.jpg │ │ │ ├── CostaRica.jpg │ │ │ ├── KL.jpg │ │ │ ├── TGU.jpg │ │ │ ├── abcafrica.jpg │ │ │ ├── akindo.jpg │ │ │ ├── antalpha.png │ │ │ ├── atx.jpg │ │ │ ├── barcelona.jpg │ │ │ ├── berkeley.jpg │ │ │ ├── bewater.jpg │ │ │ ├── biteye.jpg │ │ │ ├── bogota.jpg │ │ │ ├── bolivia.jpg │ │ │ ├── borderless.jpg │ │ │ ├── buidlers.jpg │ │ │ ├── cryptist.jpg │ │ │ ├── cryptocanal.jpg │ │ │ ├── elsalva.jpg │ │ │ ├── espaiocripto.jpg │ │ │ ├── ethbeijing.png │ │ │ ├── ethdenver.jpg │ │ │ ├── ethgathering.jpg │ │ │ ├── ethsamba.jpg │ │ │ ├── franklin.jpg │ │ │ ├── guate.jpg │ │ │ ├── itu.png │ │ │ ├── japan.jpg │ │ │ ├── kyiv.jpg │ │ │ ├── lima.jpg │ │ │ ├── mich.jpg │ │ │ ├── nonce.jpg │ │ │ ├── padthai.jpg │ │ │ ├── prague.jpg │ │ │ ├── sbc.jpg │ │ │ ├── taipei.jpg │ │ │ ├── tum.jpg │ │ │ ├── uruguay.jpg │ │ │ ├── usc.svg │ │ │ ├── warsaw.jpg │ │ │ ├── web3afrika.jpg │ │ │ └── web3samaj.jpg │ │ └── pin.svg │ ├── ecosystem │ │ ├── ecosystem-bg-mobile.webp │ │ └── ecosystem-bg.webp │ ├── homepage │ │ ├── blog │ │ │ ├── founderLetter │ │ │ │ ├── GroupPhotos.png │ │ │ │ ├── MainnetDigitalAssets.png │ │ │ │ └── scroll_mainnet_live.png │ │ │ ├── kzg │ │ │ │ ├── interpolation.png │ │ │ │ └── zkrollup.png │ │ │ ├── poster_12.jpg │ │ │ ├── poster_12.webp │ │ │ ├── poster_cover_1.jpg │ │ │ ├── poster_cover_10.jpg │ │ │ ├── poster_cover_11.jpg │ │ │ ├── poster_cover_12.jpg │ │ │ ├── poster_cover_13.jpg │ │ │ ├── poster_cover_13_og.png │ │ │ ├── poster_cover_14.png │ │ │ ├── poster_cover_14_og.png │ │ │ ├── poster_cover_15.png │ │ │ ├── poster_cover_15_og.png │ │ │ ├── poster_cover_16.png │ │ │ ├── poster_cover_16_1.png │ │ │ ├── poster_cover_16_1_og.png │ │ │ ├── poster_cover_16_og.png │ │ │ ├── poster_cover_17.png │ │ │ ├── poster_cover_17_og.png │ │ │ ├── poster_cover_18.png │ │ │ ├── poster_cover_18_og.png │ │ │ ├── poster_cover_19.png │ │ │ ├── poster_cover_19_og.png │ │ │ ├── poster_cover_2.jpg │ │ │ ├── poster_cover_20.png │ │ │ ├── poster_cover_20_og.png │ │ │ ├── poster_cover_21.png │ │ │ ├── poster_cover_21_og.png │ │ │ ├── poster_cover_3.jpg │ │ │ ├── poster_cover_4.jpg │ │ │ ├── poster_cover_5.jpg │ │ │ ├── poster_cover_6.jpg │ │ │ ├── poster_cover_7.jpg │ │ │ ├── poster_cover_8.jpg │ │ │ ├── poster_cover_9.jpg │ │ │ ├── proofGeneration │ │ │ │ ├── tracetable_1.png │ │ │ │ └── tracetable_2.png │ │ │ └── scrollOriginsNFT │ │ │ │ ├── Illustration.gif │ │ │ │ ├── cubic.svg │ │ │ │ ├── quartic.svg │ │ │ │ ├── quintic.svg │ │ │ │ ├── rainbow-background.svg │ │ │ │ └── rainbow-stroke.svg │ │ ├── landing-bg-mobile.webp │ │ ├── landing-bg.webp │ │ ├── landing-blog-1.webp │ │ └── landing-blog-2.webp │ ├── logo │ │ ├── StakeStone.jpeg │ │ ├── applepay.svg │ │ ├── arbitrum.png │ │ ├── bank.svg │ │ ├── base.png │ │ ├── binance.svg │ │ ├── bitget.svg │ │ ├── bithumb.svg │ │ ├── blast.jpeg │ │ ├── bsc.svg │ │ ├── bybit.svg │ │ ├── free.png │ │ ├── googlepay.svg │ │ ├── hashkey.jpeg │ │ ├── huobi.svg │ │ ├── kelpdao.svg │ │ ├── kucoin.svg │ │ ├── logo.svg │ │ ├── mastercard.svg │ │ ├── more.svg │ │ ├── okx.svg │ │ ├── optimism.png │ │ ├── polygon.png │ │ ├── scroll.svg │ │ ├── solana.png │ │ ├── stargate.jpeg │ │ ├── stargate.svg │ │ ├── starknet.svg │ │ ├── sui.svg │ │ ├── visa.svg │ │ └── zksync.jpeg │ ├── nft │ │ ├── flow-initial-step.svg │ │ ├── flow-question-1.svg │ │ ├── flow-question-2.svg │ │ └── placeholder.svg │ ├── rollup │ │ └── nodata.png │ ├── sessions │ │ ├── 0-BG-PNG.png │ │ ├── 1-Left-TallTower-PNG.png │ │ ├── 2-Left-Building-PNG.png │ │ ├── 2-Right-Building-PNG.png │ │ ├── 3-Humans-png.png │ │ ├── LeftCloud.png │ │ ├── Scroll-Eth.png │ │ ├── Scroll-Layer1.png │ │ ├── Scroll-Layer2-back.png │ │ ├── Scroll-Layer3.png │ │ ├── gas.svg │ │ └── tokens │ │ │ ├── Huma.svg │ │ │ ├── Loop.jpg │ │ │ ├── Mitosis.png │ │ │ ├── Pencils.jpeg │ │ │ ├── Scribe.png │ │ │ ├── Tranchess.svg │ │ │ ├── Trust.jpg │ │ │ ├── USDQ.svg │ │ │ ├── WBTC.svg │ │ │ ├── agETH.png │ │ │ ├── sUSDe.svg │ │ │ ├── solvBTC.png │ │ │ ├── staYSTONE.svg │ │ │ ├── stone-white.svg │ │ │ ├── stone.svg │ │ │ ├── stoneQueen.svg │ │ │ ├── turPSTONE.svg │ │ │ ├── weETH.png │ │ │ ├── weth.png │ │ │ ├── wrsETH.svg │ │ │ └── wstETH.svg │ ├── sticker │ │ ├── Andre1.jpg │ │ ├── Andre2.jpg │ │ ├── Coincuddle1.png │ │ ├── Coincuddle2.png │ │ ├── Cozy1.png │ │ ├── Cozy2.png │ │ ├── EssisW.eth1.gif │ │ ├── EssisW.eth2.jpg │ │ ├── Magda1.png │ │ ├── Magda2.png │ │ ├── MillionDollars1.png │ │ ├── MillionDollars2.png │ │ ├── Shallot1.png │ │ ├── Shallot2.png │ │ ├── Yol1.png │ │ ├── Yol2.png │ │ ├── afifridwan1.gif │ │ ├── afifridwan2.gif │ │ ├── fomomonstr1.png │ │ └── fomomonstr2.png │ ├── story │ │ ├── story-blog-cover-1.png │ │ ├── story-blog-cover-2.png │ │ ├── story-hero-bg-375.svg │ │ ├── story-hero-bg-desktop.svg │ │ ├── story-hero-bg-mobile.svg │ │ ├── story-initial-1.svg │ │ ├── story-initial-2.svg │ │ ├── story-initial-3.svg │ │ ├── story-partener-1.svg │ │ ├── story-partener-2.svg │ │ ├── story-partener-3.svg │ │ ├── story-partener-4.svg │ │ ├── story-partener-5.png │ │ ├── story-partener-6.svg │ │ └── story-value.svg │ └── token │ │ ├── STONE.svg │ │ ├── SolvBTC.png │ │ ├── USDe.svg │ │ ├── rsETH.svg │ │ ├── sSCR.svg │ │ ├── sUSDe.svg │ │ ├── scr.svg │ │ └── scrETH.svg ├── index.html ├── logo.png ├── logo.svg ├── logo_walletconnect.png ├── manifest.json ├── og_canvas.png ├── og_canvas_and_badges.png ├── og_community.png ├── og_sSCR.png ├── og_scrETH.png ├── og_scroll.png ├── og_scroll_brand.png ├── og_scroll_origins_nft.png ├── og_scroll_sessions.png ├── og_sessions.png ├── og_sticker_vote.png ├── robots.txt ├── sitemap.xml ├── tokenomics │ ├── circulatingSupply.txt │ └── totalSupply.txt ├── twitter_canvas.png ├── twitter_canvas_and_badges.png ├── twitter_community.png ├── twitter_sSCR.png ├── twitter_scrETH.png ├── twitter_scroll_origins_nft.png ├── twitter_scroll_sessions.png ├── twitter_sessions.png ├── twitter_sticker_vote.png └── videos │ ├── landing-tech.mp4 │ └── landing-tech.webm ├── renovate.json ├── scripts ├── download-blog-posts.data.json.mjs └── turbo-ignore.sh ├── sentry.client.config.ts ├── sentry.edge.config.ts ├── sentry.server.config.ts ├── src ├── apis │ ├── blog.ts │ ├── bridge.ts │ ├── canvas-badge.ts │ ├── canvas.ts │ ├── community.ts │ ├── dynamic.ts │ ├── ecosystem.ts │ ├── ens.ts │ ├── nft.ts │ ├── rollupscan.ts │ └── sessions.ts ├── app │ ├── SCR-sSCR │ │ ├── Explaination │ │ │ ├── data.ts │ │ │ └── index.tsx │ │ ├── Header │ │ │ ├── GetSCRDialog.tsx │ │ │ ├── GetSCRItem.tsx │ │ │ ├── Statistic.tsx │ │ │ ├── data.ts │ │ │ └── index.tsx │ │ └── page.tsx │ ├── _canvas-and-badges │ │ ├── Badges │ │ │ ├── BadgeList │ │ │ │ ├── BadgeCard.tsx │ │ │ │ ├── BadgeMasonry.tsx │ │ │ │ ├── Error.tsx │ │ │ │ ├── NoData.tsx │ │ │ │ └── index.tsx │ │ │ └── index.tsx │ │ ├── FeaturedBadges │ │ │ └── index.tsx │ │ ├── Header │ │ │ ├── Counter.tsx │ │ │ ├── Statistic.tsx │ │ │ └── index.tsx │ │ ├── Introduction │ │ │ └── index.tsx │ │ ├── components │ │ │ └── Select.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── _canvas │ │ ├── Canvas.tsx │ │ ├── Dashboard │ │ │ ├── ActionBox │ │ │ │ └── index.tsx │ │ │ ├── BadgeDetailDialog │ │ │ │ ├── UpgradeAction.tsx │ │ │ │ └── index.tsx │ │ │ ├── BadgeWall │ │ │ │ ├── Badge.tsx │ │ │ │ └── index.tsx │ │ │ ├── BadgesDialog │ │ │ │ ├── BadgeItem.tsx │ │ │ │ └── index.tsx │ │ │ ├── CustomizeDisplayDialog │ │ │ │ ├── Transfer │ │ │ │ │ ├── Item.tsx │ │ │ │ │ ├── Overlay.tsx │ │ │ │ │ ├── TransferItem.tsx │ │ │ │ │ ├── TransferList.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── FirstBadgeMask.tsx │ │ │ ├── NameDialog │ │ │ │ └── index.tsx │ │ │ ├── ReferDialog │ │ │ │ ├── coupon.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── record.tsx │ │ │ └── index.tsx │ │ ├── [address] │ │ │ └── page.tsx │ │ ├── badge-contract │ │ │ └── [address] │ │ │ │ ├── Back.tsx │ │ │ │ ├── BadgeContract.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ ├── badge │ │ │ └── [id] │ │ │ │ ├── BackToCanvas.tsx │ │ │ │ ├── Badge.tsx │ │ │ │ ├── BadgeDetail.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ ├── components │ │ │ ├── BadgeDesc │ │ │ │ └── index.tsx │ │ │ ├── Button │ │ │ │ └── index.tsx │ │ │ ├── Dialog │ │ │ │ └── index.tsx │ │ │ ├── Empty │ │ │ │ └── index.tsx │ │ │ ├── GridBg │ │ │ │ └── index.tsx │ │ │ ├── Statistic │ │ │ │ └── index.tsx │ │ │ └── Tooltip │ │ │ │ └── index.tsx │ │ ├── invite │ │ │ └── [code] │ │ │ │ ├── Invite.tsx │ │ │ │ └── page.tsx │ │ ├── loading │ │ │ └── index.tsx │ │ ├── mint │ │ │ ├── flow │ │ │ │ ├── FirstBadgeStep.tsx │ │ │ │ ├── InsufficientDialog │ │ │ │ │ └── index.tsx │ │ │ │ ├── MintStep.tsx │ │ │ │ ├── NameStep.tsx │ │ │ │ ├── StepWrapper.tsx │ │ │ │ ├── TermsAndConditionsDialog.tsx │ │ │ │ └── index.tsx │ │ │ ├── home │ │ │ │ ├── MintFlowDialog │ │ │ │ │ └── index.tsx │ │ │ │ ├── ReferralCodeInput.tsx │ │ │ │ └── index.tsx │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ │ ├── page.tsx │ │ └── wrongNetwork │ │ │ └── index.tsx │ ├── _components │ │ ├── FounderClub │ │ │ ├── Founders.tsx │ │ │ ├── Protocols.tsx │ │ │ └── index.tsx │ │ ├── Hero │ │ │ └── index.tsx │ │ ├── Portal │ │ │ ├── PortalCard.tsx │ │ │ └── index.tsx │ │ ├── Tech │ │ │ ├── index.tsx │ │ │ └── placeholder.js │ │ └── Vision │ │ │ ├── VisionCard.tsx │ │ │ └── index.tsx │ ├── _story │ │ ├── BuildingStory │ │ │ ├── StoryCard.tsx │ │ │ └── index.tsx │ │ ├── Header │ │ │ └── index.tsx │ │ ├── Initail │ │ │ ├── Cooperation.tsx │ │ │ ├── InlineAvatar.tsx │ │ │ ├── Line.tsx │ │ │ └── index.tsx │ │ ├── JoinTeam │ │ │ └── index.tsx │ │ ├── TeamMembers │ │ │ └── index.tsx │ │ ├── TechPrinciple │ │ │ └── index.tsx │ │ ├── Value │ │ │ └── index.tsx │ │ └── page.tsx │ ├── airdrop-faq │ │ ├── components │ │ │ └── tableOfContents.tsx │ │ ├── detail.tsx │ │ ├── page.tsx │ │ └── scroll-airdrop-faq.mdx │ ├── api │ │ └── sentry-example-api │ │ │ └── route.ts │ ├── archive │ │ └── 20230308 │ │ │ └── terms-and-conditions │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ ├── blog │ │ ├── [blogId] │ │ │ ├── MoreBlogs.tsx │ │ │ ├── actions.ts │ │ │ ├── components │ │ │ │ └── tableOfContents.tsx │ │ │ ├── detail.tsx │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── brand-kit │ │ ├── Assets │ │ │ ├── AssetCard.tsx │ │ │ └── index.tsx │ │ ├── Header │ │ │ └── index.tsx │ │ └── page.tsx │ ├── bridge │ │ ├── Send │ │ │ ├── Buy.tsx │ │ │ ├── Claim.tsx │ │ │ ├── Deposit.tsx │ │ │ ├── Exchanges.tsx │ │ │ ├── OfficialBridge.tsx │ │ │ ├── SendTransaction │ │ │ │ ├── ApprovalDialog.tsx │ │ │ │ ├── BalanceInput.tsx │ │ │ │ ├── CustomiseRecipient.tsx │ │ │ │ ├── DepositSelector │ │ │ │ │ ├── EconomyTooltip.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ExternalBridge.tsx │ │ │ │ ├── InfoTooltip │ │ │ │ │ ├── DetailRow.tsx │ │ │ │ │ ├── FeeDetails.tsx │ │ │ │ │ └── InfoTooltip.tsx │ │ │ │ ├── TokenList.tsx │ │ │ │ ├── TokenSelect.tsx │ │ │ │ ├── TransactionSummary.tsx │ │ │ │ ├── hooks │ │ │ │ │ └── useBatchDeposit.ts │ │ │ │ └── index.tsx │ │ │ ├── ThirdParty.tsx │ │ │ ├── Withdraw.tsx │ │ │ └── index.tsx │ │ ├── TxHistoryDialog │ │ │ ├── TxHistoryTable.tsx │ │ │ └── index.tsx │ │ ├── components │ │ │ ├── HistoryButton │ │ │ │ └── index.tsx │ │ │ ├── MintBadge │ │ │ │ └── index.tsx │ │ │ ├── NoConnected │ │ │ │ └── index.tsx │ │ │ ├── NoData │ │ │ │ └── index.tsx │ │ │ └── TxTable │ │ │ │ ├── ActiveButton.tsx │ │ │ │ ├── TxStatusButton.tsx │ │ │ │ └── index.tsx │ │ ├── faq │ │ │ ├── layout.tsx │ │ │ ├── link.tsx │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── community │ │ ├── Events │ │ │ ├── Error.tsx │ │ │ ├── EventCard.tsx │ │ │ ├── List.tsx │ │ │ ├── NoData.tsx │ │ │ ├── RegionSelect.tsx │ │ │ ├── TimeSelect.tsx │ │ │ └── index.tsx │ │ ├── Globe │ │ │ ├── GlobeComponent.tsx │ │ │ ├── data.json │ │ │ ├── index.tsx │ │ │ └── mainscene │ │ │ │ ├── Tag.tsx │ │ │ │ ├── countryMesh │ │ │ │ ├── delaunator.ts │ │ │ │ ├── delaunay.ts │ │ │ │ ├── gridPoint.ts │ │ │ │ ├── index.ts │ │ │ │ ├── math.ts │ │ │ │ └── pointInPolygon.ts │ │ │ │ ├── line.ts │ │ │ │ ├── pointMesh.ts │ │ │ │ └── scene.tsx │ │ ├── Join │ │ │ ├── Card.tsx │ │ │ ├── CardLarge.tsx │ │ │ └── index.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── developer-nft │ │ ├── coming-soon │ │ │ ├── CheckElegbility │ │ │ │ └── index.tsx │ │ │ ├── Header │ │ │ │ └── index.tsx │ │ │ ├── Purpose │ │ │ │ └── index.tsx │ │ │ ├── Stage │ │ │ │ └── index.tsx │ │ │ ├── Stepper │ │ │ │ ├── Connector.tsx │ │ │ │ └── index.tsx │ │ │ └── page.tsx │ │ ├── components │ │ │ ├── NFTCard │ │ │ │ ├── NFTImage.tsx │ │ │ │ └── index.tsx │ │ │ └── Statistic │ │ │ │ ├── StatisticReverse.tsx │ │ │ │ └── index.tsx │ │ ├── layout.tsx │ │ ├── mint │ │ │ ├── flow │ │ │ │ ├── FinalStep.tsx │ │ │ │ ├── InitialStep.tsx │ │ │ │ ├── QuestionStep.tsx │ │ │ │ ├── StepWrapper.tsx │ │ │ │ └── index.tsx │ │ │ ├── home │ │ │ │ ├── MintFlowDialog.tsx │ │ │ │ ├── MyNFT.tsx │ │ │ │ ├── ReadyToMint.tsx │ │ │ │ └── index.tsx │ │ │ ├── mock │ │ │ │ └── index.tsx │ │ │ └── page.tsx │ │ └── page.tsx │ ├── ecosystem │ │ ├── Contribute │ │ │ ├── ContributeCard.tsx │ │ │ └── index.tsx │ │ ├── Header │ │ │ ├── Statistic.tsx │ │ │ └── index.tsx │ │ ├── Highlights │ │ │ ├── HighlightList │ │ │ │ ├── Card.tsx │ │ │ │ └── index.tsx │ │ │ └── index.tsx │ │ ├── Protocols │ │ │ ├── Category.tsx │ │ │ ├── NetworkSelect.tsx │ │ │ ├── ProtocolList │ │ │ │ ├── Error.tsx │ │ │ │ ├── NetworkLabel.tsx │ │ │ │ ├── NoData.tsx │ │ │ │ ├── ProtocolCard.tsx │ │ │ │ └── index.tsx │ │ │ ├── SearchInput.tsx │ │ │ └── index.tsx │ │ └── page.tsx │ ├── favicon.ico │ ├── global-error.tsx │ ├── global.ts │ ├── globals.css │ ├── join-us │ │ ├── Header │ │ │ └── index.tsx │ │ ├── Mission │ │ │ └── index.tsx │ │ ├── News │ │ │ └── index.tsx │ │ ├── Perks │ │ │ └── index.tsx │ │ ├── Positions │ │ │ └── index.tsx │ │ ├── WorkApproach │ │ │ └── index.tsx │ │ └── page.tsx │ ├── layout.tsx │ ├── loading.tsx │ ├── not-found.tsx │ ├── page.tsx │ ├── portal │ │ ├── Descriptions.tsx │ │ ├── SendFeedback.tsx │ │ ├── TestFlow.tsx │ │ ├── WalletConfig.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── privacy-policy │ │ ├── layout.tsx │ │ └── page.tsx │ ├── rollupscan │ │ ├── batch │ │ │ └── [batchIndex] │ │ │ │ ├── blocks │ │ │ │ ├── Table.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ │ │ ├── chunk │ │ │ │ └── [chunkIndex] │ │ │ │ │ ├── blocks │ │ │ │ │ ├── Table.tsx │ │ │ │ │ ├── layout.tsx │ │ │ │ │ └── page.tsx │ │ │ │ │ ├── layout.tsx │ │ │ │ │ └── page.tsx │ │ │ │ ├── chunks │ │ │ │ ├── Table.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ ├── components │ │ │ ├── Header.tsx │ │ │ ├── Spinning.tsx │ │ │ ├── Table.tsx │ │ │ ├── TableCell.tsx │ │ │ └── Tooltip.tsx │ │ ├── constants.ts │ │ ├── index │ │ │ ├── Card.tsx │ │ │ ├── NoData.tsx │ │ │ ├── Searchbar.tsx │ │ │ └── Table.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── scrETH │ │ ├── Explaination │ │ │ ├── data.ts │ │ │ └── index.tsx │ │ ├── Header │ │ │ └── index.tsx │ │ └── page.tsx │ ├── sentry-example-page │ │ └── page.tsx │ ├── sessions-restricted │ │ └── page.tsx │ ├── sessions-terms-of-use │ │ ├── layout.tsx │ │ └── page.tsx │ ├── sessions │ │ ├── EligibleAssets │ │ │ ├── NativeAssetCard.tsx │ │ │ ├── TokenCard.tsx │ │ │ ├── index.tsx │ │ │ └── tokenList.ts │ │ ├── Guidance │ │ │ ├── GuidanceCard.tsx │ │ │ └── index.tsx │ │ ├── Header │ │ │ ├── TotalMarks.tsx │ │ │ └── index.tsx │ │ ├── Protocols │ │ │ ├── ProtocolCard.tsx │ │ │ ├── ProtocolSection.tsx │ │ │ ├── Statistic │ │ │ │ └── index.tsx │ │ │ ├── index.tsx │ │ │ └── protocolList.ts │ │ ├── SignatureRequestDialog │ │ │ └── index.tsx │ │ ├── components │ │ │ ├── MarksTooltip │ │ │ │ └── index.tsx │ │ │ ├── QATooltip │ │ │ │ └── index.tsx │ │ │ └── StepCard │ │ │ │ └── index.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── sitemap.ts │ ├── sticker-vote │ │ ├── Finalists │ │ │ ├── data.json │ │ │ └── index.tsx │ │ ├── Header │ │ │ └── index.tsx │ │ ├── components │ │ │ ├── Gallery.tsx │ │ │ ├── GridBackground.tsx │ │ │ ├── ImageViewer.tsx │ │ │ ├── StickerPicture.tsx │ │ │ └── Title.tsx │ │ └── page.tsx │ ├── sticker-winners │ │ ├── Finalists │ │ │ ├── Winner.tsx │ │ │ ├── data.json │ │ │ └── index.tsx │ │ ├── Header │ │ │ └── index.tsx │ │ └── page.tsx │ ├── template.tsx │ ├── terms-and-conditions │ │ ├── layout.tsx │ │ └── page.tsx │ └── terms-of-service │ │ ├── layout.tsx │ │ └── page.tsx ├── assets │ ├── abis │ │ ├── CanvasAttestProxy.json │ │ ├── CanvasBadge.json │ │ ├── CanvasBadgeResolver.json │ │ ├── CanvasProfile.json │ │ ├── CanvasProfileRegistry.json │ │ ├── ERC1155ABI.json │ │ ├── ERC721ABI.json │ │ ├── L1BatchBridgeGateway.json │ │ ├── L1ETHGateway.json │ │ ├── L1GasPriceOracle.json │ │ ├── L1ScrollMessenger.json │ │ ├── L1StandardERC20Gateway.json │ │ ├── L1_GATEWAY_ROUTER_PROXY_ADDR.json │ │ ├── L1_MESSAGE_QUEUE_WITH_GAS_PRICE_ORACLE.json │ │ ├── L1_erc20ABI.json │ │ ├── L2ERC20Gateway.json │ │ ├── L2ETHGateway.json │ │ ├── L2ScrollMessenger.json │ │ ├── L2StandardERC20Gateway.json │ │ ├── L2WETHGateway.json │ │ ├── L2_GATEWAY_ROUTER_PROXY_ADDR.json │ │ ├── L2_erc20ABI.json │ │ ├── ScrollCanvas.json │ │ ├── ScrollChain.json │ │ ├── ScrollOriginsNFT.json │ │ └── ScrollOriginsNFTV2.json │ ├── css │ │ └── assistant-message.css │ ├── files │ │ └── sensitive-word.json │ ├── fonts │ │ ├── FTPolarSemiMono-Medium.woff2 │ │ ├── FTPolarSemiMono-Regular.woff2 │ │ ├── TransSansPremium-Bold.otf │ │ ├── TransSansPremium-Bold.woff │ │ ├── TransSansPremium-Bold.woff2 │ │ ├── TransSansPremium-Light.otf │ │ ├── TransSansPremium-Light.woff │ │ ├── TransSansPremium-Light.woff2 │ │ ├── TransSansPremium-Medium.otf │ │ ├── TransSansPremium-Medium.woff │ │ ├── TransSansPremium-Medium.woff2 │ │ ├── TransSansPremium-Regular.otf │ │ ├── TransSansPremium-Regular.woff │ │ ├── TransSansPremium-Regular.woff2 │ │ ├── TransSansPremium-SemiBold.otf │ │ ├── TransSansPremium-SemiBold.woff │ │ └── TransSansPremium-SemiBold.woff2 │ ├── images │ │ ├── brandkit │ │ │ ├── BrandGuideline │ │ │ │ └── Scroll_BrandGuideline.svg │ │ │ ├── MediaKit │ │ │ │ └── mediakit.png │ │ │ ├── Scroll_Banner │ │ │ │ ├── Scroll_Banner1 │ │ │ │ │ ├── Scroll_Banner1.png │ │ │ │ │ └── Scroll_Banner1.svg │ │ │ │ └── Scroll_Banner2 │ │ │ │ │ ├── Scroll_Banner2.png │ │ │ │ │ └── Scroll_Banner2.svg │ │ │ ├── Scroll_Logomark │ │ │ │ ├── Sample3-1.svg │ │ │ │ ├── Sample3-2.svg │ │ │ │ ├── Scroll_Logomark.png │ │ │ │ └── Scroll_Logomark.svg │ │ │ ├── Scroll_Logos │ │ │ │ ├── Scroll_FullLogo │ │ │ │ │ ├── Sample1-1.svg │ │ │ │ │ ├── Sample1-2.svg │ │ │ │ │ ├── Scroll_FullLogo.png │ │ │ │ │ └── Scroll_FullLogo.svg │ │ │ │ └── Scroll_InvertedLogo │ │ │ │ │ ├── Sample2-1.svg │ │ │ │ │ ├── Sample2-2.svg │ │ │ │ │ ├── Scroll_InvertedLogo.png │ │ │ │ │ └── Scroll_InvertedLogo.svg │ │ │ └── download.svg │ │ ├── canvas │ │ │ ├── advertising-nft-1.webp │ │ │ ├── advertising-nft-2.png │ │ │ ├── advertising-nft-2.webp │ │ │ └── advertising-nft-3.webp │ │ ├── common │ │ │ ├── ai-bot.png │ │ │ ├── scrolly-cool.png │ │ │ └── scrolly-sad.png │ │ ├── community │ │ │ └── scroll_generic.png │ │ ├── defi │ │ │ ├── Bithumb.jpg │ │ │ └── OKX.jpg │ │ ├── home │ │ │ ├── Mike Silagadze.webp │ │ │ ├── Roberto Machado.webp │ │ │ ├── Tony Olendo.webp │ │ │ └── Yi Sun.webp │ │ ├── sessions │ │ │ ├── HoneyPop.png │ │ │ ├── hero-bg-mobile.svg │ │ │ └── hero-bg.svg │ │ └── skelly │ │ │ ├── Scrolly_Coding.png │ │ │ ├── Scrolly_Hi_c.png │ │ │ ├── Scrolly_Wen.png │ │ │ └── scroll.mp4 │ └── svgs │ │ ├── bridge │ │ ├── alert-error.svg │ │ ├── alert-success.svg │ │ ├── approve-token-selected.svg │ │ ├── arrow-down.svg │ │ ├── close.svg │ │ ├── copy-success.svg │ │ ├── copy.svg │ │ ├── disconnect.svg │ │ ├── edit.svg │ │ ├── empty.svg │ │ ├── etherscan.svg │ │ ├── history-disconnected.svg │ │ ├── history.svg │ │ ├── info.svg │ │ ├── network-mainnet.svg │ │ ├── network-scroll.svg │ │ ├── praise.svg │ │ ├── remove.svg │ │ ├── token-list-close.svg │ │ ├── token-list-search.svg │ │ └── warning.svg │ │ ├── canvas-badge │ │ ├── arrow-down.svg │ │ ├── engagement.svg │ │ ├── external-link.svg │ │ ├── find.svg │ │ ├── issue.svg │ │ ├── passport-logo.svg │ │ ├── rock.svg │ │ ├── special.svg │ │ ├── star-blur-1.svg │ │ ├── star-blur-2.svg │ │ ├── star-circle-1.svg │ │ ├── star-circle-10.svg │ │ ├── star-circle-2.svg │ │ ├── star-circle-3.svg │ │ ├── star-circle-4.svg │ │ ├── star-circle-5.svg │ │ ├── star-circle-6.svg │ │ ├── star-circle-7.svg │ │ ├── star-circle-8.svg │ │ ├── star-circle-9.svg │ │ ├── star-diamond-1.svg │ │ ├── star-diamond-2.svg │ │ ├── total-minted.svg │ │ └── treasure.svg │ │ ├── canvas-perks │ │ ├── arrow.svg │ │ ├── badge-ethereum-year.svg │ │ ├── badge-placeholder.svg │ │ ├── congrat-circle-1-mobile.svg │ │ ├── congrat-circle-1.svg │ │ ├── congrat-circle-2-mobile.svg │ │ ├── congrat-circle-2.svg │ │ ├── congrat-circle-3-mobile.svg │ │ ├── congrat-circle-3.svg │ │ ├── congrat-circle-4-mobile.svg │ │ └── external.svg │ │ ├── canvas │ │ ├── arrow-left.svg │ │ ├── arrow-right.svg │ │ ├── back.svg │ │ ├── badges.svg │ │ ├── check.svg │ │ ├── circle-warning.svg │ │ ├── close.svg │ │ ├── connect-sticker.svg │ │ ├── copy-success.svg │ │ ├── copy.svg │ │ ├── coupon-mobile.svg │ │ ├── coupon.svg │ │ ├── default-badge.svg │ │ ├── edit-profile.svg │ │ ├── edit.svg │ │ ├── empty.svg │ │ ├── error.svg │ │ ├── eth.svg │ │ ├── gift.svg │ │ ├── info.svg │ │ ├── insufficient.svg │ │ ├── landing.svg │ │ ├── loading.svg │ │ ├── lock.svg │ │ ├── logo.svg │ │ ├── secret-badge.svg │ │ ├── share.svg │ │ ├── sticker.svg │ │ ├── tooltip.svg │ │ ├── triangle.svg │ │ ├── warning.svg │ │ ├── zoom-in.svg │ │ └── zoom-out.svg │ │ ├── career │ │ └── perks │ │ │ ├── icon-1.svg │ │ │ ├── icon-2.svg │ │ │ ├── icon-3.svg │ │ │ ├── icon-4.svg │ │ │ ├── icon-5.svg │ │ │ ├── icon-6.svg │ │ │ ├── icon-7.svg │ │ │ └── icon-8.svg │ │ ├── common │ │ ├── arrow-right.svg │ │ ├── back.svg │ │ ├── external-link.svg │ │ ├── global.svg │ │ ├── header-triangle-down.svg │ │ ├── info.svg │ │ ├── language-checked.svg │ │ ├── language-uncheck.svg │ │ ├── scroll-logo-icon-light.svg │ │ ├── scroll-logo-icon.svg │ │ ├── scroll-logo-light.svg │ │ ├── scroll-logo.svg │ │ ├── triangle-down.svg │ │ └── widgets.svg │ │ ├── community │ │ ├── arrow.svg │ │ ├── combination_mark.svg │ │ ├── contribute.svg │ │ ├── discord.svg │ │ ├── forum.svg │ │ ├── governance.svg │ │ ├── region.svg │ │ └── time.svg │ │ ├── defi │ │ ├── binance.svg │ │ ├── get-scr.svg │ │ ├── rewards.svg │ │ ├── scr-eth-hero.svg │ │ ├── secure.svg │ │ ├── stake-scr.svg │ │ ├── up.svg │ │ ├── vote.svg │ │ ├── why-sSCR.svg │ │ └── why-scr-eth.svg │ │ ├── ecosystem │ │ ├── arrow.svg │ │ ├── double-eyes.svg │ │ ├── empty.svg │ │ ├── error.svg │ │ ├── heart.svg │ │ ├── note.svg │ │ ├── search.svg │ │ ├── settings.svg │ │ └── twitter.svg │ │ ├── footer │ │ ├── discord.svg │ │ ├── github.svg │ │ ├── support.svg │ │ ├── twitter.svg │ │ └── youtube.svg │ │ ├── header │ │ ├── External.svg │ │ ├── checked.svg │ │ ├── close.svg │ │ ├── copy.svg │ │ ├── enter.svg │ │ ├── gas-price-dot.svg │ │ ├── re-send.svg │ │ ├── send.svg │ │ ├── spin.svg │ │ ├── thumb-down.svg │ │ └── thumb-up.svg │ │ ├── landingpage │ │ ├── Aave.svg │ │ ├── Ambient.svg │ │ ├── Axiom.svg │ │ ├── Circle.svg │ │ ├── Compound.svg │ │ ├── Ethena.svg │ │ ├── EtherFi.svg │ │ ├── Kelp.svg │ │ ├── Lido.svg │ │ ├── Mellow.svg │ │ ├── Orbiter.svg │ │ ├── Puffer.svg │ │ ├── QuillFinance.svg │ │ ├── Symbiotic.svg │ │ ├── Tempest.svg │ │ ├── VIFI.svg │ │ ├── bridge.svg │ │ ├── build.svg │ │ ├── build_cover.svg │ │ ├── change-rpc.svg │ │ ├── doc.svg │ │ ├── ecosystem.svg │ │ ├── eth.svg │ │ ├── global.svg │ │ ├── governance.svg │ │ ├── hero-bg-mobile.svg │ │ ├── hero-bg.svg │ │ ├── left-button.svg │ │ ├── levelup.svg │ │ ├── open.svg │ │ ├── quota.svg │ │ ├── right-button.svg │ │ ├── scroll-open.svg │ │ ├── secure.svg │ │ ├── sessions.svg │ │ └── tech.svg │ │ ├── members │ │ ├── Dan-avatar.svg │ │ ├── Haichen-avatar.svg │ │ ├── Jane-avatar.svg │ │ ├── Lea-avatar.svg │ │ ├── Mei-avatar.svg │ │ ├── Mohammad-avatar.svg │ │ ├── Peter-avatar.svg │ │ ├── Sandy-avatar.svg │ │ ├── Toghrul-avatar.svg │ │ └── Ye-avatar.svg │ │ ├── nft │ │ ├── alert-error.svg │ │ ├── alert-success.svg │ │ ├── block.svg │ │ ├── copy.svg │ │ ├── disconnect.svg │ │ ├── down-triangle.svg │ │ ├── flow-close.svg │ │ ├── question-checked.svg │ │ ├── question-unchecked.svg │ │ ├── statement.svg │ │ ├── step-completed-icon.svg │ │ ├── step-default-icon.svg │ │ └── twitter.svg │ │ ├── portal │ │ ├── discord.svg │ │ ├── github.svg │ │ └── status.svg │ │ ├── sessions │ │ ├── QuillFinance.svg │ │ ├── activities.svg │ │ ├── assets.svg │ │ ├── dex.svg │ │ ├── downTriangle.svg │ │ ├── forum.svg │ │ ├── gas.svg │ │ ├── learn.svg │ │ ├── lending.svg │ │ ├── qa.svg │ │ └── support.svg │ │ ├── sticker-vote │ │ ├── calender.svg │ │ ├── character.svg │ │ ├── contest.svg │ │ ├── finalists.svg │ │ ├── scroll.svg │ │ ├── star.svg │ │ └── sticker.svg │ │ ├── sticker-winners │ │ ├── tada.svg │ │ ├── top2-5.svg │ │ └── winner.svg │ │ ├── story │ │ ├── bridge.svg │ │ ├── bucket.svg │ │ ├── decentralisation.svg │ │ ├── diamond.svg │ │ ├── eth.svg │ │ ├── external.svg │ │ ├── security.svg │ │ ├── value-community.svg │ │ ├── value-neutrality.svg │ │ └── value-openness.svg │ │ └── wallet-connector │ │ ├── block.svg │ │ ├── copy.svg │ │ ├── disconnect.svg │ │ ├── down-triangle.svg │ │ ├── profile.svg │ │ └── wrong-network.svg ├── components │ ├── AIModal │ │ ├── AIInput.tsx │ │ ├── AssistantMessage.tsx │ │ ├── FeedbackAlert.tsx │ │ ├── InitialPanel.tsx │ │ ├── MessagePanel.tsx │ │ ├── Operation.tsx │ │ ├── UserMessage.tsx │ │ ├── actions.ts │ │ └── index.tsx │ ├── Alert │ │ ├── NFTAlert.tsx │ │ └── index.tsx │ ├── Animation │ │ ├── FadeIn.tsx │ │ ├── FadeInUp.tsx │ │ ├── SlideInLeft.tsx │ │ ├── SlideInRight.tsx │ │ └── index.tsx │ ├── ArticleCard │ │ └── index.tsx │ ├── AutoComplete │ │ └── index.tsx │ ├── Button │ │ └── index.tsx │ ├── ButtonPopover │ │ └── index.tsx │ ├── Canvas │ │ ├── index.tsx │ │ └── libgif.js │ ├── Faq │ │ └── index.tsx │ ├── Footer │ │ ├── PureFooter │ │ │ └── index.tsx │ │ ├── Support │ │ │ └── index.tsx │ │ └── index.tsx │ ├── GlobalComponents │ │ └── index.tsx │ ├── Header │ │ ├── AskAI.tsx │ │ ├── GasPriceViewer.tsx │ │ ├── MenuItem.tsx │ │ ├── MobileGasPriceViewer.tsx │ │ ├── MobileNavBarItem.tsx │ │ ├── NavbarItem.tsx │ │ ├── announcement.tsx │ │ ├── data.ts │ │ ├── desktop_header.tsx │ │ ├── index.tsx │ │ ├── mobile_header.tsx │ │ ├── useCheckCustomNavBarBg.tsx │ │ ├── useCheckTheme.tsx │ │ └── useShowGasPriceViewer.ts │ ├── LanguageSelect │ │ └── index.tsx │ ├── LinesEllipsis │ │ └── index.tsx │ ├── Link │ │ └── index.tsx │ ├── LoadingButton │ │ └── index.tsx │ ├── LoadingPage │ │ └── index.tsx │ ├── Motion │ │ ├── LineToView.tsx │ │ ├── OrientationToView.tsx │ │ └── SuccessionToView.tsx │ ├── NavLink │ │ └── index.tsx │ ├── NumberTypography │ │ └── index.tsx │ ├── RenderIfVisible │ │ └── index.tsx │ ├── RequestWarning │ │ ├── GlobalError.tsx │ │ ├── GlobalSuccess.tsx │ │ └── index.tsx │ ├── ScrollExpandedBg │ │ └── index.tsx │ ├── ScrollLogo │ │ └── index.tsx │ ├── ScrollToTop │ │ └── index.tsx │ ├── SectionHeader │ │ └── index.tsx │ ├── SectionWrapper │ │ └── index.tsx │ ├── Select │ │ └── index.tsx │ ├── SentrySetting │ │ └── index.tsx │ ├── Skeleton │ │ └── index.tsx │ ├── SvgIcon │ │ └── index.tsx │ ├── TextButton │ │ └── index.tsx │ ├── WalletToolkit │ │ ├── NetworkSelect.tsx │ │ ├── WalletDropdown.tsx │ │ └── index.tsx │ ├── WebVitals │ │ └── index.tsx │ └── WebpImage │ │ └── index.tsx ├── constants │ ├── ai-assistant.ts │ ├── badge.ts │ ├── blog.ts │ ├── brandKit.ts │ ├── bridge.ts │ ├── canvas-badge.ts │ ├── canvas.ts │ ├── common.ts │ ├── community.ts │ ├── ecosystem.ts │ ├── index.ts │ ├── link.ts │ ├── networks.ts │ ├── nft.ts │ ├── route.ts │ ├── scroll.ts │ ├── searchParamsKey.ts │ ├── sessions.ts │ ├── sticker.ts │ ├── storageKey.ts │ └── transaction.ts ├── contexts │ ├── BridgeContextProvider.tsx │ ├── CanvasContextProvider.tsx │ ├── NFTContextProvider.tsx │ ├── PriceFeeProvider.tsx │ └── RainbowProvider │ │ ├── configs.ts │ │ ├── index.tsx │ │ └── walletConnectors │ │ └── binanceWallet │ │ ├── binanceWallet.svg │ │ └── binanceWallet.ts ├── hooks │ ├── index.ts │ ├── useAddToken.ts │ ├── useApprove.ts │ ├── useAsyncMemo.tsx │ ├── useBalance.tsx │ ├── useBlockNumbers.ts │ ├── useCheckViewport.ts │ ├── useClaim.ts │ ├── useClaimHistory.ts │ ├── useEstimateBatchDeposit.ts │ ├── useEstimateSendTransaction.ts │ ├── useGasFee.ts │ ├── useHideFooter.ts │ ├── useImagesLoaded.tsx │ ├── useInputAddress.ts │ ├── useIsSmartContractWallet.ts │ ├── useLastFinalizedBatchIndex.tsx │ ├── useLoadAllOnIdle.ts │ ├── useMatch.ts │ ├── useRetry.ts │ ├── useRollupInfo.ts │ ├── useScrollToTop.ts │ ├── useSendTransaction.ts │ ├── useShowLanguageSelect.tsx │ ├── useShowWalletToolkit.tsx │ ├── useSnackbar.ts │ ├── useSufficientBalance.ts │ ├── useTokenInfo.ts │ ├── useTokenPrice.ts │ ├── useTransactionBuffer.ts │ ├── useTxHistory.ts │ ├── useUserLanguage.ts │ ├── useValidateCanvasName.tsx │ ├── useVersionCheck.tsx │ └── useViemBalance.tsx ├── instrumentation.ts ├── mdx-components.tsx ├── middleware.ts ├── services │ └── canvasService.ts ├── stores │ ├── batchBridgeStore.ts │ ├── bridgeStore.ts │ ├── canvasStore.ts │ ├── claimStore.ts │ ├── globalStore.ts │ ├── nftStore.ts │ ├── rollupStore.ts │ ├── sessionsStore.ts │ ├── txStore.ts │ └── utils.ts ├── theme │ ├── dark.tsx │ ├── index.tsx │ ├── light.tsx │ └── options.ts ├── types │ ├── env.d.ts │ ├── index.d.ts │ ├── network.d.ts │ ├── react.d.ts │ ├── svg.d.ts │ └── token.d.ts └── utils │ ├── blog.ts │ ├── canvas.ts │ ├── common.ts │ ├── dom.ts │ ├── ethereum.ts │ ├── format.ts │ ├── index.ts │ ├── localStorage.ts │ ├── logger.ts │ ├── nft.ts │ ├── request.ts │ ├── route.ts │ ├── sentry.ts │ └── txError.ts ├── tailwind.config.ts ├── tsconfig.json ├── turbo.json └── yarn.lock /.envrc: -------------------------------------------------------------------------------- 1 | layout node 2 | dotenv_if_exists .env 3 | dotenv_if_exists .env.local 4 | dotenv_if_exists .env.development.local 5 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/*.js 2 | src/assets 3 | tests/unit/** 4 | public/**/*.js 5 | tsconfig.json 6 | node_modules/**/* -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## PR Summary 2 | 3 | [comment]: Summarise the problem and how the pull request solves it 4 | 5 | 6 | --- 7 | 8 | ## Checklist 9 | 10 | - [ ] There are breaking changes 11 | - [ ] I've added/changed/removed ENV variable(s) 12 | - [ ] I checked whether I should update the docs and did so by updating `/docs` 13 | 14 | --- 15 | 16 | ## Description 17 | 18 | [comment]: # (Please provide a more detailed description of your pull request here, explaining the changes made and the reasoning behind them) 19 | 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | .env.template 31 | 32 | # vercel 33 | .vercel 34 | 35 | # typescript 36 | *.tsbuildinfo 37 | next-env.d.ts 38 | 39 | .vscode/ 40 | # Sentry Config File 41 | .sentryclirc 42 | 43 | .turbo 44 | 45 | /src/app/blog/[blogId]/data.json 46 | /src/assets/blog/main.data.json 47 | /src/assets/blog/research.data.json 48 | 49 | # Sentry Config File 50 | .env.sentry-build-plugin 51 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/.gitmodules -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npm test 5 | -------------------------------------------------------------------------------- /.lintstagedrc.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | 3 | const buildEslintCommand = (filenames) => 4 | `next lint --fix --file ${filenames 5 | .map((f) => path.relative(process.cwd(), f)) 6 | .join(' --file ')}` 7 | 8 | module.exports = { 9 | '*.{js,jsx,ts,tsx}': [buildEslintCommand], 10 | } -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 150, 3 | "tabWidth": 2, 4 | "semi": false, 5 | "singleQuote": false, 6 | "trailingComma": "all", 7 | "bracketSpacing": true, 8 | "arrowParens": "avoid", 9 | "endOfLine": "auto", 10 | "plugins": ["@trivago/prettier-plugin-sort-imports"], 11 | "importOrder": ["^@mui/(.*)$", "^@/(.*)$", "^[./]"], 12 | "importOrderSeparation": true, 13 | "importOrderSortSpecifiers": true, 14 | "overrides": [ 15 | { 16 | "files": ".prettierrc", 17 | "options": { "parser": "json" } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | const config = { 2 | plugins: { 3 | "@tailwindcss/postcss": {}, 4 | }, 5 | } 6 | export default config 7 | -------------------------------------------------------------------------------- /public/ahrefs_35cc25b0147733d39d875e8ae541f56f6de0925fcc49bec17bcb322e610594bf: -------------------------------------------------------------------------------- 1 | ahrefs-site-verification_35cc25b0147733d39d875e8ae541f56f6de0925fcc49bec17bcb322e610594bf -------------------------------------------------------------------------------- /public/favicon_new.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/favicon_new.ico -------------------------------------------------------------------------------- /public/files/CCC-Handbook.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/files/CCC-Handbook.pdf -------------------------------------------------------------------------------- /public/files/airdrop/terms-and-conditions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/files/airdrop/terms-and-conditions.pdf -------------------------------------------------------------------------------- /public/files/whitepaper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/files/whitepaper.pdf -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Ambient.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Ambient.webp -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Cog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Cog.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/EAS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/EAS.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/FLock-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/FLock-x.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Flock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Flock.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Panda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Panda.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Passport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Passport.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Pencils.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Pencils.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Scroller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Scroller.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Scrolly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Scrolly.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/SymTrader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/SymTrader.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Symbiosis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Symbiosis.png -------------------------------------------------------------------------------- /public/imgs/canvas-badge/Zebra.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/Zebra.webp -------------------------------------------------------------------------------- /public/imgs/canvas-badge/badgePlaceholder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /public/imgs/canvas-badge/badges-header-bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/badges-header-bg.webp -------------------------------------------------------------------------------- /public/imgs/canvas-badge/featured-badges-bg-mobile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/featured-badges-bg-mobile.webp -------------------------------------------------------------------------------- /public/imgs/canvas-badge/featured-badges-bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas-badge/featured-badges-bg.webp -------------------------------------------------------------------------------- /public/imgs/canvas/Badge_Ethereum_Year.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/Badge_Ethereum_Year.png -------------------------------------------------------------------------------- /public/imgs/canvas/Penguin1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/Penguin1.webp -------------------------------------------------------------------------------- /public/imgs/canvas/Scrolly_Coding.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/Scrolly_Coding.webp -------------------------------------------------------------------------------- /public/imgs/canvas/Scrolly_Coding_s.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/Scrolly_Coding_s.webp -------------------------------------------------------------------------------- /public/imgs/canvas/Scrolly_Wen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/Scrolly_Wen.png -------------------------------------------------------------------------------- /public/imgs/canvas/Scrolly_Wen.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/Scrolly_Wen.webp -------------------------------------------------------------------------------- /public/imgs/canvas/canvas.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/canvas.gif -------------------------------------------------------------------------------- /public/imgs/canvas/heartbeat.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/heartbeat.webp -------------------------------------------------------------------------------- /public/imgs/canvas/scroll.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/scroll.mp4 -------------------------------------------------------------------------------- /public/imgs/canvas/support/x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/imgs/canvas/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/canvas/warning.png -------------------------------------------------------------------------------- /public/imgs/career/career-header-bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/career-header-bg.webp -------------------------------------------------------------------------------- /public/imgs/career/join-us-m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/join-us-m.png -------------------------------------------------------------------------------- /public/imgs/career/join-us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/join-us.png -------------------------------------------------------------------------------- /public/imgs/career/news/news-cover-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/news/news-cover-1.png -------------------------------------------------------------------------------- /public/imgs/career/news/news-cover-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/news/news-cover-2.png -------------------------------------------------------------------------------- /public/imgs/career/news/news-cover-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/news/news-cover-3.png -------------------------------------------------------------------------------- /public/imgs/career/work-approach-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/work-approach-1.jpg -------------------------------------------------------------------------------- /public/imgs/career/work-approach-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/work-approach-2.jpg -------------------------------------------------------------------------------- /public/imgs/career/work-approach-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/work-approach-3.jpg -------------------------------------------------------------------------------- /public/imgs/career/work-approach-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/work-approach-4.jpg -------------------------------------------------------------------------------- /public/imgs/career/work-approach-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/work-approach-5.jpg -------------------------------------------------------------------------------- /public/imgs/career/work-approach-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/career/work-approach-6.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/0xblob.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/0xblob.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/Berlin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/Berlin.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/CostaRica.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/CostaRica.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/KL.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/KL.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/TGU.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/TGU.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/abcafrica.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/abcafrica.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/akindo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/akindo.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/antalpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/antalpha.png -------------------------------------------------------------------------------- /public/imgs/community/globe/atx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/atx.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/barcelona.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/barcelona.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/berkeley.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/berkeley.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/bewater.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/bewater.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/biteye.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/biteye.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/bogota.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/bogota.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/bolivia.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/bolivia.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/borderless.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/borderless.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/buidlers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/buidlers.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/cryptist.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/cryptist.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/cryptocanal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/cryptocanal.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/elsalva.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/elsalva.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/espaiocripto.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/espaiocripto.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/ethbeijing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/ethbeijing.png -------------------------------------------------------------------------------- /public/imgs/community/globe/ethdenver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/ethdenver.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/ethgathering.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/ethgathering.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/ethsamba.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/ethsamba.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/franklin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/franklin.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/guate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/guate.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/itu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/itu.png -------------------------------------------------------------------------------- /public/imgs/community/globe/japan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/japan.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/kyiv.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/kyiv.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/lima.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/lima.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/mich.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/mich.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/nonce.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/nonce.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/padthai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/padthai.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/prague.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/prague.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/sbc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/sbc.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/taipei.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/taipei.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/tum.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/tum.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/uruguay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/uruguay.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/warsaw.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/warsaw.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/web3afrika.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/web3afrika.jpg -------------------------------------------------------------------------------- /public/imgs/community/globe/web3samaj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/community/globe/web3samaj.jpg -------------------------------------------------------------------------------- /public/imgs/community/pin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/imgs/ecosystem/ecosystem-bg-mobile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/ecosystem/ecosystem-bg-mobile.webp -------------------------------------------------------------------------------- /public/imgs/ecosystem/ecosystem-bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/ecosystem/ecosystem-bg.webp -------------------------------------------------------------------------------- /public/imgs/homepage/blog/founderLetter/GroupPhotos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/founderLetter/GroupPhotos.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/founderLetter/MainnetDigitalAssets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/founderLetter/MainnetDigitalAssets.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/founderLetter/scroll_mainnet_live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/founderLetter/scroll_mainnet_live.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/kzg/interpolation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/kzg/interpolation.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/kzg/zkrollup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/kzg/zkrollup.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_12.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_12.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_12.webp -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_1.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_10.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_11.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_12.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_13.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_13_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_13_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_14.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_14_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_14_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_15.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_15_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_15_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_16.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_16_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_16_1.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_16_1_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_16_1_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_16_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_16_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_17.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_17_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_17_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_18.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_18_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_18_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_19.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_19_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_19_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_2.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_20.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_20_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_20_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_21.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_21_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_21_og.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_3.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_4.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_5.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_6.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_7.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_8.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/poster_cover_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/poster_cover_9.jpg -------------------------------------------------------------------------------- /public/imgs/homepage/blog/proofGeneration/tracetable_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/proofGeneration/tracetable_1.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/proofGeneration/tracetable_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/proofGeneration/tracetable_2.png -------------------------------------------------------------------------------- /public/imgs/homepage/blog/scrollOriginsNFT/Illustration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/blog/scrollOriginsNFT/Illustration.gif -------------------------------------------------------------------------------- /public/imgs/homepage/landing-bg-mobile.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/landing-bg-mobile.webp -------------------------------------------------------------------------------- /public/imgs/homepage/landing-bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/landing-bg.webp -------------------------------------------------------------------------------- /public/imgs/homepage/landing-blog-1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/landing-blog-1.webp -------------------------------------------------------------------------------- /public/imgs/homepage/landing-blog-2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/homepage/landing-blog-2.webp -------------------------------------------------------------------------------- /public/imgs/logo/StakeStone.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/StakeStone.jpeg -------------------------------------------------------------------------------- /public/imgs/logo/arbitrum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/arbitrum.png -------------------------------------------------------------------------------- /public/imgs/logo/base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/base.png -------------------------------------------------------------------------------- /public/imgs/logo/binance.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/imgs/logo/blast.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/blast.jpeg -------------------------------------------------------------------------------- /public/imgs/logo/free.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/free.png -------------------------------------------------------------------------------- /public/imgs/logo/hashkey.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/hashkey.jpeg -------------------------------------------------------------------------------- /public/imgs/logo/more.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/imgs/logo/optimism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/optimism.png -------------------------------------------------------------------------------- /public/imgs/logo/polygon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/polygon.png -------------------------------------------------------------------------------- /public/imgs/logo/solana.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/solana.png -------------------------------------------------------------------------------- /public/imgs/logo/stargate.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/stargate.jpeg -------------------------------------------------------------------------------- /public/imgs/logo/zksync.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/logo/zksync.jpeg -------------------------------------------------------------------------------- /public/imgs/rollup/nodata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/rollup/nodata.png -------------------------------------------------------------------------------- /public/imgs/sessions/0-BG-PNG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/0-BG-PNG.png -------------------------------------------------------------------------------- /public/imgs/sessions/1-Left-TallTower-PNG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/1-Left-TallTower-PNG.png -------------------------------------------------------------------------------- /public/imgs/sessions/2-Left-Building-PNG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/2-Left-Building-PNG.png -------------------------------------------------------------------------------- /public/imgs/sessions/2-Right-Building-PNG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/2-Right-Building-PNG.png -------------------------------------------------------------------------------- /public/imgs/sessions/3-Humans-png.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/3-Humans-png.png -------------------------------------------------------------------------------- /public/imgs/sessions/LeftCloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/LeftCloud.png -------------------------------------------------------------------------------- /public/imgs/sessions/Scroll-Eth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/Scroll-Eth.png -------------------------------------------------------------------------------- /public/imgs/sessions/Scroll-Layer1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/Scroll-Layer1.png -------------------------------------------------------------------------------- /public/imgs/sessions/Scroll-Layer2-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/Scroll-Layer2-back.png -------------------------------------------------------------------------------- /public/imgs/sessions/Scroll-Layer3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/Scroll-Layer3.png -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/Loop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/tokens/Loop.jpg -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/Mitosis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/tokens/Mitosis.png -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/Pencils.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/tokens/Pencils.jpeg -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/Scribe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/tokens/Scribe.png -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/Tranchess.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/Trust.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/tokens/Trust.jpg -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/USDQ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/agETH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/tokens/agETH.png -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/solvBTC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/tokens/solvBTC.png -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/stone-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/weETH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/tokens/weETH.png -------------------------------------------------------------------------------- /public/imgs/sessions/tokens/weth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sessions/tokens/weth.png -------------------------------------------------------------------------------- /public/imgs/sticker/Andre1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Andre1.jpg -------------------------------------------------------------------------------- /public/imgs/sticker/Andre2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Andre2.jpg -------------------------------------------------------------------------------- /public/imgs/sticker/Coincuddle1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Coincuddle1.png -------------------------------------------------------------------------------- /public/imgs/sticker/Coincuddle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Coincuddle2.png -------------------------------------------------------------------------------- /public/imgs/sticker/Cozy1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Cozy1.png -------------------------------------------------------------------------------- /public/imgs/sticker/Cozy2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Cozy2.png -------------------------------------------------------------------------------- /public/imgs/sticker/EssisW.eth1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/EssisW.eth1.gif -------------------------------------------------------------------------------- /public/imgs/sticker/EssisW.eth2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/EssisW.eth2.jpg -------------------------------------------------------------------------------- /public/imgs/sticker/Magda1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Magda1.png -------------------------------------------------------------------------------- /public/imgs/sticker/Magda2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Magda2.png -------------------------------------------------------------------------------- /public/imgs/sticker/MillionDollars1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/MillionDollars1.png -------------------------------------------------------------------------------- /public/imgs/sticker/MillionDollars2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/MillionDollars2.png -------------------------------------------------------------------------------- /public/imgs/sticker/Shallot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Shallot1.png -------------------------------------------------------------------------------- /public/imgs/sticker/Shallot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Shallot2.png -------------------------------------------------------------------------------- /public/imgs/sticker/Yol1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Yol1.png -------------------------------------------------------------------------------- /public/imgs/sticker/Yol2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/Yol2.png -------------------------------------------------------------------------------- /public/imgs/sticker/afifridwan1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/afifridwan1.gif -------------------------------------------------------------------------------- /public/imgs/sticker/afifridwan2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/afifridwan2.gif -------------------------------------------------------------------------------- /public/imgs/sticker/fomomonstr1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/fomomonstr1.png -------------------------------------------------------------------------------- /public/imgs/sticker/fomomonstr2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/sticker/fomomonstr2.png -------------------------------------------------------------------------------- /public/imgs/story/story-blog-cover-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/story/story-blog-cover-1.png -------------------------------------------------------------------------------- /public/imgs/story/story-blog-cover-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/story/story-blog-cover-2.png -------------------------------------------------------------------------------- /public/imgs/story/story-partener-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/story/story-partener-5.png -------------------------------------------------------------------------------- /public/imgs/story/story-partener-6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/imgs/token/SolvBTC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/imgs/token/SolvBTC.png -------------------------------------------------------------------------------- /public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/logo.png -------------------------------------------------------------------------------- /public/logo_walletconnect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/logo_walletconnect.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Enter Scroll", 3 | "name": "Scroll Developer Portal", 4 | "icons": [ 5 | { 6 | "src": "favicon_new.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo.png", 12 | "type": "image/png" 13 | } 14 | ], 15 | "start_url": ".", 16 | "display": "standalone", 17 | "theme_color": "#000000", 18 | "background_color": "#ffffff" 19 | } 20 | -------------------------------------------------------------------------------- /public/og_canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_canvas.png -------------------------------------------------------------------------------- /public/og_canvas_and_badges.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_canvas_and_badges.png -------------------------------------------------------------------------------- /public/og_community.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_community.png -------------------------------------------------------------------------------- /public/og_sSCR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_sSCR.png -------------------------------------------------------------------------------- /public/og_scrETH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_scrETH.png -------------------------------------------------------------------------------- /public/og_scroll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_scroll.png -------------------------------------------------------------------------------- /public/og_scroll_brand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_scroll_brand.png -------------------------------------------------------------------------------- /public/og_scroll_origins_nft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_scroll_origins_nft.png -------------------------------------------------------------------------------- /public/og_scroll_sessions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_scroll_sessions.png -------------------------------------------------------------------------------- /public/og_sessions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_sessions.png -------------------------------------------------------------------------------- /public/og_sticker_vote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/og_sticker_vote.png -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /public/tokenomics/circulatingSupply.txt: -------------------------------------------------------------------------------- 1 | 190000000 -------------------------------------------------------------------------------- /public/tokenomics/totalSupply.txt: -------------------------------------------------------------------------------- 1 | 1000000000 -------------------------------------------------------------------------------- /public/twitter_canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/twitter_canvas.png -------------------------------------------------------------------------------- /public/twitter_canvas_and_badges.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/twitter_canvas_and_badges.png -------------------------------------------------------------------------------- /public/twitter_community.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/twitter_community.png -------------------------------------------------------------------------------- /public/twitter_sSCR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/twitter_sSCR.png -------------------------------------------------------------------------------- /public/twitter_scrETH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/twitter_scrETH.png -------------------------------------------------------------------------------- /public/twitter_scroll_origins_nft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/twitter_scroll_origins_nft.png -------------------------------------------------------------------------------- /public/twitter_scroll_sessions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/twitter_scroll_sessions.png -------------------------------------------------------------------------------- /public/twitter_sessions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/twitter_sessions.png -------------------------------------------------------------------------------- /public/twitter_sticker_vote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/twitter_sticker_vote.png -------------------------------------------------------------------------------- /public/videos/landing-tech.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/videos/landing-tech.mp4 -------------------------------------------------------------------------------- /public/videos/landing-tech.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/public/videos/landing-tech.webm -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": ["config:recommended"] 4 | } 5 | -------------------------------------------------------------------------------- /scripts/turbo-ignore.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | if [ -f next.config.js ]; then 4 | npx turbo-ignore --fallback=HEAD^1 5 | else 6 | exit 1 7 | fi 8 | -------------------------------------------------------------------------------- /sentry.edge.config.ts: -------------------------------------------------------------------------------- 1 | // This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). 2 | // The config you add here will be used whenever one of the edge features is loaded. 3 | // Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. 4 | // https://docs.sentry.io/platforms/javascript/guides/nextjs/ 5 | import * as Sentry from "@sentry/nextjs" 6 | 7 | Sentry.init({ 8 | enabled: ["Sepolia", "Mainnet"].includes(process.env.NEXT_PUBLIC_SCROLL_ENVIRONMENT), 9 | dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, 10 | // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. 11 | tracesSampleRate: 1, 12 | 13 | // Setting this option to true will print useful information to the console while you're setting up Sentry. 14 | debug: false, 15 | }) 16 | -------------------------------------------------------------------------------- /sentry.server.config.ts: -------------------------------------------------------------------------------- 1 | // This file configures the initialization of Sentry on the server. 2 | // The config you add here will be used whenever the server handles a request. 3 | // https://docs.sentry.io/platforms/javascript/guides/nextjs/ 4 | import * as Sentry from "@sentry/nextjs" 5 | 6 | Sentry.init({ 7 | enabled: ["Sepolia", "Mainnet"].includes(process.env.NEXT_PUBLIC_SCROLL_ENVIRONMENT), 8 | dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, 9 | // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. 10 | tracesSampleRate: 1, 11 | 12 | // Setting this option to true will print useful information to the console while you're setting up Sentry. 13 | debug: false, 14 | }) 15 | -------------------------------------------------------------------------------- /src/apis/blog.ts: -------------------------------------------------------------------------------- 1 | export const blogOrigin = "https://blog.scroll.cat" 2 | 3 | export const fetchBlogDetailURL = (blogId: string) => `${blogOrigin}/api/post/${blogId}.md?title=1` 4 | -------------------------------------------------------------------------------- /src/apis/bridge.ts: -------------------------------------------------------------------------------- 1 | const baseUrl = process.env.NEXT_PUBLIC_BRIDGE_API_URI 2 | 3 | export const fetchTxByHashUrl = `${baseUrl}/txsbyhashes` 4 | 5 | export const fetchWithdrawalListUrl = `${baseUrl}/l2/withdrawals` 6 | 7 | export const fetchTxListUrl = `${baseUrl}/txs` 8 | 9 | export const fetchClaimableTxListUrl = `${baseUrl}/l2/unclaimed/withdrawals` 10 | -------------------------------------------------------------------------------- /src/apis/canvas-badge.ts: -------------------------------------------------------------------------------- 1 | const badgeRegistryBaseURL = process.env.NEXT_PUBLIC_BADGE_REGISTRY_URL 2 | 3 | const badgeIndexerBaseURL = process.env.NEXT_PUBLIC_BADGE_INDEXER_URL 4 | 5 | export const fetchBadgesURL = `${badgeRegistryBaseURL}/badges` 6 | 7 | export const fetchBadgeByAddrURL = addr => `${badgeRegistryBaseURL}/badge/${addr}` 8 | 9 | export const retrieveCanvasBadgeURL = `${badgeIndexerBaseURL}/count` 10 | -------------------------------------------------------------------------------- /src/apis/community.ts: -------------------------------------------------------------------------------- 1 | export const communityOrigin = "https://community.scroll.cat" 2 | export const communityEventListUrl = `${communityOrigin}/events` 3 | -------------------------------------------------------------------------------- /src/apis/dynamic.ts: -------------------------------------------------------------------------------- 1 | export const tokenListUrl = "https://assets.scroll.cat/token-list.json" 2 | -------------------------------------------------------------------------------- /src/apis/ens.ts: -------------------------------------------------------------------------------- 1 | const ensBaseURL = process.env.NEXT_PUBLIC_ENS_API_URL 2 | 3 | export function getEnsAddressURL(ens: string) { 4 | return `${ensBaseURL}/name/${ens}/address` 5 | } 6 | -------------------------------------------------------------------------------- /src/apis/nft.ts: -------------------------------------------------------------------------------- 1 | const baseUrl = process.env.NEXT_PUBLIC_NFT_API_URI 2 | 3 | export const fetchParamsByAddressURL = address => `${baseUrl}/p/${address}.json?timestamp=${Date.now()}` 4 | 5 | export const generateParamsByAddressURL = address => `${baseUrl}/up/${address}.json` 6 | -------------------------------------------------------------------------------- /src/apis/rollupscan.ts: -------------------------------------------------------------------------------- 1 | const baseUrl = process.env.NEXT_PUBLIC_ROLLUPSCAN_API_URI 2 | 3 | export const fetchLastBatchIndexesUrl = `${baseUrl}/last_batch_indexes` 4 | 5 | export const fetchBatchListUrl = `${baseUrl}/batches` 6 | 7 | export const fetchBatchDetailUrl = `${baseUrl}/batch` 8 | 9 | export const fetchChunkListUrl = `${baseUrl}/chunks` 10 | 11 | export const fetchChunkBlocksUrl = `${baseUrl}/chunk_blocks` 12 | 13 | export const fetchBatchBlocksUrl = `${baseUrl}/batch_blocks` 14 | 15 | export const searchUrl = `${baseUrl}/search` 16 | 17 | export const fetchBetchDetail = `${baseUrl}/batch` 18 | -------------------------------------------------------------------------------- /src/apis/sessions.ts: -------------------------------------------------------------------------------- 1 | // const baseUrl = process.env.NEXT_PUBLIC_OPEN_BLOCK_URI 2 | const venusUrl = process.env.NEXT_PUBLIC_SCROLL_VENUS_URI 3 | 4 | const baseUrl = process.env.NEXT_PUBLIC_SESSIONS_URI 5 | 6 | export const checkSignStatus = address => `${venusUrl}/v1/signature/address?address=${address}` 7 | export const updateSignStatus = `${venusUrl}/v1/signature/sign` 8 | 9 | export const fetchSession0And1TotalMarksURL = address => `${baseUrl}/session1-marks/${address}` 10 | export const fetchSession2TotalMarksURL = address => `${baseUrl}/session2-marks/${address}` 11 | export const fetchSession2PerProtocolMarksURL = address => `${baseUrl}/session2-project-marks/${address}` 12 | -------------------------------------------------------------------------------- /src/app/SCR-sSCR/Explaination/data.ts: -------------------------------------------------------------------------------- 1 | import SecureSvg from "@/assets/svgs/defi/secure.svg" 2 | import UpSvg from "@/assets/svgs/defi/up.svg" 3 | import VoteSvg from "@/assets/svgs/defi/vote.svg" 4 | 5 | const data = [ 6 | { 7 | icon: SecureSvg, 8 | title: "Liquid and secure", 9 | description: "sSCR can be traded, used as collateral, or, in the future, used to secure AVSs, key features, and applications.", 10 | }, 11 | { 12 | icon: VoteSvg, 13 | title: "Maintain voting power", 14 | description: "Users can deploy sSCR to eligible DeFi destinations on Scroll while maintaining its voting power.", 15 | }, 16 | { 17 | icon: UpSvg, 18 | title: "Multiple integrations in DeFi", 19 | description: "An additional Marks multiplier is applied for users that deposit sSCR into eligible DeFi destinations.", 20 | }, 21 | ] 22 | 23 | export default data 24 | -------------------------------------------------------------------------------- /src/app/_canvas-and-badges/Badges/BadgeList/Error.tsx: -------------------------------------------------------------------------------- 1 | import { Stack, Typography } from "@mui/material" 2 | 3 | import ErrorSvg from "@/assets/svgs/ecosystem/error.svg" 4 | import useCheckViewport from "@/hooks/useCheckViewport" 5 | 6 | const Error = props => { 7 | const { dark, title, action, ...restProps } = props 8 | const { isMobile } = useCheckViewport() 9 | return ( 10 | 11 | 12 | 13 | {title} 14 | 15 | {action} 16 | 17 | ) 18 | } 19 | 20 | export default Error 21 | -------------------------------------------------------------------------------- /src/app/_canvas-and-badges/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(() => ({ 4 | titleSuffix: "Canvas And Badges", 5 | relativeURL: "/canvas-and-badges", 6 | description: "Build your on-chain persona and collect badges across Scroll’s ecosystem", 7 | ogImg: "/og_canvas_and_badges.png", 8 | twitterImg: "/twitter_canvas_and_badges.png", 9 | })) 10 | 11 | export default function Layout({ children }) { 12 | return <>{children} 13 | } 14 | -------------------------------------------------------------------------------- /src/app/_canvas-and-badges/page.tsx: -------------------------------------------------------------------------------- 1 | // "use client" 2 | import Badges from "./Badges" 3 | import FeaturedBadges from "./FeaturedBadges" 4 | import Header from "./Header" 5 | import Introduction from "./Introduction" 6 | 7 | const CanvasBadge = () => { 8 | return ( 9 | <> 10 |
11 | 12 | 13 | 14 | 15 | ) 16 | } 17 | 18 | export default CanvasBadge 19 | -------------------------------------------------------------------------------- /src/app/_canvas/Dashboard/CustomizeDisplayDialog/Transfer/Overlay.tsx: -------------------------------------------------------------------------------- 1 | import Item from "./Item" 2 | 3 | const TransferItemDragOverlay = props => { 4 | const { name, image } = props 5 | return 6 | } 7 | 8 | export default TransferItemDragOverlay 9 | -------------------------------------------------------------------------------- /src/app/_canvas/badge-contract/[address]/Back.tsx: -------------------------------------------------------------------------------- 1 | import { useRouter } from "next/navigation" 2 | 3 | import { Stack, SvgIcon, Typography } from "@mui/material" 4 | 5 | import BackSvg from "@/assets/svgs/canvas/back.svg" 6 | 7 | const Back = props => { 8 | const { sx, ...restProps } = props 9 | const router = useRouter() 10 | 11 | const handleGoBack = () => { 12 | router.back() 13 | } 14 | return ( 15 | 22 | 23 | Back 24 | 25 | ) 26 | } 27 | export default Back 28 | -------------------------------------------------------------------------------- /src/app/_canvas/badge-contract/[address]/layout.tsx: -------------------------------------------------------------------------------- 1 | import { fetchBadgeByAddrURL } from "@/apis/canvas-badge" 2 | import { genMeta } from "@/utils/route" 3 | 4 | export const generateMetadata = genMeta(async ({ params }) => { 5 | const { address } = await params 6 | const badge = await fetch(fetchBadgeByAddrURL(address)).then(res => res.json()) 7 | return { 8 | title: `Canvas Badge - ${badge.name}`, 9 | description: `I found a badge called ${badge.name} you may like`, 10 | relativeURL: `/canvas/badge-contract/${address}`, 11 | ogImg: `${process.env.NEXT_PUBLIC_CANVAS_BACKEND_URI}/badge-contract/${address}.png`, 12 | twitterImg: `${process.env.NEXT_PUBLIC_CANVAS_BACKEND_URI}/badge-contract/${address}.png`, 13 | } 14 | }) 15 | 16 | export default function Layout({ children }) { 17 | return <>{children} 18 | } 19 | -------------------------------------------------------------------------------- /src/app/_canvas/badge-contract/[address]/page.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import BadgeContract from "./BadgeContract" 4 | 5 | const BadgeContracPage = () => { 6 | if (process.env.NEXT_PUBLIC_SCROLL_ENVIRONMENT === "Sepolia") { 7 | notFound() 8 | } 9 | return 10 | } 11 | 12 | export default BadgeContracPage 13 | -------------------------------------------------------------------------------- /src/app/_canvas/badge/[id]/page.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import Badge from "./Badge" 4 | 5 | const BadgePage = () => { 6 | if (process.env.NEXT_PUBLIC_SCROLL_ENVIRONMENT === "Sepolia") { 7 | notFound() 8 | } 9 | return 10 | } 11 | 12 | export default BadgePage 13 | -------------------------------------------------------------------------------- /src/app/_canvas/invite/[code]/Invite.tsx: -------------------------------------------------------------------------------- 1 | import Link from "next/link" 2 | 3 | import { useRainbowContext } from "@/contexts/RainbowProvider" 4 | import useCanvasStore from "@/stores/canvasStore" 5 | 6 | import LoadingPage from "../../loading" 7 | import ReadyToMint from "../../mint/home" 8 | 9 | const CanvasInvite = props => { 10 | const { code } = props 11 | 12 | const { walletCurrentAddress } = useRainbowContext() 13 | 14 | const { profileMintedChecking, profileMinted, mintFlowVisible } = useCanvasStore() 15 | 16 | if (!mintFlowVisible && walletCurrentAddress && (profileMintedChecking || profileMinted === null)) { 17 | return 18 | } 19 | if (!mintFlowVisible && profileMinted) { 20 | return 21 | } 22 | 23 | return 24 | } 25 | 26 | export default CanvasInvite 27 | -------------------------------------------------------------------------------- /src/app/_canvas/mint/layout.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { genMeta } from "@/utils/route" 4 | 5 | export const generateMetadata = genMeta(() => ({ 6 | titleSuffix: "Canvas", 7 | relativeURL: "/canvas/mint", 8 | description: "Earn attestation badges across the ecosystem.", 9 | ogImg: "/og_canvas.png", 10 | twitterImg: "/twitter_canvas.png", 11 | })) 12 | 13 | export default function Layout({ children }) { 14 | if (process.env.NEXT_PUBLIC_SCROLL_ENVIRONMENT === "Sepolia") { 15 | notFound() 16 | } 17 | return <>{children} 18 | } 19 | -------------------------------------------------------------------------------- /src/app/_canvas/page.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { genMeta } from "@/utils/route" 4 | 5 | import Canvas from "./Canvas" 6 | 7 | export const generateMetadata = genMeta(() => ({ 8 | titleSuffix: "Canvas", 9 | relativeURL: "/canvas", 10 | description: "Earn attestation badges across the ecosystem.", 11 | ogImg: "/og_canvas.png", 12 | twitterImg: "/twitter_canvas.png", 13 | })) 14 | 15 | const CanvasPage = () => { 16 | if (process.env.NEXT_PUBLIC_SCROLL_ENVIRONMENT === "Sepolia") { 17 | notFound() 18 | } 19 | return 20 | } 21 | 22 | export default CanvasPage 23 | -------------------------------------------------------------------------------- /src/app/_story/Initail/Line.tsx: -------------------------------------------------------------------------------- 1 | import { Divider } from "@mui/material" 2 | 3 | import LineToView from "@/components/Motion/LineToView" 4 | 5 | const Line = props => { 6 | return ( 7 | 8 | theme.vars.palette.text.primary }} textAlign="center" {...props} /> 9 | 10 | ) 11 | } 12 | 13 | export default Line 14 | -------------------------------------------------------------------------------- /src/app/_story/JoinTeam/index.tsx: -------------------------------------------------------------------------------- 1 | import { Stack, Typography } from "@mui/material" 2 | 3 | import Button from "@/components/Button" 4 | import SectionWrapper from "@/components/SectionWrapper" 5 | 6 | const JoinTeam = () => { 7 | return ( 8 | 9 | 10 | Join the Scroll team! 11 | 14 | 15 | 16 | ) 17 | } 18 | 19 | export default JoinTeam 20 | -------------------------------------------------------------------------------- /src/app/_story/page.tsx: -------------------------------------------------------------------------------- 1 | import BuildingStory from "./BuildingStory" 2 | import Header from "./Header" 3 | import Initail from "./Initail" 4 | import JoinTeam from "./JoinTeam" 5 | import TechPrinciple from "./TechPrinciple" 6 | import Value from "./Value" 7 | 8 | const OurStory = () => { 9 | return ( 10 | <> 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | ) 19 | } 20 | 21 | export default OurStory 22 | -------------------------------------------------------------------------------- /src/app/api/sentry-example-api/route.ts: -------------------------------------------------------------------------------- 1 | import { NextResponse } from "next/server" 2 | 3 | export const dynamic = "force-dynamic" 4 | 5 | // A faulty API route to test Sentry's error monitoring 6 | export function GET() { 7 | throw new Error("Sentry Example API Route Error") 8 | return NextResponse.json({ data: "Testing Sentry Error..." }) 9 | } 10 | -------------------------------------------------------------------------------- /src/app/archive/20230308/terms-and-conditions/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(() => ({ 4 | titleSuffix: "Terms and Conditions[Archive]", 5 | relativeURL: "/archive/20230308/terms-and-conditions", 6 | })) 7 | 8 | export default function Layout({ children }) { 9 | return <>{children} 10 | } 11 | -------------------------------------------------------------------------------- /src/app/blog/[blogId]/actions.ts: -------------------------------------------------------------------------------- 1 | "use server" 2 | 3 | import { fetchBlogDetailURL } from "@/apis/blog" 4 | 5 | export const fetchBlogContent = async (blogId: string) => { 6 | const response = await fetch(fetchBlogDetailURL(blogId)) 7 | 8 | if (response.ok) { 9 | const blogContent = await response.text() 10 | if (!blogContent) { 11 | throw new Error("Not found") 12 | } 13 | return blogContent 14 | } else { 15 | throw new Error("Failed to fetch blog content") 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/app/blog/layout.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { isSepolia } from "@/utils" 4 | import { genMeta } from "@/utils/route" 5 | 6 | export const generateMetadata = genMeta(() => ({ 7 | titleSuffix: "Blog", 8 | relativeURL: "/blog", 9 | })) 10 | 11 | export default function Layout({ children }) { 12 | if (isSepolia) { 13 | notFound() 14 | } 15 | return <>{children} 16 | } 17 | -------------------------------------------------------------------------------- /src/app/brand-kit/page.tsx: -------------------------------------------------------------------------------- 1 | import { Box } from "@mui/material" 2 | 3 | import { genMeta } from "@/utils/route" 4 | 5 | import Assets from "./Assets" 6 | import Header from "./Header" 7 | 8 | export const generateMetadata = genMeta(() => ({ 9 | titleSuffix: "Brand Kit", 10 | relativeURL: "/brand-kit", 11 | description: "Explore and download Scroll brand assets and media kit, including logos, banners, and brand guidelines.", 12 | ogImg: "/og_scroll_brand.png", 13 | twitterImg: "/og_scroll_brand.png", 14 | })) 15 | 16 | const BrandKit = () => { 17 | return ( 18 | 19 |
20 | 21 | 22 | ) 23 | } 24 | 25 | export default BrandKit 26 | -------------------------------------------------------------------------------- /src/app/bridge/Send/Deposit.tsx: -------------------------------------------------------------------------------- 1 | import SendTransaction from "./SendTransaction" 2 | 3 | const Deposit = () => { 4 | return 5 | } 6 | 7 | export default Deposit 8 | -------------------------------------------------------------------------------- /src/app/bridge/Send/SendTransaction/InfoTooltip/FeeDetails.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react" 2 | import { makeStyles } from "tss-react/mui" 3 | 4 | import { Typography } from "@mui/material" 5 | 6 | const useStyles = makeStyles()(theme => ({ 7 | root: { 8 | width: "32.0rem", 9 | }, 10 | text: { 11 | color: theme.vars.palette.primary.contrastText, 12 | }, 13 | })) 14 | 15 | type Props = { 16 | bonderFee?: string 17 | bonderFeeUsd?: string 18 | destinationTxFee?: string 19 | destinationTxFeeUsd?: string 20 | content?: string 21 | } 22 | 23 | const FeeDetails: FC = props => { 24 | const { classes: styles } = useStyles() 25 | return ( 26 |
27 | 28 | {props.content} 29 | 30 |
31 | ) 32 | } 33 | 34 | export default FeeDetails 35 | -------------------------------------------------------------------------------- /src/app/bridge/faq/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(() => ({ 4 | titleSuffix: "Bridge FAQ", 5 | relativeURL: "/bridge/faq", 6 | })) 7 | 8 | export default function Layout({ children }) { 9 | return <>{children} 10 | } 11 | -------------------------------------------------------------------------------- /src/app/bridge/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(() => ({ 4 | titleSuffix: "Bridge", 5 | relativeURL: "/bridge", 6 | })) 7 | 8 | export default function Layout({ children }) { 9 | return <>{children} 10 | } 11 | -------------------------------------------------------------------------------- /src/app/community/Events/Error.tsx: -------------------------------------------------------------------------------- 1 | import { Stack, Typography } from "@mui/material" 2 | 3 | import ErrorSvg from "@/assets/svgs/ecosystem/error.svg" 4 | import useCheckViewport from "@/hooks/useCheckViewport" 5 | 6 | const Error = props => { 7 | const { title, action, ...restProps } = props 8 | const { isMobile } = useCheckViewport() 9 | return ( 10 | 11 | 12 | {title} 13 | {action} 14 | 15 | ) 16 | } 17 | 18 | export default Error 19 | -------------------------------------------------------------------------------- /src/app/community/Events/NoData.tsx: -------------------------------------------------------------------------------- 1 | import { Stack, Typography } from "@mui/material" 2 | 3 | import EmptySvg from "@/assets/svgs/ecosystem/empty.svg" 4 | import useCheckViewport from "@/hooks/useCheckViewport" 5 | 6 | const NoData = props => { 7 | const { title, description, ...restProps } = props 8 | const { isMobile } = useCheckViewport() 9 | return ( 10 | 11 | 12 | {title} 13 | {description} 14 | 15 | ) 16 | } 17 | 18 | export default NoData 19 | -------------------------------------------------------------------------------- /src/app/community/Globe/mainscene/countryMesh/delaunay.ts: -------------------------------------------------------------------------------- 1 | import Delaunator from "./delaunator" 2 | import { pointInPolygon } from "./pointInPolygon" 3 | 4 | function delaunay(pointsArr: string | any[], polygon: any) { 5 | var indexArr = (Delaunator.from(pointsArr) as any).triangles 6 | 7 | var usefulIndexArr: any = [] 8 | 9 | for (var i = 0; i < indexArr.length; i += 3) { 10 | var p1 = pointsArr[indexArr[i]] 11 | var p2 = pointsArr[indexArr[i + 1]] 12 | var p3 = pointsArr[indexArr[i + 2]] 13 | 14 | var triangleCentroid = [(p1[0] + p2[0] + p3[0]) / 3, (p1[1] + p2[1] + p3[1]) / 3] 15 | if (pointInPolygon(triangleCentroid, polygon)) { 16 | usefulIndexArr.push(indexArr[i + 2], indexArr[i + 1], indexArr[i]) 17 | } 18 | } 19 | return usefulIndexArr 20 | } 21 | export { delaunay } 22 | -------------------------------------------------------------------------------- /src/app/community/Globe/mainscene/countryMesh/math.ts: -------------------------------------------------------------------------------- 1 | function lon2xyz(R: number, longitude: number, latitude: number) { 2 | var lon = (longitude * Math.PI) / 180 3 | var lat = (latitude * Math.PI) / 180 4 | lon = -lon 5 | 6 | var x = R * Math.cos(lat) * Math.cos(lon) 7 | var y = R * Math.sin(lat) 8 | var z = R * Math.cos(lat) * Math.sin(lon) 9 | 10 | return { 11 | x: x, 12 | y: y, 13 | z: z, 14 | } 15 | } 16 | 17 | export { lon2xyz } 18 | -------------------------------------------------------------------------------- /src/app/community/Globe/mainscene/countryMesh/pointInPolygon.ts: -------------------------------------------------------------------------------- 1 | function pointInPolygon(point: any[], vs: string | any[]) { 2 | var x = point[0], 3 | y = point[1] 4 | var inside = false 5 | for (var i = 0, j = vs.length - 1; i < vs.length; j = i++) { 6 | var xi = vs[i][0], 7 | yi = vs[i][1] 8 | var xj = vs[j][0], 9 | yj = vs[j][1] 10 | var intersect = yi > y !== yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi) + xi 11 | if (intersect) inside = !inside 12 | } 13 | return inside 14 | } 15 | export { pointInPolygon } 16 | -------------------------------------------------------------------------------- /src/app/community/layout.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { isSepolia } from "@/utils" 4 | import { genMeta } from "@/utils/route" 5 | 6 | export const generateMetadata = genMeta(() => ({ 7 | titleSuffix: "Community", 8 | relativeURL: "/community", 9 | ogImg: "/og_community.png", 10 | twitterImg: "/twitter_community.png", 11 | })) 12 | 13 | export default function Layout({ children }) { 14 | if (isSepolia) { 15 | notFound() 16 | } 17 | return <>{children} 18 | } 19 | -------------------------------------------------------------------------------- /src/app/community/page.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import dynamic from "next/dynamic" 4 | import { makeStyles } from "tss-react/mui" 5 | 6 | import { Box } from "@mui/material" 7 | 8 | import Events from "./Events" 9 | import Join from "./Join" 10 | 11 | const Globe = dynamic(() => import("./Globe"), { ssr: false }) 12 | 13 | const useStyles = makeStyles()(() => ({ 14 | container: { 15 | marginTop: "-6.5rem", 16 | paddingTop: "6.5rem", 17 | overflow: "hidden", 18 | }, 19 | })) 20 | 21 | const Community = () => { 22 | const { classes } = useStyles() 23 | 24 | return ( 25 | 26 | 27 | 28 | 29 | 30 | ) 31 | } 32 | 33 | export default Community 34 | -------------------------------------------------------------------------------- /src/app/developer-nft/components/NFTCard/NFTImage.tsx: -------------------------------------------------------------------------------- 1 | import Img from "react-cool-img" 2 | 3 | import { Box } from "@mui/material" 4 | 5 | const NFTImage = props => { 6 | const { sx, src } = props 7 | 8 | return ( 9 | 10 | 11 | 12 | ) 13 | } 14 | 15 | export default NFTImage 16 | -------------------------------------------------------------------------------- /src/app/developer-nft/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(() => ({ 4 | titleSuffix: "Scroll Origins NFT", 5 | relativeURL: "/developer-nft", 6 | })) 7 | 8 | export default function Layout({ children }) { 9 | return <>{children} 10 | } 11 | -------------------------------------------------------------------------------- /src/app/developer-nft/mint/page.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import NFTContextProvider from "@/contexts/NFTContextProvider" 4 | import { isSepolia } from "@/utils" 5 | import { genMeta } from "@/utils/route" 6 | 7 | import MintHome from "./home" 8 | 9 | export const generateMetadata = genMeta(() => ({ 10 | titleSuffix: "Scroll Origins NFT", 11 | relativeURL: "/developer-nft/mint", 12 | ogImg: "/og_scroll_origins_nft.png", 13 | twitterImg: "/twitter_scroll_origins_nft.png", 14 | })) 15 | 16 | const Mint = () => { 17 | if (isSepolia) { 18 | notFound() 19 | } 20 | return ( 21 | 22 | 23 | 24 | ) 25 | } 26 | 27 | export default Mint 28 | -------------------------------------------------------------------------------- /src/app/developer-nft/page.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import { useRouter } from "next/navigation" 4 | 5 | const DeveloperNFT = () => { 6 | const router = useRouter() 7 | 8 | router.replace("/developer-nft/mint") 9 | return null 10 | } 11 | 12 | export default DeveloperNFT 13 | -------------------------------------------------------------------------------- /src/app/ecosystem/Protocols/ProtocolList/Error.tsx: -------------------------------------------------------------------------------- 1 | import { Stack, Typography } from "@mui/material" 2 | 3 | import ErrorSvg from "@/assets/svgs/ecosystem/error.svg" 4 | import useCheckViewport from "@/hooks/useCheckViewport" 5 | 6 | const Error = props => { 7 | const { title, action, ...restProps } = props 8 | const { isMobile } = useCheckViewport() 9 | return ( 10 | 11 | 12 | 20 | {title} 21 | 22 | {action} 23 | 24 | ) 25 | } 26 | 27 | export default Error 28 | -------------------------------------------------------------------------------- /src/app/ecosystem/Protocols/ProtocolList/NetworkLabel.tsx: -------------------------------------------------------------------------------- 1 | import { makeStyles } from "tss-react/mui" 2 | 3 | import { Chip } from "@mui/material" 4 | 5 | const useStyles = makeStyles()(theme => ({ 6 | root: { 7 | height: "auto", 8 | padding: "0.4rem 1.2rem", 9 | borderRadius: "1.6rem", 10 | backgroundColor: theme.vars.palette.themeBackground.light, 11 | }, 12 | label: { 13 | fontSize: "1.6rem", 14 | lineHeight: 1.5, 15 | fontWeight: 600, 16 | padding: 0, 17 | color: "#84623A", 18 | }, 19 | })) 20 | 21 | const NetworkLabel = props => { 22 | const { children, ...restProps } = props 23 | const { classes } = useStyles() 24 | return 25 | } 26 | export default NetworkLabel 27 | -------------------------------------------------------------------------------- /src/app/ecosystem/page.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { isSepolia } from "@/utils" 4 | import { genMeta } from "@/utils/route" 5 | 6 | import Contribute from "./Contribute" 7 | import Header from "./Header" 8 | import Highlights from "./Highlights" 9 | import Protocols from "./Protocols" 10 | 11 | export const generateMetadata = genMeta(() => ({ 12 | titleSuffix: "Ecosystem", 13 | relativeURL: "/ecosystem", 14 | })) 15 | 16 | const Ecosystem = () => { 17 | if (isSepolia) { 18 | notFound() 19 | } 20 | return ( 21 | <> 22 |
23 | 24 | 25 | 26 | 27 | ) 28 | } 29 | 30 | export default Ecosystem 31 | -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scroll-tech/frontends/4e7d7bf7fdcb6df6721c5f97b7969147a1b84af7/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/global-error.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as Sentry from "@sentry/nextjs" 4 | import NextError from "next/error" 5 | import { useEffect } from "react" 6 | 7 | export default function GlobalError({ error }: { error: Error & { digest?: string } }) { 8 | useEffect(() => { 9 | Sentry.captureException(error) 10 | }, [error]) 11 | 12 | return ( 13 | 14 | 15 | {/* This is the default Next.js error component but it doesn't allow omitting the statusCode property yet. */} 16 | 17 | 18 | 19 | ) 20 | } 21 | -------------------------------------------------------------------------------- /src/app/join-us/page.tsx: -------------------------------------------------------------------------------- 1 | import { Box } from "@mui/material" 2 | 3 | import { genMeta } from "@/utils/route" 4 | 5 | import Header from "./Header" 6 | import Mission from "./Mission" 7 | import News from "./News" 8 | import Perks from "./Perks" 9 | import Positions from "./Positions" 10 | import WorkApproach from "./WorkApproach" 11 | 12 | export const generateMetadata = genMeta(() => ({ 13 | titleSuffix: "Join Us", 14 | relativeURL: "/join-us", 15 | })) 16 | 17 | const Career = () => { 18 | return ( 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | ) 28 | } 29 | 30 | export default Career 31 | -------------------------------------------------------------------------------- /src/app/loading.tsx: -------------------------------------------------------------------------------- 1 | import LoadingPage from "@/components/LoadingPage" 2 | 3 | const Loading = () => { 4 | return 5 | } 6 | 7 | export default Loading 8 | -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils" 2 | 3 | import FounderClub from "./_components/FounderClub" 4 | import Hero from "./_components/Hero" 5 | import Portal from "./_components/Portal" 6 | import Tech from "./_components/Tech" 7 | import Vision from "./_components/Vision" 8 | 9 | export const generateMetadata = genMeta(() => ({ 10 | titleSuffix: "Native zkEVM Layer 2 for Ethereum", 11 | })) 12 | 13 | const LandingPage = () => { 14 | return ( 15 | <> 16 | 17 | 18 | 19 | 20 | 21 | 22 | ) 23 | } 24 | 25 | export default LandingPage 26 | -------------------------------------------------------------------------------- /src/app/portal/TestFlow.tsx: -------------------------------------------------------------------------------- 1 | import { Typography } from "@mui/material" 2 | 3 | import Link from "@/components/Link" 4 | import { NAVIGATIONS } from "@/constants" 5 | 6 | import Descriptions, { DescriptionItem } from "./Descriptions" 7 | 8 | const TestFlow = () => { 9 | return ( 10 | 11 | {NAVIGATIONS.map(item => ( 12 | 13 | 14 | {item.name} 15 | 16 | {item.description} 17 | 18 | ))} 19 | 20 | ) 21 | } 22 | 23 | export default TestFlow 24 | -------------------------------------------------------------------------------- /src/app/portal/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(() => ({ 4 | titleSuffix: "Portal", 5 | relativeURL: "/portal", 6 | })) 7 | 8 | export default function PortalLayout({ children }) { 9 | return <>{children} 10 | } 11 | -------------------------------------------------------------------------------- /src/app/privacy-policy/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(() => ({ 4 | titleSuffix: "Privacy Policy", 5 | relativeURL: "/privacy-policy", 6 | })) 7 | 8 | export default function Layout({ children }) { 9 | return <>{children} 10 | } 11 | -------------------------------------------------------------------------------- /src/app/rollupscan/batch/[batchIndex]/blocks/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(async ({ params }) => { 4 | const { batchIndex } = await params 5 | return { 6 | titleSuffix: "Rollup Explorer: Block Details", 7 | relativeURL: `/rollupscan/batch/${batchIndex}/blocks`, 8 | } 9 | }) 10 | 11 | export default function Layout({ children }) { 12 | return <>{children} 13 | } 14 | -------------------------------------------------------------------------------- /src/app/rollupscan/batch/[batchIndex]/chunk/[chunkIndex]/blocks/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(async ({ params }) => { 4 | const { batchIndex, chunkIndex } = await params 5 | return { 6 | titleSuffix: "Rollup Explorer: Block Details", 7 | relativeURL: `/rollupscan/batch/${batchIndex}/chunk/${chunkIndex}/blocks`, 8 | } 9 | }) 10 | 11 | export default function Layout({ children }) { 12 | return <>{children} 13 | } 14 | -------------------------------------------------------------------------------- /src/app/rollupscan/batch/[batchIndex]/chunk/[chunkIndex]/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(async ({ params }) => { 4 | const { batchIndex, chunkIndex } = await params 5 | return { 6 | titleSuffix: "Rollup Explorer: Chunk Details", 7 | relativeURL: `/rollupscan/batch/${batchIndex}/chunk/${chunkIndex}`, 8 | } 9 | }) 10 | 11 | export default function Layout({ children }) { 12 | return <>{children} 13 | } 14 | -------------------------------------------------------------------------------- /src/app/rollupscan/batch/[batchIndex]/chunks/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(async ({ params }) => { 4 | const { batchIndex } = await params 5 | 6 | return { 7 | titleSuffix: "Rollup Explorer: Chunk List", 8 | relativeURL: `/rollupscan/batch/${batchIndex}/chunks`, 9 | } 10 | }) 11 | 12 | export default function Layout({ children }) { 13 | return <>{children} 14 | } 15 | -------------------------------------------------------------------------------- /src/app/rollupscan/batch/[batchIndex]/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(async ({ params }) => { 4 | const { batchIndex } = await params 5 | 6 | return { 7 | titleSuffix: "Rollup Explorer: Batch Details", 8 | relativeURL: `/rollupscan/batch/${batchIndex}`, 9 | } 10 | }) 11 | 12 | export default function Layout({ children }) { 13 | return <>{children} 14 | } 15 | -------------------------------------------------------------------------------- /src/app/rollupscan/components/Spinning.tsx: -------------------------------------------------------------------------------- 1 | import { Box, CircularProgress } from "@mui/material" 2 | 3 | const Spinning = () => { 4 | return ( 5 | 6 | 7 | 8 | ) 9 | } 10 | 11 | export default Spinning 12 | -------------------------------------------------------------------------------- /src/app/rollupscan/components/Table.tsx: -------------------------------------------------------------------------------- 1 | import Table from "@mui/material/Table" 2 | import { styled } from "@mui/material/styles" 3 | 4 | const StyledTable = styled(Table)(({ theme }) => ({ 5 | marginTop: "3rem", 6 | minWidth: 700, 7 | borderRadius: theme.shape.borderRadius, 8 | border: `1px solid ${theme.vars.palette.divider}`, 9 | borderCollapse: "separate", 10 | overflow: "hidden", 11 | [theme.breakpoints.down("sm")]: { 12 | marginTop: "1.2rem", 13 | }, 14 | ".MuiTableCell-root": { 15 | whiteSpace: "nowrap", 16 | }, 17 | })) 18 | 19 | export default StyledTable 20 | -------------------------------------------------------------------------------- /src/app/rollupscan/components/TableCell.tsx: -------------------------------------------------------------------------------- 1 | import TableCell, { tableCellClasses } from "@mui/material/TableCell" 2 | import { styled } from "@mui/material/styles" 3 | 4 | const StyledTableCell = styled(TableCell)(({ theme }) => ({ 5 | fontWeight: "500", 6 | color: theme.vars.palette.text.primary, 7 | [`&.${tableCellClasses.head}`]: { 8 | fontSize: 16, 9 | height: "6rem", 10 | }, 11 | [`&.${tableCellClasses.body}`]: { 12 | fontSize: "1.6rem", 13 | height: "10rem", 14 | fontWeight: "500", 15 | }, 16 | "&:nth-of-type(1)": { 17 | paddingLeft: "2.7rem", 18 | }, 19 | })) 20 | export default StyledTableCell 21 | -------------------------------------------------------------------------------- /src/app/rollupscan/components/Tooltip.tsx: -------------------------------------------------------------------------------- 1 | import InfoOutlinedIcon from "@mui/icons-material/InfoOutlined" 2 | import { Box, Tooltip as MuiTooltip, Typography } from "@mui/material" 3 | 4 | const Tooltip = props => { 5 | return ( 6 | 7 | 8 | 9 | {props.name} 10 | 11 | 12 | 13 | 14 | ) 15 | } 16 | 17 | export default Tooltip 18 | -------------------------------------------------------------------------------- /src/app/rollupscan/constants.ts: -------------------------------------------------------------------------------- 1 | const DEFAULT_PAGE = 1, 2 | DEFAULT_PAGE_SIZE = 10 3 | 4 | export { DEFAULT_PAGE, DEFAULT_PAGE_SIZE } 5 | -------------------------------------------------------------------------------- /src/app/rollupscan/layout.tsx: -------------------------------------------------------------------------------- 1 | import { genMeta } from "@/utils/route" 2 | 3 | export const generateMetadata = genMeta(() => ({ 4 | titleSuffix: "Rollup Explorer", 5 | relativeURL: "/rollupscan", 6 | })) 7 | 8 | export default function RollupscanLayout({ children }) { 9 | return <>{children} 10 | } 11 | -------------------------------------------------------------------------------- /src/app/scrETH/Explaination/data.ts: -------------------------------------------------------------------------------- 1 | import RewardsSvg from "@/assets/svgs/defi/rewards.svg" 2 | import SecureSvg from "@/assets/svgs/defi/secure.svg" 3 | import UpSvg from "@/assets/svgs/defi/up.svg" 4 | 5 | const data = [ 6 | { 7 | icon: RewardsSvg, 8 | title: "Get staking rewards", 9 | description: "ETH native PoS staking rewards.", 10 | }, 11 | { 12 | icon: UpSvg, 13 | title: "Deep DeFi Integrations", 14 | description: 15 | "Earn additional rewards from Scroll Sessions and from Scroll's DeFi ecosystem by deploying scrETH to eligible DeFi destinations on Scroll.", 16 | }, 17 | { 18 | icon: SecureSvg, 19 | title: "Liquid and secure", 20 | description: "scrETH can be traded, used as collateral or, in the future, help secure the set of AVSs that rely on them for economic security", 21 | }, 22 | ] 23 | 24 | export default data 25 | -------------------------------------------------------------------------------- /src/app/scrETH/page.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { genMeta } from "@/utils" 4 | import { isSepolia } from "@/utils" 5 | 6 | import Explaination from "./Explaination" 7 | import Header from "./Header" 8 | 9 | export const generateMetadata = genMeta(() => ({ 10 | titleSuffix: "scrETH", 11 | relativeURL: "/scrETH", 12 | description: "Scroll's ecosystem native ETH LRT", 13 | ogImg: "/og_scrETH.png", 14 | twitterImg: "/twitter_scrETH.png", 15 | })) 16 | 17 | const ScrETHPage = () => { 18 | if (isSepolia) { 19 | notFound() 20 | } 21 | return ( 22 | <> 23 |
24 | 25 | 26 | ) 27 | } 28 | 29 | export default ScrETHPage 30 | -------------------------------------------------------------------------------- /src/app/sessions-terms-of-use/layout.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { isSepolia } from "@/utils" 4 | import { genMeta } from "@/utils/route" 5 | 6 | export const generateMetadata = genMeta(() => ({ 7 | titleSuffix: "Scroll Sessions Terms of Use", 8 | relativeURL: "/sessions-terms-of-use", 9 | })) 10 | 11 | export default function Layout({ children }) { 12 | if (isSepolia) { 13 | notFound() 14 | } 15 | return <>{children} 16 | } 17 | -------------------------------------------------------------------------------- /src/app/sessions/Guidance/index.tsx: -------------------------------------------------------------------------------- 1 | import { Box } from "@mui/material" 2 | 3 | import { SESSIONS_EXPLORER_LIST } from "@/constants/sessions" 4 | 5 | import GuidanceCard from "./GuidanceCard" 6 | 7 | const Guidance = () => { 8 | return ( 9 | 17 | {SESSIONS_EXPLORER_LIST.map(item => ( 18 | 19 | ))} 20 | 21 | ) 22 | } 23 | 24 | export default Guidance 25 | -------------------------------------------------------------------------------- /src/app/sessions/components/StepCard/index.tsx: -------------------------------------------------------------------------------- 1 | import { Box, Stack, Typography } from "@mui/material" 2 | 3 | const Card = props => { 4 | const { sx, title, children, ...restProps } = props 5 | return ( 6 | 15 | {title} 16 | {children} 17 | 18 | ) 19 | } 20 | 21 | export default Card 22 | -------------------------------------------------------------------------------- /src/app/sessions/layout.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { isSepolia } from "@/utils" 4 | import { genMeta } from "@/utils/route" 5 | 6 | export const generateMetadata = genMeta(() => ({ 7 | titleSuffix: "Scroll Sessions", 8 | relativeURL: "/sessions", 9 | description: "Receive Marks for your engagement with Scroll. Join Sessions now!", 10 | ogImg: "/og_sessions.png", 11 | twitterImg: "/twitter_sessions.png", 12 | })) 13 | 14 | export default function SessionsLayout({ children }) { 15 | if (isSepolia) { 16 | notFound() 17 | } 18 | return <>{children} 19 | } 20 | -------------------------------------------------------------------------------- /src/app/sticker-vote/page.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { isSepolia } from "@/utils" 4 | import { genMeta } from "@/utils/route" 5 | 6 | import Finalists from "./Finalists" 7 | import Header from "./Header" 8 | 9 | export const generateMetadata = genMeta(() => ({ 10 | titleSuffix: "Scroll Sticker Vote", 11 | relativeURL: "/sticker-vote", 12 | description: "Vote for your favourite sticker designs.", 13 | ogImg: "/og_sticker_vote.png", 14 | twitterImg: "/twitter_sticker_vote.png", 15 | })) 16 | 17 | const StickerContest = () => { 18 | if (isSepolia) { 19 | notFound() 20 | } 21 | return ( 22 | <> 23 |
24 | 25 | 26 | ) 27 | } 28 | 29 | export default StickerContest 30 | -------------------------------------------------------------------------------- /src/app/sticker-winners/page.tsx: -------------------------------------------------------------------------------- 1 | import { notFound } from "next/navigation" 2 | 3 | import { isSepolia } from "@/utils" 4 | import { genMeta } from "@/utils/route" 5 | 6 | import Finalists from "./Finalists" 7 | import Header from "./Header" 8 | 9 | export const generateMetadata = genMeta(() => ({ 10 | titleSuffix: "Scroll Sticker Winners", 11 | relativeURL: "/sticker-winners", 12 | description: "Congratulations to the winners of the sticker contest.", 13 | })) 14 | 15 | const StickerContest = () => { 16 | if (isSepolia) { 17 | notFound() 18 | } 19 | return ( 20 | <> 21 |
22 | 23 | 24 | ) 25 | } 26 | 27 | export default StickerContest 28 | -------------------------------------------------------------------------------- /src/app/template.tsx: -------------------------------------------------------------------------------- 1 | import { ReactNode } from "react" 2 | import "swiper/css" 3 | import "swiper/css/pagination" 4 | 5 | import { Box } from "@mui/material" 6 | 7 | import Footer from "@/components/Footer" 8 | import Header from "@/components/Header" 9 | import useHideFooter from "@/hooks/useHideFooter" 10 | import { isSepolia } from "@/utils" 11 | 12 | import "./global" 13 | 14 | export default function RootTemplate({ children }: { children: ReactNode }) { 15 | const hideFooter = useHideFooter() 16 | 17 | return ( 18 | 19 |
20 | {children} 21 | {!(isSepolia || hideFooter) &&