Revert unwanted breaking change in the Clones library (#3456)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
This commit is contained in:
12
test/helpers/create2.js
Normal file
12
test/helpers/create2.js
Normal file
@ -0,0 +1,12 @@
|
||||
function computeCreate2Address (saltHex, bytecode, deployer) {
|
||||
return web3.utils.toChecksumAddress(`0x${web3.utils.sha3(`0x${[
|
||||
'ff',
|
||||
deployer,
|
||||
saltHex,
|
||||
web3.utils.soliditySha3(bytecode),
|
||||
].map(x => x.replace(/0x/, '')).join('')}`).slice(-40)}`);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
computeCreate2Address,
|
||||
};
|
||||
@ -1,4 +1,6 @@
|
||||
const { expectEvent, expectRevert } = require('@openzeppelin/test-helpers');
|
||||
const { computeCreate2Address } = require('../helpers/create2');
|
||||
const { expect } = require('chai');
|
||||
|
||||
const shouldBehaveLikeClone = require('./Clones.behaviour');
|
||||
|
||||
@ -44,6 +46,19 @@ contract('Clones', function (accounts) {
|
||||
const salt = web3.utils.randomHex(32);
|
||||
const factory = await ClonesMock.new();
|
||||
const predicted = await factory.predictDeterministicAddress(implementation, salt);
|
||||
|
||||
const creationCode = [
|
||||
'0x3d602d80600a3d3981f3363d3d373d3d3d363d73',
|
||||
implementation.replace(/0x/, '').toLowerCase(),
|
||||
'5af43d82803e903d91602b57fd5bf3',
|
||||
].join('');
|
||||
|
||||
expect(computeCreate2Address(
|
||||
salt,
|
||||
creationCode,
|
||||
factory.address,
|
||||
)).to.be.equal(predicted);
|
||||
|
||||
expectEvent(
|
||||
await factory.cloneDeterministic(implementation, salt, '0x'),
|
||||
'NewInstance',
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
const { balance, BN, ether, expectRevert, send } = require('@openzeppelin/test-helpers');
|
||||
|
||||
const { computeCreate2Address } = require('../helpers/create2');
|
||||
const { expect } = require('chai');
|
||||
|
||||
const Create2Impl = artifacts.require('Create2Impl');
|
||||
@ -90,12 +90,3 @@ contract('Create2', function (accounts) {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function computeCreate2Address (saltHex, bytecode, deployer) {
|
||||
return web3.utils.toChecksumAddress(`0x${web3.utils.sha3(`0x${[
|
||||
'ff',
|
||||
deployer,
|
||||
saltHex,
|
||||
web3.utils.soliditySha3(bytecode),
|
||||
].map(x => x.replace(/0x/, '')).join('')}`).slice(-40)}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user