Skip to content

Commit c83fed7

Browse files
gfournierProzguesmiLe-Caignec
authored
feat: replace erc1538 naming to diamond proxy naming - part 1 (#229)
* refactor: rename ERC1538Proxy to DiamondProxy across the codebase * Apply suggestions from code review Co-authored-by: Zied Guesmi <[email protected]> * fix: Update scripts/upgrades/upgrade-helper.ts Co-authored-by: Robin Le Caignec <[email protected]> --------- Co-authored-by: Zied Guesmi <[email protected]> Co-authored-by: Robin Le Caignec <[email protected]>
1 parent 287cc9c commit c83fed7

File tree

12 files changed

+58
-56
lines changed

12 files changed

+58
-56
lines changed

.github/workflows/deploy-smart-contracts.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ jobs:
8989
echo "Deploying to: ${{ inputs.network }} with ${{ inputs.environment }} environment"
9090
npm run deploy -- --network ${{ inputs.network }}
9191
92-
- name: Update config.json with ERC1538Proxy address
92+
- name: Update config.json with Diamond proxy address
9393
if: inputs.network != 'hardhat'
9494
run: npx hardhat run scripts/tools/update-config.ts --network ${{ inputs.network }}
9595

config/config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@
175175
"v5": {
176176
"factory": "0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed",
177177
"factoryType": "createx",
178-
"ERC1538Proxy": "0x14B465079537655E1662F012e99EBa3863c8B9E0",
178+
"DiamondProxy": "0x14B465079537655E1662F012e99EBa3863c8B9E0",
179179
"salt": "0x0000000000000000000000000000000000000000000000000000000000000000"
180180
}
181181
},

