Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
EACAggregatorProxy
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-09-14 */ // File: contracts/Owned.sol pragma solidity ^0.6.0; /** * @title The Owned contract * @notice A contract with helpers for basic contract ownership. */ contract Owned { address payable public owner; address private pendingOwner; event OwnershipTransferRequested( address indexed from, address indexed to ); event OwnershipTransferred( address indexed from, address indexed to ); constructor() public { owner = msg.sender; } /** * @dev Allows an owner to begin transferring ownership to a new address, * pending. */ function transferOwnership(address _to) external onlyOwner() { pendingOwner = _to; emit OwnershipTransferRequested(owner, _to); } /** * @dev Allows an ownership transfer to be completed by the recipient. */ function acceptOwnership() external { require(msg.sender == pendingOwner, "Must be proposed owner"); address oldOwner = owner; owner = msg.sender; pendingOwner = address(0); emit OwnershipTransferred(oldOwner, msg.sender); } /** * @dev Reverts if called by anyone other than the contract owner. */ modifier onlyOwner() { require(msg.sender == owner, "Only callable by owner"); _; } } // File: contracts/interfaces/AggregatorInterface.sol pragma solidity >=0.6.0; interface AggregatorInterface { function latestAnswer() external view returns (int256); function latestTimestamp() external view returns (uint256); function latestRound() external view returns (uint256); function getAnswer(uint256 roundId) external view returns (int256); function getTimestamp(uint256 roundId) external view returns (uint256); event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt); event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt); } // File: contracts/interfaces/AggregatorV3Interface.sol pragma solidity >=0.6.0; interface AggregatorV3Interface { function decimals() external view returns (uint8); function description() external view returns (string memory); function version() external view returns (uint256); // getRoundData and latestRoundData should both raise "No data present" // if they do not have data to report, instead of returning unset values // which could be misinterpreted as actual reported values. function getRoundData(uint80 _roundId) external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); function latestRoundData() external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); } // File: contracts/interfaces/AggregatorV2V3Interface.sol pragma solidity >=0.6.0; interface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface { } // File: contracts/AggregatorProxy.sol pragma solidity 0.6.6; /** * @title A trusted proxy for updating where current answers are read from * @notice This contract provides a consistent address for the * CurrentAnwerInterface but delegates where it reads from to the owner, who is * trusted to update it. */ contract AggregatorProxy is AggregatorV2V3Interface, Owned { struct Phase { uint16 id; AggregatorV2V3Interface aggregator; } Phase private currentPhase; AggregatorV2V3Interface public proposedAggregator; mapping(uint16 => AggregatorV2V3Interface) public phaseAggregators; uint256 constant private PHASE_OFFSET = 64; uint256 constant private PHASE_SIZE = 16; uint256 constant private MAX_ID = 2**(PHASE_OFFSET+PHASE_SIZE) - 1; constructor(address _aggregator) public Owned() { setAggregator(_aggregator); } /** * @notice Reads the current answer from aggregator delegated to. * * @dev #[deprecated] Use latestRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended latestRoundData * instead which includes better verification information. */ function latestAnswer() public view virtual override returns (int256 answer) { return currentPhase.aggregator.latestAnswer(); } /** * @notice Reads the last updated height from aggregator delegated to. * * @dev #[deprecated] Use latestRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended latestRoundData * instead which includes better verification information. */ function latestTimestamp() public view virtual override returns (uint256 updatedAt) { return currentPhase.aggregator.latestTimestamp(); } /** * @notice get past rounds answers * @param _roundId the answer number to retrieve the answer for * * @dev #[deprecated] Use getRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended getRoundData * instead which includes better verification information. */ function getAnswer(uint256 _roundId) public view virtual override returns (int256 answer) { if (_roundId > MAX_ID) return 0; (uint16 phaseId, uint64 aggregatorRoundId) = parseIds(_roundId); AggregatorV2V3Interface aggregator = phaseAggregators[phaseId]; if (address(aggregator) == address(0)) return 0; return aggregator.getAnswer(aggregatorRoundId); } /** * @notice get block timestamp when an answer was last updated * @param _roundId the answer number to retrieve the updated timestamp for * * @dev #[deprecated] Use getRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended getRoundData * instead which includes better verification information. */ function getTimestamp(uint256 _roundId) public view virtual override returns (uint256 updatedAt) { if (_roundId > MAX_ID) return 0; (uint16 phaseId, uint64 aggregatorRoundId) = parseIds(_roundId); AggregatorV2V3Interface aggregator = phaseAggregators[phaseId]; if (address(aggregator) == address(0)) return 0; return aggregator.getTimestamp(aggregatorRoundId); } /** * @notice get the latest completed round where the answer was updated. This * ID includes the proxy's phase, to make sure round IDs increase even when * switching to a newly deployed aggregator. * * @dev #[deprecated] Use latestRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended latestRoundData * instead which includes better verification information. */ function latestRound() public view virtual override returns (uint256 roundId) { Phase memory phase = currentPhase; // cache storage reads return addPhase(phase.id, uint64(phase.aggregator.latestRound())); } /** * @notice get data about a round. Consumers are encouraged to check * that they're receiving fresh data by inspecting the updatedAt and * answeredInRound return values. * Note that different underlying implementations of AggregatorV3Interface * have slightly different semantics for some of the return values. Consumers * should determine what implementations they expect to receive * data from and validate that they can properly handle return data from all * of them. * @param _roundId the requested round ID as presented through the proxy, this * is made up of the aggregator's round ID with the phase ID encoded in the * two highest order bytes * @return roundId is the round ID from the aggregator for which the data was * retrieved combined with an phase to ensure that round IDs get larger as * time moves forward. * @return answer is the answer for the given round * @return startedAt is the timestamp when the round was started. * (Only some AggregatorV3Interface implementations return meaningful values) * @return updatedAt is the timestamp when the round last was updated (i.e. * answer was last computed) * @return answeredInRound is the round ID of the round in which the answer * was computed. * (Only some AggregatorV3Interface implementations return meaningful values) * @dev Note that answer and updatedAt may change between queries. */ function getRoundData(uint80 _roundId) public view virtual override returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { (uint16 phaseId, uint64 aggregatorRoundId) = parseIds(_roundId); ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 ansIn ) = phaseAggregators[phaseId].getRoundData(aggregatorRoundId); return addPhaseIds(roundId, answer, startedAt, updatedAt, ansIn, phaseId); } /** * @notice get data about the latest round. Consumers are encouraged to check * that they're receiving fresh data by inspecting the updatedAt and * answeredInRound return values. * Note that different underlying implementations of AggregatorV3Interface * have slightly different semantics for some of the return values. Consumers * should determine what implementations they expect to receive * data from and validate that they can properly handle return data from all * of them. * @return roundId is the round ID from the aggregator for which the data was * retrieved combined with an phase to ensure that round IDs get larger as * time moves forward. * @return answer is the answer for the given round * @return startedAt is the timestamp when the round was started. * (Only some AggregatorV3Interface implementations return meaningful values) * @return updatedAt is the timestamp when the round last was updated (i.e. * answer was last computed) * @return answeredInRound is the round ID of the round in which the answer * was computed. * (Only some AggregatorV3Interface implementations return meaningful values) * @dev Note that answer and updatedAt may change between queries. */ function latestRoundData() public view virtual override returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { Phase memory current = currentPhase; // cache storage reads ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 ansIn ) = current.aggregator.latestRoundData(); return addPhaseIds(roundId, answer, startedAt, updatedAt, ansIn, current.id); } /** * @notice Used if an aggregator contract has been proposed. * @param _roundId the round ID to retrieve the round data for * @return roundId is the round ID for which data was retrieved * @return answer is the answer for the given round * @return startedAt is the timestamp when the round was started. * (Only some AggregatorV3Interface implementations return meaningful values) * @return updatedAt is the timestamp when the round last was updated (i.e. * answer was last computed) * @return answeredInRound is the round ID of the round in which the answer * was computed. */ function proposedGetRoundData(uint80 _roundId) public view virtual hasProposal() returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { return proposedAggregator.getRoundData(_roundId); } /** * @notice Used if an aggregator contract has been proposed. * @return roundId is the round ID for which data was retrieved * @return answer is the answer for the given round * @return startedAt is the timestamp when the round was started. * (Only some AggregatorV3Interface implementations return meaningful values) * @return updatedAt is the timestamp when the round last was updated (i.e. * answer was last computed) * @return answeredInRound is the round ID of the round in which the answer * was computed. */ function proposedLatestRoundData() public view virtual hasProposal() returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { return proposedAggregator.latestRoundData(); } /** * @notice returns the current phase's aggregator address. */ function aggregator() external view returns (address) { return address(currentPhase.aggregator); } /** * @notice returns the current phase's ID. */ function phaseId() external view returns (uint16) { return currentPhase.id; } /** * @notice represents the number of decimals the aggregator responses represent. */ function decimals() external view override returns (uint8) { return currentPhase.aggregator.decimals(); } /** * @notice the version number representing the type of aggregator the proxy * points to. */ function version() external view override returns (uint256) { return currentPhase.aggregator.version(); } /** * @notice returns the description of the aggregator the proxy points to. */ function description() external view override returns (string memory) { return currentPhase.aggregator.description(); } /** * @notice Allows the owner to propose a new address for the aggregator * @param _aggregator The new address for the aggregator contract */ function proposeAggregator(address _aggregator) external onlyOwner() { proposedAggregator = AggregatorV2V3Interface(_aggregator); } /** * @notice Allows the owner to confirm and change the address * to the proposed aggregator * @dev Reverts if the given address doesn't match what was previously * proposed * @param _aggregator The new address for the aggregator contract */ function confirmAggregator(address _aggregator) external onlyOwner() { require(_aggregator == address(proposedAggregator), "Invalid proposed aggregator"); delete proposedAggregator; setAggregator(_aggregator); } /* * Internal */ function setAggregator(address _aggregator) internal { uint16 id = currentPhase.id + 1; currentPhase = Phase(id, AggregatorV2V3Interface(_aggregator)); phaseAggregators[id] = AggregatorV2V3Interface(_aggregator); } function addPhase( uint16 _phase, uint64 _originalId ) internal view returns (uint80) { return uint80(uint256(_phase) << PHASE_OFFSET | _originalId); } function parseIds( uint256 _roundId ) internal view returns (uint16, uint64) { uint16 phaseId = uint16(_roundId >> PHASE_OFFSET); uint64 aggregatorRoundId = uint64(_roundId); return (phaseId, aggregatorRoundId); } function addPhaseIds( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound, uint16 phaseId ) internal view returns (uint80, int256, uint256, uint256, uint80) { return ( addPhase(phaseId, uint64(roundId)), answer, startedAt, updatedAt, addPhase(phaseId, uint64(answeredInRound)) ); } /* * Modifiers */ modifier hasProposal() { require(address(proposedAggregator) != address(0), "No proposed aggregator present"); _; } } // File: contracts/interfaces/AccessControllerInterface.sol pragma solidity ^0.6.0; interface AccessControllerInterface { function hasAccess(address user, bytes calldata data) external view returns (bool); } // File: contracts/EACAggregatorProxy.sol pragma solidity 0.6.6; /** * @title External Access Controlled Aggregator Proxy * @notice A trusted proxy for updating where current answers are read from * @notice This contract provides a consistent address for the * Aggregator and AggregatorV3Interface but delegates where it reads from to the owner, who is * trusted to update it. * @notice Only access enabled addresses are allowed to access getters for * aggregated answers and round information. */ contract EACAggregatorProxy is AggregatorProxy { AccessControllerInterface public accessController; constructor( address _aggregator, address _accessController ) public AggregatorProxy(_aggregator) { setController(_accessController); } /** * @notice Allows the owner to update the accessController contract address. * @param _accessController The new address for the accessController contract */ function setController(address _accessController) public onlyOwner() { accessController = AccessControllerInterface(_accessController); } /** * @notice Reads the current answer from aggregator delegated to. * @dev overridden function to add the checkAccess() modifier * * @dev #[deprecated] Use latestRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended latestRoundData * instead which includes better verification information. */ function latestAnswer() public view override checkAccess() returns (int256) { return super.latestAnswer(); } /** * @notice get the latest completed round where the answer was updated. This * ID includes the proxy's phase, to make sure round IDs increase even when * switching to a newly deployed aggregator. * * @dev #[deprecated] Use latestRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended latestRoundData * instead which includes better verification information. */ function latestTimestamp() public view override checkAccess() returns (uint256) { return super.latestTimestamp(); } /** * @notice get past rounds answers * @param _roundId the answer number to retrieve the answer for * @dev overridden function to add the checkAccess() modifier * * @dev #[deprecated] Use getRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended getRoundData * instead which includes better verification information. */ function getAnswer(uint256 _roundId) public view override checkAccess() returns (int256) { return super.getAnswer(_roundId); } /** * @notice get block timestamp when an answer was last updated * @param _roundId the answer number to retrieve the updated timestamp for * @dev overridden function to add the checkAccess() modifier * * @dev #[deprecated] Use getRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended getRoundData * instead which includes better verification information. */ function getTimestamp(uint256 _roundId) public view override checkAccess() returns (uint256) { return super.getTimestamp(_roundId); } /** * @notice get the latest completed round where the answer was updated * @dev overridden function to add the checkAccess() modifier * * @dev #[deprecated] Use latestRoundData instead. This does not error if no * answer has been reached, it will simply return 0. Either wait to point to * an already answered Aggregator or use the recommended latestRoundData * instead which includes better verification information. */ function latestRound() public view override checkAccess() returns (uint256) { return super.latestRound(); } /** * @notice get data about a round. Consumers are encouraged to check * that they're receiving fresh data by inspecting the updatedAt and * answeredInRound return values. * Note that different underlying implementations of AggregatorV3Interface * have slightly different semantics for some of the return values. Consumers * should determine what implementations they expect to receive * data from and validate that they can properly handle return data from all * of them. * @param _roundId the round ID to retrieve the round data for * @return roundId is the round ID from the aggregator for which the data was * retrieved combined with a phase to ensure that round IDs get larger as * time moves forward. * @return answer is the answer for the given round * @return startedAt is the timestamp when the round was started. * (Only some AggregatorV3Interface implementations return meaningful values) * @return updatedAt is the timestamp when the round last was updated (i.e. * answer was last computed) * @return answeredInRound is the round ID of the round in which the answer * was computed. * (Only some AggregatorV3Interface implementations return meaningful values) * @dev Note that answer and updatedAt may change between queries. */ function getRoundData(uint80 _roundId) public view checkAccess() override returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { return super.getRoundData(_roundId); } /** * @notice get data about the latest round. Consumers are encouraged to check * that they're receiving fresh data by inspecting the updatedAt and * answeredInRound return values. * Note that different underlying implementations of AggregatorV3Interface * have slightly different semantics for some of the return values. Consumers * should determine what implementations they expect to receive * data from and validate that they can properly handle return data from all * of them. * @return roundId is the round ID from the aggregator for which the data was * retrieved combined with a phase to ensure that round IDs get larger as * time moves forward. * @return answer is the answer for the given round * @return startedAt is the timestamp when the round was started. * (Only some AggregatorV3Interface implementations return meaningful values) * @return updatedAt is the timestamp when the round last was updated (i.e. * answer was last computed) * @return answeredInRound is the round ID of the round in which the answer * was computed. * (Only some AggregatorV3Interface implementations return meaningful values) * @dev Note that answer and updatedAt may change between queries. */ function latestRoundData() public view checkAccess() override returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { return super.latestRoundData(); } /** * @notice Used if an aggregator contract has been proposed. * @param _roundId the round ID to retrieve the round data for * @return roundId is the round ID for which data was retrieved * @return answer is the answer for the given round * @return startedAt is the timestamp when the round was started. * (Only some AggregatorV3Interface implementations return meaningful values) * @return updatedAt is the timestamp when the round last was updated (i.e. * answer was last computed) * @return answeredInRound is the round ID of the round in which the answer * was computed. */ function proposedGetRoundData(uint80 _roundId) public view checkAccess() hasProposal() override returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { return super.proposedGetRoundData(_roundId); } /** * @notice Used if an aggregator contract has been proposed. * @return roundId is the round ID for which data was retrieved * @return answer is the answer for the given round * @return startedAt is the timestamp when the round was started. * (Only some AggregatorV3Interface implementations return meaningful values) * @return updatedAt is the timestamp when the round last was updated (i.e. * answer was last computed) * @return answeredInRound is the round ID of the round in which the answer * was computed. */ function proposedLatestRoundData() public view checkAccess() hasProposal() override returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { return super.proposedLatestRoundData(); } /** * @dev reverts if the caller does not have access by the accessController * contract or is the contract itself. */ modifier checkAccess() { AccessControllerInterface ac = accessController; require(address(ac) == address(0) || ac.hasAccess(msg.sender, msg.data), "No access"); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_aggregator","type":"address"},{"internalType":"address","name":"_accessController","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"int256","name":"current","type":"int256"},{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"updatedAt","type":"uint256"}],"name":"AnswerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":true,"internalType":"address","name":"startedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"startedAt","type":"uint256"}],"name":"NewRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessController","outputs":[{"internalType":"contract AccessControllerInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aggregator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_aggregator","type":"address"}],"name":"confirmAggregator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundId","type":"uint256"}],"name":"getAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundId","type":"uint256"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"phaseAggregators","outputs":[{"internalType":"contract AggregatorV2V3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"phaseId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_aggregator","type":"address"}],"name":"proposeAggregator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposedAggregator","outputs":[{"internalType":"contract AggregatorV2V3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"proposedGetRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposedLatestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_accessController","type":"address"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405162001d3438038062001d348339818101604052604081101561003557600080fd5b508051602090910151600080546001600160a01b0319163317905581610063816001600160e01b0361007d16565b50610076816001600160e01b036100ec16565b505061016d565b60028054604080518082018252600161ffff80851691909101168082526001600160a01b0395909516602091820181905261ffff19909316851762010000600160b01b0319166201000084021790935560009384526004909252912080546001600160a01b0319169091179055565b6000546001600160a01b0316331461014b576040805162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611bb7806200017d6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638f6b4d91116100c3578063bc43cbaf1161007c578063bc43cbaf1461038a578063c159730414610392578063e8c4be30146103b3578063f2fde38b146103bb578063f8a2abd3146103e1578063feaf968c146104075761014d565b80638f6b4d91146102d657806392eefe9b146102de5780639a6fc8f514610304578063a928c0961461032a578063b5ab58dc14610350578063b633620c1461036d5761014d565b80636001ac53116101155780636001ac53146101d5578063668a0f02146102375780637284e4161461023f57806379ba5097146102bc5780638205bf6a146102c65780638da5cb5b146102ce5761014d565b8063245a7bfc14610152578063313ce5671461017657806350d25bcd1461019457806354fd4d50146101ae57806358303b10146101b6575b600080fd5b61015a61040f565b604080516001600160a01b039092168252519081900360200190f35b61017e610424565b6040805160ff9092168252519081900360200190f35b61019c6104a8565b60408051918252519081900360200190f35b61019c6105b0565b6101be610603565b6040805161ffff9092168252519081900360200190f35b6101fb600480360360208110156101eb57600080fd5b50356001600160501b031661060d565b604080516001600160501b0396871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b61019c610776565b610247610878565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610281578181015183820152602001610269565b50505050905090810190601f1680156102ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c46109bd565b005b61019c610a6c565b61015a610b6e565b6101fb610b7d565b6102c4600480360360208110156102f457600080fd5b50356001600160a01b0316610ce4565b6101fb6004803603602081101561031a57600080fd5b50356001600160501b0316610d5e565b6102c46004803603602081101561034057600080fd5b50356001600160a01b0316610e69565b61019c6004803603602081101561036657600080fd5b5035610f3f565b61019c6004803603602081101561038357600080fd5b5035611049565b61015a61114c565b61015a600480360360208110156103a857600080fd5b503561ffff1661115b565b61015a611176565b6102c4600480360360208110156103d157600080fd5b50356001600160a01b0316611185565b6102c4600480360360208110156103f757600080fd5b50356001600160a01b031661122e565b6101fb6112a8565b6002546201000090046001600160a01b031690565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561047757600080fd5b505afa15801561048b573d6000803e3d6000fd5b505050506040513d60208110156104a157600080fd5b5051905090565b6005546000906001600160a01b0316801580610565575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561053857600080fd5b505afa15801561054c573d6000803e3d6000fd5b505050506040513d602081101561056257600080fd5b50515b6105a2576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6105aa6113b2565b91505090565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b03166354fd4d506040518163ffffffff1660e01b815260040160206040518083038186803b15801561047757600080fd5b60025461ffff1690565b60055460009081908190819081906001600160a01b03168015806106d2575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b1580156106a557600080fd5b505afa1580156106b9573d6000803e3d6000fd5b505050506040513d60208110156106cf57600080fd5b50515b61070f576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6003546001600160a01b031661075a576040805162461bcd60e51b815260206004820152601e6024820152600080516020611b62833981519152604482015290519081900360640190fd5b61076387611405565b939b929a50909850965090945092505050565b6005546000906001600160a01b0316801580610833575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561080657600080fd5b505afa15801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b50515b610870576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6105aa611502565b6060600260000160029054906101000a90046001600160a01b03166001600160a01b0316637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b1580156108cb57600080fd5b505afa1580156108df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561090857600080fd5b810190808051604051939291908464010000000082111561092857600080fd5b90830190602082018581111561093d57600080fd5b825164010000000081118282018810171561095757600080fd5b82525081516020918201929091019080838360005b8381101561098457818101518382015260200161096c565b50505050905090810190601f1680156109b15780820380516001836020036101000a031916815260200191505b50604052505050905090565b6001546001600160a01b03163314610a15576040805162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015290519081900360640190fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6005546000906001600160a01b0316801580610b29575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610afc57600080fd5b505afa158015610b10573d6000803e3d6000fd5b505050506040513d6020811015610b2657600080fd5b50515b610b66576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6105aa6115b0565b6000546001600160a01b031681565b60055460009081908190819081906001600160a01b0316801580610c42575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610c1557600080fd5b505afa158015610c29573d6000803e3d6000fd5b505050506040513d6020811015610c3f57600080fd5b50515b610c7f576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6003546001600160a01b0316610cca576040805162461bcd60e51b815260206004820152601e6024820152600080516020611b62833981519152604482015290519081900360640190fd5b610cd2611603565b95509550955095509550509091929394565b6000546001600160a01b03163314610d3c576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60055460009081908190819081906001600160a01b0316801580610e23575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610df657600080fd5b505afa158015610e0a573d6000803e3d6000fd5b505050506040513d6020811015610e2057600080fd5b50515b610e60576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b610763876116f9565b6000546001600160a01b03163314610ec1576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b6003546001600160a01b03828116911614610f23576040805162461bcd60e51b815260206004820152601b60248201527f496e76616c69642070726f706f7365642061676772656761746f720000000000604482015290519081900360640190fd5b600380546001600160a01b0319169055610f3c81611803565b50565b6005546000906001600160a01b0316801580610ffc575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610fcf57600080fd5b505afa158015610fe3573d6000803e3d6000fd5b505050506040513d6020811015610ff957600080fd5b50515b611039576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61104283611872565b9392505050565b6005546000906001600160a01b0316801580611106575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b1580156110d957600080fd5b505afa1580156110ed573d6000803e3d6000fd5b505050506040513d602081101561110357600080fd5b50515b611143576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6110428361194f565b6005546001600160a01b031681565b6004602052600090815260409020546001600160a01b031681565b6003546001600160a01b031681565b6000546001600160a01b031633146111dd576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000546001600160a01b03163314611286576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60055460009081908190819081906001600160a01b031680158061136d575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561134057600080fd5b505afa158015611354573d6000803e3d6000fd5b505050506040513d602081101561136a57600080fd5b50515b6113aa576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b610cd26119f5565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561047757600080fd5b60035460009081908190819081906001600160a01b031661145b576040805162461bcd60e51b815260206004820152601e6024820152600080516020611b62833981519152604482015290519081900360640190fd5b60035460408051639a6fc8f560e01b81526001600160501b038916600482015290516001600160a01b0390921691639a6fc8f59160248082019260a092909190829003018186803b1580156114af57600080fd5b505afa1580156114c3573d6000803e3d6000fd5b505050506040513d60a08110156114d957600080fd5b508051602082015160408301516060840151608090940151929a91995097509195509350915050565b600061150c611b4a565b5060408051808201825260025461ffff8116808352620100009091046001600160a01b031660208084018290528451633345078160e11b8152945193946115a19463668a0f0292600480840193919291829003018186803b15801561157057600080fd5b505afa158015611584573d6000803e3d6000fd5b505050506040513d602081101561159a57600080fd5b5051611aec565b6001600160501b031691505090565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b0316638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561047757600080fd5b60035460009081908190819081906001600160a01b0316611659576040805162461bcd60e51b815260206004820152601e6024820152600080516020611b62833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156116a757600080fd5b505afa1580156116bb573d6000803e3d6000fd5b505050506040513d60a08110156116d157600080fd5b5080516020820151604083015160608401516080909401519299919850965091945092509050565b6000806000806000806000611716886001600160501b0316611b0c565b61ffff82166000908152600460208190526040808320548151639a6fc8f560e01b815267ffffffffffffffff8616938101939093529051949650929450909283928392839283926001600160a01b031691639a6fc8f59160248083019260a0929190829003018186803b15801561178c57600080fd5b505afa1580156117a0573d6000803e3d6000fd5b505050506040513d60a08110156117b657600080fd5b508051602082015160408301516060840151608090940151929850909650945090925090506117e985858585858c611b14565b9b509b509b509b509b505050505050505091939590929450565b60028054604080518082018252600161ffff80851691909101168082526001600160a01b0395909516602091820181905261ffff19909316851762010000600160b01b0319166201000084021790935560009384526004909252912080546001600160a01b0319169091179055565b60006001600160501b0382111561188b5750600061194a565b60008061189784611b0c565b61ffff821660009081526004602052604090205491935091506001600160a01b0316806118ca576000935050505061194a565b806001600160a01b031663b5ab58dc836040518263ffffffff1660e01b8152600401808267ffffffffffffffff16815260200191505060206040518083038186803b15801561191857600080fd5b505afa15801561192c573d6000803e3d6000fd5b505050506040513d602081101561194257600080fd5b505193505050505b919050565b60006001600160501b038211156119685750600061194a565b60008061197484611b0c565b61ffff821660009081526004602052604090205491935091506001600160a01b0316806119a7576000935050505061194a565b806001600160a01b031663b633620c836040518263ffffffff1660e01b8152600401808267ffffffffffffffff16815260200191505060206040518083038186803b15801561191857600080fd5b6000806000806000611a05611b4a565b5060408051808201825260025461ffff811682526201000090046001600160a01b0316602082018190528251633fabe5a360e21b81529251919260009283928392839283929163feaf968c9160048083019260a0929190829003018186803b158015611a7057600080fd5b505afa158015611a84573d6000803e3d6000fd5b505050506040513d60a0811015611a9a57600080fd5b5080516020820151604083015160608401516080909401518a519399509197509550919350909150611ad59086908690869086908690611b14565b9a509a509a509a509a505050505050509091929394565b67ffffffffffffffff1660409190911b69ffff0000000000000000161790565b604081901c91565b6000806000806000611b26868c611aec565b8a8a8a611b338a8c611aec565b939f929e50909c509a509098509650505050505050565b60408051808201909152600080825260208201529056fe4e6f2070726f706f7365642061676772656761746f722070726573656e740000a264697066735822122033e6819200bf704f62e7563d7c4e1e562e2f94e00a0c2b30dc4ea54dbcf7cb4364736f6c634300060600330000000000000000000000000635709bae7a9a9f782360a4554378f4ea0513680000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638f6b4d91116100c3578063bc43cbaf1161007c578063bc43cbaf1461038a578063c159730414610392578063e8c4be30146103b3578063f2fde38b146103bb578063f8a2abd3146103e1578063feaf968c146104075761014d565b80638f6b4d91146102d657806392eefe9b146102de5780639a6fc8f514610304578063a928c0961461032a578063b5ab58dc14610350578063b633620c1461036d5761014d565b80636001ac53116101155780636001ac53146101d5578063668a0f02146102375780637284e4161461023f57806379ba5097146102bc5780638205bf6a146102c65780638da5cb5b146102ce5761014d565b8063245a7bfc14610152578063313ce5671461017657806350d25bcd1461019457806354fd4d50146101ae57806358303b10146101b6575b600080fd5b61015a61040f565b604080516001600160a01b039092168252519081900360200190f35b61017e610424565b6040805160ff9092168252519081900360200190f35b61019c6104a8565b60408051918252519081900360200190f35b61019c6105b0565b6101be610603565b6040805161ffff9092168252519081900360200190f35b6101fb600480360360208110156101eb57600080fd5b50356001600160501b031661060d565b604080516001600160501b0396871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b61019c610776565b610247610878565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610281578181015183820152602001610269565b50505050905090810190601f1680156102ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c46109bd565b005b61019c610a6c565b61015a610b6e565b6101fb610b7d565b6102c4600480360360208110156102f457600080fd5b50356001600160a01b0316610ce4565b6101fb6004803603602081101561031a57600080fd5b50356001600160501b0316610d5e565b6102c46004803603602081101561034057600080fd5b50356001600160a01b0316610e69565b61019c6004803603602081101561036657600080fd5b5035610f3f565b61019c6004803603602081101561038357600080fd5b5035611049565b61015a61114c565b61015a600480360360208110156103a857600080fd5b503561ffff1661115b565b61015a611176565b6102c4600480360360208110156103d157600080fd5b50356001600160a01b0316611185565b6102c4600480360360208110156103f757600080fd5b50356001600160a01b031661122e565b6101fb6112a8565b6002546201000090046001600160a01b031690565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561047757600080fd5b505afa15801561048b573d6000803e3d6000fd5b505050506040513d60208110156104a157600080fd5b5051905090565b6005546000906001600160a01b0316801580610565575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561053857600080fd5b505afa15801561054c573d6000803e3d6000fd5b505050506040513d602081101561056257600080fd5b50515b6105a2576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6105aa6113b2565b91505090565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b03166354fd4d506040518163ffffffff1660e01b815260040160206040518083038186803b15801561047757600080fd5b60025461ffff1690565b60055460009081908190819081906001600160a01b03168015806106d2575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b1580156106a557600080fd5b505afa1580156106b9573d6000803e3d6000fd5b505050506040513d60208110156106cf57600080fd5b50515b61070f576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6003546001600160a01b031661075a576040805162461bcd60e51b815260206004820152601e6024820152600080516020611b62833981519152604482015290519081900360640190fd5b61076387611405565b939b929a50909850965090945092505050565b6005546000906001600160a01b0316801580610833575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561080657600080fd5b505afa15801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b50515b610870576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6105aa611502565b6060600260000160029054906101000a90046001600160a01b03166001600160a01b0316637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b1580156108cb57600080fd5b505afa1580156108df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561090857600080fd5b810190808051604051939291908464010000000082111561092857600080fd5b90830190602082018581111561093d57600080fd5b825164010000000081118282018810171561095757600080fd5b82525081516020918201929091019080838360005b8381101561098457818101518382015260200161096c565b50505050905090810190601f1680156109b15780820380516001836020036101000a031916815260200191505b50604052505050905090565b6001546001600160a01b03163314610a15576040805162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015290519081900360640190fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6005546000906001600160a01b0316801580610b29575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610afc57600080fd5b505afa158015610b10573d6000803e3d6000fd5b505050506040513d6020811015610b2657600080fd5b50515b610b66576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6105aa6115b0565b6000546001600160a01b031681565b60055460009081908190819081906001600160a01b0316801580610c42575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610c1557600080fd5b505afa158015610c29573d6000803e3d6000fd5b505050506040513d6020811015610c3f57600080fd5b50515b610c7f576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6003546001600160a01b0316610cca576040805162461bcd60e51b815260206004820152601e6024820152600080516020611b62833981519152604482015290519081900360640190fd5b610cd2611603565b95509550955095509550509091929394565b6000546001600160a01b03163314610d3c576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60055460009081908190819081906001600160a01b0316801580610e23575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610df657600080fd5b505afa158015610e0a573d6000803e3d6000fd5b505050506040513d6020811015610e2057600080fd5b50515b610e60576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b610763876116f9565b6000546001600160a01b03163314610ec1576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b6003546001600160a01b03828116911614610f23576040805162461bcd60e51b815260206004820152601b60248201527f496e76616c69642070726f706f7365642061676772656761746f720000000000604482015290519081900360640190fd5b600380546001600160a01b0319169055610f3c81611803565b50565b6005546000906001600160a01b0316801580610ffc575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610fcf57600080fd5b505afa158015610fe3573d6000803e3d6000fd5b505050506040513d6020811015610ff957600080fd5b50515b611039576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61104283611872565b9392505050565b6005546000906001600160a01b0316801580611106575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b1580156110d957600080fd5b505afa1580156110ed573d6000803e3d6000fd5b505050506040513d602081101561110357600080fd5b50515b611143576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6110428361194f565b6005546001600160a01b031681565b6004602052600090815260409020546001600160a01b031681565b6003546001600160a01b031681565b6000546001600160a01b031633146111dd576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000546001600160a01b03163314611286576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60055460009081908190819081906001600160a01b031680158061136d575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561134057600080fd5b505afa158015611354573d6000803e3d6000fd5b505050506040513d602081101561136a57600080fd5b50515b6113aa576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b610cd26119f5565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561047757600080fd5b60035460009081908190819081906001600160a01b031661145b576040805162461bcd60e51b815260206004820152601e6024820152600080516020611b62833981519152604482015290519081900360640190fd5b60035460408051639a6fc8f560e01b81526001600160501b038916600482015290516001600160a01b0390921691639a6fc8f59160248082019260a092909190829003018186803b1580156114af57600080fd5b505afa1580156114c3573d6000803e3d6000fd5b505050506040513d60a08110156114d957600080fd5b508051602082015160408301516060840151608090940151929a91995097509195509350915050565b600061150c611b4a565b5060408051808201825260025461ffff8116808352620100009091046001600160a01b031660208084018290528451633345078160e11b8152945193946115a19463668a0f0292600480840193919291829003018186803b15801561157057600080fd5b505afa158015611584573d6000803e3d6000fd5b505050506040513d602081101561159a57600080fd5b5051611aec565b6001600160501b031691505090565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b0316638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561047757600080fd5b60035460009081908190819081906001600160a01b0316611659576040805162461bcd60e51b815260206004820152601e6024820152600080516020611b62833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156116a757600080fd5b505afa1580156116bb573d6000803e3d6000fd5b505050506040513d60a08110156116d157600080fd5b5080516020820151604083015160608401516080909401519299919850965091945092509050565b6000806000806000806000611716886001600160501b0316611b0c565b61ffff82166000908152600460208190526040808320548151639a6fc8f560e01b815267ffffffffffffffff8616938101939093529051949650929450909283928392839283926001600160a01b031691639a6fc8f59160248083019260a0929190829003018186803b15801561178c57600080fd5b505afa1580156117a0573d6000803e3d6000fd5b505050506040513d60a08110156117b657600080fd5b508051602082015160408301516060840151608090940151929850909650945090925090506117e985858585858c611b14565b9b509b509b509b509b505050505050505091939590929450565b60028054604080518082018252600161ffff80851691909101168082526001600160a01b0395909516602091820181905261ffff19909316851762010000600160b01b0319166201000084021790935560009384526004909252912080546001600160a01b0319169091179055565b60006001600160501b0382111561188b5750600061194a565b60008061189784611b0c565b61ffff821660009081526004602052604090205491935091506001600160a01b0316806118ca576000935050505061194a565b806001600160a01b031663b5ab58dc836040518263ffffffff1660e01b8152600401808267ffffffffffffffff16815260200191505060206040518083038186803b15801561191857600080fd5b505afa15801561192c573d6000803e3d6000fd5b505050506040513d602081101561194257600080fd5b505193505050505b919050565b60006001600160501b038211156119685750600061194a565b60008061197484611b0c565b61ffff821660009081526004602052604090205491935091506001600160a01b0316806119a7576000935050505061194a565b806001600160a01b031663b633620c836040518263ffffffff1660e01b8152600401808267ffffffffffffffff16815260200191505060206040518083038186803b15801561191857600080fd5b6000806000806000611a05611b4a565b5060408051808201825260025461ffff811682526201000090046001600160a01b0316602082018190528251633fabe5a360e21b81529251919260009283928392839283929163feaf968c9160048083019260a0929190829003018186803b158015611a7057600080fd5b505afa158015611a84573d6000803e3d6000fd5b505050506040513d60a0811015611a9a57600080fd5b5080516020820151604083015160608401516080909401518a519399509197509550919350909150611ad59086908690869086908690611b14565b9a509a509a509a509a505050505050509091929394565b67ffffffffffffffff1660409190911b69ffff0000000000000000161790565b604081901c91565b6000806000806000611b26868c611aec565b8a8a8a611b338a8c611aec565b939f929e50909c509a509098509650505050505050565b60408051808201909152600080825260208201529056fe4e6f2070726f706f7365642061676772656761746f722070726573656e740000a264697066735822122033e6819200bf704f62e7563d7c4e1e562e2f94e00a0c2b30dc4ea54dbcf7cb4364736f6c63430006060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000635709bae7a9a9f782360a4554378f4ea0513680000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _aggregator (address): 0x0635709bAe7A9A9F782360A4554378F4eA051368
Arg [1] : _accessController (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000635709bae7a9a9f782360a4554378f4ea051368
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
17326:9207:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17326:9207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;13363:124:0;;;:::i;:::-;;;;-1:-1:-1;;;;;13363:124:0;;;;;;;;;;;;;;13760:136;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18402:144;;;:::i;:::-;;;;;;;;;;;;;;;;14012:136;;;:::i;13553:103::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25001:329;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;25001:329:0;-1:-1:-1;;;;;25001:329:0;;:::i;:::-;;;;-1:-1:-1;;;;;25001:329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21037:143;;;:::i;14245:150::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14245:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;854:264;;;:::i;:::-;;19077:151;;;:::i;187:28::-;;;:::i;25895:312::-;;;:::i;17786:158::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17786:158:0;-1:-1:-1;;;;;17786:158:0;;:::i;22518:294::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;22518:294:0;-1:-1:-1;;;;;22518:294:0;;:::i;14987:242::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14987:242:0;-1:-1:-1;;;;;14987:242:0;;:::i;19716:162::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19716:162:0;;:::i;20405:169::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20405:169:0;;:::i;17380:49::-;;;:::i;3630:66::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3630:66:0;;;;:::i;3576:49::-;;;:::i;603:157::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;603:157:0;-1:-1:-1;;;;;603:157:0;;:::i;14559:152::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14559:152:0;-1:-1:-1;;;;;14559:152:0;;:::i;24093:277::-;;;:::i;13363:124::-;13457:12;:23;;;;-1:-1:-1;;;;;13457:23:0;;13363:124::o;13760:136::-;13832:5;13856:12;:23;;;;;;;;;;-1:-1:-1;;;;;13856:23:0;-1:-1:-1;;;;;13856:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13856:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13856:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13856:34:0;;-1:-1:-1;13760:136:0;:::o;18402:144::-;26408:16;;18495:6;;-1:-1:-1;;;;;26408:16:0;26439:25;;;:63;;-1:-1:-1;26468:34:0;;;-1:-1:-1;;;26468:34:0;;26481:10;26468:34;;;;;;;;;;;;26493:8;26468:34;;;;;;-1:-1:-1;;;;;26468:12:0;;;;;26493:8;;26468:34;;;;26493:8;;;;26468:34;1:33:-1;99:1;81:16;;;74:27;26468:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26468:34:0;;-1:-1:-1;26468:34:0;;-1:-1:-1;;;26468:34:0;;;;-1:-1:-1;26468:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26468:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26468:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26468:34:0;26439:63;26431:85;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;;;;18520:20:::1;:18;:20::i;:::-;18513:27;;18402:144:::0;;:::o;14012:136::-;14083:7;14109:12;:23;;;;;;;;;;-1:-1:-1;;;;;14109:23:0;-1:-1:-1;;;;;14109:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;13553:103:0;13635:12;:15;;;13553:103;:::o;25001:329::-;26408:16;;25144:14;;;;;;;;;;-1:-1:-1;;;;;26408:16:0;26439:25;;;:63;;-1:-1:-1;26468:34:0;;;-1:-1:-1;;;26468:34:0;;26481:10;26468:34;;;;;;;;;;;;26493:8;26468:34;;;;;;-1:-1:-1;;;;;26468:12:0;;;;;26493:8;;26468:34;;;;26493:8;;;;26468:34;1:33:-1;99:1;81:16;;;74:27;26468:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26468:34:0;;-1:-1:-1;26468:34:0;;-1:-1:-1;;;26468:34:0;;;;-1:-1:-1;26468:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26468:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26468:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26468:34:0;26439:63;26431:85;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;;;;16489:18:::1;::::0;-1:-1:-1;;;;;16489:18:0::1;16473:84;;;::::0;;-1:-1:-1;;;16473:84:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;16473:84:0;;;;;;;;;;;;;::::1;;25288:36:::2;25315:8;25288:26;:36::i;:::-;25281:43:::0;;;;-1:-1:-1;25281:43:0;;-1:-1:-1;25281:43:0;-1:-1:-1;25281:43:0;;-1:-1:-1;25001:329:0;-1:-1:-1;;;25001:329:0:o;21037:143::-;26408:16;;21129:7;;-1:-1:-1;;;;;26408:16:0;26439:25;;;:63;;-1:-1:-1;26468:34:0;;;-1:-1:-1;;;26468:34:0;;26481:10;26468:34;;;;;;;;;;;;26493:8;26468:34;;;;;;-1:-1:-1;;;;;26468:12:0;;;;;26493:8;;26468:34;;;;26493:8;;;;26468:34;1:33:-1;99:1;81:16;;;74:27;26468:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26468:34:0;;-1:-1:-1;26468:34:0;;-1:-1:-1;;;26468:34:0;;;;-1:-1:-1;26468:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26468:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26468:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26468:34:0;26439:63;26431:85;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;;;;21155:19:::1;:17;:19::i;14245:150::-:0;14320:13;14352:12;:23;;;;;;;;;;-1:-1:-1;;;;;14352:23:0;-1:-1:-1;;;;;14352:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14352:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14352:37:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;14352:37:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;15:2;7:11;;4:2;;;31:1;28;21:12;4:2;14352:37:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;14352:37:0;;420:4:-1;411:14;;;;14352:37:0;;;;;411:14:-1;14352:37:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14352:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14345:44;;14245:150;:::o;854:264::-;927:12;;-1:-1:-1;;;;;927:12:0;913:10;:26;905:61;;;;;-1:-1:-1;;;905:61:0;;;;;;;;;;;;-1:-1:-1;;;905:61:0;;;;;;;;;;;;;;;975:16;994:5;;1014:10;-1:-1:-1;;;;;;1006:18:0;;;;;;;-1:-1:-1;1031:25:0;;;;;;;1070:42;;-1:-1:-1;;;;;994:5:0;;;;1014:10;;994:5;;1070:42;;;854:264;:::o;19077:151::-;26408:16;;19173:7;;-1:-1:-1;;;;;26408:16:0;26439:25;;;:63;;-1:-1:-1;26468:34:0;;;-1:-1:-1;;;26468:34:0;;26481:10;26468:34;;;;;;;;;;;;26493:8;26468:34;;;;;;-1:-1:-1;;;;;26468:12:0;;;;;26493:8;;26468:34;;;;26493:8;;;;26468:34;1:33:-1;99:1;81:16;;;74:27;26468:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26468:34:0;;-1:-1:-1;26468:34:0;;-1:-1:-1;;;26468:34:0;;;;-1:-1:-1;26468:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26468:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26468:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26468:34:0;26439:63;26431:85;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;;;;19199:23:::1;:21;:23::i;187:28::-:0;;;-1:-1:-1;;;;;187:28:0;;:::o;25895:312::-;26408:16;;26026:14;;;;;;;;;;-1:-1:-1;;;;;26408:16:0;26439:25;;;:63;;-1:-1:-1;26468:34:0;;;-1:-1:-1;;;26468:34:0;;26481:10;26468:34;;;;;;;;;;;;26493:8;26468:34;;;;;;-1:-1:-1;;;;;26468:12:0;;;;;26493:8;;26468:34;;;;26493:8;;;;26468:34;1:33:-1;99:1;81:16;;;74:27;26468:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26468:34:0;;-1:-1:-1;26468:34:0;;-1:-1:-1;;;26468:34:0;;;;-1:-1:-1;26468:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26468:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26468:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26468:34:0;26439:63;26431:85;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;;;;16489:18:::1;::::0;-1:-1:-1;;;;;16489:18:0::1;16473:84;;;::::0;;-1:-1:-1;;;16473:84:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;16473:84:0;;;;;;;;;;;;;::::1;;26170:31:::2;:29;:31::i;:::-;26163:38;;;;;;;;;;25895:312:::0;;;;;;:::o;17786:158::-;1258:5;;-1:-1:-1;;;;;1258:5:0;1244:10;:19;1236:54;;;;;-1:-1:-1;;;1236:54:0;;;;;;;;;;;;-1:-1:-1;;;1236:54:0;;;;;;;;;;;;;;;17875:16:::1;:63:::0;;-1:-1:-1;;;;;;17875:63:0::1;-1:-1:-1::0;;;;;17875:63:0;;;::::1;::::0;;;::::1;::::0;;17786:158::o;22518:294::-;26408:16;;22634:14;;;;;;;;;;-1:-1:-1;;;;;26408:16:0;26439:25;;;:63;;-1:-1:-1;26468:34:0;;;-1:-1:-1;;;26468:34:0;;26481:10;26468:34;;;;;;;;;;;;26493:8;26468:34;;;;;;-1:-1:-1;;;;;26468:12:0;;;;;26493:8;;26468:34;;;;26493:8;;;;26468:34;1:33:-1;99:1;81:16;;;74:27;26468:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26468:34:0;;-1:-1:-1;26468:34:0;;-1:-1:-1;;;26468:34:0;;;;-1:-1:-1;26468:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26468:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26468:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26468:34:0;26439:63;26431:85;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;;;;22778:28:::1;22797:8;22778:18;:28::i;14987:242::-:0;1258:5;;-1:-1:-1;;;;;1258:5:0;1244:10;:19;1236:54;;;;;-1:-1:-1;;;1236:54:0;;;;;;;;;;;;-1:-1:-1;;;1236:54:0;;;;;;;;;;;;;;;15107:18:::1;::::0;-1:-1:-1;;;;;15084:42:0;;::::1;15107:18:::0;::::1;15084:42;15076:82;;;::::0;;-1:-1:-1;;;15076:82:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15172:18;15165:25:::0;;-1:-1:-1;;;;;;15165:25:0::1;::::0;;15197:26:::1;15211:11:::0;15197:13:::1;:26::i;:::-;14987:242:::0;:::o;19716:162::-;26408:16;;19822:6;;-1:-1:-1;;;;;26408:16:0;26439:25;;;:63;;-1:-1:-1;26468:34:0;;;-1:-1:-1;;;26468:34:0;;26481:10;26468:34;;;;;;;;;;;;26493:8;26468:34;;;;;;-1:-1:-1;;;;;26468:12:0;;;;;26493:8;;26468:34;;;;26493:8;;;;26468:34;1:33:-1;99:1;81:16;;;74:27;26468:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26468:34:0;;-1:-1:-1;26468:34:0;;-1:-1:-1;;;26468:34:0;;;;-1:-1:-1;26468:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26468:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26468:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26468:34:0;26439:63;26431:85;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;;;;19847:25:::1;19863:8;19847:15;:25::i;:::-;19840:32:::0;19716:162;-1:-1:-1;;;19716:162:0:o;20405:169::-;26408:16;;20514:7;;-1:-1:-1;;;;;26408:16:0;26439:25;;;:63;;-1:-1:-1;26468:34:0;;;-1:-1:-1;;;26468:34:0;;26481:10;26468:34;;;;;;;;;;;;26493:8;26468:34;;;;;;-1:-1:-1;;;;;26468:12:0;;;;;26493:8;;26468:34;;;;26493:8;;;;26468:34;1:33:-1;99:1;81:16;;;74:27;26468:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26468:34:0;;-1:-1:-1;26468:34:0;;-1:-1:-1;;;26468:34:0;;;;-1:-1:-1;26468:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26468:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26468:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26468:34:0;26439:63;26431:85;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;;;;20540:28:::1;20559:8;20540:18;:28::i;17380:49::-:0;;;-1:-1:-1;;;;;17380:49:0;;:::o;3630:66::-;;;;;;;;;;;;-1:-1:-1;;;;;3630:66:0;;:::o;3576:49::-;;;-1:-1:-1;;;;;3576:49:0;;:::o;603:157::-;1258:5;;-1:-1:-1;;;;;1258:5:0;1244:10;:19;1236:54;;;;;-1:-1:-1;;;1236:54:0;;;;;;;;;;;;-1:-1:-1;;;1236:54:0;;;;;;;;;;;;;;;684:12:::1;:18:::0;;-1:-1:-1;;;;;;684:18:0::1;-1:-1:-1::0;;;;;684:18:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;743:5:0;;716:38:::1;::::0;684:18;;743:5:::1;::::0;716:38:::1;::::0;-1:-1:-1;716:38:0::1;603:157:::0;:::o;14559:152::-;1258:5;;-1:-1:-1;;;;;1258:5:0;1244:10;:19;1236:54;;;;;-1:-1:-1;;;1236:54:0;;;;;;;;;;;;-1:-1:-1;;;1236:54:0;;;;;;;;;;;;;;;14648:18:::1;:57:::0;;-1:-1:-1;;;;;;14648:57:0::1;-1:-1:-1::0;;;;;14648:57:0;;;::::1;::::0;;;::::1;::::0;;14559:152::o;24093:277::-;26408:16;;24197:14;;;;;;;;;;-1:-1:-1;;;;;26408:16:0;26439:25;;;:63;;-1:-1:-1;26468:34:0;;;-1:-1:-1;;;26468:34:0;;26481:10;26468:34;;;;;;;;;;;;26493:8;26468:34;;;;;;-1:-1:-1;;;;;26468:12:0;;;;;26493:8;;26468:34;;;;26493:8;;;;26468:34;1:33:-1;99:1;81:16;;;74:27;26468:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26468:34:0;;-1:-1:-1;26468:34:0;;-1:-1:-1;;;26468:34:0;;;;-1:-1:-1;26468:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26468:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26468:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26468:34:0;26439:63;26431:85;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;-1:-1:-1;;;26431:85:0;;;;;;;;;;;;;;;24341:23:::1;:21;:23::i;4348:163::-:0;4435:13;4467:12;:23;;;;;;;;;;-1:-1:-1;;;;;4467:23:0;-1:-1:-1;;;;;4467:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;12105:314:0;16489:18;;12228:14;;;;;;;;;;-1:-1:-1;;;;;16489:18:0;16473:84;;;;;-1:-1:-1;;;16473:84:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16473:84:0;;;;;;;;;;;;;;;12372:18:::1;::::0;:41:::1;::::0;;-1:-1:-1;;;12372:41:0;;-1:-1:-1;;;;;12372:41:0;::::1;;::::0;::::1;::::0;;;-1:-1:-1;;;;;12372:18:0;;::::1;::::0;:31:::1;::::0;:41;;;;;::::1;::::0;;;;;;;;;:18;:41;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;12372:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12372:41:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29::::0;22:12:::1;4:2;-1:-1:::0;12372:41:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;12372:41:0;-1:-1:-1;12372:41:0;;-1:-1:-1;12372:41:0;-1:-1:-1;12105:314:0;-1:-1:-1;;12105:314:0:o;7332:247::-;7418:15;7445:18;;:::i;:::-;-1:-1:-1;7445:33:0;;;;;;;;7466:12;7445:33;;;;;;;;;;;-1:-1:-1;;;;;7445:33:0;;;;;;;;7541:30;;-1:-1:-1;;;7541:30:0;;;;7445:33;;7515:58;;7541:28;;:30;;;;;7445:33;;7541:30;;;;;;7445:33;7541:30;;;2:2:-1;;;;27:1;24;17:12;2:2;7541:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7541:30:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7541:30:0;7515:8;:58::i;:::-;-1:-1:-1;;;;;7508:65:0;;;;7332:247;:::o;4909:173::-;4999:17;5035:12;:23;;;;;;;;;;-1:-1:-1;;;;;5035:23:0;-1:-1:-1;;;;;5035:39:0;;:41;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;12984:297:0;16489:18;;13095:14;;;;;;;;;;-1:-1:-1;;;;;16489:18:0;16473:84;;;;;-1:-1:-1;;;16473:84:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16473:84:0;;;;;;;;;;;;;;;13239:18:::1;;;;;;;;;-1:-1:-1::0;;;;;13239:18:0::1;-1:-1:-1::0;;;;;13239:34:0::1;;:36;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13239:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13239:36:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29::::0;22:12:::1;4:2;-1:-1:::0;13239:36:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;13239:36:0;-1:-1:-1;13239:36:0;;-1:-1:-1;13239:36:0;-1:-1:-1;12984:297:0;-1:-1:-1;12984:297:0:o;9043:592::-;9153:14;9176:13;9198:17;9224;9250:22;9291:14;9307:24;9335:18;9344:8;-1:-1:-1;;;;;9335:18:0;:8;:18::i;:::-;9490:25;;;9371:14;9490:25;;;:16;:25;;;;;;;;;:57;;-1:-1:-1;;;9490:57:0;;;;;;;;;;;;;;9290:63;;-1:-1:-1;9290:63:0;;-1:-1:-1;9371:14:0;;;;;;;;;;-1:-1:-1;;;;;9490:25:0;;:38;;:57;;;;;;;;;;;;;;:25;:57;;;2:2:-1;;;;27:1;24;17:12;2:2;9490:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9490:57:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;9490:57:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9490:57:0;;-1:-1:-1;9490:57:0;-1:-1:-1;9490:57:0;;-1:-1:-1;9490:57:0;-1:-1:-1;9563:66:0;9490:57;;;;;9621:7;9563:11;:66::i;:::-;9556:73;;;;;;;;;;;;;;;;;9043:592;;;;;;;:::o;15267:240::-;15347:12;:15;;15388:47;;;;;;;;15347:15;;;;;:19;;;;15388:47;;;;-1:-1:-1;;;;;15388:47:0;;;;;;;;;;;-1:-1:-1;;15373:62:0;;;;;-1:-1:-1;;;;;;15373:62:0;;;;;;;;-1:-1:-1;15442:20:0;;;:16;:20;;;;;:59;;-1:-1:-1;;;;;;15442:59:0;;;;;;15267:240::o;5505:412::-;5605:13;-1:-1:-1;;;;;5634:17:0;;5630:31;;;-1:-1:-1;5660:1:0;5653:8;;5630:31;5671:14;5687:24;5715:18;5724:8;5715;:18::i;:::-;5777:25;;;5740:34;5777:25;;;:16;:25;;;;;;5670:63;;-1:-1:-1;5670:63:0;-1:-1:-1;;;;;;5777:25:0;5813:33;5809:47;;5855:1;5848:8;;;;;;;5809:47;5872:10;-1:-1:-1;;;;;5872:20:0;;5893:17;5872:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5872:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5872:39:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5872:39:0;;-1:-1:-1;;;;5505:412:0;;;;:::o;6379:422::-;6482:17;-1:-1:-1;;;;;6515:17:0;;6511:31;;;-1:-1:-1;6541:1:0;6534:8;;6511:31;6552:14;6568:24;6596:18;6605:8;6596;:18::i;:::-;6658:25;;;6621:34;6658:25;;;:16;:25;;;;;;6551:63;;-1:-1:-1;6551:63:0;-1:-1:-1;;;;;;6658:25:0;6694:33;6690:47;;6736:1;6729:8;;;;;;;6690:47;6753:10;-1:-1:-1;;;;;6753:23:0;;6777:17;6753:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;10917:557:0;11015:14;11038:13;11060:17;11086;11112:22;11152:20;;:::i;:::-;-1:-1:-1;11152:35:0;;;;;;;;11175:12;11152:35;;;;;;;;;-1:-1:-1;;;;;11152:35:0;;;;;;;11347:36;;-1:-1:-1;;;11347:36:0;;;;11152:35;;-1:-1:-1;;;;;;;;;;11152:35:0;11347:34;;:36;;;;;;;;;;;;;;11152:35;11347:36;;;2:2:-1;;;;27:1;24;17:12;2:2;11347:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11347:36:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;11347:36:0;;;;;;;;;;;;;;;;;;;11457:10;;11347:36;;-1:-1:-1;11347:36:0;;-1:-1:-1;11347:36:0;-1:-1:-1;11347:36:0;;-1:-1:-1;11347:36:0;;-1:-1:-1;11399:69:0;;11347:36;;;;;;;;;;11399:11;:69::i;:::-;11392:76;;;;;;;;;;;;;;;;10917:557;;;;;:::o;15513:190::-;15651:45;;3743:2;15651:31;;;;;;:45;;15513:190::o;15709:259::-;3743:2;15843:24;;;;15709:259::o;15974:432::-;16189:6;16197;16205:7;16214;16223:6;16257:34;16266:7;16282;16257:8;:34::i;:::-;16300:6;16315:9;16333;16351:42;16360:7;16376:15;16351:8;:42::i;:::-;16241:159;;;;-1:-1:-1;16241:159:0;;-1:-1:-1;16241:159:0;-1:-1:-1;16241:159:0;;-1:-1:-1;15974:432:0;-1:-1:-1;;;;;;;15974:432:0:o;17326:9207::-;;;;;;;;;;-1:-1:-1;17326:9207:0;;;;;;;;:::o
Swarm Source
ipfs://33e6819200bf704f62e7563d7c4e1e562e2f94e00a0c2b30dc4ea54dbcf7cb43
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 25 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.