From ba0882077cc27c635a479f9cf321a512103205d1 Mon Sep 17 00:00:00 2001 From: Arnaud Date: Fri, 23 May 2025 08:57:20 +0200 Subject: [PATCH] Fix token deployment with contractAt --- Readme.md | 4 ++++ ignition/modules/marketplace.js | 14 ++++++-------- ignition/modules/token.js | 12 +++++++++--- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Readme.md b/Readme.md index 7dc4bfb..afcdce9 100644 --- a/Readme.md +++ b/Readme.md @@ -39,6 +39,10 @@ Or you can you `npx` directly: npx hardhat ignition deploy ignition/modules/marketplace.js --network localhost ``` +To reuse a previously deployed `Token` contract, define the environment variable `TOKEN_ADDRESS`. +The deployment script will use `contractAt` from Hardhat Ignition to retrieve the existing contract +instead of deploying a new one. + Running the prover ------------------ diff --git a/ignition/modules/marketplace.js b/ignition/modules/marketplace.js index 4f76f95..8cf9ac0 100644 --- a/ignition/modules/marketplace.js +++ b/ignition/modules/marketplace.js @@ -18,15 +18,13 @@ module.exports = buildModule("Marketplace", (m) => { const { verifier } = m.useModule(VerifierModule) const configuration = m.getParameter("configuration", getDefaultConfig()) - let marketplace - - if (process.env.TOKEN_ADDRESS) { - marketplace = m.contractAt("TestToken", process.env.TOKEN_ADDRESS, {}) - } else { - marketplace = m.contract("Marketplace", [configuration, token, verifier], { + const marketplace = m.contract( + "Marketplace", + [configuration, token, verifier], + { from: deployer, - }) - } + }, + ) let testMarketplace const config = hre.network.config diff --git a/ignition/modules/token.js b/ignition/modules/token.js index 375a4a0..02bb7c8 100644 --- a/ignition/modules/token.js +++ b/ignition/modules/token.js @@ -6,9 +6,15 @@ const MINTED_TOKENS = 1_000_000_000_000_000n module.exports = buildModule("Token", (m) => { const deployer = m.getAccount(0) - const token = m.contract("TestToken", [], { - from: deployer, - }) + let token + + if (process.env.TOKEN_ADDRESS) { + token = m.contractAt("TestToken", process.env.TOKEN_ADDRESS, {}) + } else { + token = m.contract("TestToken", [], { + from: deployer, + }) + } const config = hre.network.config