diff --git a/README.md b/README.md index e17dccb8..0d4f9c72 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,8 @@ - **Docker** - **Node** -- **Python** \ No newline at end of file +- **Python** + +## Inicialização + +Para inicializar a aplicação execute o comando `./start.sh` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a007aa13..b432de82 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,14 +1,5 @@ -version: '3.8' +version: "3.8" services: - frontend: - depends_on: - - anvil - build: - context: ./ui - dockerfile: Dockerfile - ports: - - 3000:3000 - anvil: build: context: ./smartcontracts @@ -21,4 +12,17 @@ services: - anvil build: context: ./smartcontracts - dockerfile: Dockerfile.deploy \ No newline at end of file + dockerfile: Dockerfile.deploy + volumes: + - "./frontend/generated:/develop/generated" + + frontend: + depends_on: + - anvil + build: + context: ./frontend + dockerfile: Dockerfile + ports: + - 3000:3000 + volumes: + - "./frontend/generated:/app/generated" diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json index f7b14d46..248b06d4 100644 --- a/frontend/.eslintrc.json +++ b/frontend/.eslintrc.json @@ -2,7 +2,8 @@ "parser": "@typescript-eslint/parser", "extends": ["next/core-web-vitals", "plugin:prettier/recommended", "plugin:@typescript-eslint/recommended"], "rules": { - "@typescript-eslint/no-unused-vars": ["error"], + // "@typescript-eslint/no-unused-vars": ["error"], + "@typescript-eslint/no-unused-vars": ["off"], "@typescript-eslint/no-explicit-any": ["off"], "@typescript-eslint/ban-ts-comment": ["off"], "prettier/prettier": [ diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 00000000..17920b44 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,17 @@ +FROM node:20.11.1 + +WORKDIR /app + +# COPY package*.json pnpm-lock.yaml ./ +COPY package*.json ./ + +RUN npm install -g pnpm ; \ + pnpm install + +COPY . . +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +EXPOSE 3000 + +CMD ["/entrypoint.sh"] \ No newline at end of file diff --git a/frontend/components/example-ui/assets/icontoken/busd.tsx b/frontend/components/example-ui/assets/icontoken/busd.tsx index cdac8218..ec8307a2 100644 --- a/frontend/components/example-ui/assets/icontoken/busd.tsx +++ b/frontend/components/example-ui/assets/icontoken/busd.tsx @@ -1,16 +1,21 @@ - export const IconBusd = ({ className }: { className: string }) => { - return ( - - - - - - - - - - - - ); + return ( + + + + + + + + + + + + ); }; diff --git a/frontend/components/example-ui/assets/icontoken/dai.tsx b/frontend/components/example-ui/assets/icontoken/dai.tsx index 9f146d5b..c699894f 100644 --- a/frontend/components/example-ui/assets/icontoken/dai.tsx +++ b/frontend/components/example-ui/assets/icontoken/dai.tsx @@ -1,16 +1,23 @@ - export const IconDai = ({ className }: { className: string }) => { - return ( - - - - - - - - - - - - ); + return ( + + + + + + + + + + + + ); }; diff --git a/frontend/components/example-ui/assets/icontoken/usdc.tsx b/frontend/components/example-ui/assets/icontoken/usdc.tsx index f875dcbf..0faba4a2 100644 --- a/frontend/components/example-ui/assets/icontoken/usdc.tsx +++ b/frontend/components/example-ui/assets/icontoken/usdc.tsx @@ -1,17 +1,25 @@ - export const IconUsdc = ({ className }: { className: string }) => { - return ( - - - - - - - - - - - - + return ( + + + + + + + + + + + + ); }; diff --git a/frontend/components/example-ui/assets/icontoken/usdt.tsx b/frontend/components/example-ui/assets/icontoken/usdt.tsx index da998617..182dcf2d 100644 --- a/frontend/components/example-ui/assets/icontoken/usdt.tsx +++ b/frontend/components/example-ui/assets/icontoken/usdt.tsx @@ -1,16 +1,23 @@ - export const IconUsdt = ({ className }: { className: string }) => { - return ( - - - - - - - - - - - + return ( + + + + + + + + + + + ); }; diff --git a/frontend/entrypoint.sh b/frontend/entrypoint.sh new file mode 100644 index 00000000..4a373e22 --- /dev/null +++ b/frontend/entrypoint.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +echo "Verificando se o arquivo deployedContracts.ts já foi criado." +while [ ! -f ./generated/deployedContracts.ts ]; do + echo "Aguardando..." + sleep 1 +done +echo "Arquivo existente. Iniciando servidor" + +pnpm run build + +# Inicie o servidor Next.js +pnpm start \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 4992572d..193c37f7 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,7 +5,8 @@ "scripts": { "dev": "next dev", "start": "next dev", - "build": "next build", + "build": "NEXT_PUBLIC_IGNORE_BUILD_ERROR=true next build", + "crazy-build": "tsc --noEmit && next build", "serve": "next start", "lint": "next lint", "format": "prettier --write . '!(node_module|.next|contracts)/**/*'", @@ -14,11 +15,15 @@ "vercel:yolo": "vercel --build-env NEXT_PUBLIC_IGNORE_BUILD_ERROR=true" }, "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/networks": "^5.7.1", + "@ethersproject/providers": "^5.7.2", + "@ethersproject/units": "^5.7.0", "@ethersproject/web": "^5.7.1", "@heroicons/react": "^2.0.11", "@rainbow-me/rainbowkit": "^0.11.0", "@uniswap/sdk": "^3.0.3", + "abitype": "^1.0.2", "daisyui": "^2.31.0", "ethers": "^5.0.0", "next": "^13.1.6", @@ -36,7 +41,7 @@ }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.1.1", - "@types/node": "^17.0.35", + "@types/node": "^20.11.30", "@types/react": "^18.0.9", "@types/react-blockies": "^1.4.1", "@types/react-copy-to-clipboard": "^5.0.4", @@ -49,7 +54,7 @@ "postcss": "^8.4.16", "prettier": "^2.8.4", "tailwindcss": "^3.1.8", - "typescript": "^4.9.5", + "typescript": "^5.4.2", "vercel": "^28.15.1" } } diff --git a/frontend/pages/blockexplorer/address/[address].tsx b/frontend/pages/blockexplorer/address/[address].tsx index 315066ab..f771d65b 100644 --- a/frontend/pages/blockexplorer/address/[address].tsx +++ b/frontend/pages/blockexplorer/address/[address].tsx @@ -4,14 +4,19 @@ import fs from "fs"; import { GetServerSideProps } from "next"; import path from "path"; import { hardhat, localhost } from "wagmi/chains"; -import { AddressCodeTab, AddressLogsTab, AddressStorageTab, PaginationButton, TransactionsTable } from "~~/components/blockexplorer/"; +import { + AddressCodeTab, + AddressLogsTab, + AddressStorageTab, + PaginationButton, + TransactionsTable, +} from "~~/components/blockexplorer/"; import { Address, Balance } from "~~/components/scaffold-eth"; import deployedContracts from "~~/generated/deployedContracts"; import { useFetchBlocks } from "~~/hooks/scaffold-eth"; import { getLocalProvider } from "~~/utils/scaffold-eth"; import { GenericContractsDeclaration } from "~~/utils/scaffold-eth/contract"; - type AddressCodeTabProps = { bytecode: string; assembly: string; @@ -177,4 +182,4 @@ export const getServerSideProps: GetServerSideProps = async context => { const { bytecode, assembly } = await fetchByteCodeAndAssembly(buildInfoDirectory, contractPath); return { props: { address, contractData: { bytecode, assembly } } }; -}; \ No newline at end of file +}; diff --git a/frontend/pages/debug.tsx b/frontend/pages/debug.tsx index eb034e5b..a9bf4bc3 100644 --- a/frontend/pages/debug.tsx +++ b/frontend/pages/debug.tsx @@ -1,11 +1,11 @@ -import type { NextPage } from 'next'; -import { useLocalStorage } from 'usehooks-ts'; -import { MetaHeader } from '~~/components/MetaHeader'; -import { ContractUI } from '~~/components/scaffold-eth'; -import { ContractName } from '~~/utils/scaffold-eth/contract'; -import { getContractNames } from '~~/utils/scaffold-eth/contractNames'; +import type { NextPage } from "next"; +import { useLocalStorage } from "usehooks-ts"; +import { MetaHeader } from "~~/components/MetaHeader"; +import { ContractUI } from "~~/components/scaffold-eth"; +import { ContractName } from "~~/utils/scaffold-eth/contract"; +import { getContractNames } from "~~/utils/scaffold-eth/contractNames"; -const selectedContractStorageKey = 'scaffoldEth2.selectedContract'; +const selectedContractStorageKey = "scaffoldEth2.selectedContract"; const Debug: NextPage = () => { const contractNames = getContractNames(); @@ -18,7 +18,7 @@ const Debug: NextPage = () => { contractNames.map(contractName => (