From db60f815baf2d73f4b0d2d2665f3e3575d16d5b9 Mon Sep 17 00:00:00 2001 From: Mubaris NK <mubaris@instadapp.io> Date: Sat, 6 Feb 2021 00:03:49 +0530 Subject: [PATCH] Restructure --- contracts/common/basic.sol | 4 ++-- contracts/common/interfaces.sol | 2 +- contracts/common/math.sol | 2 +- contracts/common/stores.sol | 12 +++++++++--- contracts/connectors/1inch/events.sol | 5 ++--- contracts/connectors/1inch/helpers.sol | 4 ++-- contracts/connectors/1inch/interface.sol | 2 +- contracts/connectors/1inch/main.sol | 17 ++++++++++------- contracts/connectors/COMP/events.sol | 6 ++---- contracts/connectors/COMP/helpers.sol | 4 ++-- contracts/connectors/COMP/interface.sol | 2 +- contracts/connectors/COMP/main.sol | 7 +++++-- hardhat.config.js | 3 +++ 13 files changed, 41 insertions(+), 29 deletions(-) diff --git a/contracts/common/basic.sol b/contracts/common/basic.sol index 29e382b9..a9c097c8 100644 --- a/contracts/common/basic.sol +++ b/contracts/common/basic.sol @@ -1,10 +1,10 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; import { TokenInterface } from "./interfaces.sol"; import { Stores } from "./stores.sol"; import { DSMath } from "./math.sol"; -contract Basic is DSMath, Stores { +abstract contract Basic is DSMath, Stores { function convert18ToDec(uint _dec, uint256 _amt) internal pure returns (uint256 amt) { amt = (_amt / 10 ** (18 - _dec)); diff --git a/contracts/common/interfaces.sol b/contracts/common/interfaces.sol index e1f7daf5..320b2e0e 100644 --- a/contracts/common/interfaces.sol +++ b/contracts/common/interfaces.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; interface TokenInterface { function approve(address, uint256) external; diff --git a/contracts/common/math.sol b/contracts/common/math.sol index 1ff023c5..64e169b4 100644 --- a/contracts/common/math.sol +++ b/contracts/common/math.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; import { SafeMath } from "@openzeppelin/contracts/math/SafeMath.sol"; diff --git a/contracts/common/stores.sol b/contracts/common/stores.sol index e04f0618..d323f8aa 100644 --- a/contracts/common/stores.sol +++ b/contracts/common/stores.sol @@ -1,9 +1,15 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; import { MemoryInterface, EventInterface} from "./interfaces.sol"; -contract Stores { +abstract contract Stores { + + uint256 internal immutable _id; + + constructor(uint256 id) public { + _id = id; + } /** * @dev Return ethereum address @@ -59,7 +65,7 @@ contract Stores { * @dev Connector Details - needs to be changed before deployment */ function connectorID() public view returns(uint model, uint id) { - (model, id) = (0, 0); + (model, id) = (0, _id); } } diff --git a/contracts/connectors/1inch/events.sol b/contracts/connectors/1inch/events.sol index 9261a9f8..2f9dfd74 100644 --- a/contracts/connectors/1inch/events.sol +++ b/contracts/connectors/1inch/events.sol @@ -1,9 +1,8 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; import { OneProtoData, OneProtoMultiData, OneInchData} from "../../common/interfaces.sol"; -import { Stores } from "../../common/stores.sol"; -contract Events is Stores { +contract Events { event LogSell( address indexed buyToken, address indexed sellToken, diff --git a/contracts/connectors/1inch/helpers.sol b/contracts/connectors/1inch/helpers.sol index fc30cf21..dd271830 100644 --- a/contracts/connectors/1inch/helpers.sol +++ b/contracts/connectors/1inch/helpers.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; import { TokenInterface } from "../../common/interfaces.sol"; import { DSMath } from "../../common/math.sol"; @@ -6,7 +6,7 @@ import { Basic } from "../../common/basic.sol"; import { TokenInterface, OneProtoMappingInterface } from "./interface.sol"; -contract Helpers is DSMath, Basic { +abstract contract Helpers is DSMath, Basic { /** * @dev Return 1proto mapping Address diff --git a/contracts/connectors/1inch/interface.sol b/contracts/connectors/1inch/interface.sol index 5e6483dc..1f2674f8 100644 --- a/contracts/connectors/1inch/interface.sol +++ b/contracts/connectors/1inch/interface.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; import { TokenInterface } from "../../common/interfaces.sol"; diff --git a/contracts/connectors/1inch/main.sol b/contracts/connectors/1inch/main.sol index aac4b3db..7b856f3d 100644 --- a/contracts/connectors/1inch/main.sol +++ b/contracts/connectors/1inch/main.sol @@ -1,14 +1,15 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; pragma experimental ABIEncoderV2; // import files from common directory import { TokenInterface , MemoryInterface, EventInterface, OneProtoData, OneProtoMultiData, OneInchData} from "../../common/interfaces.sol"; +import { Stores } from "../../common/stores.sol"; import { OneInchInterace, OneProtoInterface, OneProtoMappingInterface } from "./interface.sol"; import { Helpers } from "./helpers.sol"; import { Events } from "./events.sol"; -contract OneProtoResolver is Helpers, Events { +abstract contract OneProtoResolver is Helpers, Events { /** * @dev 1proto contract swap handler @@ -84,7 +85,7 @@ contract OneProtoResolver is Helpers, Events { } } -contract OneInchResolver is OneProtoResolver { +abstract contract OneInchResolver is OneProtoResolver { /** * @dev 1inch swap uses `.call()`. This function restrict it to call only swap/trade functionality * @param callData - calldata to extract the first 4 bytes for checking function signature @@ -128,7 +129,7 @@ contract OneInchResolver is OneProtoResolver { } -contract OneProtoResolverHelpers is OneInchResolver { +abstract contract OneProtoResolverHelpers is OneInchResolver { /** * @dev Gets the swapping data onchain for swaps and calls swap. @@ -217,7 +218,7 @@ contract OneProtoResolverHelpers is OneInchResolver { } } -contract OneInchResolverHelpers is OneProtoResolverHelpers { +abstract contract OneInchResolverHelpers is OneProtoResolverHelpers { /** * @dev Gets the swapping data from 1inch's API. @@ -246,7 +247,7 @@ contract OneInchResolverHelpers is OneProtoResolverHelpers { } } -contract OneProto is OneInchResolverHelpers { +abstract contract OneProto is OneInchResolverHelpers { /** * @dev Sell ETH/ERC20_Token using 1proto. * @param buyAddr buying token address.(For ETH: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) @@ -345,7 +346,7 @@ contract OneProto is OneInchResolverHelpers { } } -contract OneInch is OneProto { +abstract contract OneInch is OneProto { /** * @dev Sell ETH/ERC20_Token using 1inch. * @param buyAddr buying token address.(For ETH: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) @@ -378,4 +379,6 @@ contract OneInch is OneProto { contract ConnectOne is OneInch { string public name = "1inch-1proto-v1"; + + constructor(uint256 _id) Stores(_id) public {} } diff --git a/contracts/connectors/COMP/events.sol b/contracts/connectors/COMP/events.sol index 759f6ca3..b0aa3256 100644 --- a/contracts/connectors/COMP/events.sol +++ b/contracts/connectors/COMP/events.sol @@ -1,8 +1,6 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; -import { Stores } from "../../common/stores.sol"; - -contract Events is Stores { +contract Events { event LogClaimedComp(uint256 compAmt, uint256 setId); event LogDelegate(address delegatee); } diff --git a/contracts/connectors/COMP/helpers.sol b/contracts/connectors/COMP/helpers.sol index 8fc9cff1..46cbc6e3 100644 --- a/contracts/connectors/COMP/helpers.sol +++ b/contracts/connectors/COMP/helpers.sol @@ -1,10 +1,10 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; import { InstaMapping } from "../../common/interfaces.sol"; import { DSMath } from "../../common/math.sol"; import { Basic } from "../../common/basic.sol"; -contract Helpers is DSMath, Basic { +abstract contract Helpers is DSMath, Basic { /** * @dev Return Compound Comptroller Address */ diff --git a/contracts/connectors/COMP/interface.sol b/contracts/connectors/COMP/interface.sol index 2d31284d..64555b33 100644 --- a/contracts/connectors/COMP/interface.sol +++ b/contracts/connectors/COMP/interface.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; interface ComptrollerInterface { function claimComp(address holder) external; diff --git a/contracts/connectors/COMP/main.sol b/contracts/connectors/COMP/main.sol index 4096ca91..7200c951 100644 --- a/contracts/connectors/COMP/main.sol +++ b/contracts/connectors/COMP/main.sol @@ -1,11 +1,12 @@ -pragma solidity ^0.6.0; +pragma solidity ^0.6.5; import { TokenInterface , MemoryInterface, EventInterface, InstaMapping } from "../../common/interfaces.sol"; +import { Stores } from "../../common/stores.sol"; import { ComptrollerInterface, COMPInterface } from "./interface.sol"; import { Helpers } from "./helpers.sol"; import { Events } from "./events.sol"; -contract CompResolver is Events, Helpers { +abstract contract CompResolver is Events, Helpers { /** * @dev Claim Accrued COMP Token. @@ -101,4 +102,6 @@ contract CompResolver is Events, Helpers { contract ConnectCOMP is CompResolver { string public name = "COMP-v1"; + + constructor(uint256 _id) Stores(_id) public {} } diff --git a/hardhat.config.js b/hardhat.config.js index a336270a..6a6cb9b2 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -15,6 +15,9 @@ module.exports = { }, { version: "0.6.2" + }, + { + version: "0.6.5" } ] },