Skip to content

Commit 6fdb9c2

Browse files
committed
quick fix
1 parent 6b614ea commit 6fdb9c2

File tree

5 files changed

+31
-3
lines changed

5 files changed

+31
-3
lines changed

contracts/access/AMultiOwnable.sol

+9
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@ abstract contract AMultiOwnable is IMultiOwnable, Initializable {
4343
_addOwners(msg.sender.asSingletonArray());
4444
}
4545

46+
/**
47+
* @dev Initializes the contract setting the array of initial owners.
48+
*/
49+
function __AMultiOwnable_init(address[] memory initialOwners_) internal onlyInitializing {
50+
if (initialOwners_.length == 0) revert InvalidOwner();
51+
52+
_addOwners(initialOwners_);
53+
}
54+
4655
/**
4756
* @notice The function to add equally rightful owners to the contract
4857
* @param newOwners_ the owners to be added

contracts/mock/access/MultiOwnableMock.sol

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ contract MultiOwnableMock is AMultiOwnable {
99
__AMultiOwnable_init();
1010
}
1111

12+
function __MultiOwnableMockMulti_init(address[] memory initialOwners_) external initializer {
13+
__AMultiOwnable_init(initialOwners_);
14+
}
15+
1216
function mockInit() external {
1317
__AMultiOwnable_init();
1418
}

contracts/mock/oracles/uniswap-v2/UniswapV2OracleMock.sol

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ contract UniswapV2OracleMock is AUniswapV2Oracle {
1313
address uniswapV2Factory_,
1414
uint256 timeWindow_
1515
) external initializer {
16-
__OracleV2_init(uniswapV2Factory_, timeWindow_);
16+
__AUniswapV2Oracle_init(uniswapV2Factory_, timeWindow_);
1717
}
1818

1919
function mockInit(address uniswapV2Factory_, uint256 timeWindow_) external {
20-
__OracleV2_init(uniswapV2Factory_, timeWindow_);
20+
__AUniswapV2Oracle_init(uniswapV2Factory_, timeWindow_);
2121
}
2222

2323
function addPaths(address[][] calldata paths_) external {

contracts/oracles/AUniswapV2Oracle.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ abstract contract AUniswapV2Oracle is Initializable {
5454
* @param uniswapV2Factory_ the Uniswap V2 factory
5555
* @param timeWindow_ the time between oracle observations
5656
*/
57-
function __OracleV2_init(
57+
function __AUniswapV2Oracle_init(
5858
address uniswapV2Factory_,
5959
uint256 timeWindow_
6060
) internal onlyInitializing {

test/access/MultiOwnable.test.ts

+15
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,26 @@ describe("MultiOwnable", () => {
3030
afterEach(reverter.revert);
3131

3232
describe("access", () => {
33+
it("should initialize", async () => {
34+
const multiOwnableMock = await ethers.deployContract("MultiOwnableMock");
35+
36+
await expect(multiOwnableMock.__MultiOwnableMockMulti_init([]))
37+
.to.be.revertedWithCustomError(multiOwnable, "InvalidOwner")
38+
.withArgs();
39+
40+
await multiOwnableMock.__MultiOwnableMockMulti_init([FIRST.address]);
41+
42+
expect(await multiOwnableMock.isOwner(FIRST.address)).to.be.true;
43+
});
44+
3345
it("should not initialize twice", async () => {
3446
await expect(multiOwnable.mockInit()).to.be.revertedWithCustomError(multiOwnable, "NotInitializing").withArgs();
3547
await expect(multiOwnable.__MultiOwnableMock_init())
3648
.to.be.revertedWithCustomError(multiOwnable, "InvalidInitialization")
3749
.withArgs();
50+
await expect(multiOwnable.__MultiOwnableMockMulti_init([FIRST.address]))
51+
.to.be.revertedWithCustomError(multiOwnable, "InvalidInitialization")
52+
.withArgs();
3853
});
3954

4055
it("only owner should call these functions", async () => {

0 commit comments

Comments
 (0)