Skip to content

Commit ba079d3

Browse files
committed
feat(anvil, e2e, local-env): support automated local environment deployments
1 parent ef310a3 commit ba079d3

File tree

6 files changed

+62
-3
lines changed

6 files changed

+62
-3
lines changed

packages/hardhat/hardhat.config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ const config: HardhatUserConfig = {
2929
enabled: false,
3030
},
3131
networks: {
32+
anvil: {
33+
url: 'http://localhost:8545',
34+
accounts: ['0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80'],
35+
},
3236
sepolia: {
3337
url: `https://eth-sepolia.g.alchemy.com/v2/${ALCHEMY_API_KEY}`,
3438
accounts: [EVM_PRIVATE_KEY_1],

packages/hardhat/ignition/modules/Deploy_GenericERC20.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const DeployGenericERC20Module = buildModule("DeployGenericERC20Module", m => {
44
const _name = m.getParameter("_name", "My New Token");
55
const _symbol = m.getParameter("_symbol", "ABC");
66
const _decimals = m.getParameter("_decimals", 18);
7-
const supply = m.getParameter("supply", 1_000_000_000n);
7+
const supply = m.getParameter("supply", 1000000000000000000000000000n);
88

99
const genericERC20 = m.contract("GenericERC20", [_name, _symbol, _decimals, supply]);
1010

packages/hardhat/ignition/modules/InitializeNetworkConfigModule.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,20 @@ export default buildModule("InitializeNetworkConfigModule", m => {
77
const { feeLevelJudgeStub } = m.useModule(FeeLevelJudgeStubModule);
88
const { networkConfig } = m.useModule(NetworkConfigModule);
99

10+
let oracleMock
11+
12+
if (process.env.NETWORK_CONFIG_MOCK_ORACLE === 'true') {
13+
oracleMock = m.contract('OracleMock')
14+
}
15+
1016
m.call(networkConfig, "initialize", [
11-
m.getParameter("NETWORK_CONFIG_FEE_RECIPIENT"),
17+
process.env.NETWORK_CONFIG_FEE_RECIPIENT ?? m.getParameter("NETWORK_CONFIG_FEE_RECIPIENT"),
1218
feeLevelJudgeStub,
1319
m.getParameter("NETWORK_CONFIG_NATIVE_TOKEN_PRICE_ORACLE_ADDRESS"),
1420
m.getParameter("NETWORK_CONFIG_NATIVE_TOKEN_PRICE_ORACLE_HEARTBEAT"),
1521
m.getParameter("NETWORK_CONFIG_ACCESS_AUTHORITY_ADDRESS"),
22+
oracleMock ? oracleMock : m.getParameter("NETWORK_CONFIG_NATIVE_TOKEN_PRICE_ORACLE_ADDRESS"),
23+
oracleMock ? 1000000000000 : m.getParameter("NETWORK_CONFIG_NATIVE_TOKEN_PRICE_ORACLE_HEARTBEAT"),
1624
]);
1725

1826
return { networkConfig };
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";
2+
3+
import DeployGenericERC20Module from "./Deploy_GenericERC20";
4+
import SuiteDistributorFactoryV3Module from "./SuiteDistributorFactoryV3Module";
5+
import SuiteDistributorFactoryV4Module from "./SuiteDistributorFactoryV4Module";
6+
import FlatPriceSaleFactoryV3Module from "./FlatPriceSaleFactoryV3Module";
7+
import FlatPriceSaleFactoryV2Module from "./FlatPriceSaleFactoryV2Module";
8+
import InitializeNetworkConfigModule from "./InitializeNetworkConfigModule";
9+
10+
export default buildModule("LocalDevDeploymentModule", m => {
11+
const GenericERC20 = m.useModule(DeployGenericERC20Module);
12+
const suiteDistributorFactoryV3Module = m.useModule(SuiteDistributorFactoryV3Module);
13+
const suiteDistributorFactoryV4Module = m.useModule(SuiteDistributorFactoryV4Module);
14+
const flatPriceSaleFactoryV3Module = m.useModule(FlatPriceSaleFactoryV3Module);
15+
const flatPriceSaleFactoryV2Module = m.useModule(FlatPriceSaleFactoryV2Module);
16+
const initializeNetworkConfigModule = m.useModule(InitializeNetworkConfigModule);
17+
18+
return {
19+
...GenericERC20,
20+
...suiteDistributorFactoryV3Module,
21+
...suiteDistributorFactoryV4Module,
22+
...flatPriceSaleFactoryV3Module,
23+
...flatPriceSaleFactoryV2Module,
24+
...initializeNetworkConfigModule,
25+
};
26+
});

packages/hardhat/ignition/modules/NetworkConfigModule.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";
22

33
const networkConfigProxyModule = buildModule("NetworkConfigProxyModule", m => {
4-
const networkConfigProxyAdminOwner = m.getParameter("NETWORK_CONFIG_PROXY_ADMIN");
4+
const networkConfigProxyAdminOwner = process.env.NETWORK_CONFIG_PROXY_ADMIN ?? m.getParameter("NETWORK_CONFIG_PROXY_ADMIN");
55

66
// uninitialized implementation
77
const networkConfig = m.contract("NetworkConfig");
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";
2+
3+
export default buildModule("SuiteDistributorFactoryV3Module", m => {
4+
const continuousVestingMerkleDistributor_v_3_0 = m.contract("ContinuousVestingMerkleDistributor", []);
5+
const trancheVestingMerkleDistributor_v_3_0 = m.contract("TrancheVestingMerkleDistributor", []);
6+
7+
const continuousVestingMerkleDistributorFactory_v_3_0 = m.contract(
8+
"ContinuousVestingMerkleDistributorFactory",
9+
[continuousVestingMerkleDistributor_v_3_0],
10+
);
11+
const trancheVestingMerkleDistributorFactory_v_3_0 = m.contract("TrancheVestingMerkleDistributorFactory", [
12+
trancheVestingMerkleDistributor_v_3_0,
13+
]);
14+
15+
return {
16+
continuousVestingMerkleDistributor_v_3_0,
17+
trancheVestingMerkleDistributor_v_3_0,
18+
continuousVestingMerkleDistributorFactory_v_3_0,
19+
trancheVestingMerkleDistributorFactory_v_3_0,
20+
};
21+
});

0 commit comments

Comments
 (0)