Skip to content

Commit d01b11f

Browse files
authored
chore(gateway-contracts): add getRequiredAddressEnvVar util for tasks (#1278)
1 parent 786bbb5 commit d01b11f

File tree

5 files changed

+16
-22
lines changed

5 files changed

+16
-22
lines changed

gateway-contracts/tasks/deployment/contracts.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Wallet } from "ethers";
22
import { task, types } from "hardhat/config";
33
import { HardhatRuntimeEnvironment } from "hardhat/types";
44

5-
import { getRequiredEnvVar, loadGatewayAddresses, pascalCaseToAddressEnvVar } from "../utils";
5+
import { getRequiredAddressEnvVar, getRequiredEnvVar, loadGatewayAddresses } from "../utils";
66
import { setPaymentBridgingContractAddresses } from "./paymentBridging/setAddresses";
77
import { GATEWAY_CONFIG_EMPTY_PROXY_NAME, REGULAR_EMPTY_PROXY_NAME } from "./utils";
88

@@ -28,11 +28,8 @@ async function deployContractImplementation(
2828
loadGatewayAddresses();
2929
}
3030

31-
// Determine env variable name for the proxy contract address
32-
const addressEnvVarName = pascalCaseToAddressEnvVar(name);
33-
3431
// Get the proxy address
35-
const proxyAddress = getRequiredEnvVar(addressEnvVarName);
32+
const proxyAddress = getRequiredAddressEnvVar(name);
3633

3734
// Force import
3835
const proxy = await upgrades.forceImport(proxyAddress, proxyImplementation);

gateway-contracts/tasks/deployment/paymentBridging/setAddresses.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { task, types } from "hardhat/config";
22

3-
import { getRequiredEnvVar, loadAddressEnvVarsFromFile, pascalCaseToAddressEnvVar } from "../../utils";
3+
import { getRequiredAddressEnvVar, loadAddressEnvVarsFromFile } from "../../utils";
44
import { appendAddressToSolidityFile, createSolidityAddressesFile } from "../utils";
55
import { MOCKED_PAYMENT_BRIDGING_ADDRESSES_ENV_FILE_NAME } from "./mocked";
66

77
// Define the file names for registering the payment bridging contract addresses
88
const PAYMENT_BRIDGING_ADDRESSES_SOLIDITY_FILE_NAME = "PaymentBridgingAddresses.sol";
99

1010
function setPaymentBridgingContractAddress(name: string) {
11-
const address = getRequiredEnvVar(pascalCaseToAddressEnvVar(name));
11+
const address = getRequiredAddressEnvVar(name);
1212

1313
console.log(`Setting ${name} address`);
1414
appendAddressToSolidityFile(name, address, PAYMENT_BRIDGING_ADDRESSES_SOLIDITY_FILE_NAME);

gateway-contracts/tasks/ownership.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { Wallet } from "ethers";
22
import { task, types } from "hardhat/config";
33

4-
import { getRequiredEnvVar } from "./utils/loadVariables";
5-
import { pascalCaseToSnakeCase } from "./utils/stringOps";
4+
import { getRequiredAddressEnvVar, getRequiredEnvVar } from "./utils/loadVariables";
65

76
task(
87
"task:transferGatewayOwnership",
@@ -14,9 +13,7 @@ task(
1413
const deployer = new Wallet(getRequiredEnvVar("DEPLOYER_PRIVATE_KEY")).connect(ethers.provider);
1514

1615
// Get the GatewayConfig contract: its owner is the owner of all gateway contracts
17-
const gatewayConfigSnakeCase = pascalCaseToSnakeCase("GatewayConfig");
18-
const gatewayConfigAddressEnvVarName = `${gatewayConfigSnakeCase.toUpperCase()}_ADDRESS`;
19-
const gatewayConfigContractAddress = getRequiredEnvVar(gatewayConfigAddressEnvVarName);
16+
const gatewayConfigContractAddress = getRequiredAddressEnvVar("GatewayConfig");
2017
const gatewayConfigContract = await ethers.getContractAt("GatewayConfig", gatewayConfigContractAddress);
2118

2219
if ((await gatewayConfigContract.owner()) !== deployer.address) {
@@ -44,9 +41,7 @@ task(
4441
const newOwner = new Wallet(getRequiredEnvVar("NEW_OWNER_PRIVATE_KEY")).connect(ethers.provider);
4542

4643
// Get the GatewayConfig contract: its owner is the owner of all gateway contracts
47-
const gatewayConfigSnakeCase = pascalCaseToSnakeCase("GatewayConfig");
48-
const gatewayConfigAddressEnvVarName = `${gatewayConfigSnakeCase.toUpperCase()}_ADDRESS`;
49-
const gatewayConfigContractAddress = getRequiredEnvVar(gatewayConfigAddressEnvVarName);
44+
const gatewayConfigContractAddress = getRequiredAddressEnvVar("GatewayConfig");
5045
const gatewayConfigContract = await ethers.getContractAt("GatewayConfig", gatewayConfigContractAddress);
5146

5247
if ((await gatewayConfigContract.pendingOwner()) !== newOwner.address) {

gateway-contracts/tasks/pauseContracts.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ import { Wallet } from "ethers";
22
import { task, types } from "hardhat/config";
33
import { HardhatEthersHelpers } from "hardhat/types";
44

5-
import { getRequiredEnvVar, loadGatewayAddresses } from "./utils";
6-
import { pascalCaseToSnakeCase } from "./utils/stringOps";
5+
import { getRequiredAddressEnvVar, getRequiredEnvVar, loadGatewayAddresses } from "./utils";
76

87
// Helper function to get a Gateway contract and its proxy address
98
async function getGatewayContract(
@@ -21,12 +20,8 @@ async function getGatewayContract(
2120
loadGatewayAddresses();
2221
}
2322

24-
// Determine env variable name for the proxy contract address
25-
const nameSnakeCase = pascalCaseToSnakeCase(name);
26-
const addressEnvVarName = `${nameSnakeCase.toUpperCase()}_ADDRESS`;
27-
2823
// Get the proxy address
29-
const proxyAddress = getRequiredEnvVar(addressEnvVarName);
24+
const proxyAddress = getRequiredAddressEnvVar(name);
3025

3126
const contract = await ethers.getContractAt(name, proxyAddress, account);
3227

gateway-contracts/tasks/utils/loadVariables.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ export function getRequiredEnvVar(name: string): string {
1414
return process.env[name]!;
1515
}
1616

17+
// Get the required address from the environment variable, throw an error if it's not set
18+
// We only check if the variable is set, not if it's empty
19+
export function getRequiredAddressEnvVar(name: string): string {
20+
const addressEnvVarName = pascalCaseToAddressEnvVar(name);
21+
return getRequiredEnvVar(addressEnvVarName);
22+
}
23+
1724
// Load the addresses as environment variables from the env file
1825
export function loadAddressEnvVarsFromFile(fileName: string) {
1926
const envFilePath = path.join(ADDRESSES_DIR, fileName);

0 commit comments

Comments
 (0)