diff --git a/script/Deploy.s.sol b/script/Deploy.s.sol index 3c6c8ac..4c3257e 100644 --- a/script/Deploy.s.sol +++ b/script/Deploy.s.sol @@ -10,6 +10,7 @@ import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; import { DevOpsTools } from "lib/foundry-devops/src/DevOpsTools.sol"; import { BaseScript } from "./Base.s.sol"; +import "forge-std/console.sol"; contract DeployPriceCalculator is BaseScript { function run() public broadcast returns (address) { @@ -53,8 +54,28 @@ contract DeployProxy is BaseScript { uint32 public constant GRACE_PERIOD = 30 days; function run() public broadcast returns (address) { - address priceCalcAddr = DevOpsTools.get_most_recent_deployment("LinearPriceCalculator", block.chainid); - address wakuRlnV2ImplAddr = DevOpsTools.get_most_recent_deployment("WakuRlnV2", block.chainid); + address priceCalcAddr; + address wakuRlnV2ImplAddr; + + try vm.envAddress("PRICE_CALCULATOR_ADDRESS") returns (address envPriceCalcAddress) { + console.log("Loading price calculator address from environment variable"); + priceCalcAddr = envPriceCalcAddress; + } catch { + console.log("Loading price calculator address from broadcast directory"); + priceCalcAddr = DevOpsTools.get_most_recent_deployment("LinearPriceCalculator", block.chainid); + } + + try vm.envAddress("WAKURLNV2_ADDRESS") returns (address envWakuRlnV2ImplAddr) { + console.log("Loading WakuRlnV2 address from environment variable"); + wakuRlnV2ImplAddr = envWakuRlnV2ImplAddr; + } catch { + console.log("Loading WakuRlnV2 address from broadcast directory"); + wakuRlnV2ImplAddr = DevOpsTools.get_most_recent_deployment("WakuRlnV2", block.chainid); + } + + console.log("Using price calculator address: %s", priceCalcAddr); + console.log("Using WakuRLNV2 address: %s", wakuRlnV2ImplAddr); + return address(deploy(priceCalcAddr, wakuRlnV2ImplAddr)); }