From e7bf32b6c3d2820b0e3defe305adefab177fc3b4 Mon Sep 17 00:00:00 2001 From: Arthur Abeilice Date: Mon, 4 May 2026 21:47:35 -0300 Subject: [PATCH] chore(codegen): restore minimal wagmi.config.ts (hardhat plugin) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverts wagmi.config.ts to the pre-existing simpler shape (hardhat plugin auto-discovers artifacts) and drops our hand-rolled readFileSync bootstrap. The plugin emits ABIs for every compiled contract; unused ones are tree-shaken out of the production bundle, and the file itself is gitignored so the extra bytes never hit the repo. The plugin runs `npx hardhat compile` internally, which loads hardhat.config.ts at import time and throws when ALCHEMY_API_KEY is missing — env vars from our wrapper script don't propagate into the plugin's subprocess. Fix: prewagmi:gen now bootstraps a placeholder .env inside the submodule (gitignored there via *.env), instead of running our own `hardhat compile` with inline env vars. - wagmi.config.ts: hardhat({ project: 'p2pix-smart-contracts' }), no explicit contracts/loadAbi - package.json: contracts:compile -> contracts:setup (bun install + create .env if absent); the wagmi hardhat plugin handles the actual compile --- package.json | 4 ++-- wagmi.config.ts | 30 ++++++------------------------ 2 files changed, 8 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index 6d980ea..977a154 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "lint:fix": "eslint . --fix", "format": "prettier --write \"src/**/*.{ts,vue,json}\"", "format:check": "prettier --check \"src/**/*.{ts,vue,json}\"", - "contracts:compile": "pushd p2pix-smart-contracts && bun install && ALCHEMY_API_KEY=placeholder MNEMONIC='test test test test test test test test test test test junk' bunx hardhat compile && popd", - "prewagmi:gen": "bun run contracts:compile", + "contracts:setup": "pushd p2pix-smart-contracts && bun install && ([ -f .env ] || echo 'ALCHEMY_API_KEY=placeholder' > .env) && popd", + "prewagmi:gen": "bun run contracts:setup", "wagmi:gen": "bun ./node_modules/@wagmi/cli/dist/esm/cli.js generate" }, "dependencies": { diff --git a/wagmi.config.ts b/wagmi.config.ts index 157357e..bf1f610 100644 --- a/wagmi.config.ts +++ b/wagmi.config.ts @@ -1,30 +1,12 @@ import { defineConfig } from '@wagmi/cli'; -import { readFileSync } from 'node:fs'; -import { resolve } from 'node:path'; - -const artifactsRoot = resolve( - __dirname, - 'p2pix-smart-contracts/artifacts/contracts', -); - -const loadAbi = (relPath: string) => { - const json = JSON.parse( - readFileSync(resolve(artifactsRoot, relPath), 'utf8'), - ); - return json.abi as readonly unknown[]; -}; +import { hardhat } from '@wagmi/cli/plugins'; export default defineConfig({ out: 'src/blockchain/abi.ts', - contracts: [ - { name: 'P2Pix', abi: loadAbi('p2pix.sol/P2PIX.json') as never }, - { - name: 'Reputation', - abi: loadAbi('Reputation.sol/Reputation.json') as never, - }, - { - name: 'MockToken', - abi: loadAbi('lib/mock/mockToken.sol/MockToken.json') as never, - }, + contracts: [], + plugins: [ + hardhat({ + project: 'p2pix-smart-contracts', + }), ], });