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
1 change: 1 addition & 0 deletions apps/storybook/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@
"@ethereum-attestation-service/eas-contracts": "1.7.1",
"@faker-js/faker": "^8.2.0",
"@fleek-platform/cli": "^3.8.2",
"@geist/typescript-config": "workspace:*",
"@radix-ui/themes": "^3.1.4",
"@storybook/addon-essentials": "^8.3.4",
"@storybook/addon-interactions": "^8.3.4",
Expand Down
2 changes: 1 addition & 1 deletion apps/storybook/src/stories/account/Balance.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { Meta, StoryObj } from "@storybook/react";
import { BY_USER } from "@geist/domain/user.fixture";
import { Balance } from "@geist/ui-react/components/account/balance";
import { BY_CHAIN_ID, Token } from "@geist/ui-react/lib/token/config";
import { Address } from "viem";
import type { Address } from "viem";
import { base, optimism } from "viem/chains";
import { withWagmiProvider } from "../decorators/wagmi";

Expand Down
2 changes: 1 addition & 1 deletion apps/storybook/src/stories/decorators/wagmi.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { BY_USER, getRandomAccount } from "@geist/domain/user.fixture";
import { WAGMI_CONFIG } from "@geist/ui-react/lib/utils/wagmi-config";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { Hex } from "viem";
import type { Hex } from "viem";
import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
import { WagmiProvider, useAccount, useConnect, useWalletClient } from "wagmi";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { faker } from "@faker-js/faker";
import { AddressBadge } from "@geist/ui-react/components/identity/address-badge";
import type { Meta, StoryObj } from "@storybook/react";
import { Hex } from "viem";
import type { Hex } from "viem";

const meta = {
title: "Identity/AddressBadge",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@ import { sepolia } from "viem/chains";
import { useSignMessage } from "wagmi";
import { withMockAccount, withWagmiProvider } from "../decorators/wagmi";

import { Hex, SignAccountType, SignType } from "@geist/domain/signature/sign";
import {
type Hex,
SignAccountType,
SignType,
} from "@geist/domain/signature/sign";
import { ScrollableCodeBlock } from "@geist/ui-react/components/scrollable-code-block";
import { SignatureVerifyBadge } from "@geist/ui-react/components/signature/signature-verify-badge";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Hex, SignType } from "@geist/domain/signature/sign";
import { type Hex, SignType } from "@geist/domain/signature/sign";
import { TYPED_DATA } from "@geist/domain/signature/type-data";
import { ScrollableCodeBlock } from "@geist/ui-react/components/scrollable-code-block";
import { SignatureForm } from "@geist/ui-react/components/signature/signature-form";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { TransferButton } from "@geist/ui-react/components/transfer/transfer-button";
import { Meta, StoryObj } from "@storybook/react";
import { useMemo, useState } from "react";
import { Account } from "viem";
import type { Account } from "viem";
import { Label } from "#components/ui/label";
import { withMockAccount, withWagmiProvider } from "../decorators/wagmi";
interface TransferButtonProps {
Expand Down
1 change: 1 addition & 0 deletions apps/storybook/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"extends": "@geist/typescript-config/base.json",
"compilerOptions": {
"baseUrl": "."
},
Expand Down
2 changes: 1 addition & 1 deletion packages/domain/src/chain/chain-resolver.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Chain, extractChain } from "viem";
import { type Chain, extractChain } from "viem";
import {
arbitrum,
arbitrumGoerli,
Expand Down
2 changes: 0 additions & 2 deletions packages/domain/src/signature/sign.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
// ECDSA signatures over secp256k1

import { sha256 } from "@noble/hashes/sha256";
import { signMessage } from "@wagmi/core";
import { useEffect, useRef, useState } from "react";
import { useAccount, useConfig, useSignMessage } from "wagmi";

import * as typed from "micro-eth-signer/typed-data";

Expand Down
8 changes: 8 additions & 0 deletions packages/domain/src/token/token.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export type Token = {
address?: Address;
imageUrl?: string;
decimals: number;
name: string;
symbol: string;
type?: string;
};
4 changes: 2 additions & 2 deletions packages/domain/src/transaction/transaction.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Address, Transaction } from "viem";
import { Token } from "../token/token";
import type { Transaction } from "viem";
import type { Token } from "#token/token";

