Skip to content

Commit 2223651

Browse files
authored
chore(protocol-contracts): improve registry deployment related tasks (#1637)
1 parent e3cd9f3 commit 2223651

File tree

8 files changed

+99
-3
lines changed

8 files changed

+99
-3
lines changed

protocol-contracts/confidential-token-wrappers-registry/.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,8 @@ coverage.json
2222
# OS
2323
.DS_Store
2424

25+
# Deployments
26+
deployments/
27+
28+
# OpenZeppelin
29+
.openzeppelin/

protocol-contracts/confidential-token-wrappers-registry/contracts/mocks/ERC165.sol renamed to protocol-contracts/confidential-token-wrappers-registry/contracts/mocks/ERC165Mock.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// SPDX-License-Identifier: BSD-3-Clause-Clear
22
pragma solidity ^0.8.24;
33

4-
import "@openzeppelin/contracts/utils/introspection/ERC165.sol";
4+
import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
55

66
/**
77
* @title ERC165Mock
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// SPDX-License-Identifier: BSD-3-Clause-Clear
2+
pragma solidity ^0.8.20;
3+
4+
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5+
6+
contract ERC20Mock is ERC20 {
7+
constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}
8+
9+
function mint(address to, uint256 amount) external {
10+
_mint(to, amount);
11+
}
12+
}
13+

protocol-contracts/confidential-token-wrappers-registry/contracts/mocks/ERC7984.sol renamed to protocol-contracts/confidential-token-wrappers-registry/contracts/mocks/ERC7984Mock.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// SPDX-License-Identifier: BSD-3-Clause-Clear
22
pragma solidity ^0.8.24;
33

4-
import "@openzeppelin/contracts/utils/introspection/ERC165.sol";
4+
import {ERC165} from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
55
import {IERC7984} from "@openzeppelin/confidential-contracts/interfaces/IERC7984.sol";
66

77
/**

protocol-contracts/confidential-token-wrappers-registry/hardhat.config.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ import 'solidity-coverage';
1414

1515
import './tasks/accounts';
1616
import './tasks/deploy';
17+
import './tasks/verify';
18+
import './tasks/mocks/deployMocks';
19+
import './tasks/mocks/verify';
1720

1821
// Get the environment configuration from .env file
1922
//
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import { task } from 'hardhat/config';
2+
import { HardhatRuntimeEnvironment } from 'hardhat/types';
3+
4+
const ERC20_MOCK_CONTRACT_NAME = 'ERC20Mock';
5+
6+
// Deploy the ERC20Mock contract
7+
async function deployERC20Mock(hre: HardhatRuntimeEnvironment, name: string, symbol: string) {
8+
const { getNamedAccounts, ethers, deployments, network } = hre;
9+
const { save, getArtifact } = deployments;
10+
11+
const { deployer } = await getNamedAccounts();
12+
const deployerSigner = await ethers.getSigner(deployer);
13+
14+
const factory = await ethers.getContractFactory(ERC20_MOCK_CONTRACT_NAME, deployerSigner);
15+
const contract = await factory.deploy(name, symbol);
16+
await contract.waitForDeployment();
17+
18+
const contractAddress = await contract.getAddress();
19+
20+
console.log(
21+
[
22+
`✅ Deployed ERC20Mock:`,
23+
` - Address: ${contractAddress}`,
24+
` - Name: ${name}`,
25+
` - Symbol: ${symbol}`,
26+
` - Deployed by deployer account: ${deployer}`,
27+
` - Network: ${network.name}`,
28+
'',
29+
].join('\n'),
30+
);
31+
32+
const artifact = await getArtifact(ERC20_MOCK_CONTRACT_NAME);
33+
await save(ERC20_MOCK_CONTRACT_NAME, {
34+
address: contractAddress,
35+
abi: artifact.abi,
36+
});
37+
38+
return contractAddress;
39+
}
40+
41+
// Deploy the ERC20Mock contract
42+
// Example usage:
43+
// npx hardhat task:deployERC20Mock --name "Mock Token" --symbol "MTK" --network testnet
44+
task('task:deployERC20Mock')
45+
.addParam('name', 'The name of the ERC20 token')
46+
.addParam('symbol', 'The symbol of the ERC20 token')
47+
.setAction(async function ({ name, symbol }, hre) {
48+
console.log('Deploying ERC20Mock contract...\n');
49+
50+
await deployERC20Mock(hre, name, symbol);
51+
52+
console.log('✅ ERC20Mock contract deployed\n');
53+
});
54+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { task, types } from 'hardhat/config';
2+
3+
// Verify a mock ERC20 contract
4+
// Example usage:
5+
// npx hardhat task:verifyMockERC20 --contract-address 0x1234567890123456789012345678901234567890 --network testnet
6+
task('task:verifyMockERC20')
7+
.addParam('contractAddress', 'The address of the mock ERC20 contract to verify', '', types.string)
8+
.addParam('name', 'The name of the mock ERC20 contract to verify', '', types.string)
9+
.addParam('symbol', 'The symbol of the mock ERC20 contract to verify', '', types.string)
10+
.setAction(async function ({ contractAddress, name, symbol }, hre) {
11+
const { run } = hre;
12+
13+
console.log(`Verifying mock ERC20 contract at ${contractAddress}...\n`);
14+
await run('verify:verify', {
15+
address: contractAddress,
16+
constructorArguments: [name, symbol],
17+
});
18+
console.log(
19+
`Mock ERC20 contract verification complete\n`,
20+
);
21+
});

protocol-contracts/confidential-token-wrappers-registry/tasks/verify.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { task, types } from 'hardhat/config';
33

44
// Verify a confidential wrapper contract
55
// Example usage:
6-
// npx hardhat task:verifyConfidentialTokenWrappersRegistry --proxyAddress 0x1234567890123456789012345678901234567890 --network testnet
6+
// npx hardhat task:verifyConfidentialTokenWrappersRegistry --proxy-address 0x1234567890123456789012345678901234567890 --network testnet
77
task('task:verifyConfidentialTokenWrappersRegistry')
88
.addOptionalParam(
99
'proxyAddress',

0 commit comments

Comments
 (0)