deploy/0_deploy.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,12 @@ export default async function deploy() {
7070
.catch(() => {
7171
throw new Error('Failed to prepare transferOwnership data');
7272
});
73-
const erc1538ProxyAddress = await deployDiamondProxyWithDefaultFacets(
73+
const diamondProxyAddress = await deployDiamondProxyWithDefaultFacets(
7474
owner,
7575
// transferOwnershipCall, //TODO
7676
);
77-
const erc1538 = DiamondCutFacet__factory.connect(erc1538ProxyAddress, owner);
78-
console.log(`IexecInstance found at address: ${await erc1538.getAddress()}`);
77+
const diamond = DiamondCutFacet__factory.connect(diamondProxyAddress, owner);
78+
console.log(`IexecInstance found at address: ${await diamond.getAddress()}`);
7979
// Deploy library & modules
8080
const iexecLibOrdersAddress = await factoryDeployer.deployContract(
8181
new IexecLibOrders_v5__factory(),
@@ -103,21 +103,21 @@ export default async function deploy() {
103103
];
104104
for (const module of modules) {
105105
const address = await factoryDeployer.deployContract(module);
106-
await linkContractToProxy(erc1538, address, module);
106+
await linkContractToProxy(diamond, address, module);
107107
}
108-
// Verify linking on ERC1538Proxy
109-
const erc1538QueryInstance: DiamondLoupeFacet = DiamondLoupeFacet__factory.connect(
110-
erc1538ProxyAddress,
108+
// Verify linking on Diamond Proxy
109+
const diamondLoupeFacetInstance: DiamondLoupeFacet = DiamondLoupeFacet__factory.connect(
110+
diamondProxyAddress,
111111
owner,
112112
);
113-
const facets = await erc1538QueryInstance.facets();
113+
const facets = await diamondLoupeFacetInstance.facets();
114114
const functionCount = facets
115115
.map((facet) => facet.functionSelectors.length)
116116
.reduce((acc, curr) => acc + curr, 0);
117-
console.log(`The deployed ERC1538Proxy now supports ${functionCount} functions:`);
117+
console.log(`The deployed Diamond Proxy now supports ${functionCount} functions:`);
118118
// TODO
119119
// for (let i = 0; i < Number(functionCount); i++) {
120-
// const [method, , contract] = await erc1538QueryInstance.functionByIndex(i);
120+
// const [method, , contract] = await diamondLoupeFacetInstance.functionByIndex(i);
121121
// console.log(`[${i}] ${contract} ${method}`);
122122
// }
123123
/**
@@ -174,11 +174,11 @@ export default async function deploy() {
174174
}
175175

176176
// Set main configuration
177-
const iexecAccessorsInstance = IexecAccessors__factory.connect(erc1538ProxyAddress, owner);
177+
const iexecAccessorsInstance = IexecAccessors__factory.connect(diamondProxyAddress, owner);
178178
const iexecInitialized = (await iexecAccessorsInstance.eip712domain_separator()) != ZeroHash;
179179
if (!iexecInitialized) {
180180
// TODO replace this with DiamondInit.init().
181-
await IexecMaintenanceDelegate__factory.connect(erc1538ProxyAddress, owner)
181+
await IexecMaintenanceDelegate__factory.connect(diamondProxyAddress, owner)
182182
.configure(
183183
rlcInstanceAddress,
184184
'Staked RLC',
@@ -195,7 +195,7 @@ export default async function deploy() {
195195
const catCountBefore = await iexecAccessorsInstance.countCategory();
196196
for (let i = Number(catCountBefore); i < config.categories.length; i++) {
197197
const category = config.categories[i];
198-
await IexecCategoryManager__factory.connect(erc1538ProxyAddress, owner)
198+
await IexecCategoryManager__factory.connect(diamondProxyAddress, owner)
199199
.createCategory(
200200
category.name,
201201
JSON.stringify(category.description),

scripts/boost/1_add-modules-to-proxy.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@ import {
2121
const chainId = (await ethers.provider.getNetwork()).chainId;
2222
const deploymentOptions = config.getChainConfig(chainId).v5;
2323
console.log('Link Boost functions to proxy:');
24-
if (!deploymentOptions.ERC1538Proxy) {
25-
throw new Error('ERC1538Proxy is required');
24+
if (!deploymentOptions.DiamondProxy) {
25+
throw new Error('DiamondProxy is required');
2626
}
27-
const erc1538ProxyAddress = deploymentOptions.ERC1538Proxy;
27+
const diamondProxyAddress = deploymentOptions.DiamondProxy;
2828
const iexecPocoBoostDelegateAddress = (await deployments.get('IexecPocoBoostDelegate')).address; // Bellecour: 0x8425229f979AB3b0dDDe00D475D762cA4d6a5eFc
2929
const iexecPocoBoostAccessorsDelegateAddress = (
3030
await deployments.get('IexecPocoBoostAccessorsDelegate')
3131
).address; // Bellecour: 0x56185a2b0dc8b556BBfBAFB702BC971Ed75e868C
3232
const [account] = await ethers.getSigners();
33-
const timelockAddress = await Ownable__factory.connect(erc1538ProxyAddress, account).owner(); // Bellecour: 0x4611B943AA1d656Fc669623b5DA08756A7e288E9
33+
const timelockAddress = await Ownable__factory.connect(diamondProxyAddress, account).owner(); // Bellecour: 0x4611B943AA1d656Fc669623b5DA08756A7e288E9
3434
const iexecPocoBoostProxyUpdate = encodeModuleProxyUpdate(
3535
IexecPocoBoost__factory.createInterface(),
3636
iexecPocoBoostDelegateAddress,
@@ -43,7 +43,7 @@ import {
4343
const operationSalt = '0x0be814a62c44af32241a2c964e5680d1b25c783473c6e7875cbc8071770d7ff0'; // Random
4444
const delay = BigInt(60 * 60 * 24 * 7);
4545
const updateProxyArgs = [
46-
Array(2).fill(erc1538ProxyAddress),
46+
Array(2).fill(diamondProxyAddress),
4747
Array(2).fill(0),
4848
[iexecPocoBoostProxyUpdate, iexecPocoBoostAccessorsProxyUpdate],
4949
ZeroHash,
@@ -68,7 +68,7 @@ import {
6868
await time.increase(delay);
6969
console.log('Time traveling..');
7070
await printBlockTime();
71-
await printFunctions(erc1538ProxyAddress);
71+
await printFunctions(diamondProxyAddress);
7272
console.log('Executing proxy update..');
7373
await timelockInstance
7474
.connect(timelockAdminSigner)
@@ -77,5 +77,5 @@ import {
7777
console.log(tx);
7878
tx.wait();
7979
});
80-
await printFunctions(erc1538ProxyAddress);
80+
await printFunctions(diamondProxyAddress);
8181
})();

scripts/set-callback-gas.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ import { IexecAccessors__factory, IexecMaintenanceDelegate__factory } from '../t
1212
}
1313
console.log(`Setting callback-gas to ${requestedCallbackGas.toLocaleString()} ..`);
1414
const [owner] = await ethers.getSigners();
15-
const erc1538ProxyAddress = (await deployments.get('ERC1538Proxy')).address;
15+
const diamondProxyAddress = (await deployments.get('Diamond')).address;
1616
const viewCallbackGas = async () =>
17-
(await IexecAccessors__factory.connect(erc1538ProxyAddress, owner).callbackgas())
17+
(await IexecAccessors__factory.connect(diamondProxyAddress, owner).callbackgas())
1818
.toNumber()
1919
.toLocaleString();
2020
const callbackGasBefore = await viewCallbackGas();
21-
await IexecMaintenanceDelegate__factory.connect(erc1538ProxyAddress, owner)
21+
await IexecMaintenanceDelegate__factory.connect(diamondProxyAddress, owner)
2222
.setCallbackGas(requestedCallbackGas)
2323
.then((tx) => tx.wait());
2424
console.log(`Changed callback-gas from ${callbackGasBefore} to ${await viewCallbackGas()}`);

scripts/sponsoring/1_add-modules-to-proxy.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,22 @@ export async function addModulesToProxy() {
2929
const chainId = (await ethers.provider.getNetwork()).chainId;
3030
const deploymentOptions = config.getChainConfig(chainId).v5;
3131
console.log('Link functions to proxy:');
32-
if (!deploymentOptions.ERC1538Proxy) {
33-
throw new Error('ERC1538Proxy is required');
32+
if (!deploymentOptions.DiamondProxy) {
33+
throw new Error('DiamondProxy is required');
3434
}
35-
const erc1538ProxyAddress = deploymentOptions.ERC1538Proxy;
35+
const diamondProxyAddress = deploymentOptions.DiamondProxy;
3636
const iexecOrderManagementAddress = (await hre.deployments.get('IexecOrderManagementDelegate'))
3737
.address;
3838
const iexecPoco1DelegateAddress = (await hre.deployments.get('IexecPoco1Delegate')).address;
3939
const iexecPoco2DelegateAddress = (await hre.deployments.get('IexecPoco2Delegate')).address;
4040
const iexecPocoAccessorsDelegateAddress = (
4141
await hre.deployments.get('IexecPocoAccessorsDelegate')
4242
).address;
43-
await printFunctions(erc1538ProxyAddress);
43+
await printFunctions(diamondProxyAddress);
4444

4545
console.log('Functions about to be added to proxy:');
4646
const timelockAddress = await Ownable__factory.connect(
47-
erc1538ProxyAddress,
47+
diamondProxyAddress,
4848
ethers.provider,
4949
).owner();
5050
const iexecOrderManagementProxyUpdate = encodeModuleProxyUpdate(
@@ -73,7 +73,7 @@ export async function addModulesToProxy() {
7373
iexecPocoAccessorsProxyUpdate,
7474
];
7575
const updateProxyArgs = [
76-
Array(updates.length).fill(erc1538ProxyAddress),
76+
Array(updates.length).fill(diamondProxyAddress),
7777
Array(updates.length).fill(0),
7878
updates,
7979
ZeroHash,
@@ -104,7 +104,7 @@ export async function addModulesToProxy() {
104104
console.log('Time traveling..');
105105
await executeUpgrade();
106106

107-
return erc1538ProxyAddress;
107+
return diamondProxyAddress;
108108

109109
async function scheduleUpgrade() {
110110
await timelockInstance
@@ -118,7 +118,7 @@ export async function addModulesToProxy() {
118118

119119
async function executeUpgrade() {
120120
await printBlockTime();
121-
await printFunctions(erc1538ProxyAddress);
121+
await printFunctions(diamondProxyAddress);
122122
console.log('Executing proxy update..');
123123
await timelockInstance
124124
.connect(timelockAdminSigner)
@@ -127,6 +127,6 @@ export async function addModulesToProxy() {
127127
console.log(x);
128128
return x.wait();
129129
});
130-
await printFunctions(erc1538ProxyAddress);
130+
await printFunctions(diamondProxyAddress);
131131
}
132132
}

scripts/tools/update-config.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ async function main(): Promise<void> {
1313
const chainId = network.chainId.toString();
1414

1515
console.log(`Working with network: ${networkName} (Chain ID: ${chainId})`);
16-
const deployment = await deployments.get('ERC1538Proxy');
16+
const deployment = await deployments.get('DiamondProxy');
1717
const contractAddress = deployment.address;
1818

1919
if (!contractAddress || contractAddress === 'null') {
20-
console.error(`Failed to extract a valid ERC1538Proxy address from deployment file`);
20+
console.error(`Failed to extract a valid DiamondProxy address from deployment file`);
2121
process.exit(1);
2222
}
2323

24-
console.log(`Found ERC1538Proxy address: ${contractAddress}`);
24+
console.log(`Found DiamondProxy address: ${contractAddress}`);
2525
const localConfig = config;
2626

2727
// Ensure the chain structure exists
@@ -47,7 +47,7 @@ async function main(): Promise<void> {
4747
localConfig.chains[chainId].v5 = {};
4848
}
4949

50-
const contractKey = 'ERC1538Proxy';
50+
const contractKey = 'DiamondProxy';
5151
const previousValue = localConfig.chains[chainId].v5[contractKey] || 'null';
5252
localConfig.chains[chainId].v5[contractKey] = contractAddress;
5353

scripts/upgrades/upgrade-helper.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,16 @@ async function printBlockTime() {
2929
}
3030
}
3131

32-
async function printFunctions(erc1538ProxyAddress: string) {
33-
const erc1538QueryInstance: ERC1538Query = ERC1538Query__factory.connect(
34-
erc1538ProxyAddress,
32+
// TODO: update this function to use DiamonLoup
33+
async function printFunctions(diamondProxyAddress: string) {
34+
const diamondQueryInstance: ERC1538Query = ERC1538Query__factory.connect(
35+
diamondProxyAddress,
3536
ethers.provider,
3637
);
37-
const functionCount = Number(await erc1538QueryInstance.totalFunctions());
38-
console.log(`ERC1538Proxy supports ${functionCount} functions:`);
38+
const functionCount = Number(await diamondQueryInstance.totalFunctions());
39+
console.log(`DiamondProxy supports ${functionCount} functions:`);
3940
for (let i = 0; i < functionCount; i++) {
40-
const [method, , contract] = await erc1538QueryInstance.functionByIndex(i);
41+
const [method, , contract] = await diamondQueryInstance.functionByIndex(i);
4142
console.log(`[${i}] ${contract} ${method}`);
4243
}
4344
}

test/utils/fixture-helpers.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ export async function fundAccounts(
5050
* Transfers ownership of all contracts
5151
*/
5252
export async function transferAllOwnerships(chainConfig: any) {
53-
if (chainConfig.v5.ERC1538Proxy) {
53+
if (chainConfig.v5.DiamondProxy) {
5454
// Transfer proxy ownership from Timelock or current owner to a known EOA.
55-
await transferProxyOwnership(chainConfig.v5.ERC1538Proxy);
55+
await transferProxyOwnership(chainConfig.v5.DiamondProxy);
5656
}
5757
const registries = [
5858
{ name: 'AppRegistry', address: (await deployments.get('AppRegistry')).address },

test/utils/hardhat-fixture-deployer.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ async function deployAll() {
2323
*/
2424
async function setUpLocalForkInNativeMode() {
2525
const chainId = (await ethers.provider.getNetwork()).chainId;
26-
const proxyAddress = config.getChainConfig(chainId).v5.ERC1538Proxy;
26+
const proxyAddress = config.getChainConfig(chainId).v5.DiamondProxy;
2727
if (!proxyAddress) {
28-
throw new Error('ERC1538Proxy is required');
28+
throw new Error('DiamondProxy is required');
2929
}
3030
await fundAccounts(proxyAddress, proxyAddress, true);
3131
await transferAllOwnerships(config.getChainConfig(chainId));
@@ -48,16 +48,16 @@ async function setUpLocalForkInTokenMode() {
4848
}
4949
await transferAllOwnerships(chainConfig);
5050

51-
const proxyAddress = chainConfig.v5.ERC1538Proxy;
51+
const proxyAddress = chainConfig.v5.DiamondProxy;
5252
if (proxyAddress) {
53-
console.log(`Using existing ERC1538Proxy at ${proxyAddress}`);
53+
console.log(`Using existing DiamondProxy at ${proxyAddress}`);
5454
return proxyAddress;
5555
} else {
56-
console.log('No existing ERC1538Proxy found, deploying new contracts');
56+
console.log('No existing DiamondProxy found, deploying new contracts');
5757
// Deploy all contracts
5858
await deploy();
59-
const newProxyAddress = (await deployments.get('ERC1538Proxy')).address;
60-
console.log(`Deployed new ERC1538Proxy at ${newProxyAddress}`);
59+
const newProxyAddress = (await deployments.get('Diamond')).address;
60+
console.log(`Deployed new DiamondProxy at ${newProxyAddress}`);
6161
return newProxyAddress;
6262
}
6363
}

0 commit comments

Comments
 (0)