// ignore other meta such as supply / volume for now
export type TokenTransfer = Token & {
Expand Down
2 changes: 1 addition & 1 deletion packages/domain/src/user.fixture.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { faker } from "@faker-js/faker";
import { addr } from "micro-eth-signer";
import { Address, Hex } from "viem";
import type { Address, Hex } from "viem";
import config from "./config";

const vitalik = {
Expand Down
1 change: 1 addition & 0 deletions packages/typescript-config/base.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"moduleDetection": "force",
"moduleResolution": "NodeNext",
"noUncheckedIndexedAccess": true,
"verbatimModuleSyntax": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/components/account/balance.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { formatUnitsWithDecimalsDisplayed } from "@geist/domain/amount";
import { Text } from "@radix-ui/themes";
// support ENS, basename
// Option to use ipfs gateway, ens metadata services
import { Address } from "viem";
import type { Address } from "viem";
import { mainnet } from "viem/chains";
import { useBalance, useReadContract } from "wagmi";
import { ABI_ERC20 } from "#lib/token/config";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Address } from "viem";
import { type Address } from "viem";
import { useChainId } from "wagmi";
import { Badge } from "#components/shadcn/badge";
import { useGetAttestations } from "#hooks/eas/use-get-attestations";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Label } from "@radix-ui/react-label";
import { format } from "date-fns";
import { useMemo } from "react";
import { Address, Hex } from "viem";
import { type Address, Hex } from "viem";
import { mainnet } from "viem/chains";
import { useChainId } from "wagmi";
import {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { zodResolver } from "@hookform/resolvers/zod";
import { useForm } from "react-hook-form";
import { Address } from "viem";
import type { Address } from "viem";
import { z } from "zod";
import { Button } from "#components/shadcn/button";
import { Card, CardContent } from "#components/shadcn/card";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ColumnDef } from "@tanstack/react-table";
import { useMemo } from "react";
import { Address, fromBlobs } from "viem";
import { type Address, fromBlobs } from "viem";
import { mainnet } from "viem/chains";
import { useChainId } from "wagmi";
import { DataTable } from "#components/data-table";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { format, formatDistance, subDays } from "date-fns";
import { Address } from "viem";
import type { Address } from "viem";
import { AttestationQueryResult } from "#hooks/eas/use-get-attestations";

