├── .circleci └── config.yml ├── .editorconfig ├── .env ├── .env.development ├── .eslintrc.json ├── .gitignore ├── .prettierignore ├── .vscode └── settings.json ├── README.md ├── abis ├── AutoFund.json ├── Erc20.json ├── FundManager.json ├── TokenTap.json ├── UnitapEVMTokenTap.json ├── UnitapPass.json ├── UnitapPassBatchSale.json ├── UnitapPassBatchSaleMain.json ├── UnitapPassMain.json ├── UnitapPrizeTap.json └── UnitapPrizeTap721.json ├── app ├── _components │ └── searchbar.tsx ├── about │ ├── _components │ │ ├── About.tsx │ │ ├── Insight.tsx │ │ ├── Mission.tsx │ │ └── Team.tsx │ ├── constants.ts │ └── page.tsx ├── api │ ├── chains │ │ ├── get-solana-balance │ │ │ └── route.ts │ │ └── get-solana-testnet-balance │ │ │ └── route.ts │ └── sentry-example-api │ │ └── route.js ├── dashboard │ ├── components │ │ ├── Buttons.tsx │ │ ├── ChainList.tsx │ │ ├── ConstraintDetailsModal.tsx │ │ ├── CsvFileInput.tsx │ │ ├── DisplaySteps.tsx │ │ ├── SelectMethodInput.tsx │ │ ├── ShouldSatisfy.tsx │ │ ├── constraintAppDetailModal.tsx │ │ └── pagination.tsx │ ├── constants │ │ ├── forms.ts │ │ └── integrations.ts │ ├── content.module.scss │ ├── gas-tap │ │ ├── components │ │ │ ├── Content.tsx │ │ │ └── ProvideGasFeeContent.tsx │ │ ├── create │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ │ ├── layout.tsx │ │ └── page.tsx │ ├── layout.tsx │ ├── page.tsx │ ├── prize-tap │ │ ├── components │ │ │ ├── CardTimer.tsx │ │ │ ├── CreateRaffleModal │ │ │ │ ├── RenderBrightNotConnectedBody.tsx │ │ │ │ ├── RenderWalletNotConnectedBody.tsx │ │ │ │ └── index.tsx │ │ │ ├── Modals │ │ │ │ └── winnersModal.tsx │ │ │ ├── OfferPrizeForm │ │ │ │ ├── ContactInformation.tsx │ │ │ │ ├── DepositPrize │ │ │ │ │ ├── components │ │ │ │ │ │ ├── DepositContent.tsx │ │ │ │ │ │ ├── DisplayRequirement │ │ │ │ │ │ │ └── DisplayRequirments.tsx │ │ │ │ │ │ ├── DisplaySelectedTokenOrNft.tsx │ │ │ │ │ │ └── ShowPreviewModal │ │ │ │ │ │ │ ├── FormYouFilled.tsx │ │ │ │ │ │ │ ├── RaffleCardTimerSubmitContribution.tsx │ │ │ │ │ │ │ ├── RenderInitialBody.tsx │ │ │ │ │ │ │ ├── RenderSocialMedia.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── InformationVerification.tsx │ │ │ │ ├── NewAddedConstraint.tsx │ │ │ │ ├── PrizeInfo │ │ │ │ │ ├── components │ │ │ │ │ │ ├── AddNftIdListModal.tsx │ │ │ │ │ │ ├── SelectChainDropDown.tsx │ │ │ │ │ │ └── SelectTokenOrNft.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Requirements │ │ │ │ │ ├── components │ │ │ │ │ │ └── ConstraintListModal.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── TimeEnrollLimitation │ │ │ │ │ ├── components │ │ │ │ │ │ ├── DisplaySelectedDate.tsx │ │ │ │ │ │ ├── EndDateComp.tsx │ │ │ │ │ │ ├── ManualDuration.tsx │ │ │ │ │ │ ├── PeopleLimitation.tsx │ │ │ │ │ │ └── StartDateComp.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── SearchInput.tsx │ │ │ ├── content.module.scss │ │ │ ├── prizeCard.tsx │ │ │ └── prizeList.tsx │ │ ├── create │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ │ ├── details │ │ │ └── [id] │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ ├── loading.tsx │ │ ├── page.tsx │ │ └── verification │ │ │ └── [id] │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ ├── styles.scss │ └── token-tap │ │ ├── components │ │ ├── CardTimerTokenTap.tsx │ │ ├── Content.tsx │ │ ├── OfferTokenForm │ │ │ ├── DepositToken │ │ │ │ ├── components │ │ │ │ │ ├── DepositContent.tsx │ │ │ │ │ ├── DisplaySelectedTokenOrNft.tsx │ │ │ │ │ └── ShowPreviewModal │ │ │ │ │ │ ├── FormYouFilled.tsx │ │ │ │ │ │ ├── RaffleCardTimerSubmitContribution.tsx │ │ │ │ │ │ ├── RenderInitialBody.tsx │ │ │ │ │ │ ├── RenderSocialMedia.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── NewAddedConstraint.tsx │ │ │ ├── TokenContactInformation.tsx │ │ │ ├── TokenInfo │ │ │ │ ├── components │ │ │ │ │ ├── AddNftIdListModal.tsx │ │ │ │ │ ├── SelectChainDropDown.tsx │ │ │ │ │ └── SelectTokenOrNft.tsx │ │ │ │ └── index.tsx │ │ │ ├── TokenInformationVerification.tsx │ │ │ ├── TokenTapRequirements │ │ │ │ ├── components │ │ │ │ │ └── ConstraintListModal.tsx │ │ │ │ └── index.tsx │ │ │ ├── TokenTapTimeEnrollLimitation │ │ │ │ ├── components │ │ │ │ │ ├── DisplaySelectedDate.tsx │ │ │ │ │ ├── EndDateComp.tsx │ │ │ │ │ ├── ManualDuration.tsx │ │ │ │ │ ├── PeopleLimitation.tsx │ │ │ │ │ └── StartDateComp.tsx │ │ │ │ └── index.tsx │ │ │ └── index.tsx │ │ └── content.module.scss │ │ ├── create │ │ ├── layout.tsx │ │ └── page.tsx │ │ ├── details │ │ └── [id] │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ │ ├── page.tsx │ │ └── verification │ │ └── [id] │ │ ├── layout.tsx │ │ └── page.tsx ├── donate │ └── page.tsx ├── gastap │ ├── components │ │ ├── Cards │ │ │ └── Chainlist │ │ │ │ ├── ChainCard.tsx │ │ │ │ ├── EmptyChainListCard.tsx │ │ │ │ ├── GasBalanceRenderer.tsx │ │ │ │ ├── chain-card.module.scss │ │ │ │ └── index.tsx │ │ ├── Modals │ │ │ ├── ClaimModal │ │ │ │ ├── ModalStatusesBody │ │ │ │ │ ├── BrightIdNotConnected.tsx │ │ │ │ │ ├── BrightIdNotVerified.tsx │ │ │ │ │ ├── ChooseWallet.tsx │ │ │ │ │ ├── ClaimFailed.tsx │ │ │ │ │ ├── ClaimPending.tsx │ │ │ │ │ ├── ClaimSuccess.tsx │ │ │ │ │ ├── WalletNotConnected.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── walletAddress.tsx │ │ │ ├── ClaimNotRemaining │ │ │ │ └── index.tsx │ │ │ ├── FundGasModal │ │ │ │ ├── content.tsx │ │ │ │ └── index.tsx │ │ │ ├── FundTransactionModal │ │ │ │ ├── FundTransactionModal.style.tsx │ │ │ │ └── index.tsx │ │ │ ├── SelectChainModal │ │ │ │ ├── chainItem.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── modalSearch.style.tsx │ │ │ │ └── selectChainModal.style.tsx │ │ │ ├── claimNonEVMModal.tsx │ │ │ └── highGasFeeModal.tsx │ │ ├── filters.tsx │ │ ├── header │ │ │ ├── index.tsx │ │ │ └── styles.scss │ │ ├── index.tsx │ │ ├── searchInput.tsx │ │ └── timer.tsx │ ├── layout.tsx │ ├── loading.tsx │ └── page.tsx ├── global-error.tsx ├── globals.scss ├── layout.tsx ├── new-landing │ ├── components │ │ ├── BrandSwiper.tsx │ │ ├── Brands.tsx │ │ ├── Container.tsx │ │ ├── Content.tsx │ │ ├── Features.tsx │ │ ├── Hero.tsx │ │ ├── LandingRefProvider.tsx │ │ ├── Values.tsx │ │ └── Web3.tsx │ ├── constants.tsx │ └── types.ts ├── not-found.tsx ├── page.tsx ├── pass │ ├── layout.tsx │ └── page.tsx ├── prizetap │ ├── components │ │ ├── Linea │ │ │ ├── LineaCheckWalletsModal.tsx │ │ │ ├── LineaWinnersModal.tsx │ │ │ ├── check-circle.svg │ │ │ └── index.tsx │ │ ├── Modals │ │ │ ├── enroll-body │ │ │ │ ├── BrightNotConnectedBody.tsx │ │ │ │ ├── InitialBody.tsx │ │ │ │ ├── RaffleRequirementModal.tsx │ │ │ │ ├── SuccessBody.tsx │ │ │ │ └── WrongNetworkBody.tsx │ │ │ ├── enroll-modal.tsx │ │ │ ├── enrolled-wallets-modal.tsx │ │ │ ├── wallet-address.tsx │ │ │ └── winnersModal.tsx │ │ ├── PrizeCard.tsx │ │ ├── RafflesList.tsx │ │ ├── header.module.scss │ │ ├── header.tsx │ │ ├── permissions.tsx │ │ └── searchInput.tsx │ ├── layout.tsx │ ├── loading.tsx │ ├── page.tsx │ └── styles.scss ├── profile │ ├── @socialAccounts │ │ ├── content.tsx │ │ └── page.tsx │ ├── components │ │ ├── addWalletModal.tsx │ │ ├── deleteWalletModal.tsx │ │ ├── renderProfileUsername.tsx │ │ ├── signPrompt.tsx │ │ ├── socialAccounts │ │ │ ├── ensAccount.tsx │ │ │ ├── farcasterAccount.tsx │ │ │ ├── gitcoinPassport.tsx │ │ │ ├── index.tsx │ │ │ ├── lensAccount.tsx │ │ │ ├── telegram.tsx │ │ │ └── twitter.tsx │ │ └── unitapPass.tsx │ ├── layout.tsx │ └── page.tsx ├── providers.tsx ├── quests │ └── page.tsx ├── sentry-example-page │ └── page.tsx ├── theme │ └── index.ts ├── tokentap │ ├── layout.tsx │ ├── loading.tsx │ └── page.tsx └── twitter │ └── success │ └── page.tsx ├── assets ├── animations │ └── GasFee-delivery2.json └── fonts │ └── DigitalNumbers │ └── DigitalNumbers-Regular.ttf ├── bun.lock ├── bun.lockb ├── components ├── ChakraProvider.tsx ├── HeaderSelection.tsx ├── ProviderSelection.tsx ├── axios-api-manager.tsx ├── containers │ ├── landing │ │ ├── button.tsx │ │ ├── gasTap │ │ │ ├── gasTapChains.tsx │ │ │ └── index.tsx │ │ ├── index.tsx │ │ ├── learnTap.tsx │ │ ├── prizeTap │ │ │ ├── index.tsx │ │ │ └── raffleTimer.tsx │ │ ├── stats.tsx │ │ ├── tokenTap │ │ │ └── index.tsx │ │ ├── unitapPass.tsx │ │ ├── unitapPassWrapper.tsx │ │ └── widget.tsx │ ├── modals │ │ ├── ConnectWalletModal │ │ │ ├── LoginSuccess.tsx │ │ │ ├── addNewWallet.tsx │ │ │ ├── addNewWalletFailed.tsx │ │ │ ├── addNewWalletSuccess.tsx │ │ │ ├── index.tsx │ │ │ ├── setUsername.tsx │ │ │ ├── switchNetworkModal.tsx │ │ │ ├── unknownWallet.tsx │ │ │ ├── walletConnecting.tsx │ │ │ └── walletPrompt.tsx │ │ ├── brightConnectionModal.tsx │ │ ├── brightStatusModal.tsx │ │ ├── claimModal.style.tsx │ │ ├── connectBrightIdModal.tsx │ │ ├── createBrightIdAccountModal.tsx │ │ └── index.tsx │ ├── onBoardProcess │ │ └── index.tsx │ ├── pass │ │ ├── Collapse.tsx │ │ ├── Header.tsx │ │ ├── mintNftCard.tsx │ │ └── nftTimer.tsx │ ├── provider-dashboard │ │ ├── Header.tsx │ │ ├── helpers │ │ │ ├── approveErc20Token.ts │ │ │ ├── approveErc721Token.ts │ │ │ ├── checkAreNftsValid.ts │ │ │ ├── checkCollectionAddress.ts │ │ │ ├── checkSocialMediaValidation.ts │ │ │ ├── createErc20Raffle.ts │ │ │ ├── createErc20TokenDistribution.ts │ │ │ ├── createErc721Raffle.ts │ │ │ ├── deadlineAndStartAt.ts │ │ │ ├── fetchBalances.ts │ │ │ ├── getErc20TokenContract.ts │ │ │ ├── getErc20TokenContractTokenTap.ts │ │ │ ├── getErc721NftContract.ts │ │ │ ├── isValidContractAddress.ts │ │ │ └── refundRemainingPrize.ts │ │ ├── hooks │ │ │ └── useAddRequirement.ts │ │ ├── layout.tsx │ │ └── provider-dashboard.module.scss │ ├── tasks │ │ └── tasks-list.tsx │ └── token-tap │ │ ├── Header.tsx │ │ ├── Markdown.tsx │ │ ├── Modals │ │ ├── BrightNotConnectedBody.tsx │ │ ├── ClaimFailedBody.tsx │ │ ├── ClaimLightningContent.tsx │ │ ├── ClaimModal.tsx │ │ ├── InitialBody.tsx │ │ ├── MaxedOutBody.tsx │ │ ├── NoRemainingClaimsBody.tsx │ │ ├── PendingBody.tsx │ │ ├── SuccessBody.tsx │ │ ├── TokenRequirementModal.tsx │ │ ├── TokenReservedBody.tsx │ │ └── WrongNetworkBody.tsx │ │ ├── Permissions.tsx │ │ ├── Timer.tsx │ │ ├── TokenCard.tsx │ │ ├── TokenCardNew.tsx │ │ ├── TokensList.tsx │ │ ├── header.module.scss │ │ └── searchInput.tsx ├── google-analytics.tsx ├── layout │ ├── LandingFooter.tsx │ ├── TopBar.tsx │ ├── UserAuthStatus.tsx │ ├── auth.module.scss │ ├── auth.tsx │ ├── dropdown.tsx │ ├── footer.tsx │ └── header.tsx ├── progress.tsx ├── styled-components.tsx └── ui │ ├── Button │ ├── UButton.tsx │ └── button.tsx │ ├── Dropdown │ ├── dropdown.tsx │ └── dropdownWrapper.tsx │ ├── Icon │ ├── icon.style.tsx │ └── index.tsx │ ├── Modal │ ├── modal.style.tsx │ └── modal.tsx │ ├── Select.tsx │ ├── Tooltip │ └── index.tsx │ ├── col.tsx │ ├── designVariables.tsx │ ├── input.tsx │ ├── label.tsx │ ├── loadingSpinner.tsx │ ├── messageButton.style.tsx │ ├── row.tsx │ └── text.style.tsx ├── constants ├── address.ts ├── chains.ts ├── contributionHub.ts ├── footer.ts ├── index.ts ├── intervals.ts ├── lottieCode.ts ├── network.ts ├── spaceman.ts ├── tokens.ts └── twitterAddresses.ts ├── context ├── RefreshContext.tsx ├── TaskProvider.tsx ├── errorsProvider.tsx ├── gasTapProvider.tsx ├── globalProvider.tsx ├── index.tsx ├── prizeTapProvider.tsx ├── providerDashboardContext.tsx ├── providerDashboardGasTapContext.tsx ├── providerDashboardTokenTapContext.tsx ├── socialAccountContext.tsx ├── tokenTapProvider.tsx ├── userProfile.tsx └── walletProvider.tsx ├── cypress.config.ts ├── cypress ├── e2e │ ├── 00-initial.spec.ts │ ├── 01-wallet.spec.ts │ ├── 02-gas-tap.spec.ts │ ├── 03-brightid.spec.ts │ └── 04-token-tap.spec.ts ├── fixtures │ └── example.json ├── helpers │ ├── auth.ts │ ├── gas-tap.ts │ ├── token-tap.ts │ └── wallet.ts ├── support │ ├── commands.js │ └── e2e.js ├── tsconfig.json └── utils │ ├── data.ts │ ├── ethbridge │ └── abiutils.ts │ └── fake_tx_data.ts ├── hooks └── useIntersectionObserver.tsx ├── lotties ├── arrowAnimation.json ├── chanceAnimation.json ├── loadingAnimation.json └── loadingDot.json ├── next-env.d.ts ├── next.config.ts ├── package.json ├── postcss.config.js ├── prettier.config.js ├── public ├── .well-known │ └── walletconnect.txt ├── Poweredbybright.svg ├── android-chrome-192x192.png ├── android-chrome-512x512.png ├── apple-touch-icon.png ├── assets │ ├── favicon.ico │ ├── font │ │ ├── DigitalNumbers │ │ │ └── DigitalNumbers-Regular.ttf │ │ ├── JetBrainsMono-Bold.ttf │ │ ├── JetBrainsMono-BoldItalic.ttf │ │ ├── JetBrainsMono-ExtraBold.ttf │ │ ├── JetBrainsMono-ExtraBoldItalic.ttf │ │ ├── JetBrainsMono-ExtraLight.ttf │ │ ├── JetBrainsMono-ExtraLightItalic.ttf │ │ ├── JetBrainsMono-Italic.ttf │ │ ├── JetBrainsMono-Light.ttf │ │ ├── JetBrainsMono-LightItalic.ttf │ │ ├── JetBrainsMono-Medium.ttf │ │ ├── JetBrainsMono-MediumItalic.ttf │ │ ├── JetBrainsMono-Regular.ttf │ │ ├── JetBrainsMono-SemiBold.ttf │ │ ├── JetBrainsMono-SemiBoldItalic.ttf │ │ ├── JetBrainsMono-Thin.ttf │ │ ├── JetBrainsMono-ThinItalic.ttf │ │ ├── NotoSans │ │ │ ├── NotoSans-Black.ttf │ │ │ ├── NotoSans-BlackItalic.ttf │ │ │ ├── NotoSans-Bold.ttf │ │ │ ├── NotoSans-BoldItalic.ttf │ │ │ ├── NotoSans-ExtraBold.ttf │ │ │ ├── NotoSans-ExtraBoldItalic.ttf │ │ │ ├── NotoSans-ExtraLight.ttf │ │ │ ├── NotoSans-ExtraLightItalic.ttf │ │ │ ├── NotoSans-Italic.ttf │ │ │ ├── NotoSans-Light.ttf │ │ │ ├── NotoSans-LightItalic.ttf │ │ │ ├── NotoSans-Medium.ttf │ │ │ ├── NotoSans-MediumItalic.ttf │ │ │ ├── NotoSans-Regular.ttf │ │ │ ├── NotoSans-SemiBold.ttf │ │ │ ├── NotoSans-SemiBoldItalic.ttf │ │ │ ├── NotoSans-Thin.ttf │ │ │ └── NotoSans-ThinItalic.ttf │ │ └── NotoSansMono │ │ │ ├── NotoSansMono-Black.ttf │ │ │ ├── NotoSansMono-Bold.ttf │ │ │ ├── NotoSansMono-ExtraBold.ttf │ │ │ ├── NotoSansMono-ExtraLight.ttf │ │ │ ├── NotoSansMono-Light.ttf │ │ │ ├── NotoSansMono-Medium.ttf │ │ │ ├── NotoSansMono-Regular.ttf │ │ │ ├── NotoSansMono-SemiBold.ttf │ │ │ └── NotoSansMono-Thin.ttf │ ├── images │ │ ├── 404.svg │ │ ├── about │ │ │ ├── gas-tap-icon.svg │ │ │ ├── header-unitap-logo.svg │ │ │ ├── launch-tap-icon.svg │ │ │ ├── learn-tap-icon.svg │ │ │ ├── prize-tap-icon.svg │ │ │ ├── roadmap.png │ │ │ ├── roadmap.svg │ │ │ ├── stake-tap-icon.svg │ │ │ ├── timeline.png │ │ │ ├── timeline.svg │ │ │ ├── token-tap-icon.svg │ │ │ └── what-is-unitap-header.png │ │ ├── arb.svg │ │ ├── arbitrum-arb-logo.svg │ │ ├── arrow-icon.svg │ │ ├── bright-icon.png │ │ ├── check-circle-space-green.svg │ │ ├── claim │ │ │ ├── claimedIcon.svg │ │ │ ├── drop.svg │ │ │ ├── empty-list-mobile.svg │ │ │ ├── empty-list.svg │ │ │ ├── failed-drop-icon.svg │ │ │ ├── header-spaceman.png │ │ │ ├── provide-fund-hand.svg │ │ │ ├── slash-icon.svg │ │ │ ├── spaceman-header.svg │ │ │ └── success-drop-icon.svg │ │ ├── copy-link.png │ │ ├── donate │ │ │ ├── ETH-address.png │ │ │ ├── btc-address.png │ │ │ ├── btc.svg │ │ │ ├── copy-green.svg │ │ │ ├── donate-img.png │ │ │ ├── donate-img.svg │ │ │ ├── donate-texture.png │ │ │ ├── donate-texture.svg │ │ │ ├── eth.svg │ │ │ ├── qr.svg │ │ │ ├── solana-address.png │ │ │ └── solana.svg │ │ ├── ens.svg │ │ ├── footer │ │ │ ├── discord.svg │ │ │ ├── github.svg │ │ │ ├── telegram.svg │ │ │ ├── twitter.svg │ │ │ └── youtube.svg │ │ ├── fund │ │ │ ├── arrow-down.png │ │ │ ├── coin-icon.png │ │ │ ├── content-hashtag-gff.png │ │ │ ├── failed-provide-spaceman.svg │ │ │ ├── footer-text.png │ │ │ ├── header-gas-fund-fee-text.png │ │ │ ├── header-spaceman.png │ │ │ ├── help-fund-the-tap.svg │ │ │ ├── provide-gas-fee-battery.svg │ │ │ ├── provide-gas-fee-planet.svg │ │ │ └── success-provide-spaceman.svg │ │ ├── gas-tap │ │ │ ├── claimable-once.svg │ │ │ ├── claimed-logo.svg │ │ │ ├── connect-bright-id-to-see-claims-bg.jpg │ │ │ ├── connect-bright-id-to-see-claims-bg.svg │ │ │ ├── dabe-loading.svg │ │ │ ├── dabe.svg │ │ │ ├── empty-dabe.svg │ │ │ ├── gas-tap-text-logo.png │ │ │ ├── gas-tap-text-logo.svg │ │ │ ├── header-wave.svg │ │ │ ├── periodic-tap.svg │ │ │ ├── refuel-logo.svg │ │ │ └── twitter-share.svg │ │ ├── gitcoin.svg │ │ ├── golem.png │ │ ├── headerBg.png │ │ ├── header_wave.svg │ │ ├── landing │ │ │ ├── arrow-right.svg │ │ │ ├── background-wave.svg │ │ │ ├── claim-button-logo.svg │ │ │ ├── contributionHub.svg │ │ │ ├── discord-icon.svg │ │ │ ├── donate-texture.png │ │ │ ├── gastap-icon.svg │ │ │ ├── gastap-texture.png │ │ │ ├── genesis-nft.png │ │ │ ├── genesis-nft.svg │ │ │ ├── github-icon.svg │ │ │ ├── home-header-texture.png │ │ │ ├── home-header-texture.svg │ │ │ ├── launchtap-icon.png │ │ │ ├── launchtap-texture.png │ │ │ ├── learn-tap-bg.svg │ │ │ ├── learntap-icon.png │ │ │ ├── logo-center.svg │ │ │ ├── main-bg-profile.svg │ │ │ ├── mint-logo.svg │ │ │ ├── name-center.svg │ │ │ ├── prizetap-icon.png │ │ │ ├── prizetap-texture.png │ │ │ ├── profile-img.svg │ │ │ ├── soon-logo.svg │ │ │ ├── staketap-icon.png │ │ │ ├── staketap-texture.png │ │ │ ├── stats-texture.png │ │ │ ├── tasks.png │ │ │ ├── tokentap-icon.png │ │ │ ├── tokentap-icon.svg │ │ │ ├── tokentap-texture.png │ │ │ ├── twitter-icon.svg │ │ │ ├── twitter-seeklogo.com-4.svg │ │ │ ├── twitter.svg │ │ │ ├── uni-logo.svg │ │ │ ├── unitap-footer.png │ │ │ ├── unitap-logo.svg │ │ │ ├── unitap-pass.svg │ │ │ └── what-is-unitap.png │ │ ├── linea.svg │ │ ├── matic-icon.png │ │ ├── member1.jpg │ │ ├── member2.jpg │ │ ├── member3.png │ │ ├── member4.png │ │ ├── metamask.svg │ │ ├── modal-footer-bg.png │ │ ├── modal │ │ │ ├── app-store.svg │ │ │ ├── bright-fail-icon.svg │ │ │ ├── bright-icon.svg │ │ │ ├── bright-id-check.svg │ │ │ ├── bright-id-flat-logo.svg │ │ │ ├── bright-id-logo-checked.svg │ │ │ ├── bright-id-logo.svg │ │ │ ├── bright-success-icon.svg │ │ │ ├── check-green.svg │ │ │ ├── check.svg │ │ │ ├── claim_spaceman.svg │ │ │ ├── delete-wallet.svg │ │ │ ├── drop-icon.svg │ │ │ ├── exit.svg │ │ │ ├── failed-state-x.svg │ │ │ ├── gnosis-icon.svg │ │ │ ├── google-play.svg │ │ │ ├── gray-danger.svg │ │ │ ├── high-gas-fee-modal-icon.svg │ │ │ ├── idchain-icon.svg │ │ │ ├── metamask-bg.svg │ │ │ ├── metamask-icon.svg │ │ │ ├── metamask-success.svg │ │ │ ├── red-danger.svg │ │ │ ├── scan_spaceman.svg │ │ │ ├── search-icon.svg │ │ │ ├── space-like.svg │ │ │ ├── successful-state-check.svg │ │ │ ├── unitap-error.svg │ │ │ ├── unitap-welcome.svg │ │ │ ├── wallet-connect-loading.svg │ │ │ ├── wallet-metamask-loading.svg │ │ │ ├── walletconnect-bg.svg │ │ │ ├── walletconnect-icon.svg │ │ │ └── walletconnect-success.svg │ │ ├── navbar │ │ │ ├── arrow-right.svg │ │ │ ├── bright-icon.svg │ │ │ ├── coinbase.svg │ │ │ ├── copy.svg │ │ │ ├── dropdown-bg.svg │ │ │ ├── gradient-unitap.svg │ │ │ ├── link.svg │ │ │ ├── logo.svg │ │ │ ├── logout-button.svg │ │ │ ├── navbar-dropdown-donate.svg │ │ │ ├── navbar-dropdown-gas-tap.svg │ │ │ ├── navbar-dropdown-home.svg │ │ │ ├── navbar-dropdown-icon.png │ │ │ ├── navbar-dropdown-icon.svg │ │ │ ├── navbar-dropdown-mint.svg │ │ │ ├── navbar-dropdown-soon.svg │ │ │ ├── navbar-dropdown-token-tap.svg │ │ │ ├── navbar_bright_logo_v1.3.svg │ │ │ ├── navbar_logo_v1.3.png │ │ │ ├── navbar_logo_v1.3.svg │ │ │ ├── pr.svg │ │ │ ├── up-icon-disable.svg │ │ │ ├── up-icon.svg │ │ │ └── walletconnect.svg │ │ ├── nft │ │ │ ├── eth-icon.svg │ │ │ ├── launch-spaceship.svg │ │ │ ├── mint-header.png │ │ │ ├── mint-header.svg │ │ │ ├── nft-badge.svg │ │ │ ├── nft-collapse-arrow.svg │ │ │ ├── nft-header-spaceship.svg │ │ │ ├── nft-minus-gray.svg │ │ │ ├── nft-minus-white.svg │ │ │ ├── nft-pass-sale-icon.svg │ │ │ ├── nft-plus-gray.svg │ │ │ ├── nft-plus-white.svg │ │ │ ├── nft-poster.jpg │ │ │ ├── nft-questions-icon.svg │ │ │ ├── nft-typo-logo.png │ │ │ ├── nft-typo-logo.svg │ │ │ ├── rocket-base.png │ │ │ └── rocketship.png │ │ ├── noBoost.svg │ │ ├── noBoost1.svg │ │ ├── pass │ │ │ ├── adaptor.svg │ │ │ ├── advBg.svg │ │ │ ├── base-network.svg │ │ │ ├── bg-header.svg │ │ │ ├── chance.svg │ │ │ ├── check.svg │ │ │ ├── ic_link_white.svg │ │ │ ├── left.svg │ │ │ ├── right.svg │ │ │ ├── spot.svg │ │ │ ├── ticket.svg │ │ │ ├── unitap-pass.svg │ │ │ ├── up.svg │ │ │ └── verification.svg │ │ ├── passport.png │ │ ├── polygon.svg │ │ ├── prize-bg.png │ │ ├── prize-bg.svg │ │ ├── prize-tap │ │ │ ├── arrow-right.svg │ │ │ ├── blue-check-circle.svg │ │ │ ├── check.svg │ │ │ ├── cover.svg │ │ │ ├── daimond-ticket.svg │ │ │ ├── default-prize.png │ │ │ ├── diamond.svg │ │ │ ├── discord-logo-linea.svg │ │ │ ├── discord-logo.svg │ │ │ ├── emptyTicket.svg │ │ │ ├── enroll.svg │ │ │ ├── enrolled-ticket.svg │ │ │ ├── gitcoin.svg │ │ │ ├── header-bg.svg │ │ │ ├── header-info-logo.svg │ │ │ ├── header-logo.svg │ │ │ ├── header-prize-logo.svg │ │ │ ├── header-typo-logo.png │ │ │ ├── header-typo-logo.svg │ │ │ ├── header-typography.png │ │ │ ├── ic_link_green.svg │ │ │ ├── ic_link_white.svg │ │ │ ├── linea-modal-secondary-bg.svg │ │ │ ├── linea-raffle-image.svg │ │ │ ├── linea-raffle-modal-cover.svg │ │ │ ├── linea-texture.svg │ │ │ ├── linea-twitter-logo.svg │ │ │ ├── linea.svg │ │ │ ├── linia-prize-bg.svg │ │ │ ├── linia-raffle-bg.svg │ │ │ ├── linia-winner-bg.svg │ │ │ ├── nft-cover.svg │ │ │ ├── not-completed.svg │ │ │ ├── prize-background-1.svg │ │ │ ├── prize-background-2.svg │ │ │ ├── prize-image-1-1.svg │ │ │ ├── prize-image-1-2.svg │ │ │ ├── prize-image-1.svg │ │ │ ├── prize-image-2.svg │ │ │ ├── raffle-win.svg │ │ │ ├── selectedTicket.svg │ │ │ ├── ticket.svg │ │ │ ├── times.svg │ │ │ ├── twitter-logo.svg │ │ │ ├── userTicket.svg │ │ │ ├── website.svg │ │ │ ├── winner_bg.svg │ │ │ ├── winner_bg_diamond.svg │ │ │ └── winner_bg_diamond_old.svg │ │ ├── profile.png │ │ ├── provider-dashboard │ │ │ ├── Subtract.svg │ │ │ ├── Telos.svg │ │ │ ├── add-requirement.svg │ │ │ ├── arrow-down-dark.svg │ │ │ ├── arrow-down.svg │ │ │ ├── arrow-left.svg │ │ │ ├── arrow-right.svg │ │ │ ├── arrow-top-dark.svg │ │ │ ├── arrow-top.svg │ │ │ ├── bg-header.svg │ │ │ ├── bg.png │ │ │ ├── bg.svg │ │ │ ├── blibk neon.png │ │ │ ├── blibk neon_.png │ │ │ ├── blibk neon_.svg │ │ │ ├── btc.svg │ │ │ ├── btc_lightning_logo 1.svg │ │ │ ├── check-true.svg │ │ │ ├── checkbox.svg │ │ │ ├── close-circle.svg │ │ │ ├── creatorUrl.svg │ │ │ ├── cross.png │ │ │ ├── cross.svg │ │ │ ├── dashboard-login.svg │ │ │ ├── deposit-nft.png │ │ │ ├── deposit-token.png │ │ │ ├── diamond.png │ │ │ ├── discord-blue.svg │ │ │ ├── discord.svg │ │ │ ├── email.svg │ │ │ ├── equal.svg │ │ │ ├── ethIcon.png │ │ │ ├── exclamation.svg │ │ │ ├── exclamationMark-1.png │ │ │ ├── exclamationMark-1.svg │ │ │ ├── exclamationMark.svg │ │ │ ├── gas-bg.png │ │ │ ├── gas-bg.svg │ │ │ ├── gas-tap-dark.svg │ │ │ ├── gas-tap.svg │ │ │ ├── gasTap │ │ │ │ └── battery.png │ │ │ ├── github.svg │ │ │ ├── ic_link_gray.svg │ │ │ ├── ic_link_white.svg │ │ │ ├── ic_polygon.svg │ │ │ ├── info-circle.svg │ │ │ ├── invalidAddress.svg │ │ │ ├── kolahGhermezi.svg │ │ │ ├── lens.svg │ │ │ ├── loading.svg │ │ │ ├── mirror.svg │ │ │ ├── modalIcon │ │ │ │ ├── brightId.svg │ │ │ │ ├── dollar-circle.svg │ │ │ │ ├── gas-station.svg │ │ │ │ ├── lamp-on.svg │ │ │ │ ├── nft.svg │ │ │ │ ├── note-2.svg │ │ │ │ ├── note.svg │ │ │ │ ├── scanning.svg │ │ │ │ └── wallet-check.svg │ │ │ ├── op.svg │ │ │ ├── poap.svg │ │ │ ├── prize-bg.png │ │ │ ├── prize-off.svg │ │ │ ├── prize-offer-step-bg.png │ │ │ ├── prize-tap-dark.svg │ │ │ ├── prize-tap.svg │ │ │ ├── prizeForm-step-diamond.png │ │ │ ├── prizeForm-step-diamond_.svg │ │ │ ├── prizerForm-step-diamond-green.svg │ │ │ ├── rejected.svg │ │ │ ├── reload.svg │ │ │ ├── requirements │ │ │ │ ├── allowlist.svg │ │ │ │ ├── brightid.svg │ │ │ │ ├── captcha.svg │ │ │ │ ├── contract-query.svg │ │ │ │ ├── ens.svg │ │ │ │ ├── farcaster.svg │ │ │ │ ├── gastap.svg │ │ │ │ ├── learntap.svg │ │ │ │ ├── lens.svg │ │ │ │ ├── nft.svg │ │ │ │ ├── token.svg │ │ │ │ ├── transfer.svg │ │ │ │ ├── unitapPass.svg │ │ │ │ └── wallet.svg │ │ │ ├── step-1-active.svg │ │ │ ├── step-1-green.svg │ │ │ ├── step-1-off.svg │ │ │ ├── step-2-active.png │ │ │ ├── step-2-green.png │ │ │ ├── step-2-off.png │ │ │ ├── step-3-active.png │ │ │ ├── step-3-green.png │ │ │ ├── step-3-off.png │ │ │ ├── step-4-active.svg │ │ │ ├── step-4-green.svg │ │ │ ├── step-4-off.svg │ │ │ ├── step-5-active.svg │ │ │ ├── step-5-off.svg │ │ │ ├── telegram.svg │ │ │ ├── token-bg.png │ │ │ ├── token-tap-active.png │ │ │ ├── token-tap-dark.svg │ │ │ ├── token-tap-green.svg │ │ │ ├── token-tap-off.svg │ │ │ ├── token-tap.svg │ │ │ ├── tokenSelected.svg │ │ │ ├── twitter-blue.svg │ │ │ ├── twitter.svg │ │ │ ├── upload.svg │ │ │ ├── validAddress.svg │ │ │ └── warn-loading.svg │ │ ├── qr-code.png │ │ ├── token-tap │ │ │ ├── angle-down.svg │ │ │ ├── bg-primary-dark.svg │ │ │ ├── bright-token.svg │ │ │ ├── check.svg │ │ │ ├── coin.svg │ │ │ ├── coins-loading.svg │ │ │ ├── discord-icon.svg │ │ │ ├── empty-coin.png │ │ │ ├── empty-coin.svg │ │ │ ├── final-version-background.svg │ │ │ ├── header-background.svg │ │ │ ├── header-spaceman.svg │ │ │ ├── header-spaceship.svg │ │ │ ├── money.svg │ │ │ ├── non-repeat.svg │ │ │ ├── not-verified.svg │ │ │ ├── repeat.svg │ │ │ ├── token-tap-typo-logo.png │ │ │ ├── token-tap-typo-logo.svg │ │ │ └── twitter-icon.svg │ │ ├── tokens │ │ │ └── fantom.svg │ │ ├── tooltip.svg │ │ ├── twitter │ │ │ ├── 3look.png │ │ │ ├── Brian.png │ │ │ ├── CALLBACK.png │ │ │ ├── Carbon_Credit.png │ │ │ ├── Citizen_Wallet.png │ │ │ ├── Community_Currency.png │ │ │ ├── Crack _Stack.png │ │ │ ├── DEFIT.png │ │ │ ├── FANtium.png │ │ │ ├── FORSE.png │ │ │ ├── Intraverse.png │ │ │ ├── Kleo_Network.png │ │ │ ├── Maya_Labs.png │ │ │ ├── Raffl.png │ │ │ ├── SONGS.png │ │ │ ├── Smart_Layer.png │ │ │ ├── Snyper.png │ │ │ ├── Space_Misfits.png │ │ │ ├── Thrive_Polygon.png │ │ │ ├── Thrive_Protocol.png │ │ │ ├── Toaste_ Finance.png │ │ │ ├── UPPFIRST.png │ │ │ ├── WootzApp.png │ │ │ ├── Xerberus.png │ │ │ ├── Xion_Global.png │ │ │ ├── logo.png │ │ │ └── polygon.png │ │ ├── up-profile │ │ │ ├── arrow-right.svg │ │ │ ├── back.svg │ │ │ ├── bg-card.svg │ │ │ ├── big-bang.svg │ │ │ ├── brightid.svg │ │ │ ├── coin.svg │ │ │ ├── dabe.svg │ │ │ ├── discord.svg │ │ │ ├── dot.svg │ │ │ ├── gitcoin-passport.svg │ │ │ ├── img.svg │ │ │ ├── lock.svg │ │ │ ├── locked.svg │ │ │ ├── plus.svg │ │ │ ├── profile-bg.svg │ │ │ ├── profile-landing.svg │ │ │ ├── raffle.svg │ │ │ ├── trashcan.svg │ │ │ ├── twitter.svg │ │ │ └── whalerDAO.png │ │ ├── walletconnect.svg │ │ ├── wallets.svg │ │ ├── whalerDAO.svg │ │ ├── x-com.svg │ │ └── zora.svg │ ├── logo192.png │ ├── logo512.png │ └── videos │ │ ├── unitap-pas.mp4 │ │ └── unitap-pass.mp4 ├── claimIcon.png ├── edit.png ├── failed-airdrop.png ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── favicon.png ├── footer │ ├── discord.svg │ ├── telegram.svg │ ├── temple.svg │ ├── x.svg │ └── youtube.svg ├── green-tick.svg ├── headerBg.png ├── headerBg.svg ├── headerBg │ └── gem-1.png ├── home │ ├── brands │ │ ├── ARBITRUM.svg │ │ ├── CELO.svg │ │ ├── GLO.svg │ │ ├── GNOSIS.svg │ │ ├── LINEA.svg │ │ ├── METIS.svg │ │ ├── OPTIMISM.svg │ │ ├── POLYGON.svg │ │ ├── XCD.svg │ │ ├── bright id.svg │ │ ├── ens.svg │ │ ├── gitcoin.svg │ │ ├── giveth.svg │ │ ├── octant.svg │ │ ├── pairwise.svg │ │ ├── questbook.svg │ │ ├── sonic.svg │ │ └── thrive.svg │ ├── desktop-pattern.png │ ├── features │ │ ├── brain.png │ │ ├── cross-chain.png │ │ ├── decentralized-large.png │ │ ├── decentralized.png │ │ ├── dot-pattern.png │ │ └── plug-play.png │ ├── hero │ │ ├── arrow-down.svg │ │ ├── arrow.svg │ │ ├── hero-header.png │ │ └── hero.png │ ├── values │ │ ├── value-1-mini.png │ │ ├── value-1.png │ │ ├── value-2-mini.png │ │ ├── value-2.png │ │ ├── value-3-mini.png │ │ ├── value-3.png │ │ ├── value-4-mini.png │ │ ├── value-4.png │ │ ├── value-arrow-1.svg │ │ └── value-arrow-2.svg │ └── web3 │ │ ├── plug-play-large.png │ │ ├── star.png │ │ └── web3-pattern.png ├── logo-old.png ├── logo.svg ├── logo1.svg ├── logo192.png ├── logo2.png ├── manifest.json ├── new_logo.svg ├── nftListSample │ ├── sample.csv │ └── sample.txt ├── pending-spaceman.jpg ├── pending-spaceman.png ├── robots.txt ├── search.png ├── site.webmanifest ├── spman-header1.png └── spman-old.png ├── sentry.client.config.ts ├── sentry.edge.config.ts ├── sentry.server.config.ts ├── styles ├── animations.scss ├── buttons.scss ├── cards.scss ├── gastap.scss ├── index.scss └── packages │ └── react-multi-date-picker.scss ├── tailwind.config.ts ├── tsconfig.json ├── types ├── api.ts ├── auth.ts ├── brightId.ts ├── gastap.ts ├── index.ts ├── lens.ts ├── prizetap.ts ├── provider-dashboard.ts ├── tokentap.ts └── transaction.ts ├── utils ├── api │ ├── auth.ts │ ├── base.ts │ ├── gastap.ts │ ├── index.ts │ ├── landing.ts │ ├── lens.ts │ ├── prizetap.ts │ ├── provider-dashboard.ts │ ├── social-accounts.ts │ └── tokentap.ts ├── chain.ts ├── cookies.ts ├── errorHandler.ts ├── hooks │ ├── contributionPagInation.tsx │ ├── dom.ts │ ├── generateKeys.ts │ ├── index.tsx │ ├── refresh.tsx │ └── scrollTop.tsx ├── index.ts ├── numbers.ts ├── numbersBigNumber.ts ├── routes.ts ├── serverApis │ ├── auth.ts │ ├── contributionHub.ts │ ├── gastap.ts │ ├── index.ts │ └── prizetap.ts ├── time.ts ├── wallet │ ├── index.ts │ └── wagmi.ts └── web3.ts ├── vercel.json ├── wagmi.config.ts └── yarn.lock /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.1 2 | executors: 3 | cypress-latest: 4 | docker: 5 | - image: "cypress/base:latest" # Replace with the latest Node.js version available 6 | orbs: 7 | cypress: cypress-io/cypress@1 8 | workflows: 9 | build: 10 | jobs: 11 | - cypress/install: 12 | executor: cypress-latest 13 | install-command: "yarn install --frozen-lockfile" 14 | build: "yarn build" 15 | - cypress/run: 16 | executor: cypress-latest 17 | requires: 18 | - cypress/install 19 | record: false 20 | parallel: true 21 | parallelism: 4 22 | group: "all tests" 23 | start: "yarn start:cypress" 24 | post-steps: 25 | - run: yarn test 26 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | tab_width = 2 11 | 12 | [*.md] 13 | max_line_length = off 14 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | 2 | NEXT_PUBLIC_API_URL=https://api.unitap.app 3 | 4 | NEXT_PUBLIC_GOOGLE_ANALYTICS='G-HHTJ4P5ZB0' 5 | # API_URL=https://api.unitap.app 6 | 7 | 8 | NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID="31516b299852311acdc936c61cd7892c" 9 | 10 | NEXT_PUBLIC_IS_STAGE=0 11 | 12 | 13 | SOLANA_HTTP_PROVIDER="https://fragrant-intensive-patina.solana-mainnet.quiknode.pro/08a6330aa4eb2bbad964ee86b9a271fdb5e8a7ad/" 14 | 15 | NEXT_PUBLIC_CLOUDFLARE_TURNSITE_SITEKEY="0x4AAAAAAAiB14Mx3cWX5zwu" 16 | NEXT_PUBLIC_H_CAPTCHA_SITEKEY="68c27f52-99c6-4832-b2b0-b5ac343a9f90" 17 | -------------------------------------------------------------------------------- /.env.development: -------------------------------------------------------------------------------- 1 | # REACT_APP_API_URL=http://127.0.0.1:5678 2 | # NEXT_PUBLIC_API_URL=http://127.0.0.1:5678 3 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.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 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | 30 | # vercel 31 | .vercel 32 | 33 | # typescript 34 | *.tsbuildinfo 35 | next-env.d.ts 36 | 37 | /types/abis/ 38 | # Sentry Config File 39 | .sentryclirc 40 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/.prettierignore -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "Solana", 4 | "unitap", 5 | "prizetap", 6 | "gastap", 7 | "tokentap", 8 | "linea" 9 | ], 10 | "tailwindCSS.includeLanguages": { 11 | "typescript": "javascript", 12 | "typescriptreact": "javascript" 13 | }, 14 | "editor.quickSuggestions": { 15 | "strings": true 16 | }, 17 | "tailwindCSS.experimental.classRegex": [ 18 | "tw`([^`]*)", 19 | "tw\\.[^`]+`([^`]*)`", 20 | "tw\\(.*?\\).*?`([^`]*)" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /abis/AutoFund.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "addFund", 5 | "outputs": [], 6 | "stateMutability": "payable", 7 | "type": "function" 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /app/api/sentry-example-api/route.js: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /app/dashboard/gas-tap/create/page.tsx: -------------------------------------------------------------------------------- 1 | import ProvideGasFeeContent from "../components/ProvideGasFeeContent"; 2 | 3 | const Page = () => { 4 | return ( 5 | <> 6 | 7 | 8 | ); 9 | }; 10 | 11 | export default Page; 12 | -------------------------------------------------------------------------------- /app/dashboard/gas-tap/layout.tsx: -------------------------------------------------------------------------------- 1 | import { FC, PropsWithChildren } from "react"; 2 | 3 | const ProviderDashboardGasTapLayout: FC = async ({ 4 | children, 5 | }) => { 6 | return <>{children}; 7 | }; 8 | 9 | export default ProviderDashboardGasTapLayout; 10 | -------------------------------------------------------------------------------- /app/dashboard/gas-tap/page.tsx: -------------------------------------------------------------------------------- 1 | import GasTapContent from "./components/Content"; 2 | 3 | export default GasTapContent; 4 | -------------------------------------------------------------------------------- /app/dashboard/layout.tsx: -------------------------------------------------------------------------------- 1 | import ProviderDashboardLayout from "@/components/containers/provider-dashboard/layout"; 2 | import { Metadata } from "next"; 3 | import { FC, PropsWithChildren } from "react"; 4 | 5 | import "./styles.scss"; 6 | 7 | export const metadata: Metadata = { 8 | title: "Unitap | Incentive Center 🖥️", 9 | description: "If you have account log in to have access to Incentive Center", 10 | }; 11 | 12 | const Layout: FC = ({ children }) => { 13 | return {children}; 14 | }; 15 | 16 | export default Layout; 17 | -------------------------------------------------------------------------------- /app/dashboard/page.tsx: -------------------------------------------------------------------------------- 1 | import GasTapContent from "./gas-tap/components/Content"; 2 | 3 | export default GasTapContent; 4 | -------------------------------------------------------------------------------- /app/dashboard/prize-tap/components/OfferPrizeForm/DepositPrize/components/DepositContent.tsx: -------------------------------------------------------------------------------- 1 | import Icon from "@/components/ui/Icon"; 2 | 3 | type DepositContentProp = { 4 | title: string; 5 | description: string; 6 | icon: string; 7 | isNFT: boolean; 8 | }; 9 | 10 | const DepositContent = ({ 11 | title, 12 | description, 13 | icon, 14 | isNFT, 15 | }: DepositContentProp) => { 16 | return ( 17 |
18 | 24 |
25 |

