Primeiro, instale as dependências necessárias:
npm install
Em seguida, configure suas variáveis de ambiente:
cp .env.example .env
Opcionalmente, criptofrafe suas variáveis sensíveis
dotenvx set ACCOUNT_KEY "PUT YOUR PRIVATE KEY HERE" --encrypt
# Alternatively, use the private key from ".env.example"
dotenvx set ACCOUNT_KEY "$(grep '^ACCOUNT_KEY' .env.example | awk -F '=' '{gsub(/"/, "", $2); print $2}')" --encrypt
Utilize o docker compose
para subir o banco de dados em localhost.
docker compose up -d
# ou
docker-compose up -d
Em seguida, utilize o hardhat
para subir um node EVM em localhost.
npm run hardhat -- node
Agora vamos executar alguns scripts para aplicar as configurações inicias da aplicação. O que consiste em criar o primeiro usuario admin, e implantar o contrato de proxy na rede do hardhat.
export FIRST_ADM_USERNAME="admin"
export FIRST_ADM_PASSWORD="Abcd1234#"
dotenvx run -- node scripts/prepare-environment
De forma opcional, execute o script product seeder
para popular o banco de dados e a blockchain com alguns exemplos de produtos.
dotenvx run -- node scripts/product-seeder
Para executar a API no modo de desenvolvimento, use o seguinte comando:
npm run dev:api
Este comando inicia o servidor com o nodemon, que reiniciará automaticamente o servidor sempre que houver alterações nos arquivos do projeto.
Para executar o frontend no modo de desenvolvimento, use o seguinte comando:
npm run dev:front
Compile os contratos e sincronize as ABI (apenas se os contratos forem alterados):
npm run hardhat -- compile
cp ./blockchain/artifacts/Purchase.sol/Purchase.json ./blockchain/abis/Purchase.json
cp ./blockchain/artifacts/PurchaseEventProxy.sol/PurchaseEventProxy.json ./blockchain/abis/PurchaseEventProxy.json
npx @remix-project/remixd -s ./blockchain --remix-ide https://remix.ethereum.org