diff --git a/packages/protocol/contracts/access/OwnableUpgradeable.sol b/packages/protocol/contracts/access/OwnableUpgradeable.sol index 385d914b..5cb27209 100644 --- a/packages/protocol/contracts/access/OwnableUpgradeable.sol +++ b/packages/protocol/contracts/access/OwnableUpgradeable.sol @@ -32,7 +32,7 @@ contract OwnableUpgradeable is /// @notice The upgradeability variant of the contract constructor. /// @dev Sets the deployer as the initial owner. - function __OwnableUpgradeable__init() public initializer { + function __Ownable_init() internal initializer { owner = msg.sender; emit TransferOwnership(address(0), msg.sender); } diff --git a/packages/protocol/contracts/core/balance-sheet/BalanceSheetV2.sol b/packages/protocol/contracts/core/balance-sheet/BalanceSheetV2.sol index fc69a22d..789c3a2f 100644 --- a/packages/protocol/contracts/core/balance-sheet/BalanceSheetV2.sol +++ b/packages/protocol/contracts/core/balance-sheet/BalanceSheetV2.sol @@ -30,7 +30,7 @@ contract BalanceSheetV2 is /// @param oracle_ The address of the oracle contract. function initialize(IFintroller fintroller_, IChainlinkOperator oracle_) public initializer { // Initialize the owner. - OwnableUpgradeable.__OwnableUpgradeable__init(); + __Ownable_init(); // Set the Fintroller contract. fintroller = fintroller_; diff --git a/packages/protocol/contracts/test/GodModeOwnableUpgradeable.sol b/packages/protocol/contracts/test/GodModeOwnableUpgradeable.sol new file mode 100644 index 00000000..a4844302 --- /dev/null +++ b/packages/protocol/contracts/test/GodModeOwnableUpgradeable.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +pragma solidity >=0.8.4; + +import "../access/OwnableUpgradeable.sol"; + +/// @title GodModeOwnableUpgradeable +/// @author Hifi +/// @dev Strictly for test purposes. Do not use in production. +contract GodModeOwnableUpgradeable is OwnableUpgradeable { + function __godMode_Ownable_init() public { + __Ownable_init(); + } +} diff --git a/packages/protocol/test/shared/deployers.ts b/packages/protocol/test/shared/deployers.ts index 359c1ac7..2840b2f4 100644 --- a/packages/protocol/test/shared/deployers.ts +++ b/packages/protocol/test/shared/deployers.ts @@ -1,5 +1,5 @@ import type { Signer } from "@ethersproject/abstract-signer"; -import { BigNumber } from "@ethersproject/bignumber"; +import type { BigNumber } from "@ethersproject/bignumber"; import { artifacts, ethers, upgrades, waffle } from "hardhat"; import type { Artifact } from "hardhat/types"; @@ -14,14 +14,16 @@ import { WBTC_SYMBOL, } from "@hifi/constants"; import { getHTokenName, getHTokenSymbol, price } from "@hifi/helpers"; -import { GodModeBalanceSheet__factory, OwnableUpgradeable, OwnableUpgradeable__factory } from "../../src/types"; -import { ChainlinkOperator } from "../../src/types/ChainlinkOperator"; -import { Fintroller } from "../../src/types/Fintroller"; -import { GodModeBalanceSheet } from "../../src/types/GodModeBalanceSheet"; -import { GodModeErc20 } from "../../src/types/GodModeErc20"; -import { GodModeHToken } from "../../src/types/GodModeHToken"; -import { HToken } from "../../src/types/HToken"; -import { SimplePriceFeed } from "../../src/types/SimplePriceFeed"; +import type { GodModeBalanceSheet__factory } from "../../src/types/factories/GodModeBalanceSheet__factory"; +import type { GodModeOwnableUpgradeable__factory } from "../../src/types/factories/GodModeOwnableUpgradeable__factory"; +import type { ChainlinkOperator } from "../../src/types/ChainlinkOperator"; +import type { Fintroller } from "../../src/types/Fintroller"; +import type { GodModeBalanceSheet } from "../../src/types/GodModeBalanceSheet"; +import type { GodModeErc20 } from "../../src/types/GodModeErc20"; +import type { GodModeHToken } from "../../src/types/GodModeHToken"; +import type { GodModeOwnableUpgradeable } from "../../src/types/GodModeOwnableUpgradeable"; +import type { HToken } from "../../src/types/HToken"; +import type { SimplePriceFeed } from "../../src/types/SimplePriceFeed"; const { deployContract } = waffle; const overrides = { gasLimit: process.env.CODE_COVERAGE ? GAS_LIMITS.coverage : GAS_LIMITS.hardhat }; @@ -106,9 +108,11 @@ export async function deployGodModeHToken( return hToken; } -export async function deployOwnableUpgradeable(): Promise { - const ownableUpgradeableFactory: OwnableUpgradeable__factory = await ethers.getContractFactory("OwnableUpgradeable"); - const ownableUpgradeable: OwnableUpgradeable = ( +export async function deployOwnableUpgradeable(): Promise { + const ownableUpgradeableFactory: GodModeOwnableUpgradeable__factory = await ethers.getContractFactory( + "GodModeOwnableUpgradeable", + ); + const ownableUpgradeable: GodModeOwnableUpgradeable = ( await upgrades.deployProxy(ownableUpgradeableFactory) ); await ownableUpgradeable.deployed(); diff --git a/packages/protocol/test/shared/fixtures.ts b/packages/protocol/test/shared/fixtures.ts index 3f57deec..c34f8d2e 100644 --- a/packages/protocol/test/shared/fixtures.ts +++ b/packages/protocol/test/shared/fixtures.ts @@ -18,7 +18,7 @@ import type { Fintroller } from "../../src/types/Fintroller"; import type { GodModeBalanceSheet } from "../../src/types/GodModeBalanceSheet"; import type { GodModeErc20 } from "../../src/types/GodModeErc20"; import type { GodModeHToken } from "../../src/types/GodModeHToken"; -import type { OwnableUpgradeable } from "../../src/types/OwnableUpgradeable"; +import type { GodModeOwnableUpgradeable } from "../../src/types/GodModeOwnableUpgradeable"; import type { SimplePriceFeed } from "../../src/types/SimplePriceFeed"; import { deployChainlinkOperator, @@ -190,10 +190,10 @@ export async function unitFixtureHToken(signers: Signer[]): Promise { - const ownableUpgradeable: OwnableUpgradeable = await deployOwnableUpgradeable(); + const ownableUpgradeable: GodModeOwnableUpgradeable = await deployOwnableUpgradeable(); return { ownableUpgradeable }; } diff --git a/packages/protocol/test/shared/types.ts b/packages/protocol/test/shared/types.ts index 448c06bb..cbcd6646 100644 --- a/packages/protocol/test/shared/types.ts +++ b/packages/protocol/test/shared/types.ts @@ -7,7 +7,7 @@ import type { Fintroller } from "../../src/types/Fintroller"; import type { GodModeBalanceSheet } from "../../src/types/GodModeBalanceSheet"; import type { GodModeErc20 } from "../../src/types/GodModeErc20"; import type { GodModeHToken } from "../../src/types/GodModeHToken"; -import type { OwnableUpgradeable } from "../../src/types/OwnableUpgradeable"; +import type { GodModeOwnableUpgradeable } from "../../src/types/GodModeOwnableUpgradeable"; import type { SimplePriceFeed } from "../../src/types/SimplePriceFeed"; declare module "mocha" { @@ -24,7 +24,7 @@ export interface Contracts { fintroller: Fintroller; hTokens: GodModeHToken[]; oracle: ChainlinkOperator; - ownableUpgradeable: OwnableUpgradeable; + ownableUpgradeable: GodModeOwnableUpgradeable; usdc: GodModeErc20; usdcPriceFeed: SimplePriceFeed; wbtc: GodModeErc20; diff --git a/packages/protocol/test/unit/ownable-upgradeable/effects/renounceOwnership.ts b/packages/protocol/test/unit/ownable-upgradeable/effects/renounceOwnership.ts index a12489a8..68b7d095 100644 --- a/packages/protocol/test/unit/ownable-upgradeable/effects/renounceOwnership.ts +++ b/packages/protocol/test/unit/ownable-upgradeable/effects/renounceOwnership.ts @@ -4,7 +4,7 @@ import { expect } from "chai"; export function shouldBehaveLikeRenounceOwnership(): void { beforeEach(async function () { - await this.contracts.ownableUpgradeable.connect(this.signers.admin).__OwnableUpgradeable__init(); + await this.contracts.ownableUpgradeable.connect(this.signers.admin).__godMode_Ownable_init(); }); context("when the caller is not the owner", function () { diff --git a/packages/protocol/test/unit/ownable-upgradeable/effects/transferOwnership.ts b/packages/protocol/test/unit/ownable-upgradeable/effects/transferOwnership.ts index 8a87c3e0..fa471592 100644 --- a/packages/protocol/test/unit/ownable-upgradeable/effects/transferOwnership.ts +++ b/packages/protocol/test/unit/ownable-upgradeable/effects/transferOwnership.ts @@ -5,7 +5,7 @@ import { expect } from "chai"; export function shouldBehaveLikeTransferOwnership(): void { beforeEach(async function () { - await this.contracts.ownableUpgradeable.connect(this.signers.admin).__OwnableUpgradeable__init(); + await this.contracts.ownableUpgradeable.connect(this.signers.admin).__godMode_Ownable_init(); }); context("when the caller is not the owner", function () { diff --git a/packages/protocol/test/unit/ownable-upgradeable/view/owner.ts b/packages/protocol/test/unit/ownable-upgradeable/view/owner.ts index a25ced6e..598dc149 100644 --- a/packages/protocol/test/unit/ownable-upgradeable/view/owner.ts +++ b/packages/protocol/test/unit/ownable-upgradeable/view/owner.ts @@ -11,7 +11,7 @@ export function shouldBehaveLikeOwnerGetter(): void { context("when the contract was initialized", function () { beforeEach(async function () { - await this.contracts.ownableUpgradeable.connect(this.signers.admin).__OwnableUpgradeable__init(); + await this.contracts.ownableUpgradeable.connect(this.signers.admin).__godMode_Ownable_init(); }); it("returns the correct address", async function () {