{title}

26 |

{description}

27 |
28 |
29 | ); 30 | }; 31 | 32 | export default DepositContent; 33 | -------------------------------------------------------------------------------- /app/dashboard/prize-tap/create/layout.tsx: -------------------------------------------------------------------------------- 1 | import ProviderDashboard from "@/context/providerDashboardContext"; 2 | import { getFaucetListServer } from "@/utils/serverApis"; 3 | import { getConstraintListServer } from "@/utils/serverApis/contributionHub"; 4 | import { FC, PropsWithChildren } from "react"; 5 | 6 | const ProviderDashboardPrizeTapLayout: FC = async ({ 7 | children, 8 | }) => { 9 | const chainsApi = await getFaucetListServer(); 10 | const constraintLisApi = await getConstraintListServer(); 11 | return ( 12 | 16 | {children} 17 | 18 | ); 19 | }; 20 | 21 | export default ProviderDashboardPrizeTapLayout; 22 | -------------------------------------------------------------------------------- /app/dashboard/prize-tap/create/page.tsx: -------------------------------------------------------------------------------- 1 | import OfferPrizeForm from "../components/OfferPrizeForm"; 2 | 3 | const Page = () => { 4 | return ( 5 |
6 | 7 |
8 | ); 9 | }; 10 | 11 | export default Page; 12 | -------------------------------------------------------------------------------- /app/dashboard/prize-tap/details/[id]/layout.tsx: -------------------------------------------------------------------------------- 1 | import ProviderDashboard from "@/context/providerDashboardContext"; 2 | import { getUserRaffleListServerSide } from "@/utils/serverApis"; 3 | import { cookies } from "next/headers"; 4 | import { redirect } from "next/navigation"; 5 | import { FC, PropsWithChildren } from "react"; 6 | 7 | const ProviderDashboardPrizeTapLayout: FC< 8 | PropsWithChildren & { params: Promise<{ id: string }> } 9 | > = async (props) => { 10 | const params = await props.params; 11 | 12 | const { children } = props; 13 | 14 | const cookieStore = await cookies(); 15 | const raffles = await getUserRaffleListServerSide( 16 | cookieStore.get("userToken")!.value, 17 | ); 18 | 19 | const raffle = raffles.find((item) => item.pk === Number(params.id)); 20 | 21 | if (!raffle) { 22 | redirect("/dashboard"); 23 | } 24 | 25 | return ( 26 | {children} 27 | ); 28 | }; 29 | 30 | export default ProviderDashboardPrizeTapLayout; 31 | -------------------------------------------------------------------------------- /app/dashboard/prize-tap/details/[id]/page.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import OfferPrizeForm from "../../components/OfferPrizeForm"; 3 | 4 | import { useParams } from "next/navigation"; 5 | 6 | const Page = () => { 7 | const params = useParams(); 8 | return ( 9 |
10 | 11 |
12 | ); 13 | }; 14 | 15 | export default Page; 16 | -------------------------------------------------------------------------------- /app/dashboard/prize-tap/page.tsx: -------------------------------------------------------------------------------- 1 | import { getUserRaffleListServerSide } from "@/utils/serverApis"; 2 | import { cookies } from "next/headers"; 3 | import PrizeTapList from "./components/prizeList"; 4 | 5 | const PrizeTapPage = async () => { 6 | const cookieStorage = await cookies(); 7 | 8 | const raffles = await getUserRaffleListServerSide( 9 | cookieStorage.get("userToken")?.value, 10 | ); 11 | 12 | return ; 13 | }; 14 | 15 | export default PrizeTapPage; 16 | -------------------------------------------------------------------------------- /app/dashboard/prize-tap/verification/[id]/layout.tsx: -------------------------------------------------------------------------------- 1 | import ProviderDashboard from "@/context/providerDashboardContext"; 2 | import { getUserRaffleListServerSide } from "@/utils/serverApis"; 3 | import { cookies } from "next/headers"; 4 | import { redirect } from "next/navigation"; 5 | import { FC, PropsWithChildren } from "react"; 6 | 7 | const ProviderDashboardPrizeTapLayout: FC< 8 | PropsWithChildren & { params: Promise<{ id: string }> } 9 | > = async (props) => { 10 | const params = await props.params; 11 | 12 | const { children } = props; 13 | 14 | const cookieStore = await cookies(); 15 | const raffles = await getUserRaffleListServerSide( 16 | cookieStore.get("userToken")!.value, 17 | ); 18 | 19 | const raffle = raffles.find((item) => item.pk === Number(params.id)); 20 | 21 | if (!raffle) { 22 | redirect("/dashboard"); 23 | } 24 | 25 | return ( 26 | {children} 27 | ); 28 | }; 29 | 30 | export default ProviderDashboardPrizeTapLayout; 31 | -------------------------------------------------------------------------------- /app/dashboard/prize-tap/verification/[id]/page.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import OfferPrizeForm from "../../components/OfferPrizeForm"; 3 | import { useParams } from "next/navigation"; 4 | 5 | const Page = () => { 6 | const params = useParams(); 7 | return ( 8 |
9 | 10 |
11 | ); 12 | }; 13 | 14 | export default Page; 15 | -------------------------------------------------------------------------------- /app/dashboard/styles.scss: -------------------------------------------------------------------------------- 1 | .provider-dashboard-input { 2 | @apply h-[100%] w-full bg-transparent text-white placeholder-gray80; 3 | } 4 | 5 | .requireModal { 6 | @apply flex min-h-[102px] max-w-[184px] cursor-pointer flex-col items-center justify-center gap-1 rounded-xl border border-gray70 bg-gray40 text-sm font-semibold; 7 | } 8 | 9 | .enrollment-duration-wrap > div:last-child { 10 | @apply border-none; 11 | } 12 | 13 | .refill-token { 14 | @apply rounded-[16px] border-2 border-gray40 bg-cover bg-no-repeat; 15 | background-image: url("/assets/images/provider-dashboard/bg.png"); 16 | } 17 | 18 | .provider-dashboard__status { 19 | & div { 20 | @apply min-w-[60px] cursor-pointer px-3 py-[10px] text-center; 21 | } 22 | & div:not(:last-child) { 23 | @apply border-r-2 border-r-gray30; 24 | } 25 | } 26 | 27 | .no-scrollbar::-webkit-scrollbar { 28 | display: none; 29 | } 30 | 31 | .no-scrollbar { 32 | -ms-overflow-style: none; /* IE and Edge */ 33 | scrollbar-width: none; /* Firefox */ 34 | } 35 | -------------------------------------------------------------------------------- /app/dashboard/token-tap/components/OfferTokenForm/DepositToken/components/DepositContent.tsx: -------------------------------------------------------------------------------- 1 | import Icon from "@/components/ui/Icon"; 2 | 3 | type DepositContentProp = { 4 | title: string; 5 | description: string; 6 | icon: string; 7 | }; 8 | 9 | const DepositContent = ({ title, description, icon }: DepositContentProp) => { 10 | return ( 11 |
12 | 13 |
14 |

{title}

15 |

{description}

16 |
17 |
18 | ); 19 | }; 20 | 21 | export default DepositContent; 22 | -------------------------------------------------------------------------------- /app/dashboard/token-tap/components/content.module.scss: -------------------------------------------------------------------------------- 1 | .provider_dashboard__status { 2 | & div { 3 | @apply min-w-[60px] cursor-pointer px-3 py-[10px] text-center; 4 | } 5 | & div:not(:last-child) { 6 | @apply border-r-2 border-r-gray30; 7 | } 8 | } 9 | 10 | .refill_token { 11 | @apply rounded-[16px] border border-2 border-gray40 bg-cover bg-no-repeat; 12 | background-image: url("/assets/images/provider-dashboard/bg.png"); 13 | } 14 | -------------------------------------------------------------------------------- /app/dashboard/token-tap/create/layout.tsx: -------------------------------------------------------------------------------- 1 | import TokenTapProvider from "@/context/providerDashboardTokenTapContext"; 2 | import { 3 | getTokenTapConstraintListServer, 4 | getFaucetListServer, 5 | } from "@/utils/serverApis"; 6 | import { FC, PropsWithChildren } from "react"; 7 | 8 | const ProviderDashboardPrizeTapLayout: FC = async ({ 9 | children, 10 | }) => { 11 | const chainsApi = await getFaucetListServer(); 12 | const constraintLisApi = await getTokenTapConstraintListServer(); 13 | return ( 14 | 18 | {children} 19 | 20 | ); 21 | }; 22 | 23 | export default ProviderDashboardPrizeTapLayout; 24 | -------------------------------------------------------------------------------- /app/dashboard/token-tap/create/page.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import OfferTokenForm from "../components/OfferTokenForm"; 4 | 5 | const Page = () => { 6 | return ( 7 |
8 | 9 |
10 | ); 11 | }; 12 | 13 | export default Page; 14 | -------------------------------------------------------------------------------- /app/dashboard/token-tap/details/[id]/page.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import { useParams } from "next/navigation"; 3 | import OfferTokenForm from "../../components/OfferTokenForm"; 4 | 5 | const Page = () => { 6 | const params = useParams(); 7 | return ; 8 | }; 9 | 10 | export default Page; 11 | -------------------------------------------------------------------------------- /app/dashboard/token-tap/page.tsx: -------------------------------------------------------------------------------- 1 | import TokenTapContent from "./components/Content"; 2 | 3 | const Page = () => { 4 | return ( 5 |
6 | 7 |
8 | ); 9 | }; 10 | 11 | export default Page; 12 | -------------------------------------------------------------------------------- /app/dashboard/token-tap/verification/[id]/page.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import React from "react"; 3 | import OfferTokenForm from "../../components/OfferTokenForm"; 4 | import { useParams } from "next/navigation"; 5 | 6 | const Page = () => { 7 | const params = useParams(); 8 | return ; 9 | }; 10 | 11 | export default Page; 12 | -------------------------------------------------------------------------------- /app/gastap/components/Cards/Chainlist/EmptyChainListCard.tsx: -------------------------------------------------------------------------------- 1 | const EmptyChainListCard = () => { 2 | return ( 3 |
4 |
5 |
6 |

404

7 |
8 |

No chain with the current filter could be found.

9 |
10 |
11 | ); 12 | }; 13 | 14 | export default EmptyChainListCard; 15 | -------------------------------------------------------------------------------- /app/gastap/components/Cards/Chainlist/chain-card.module.scss: -------------------------------------------------------------------------------- 1 | .claimedButton { 2 | background: linear-gradient( 3 | 91deg, 4 | #284236 -4.66%, 5 | #0f0b25 60.65%, 6 | #bc97d4 111.44% 7 | ) !important; 8 | } 9 | -------------------------------------------------------------------------------- /app/gastap/components/Modals/ClaimModal/ModalStatusesBody/index.tsx: -------------------------------------------------------------------------------- 1 | export { default as ClaimFailedBody } from "./ClaimFailed"; 2 | export { default as BrightIdNotConnectedBody } from "./BrightIdNotConnected"; 3 | export { default as ClaimSuccessBody } from "./ClaimSuccess"; 4 | export { default as WalletNotConnectedBody } from "./WalletNotConnected"; 5 | export { default as BrightIdNotVerifiedBody } from "./BrightIdNotVerified"; 6 | export { default as ClaimPendingBody } from "./ClaimPending"; 7 | export { default as ChooseWalletBody } from "./ChooseWallet"; 8 | -------------------------------------------------------------------------------- /app/gastap/components/Modals/FundTransactionModal/FundTransactionModal.style.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import styled from "styled-components" 4 | import { DV } from "@/components/ui/designVariables" 5 | 6 | export const FundTransactionModalWrapper = styled.div` 7 | display: flex; 8 | flex-direction: column; 9 | padding: ${DV.sizes.basePadding * 2}px; 10 | ` 11 | -------------------------------------------------------------------------------- /app/gastap/components/Modals/SelectChainModal/modalSearch.style.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import styled from "styled-components"; 4 | import { DV } from "@/components/ui/designVariables"; 5 | 6 | interface InputProps extends React.InputHTMLAttributes { 7 | $width?: string; 8 | fontSize?: string; 9 | mb?: number; 10 | } 11 | 12 | export const ModalSearch = styled.input` 13 | ::placeholder, 14 | :-ms-input-placeholder, 15 | ::-ms-input-placeholder { 16 | color: ${DV.colors.gray}; 17 | } 18 | `; 19 | -------------------------------------------------------------------------------- /app/gastap/components/Modals/SelectChainModal/selectChainModal.style.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import styled from "styled-components" 4 | 5 | export const SelectChainModalWrapper = styled.div` 6 | display: flex; 7 | width: 100%; 8 | flex-direction: column; 9 | 10 | .hr { 11 | border: none; 12 | border-top: 2px solid #11111c; 13 | margin-bottom: 0.75rem; 14 | } 15 | ` 16 | -------------------------------------------------------------------------------- /app/gastap/components/header/styles.scss: -------------------------------------------------------------------------------- 1 | .gas-tap-header { 2 | @apply bg-cover bg-center bg-no-repeat; 3 | background-image: 4 | linear-gradient( 5 | 90deg, 6 | #1f3a3e 0%, 7 | rgba(28, 32, 44, 0.15901) 33.85%, 8 | rgba(27, 27, 41, 0) 63.02%, 9 | rgba(77, 52, 81, 0.6) 100% 10 | ), 11 | url("/assets/images/gas-tap/header-wave.svg"), 12 | linear-gradient(#1b1b26, #1b1b26); 13 | } 14 | -------------------------------------------------------------------------------- /app/gastap/components/index.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import { useGasTapContext } from "@/context/gasTapProvider"; 4 | import ChainList from "./Cards/Chainlist"; 5 | import Filters from "./filters"; 6 | import SearchInput from "./searchInput"; 7 | 8 | export const GasTapMainContent = () => { 9 | const { searchPhrase } = useGasTapContext(); 10 | return ( 11 | <> 12 |
13 | 14 | {searchPhrase === "" && } 15 |
16 | 17 | 18 | ); 19 | }; 20 | 21 | export default GasTapMainContent; 22 | -------------------------------------------------------------------------------- /app/gastap/page.tsx: -------------------------------------------------------------------------------- 1 | import ClaimNonEVMModal from "./components/Modals/claimNonEVMModal"; 2 | import ClaimModal from "./components/Modals/ClaimModal"; 3 | import Header from "./components/header"; 4 | import { Metadata } from "next"; 5 | import GasTapMainContent from "./components"; 6 | import FundContextProvider from "./components/Modals/FundGasModal"; 7 | 8 | export const metadata: Metadata = { 9 | title: "Unitap | Gas Tap ⛽", 10 | description: "Obtain gas token for free and enjoy exploring ecosystems", 11 | }; 12 | 13 | const GasTap = () => { 14 | return ( 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | ); 23 | }; 24 | 25 | export default GasTap; 26 | -------------------------------------------------------------------------------- /app/global-error.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import * as Sentry from "@sentry/nextjs"; 4 | import Error from "next/error"; 5 | import { useEffect } from "react"; 6 | 7 | export default function GlobalError({ error }: any) { 8 | useEffect(() => { 9 | Sentry.captureException(error); 10 | }, [error]); 11 | 12 | return ( 13 | 14 | 15 | 16 | 17 | 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /app/new-landing/components/Brands.tsx: -------------------------------------------------------------------------------- 1 | import { VStack } from "@chakra-ui/react"; 2 | import { heroBrands } from "../constants"; 3 | import dynamic from "next/dynamic"; 4 | 5 | const BrandsSwiper = dynamic( 6 | () => import("./BrandSwiper").then((mod) => mod.BrandsSwiper), 7 | { ssr: false } 8 | ); 9 | 10 | export const Brands = () => { 11 | const firstRow = heroBrands.slice(0, 9); 12 | const secondRow = heroBrands.slice(9, 18); 13 | return ( 14 | 15 | 22 | 23 | 24 | 25 | 26 | ); 27 | }; 28 | -------------------------------------------------------------------------------- /app/new-landing/components/Container.tsx: -------------------------------------------------------------------------------- 1 | import { PropsWithChildren } from "react"; 2 | import { Container as ChakraContainer, ContainerProps } from "@chakra-ui/react"; 3 | export const Container = ({ 4 | children, 5 | ...restStyle 6 | }: PropsWithChildren & ContainerProps) => { 7 | return ( 8 | 13 | {children} 14 | 15 | ); 16 | }; 17 | -------------------------------------------------------------------------------- /app/new-landing/components/LandingRefProvider.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import { Box } from "@chakra-ui/react"; 3 | import { useRef } from "react"; 4 | import { Container } from "./Container"; 5 | import { Hero } from "./Hero"; 6 | import { Content } from "./Content"; 7 | 8 | export const LandingRefProvider = () => { 9 | const valuesRef = useRef(null); 10 | 11 | return ( 12 | <> 13 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | ); 25 | }; 26 | -------------------------------------------------------------------------------- /app/new-landing/types.ts: -------------------------------------------------------------------------------- 1 | export type heroBrand = { 2 | id: number; 3 | name: string; 4 | href: string; 5 | src: string; 6 | }; 7 | -------------------------------------------------------------------------------- /app/not-found.tsx: -------------------------------------------------------------------------------- 1 | import Image from "next/image"; 2 | import Link from "next/link"; 3 | 4 | export default function NotFound() { 5 | return ( 6 |
7 | not found 14 |

Lost in space !

15 |

16 | The page you are looking for cannot be found. 17 |

18 |
19 | 20 | 23 | 24 |
25 |
26 | ); 27 | } 28 | -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- 1 | import { VStack } from "@chakra-ui/react"; 2 | import { LandingRefProvider } from "./new-landing/components/LandingRefProvider"; 3 | 4 | export default function Home() { 5 | return ( 6 | 7 | 8 | 9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /app/pass/layout.tsx: -------------------------------------------------------------------------------- 1 | import { Metadata } from "next" 2 | import { FC, PropsWithChildren } from "react" 3 | 4 | export const metadata: Metadata = { 5 | title: "Unitap | Unitap Pass ❤️", 6 | description: "Unitap Pass is a VIP pass for Unitap.", 7 | } 8 | 9 | const PassLayout: FC = ({ children }) => { 10 | return <>{children} 11 | } 12 | 13 | export default PassLayout 14 | -------------------------------------------------------------------------------- /app/prizetap/components/Linea/check-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | -------------------------------------------------------------------------------- /app/prizetap/components/header.module.scss: -------------------------------------------------------------------------------- 1 | .token-tap-header { 2 | @apply bg-no-repeat bg-cover bg-right; 3 | 4 | background-image: linear-gradient( 5 | 90deg, 6 | #1f3a3e 0%, 7 | rgba(28, 32, 44, 0.15901) 33.85%, 8 | rgba(27, 27, 41, 0) 63.02%, 9 | rgba(77, 52, 81, 0.6) 100% 10 | ), 11 | linear-gradient(#1b1b26, #1b1b26); 12 | } -------------------------------------------------------------------------------- /app/prizetap/layout.tsx: -------------------------------------------------------------------------------- 1 | import PrizeTapProvider from "@/context/prizeTapProvider"; 2 | import { getRafflesServerSideListAPI } from "@/utils/serverApis/prizetap"; 3 | import { Metadata } from "next"; 4 | import { FC, PropsWithChildren } from "react"; 5 | 6 | export const metadata: Metadata = { 7 | title: "Unitap | Prize Tap 🏆", 8 | description: "Compete with others for chance of winning prizes", 9 | }; 10 | 11 | const PrizeTapLayout: FC = async ({ children }) => { 12 | const raffles = await getRafflesServerSideListAPI(); 13 | 14 | return {children}; 15 | }; 16 | 17 | export default PrizeTapLayout; 18 | -------------------------------------------------------------------------------- /app/profile/@socialAccounts/page.tsx: -------------------------------------------------------------------------------- 1 | import { cookies } from "next/headers"; 2 | import { getAllConnections } from "@/utils/serverApis"; 3 | import { UserConnection } from "@/types"; 4 | import { redirect } from "next/navigation"; 5 | import { FC, PropsWithChildren } from "react"; 6 | import SocialAccountContent from "./content"; 7 | 8 | const SocialAccountsLayout: FC = async () => { 9 | const cookiesStore = await cookies(); 10 | 11 | let connections: UserConnection; 12 | 13 | try { 14 | connections = await getAllConnections(cookiesStore.get("userToken")?.value); 15 | } catch (e) { 16 | redirect("/"); 17 | } 18 | 19 | return ( 20 |
21 |

Social Accounts

22 | 23 | 24 |
25 | ); 26 | }; 27 | 28 | export default SocialAccountsLayout; 29 | -------------------------------------------------------------------------------- /app/profile/components/renderProfileUsername.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import { useUserProfileContext } from "@/context/userProfile"; 4 | 5 | const RenderProfileUsername = () => { 6 | const { userProfile } = useUserProfileContext(); 7 | 8 | return
@ {userProfile?.username ?? "CNA"}
; 9 | }; 10 | 11 | export default RenderProfileUsername; 12 | -------------------------------------------------------------------------------- /app/profile/components/unitapPass.tsx: -------------------------------------------------------------------------------- 1 | import Icon from "@/components/ui/Icon"; 2 | 3 | export const UnitapPass = () => { 4 | return ( 5 |
6 |
7 |
Lock Unitap Pass
8 |

Coming soon...

9 |
10 | 11 |
12 | 13 |

You have no Unitap Pass!

14 |
15 |
16 | ); 17 | }; 18 | 19 | export default UnitapPass; 20 | -------------------------------------------------------------------------------- /app/providers.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; 4 | import type { ReactNode } from "react"; 5 | import { type State, WagmiProvider } from "wagmi"; 6 | 7 | import { config } from "@/utils/wallet/wagmi"; 8 | 9 | type Props = { 10 | children: ReactNode; 11 | initialState?: State; 12 | }; 13 | 14 | const queryClient = new QueryClient(); 15 | 16 | export function Providers({ children, initialState }: Props) { 17 | return ( 18 | 19 | {children} 20 | 21 | ); 22 | } 23 | -------------------------------------------------------------------------------- /app/theme/index.ts: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import { extendTheme } from "@chakra-ui/react"; 3 | import { Kodchasan, Nunito, Plus_Jakarta_Sans } from "next/font/google"; 4 | 5 | const kodchasan = Kodchasan({ 6 | subsets: ["latin"], 7 | weight: ["600"], 8 | display: "swap", 9 | }); 10 | const nunito = Nunito({ 11 | subsets: ["latin"], 12 | display: "swap", 13 | }); 14 | 15 | const plusJakartaSans = Plus_Jakarta_Sans({ 16 | subsets: ["latin"], 17 | display: "swap", 18 | }); 19 | 20 | export const baseTheme = extendTheme({ 21 | fonts: { 22 | kodchasan: kodchasan.style.fontFamily, 23 | nunito: nunito.style.fontFamily, 24 | plusJakartaSans: plusJakartaSans.style.fontFamily, 25 | }, 26 | styles: { 27 | global: { 28 | body: { 29 | width: "100%", 30 | fontFamily: "kodchasan", 31 | backgroundColor: "white", 32 | overflowX: "hidden", 33 | }, 34 | html: { 35 | width: "100%", 36 | overflowX: "hidden", 37 | }, 38 | }, 39 | }, 40 | }); 41 | -------------------------------------------------------------------------------- /app/tokentap/layout.tsx: -------------------------------------------------------------------------------- 1 | import TokenTapProvider from "@/context/tokenTapProvider"; 2 | import { Token } from "@/types"; 3 | import { serverFetch } from "@/utils/api"; 4 | import { FC, PropsWithChildren } from "react"; 5 | 6 | const TokenTapLayout: FC = async ({ children }) => { 7 | const tokens: Token[] = await serverFetch( 8 | "/api/tokentap/token-distribution-list/" 9 | ); 10 | 11 | return ( 12 | item.status === "VERIFIED")} 14 | > 15 | {children} 16 | 17 | ); 18 | }; 19 | 20 | export default TokenTapLayout; 21 | -------------------------------------------------------------------------------- /app/tokentap/page.tsx: -------------------------------------------------------------------------------- 1 | import Header from "@/components/containers/token-tap/Header"; 2 | import ClaimTokenModal from "@/components/containers/token-tap/Modals/ClaimModal"; 3 | import TokensList from "@/components/containers/token-tap/TokensList"; 4 | import SearchInput from "@/components/containers/token-tap/searchInput"; 5 | import { Metadata } from "next"; 6 | 7 | export const metadata: Metadata = { 8 | title: "Unitap | Token Tap 🪙", 9 | description: "Get the tasks done and claim your rewards", 10 | }; 11 | 12 | const TokenTapPage = () => { 13 | return ( 14 | <> 15 |
16 | 17 | 18 | 19 | 20 | 21 | ); 22 | }; 23 | 24 | export default TokenTapPage; 25 | -------------------------------------------------------------------------------- /app/twitter/success/page.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import { useSearchParams } from "next/navigation"; 4 | import { useEffect } from "react"; 5 | 6 | const TwitterSuccessPage = () => { 7 | const searchParams = useSearchParams(); 8 | 9 | useEffect(() => { 10 | const authToken = searchParams.get("oauth_token"); 11 | const authVerifier = searchParams.get("oauth_verifier"); 12 | 13 | if (!authToken || !authVerifier) return; 14 | 15 | window.opener.postMessage( 16 | { 17 | type: "unitap-token-verification", 18 | data: { authToken, authVerifier }, 19 | }, 20 | "*", 21 | ); 22 | 23 | window.close(); 24 | }, [searchParams]); 25 | 26 | return ( 27 |
28 |
29 | 30 |
Login with twitter success
31 |

Please wait till the window closes

32 |
33 | ); 34 | }; 35 | 36 | export default TwitterSuccessPage; 37 | -------------------------------------------------------------------------------- /assets/fonts/DigitalNumbers/DigitalNumbers-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/assets/fonts/DigitalNumbers/DigitalNumbers-Regular.ttf -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/bun.lockb -------------------------------------------------------------------------------- /components/ChakraProvider.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import { baseTheme } from "@/app/theme"; 4 | import { ChakraProvider } from "@chakra-ui/react"; 5 | 6 | export function ChakraUIProviders({ children }: { children: React.ReactNode }) { 7 | return {children}; 8 | } 9 | -------------------------------------------------------------------------------- /components/HeaderSelection.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import Header from "@/components/layout/header"; 3 | import { usePathname } from "next/navigation"; 4 | import dynamic from "next/dynamic"; 5 | import { useMemo } from "react"; 6 | 7 | const TopBar = dynamic( 8 | () => import("./layout/TopBar").then((modules) => modules.TopBar), 9 | { ssr: false }, 10 | ); 11 | export const HeaderSelection = () => { 12 | const pathname = usePathname(); 13 | const hideMainHeaderRoutes = ["/about", "/"]; 14 | 15 | return hideMainHeaderRoutes.includes(pathname) ? :
; 16 | }; 17 | -------------------------------------------------------------------------------- /components/axios-api-manager.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import { useUserProfileContext } from "@/context/userProfile"; 4 | import { axiosInstance } from "@/utils/api/base"; 5 | import { useEffect } from "react"; 6 | 7 | const AxiosApiManager = () => { 8 | const { userToken } = useUserProfileContext(); 9 | 10 | useEffect(() => { 11 | if (!userToken) { 12 | axiosInstance.defaults.headers.common["Authorization"] = null; 13 | return; 14 | } 15 | 16 | axiosInstance.defaults.headers.common["Authorization"] = 17 | `TOKEN ${userToken}`; 18 | }, [userToken]); 19 | 20 | return null; 21 | }; 22 | 23 | export default AxiosApiManager; 24 | -------------------------------------------------------------------------------- /components/containers/landing/button.tsx: -------------------------------------------------------------------------------- 1 | import { cn } from "@/utils"; 2 | import { Nunito } from "next/font/google"; 3 | 4 | const nunitoFont = Nunito({ 5 | weight: ["700"], 6 | display: "swap", 7 | adjustFontFallback: false, 8 | subsets: ["latin"], 9 | }); 10 | 11 | interface ButtonProps extends React.ButtonHTMLAttributes { 12 | children: React.ReactNode; 13 | className?: string; 14 | } 15 | 16 | export default function LandingButton({ 17 | children, 18 | className, 19 | ...props 20 | }: ButtonProps) { 21 | return ( 22 | 33 | ); 34 | } 35 | -------------------------------------------------------------------------------- /components/containers/landing/gasTap/index.tsx: -------------------------------------------------------------------------------- 1 | import GasTapLandingWidget from "./gasTapChains" 2 | import { FC } from "react" 3 | import { Chain } from "@/types" 4 | 5 | const GasTapLanding: FC<{ chains: Chain[] }> = async ({ chains }) => { 6 | return 7 | } 8 | 9 | export default GasTapLanding 10 | -------------------------------------------------------------------------------- /components/containers/landing/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/components/containers/landing/index.tsx -------------------------------------------------------------------------------- /components/containers/landing/unitapPassWrapper.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import dynamic from "next/dynamic"; 4 | 5 | const UnitapPass = dynamic(() => import("./unitapPass"), { ssr: false }); 6 | 7 | export default function UnitapPassWrapper() { 8 | return ; 9 | } 10 | -------------------------------------------------------------------------------- /components/containers/modals/claimModal.style.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import styled from "styled-components" 4 | 5 | export const DropIconWrapper = styled.div` 6 | position: relative; 7 | display: flex; 8 | align-items: center; 9 | justify-content: center; 10 | 11 | & > img { 12 | position: absolute; 13 | top: 43px; 14 | } 15 | 16 | .state-logo { 17 | position: absolute; 18 | right: -10px; 19 | top: 56px; 20 | } 21 | ` 22 | -------------------------------------------------------------------------------- /components/containers/modals/index.tsx: -------------------------------------------------------------------------------- 1 | export { default as ConnectBrightIdModal } from "./connectBrightIdModal" 2 | export { default as BrightStatusModal } from "./brightStatusModal" 3 | export { default as BrightConnectionModal } from "./brightConnectionModal" 4 | export { default as CreateBrightIdAccountModal } from "./createBrightIdAccountModal" 5 | -------------------------------------------------------------------------------- /components/containers/provider-dashboard/Header.tsx: -------------------------------------------------------------------------------- 1 | import Styles from "./provider-dashboard.module.scss"; 2 | 3 | const Header = () => { 4 | return ( 5 |
11 |
12 | 16 |

17 | Build your own incentive program using Unitap{"'"}s production-ready 18 | tools 19 |

20 |
21 |
22 | ); 23 | }; 24 | 25 | export default Header; 26 | -------------------------------------------------------------------------------- /components/containers/provider-dashboard/helpers/fetchBalances.ts: -------------------------------------------------------------------------------- 1 | import { config } from "@/utils/wallet/wagmi"; 2 | import { erc20Abi } from "viem"; 3 | import { readContracts } from "wagmi/actions"; 4 | 5 | export const fetchBalances = async ( 6 | addresses: string[], 7 | userWalletAddress: `0x${string}`, 8 | chainId: number, 9 | ) => { 10 | const tokenContracts = []; 11 | for (let i = 0; i < addresses.length; i++) { 12 | const tokenAddress = addresses[i]; 13 | tokenContracts.push({ 14 | abi: erc20Abi, 15 | address: tokenAddress, 16 | functionName: "balanceOf", 17 | args: [userWalletAddress], 18 | chainId, 19 | }); 20 | } 21 | 22 | const data = await readContracts(config, { 23 | contracts: tokenContracts as any, 24 | }); 25 | 26 | return data; 27 | }; 28 | -------------------------------------------------------------------------------- /components/containers/provider-dashboard/helpers/isValidContractAddress.ts: -------------------------------------------------------------------------------- 1 | import { config } from "@/utils/wallet/wagmi"; 2 | import { getBytecode } from "@wagmi/core"; 3 | 4 | export const isValidContractAddress = async ( 5 | contractAddress: string, 6 | chainId: number, 7 | ) => { 8 | try { 9 | const res = await getBytecode(config, { 10 | address: contractAddress as any, 11 | chainId: chainId, 12 | }); 13 | if (res == undefined) return false; 14 | return res != "0x"; 15 | } catch (e) { 16 | console.log(e); 17 | return false; 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /components/containers/provider-dashboard/provider-dashboard.module.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | background-image: url("/assets/images/provider-dashboard/bg-header.svg"); 3 | } 4 | -------------------------------------------------------------------------------- /components/containers/token-tap/Markdown.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | import ReactMarkdown from "react-markdown"; 3 | 4 | export type MarkdownProps = { 5 | content: string; 6 | isHighlighted?: boolean; 7 | className?: string; 8 | }; 9 | 10 | const Markdown: FC = ({ content, isHighlighted, className }) => { 11 | return ( 12 | 17 | {content} 18 | 19 | ); 20 | }; 21 | 22 | export default Markdown; 23 | -------------------------------------------------------------------------------- /components/containers/token-tap/header.module.scss: -------------------------------------------------------------------------------- 1 | .token-tap-header { 2 | @apply bg-cover bg-right bg-no-repeat; 3 | 4 | background-image: 5 | linear-gradient( 6 | 90deg, 7 | #1f3a3e 0%, 8 | rgba(28, 32, 44, 0.15901) 33.85%, 9 | rgba(27, 27, 41, 0) 63.02%, 10 | rgba(77, 52, 81, 0.6) 100% 11 | ), 12 | url("/assets/images/token-tap/header-background.svg"), 13 | linear-gradient(#1b1b26, #1b1b26); 14 | } 15 | 16 | .footer-container { 17 | background-image: 18 | linear-gradient( 19 | 180deg, 20 | rgba(22, 22, 33, 0.99) 0%, 21 | rgba(22, 22, 33, 0.9) 7.96%, 22 | rgba(22, 22, 33, 0) 52.11%, 23 | rgba(22, 22, 33, 0.91) 91.6%, 24 | rgba(22, 22, 33, 0.99) 100% 25 | ), 26 | url("/assets/images/token-tap/final-version-background.svg"); 27 | background-repeat: no-repeat; 28 | background-position: right top; 29 | } 30 | -------------------------------------------------------------------------------- /components/google-analytics.tsx: -------------------------------------------------------------------------------- 1 | import Script from "next/script"; 2 | 3 | const GoogleAnalytics = ({ ga_id }: { ga_id: string }) => ( 4 | <> 5 | 10 | 22 | 23 | ); 24 | export default GoogleAnalytics; 25 | -------------------------------------------------------------------------------- /components/layout/auth.module.scss: -------------------------------------------------------------------------------- 1 | .dropdownHeader { 2 | // background: linear-gradient( 3 | // to left, 4 | // #612e66, 5 | // #9e4f9e 30%, 6 | // #8971af 40%, 7 | // #446f6f 60%, 8 | // #202b33 95% 9 | // ); 10 | background: linear-gradient( 11 | 91deg, 12 | #202b33 2.66%, 13 | #426d6d, 14 | rgba(168, 159, 231, 0.68) 56.06%, 15 | #a958a9 73.07%, 16 | rgba(221, 64, 205, 0) 111.44% 17 | ); 18 | 19 | backdrop-filter: blur(25px); 20 | } 21 | -------------------------------------------------------------------------------- /components/progress.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import { AppProgressBar as ProgressBar } from "next-nprogress-bar" 4 | 5 | const Progressbar = () => ( 6 | 7 | ) 8 | 9 | export default Progressbar 10 | -------------------------------------------------------------------------------- /components/ui/Dropdown/dropdown.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import Icon from "../Icon"; 4 | import Label from "../label"; 5 | import { DropdownWrapper } from "./dropdownWrapper"; 6 | 7 | interface DropdownProps { 8 | label?: string; 9 | icon?: string; 10 | value: string; 11 | onClick?: () => void; 12 | "data-testid"?: string; 13 | } 14 | 15 | const Dropdown = (props: DropdownProps) => { 16 | const { label, value, icon, onClick } = props; 17 | return ( 18 | 19 | {label ? : null} 20 |
21 | {icon ? : null} 22 |

{value}

23 | 28 |
29 |
30 | ); 31 | }; 32 | 33 | export default Dropdown; 34 | -------------------------------------------------------------------------------- /components/ui/Dropdown/dropdownWrapper.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import styled from "styled-components" 4 | import { DV } from "../designVariables" 5 | 6 | export const DropdownWrapper = styled.div` 7 | width: 100%; 8 | 9 | .dropdown { 10 | display: flex; 11 | flex-direction: row; 12 | align-items: center; 13 | width: 100%; 14 | padding: ${DV.sizes.basePadding * 1.5}px; 15 | padding-right: ${DV.sizes.basePadding * 3}px; 16 | 17 | box-sizing: border-box; 18 | background: ${DV.colors.black2}; 19 | border: 1px solid ${DV.colors.dark}; 20 | border-radius: ${DV.sizes.baseRadius * 1.5}px; 21 | 22 | &:hover { 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | .dropdown-value { 28 | margin: 0 auto 0 ${DV.sizes.baseMargin * 2}px; 29 | color: white; 30 | } 31 | ` 32 | -------------------------------------------------------------------------------- /components/ui/Icon/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | import { IconWrapper } from "./icon.style"; 3 | 4 | interface IconProps extends React.HTMLAttributes { 5 | width?: string; 6 | height?: string; 7 | smWidth?: string; 8 | xsWidth?: string; 9 | mr?: number; 10 | mrAuto?: boolean; 11 | mb?: number; 12 | smMb?: number; 13 | ml?: number; 14 | mt?: number; 15 | hoverable?: boolean; 16 | iconSrc: string; 17 | alt?: string; 18 | } 19 | 20 | const Icon = ({ iconSrc, hoverable, className, ...props }: IconProps) => ( 21 | 25 | {props.alt} 26 | 27 | ); 28 | 29 | export default Icon; 30 | -------------------------------------------------------------------------------- /components/ui/col.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import styled from "styled-components" 4 | import { DV } from "./designVariables" 5 | 6 | interface colProps { 7 | xlg?: number 8 | lg?: number 9 | md?: number 10 | xs?: number 11 | } 12 | 13 | export const Col = styled.div` 14 | width: ${({ xlg }) => (xlg ? `${(xlg * 100) / 12}%` : "100%")}; 15 | 16 | @media only screen and (max-width: ${DV.breakpoints.smallDesktop}) { 17 | width: ${({ lg }) => (lg ? `${(lg * 100) / 12}%` : "100%")}; 18 | } 19 | @media only screen and (max-width: ${DV.breakpoints.tablet}) { 20 | width: ${({ md }) => (md ? `${(md * 100) / 12}%` : "100%")}; 21 | } 22 | @media only screen and (max-width: ${DV.breakpoints.mobile}) { 23 | width: ${({ xs }) => (xs ? `${(xs * 100) / 12}%` : "100%")}; 24 | } 25 | ` 26 | -------------------------------------------------------------------------------- /components/ui/label.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import { ReactNode } from "react" 4 | import styled from "styled-components" 5 | import { DV } from "./designVariables" 6 | 7 | interface props { 8 | children: ReactNode 9 | } 10 | 11 | const LabelWrapper = styled.p` 12 | font-size: 12px; 13 | color: #4c4c64; 14 | margin: ${DV.sizes.baseMargin * 3}px ${DV.sizes.baseMargin}px 15 | ${DV.sizes.baseMargin}px; 16 | ` 17 | 18 | const Label = ({ children }: props) => { 19 | return {children} 20 | } 21 | 22 | export default Label 23 | -------------------------------------------------------------------------------- /components/ui/loadingSpinner.tsx: -------------------------------------------------------------------------------- 1 | const LoadingSpinner = () => { 2 | return ( 3 |
4 | 10 | 18 | 23 | 24 | Loading 25 |
26 | ); 27 | }; 28 | 29 | export default LoadingSpinner; 30 | -------------------------------------------------------------------------------- /components/ui/row.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import styled from "styled-components" 4 | import { DV } from "./designVariables" 5 | 6 | interface rowProps { 7 | mdReverse?: boolean 8 | } 9 | 10 | export const Row = styled.div` 11 | display: flex; 12 | flex-direction: row; 13 | flex-wrap: wrap; 14 | width: 100%; 15 | 16 | @media only screen and (max-width: ${DV.breakpoints.tablet}) { 17 | flex-direction: ${({ mdReverse }) => 18 | mdReverse ? `column-reverse` : "row"}; 19 | } 20 | ` 21 | -------------------------------------------------------------------------------- /constants/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./intervals"; 2 | 3 | export * from "./address"; 4 | 5 | export * from "./chains"; 6 | export * from "./tokens"; 7 | 8 | export const LINEA_RAFFLE_PK = 70; 9 | -------------------------------------------------------------------------------- /constants/intervals.ts: -------------------------------------------------------------------------------- 1 | const isCypress = process.env.REACT_APP_IS_CYPRESS === "true"; 2 | export const CYPRESS_FAST_INTERVAL = 1000; 3 | export const CYPRESS_MEDIUM_INTERVAL = 1500; 4 | export const CYPRESS_SLOW_INTERVAL = 2000; 5 | export const FAST_INTERVAL = isCypress ? CYPRESS_FAST_INTERVAL : 60 * 3 * 1000; 6 | export const MEDIUM_INTERVAL = isCypress 7 | ? CYPRESS_MEDIUM_INTERVAL 8 | : 60 * 5 * 1000; 9 | export const SLOW_INTERVAL = isCypress ? CYPRESS_SLOW_INTERVAL : 60 * 8 * 1000; 10 | export const BASE_REFRESH_INTERVAL = 60 * 5 * 1000; 11 | 12 | export enum IntervalType { 13 | FAST = FAST_INTERVAL, 14 | SLOW = SLOW_INTERVAL, 15 | MEDIUM = MEDIUM_INTERVAL, 16 | BASE_REFRESH = BASE_REFRESH_INTERVAL, 17 | } 18 | -------------------------------------------------------------------------------- /constants/lottieCode.ts: -------------------------------------------------------------------------------- 1 | import loadingAnimation from "../lotties/loadingAnimation.json"; 2 | import chanceAnimation from "../lotties/chanceAnimation.json"; 3 | import arrowAnimation from "../lotties/arrowAnimation.json"; 4 | 5 | export const loadAnimationOption = { 6 | loop: true, 7 | autoplay: true, 8 | animationData: loadingAnimation, 9 | rendererSettings: { 10 | preserveAspectRatio: "xMidYMid slice", 11 | }, 12 | }; 13 | 14 | export const chanceAnimationOption = { 15 | loop: true, 16 | autoplay: true, 17 | animationData: chanceAnimation, 18 | Infinity, 19 | rendererSettings: { 20 | preserveAspectRatio: "xMidYMid slice", 21 | }, 22 | }; 23 | 24 | export const arrowAnimationOption = { 25 | loop: true, 26 | autoplay: true, 27 | animationData: arrowAnimation, 28 | Infinity, 29 | rendererSettings: { 30 | preserveAspectRatio: "xMidYMid slice", 31 | }, 32 | }; 33 | -------------------------------------------------------------------------------- /constants/network.ts: -------------------------------------------------------------------------------- 1 | import { SupportedChainId } from "./chains"; 2 | 3 | export const RPC_URLS: { [key: string]: string } = { 4 | [SupportedChainId.MAINNET]: 5 | "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", 6 | [SupportedChainId.GOERLI]: 7 | "https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", 8 | [SupportedChainId.GNOSIS]: "https://rpc.gnosischain.com", 9 | }; 10 | 11 | export const RPC_URLS_WEBSOCKET: { [key: string]: string } = { 12 | [SupportedChainId.MAINNET]: 13 | "wss://mainnet.infura.io/ws/v3/9aa3d95b3bc440fa88ea12eaa4456161", // WebSocket URL for Mainnet 14 | [SupportedChainId.GOERLI]: 15 | "wss://goerli.infura.io/ws/v3/9aa3d95b3bc440fa88ea12eaa4456161", // WebSocket URL for Goerli 16 | [SupportedChainId.GNOSIS]: "wss://rpc.gnosischain.com", // WebSocket URL for Gnosis chain 17 | }; 18 | -------------------------------------------------------------------------------- /constants/spaceman.ts: -------------------------------------------------------------------------------- 1 | export enum Spaceman { 2 | MIDDLE_SMALL, 3 | BOTTOM_BIG, 4 | WITH_PHONE, 5 | } 6 | -------------------------------------------------------------------------------- /context/socialAccountContext.tsx: -------------------------------------------------------------------------------- 1 | import { UserConnection } from "@/types"; 2 | import { NullCallback } from "@/utils"; 3 | import { useContext, createContext } from "react"; 4 | 5 | export const useSocialACcountContext = () => useContext(SocialAccountContext); 6 | 7 | export const SocialAccountContext = createContext<{ 8 | connections: UserConnection; 9 | addConnection: (key: string, data: any) => void; 10 | }>({ 11 | connections: {}, 12 | addConnection: NullCallback, 13 | }); 14 | -------------------------------------------------------------------------------- /cypress.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "cypress" 2 | // import vitePreprocessor from "cypress-vite" 3 | 4 | export default defineConfig({ 5 | projectId: "yp82ef", 6 | video: false, 7 | defaultCommandTimeout: 3000, 8 | viewportWidth: 1366, 9 | viewportHeight: 768, 10 | e2e: { 11 | // setupNodeEvents(on) { 12 | // on("file:preprocessor", vitePreprocessor()) 13 | // }, 14 | baseUrl: "http://localhost:3000", 15 | specPattern: "cypress/e2e/**/*.{js,jsx,ts,tsx}", 16 | }, 17 | component: { 18 | devServer: { 19 | framework: "next", 20 | bundler: "webpack", 21 | }, 22 | }, 23 | }) 24 | -------------------------------------------------------------------------------- /cypress/e2e/00-initial.spec.ts: -------------------------------------------------------------------------------- 1 | import RoutePath from "@/utils/routes" 2 | 3 | describe("Test if pages working", () => { 4 | it("visits landing page", () => { 5 | cy.visit(RoutePath.HOME) 6 | }) 7 | }) 8 | 9 | cy.on("uncaught:exception", () => { 10 | return false 11 | }) 12 | -------------------------------------------------------------------------------- /cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } 6 | -------------------------------------------------------------------------------- /cypress/helpers/auth.ts: -------------------------------------------------------------------------------- 1 | import { userProfileVerified, emptyClaimHistoryResponse } from "../utils/data"; 2 | 3 | export const setupGetUserProfileVerified = () => { 4 | cy.intercept( 5 | { 6 | url: `/api/auth/user/info/`, 7 | method: "GET", 8 | }, 9 | (req) => { 10 | req.reply(userProfileVerified); 11 | } 12 | ); 13 | 14 | cy.intercept( 15 | { 16 | method: "GET", 17 | url: "/api/gastap/settings", 18 | }, 19 | (req) => 20 | req.reply({ 21 | isGasTapAvailable: true, 22 | prizetapWeeklyClaimLimit: 3, 23 | tokentapWeeklyClaimLimit: 20, 24 | weeklyChainClaimLimit: 5, 25 | }) 26 | ); 27 | 28 | cy.intercept( 29 | { 30 | method: "GET", 31 | url: `/api/gastap/user/**/claims?**`, 32 | }, 33 | (req) => { 34 | req.reply(emptyClaimHistoryResponse); 35 | } 36 | ); 37 | 38 | localStorage.setItem("userToken", "b12321d8ye8834y273627e27"); 39 | }; 40 | 41 | export const setupGetUserProfileNotVerified = () => { 42 | cy.clearLocalStorage(); 43 | cy.clearAllCookies(); 44 | }; 45 | -------------------------------------------------------------------------------- /cypress/helpers/gas-tap.ts: -------------------------------------------------------------------------------- 1 | export const clearGasTapFilters = () => { 2 | cy.get('[data-testid=chains-filter-all]').click(); 3 | cy.get('[data-testid=chains-filter-chain-type-all]').click(); 4 | }; 5 | -------------------------------------------------------------------------------- /cypress/helpers/wallet.ts: -------------------------------------------------------------------------------- 1 | import { generateTestingUtils } from "eth-testing" 2 | 3 | export const setupEthBridge = () => { 4 | // cy.on("window:before:load", () => { 5 | 6 | // ;(window as any).ethereum = testingUtils.getProvider() 7 | // }) 8 | 9 | cy.intercept( 10 | { 11 | url: "/api/auth/user/set-wallet/", 12 | method: "POST", 13 | }, 14 | (req) => req.reply([]) 15 | ) 16 | } 17 | 18 | export const connectWallet = () => { 19 | cy.get("[data-testid=wallet-connect]").click() 20 | // cy.get("[data-testid=wallet-connect]").click() 21 | cy.wait(200).get("[data-testid=wallet-connect-method-Metamask]").click() 22 | } 23 | -------------------------------------------------------------------------------- /cypress/support/e2e.js: -------------------------------------------------------------------------------- 1 | // *********************************************************** 2 | // This file is processed and loaded automatically before your test files. 3 | // 4 | // You can read more here: 5 | // https://on.cypress.io/configuration 6 | // *********************************************************** 7 | 8 | // Import commands.ts using ES2015 syntax: 9 | import './commands' 10 | -------------------------------------------------------------------------------- /cypress/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "target": "es5", 5 | "lib": ["es5", "dom"], 6 | "types": ["cypress", "node"], 7 | "baseUrl": "../" 8 | }, 9 | "include": ["**/*.ts"], 10 | "paths": { 11 | "@/*": ["./*"] 12 | }, 13 | "extends": "../tsconfig.json" 14 | } 15 | -------------------------------------------------------------------------------- /cypress/utils/ethbridge/abiutils.ts: -------------------------------------------------------------------------------- 1 | // import { BigNumber } from '@ethersproject/bignumber/lib.esm' 2 | import { BytesLike } from "@ethersproject/bytes"; 3 | 4 | // const InputDataDecoder = require('ethereum-input-data-decoder') 5 | 6 | export function keccak256(data: BytesLike): string { 7 | // return ethers.utils.keccak256(data) 8 | throw Error("Not Implemented"); 9 | } 10 | 11 | // export function encodeEthResult(abi: any, funcName: string, result: (BigNumber | string | number)[]) { 12 | // const iface = new ethers.utils.Interface(abi) 13 | // return iface.encodeFunctionResult(funcName, result) 14 | // } 15 | 16 | // export function decodeEthCall(abi: any, input: any) { 17 | // const decoder = new InputDataDecoder(abi) 18 | // return decoder.decodeData(input) 19 | // } 20 | -------------------------------------------------------------------------------- /lotties/loadingAnimation.json: -------------------------------------------------------------------------------- 1 | {"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[300,300,0]},"a":{"k":[0,0,0]},"s":{"k":[244,244,100]}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"k":[100,100]},"p":{"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","_render":true},{"ty":"tm","s":{"k":[{"i":{"x":[0.439],"y":[1.016]},"o":{"x":[0.561],"y":[0.015]},"n":["0p439_1p016_0p561_0p015"],"t":5,"s":[100],"e":[0],"__fnct":[null]},{"t":33.0000013441176}],"ix":1},"e":{"k":[{"i":{"x":[0.439],"y":[1.017]},"o":{"x":[0.561],"y":[0.016]},"n":["0p439_1p017_0p561_0p016"],"t":0,"s":[100],"e":[0],"__fnct":[null]},{"t":30.0000012219251}],"ix":2},"o":{"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","_render":true},{"ty":"st","fillEnabled":true,"c":{"k":[0.4039,0.4039,0.4824,1]},"o":{"k":100},"w":{"k":16},"lc":2,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","_render":true}],"ip":0,"op":900.000036657751,"st":0,"bm":0,"sr":1,"completed":true}],"v":"4.5.3","ddd":0,"ip":1.00000004073083,"op":33,"fr":30,"w":600,"h":600,"__complete":true} -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /next.config.ts: -------------------------------------------------------------------------------- 1 | import { NextConfig } from "next"; 2 | 3 | const nextConfig: NextConfig = { 4 | compiler: { styledComponents: true }, 5 | // trailingSlash: true, 6 | images: { remotePatterns: [{ protocol: "https", hostname: "**" }] }, 7 | async rewrites() { 8 | return [ 9 | { 10 | source: "/api/:path*/", 11 | destination: "https://api.unitap.app/api/:path*/", 12 | }, 13 | ]; 14 | }, 15 | async redirects() { 16 | return [ 17 | { source: "/gas-tap", destination: "/gastap", permanent: true }, 18 | { source: "/token-tap", destination: "/tokentap", permanent: true }, 19 | { source: "/prize-tap", destination: "/prizetap", permanent: true }, 20 | { 21 | source: "/contribution-hub", 22 | destination: "/incentive-center", 23 | permanent: true, 24 | }, 25 | ]; 26 | }, 27 | }; 28 | 29 | export default nextConfig; 30 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import("prettier").Config} */ 2 | const prettierConfig = { 3 | plugins: ['prettier-plugin-tailwindcss'], 4 | tailwindConfig: "./tailwind.config.ts", 5 | }; 6 | 7 | 8 | export default prettierConfig; 9 | -------------------------------------------------------------------------------- /public/.well-known/walletconnect.txt: -------------------------------------------------------------------------------- 1 | c7a8a6ec-5cc3-4556-afb1-2466b34302b7=4222d1d179501770a5ba12ae930cad1188a34a46b91824486a720141b362711c -------------------------------------------------------------------------------- /public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/apple-touch-icon.png -------------------------------------------------------------------------------- /public/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/favicon.ico -------------------------------------------------------------------------------- /public/assets/font/DigitalNumbers/DigitalNumbers-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/DigitalNumbers/DigitalNumbers-Regular.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-Bold.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-BoldItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-ExtraBold.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-ExtraLight.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-Italic.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-Light.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-LightItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-Medium.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-MediumItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-Regular.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-SemiBold.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-Thin.ttf -------------------------------------------------------------------------------- /public/assets/font/JetBrainsMono-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/JetBrainsMono-ThinItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-Black.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-BlackItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-Bold.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-BoldItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-ExtraBold.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-ExtraLight.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-Italic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-Light.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-LightItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-Medium.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-MediumItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-Regular.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-SemiBold.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-Thin.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSans/NotoSans-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSans/NotoSans-ThinItalic.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSansMono/NotoSansMono-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSansMono/NotoSansMono-Black.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSansMono/NotoSansMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSansMono/NotoSansMono-Bold.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSansMono/NotoSansMono-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSansMono/NotoSansMono-ExtraBold.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSansMono/NotoSansMono-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSansMono/NotoSansMono-ExtraLight.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSansMono/NotoSansMono-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSansMono/NotoSansMono-Light.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSansMono/NotoSansMono-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSansMono/NotoSansMono-Medium.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSansMono/NotoSansMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSansMono/NotoSansMono-Regular.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSansMono/NotoSansMono-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSansMono/NotoSansMono-SemiBold.ttf -------------------------------------------------------------------------------- /public/assets/font/NotoSansMono/NotoSansMono-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/font/NotoSansMono/NotoSansMono-Thin.ttf -------------------------------------------------------------------------------- /public/assets/images/about/timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/about/timeline.png -------------------------------------------------------------------------------- /public/assets/images/about/timeline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /public/assets/images/about/what-is-unitap-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/about/what-is-unitap-header.png -------------------------------------------------------------------------------- /public/assets/images/arrow-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/bright-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/bright-icon.png -------------------------------------------------------------------------------- /public/assets/images/check-circle-space-green.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | -------------------------------------------------------------------------------- /public/assets/images/claim/header-spaceman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/claim/header-spaceman.png -------------------------------------------------------------------------------- /public/assets/images/claim/slash-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/assets/images/copy-link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/copy-link.png -------------------------------------------------------------------------------- /public/assets/images/donate/ETH-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/donate/ETH-address.png -------------------------------------------------------------------------------- /public/assets/images/donate/btc-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/donate/btc-address.png -------------------------------------------------------------------------------- /public/assets/images/donate/copy-green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/assets/images/donate/donate-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/donate/donate-img.png -------------------------------------------------------------------------------- /public/assets/images/donate/donate-texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/donate/donate-texture.png -------------------------------------------------------------------------------- /public/assets/images/donate/eth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /public/assets/images/donate/solana-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/donate/solana-address.png -------------------------------------------------------------------------------- /public/assets/images/donate/solana.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/footer/youtube.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/assets/images/fund/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/fund/arrow-down.png -------------------------------------------------------------------------------- /public/assets/images/fund/coin-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/fund/coin-icon.png -------------------------------------------------------------------------------- /public/assets/images/fund/content-hashtag-gff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/fund/content-hashtag-gff.png -------------------------------------------------------------------------------- /public/assets/images/fund/footer-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/fund/footer-text.png -------------------------------------------------------------------------------- /public/assets/images/fund/header-gas-fund-fee-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/fund/header-gas-fund-fee-text.png -------------------------------------------------------------------------------- /public/assets/images/fund/header-spaceman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/fund/header-spaceman.png -------------------------------------------------------------------------------- /public/assets/images/gas-tap/claimable-once.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/gas-tap/connect-bright-id-to-see-claims-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/gas-tap/connect-bright-id-to-see-claims-bg.jpg -------------------------------------------------------------------------------- /public/assets/images/gas-tap/gas-tap-text-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/gas-tap/gas-tap-text-logo.png -------------------------------------------------------------------------------- /public/assets/images/gas-tap/twitter-share.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/golem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/golem.png -------------------------------------------------------------------------------- /public/assets/images/headerBg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/headerBg.png -------------------------------------------------------------------------------- /public/assets/images/landing/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/assets/images/landing/donate-texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/donate-texture.png -------------------------------------------------------------------------------- /public/assets/images/landing/gastap-texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/gastap-texture.png -------------------------------------------------------------------------------- /public/assets/images/landing/genesis-nft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/genesis-nft.png -------------------------------------------------------------------------------- /public/assets/images/landing/home-header-texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/home-header-texture.png -------------------------------------------------------------------------------- /public/assets/images/landing/launchtap-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/launchtap-icon.png -------------------------------------------------------------------------------- /public/assets/images/landing/launchtap-texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/launchtap-texture.png -------------------------------------------------------------------------------- /public/assets/images/landing/learntap-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/learntap-icon.png -------------------------------------------------------------------------------- /public/assets/images/landing/prizetap-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/prizetap-icon.png -------------------------------------------------------------------------------- /public/assets/images/landing/prizetap-texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/prizetap-texture.png -------------------------------------------------------------------------------- /public/assets/images/landing/staketap-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/staketap-icon.png -------------------------------------------------------------------------------- /public/assets/images/landing/staketap-texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/staketap-texture.png -------------------------------------------------------------------------------- /public/assets/images/landing/stats-texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/stats-texture.png -------------------------------------------------------------------------------- /public/assets/images/landing/tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/tasks.png -------------------------------------------------------------------------------- /public/assets/images/landing/tokentap-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/tokentap-icon.png -------------------------------------------------------------------------------- /public/assets/images/landing/tokentap-texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/tokentap-texture.png -------------------------------------------------------------------------------- /public/assets/images/landing/twitter-seeklogo.com-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 14 | 15 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /public/assets/images/landing/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/assets/images/landing/unitap-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/unitap-footer.png -------------------------------------------------------------------------------- /public/assets/images/landing/what-is-unitap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/landing/what-is-unitap.png -------------------------------------------------------------------------------- /public/assets/images/matic-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/matic-icon.png -------------------------------------------------------------------------------- /public/assets/images/member1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/member1.jpg -------------------------------------------------------------------------------- /public/assets/images/member2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/member2.jpg -------------------------------------------------------------------------------- /public/assets/images/member3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/member3.png -------------------------------------------------------------------------------- /public/assets/images/member4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/member4.png -------------------------------------------------------------------------------- /public/assets/images/modal-footer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/modal-footer-bg.png -------------------------------------------------------------------------------- /public/assets/images/modal/check-green.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/modal/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/modal/exit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/modal/gray-danger.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/modal/red-danger.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/modal/search-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/modal/wallet-connect-loading.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/assets/images/modal/wallet-metamask-loading.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/assets/images/navbar/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/navbar/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/navbar/logout-button.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /public/assets/images/navbar/navbar-dropdown-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/navbar/navbar-dropdown-icon.png -------------------------------------------------------------------------------- /public/assets/images/navbar/navbar-dropdown-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/assets/images/navbar/navbar_logo_v1.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/navbar/navbar_logo_v1.3.png -------------------------------------------------------------------------------- /public/assets/images/nft/eth-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /public/assets/images/nft/mint-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/nft/mint-header.png -------------------------------------------------------------------------------- /public/assets/images/nft/nft-collapse-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/nft/nft-minus-gray.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/nft/nft-minus-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/nft/nft-plus-gray.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/nft/nft-plus-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/nft/nft-poster.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/nft/nft-poster.jpg -------------------------------------------------------------------------------- /public/assets/images/nft/nft-typo-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/nft/nft-typo-logo.png -------------------------------------------------------------------------------- /public/assets/images/nft/rocket-base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/nft/rocket-base.png -------------------------------------------------------------------------------- /public/assets/images/nft/rocketship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/nft/rocketship.png -------------------------------------------------------------------------------- /public/assets/images/pass/base-network.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/pass/ic_link_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/assets/images/passport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/passport.png -------------------------------------------------------------------------------- /public/assets/images/prize-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/prize-bg.png -------------------------------------------------------------------------------- /public/assets/images/prize-tap/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/blue-check-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/default-prize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/prize-tap/default-prize.png -------------------------------------------------------------------------------- /public/assets/images/prize-tap/header-bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/header-info-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/header-typo-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/prize-tap/header-typo-logo.png -------------------------------------------------------------------------------- /public/assets/images/prize-tap/header-typography.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/prize-tap/header-typography.png -------------------------------------------------------------------------------- /public/assets/images/prize-tap/ic_link_green.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/ic_link_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/linea-twitter-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/linia-prize-bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/not-completed.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/ticket.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/times.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/twitter-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/prize-tap/winner_bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/assets/images/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/profile.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/add-requirement.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/arrow-down-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/arrow-top-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/arrow-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/bg.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/blibk neon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/blibk neon.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/blibk neon_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/blibk neon_.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/btc_lightning_logo 1.svg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/checkbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/close-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/cross.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/deposit-nft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/deposit-nft.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/deposit-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/deposit-token.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/diamond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/diamond.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/equal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/ethIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/ethIcon.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/exclamation.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/exclamationMark-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/exclamationMark-1.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/exclamationMark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/gas-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/gas-bg.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/gasTap/battery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/gasTap/battery.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/ic_link_gray.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/ic_link_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/info-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/invalidAddress.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/loading.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/modalIcon/dollar-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/modalIcon/lamp-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/prize-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/prize-bg.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/prize-offer-step-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/prize-offer-step-bg.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/prizeForm-step-diamond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/prizeForm-step-diamond.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/rejected.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/requirements/learntap.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/step-2-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/step-2-active.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/step-2-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/step-2-green.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/step-2-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/step-2-off.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/step-3-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/step-3-active.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/step-3-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/step-3-green.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/step-3-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/step-3-off.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/token-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/token-bg.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/token-tap-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/provider-dashboard/token-tap-active.png -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/validAddress.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/provider-dashboard/warn-loading.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/assets/images/qr-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/qr-code.png -------------------------------------------------------------------------------- /public/assets/images/token-tap/angle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /public/assets/images/token-tap/bg-primary-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/assets/images/token-tap/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /public/assets/images/token-tap/empty-coin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/token-tap/empty-coin.png -------------------------------------------------------------------------------- /public/assets/images/token-tap/header-background.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/assets/images/token-tap/not-verified.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/assets/images/token-tap/token-tap-typo-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/token-tap/token-tap-typo-logo.png -------------------------------------------------------------------------------- /public/assets/images/token-tap/twitter-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/tokens/fantom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/assets/images/tooltip.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/assets/images/twitter/3look.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/3look.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Brian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Brian.png -------------------------------------------------------------------------------- /public/assets/images/twitter/CALLBACK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/CALLBACK.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Carbon_Credit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Carbon_Credit.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Citizen_Wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Citizen_Wallet.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Community_Currency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Community_Currency.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Crack _Stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Crack _Stack.png -------------------------------------------------------------------------------- /public/assets/images/twitter/DEFIT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/DEFIT.png -------------------------------------------------------------------------------- /public/assets/images/twitter/FANtium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/FANtium.png -------------------------------------------------------------------------------- /public/assets/images/twitter/FORSE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/FORSE.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Intraverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Intraverse.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Kleo_Network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Kleo_Network.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Maya_Labs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Maya_Labs.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Raffl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Raffl.png -------------------------------------------------------------------------------- /public/assets/images/twitter/SONGS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/SONGS.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Smart_Layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Smart_Layer.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Snyper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Snyper.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Space_Misfits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Space_Misfits.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Thrive_Polygon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Thrive_Polygon.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Thrive_Protocol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Thrive_Protocol.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Toaste_ Finance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Toaste_ Finance.png -------------------------------------------------------------------------------- /public/assets/images/twitter/UPPFIRST.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/UPPFIRST.png -------------------------------------------------------------------------------- /public/assets/images/twitter/WootzApp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/WootzApp.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Xerberus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Xerberus.png -------------------------------------------------------------------------------- /public/assets/images/twitter/Xion_Global.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/Xion_Global.png -------------------------------------------------------------------------------- /public/assets/images/twitter/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/logo.png -------------------------------------------------------------------------------- /public/assets/images/twitter/polygon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/twitter/polygon.png -------------------------------------------------------------------------------- /public/assets/images/up-profile/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/up-profile/back.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/up-profile/bg-card.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /public/assets/images/up-profile/dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /public/assets/images/up-profile/img.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/assets/images/up-profile/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/assets/images/up-profile/profile-bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | -------------------------------------------------------------------------------- /public/assets/images/up-profile/trashcan.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/up-profile/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/assets/images/up-profile/whalerDAO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/images/up-profile/whalerDAO.png -------------------------------------------------------------------------------- /public/assets/images/x-com.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/assets/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/logo192.png -------------------------------------------------------------------------------- /public/assets/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/logo512.png -------------------------------------------------------------------------------- /public/assets/videos/unitap-pas.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/videos/unitap-pas.mp4 -------------------------------------------------------------------------------- /public/assets/videos/unitap-pass.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/assets/videos/unitap-pass.mp4 -------------------------------------------------------------------------------- /public/claimIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/claimIcon.png -------------------------------------------------------------------------------- /public/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/edit.png -------------------------------------------------------------------------------- /public/failed-airdrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/failed-airdrop.png -------------------------------------------------------------------------------- /public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/favicon-16x16.png -------------------------------------------------------------------------------- /public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/favicon-32x32.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/favicon.ico -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/favicon.png -------------------------------------------------------------------------------- /public/footer/temple.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 8 | -------------------------------------------------------------------------------- /public/footer/x.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /public/footer/youtube.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/green-tick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/headerBg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/headerBg.png -------------------------------------------------------------------------------- /public/headerBg/gem-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/headerBg/gem-1.png -------------------------------------------------------------------------------- /public/home/desktop-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/desktop-pattern.png -------------------------------------------------------------------------------- /public/home/features/brain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/features/brain.png -------------------------------------------------------------------------------- /public/home/features/cross-chain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/features/cross-chain.png -------------------------------------------------------------------------------- /public/home/features/decentralized-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/features/decentralized-large.png -------------------------------------------------------------------------------- /public/home/features/decentralized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/features/decentralized.png -------------------------------------------------------------------------------- /public/home/features/dot-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/features/dot-pattern.png -------------------------------------------------------------------------------- /public/home/features/plug-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/features/plug-play.png -------------------------------------------------------------------------------- /public/home/hero/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/home/hero/hero-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/hero/hero-header.png -------------------------------------------------------------------------------- /public/home/hero/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/hero/hero.png -------------------------------------------------------------------------------- /public/home/values/value-1-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/values/value-1-mini.png -------------------------------------------------------------------------------- /public/home/values/value-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/values/value-1.png -------------------------------------------------------------------------------- /public/home/values/value-2-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/values/value-2-mini.png -------------------------------------------------------------------------------- /public/home/values/value-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/values/value-2.png -------------------------------------------------------------------------------- /public/home/values/value-3-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/values/value-3-mini.png -------------------------------------------------------------------------------- /public/home/values/value-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/values/value-3.png -------------------------------------------------------------------------------- /public/home/values/value-4-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/values/value-4-mini.png -------------------------------------------------------------------------------- /public/home/values/value-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/values/value-4.png -------------------------------------------------------------------------------- /public/home/web3/plug-play-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/web3/plug-play-large.png -------------------------------------------------------------------------------- /public/home/web3/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/web3/star.png -------------------------------------------------------------------------------- /public/home/web3/web3-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/home/web3/web3-pattern.png -------------------------------------------------------------------------------- /public/logo-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/logo-old.png -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/logo192.png -------------------------------------------------------------------------------- /public/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/logo2.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Unitap", 3 | "name": "BrightID Faucet App", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /public/nftListSample/sample.csv: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | -------------------------------------------------------------------------------- /public/nftListSample/sample.txt: -------------------------------------------------------------------------------- 1 | 1,2,3,4 -------------------------------------------------------------------------------- /public/pending-spaceman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/pending-spaceman.jpg -------------------------------------------------------------------------------- /public/pending-spaceman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/pending-spaceman.png -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /public/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/search.png -------------------------------------------------------------------------------- /public/site.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /public/spman-header1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/spman-header1.png -------------------------------------------------------------------------------- /public/spman-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnitapApp/unitap-front/6fa5d7c90bfd69092405d7cb5202f0cd8d79e465/public/spman-old.png -------------------------------------------------------------------------------- /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 | 6 | import * as Sentry from "@sentry/nextjs"; 7 | 8 | Sentry.init({ 9 | dsn: "https://023305446ec48b60f12318f9cef6a8fd@o4507146996809728.ingest.de.sentry.io/4507147001004112", 10 | 11 | // Adjust this value in production, or use tracesSampler for greater control 12 | tracesSampleRate: 1, 13 | 14 | // Setting this option to true will print useful information to the console while you're setting up Sentry. 15 | debug: false, 16 | }); 17 | -------------------------------------------------------------------------------- /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 | 5 | import * as Sentry from "@sentry/nextjs"; 6 | 7 | Sentry.init({ 8 | dsn: "https://023305446ec48b60f12318f9cef6a8fd@o4507146996809728.ingest.de.sentry.io/4507147001004112", 9 | 10 | // 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 | // uncomment the line below to enable Spotlight (https://spotlightjs.com) 17 | // spotlight: process.env.NODE_ENV === 'development', 18 | 19 | }); 20 | -------------------------------------------------------------------------------- /styles/cards.scss: -------------------------------------------------------------------------------- 1 | .card { 2 | @apply rounded-3xl bg-gray20 text-white; 3 | } 4 | 5 | .gradient-outline-card { 6 | @apply bg-g-primary relative z-10 before:content-[''] p-1 rounded-2xl overflow-hidden; 7 | @apply before:block before:-z-10 before:absolute before:inset-[3px] before:rounded-xl before:bg-gray00; 8 | } 9 | -------------------------------------------------------------------------------- /styles/gastap.scss: -------------------------------------------------------------------------------- 1 | .gas-level-fine { 2 | background: linear-gradient(to right, #bcf8d8 3.12%, #75cba2 96.88%); 3 | } 4 | 5 | .gas-level-low { 6 | background: linear-gradient(329.12deg, #ad7f3b 18.71%, #ebdb4b 81.29%); 7 | } 8 | 9 | .gas-level-empty { 10 | background: rgb(234 83 101); 11 | } 12 | 13 | .gas-empty-danger { 14 | border: 0.5px solid rgb(234 83 101); 15 | } 16 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "strict": true, 12 | "noEmit": true, 13 | "esModuleInterop": true, 14 | "module": "esnext", 15 | "moduleResolution": "bundler", 16 | "resolveJsonModule": true, 17 | "isolatedModules": true, 18 | "jsx": "preserve", 19 | "incremental": true, 20 | "plugins": [ 21 | { 22 | "name": "next" 23 | } 24 | ], 25 | "paths": { 26 | "@/*": [ 27 | "./*" 28 | ] 29 | }, 30 | "baseUrl": "." 31 | }, 32 | "include": [ 33 | "next-env.d.ts", 34 | "**/*.ts", 35 | "**/*.tsx", 36 | ".next/types/**/*.ts" 37 | ], 38 | "exclude": [ 39 | "node_modules" 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /types/api.ts: -------------------------------------------------------------------------------- 1 | export enum APIErrorsSource { 2 | TEST = "TEST", 3 | BRIGHTID_CONNECTION_ERROR = "BRIGHTID_CONNECTION_ERROR", 4 | } 5 | 6 | export type APIError = { 7 | message: string 8 | source: APIErrorsSource 9 | statusCode: number 10 | } 11 | -------------------------------------------------------------------------------- /types/brightId.ts: -------------------------------------------------------------------------------- 1 | export enum HaveBrightIdAccountModalState { 2 | CLOSED = "0", 3 | OPENED = "1", 4 | } 5 | 6 | export enum BrightIdConnectionModalState { 7 | CLOSED = "0", 8 | OPENED = "1", 9 | } 10 | 11 | export enum BrightIdVerificationStatus { 12 | PENDING = "0", 13 | VERIFIED = "1", 14 | } 15 | -------------------------------------------------------------------------------- /types/index.ts: -------------------------------------------------------------------------------- 1 | export type PK = number; 2 | 3 | export * from "./auth"; 4 | export * from "./api"; 5 | export * from "./gastap"; 6 | export * from "./tokentap"; 7 | export * from "./prizetap"; 8 | export * from "./transaction"; 9 | export * from "./brightId"; 10 | export * from "./provider-dashboard"; 11 | export * from "./lens"; 12 | -------------------------------------------------------------------------------- /types/lens.ts: -------------------------------------------------------------------------------- 1 | export type LensUserProfile = { 2 | id: string; 3 | stats: { 4 | followers: number; 5 | following: number; 6 | }; 7 | metadata: { 8 | displayName: string; 9 | 10 | picture: { 11 | optimized: { 12 | uri: string; 13 | }; 14 | } | null; 15 | } | null; 16 | }; 17 | 18 | export type FarcasterProfile = { 19 | fid: number; 20 | custody_address: string; 21 | username: string; 22 | pfp_url: string; 23 | profile: { 24 | bio: { 25 | text: string; 26 | }; 27 | }; 28 | 29 | follower_count: number; 30 | following_count: number; 31 | active_status: string; 32 | }; 33 | 34 | export type FarcasterChannel = { 35 | id: string; 36 | url: string; 37 | name: string; 38 | description?: string; 39 | object: string; 40 | channel: string; 41 | 42 | created_at: number; 43 | 44 | follower_count: number; 45 | image_url: string; 46 | parent_url: string; 47 | }; 48 | -------------------------------------------------------------------------------- /types/transaction.ts: -------------------------------------------------------------------------------- 1 | export enum TransactionState { 2 | IDLE = '0', 3 | PENDING = '1', 4 | ACCEPTED = '2', 5 | FAILED = '3', 6 | } 7 | -------------------------------------------------------------------------------- /utils/api/base.ts: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | 3 | export const axiosInstance = axios.create({ 4 | baseURL: process.env.NEXT_PUBLIC_API_URL, 5 | }); 6 | -------------------------------------------------------------------------------- /utils/api/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./auth"; 2 | export * from "./gastap"; 3 | export * from "./landing"; 4 | export * from "./tokentap"; 5 | export * from "./prizetap"; 6 | export * from "./provider-dashboard"; 7 | export * from "./social-accounts"; 8 | 9 | export const serverFetch = async (url: string, init?: RequestInit) => { 10 | if (init?.headers) { 11 | // @ts-ignore 12 | // init.headers.backend_service_key = process.env.BACKEND_SERVICE_KEY; 13 | // @ts-ignore 14 | // init.headers.Cookie = `backend_service_key=${process.env.BACKEND_SERVICE_KEY};`; 15 | } 16 | 17 | const res = await fetch(process.env.NEXT_PUBLIC_API_URL! + url, { 18 | cache: "no-store", 19 | ...(init ?? 20 | { 21 | // headers: { 22 | // // backend_service_key: process.env.BACKEND_SERVICE_KEY!, 23 | // // Cookie: `backend_service_key=${process.env.BACKEND_SERVICE_KEY};`, 24 | // }, 25 | }), 26 | }); 27 | 28 | // console.log(await res.clone().text()); 29 | 30 | return await res.json(); 31 | }; 32 | -------------------------------------------------------------------------------- /utils/api/landing.ts: -------------------------------------------------------------------------------- 1 | import { axiosInstance } from "./base"; 2 | 3 | export async function countUsersAPI() { 4 | const response = await axiosInstance.get<{ count: number }>( 5 | "/api/auth/user/count/" 6 | ); 7 | 8 | return response.data.count; 9 | } 10 | 11 | export async function countGasClaimedAPI() { 12 | const response = await axiosInstance.get<{ count: number }>( 13 | "/api/gastap/claims/count/" 14 | ); 15 | 16 | return response.data.count; 17 | } 18 | -------------------------------------------------------------------------------- /utils/api/social-accounts.ts: -------------------------------------------------------------------------------- 1 | import { UserProfile } from "@/types"; 2 | import { axiosInstance } from "./base"; 3 | 4 | export const ConnectBrightIdApi = async ( 5 | address: string, 6 | signature: string, 7 | userToken: string 8 | ) => { 9 | const response = await axiosInstance.post( 10 | `/api/auth/user/connect/brightid/`, 11 | { 12 | address, 13 | signature, 14 | }, 15 | { 16 | headers: { 17 | Authorization: `token ${userToken}`, 18 | }, 19 | } 20 | ); 21 | 22 | return response.data; 23 | }; 24 | -------------------------------------------------------------------------------- /utils/chain.ts: -------------------------------------------------------------------------------- 1 | import { Chain } from "@/types" 2 | 3 | export const sortChainListByTotalClaimWeekly = (chainList: Chain[]) => { 4 | const sortedChainList = chainList.sort((a, b) => { 5 | if (a.totalClaimsThisRound < b.totalClaimsThisRound) { 6 | return 1 7 | } 8 | if (a.totalClaimsThisRound > b.totalClaimsThisRound) { 9 | return -1 10 | } 11 | 12 | return 0 13 | }) 14 | return sortedChainList 15 | } 16 | 17 | export const getChainIcon = (chain: Chain) => { 18 | return chain.logoUrl 19 | } 20 | 21 | export const getChainClaimIcon = (chain: Chain) => { 22 | return chain.gasImageUrl 23 | } 24 | 25 | export function getTxUrl(chain: Chain, txHash: string) { 26 | let explorerUrl = chain.explorerUrl 27 | explorerUrl = explorerUrl.endsWith("/") ? explorerUrl : `${explorerUrl}/` 28 | return `${explorerUrl}tx/${txHash}` 29 | } 30 | -------------------------------------------------------------------------------- /utils/cookies.ts: -------------------------------------------------------------------------------- 1 | export const parseCookies = () => { 2 | return typeof document === "undefined" 3 | ? {} 4 | : document.cookie.split(";").reduce((cookies, cookie) => { 5 | const [name, value] = cookie.trim().split("="); 6 | cookies[name] = value; 7 | return cookies; 8 | }, {} as { [key: string]: string }); 9 | }; 10 | -------------------------------------------------------------------------------- /utils/errorHandler.ts: -------------------------------------------------------------------------------- 1 | export const parseServerError = (data: any) => { 2 | return typeof data === "object" ? Object.values(data)[0] : data.toString(); 3 | }; 4 | -------------------------------------------------------------------------------- /utils/hooks/contributionPagInation.tsx: -------------------------------------------------------------------------------- 1 | export const usePagination = ( 2 | page: number, 3 | setPage: { (page: number): void; (arg0: number): any }, 4 | forms: any 5 | ) => { 6 | const nextPage = () => page <= 5 && setPage(page + 1); 7 | 8 | const prevPage = () => page > 0 && setPage(page - 1); 9 | 10 | const getForm = (page: number) => [...forms][page]; 11 | 12 | const Form = getForm(page); 13 | 14 | const display = ( 15 |
19 | ); 20 | 21 | return { page, display, prevPage }; 22 | }; 23 | -------------------------------------------------------------------------------- /utils/hooks/dom.ts: -------------------------------------------------------------------------------- 1 | import { RefObject, useEffect } from "react"; 2 | 3 | type EventListener = (event: MouseEvent) => void; 4 | 5 | export const useOutsideClick = ( 6 | ref: RefObject, 7 | callback: EventListener, 8 | ): void => { 9 | useEffect(() => { 10 | const handleClickOutside = (event: MouseEvent): void => { 11 | if (ref.current && !ref.current.contains(event.target as Node)) { 12 | callback(event); 13 | } 14 | }; 15 | 16 | document.addEventListener("mousedown", handleClickOutside); 17 | 18 | return () => { 19 | document.removeEventListener("mousedown", handleClickOutside); 20 | }; 21 | }, [ref, callback]); 22 | }; 23 | -------------------------------------------------------------------------------- /utils/hooks/index.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | 3 | const useLocalStorageState = ( 4 | key: string 5 | ): [string | null, (token: string) => void] => { 6 | const [userToken, setUserToken] = useState(null); 7 | 8 | useEffect(() => { 9 | const storedUserToken = localStorage.getItem(key); 10 | if (storedUserToken) setUserToken(storedUserToken); 11 | }, [key]); 12 | 13 | const setToken = (token: string) => { 14 | setUserToken(token); 15 | localStorage.setItem(key, token); 16 | document.cookie = `${key}=${token}`; 17 | }; 18 | 19 | return [userToken, setToken]; 20 | }; 21 | 22 | export default useLocalStorageState; 23 | -------------------------------------------------------------------------------- /utils/hooks/scrollTop.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react'; 2 | 3 | const useScrollToTop = () => { 4 | useEffect(() => { 5 | const scrollToTop = () => { 6 | window.scrollTo({ 7 | top: 0, 8 | behavior: 'smooth' 9 | }); 10 | }; 11 | scrollToTop(); 12 | return () => { 13 | }; 14 | }, []); 15 | }; 16 | 17 | export default useScrollToTop; -------------------------------------------------------------------------------- /utils/routes.ts: -------------------------------------------------------------------------------- 1 | enum RoutePath { 2 | HOME = "/", 3 | FAUCET = "/gastap", 4 | TOKEN = "/tokentap", 5 | DONATE = "/donate", 6 | FUND = "/fund", 7 | PRIZE = "/prizetap", 8 | ABOUT = "/about", 9 | NFT = "/pass", 10 | PROVIDERDASHBOARD = "/dashboard", 11 | PROVIDER_GASTAP = "/dashboard/gas-tap", 12 | PROVIDER_GASTAP_CREATE = "/dashboard/gas-tap/create", 13 | PROVIDER_TOKENTAP = "/dashboard/token-tap", 14 | PROVIDER_TOKENTAP_CREATE = "/dashboard/token-tap/create", 15 | PROVIDER_TOKENTAP_DETAILS = "/dashboard/token-tap/details", 16 | PROVIDER_TOKENTAP_VERIFICATION = "/dashboard/token-tap/verification", 17 | 18 | PROVIDER_PRIZETAP = "/dashboard/prize-tap", 19 | PROVIDER_PRIZETAP_CREATE = "/dashboard/prize-tap/create", 20 | PROVIDER_PRIZETAP_DETAILS = "/dashboard/prize-tap/details", 21 | PROVIDER_PRIZETAP_VERIFICATION = "/dashboard/prize-tap/verification", 22 | } 23 | 24 | export default RoutePath; 25 | -------------------------------------------------------------------------------- /utils/serverApis/auth.ts: -------------------------------------------------------------------------------- 1 | import { UserConnection } from "@/types"; 2 | import { serverFetch } from "../api"; 3 | 4 | export const getUserHistory = async (token?: string) => { 5 | const res = await serverFetch("/api/auth/user/history-count/", { 6 | headers: { 7 | Authorization: `token ${token}`, 8 | }, 9 | }); 10 | 11 | const data = await res.json(); 12 | 13 | return data as { gasClaim: number; tokenClaim: number; raffleWin: number }; 14 | }; 15 | 16 | export const getAllConnections = async (token?: string) => { 17 | const data = (await serverFetch("/api/auth/user/all-connections/", { 18 | headers: { 19 | Authorization: `token ${token}`, 20 | }, 21 | })) as UserConnection[]; 22 | 23 | const transformedData = data.reduce((prev, curr) => { 24 | const name = Object.keys(curr)[0]; 25 | 26 | if (!curr[name].isConnected) return prev; 27 | 28 | prev[name] = curr[name]; 29 | return prev; 30 | }, {} as UserConnection); 31 | 32 | return transformedData; 33 | }; 34 | -------------------------------------------------------------------------------- /utils/serverApis/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./gastap"; 2 | export * from "./contributionHub"; 3 | export * from "./auth"; 4 | -------------------------------------------------------------------------------- /utils/serverApis/prizetap.ts: -------------------------------------------------------------------------------- 1 | import { Prize } from "@/types"; 2 | import { serverFetch } from "../api"; 3 | 4 | export async function getRafflesServerSideListAPI() { 5 | const response: Prize[] = await serverFetch("/api/prizetap/raffle-list/"); 6 | 7 | return response.filter( 8 | (raffle) => raffle.status !== "PENDING" && raffle.status !== "REJECTED", 9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /utils/web3.ts: -------------------------------------------------------------------------------- 1 | export function calculateGasMargin(value: bigint): bigint { 2 | const gasMarginMultiplier = BigInt(10000 + 2000) 3 | const gasMarginValue = (value * gasMarginMultiplier) / BigInt(10000) 4 | return gasMarginValue 5 | } 6 | 7 | export const USER_DENIED_REQUEST_ERROR_CODE = 4001 8 | // This might happen in different situations 9 | export const GENERIC_ERROR_CODE = -32603 10 | export const GENERIC_ERROR_CODE_2 = -320000 11 | export const UNRECOGNIZED_CHAIN_ERROR_CODE = [4902, GENERIC_ERROR_CODE] 12 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "headers": [ 3 | { 4 | "source": "/(.*)", 5 | "headers": [ 6 | { 7 | "key": "Cache-Control", 8 | "value": "public, max-age=0, must-revalidate" 9 | } 10 | ] 11 | } 12 | ] 13 | } 14 | --------------------------------------------------------------------------------