diff --git a/bun.lockb b/bun.lockb index 412161c..8a4f745 100755 Binary files a/bun.lockb and b/bun.lockb differ 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 }); + } } }