// TODO sync graphql type
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Check, Copy } from "lucide-react";
import { useMemo, useState } from "react";
import { Hex, getAddress } from "viem";
import { type Hex, getAddress } from "viem";
import { normalize } from "viem/ens";
import { useEnsAddress } from "wagmi";
import {
Expand Down
4 changes: 2 additions & 2 deletions packages/ui-react/src/components/identity/name-wagmi.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// Take in address and display

import { useEffect, useMemo, useState } from "react";
import { Address, isHex } from "viem";
import { type Address, isHex } from "viem";
import { useEnsName } from "wagmi";
import { AddressOrEns } from "#hooks/ens/efp";
import type { AddressOrEns } from "#hooks/ens/efp";

export const NameWagmi = ({ addressOrEns }: { addressOrEns: AddressOrEns }) => {
const isName = !isHex(addressOrEns);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Flex } from "@radix-ui/themes";
import { useEffect, useState } from "react";
import { Address, Hex } from "viem";
import type { Address, Hex } from "viem";
import { AddressBadge } from "#components/identity/address-badge";
import { Label } from "#components/shadcn/label";
export const SignatureVerifyBadge = ({
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/components/token/token-chip.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Address, Chain, erc20Abi } from "viem";
import { type Address, Chain, erc20Abi } from "viem";
import { mainnet } from "viem/chains";
import { useConfig } from "wagmi";
import { useTokenInfo } from "./token";
Expand Down
14 changes: 3 additions & 11 deletions packages/ui-react/src/components/token/token.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,10 @@

import { resolveProductionChain } from "@geist/domain/chain/chain-resolver";
// import { useReadContracts } from "wagmi";
import { Config, readContracts } from "@wagmi/core";
import { type Config, readContracts } from "@wagmi/core";
import { useEffect, useState } from "react";
import { Address, Chain, erc20Abi } from "viem";

export type Token = {
address?: Address;
imageUrl?: string;
decimals: number;
name: string;
symbol: string;
type?: string;
};
import { type Address, type Chain, erc20Abi } from "viem";
import { asTrustWalletChainName } from "#lib/trustwallet-chain.js";

/**
* trustwallet/assets does not contains most testnet, always fallback to mainnet
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import type { Token } from "@geist/domain/token/token";
import { TransactionMeta } from "@geist/domain/transaction/transaction";
import { Label } from "@radix-ui/react-label";
import { AddressBadge } from "#components/identity/address-badge";
Expand All @@ -12,7 +13,6 @@ import {
import { Separator } from "#components/shadcn/separator";
import { Skeleton } from "#components/shadcn/skeleton";
import { TokenChipWithInfo } from "#components/token/token-chip-with-info";
import { Token } from "#lib/token/token";
import { getShortHex } from "#lib/utils/hex";

export const TransactionSummary = ({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Chain } from "viem";
import type { Chain } from "viem";
import { mainnet } from "viem/chains";
import { useConfig } from "wagmi";
import { Skeleton } from "#components/shadcn/skeleton";
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/hooks/data/use-blockscout.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import type { TransactionMeta } from "@geist/domain/transaction/transaction";
import { useQuery } from "@tanstack/react-query";
import {
GetTxnByFilterQuery,
asTransactionMeta,
getTransaction,
getTxnsByFilter,
} from "#lib/blockscout/api";
import { TransactionMeta } from "#lib/domain/transaction/transaction";

export const CACHE_KEY = "blockscout";

Expand Down
12 changes: 6 additions & 6 deletions packages/ui-react/src/hooks/eas/use-attestation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ import { NO_EXPIRATION } from "@geist/ui-react/lib/eas/request";
import { OffchainAttestationVersion } from "@geist/ui-react/lib/eas/sdk/offchain/offchain";
import { signOffchainAttestation } from "@geist/ui-react/lib/eas/viem/offchain";
import {
AttestationRequestData,
type AttestationRequestData,
makeOnchainAttestation,
} from "@geist/ui-react/lib/eas/viem/onchain";
import { createTestClientConfig } from "@geist/ui-react/lib/test-utils-isomorphic";
import { useMemo } from "react";
import {
Account,
Address,
Chain,
Hex,
TransactionReceipt,
type Account,
type Address,
type Chain,
type Hex,
type TransactionReceipt,
createWalletClient,
stringToHex,
zeroHash,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Attestation } from "@geist/graphql/eas/graphql";
import { QueryClient, UseQueryResult, useQuery } from "@tanstack/react-query";
import { type Attestation } from "@geist/graphql/eas/graphql";
import { type UseQueryResult, useQuery } from "@tanstack/react-query";
import { gql, rawRequest } from "graphql-request";
import { getEasscanEndpoint } from "#lib/eas/easscan";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { useGetAttestations } from "./use-get-attestations";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { renderHook, waitFor } from "@testing-library/react";
import React from "react";
import { Address } from "viem";
import type { Address } from "viem";

/**
* @vitest-environment jsdom
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/hooks/eas/use-get-attestations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { gql } from "@geist/graphql";
import type { Attestation } from "@geist/graphql/eas/graphql";
import { UseQueryResult, useQuery } from "@tanstack/react-query";
import { rawRequest, request } from "graphql-request";
import { Address, Hex } from "viem";
import { type Address, Hex } from "viem";
import { getEasscanEndpoint } from "#lib/eas/easscan";

const allAttestationsByQuery = gql(`
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/hooks/ens/efp.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Address } from "viem";
import type { Address } from "viem";

export type AddressOrEns = Address | string;

Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/hooks/ens/use-efp-api.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useQuery } from "@tanstack/react-query";
import { Address } from "viem";
import type { Address } from "viem";
import {
AddressOrEns,
EfpApiOptions,
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/hooks/signature/use-sign.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { useAccount, useConfig, useSignMessage } from "wagmi";
import { atom, useAtom } from "jotai";
import { addr } from "micro-eth-signer";

import { Hex, SignType } from "@geist/domain/signature/sign";
import { type Hex, SignType } from "@geist/domain/signature/sign";
import { TYPED_DATA } from "@geist/domain/signature/type-data";
import { useMemo } from "react";
import type { Address } from "viem";
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/lib/blockscout/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {
TokenTransfer,
TransactionMeta,
} from "@geist/domain/transaction/transaction";
import { Address, parseUnits } from "viem";
import { type Address, parseUnits } from "viem";
import * as chains from "viem/chains";

const chainIdToApiRoot: any = {
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/lib/blockscout/chain.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// explorer url in chainInfo.ts are pulled from https://github.com/blockscout/chainscout/blob/main/data/chains.json
// https://www.blockscout.com/chains-and-projects

import { Chain } from "viem";
import type { Chain } from "viem";
import { BLOCKSCOUT_CHAINS_BY_ID } from "./chainInfo";

// TODO ensure treeshaking
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/lib/eas/abi.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// We should find a space efficient, composable way to organize abi by contract versions & action
// For now, use sepolia as canonical one

import { Hex } from "viem";
import type { Hex } from "viem";

// TODO fix multi-chain later
export const EAS_CONTRACT_ADDRESS =
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/lib/eas/easscan.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Address, Chain } from "viem";
import type { Address } from "viem";
import { EAS_CONFIG_BY_CHAIN_ID } from "./config";

export const getEasscanEndpoint = (chainId: number) => {
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/lib/eas/schema-encoder.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { AbiCoder } from "ethers";
import { Hex, encodeAbiParameters } from "viem";
import { type Hex, encodeAbiParameters } from "viem";
import { beforeEach, describe, expect, test } from "vitest";
import { ZERO_ADDRESS } from "#lib/constants";
import { SchemaEncoder as SchemaEncoderEasSdk } from "#lib/eas/sdk/offchain/schema-encoder";
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/lib/eas/sdk/offchain/offchain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import type {
SignedOffchainAttestation,
} from "@ethereum-attestation-service/eas-sdk";
import { ZERO_ADDRESS } from "@geist/ui-react/lib/constants";
import { Address, verifyMessage, verifyTypedData } from "viem";
import { type Address, verifyMessage, verifyTypedData } from "viem";
import { getOffchainUID } from "#lib/eas/sdk/offchain/offchain-utils";
import { isDeepEqual } from "#lib/shadcn/utils";
import {
Expand Down
4 changes: 2 additions & 2 deletions packages/ui-react/src/lib/eas/typed-data.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import {
} from "@ethereum-attestation-service/eas-sdk";
import { AbiCoder, keccak256 as keccak256Ethers, toUtf8Bytes } from "ethers";
import {
Address,
Hex,
type Address,
type Hex,
encodeAbiParameters,
encodePacked,
keccak256,
Expand Down
2 changes: 1 addition & 1 deletion packages/ui-react/src/lib/eas/viem/offchain.int.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import config from "@geist/domain/config";
import { BY_USER } from "@geist/domain/user.fixture";
import { Signature, Signer, encodeBytes32String, ethers } from "ethers";
import { http, Address, createWalletClient, custom, zeroHash } from "viem";
import { Hex } from "viem";
import type { Hex } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { optimismSepolia, sepolia } from "viem/chains";
import { beforeEach, describe, expect, test } from "vitest";
Expand Down
Loading
Loading