Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions biome.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"organizeImports": {
"enabled": true
},
"$schema": "https://biomejs.dev/schemas/2.4.10/schema.json",
"assist": { "actions": { "source": { "organizeImports": "on" } } },
"vcs": {
"clientKind": "git",
"enabled": true,
"useIgnoreFile": true
},
"files": {
"ignore": ["src/routeTree.gen.ts", ".install-files/**/*"]
"includes": ["**", "!**/src/routeTree.gen.ts", "!**/.install-files/**/*"]
},
"formatter": {
"attributePosition": "multiline",
Expand Down
22 changes: 11 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"@tanstack/react-router": "^1.168.10",
"@tanstack/react-virtual": "^3.13.23",
"@uniswap/default-token-list": "^18.13.0",
"@vercel/analytics": "^1.5.0",
"@vercel/analytics": "^2.0.1",
"@web3icons/core": "^4.0.13",
"@web3icons/react": "^4.0.13",
"connectkit": "^1.9.2",
Expand All @@ -56,9 +56,9 @@
"zod": "^3.24.4"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
"@commitlint/cli": "^19.8.1",
"@commitlint/config-conventional": "^19.8.1",
"@biomejs/biome": "2.4.10",
"@commitlint/cli": "^20.5.0",
"@commitlint/config-conventional": "^20.5.0",
"@graphql-codegen/cli": "^5.0.6",
"@graphql-typed-document-node/core": "^3.2.0",
"@parcel/watcher": "^2.5.1",
Expand All @@ -71,13 +71,13 @@
"@testing-library/user-event": "^14.6.1",
"@types/react": "^19.1.3",
"@types/react-dom": "^19.1.3",
"@vitejs/plugin-react-swc": "^3.9.0",
"@vitest/coverage-v8": "^3.1.3",
"@vitejs/plugin-react-swc": "^4.3.0",
"@vitest/coverage-v8": "^4.1.2",
"@wagmi/cli": "^2.3.1",
"change-case": "^5.4.4",
"husky": "^9.1.7",
"jsdom": "^26.1.0",
"lint-staged": "^15.5.2",
"jsdom": "^29.0.1",
"lint-staged": "^16.4.0",
"ts-node": "^10.9.2",
"typedoc": "^0.28.18",
"typedoc-github-theme": "^0.4.0",
Expand All @@ -86,9 +86,9 @@
"typedoc-plugin-rename-defaults": "^0.7.3",
"typescript": "^5.8.3",
"vite": "^6.3.5",
"vite-plugin-sitemap": "^0.7.1",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.1.3",
"vite-plugin-sitemap": "^0.8.2",
"vite-tsconfig-paths": "^6.1.1",
"vitest": "^4.1.2",
"vocs": "1.4.1"
},
"packageManager": "pnpm@10.33.0"
Expand Down
1,451 changes: 592 additions & 859 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/components/pageComponents/NotFound404.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useNavigate } from '@tanstack/react-router'
import { GeneralMessage } from '@/src/components/sharedComponents/ui/GeneralMessage'
import PrimaryButton from '@/src/components/sharedComponents/ui/PrimaryButton'
import { useNavigate } from '@tanstack/react-router'

const Icon = () => (
<svg
Expand Down
4 changes: 2 additions & 2 deletions src/components/pageComponents/home/Examples/Item/index.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Dialog, Flex, type FlexProps, Heading, Portal, Text } from '@chakra-ui/react'
import { type FC, type ReactNode, useState } from 'react'
import DemoButton from '@/src/components/pageComponents/home/Examples/Item/buttons/DemoButton'
import DocumentationButton from '@/src/components/pageComponents/home/Examples/Item/buttons/DocumentationButton'
import Modal from '@/src/components/sharedComponents/ui/Modal'
import { Dialog, Flex, type FlexProps, Heading, Portal, Text } from '@chakra-ui/react'
import { type FC, type ReactNode, useState } from 'react'
import styles from './styles'

