From ad235465e2c0563d5d4682aee11a6ebaaa8ac5e8 Mon Sep 17 00:00:00 2001 From: Thrilok Kumar Date: Fri, 14 Aug 2020 02:02:55 +0530 Subject: [PATCH] Added oneInch Mapping contract --- contracts/mapping/1inch.sol | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 contracts/mapping/1inch.sol diff --git a/contracts/mapping/1inch.sol b/contracts/mapping/1inch.sol new file mode 100644 index 0000000..d01284e --- /dev/null +++ b/contracts/mapping/1inch.sol @@ -0,0 +1,40 @@ +pragma solidity ^0.6.0; +pragma experimental ABIEncoderV2; + +interface IndexInterface { + function master() external view returns (address); +} + +interface ConnectorsInterface { + function chief(address) external view returns (bool); +} + +contract Helpers { + + event LogChangeOneProto(address oneProto); + + address public constant connectors = 0xD6A602C01a023B98Ecfb29Df02FBA380d3B21E0c; + address public constant instaIndex = 0x2971AdFa57b20E5a416aE5a708A8655A9c74f723; + address public oneProtoAddress; + + modifier isChief virtual { + require( + ConnectorsInterface(connectors).chief(msg.sender) || + IndexInterface(instaIndex).master() == msg.sender, "not-Chief"); + _; + } + + function changeOneProtoAddress(address _oneProtoAddr) external isChief { + require(_oneProtoAddr != address(0), "oneProtoAddress-is-address(0)"); + require(oneProtoAddress != _oneProtoAddr, "Same-oneProtoAddress"); + + oneProtoAddress = _oneProtoAddr; + emit LogChangeOneProto(_oneProtoAddr); + } +} + +contract InstaOneMapping is Helpers { + constructor () public { + oneProtoAddress = 0x6cb2291A3c3794fcA0F5b6E34a8E6eA7933CA667; + } +}