dsa-connectors/contracts/mapping/1inch.sol
2020-11-21 01:49:48 +11:00

41 lines
1.1 KiB
Solidity

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 {
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;
}
}