export interface Props extends FlexProps {
Expand Down
2 changes: 1 addition & 1 deletion src/components/pageComponents/home/Examples/List/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Item, { type Props as ItemProps } from '@/src/components/pageComponents/home/Examples/Item'
import { Grid, type GridProps } from '@chakra-ui/react'
import type { FC } from 'react'
import Item, { type Props as ItemProps } from '@/src/components/pageComponents/home/Examples/Item'

interface Props extends GridProps {
items: ItemProps[]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import Icon from '@/src/components/pageComponents/home/Examples/demos/EnsName/Icon'
import { OptionsDropdown } from '@/src/components/pageComponents/home/Examples/demos/OptionsDropdown'
import Spinner from '@/src/components/sharedComponents/ui/Spinner'
import { Flex, Heading, Input } from '@chakra-ui/react'
import { type ChangeEvent, useEffect, useState } from 'react'
import { useDebouncedCallback } from 'use-debounce'
import type { Address } from 'viem'
import { useEnsName } from 'wagmi'
import { mainnet } from 'wagmi/chains'
import Icon from '@/src/components/pageComponents/home/Examples/demos/EnsName/Icon'
import { OptionsDropdown } from '@/src/components/pageComponents/home/Examples/demos/OptionsDropdown'
import Spinner from '@/src/components/sharedComponents/ui/Spinner'

const EnsNameSearch = ({ address }: { address?: Address }) => {
const { data, error, status } = useEnsName({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import BaseHash from '@/src/components/sharedComponents/Hash'
import { toaster } from '@/src/components/ui/toaster'
import { getExplorerLink } from '@/src/utils/getExplorerLink'
import type { FlexProps } from '@chakra-ui/react'
import type { FC } from 'react'
import type { Address, Chain } from 'viem'
import BaseHash from '@/src/components/sharedComponents/Hash'
import { toaster } from '@/src/components/ui/toaster'
import { getExplorerLink } from '@/src/utils/getExplorerLink'

interface Props extends FlexProps {
chain: Chain
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
import { Box, chakra, Flex, Input } from '@chakra-ui/react'
import { useState } from 'react'
import type { Address } from 'viem'
import * as chains from 'viem/chains'
import Hash from '@/src/components/pageComponents/home/Examples/demos/HashHandling/Hash'
import Wrapper from '@/src/components/pageComponents/home/Examples/wrapper'

import Icon from '@/src/components/pageComponents/home/Examples/demos/HashHandling/Icon'
import Wrapper from '@/src/components/pageComponents/home/Examples/wrapper'
import HashInput from '@/src/components/sharedComponents/HashInput'

import Spinner from '@/src/components/sharedComponents/ui/Spinner'
import { useWeb3Status } from '@/src/hooks/useWeb3Status'
import type { DetectedHash } from '@/src/utils/hash'
import { Box, Flex, Input, chakra } from '@chakra-ui/react'
import { useState } from 'react'
import type { Address } from 'viem'
import * as chains from 'viem/chains'

const AlertIcon = () => (
<chakra.svg
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
import { Flex, Span } from '@chakra-ui/react'
import { useState } from 'react'
import type { Address } from 'viem'
import { parseEther } from 'viem'
import { optimismSepolia, sepolia } from 'viem/chains'
import { extractTransactionDepositedLogs, getL2TransactionHash } from 'viem/op-stack'
import Icon from '@/src/components/pageComponents/home/Examples/demos/OptimismCrossDomainMessenger/Icon'
import Wrapper from '@/src/components/pageComponents/home/Examples/wrapper'
import Hash from '@/src/components/sharedComponents/Hash'
import TransactionButton from '@/src/components/sharedComponents/TransactionButton'
import { WalletStatusVerifier } from '@/src/components/sharedComponents/WalletStatusVerifier'
import { useWeb3StatusConnected } from '@/src/components/sharedComponents/WalletStatusVerifier'
import {
useWeb3StatusConnected,
WalletStatusVerifier,
} from '@/src/components/sharedComponents/WalletStatusVerifier'
import { getContract } from '@/src/constants/contracts/contracts'
import { useL1CrossDomainMessengerProxy } from '@/src/hooks/useOPL1CrossDomainMessengerProxy'
import { getExplorerLink } from '@/src/utils/getExplorerLink'
import { withSuspenseAndRetry } from '@/src/utils/suspenseWrapper'
import { Flex, Span } from '@chakra-ui/react'
import { useState } from 'react'
import type { Address } from 'viem'
import { parseEther } from 'viem'
import { optimismSepolia, sepolia } from 'viem/chains'
import { extractTransactionDepositedLogs, getL2TransactionHash } from 'viem/op-stack'

const OptimismCrossDomainMessenger = withSuspenseAndRetry(() => {
// https://sepolia-optimism.etherscan.io/address/0xb50201558b00496a145fe76f7424749556e326d8
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Box, type BoxProps, Menu, chakra } from '@chakra-ui/react'
import { Box, type BoxProps, chakra, Menu } from '@chakra-ui/react'
import { type FC, useState } from 'react'
import { buttonStyles, dropdownStyles } from './styles'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import Icon from '@/src/components/pageComponents/home/Examples/demos/SignMessage/Icon'
import Wrapper from '@/src/components/pageComponents/home/Examples/wrapper'
import SignButton from '@/src/components/sharedComponents/SignButton'
import { WalletStatusVerifier } from '@/src/components/sharedComponents/WalletStatusVerifier'
import PrimaryButton from '@/src/components/sharedComponents/ui/PrimaryButton'
import { WalletStatusVerifier } from '@/src/components/sharedComponents/WalletStatusVerifier'

const message = `
👻🚀 Welcome to dAppBooster! 🚀👻
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import Icon from '@/src/components/pageComponents/home/Examples/demos/SwitchNetwork/Icon'
import BaseSwitchNetwork, { type Networks } from '@/src/components/sharedComponents/SwitchNetwork'
import { useWeb3Status } from '@/src/hooks/useWeb3Status'
import { ConnectWalletButton } from '@/src/providers/Web3Provider'
import {
NetworkArbitrumOne,
NetworkEthereum,
NetworkOptimism,
NetworkPolygon,
} from '@web3icons/react'
import { arbitrum, mainnet, optimism, polygon } from 'viem/chains'
import Icon from '@/src/components/pageComponents/home/Examples/demos/SwitchNetwork/Icon'
import BaseSwitchNetwork, { type Networks } from '@/src/components/sharedComponents/SwitchNetwork'
import { useWeb3Status } from '@/src/hooks/useWeb3Status'
import { ConnectWalletButton } from '@/src/providers/Web3Provider'

const SwitchNetwork = () => {
const { isWalletConnected } = useWeb3Status()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { type FC, useState } from 'react'
import Icon from '@/src/components/pageComponents/home/Examples/demos/TokenDropdown/Icon'
import Wrapper from '@/src/components/pageComponents/home/Examples/wrapper'
import BaseTokenDropdown from '@/src/components/sharedComponents/TokenDropdown'
import type { Token } from '@/src/types/token'
import { type FC, useState } from 'react'

const TokenDropdown: FC = ({ ...restProps }) => {
const [currentToken, setCurrentToken] = useState<Token>()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { createMockWeb3Status, renderWithProviders } from '@/src/test-utils'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { screen } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import { createMockWeb3Status, renderWithProviders } from '@/src/test-utils'
import tokenInput from './index'

vi.mock('@/src/hooks/useWeb3Status', () => ({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
import OptionsDropdown from '@/src/components/pageComponents/home/Examples/demos/OptionsDropdown'
import Icon from '@/src/components/pageComponents/home/Examples/demos/TokenInput/Icon'
import BaseTokenInput from '@/src/components/sharedComponents/TokenInput'
import { useTokenInput } from '@/src/components/sharedComponents/TokenInput/useTokenInput'
import type { Networks } from '@/src/components/sharedComponents/TokenSelect/types'
import { useTokenLists } from '@/src/hooks/useTokenLists'
import { useTokenSearch } from '@/src/hooks/useTokenSearch'
import { useWeb3Status } from '@/src/hooks/useWeb3Status'
import { withSuspenseAndRetry } from '@/src/utils/suspenseWrapper'
import { Box, Flex, Skeleton } from '@chakra-ui/react'
import {
NetworkArbitrumOne,
Expand All @@ -16,6 +7,15 @@ import {
} from '@web3icons/react'
import { useState } from 'react'
import { arbitrum, mainnet, optimism, polygon } from 'viem/chains'
import OptionsDropdown from '@/src/components/pageComponents/home/Examples/demos/OptionsDropdown'
import Icon from '@/src/components/pageComponents/home/Examples/demos/TokenInput/Icon'
import BaseTokenInput from '@/src/components/sharedComponents/TokenInput'
import { useTokenInput } from '@/src/components/sharedComponents/TokenInput/useTokenInput'
import type { Networks } from '@/src/components/sharedComponents/TokenSelect/types'
import { useTokenLists } from '@/src/hooks/useTokenLists'
import { useTokenSearch } from '@/src/hooks/useTokenSearch'
import { useWeb3Status } from '@/src/hooks/useWeb3Status'
import { withSuspenseAndRetry } from '@/src/utils/suspenseWrapper'

type Options = 'single' | 'multi'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import type { FC } from 'react'
import { type Address, erc20Abi, type Hash, type TransactionReceipt } from 'viem'
import * as chains from 'viem/chains'
import { useWriteContract } from 'wagmi'
import Wrapper from '@/src/components/pageComponents/home/Examples/demos/TransactionButton/Wrapper'
import TransactionButton from '@/src/components/sharedComponents/TransactionButton'
import { useWeb3StatusConnected } from '@/src/components/sharedComponents/WalletStatusVerifier'
import { useSuspenseReadErc20Allowance } from '@/src/hooks/generated'
import { useWeb3Status } from '@/src/hooks/useWeb3Status'
import type { Token } from '@/src/types/token'
import { getExplorerLink } from '@/src/utils/getExplorerLink'
import type { FC } from 'react'
import { type Address, type Hash, type TransactionReceipt, erc20Abi } from 'viem'
import * as chains from 'viem/chains'
import { useWriteContract } from 'wagmi'

interface Props {
amount: bigint
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { sepolia } from 'viem/chains'
import { useWriteContract } from 'wagmi'
import TransactionButton from '@/src/components/sharedComponents/TransactionButton'
import { useWeb3StatusConnected } from '@/src/components/sharedComponents/WalletStatusVerifier'
import { AaveFaucetABI } from '@/src/constants/contracts/abis/AaveFaucet'
import { getContract } from '@/src/constants/contracts/contracts'
import { sepolia } from 'viem/chains'
import { useWriteContract } from 'wagmi'

export default function MintUSDC({ onSuccess }: { onSuccess: () => void }) {
const { address } = useWeb3StatusConnected()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { type Address, formatUnits } from 'viem'
import { sepolia } from 'viem/chains'
import { useWriteContract } from 'wagmi'
import BaseERC20ApproveAndTransferButton from '@/src/components/pageComponents/home/Examples/demos/TransactionButton/ERC20ApproveAndTransferButton/ERC20ApproveAndTransferButton'
import MintUSDC from '@/src/components/pageComponents/home/Examples/demos/TransactionButton/ERC20ApproveAndTransferButton/MintUSDC'
import Wrapper from '@/src/components/pageComponents/home/Examples/demos/TransactionButton/Wrapper'
import { useWeb3StatusConnected } from '@/src/components/sharedComponents/WalletStatusVerifier'
import { useSuspenseReadErc20BalanceOf } from '@/src/hooks/generated'
import type { Token } from '@/src/types/token'
import { NumberType, formatNumberOrString } from '@/src/utils/numberFormat'
import { formatNumberOrString, NumberType } from '@/src/utils/numberFormat'
import { withSuspense } from '@/src/utils/suspenseWrapper'
import { type Address, formatUnits } from 'viem'
import { sepolia } from 'viem/chains'
import { useWriteContract } from 'wagmi'

// USDC token on Sepolia chain
const tokenUSDC_sepolia: Token = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { Dialog } from '@chakra-ui/react'
import { type ReactElement, useState } from 'react'
import { type Hash, parseEther, type TransactionReceipt } from 'viem'
import { useSendTransaction } from 'wagmi'
import Wrapper from '@/src/components/pageComponents/home/Examples/demos/TransactionButton/Wrapper'
import TransactionButton from '@/src/components/sharedComponents/TransactionButton'
import { useWeb3StatusConnected } from '@/src/components/sharedComponents/WalletStatusVerifier'
import { GeneralMessage } from '@/src/components/sharedComponents/ui/GeneralMessage'
import PrimaryButton from '@/src/components/sharedComponents/ui/PrimaryButton'
import { Dialog } from '@chakra-ui/react'
import { type ReactElement, useState } from 'react'
import { type Hash, type TransactionReceipt, parseEther } from 'viem'
import { useSendTransaction } from 'wagmi'
import { useWeb3StatusConnected } from '@/src/components/sharedComponents/WalletStatusVerifier'

/**
* This demo shows how to send a native token transaction.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { createMockWeb3Status, renderWithProviders } from '@/src/test-utils'
import { screen } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import { createMockWeb3Status, renderWithProviders } from '@/src/test-utils'
import transactionButton from './index'

vi.mock('@/src/hooks/useWeb3Status', () => ({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Flex } from '@chakra-ui/react'
import { useState } from 'react'
import { sepolia } from 'wagmi/chains'
import { OptionsDropdown } from '@/src/components/pageComponents/home/Examples/demos/OptionsDropdown'
import ERC20ApproveAndTransferButton from '@/src/components/pageComponents/home/Examples/demos/TransactionButton/ERC20ApproveAndTransferButton'
import Icon from '@/src/components/pageComponents/home/Examples/demos/TransactionButton/Icon'
import NativeToken from '@/src/components/pageComponents/home/Examples/demos/TransactionButton/NativeToken'
import { WalletStatusVerifier } from '@/src/components/sharedComponents/WalletStatusVerifier'
import { Flex } from '@chakra-ui/react'
import { useState } from 'react'
import { sepolia } from 'wagmi/chains'

type Options = 'erc20' | 'native'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
import { generateSchemasMapping } from '@bootnodedev/db-subgraph'
import { Box, Flex, Skeleton } from '@chakra-ui/react'
import { useSuspenseQuery } from '@tanstack/react-query'
import { NetworkArbitrumOne, NetworkBase, NetworkOptimism, NetworkPolygon } from '@web3icons/react'
import request from 'graphql-request'
import { useState } from 'react'
import { arbitrum, base, type Chain, optimism, polygon } from 'viem/chains'
import { OptionsDropdown } from '@/src/components/pageComponents/home/Examples/demos/OptionsDropdown'
import {
Row,
Expand All @@ -15,13 +22,6 @@ import { env } from '@/src/env'
import { allAaveReservesQueryDocument } from '@/src/subgraphs/queries/aave/reserves'
import { allUniswapPoolsQueryDocument } from '@/src/subgraphs/queries/uniswap/pools'
import { withSuspenseAndRetry } from '@/src/utils/suspenseWrapper'
import { generateSchemasMapping } from '@bootnodedev/db-subgraph'
import { Box, Flex, Skeleton } from '@chakra-ui/react'
import { useSuspenseQuery } from '@tanstack/react-query'
import { NetworkArbitrumOne, NetworkBase, NetworkOptimism, NetworkPolygon } from '@web3icons/react'
import request from 'graphql-request'
import { useState } from 'react'
import { type Chain, arbitrum, base, optimism, polygon } from 'viem/chains'

const chainNameMapping: { [key: number]: string } = {
[arbitrum.id]: 'arbitrum',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import { type SchemaMappingConfig, useSubgraphIndexingStatus } from '@bootnodedev/db-subgraph'
import { Box, Flex, Skeleton, Span, Text } from '@chakra-ui/react'
import { type FC, useState } from 'react'
import { arbitrum, base, type Chain, optimism, polygon } from 'viem/chains'
import { OptionsDropdown } from '@/src/components/pageComponents/home/Examples/demos/OptionsDropdown'
import { getNetworkIcon } from '@/src/components/pageComponents/home/Examples/demos/subgraphs/Subgraph'
import {
Expand All @@ -11,10 +15,6 @@ import Icon from '@/src/components/pageComponents/home/Examples/demos/subgraphs/
import Spinner from '@/src/components/sharedComponents/ui/Spinner'
import { env } from '@/src/env'
import { withSuspenseAndRetry } from '@/src/utils/suspenseWrapper'
import { type SchemaMappingConfig, useSubgraphIndexingStatus } from '@bootnodedev/db-subgraph'
import { Box, Flex, Skeleton, Span, Text } from '@chakra-ui/react'
import { type FC, useState } from 'react'
import { type Chain, arbitrum, base, optimism, polygon } from 'viem/chains'

export const SkeletonLoadingItem = () => (
<Flex
Expand Down
Loading
Loading