From 71c053475139a3a913877929527fa218b64e985e Mon Sep 17 00:00:00 2001 From: Nicolas Lecouflet Date: Tue, 25 Feb 2025 16:14:23 +0100 Subject: [PATCH] feat: broadcaster through environment --- bun.lockb | Bin 198320 -> 198457 bytes package.json | 2 +- scripts/utils/Base.s.sol | 18 ++++++++++++------ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/bun.lockb b/bun.lockb index 412161c0efdea0db5e5e0fe5653b7ca16c815aa6..8a4f745c5655870834f2a60875cd7030b95c32b3 100755 GIT binary patch delta 3664 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 Mh1I9D4QlWHA2(Uav;Y7A diff --git a/package.json b/package.json index 715b416..6731f8b 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "url": "https://github.com/AngleProtocol/merkl-contracts/issues" }, "devDependencies": { - "@angleprotocol/sdk": "2.38.4", + "@angleprotocol/sdk": "2.40.17", "@openzeppelin/contracts": "^4.9.0", "@openzeppelin/contracts-upgradeable": "4.9.0", "prettier": "^2.0.0", diff --git a/scripts/utils/Base.s.sol b/scripts/utils/Base.s.sol index 87c3b9d..59706b5 100644 --- a/scripts/utils/Base.s.sol +++ b/scripts/utils/Base.s.sol @@ -23,18 +23,24 @@ abstract contract BaseScript is Script { /// @dev Initializes the transaction broadcaster like this: /// + /// - If $PRIVATE_KEY is defined, use it to set the broadcaster. /// - If $DEPLOYER_ADDRESS is defined, use it. /// - Otherwise, derive the broadcaster address from $MNEMONIC. /// - If $MNEMONIC is not defined, default to a test mnemonic. /// - /// The use case for $DEPLOYER_ADDRESS is to specify the broadcaster key and its address via the command line. + /// The use case for $PRIVATE_KEY or $DEPLOYER_ADDRESS is to specify the broadcaster key via environment variable or the command line respectively. constructor() { - address from = vm.envOr({ name: "DEPLOYER_ADDRESS", defaultValue: address(0) }); - if (from != address(0)) { - broadcaster = from; + uint256 privateKey = vm.envOr({ name: "DEPLOYER_PRIVATE_KEY", defaultValue: uint256(0) }); + if (privateKey != 0) { + broadcaster = vm.addr(privateKey); } else { - mnemonic = vm.envOr({ name: "MNEMONIC", defaultValue: TEST_MNEMONIC }); - (broadcaster, ) = deriveRememberKey({ mnemonic: mnemonic, index: 0 }); + address from = vm.envOr({ name: "DEPLOYER_ADDRESS", defaultValue: address(0) }); + if (from != address(0)) { + broadcaster = from; + } else { + mnemonic = vm.envOr({ name: "MNEMONIC", defaultValue: TEST_MNEMONIC }); + (broadcaster, ) = deriveRememberKey({ mnemonic: mnemonic, index: 0 }); + } } }