Overview
ETH Balance
0 ETH
ETH Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer Ownersh... | 3314998 | 957 days ago | IN | 0 ETH | 0.00005198 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
EACAggregatorProxy
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2023-08-30
*/
/**
*Submitted for verification at Arbiscan.io on 2023-06-06
*/
/**
*Submitted for verification at moonbeam.moonscan.io on 2023-06-01
*/
// Sources flattened with hardhat v2.12.6 https://hardhat.org
// File contracts/ethereum/v0.6/src/interfaces/AggregatorInterface.sol
// SPDX-License-Identifier: MIT
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/ethereum/v0.6/src/interfaces/AggregatorV3Interface.sol
// SPDX-License-Identifier: MIT
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
);
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/ethereum/v0.6/src/interfaces/AggregatorV2V3Interface.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
interface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface
{
}
// File contracts/ethereum/v0.6/src/Owned.sol
// SPDX-License-Identifier: MIT
pragma solidity >0.6.0 <0.8.0;
/**
* @title The Owned contract
* @notice A contract with helpers for basic contract ownership.
*/
contract Owned {
address 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/ethereum/v0.6/src/AggregatorProxy.sol
// SPDX-License-Identifier: MIT
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);
(
roundId,
answer,
startedAt,
updatedAt,
answeredInRound
) = phaseAggregators[phaseId].getRoundData(aggregatorRoundId);
return addPhaseIds(roundId, answer, startedAt, updatedAt, answeredInRound, 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
(
roundId,
answer,
startedAt,
updatedAt,
answeredInRound
) = current.aggregator.latestRoundData();
return addPhaseIds(roundId, answer, startedAt, updatedAt, answeredInRound, 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
pure
returns (uint80)
{
return uint80(uint256(_phase) << PHASE_OFFSET | _originalId);
}
function parseIds(
uint256 _roundId
)
internal
pure
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
pure
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/ethereum/v0.6/src/interfaces/AccessControllerInterface.sol
// SPDX-License-Identifier: MIT
pragma solidity >0.6.0 <0.8.0;
interface AccessControllerInterface {
function hasAccess(address user, bytes calldata data) external view returns (bool);
}
// File contracts/ethereum/v0.6/src/EACAggregatorProxy.sol
// SPDX-License-Identifier: MIT
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
Contract ABI
API[{"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","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
608060405234801561001057600080fd5b5060405162001ccd38038062001ccd8339818101604052604081101561003557600080fd5b508051602090910151600080546001600160a01b0319163317905581610063816001600160e01b0361007d16565b50610076816001600160e01b036100ec16565b505061016d565b60028054604080518082018252600161ffff80851691909101168082526001600160a01b0395909516602091820181905261ffff19909316851762010000600160b01b0319166201000084021790935560009384526004909252912080546001600160a01b0319169091179055565b6000546001600160a01b0316331461014b576040805162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611b50806200017d6000396000f3fe608060405234801561001057600080fd5b506004361061012d5760003560e01c80638f6b4d91116100b35780638f6b4d91146102b657806392eefe9b146102be5780639a6fc8f5146102e4578063a928c0961461030a578063b5ab58dc14610330578063b633620c1461034d578063bc43cbaf1461036a578063c159730414610372578063e8c4be3014610393578063f2fde38b1461039b578063f8a2abd3146103c1578063feaf968c146103e75761012d565b8063245a7bfc14610132578063313ce5671461015657806350d25bcd1461017457806354fd4d501461018e57806358303b10146101965780636001ac53146101b5578063668a0f02146102175780637284e4161461021f57806379ba50971461029c5780638205bf6a146102a65780638da5cb5b146102ae575b600080fd5b61013a6103ef565b604080516001600160a01b039092168252519081900360200190f35b61015e610404565b6040805160ff9092168252519081900360200190f35b61017c610488565b60408051918252519081900360200190f35b61017c610590565b61019e6105e3565b6040805161ffff9092168252519081900360200190f35b6101db600480360360208110156101cb57600080fd5b50356001600160501b03166105ed565b604080516001600160501b0396871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b61017c610756565b610227610858565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610261578181015183820152602001610249565b50505050905090810190601f16801561028e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a461099b565b005b61017c610a4a565b61013a610b4c565b6101db610b5b565b6102a4600480360360208110156102d457600080fd5b50356001600160a01b0316610cc2565b6101db600480360360208110156102fa57600080fd5b50356001600160501b0316610d31565b6102a46004803603602081101561032057600080fd5b50356001600160a01b0316610e3c565b61017c6004803603602081101561034657600080fd5b5035610f05565b61017c6004803603602081101561036357600080fd5b503561100f565b61013a611112565b61013a6004803603602081101561038857600080fd5b503561ffff16611121565b61013a61113c565b6102a4600480360360208110156103b157600080fd5b50356001600160a01b031661114b565b6102a4600480360360208110156103d757600080fd5b50356001600160a01b03166111e9565b6101db611258565b6002546201000090046001600160a01b031690565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b505afa15801561046b573d6000803e3d6000fd5b505050506040513d602081101561048157600080fd5b5051905090565b6005546000906001600160a01b0316801580610545575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561051857600080fd5b505afa15801561052c573d6000803e3d6000fd5b505050506040513d602081101561054257600080fd5b50515b610582576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61058a611362565b91505090565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b03166354fd4d506040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b60025461ffff1690565b60055460009081908190819081906001600160a01b03168015806106b2575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561068557600080fd5b505afa158015610699573d6000803e3d6000fd5b505050506040513d60208110156106af57600080fd5b50515b6106ef576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6003546001600160a01b031661073a576040805162461bcd60e51b815260206004820152601e6024820152600080516020611adb833981519152604482015290519081900360640190fd5b610743876113b5565b939b929a50909850965090945092505050565b6005546000906001600160a01b0316801580610813575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b1580156107e657600080fd5b505afa1580156107fa573d6000803e3d6000fd5b505050506040513d602081101561081057600080fd5b50515b610850576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61058a6114b2565b6060600260000160029054906101000a90046001600160a01b03166001600160a01b0316637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b1580156108ab57600080fd5b505afa1580156108bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156108e857600080fd5b8101908080516040519392919084600160201b82111561090757600080fd5b90830190602082018581111561091c57600080fd5b8251600160201b81118282018810171561093557600080fd5b82525081516020918201929091019080838360005b8381101561096257818101518382015260200161094a565b50505050905090810190601f16801561098f5780820380516001836020036101000a031916815260200191505b50604052505050905090565b6001546001600160a01b031633146109f3576040805162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015290519081900360640190fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6005546000906001600160a01b0316801580610b07575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610ada57600080fd5b505afa158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50515b610b44576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61058a611560565b6000546001600160a01b031681565b60055460009081908190819081906001600160a01b0316801580610c20575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b505050506040513d6020811015610c1d57600080fd5b50515b610c5d576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6003546001600160a01b0316610ca8576040805162461bcd60e51b815260206004820152601e6024820152600080516020611adb833981519152604482015290519081900360640190fd5b610cb06115b3565b95509550955095509550509091929394565b6000546001600160a01b03163314610d0f576040805162461bcd60e51b81526020600482015260166024820152600080516020611afb833981519152604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60055460009081908190819081906001600160a01b0316801580610df6575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610dc957600080fd5b505afa158015610ddd573d6000803e3d6000fd5b505050506040513d6020811015610df357600080fd5b50515b610e33576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b610743876116a9565b6000546001600160a01b03163314610e89576040805162461bcd60e51b81526020600482015260166024820152600080516020611afb833981519152604482015290519081900360640190fd5b6003546001600160a01b03828116911614610ee9576040805162461bcd60e51b815260206004820152601b60248201527a24b73b30b634b210383937b837b9b2b21030b3b3b932b3b0ba37b960291b604482015290519081900360640190fd5b600380546001600160a01b0319169055610f02816117a4565b50565b6005546000906001600160a01b0316801580610fc2575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610f9557600080fd5b505afa158015610fa9573d6000803e3d6000fd5b505050506040513d6020811015610fbf57600080fd5b50515b610fff576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61100883611813565b9392505050565b6005546000906001600160a01b03168015806110cc575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561109f57600080fd5b505afa1580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b50515b611109576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b611008836118ef565b6005546001600160a01b031681565b6004602052600090815260409020546001600160a01b031681565b6003546001600160a01b031681565b6000546001600160a01b03163314611198576040805162461bcd60e51b81526020600482015260166024820152600080516020611afb833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000546001600160a01b03163314611236576040805162461bcd60e51b81526020600482015260166024820152600080516020611afb833981519152604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60055460009081908190819081906001600160a01b031680158061131d575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b1580156112f057600080fd5b505afa158015611304573d6000803e3d6000fd5b505050506040513d602081101561131a57600080fd5b50515b61135a576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b610cb0611994565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b60035460009081908190819081906001600160a01b031661140b576040805162461bcd60e51b815260206004820152601e6024820152600080516020611adb833981519152604482015290519081900360640190fd5b60035460408051639a6fc8f560e01b81526001600160501b038916600482015290516001600160a01b0390921691639a6fc8f59160248082019260a092909190829003018186803b15801561145f57600080fd5b505afa158015611473573d6000803e3d6000fd5b505050506040513d60a081101561148957600080fd5b508051602082015160408301516060840151608090940151929a91995097509195509350915050565b60006114bc611ac3565b5060408051808201825260025461ffff8116808352620100009091046001600160a01b031660208084018290528451633345078160e11b8152945193946115519463668a0f0292600480840193919291829003018186803b15801561152057600080fd5b505afa158015611534573d6000803e3d6000fd5b505050506040513d602081101561154a57600080fd5b5051611a6b565b6001600160501b031691505090565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b0316638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b60035460009081908190819081906001600160a01b0316611609576040805162461bcd60e51b815260206004820152601e6024820152600080516020611adb833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561165757600080fd5b505afa15801561166b573d6000803e3d6000fd5b505050506040513d60a081101561168157600080fd5b5080516020820151604083015160608401516080909401519299919850965091945092509050565b60008060008060008060006116c6886001600160501b0316611a85565b61ffff8216600090815260046020819052604091829020548251639a6fc8f560e01b81526001600160401b0385169281019290925291519395509193506001600160a01b031691639a6fc8f59160248082019260a092909190829003018186803b15801561173357600080fd5b505afa158015611747573d6000803e3d6000fd5b505050506040513d60a081101561175d57600080fd5b508051602082015160408301516060840151608090940151929a5090985096509094509250611790878787878787611a8d565b939c929b5090995097509095509350505050565b60028054604080518082018252600161ffff80851691909101168082526001600160a01b0395909516602091820181905261ffff19909316851762010000600160b01b0319166201000084021790935560009384526004909252912080546001600160a01b0319169091179055565b60006001600160501b0382111561182c575060006118ea565b60008061183884611a85565b61ffff821660009081526004602052604090205491935091506001600160a01b03168061186b57600093505050506118ea565b806001600160a01b031663b5ab58dc836040518263ffffffff1660e01b815260040180826001600160401b0316815260200191505060206040518083038186803b1580156118b857600080fd5b505afa1580156118cc573d6000803e3d6000fd5b505050506040513d60208110156118e257600080fd5b505193505050505b919050565b60006001600160501b03821115611908575060006118ea565b60008061191484611a85565b61ffff821660009081526004602052604090205491935091506001600160a01b03168061194757600093505050506118ea565b806001600160a01b031663b633620c836040518263ffffffff1660e01b815260040180826001600160401b0316815260200191505060206040518083038186803b1580156118b857600080fd5b60008060008060006119a4611ac3565b5060408051808201825260025461ffff811682526201000090046001600160a01b0316602082018190528251633fabe5a360e21b815292519192909163feaf968c9160048082019260a092909190829003018186803b158015611a0657600080fd5b505afa158015611a1a573d6000803e3d6000fd5b505050506040513d60a0811015611a3057600080fd5b5080516020820151604083015160608401516080909401518551939a509198509650919450909250610cb09087908790879087908790611a8d565b6001600160401b031660409190911b61ffff60401b161790565b604081901c91565b6000806000806000611a9f868c611a6b565b8a8a8a611aac8a8c611a6b565b939f929e50909c509a509098509650505050505050565b60408051808201909152600080825260208201529056fe4e6f2070726f706f7365642061676772656761746f722070726573656e7400004f6e6c792063616c6c61626c65206279206f776e657200000000000000000000a2646970667358221220439fd1c62513ca91a94168f04cf655e36f45906bee7fbcea54d9997e27b3189b64736f6c63430006060033000000000000000000000000f3764b1fc0ab831f75d3edd7435abfe4af675c9a0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012d5760003560e01c80638f6b4d91116100b35780638f6b4d91146102b657806392eefe9b146102be5780639a6fc8f5146102e4578063a928c0961461030a578063b5ab58dc14610330578063b633620c1461034d578063bc43cbaf1461036a578063c159730414610372578063e8c4be3014610393578063f2fde38b1461039b578063f8a2abd3146103c1578063feaf968c146103e75761012d565b8063245a7bfc14610132578063313ce5671461015657806350d25bcd1461017457806354fd4d501461018e57806358303b10146101965780636001ac53146101b5578063668a0f02146102175780637284e4161461021f57806379ba50971461029c5780638205bf6a146102a65780638da5cb5b146102ae575b600080fd5b61013a6103ef565b604080516001600160a01b039092168252519081900360200190f35b61015e610404565b6040805160ff9092168252519081900360200190f35b61017c610488565b60408051918252519081900360200190f35b61017c610590565b61019e6105e3565b6040805161ffff9092168252519081900360200190f35b6101db600480360360208110156101cb57600080fd5b50356001600160501b03166105ed565b604080516001600160501b0396871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b61017c610756565b610227610858565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610261578181015183820152602001610249565b50505050905090810190601f16801561028e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a461099b565b005b61017c610a4a565b61013a610b4c565b6101db610b5b565b6102a4600480360360208110156102d457600080fd5b50356001600160a01b0316610cc2565b6101db600480360360208110156102fa57600080fd5b50356001600160501b0316610d31565b6102a46004803603602081101561032057600080fd5b50356001600160a01b0316610e3c565b61017c6004803603602081101561034657600080fd5b5035610f05565b61017c6004803603602081101561036357600080fd5b503561100f565b61013a611112565b61013a6004803603602081101561038857600080fd5b503561ffff16611121565b61013a61113c565b6102a4600480360360208110156103b157600080fd5b50356001600160a01b031661114b565b6102a4600480360360208110156103d757600080fd5b50356001600160a01b03166111e9565b6101db611258565b6002546201000090046001600160a01b031690565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b505afa15801561046b573d6000803e3d6000fd5b505050506040513d602081101561048157600080fd5b5051905090565b6005546000906001600160a01b0316801580610545575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561051857600080fd5b505afa15801561052c573d6000803e3d6000fd5b505050506040513d602081101561054257600080fd5b50515b610582576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61058a611362565b91505090565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b03166354fd4d506040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b60025461ffff1690565b60055460009081908190819081906001600160a01b03168015806106b2575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561068557600080fd5b505afa158015610699573d6000803e3d6000fd5b505050506040513d60208110156106af57600080fd5b50515b6106ef576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6003546001600160a01b031661073a576040805162461bcd60e51b815260206004820152601e6024820152600080516020611adb833981519152604482015290519081900360640190fd5b610743876113b5565b939b929a50909850965090945092505050565b6005546000906001600160a01b0316801580610813575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b1580156107e657600080fd5b505afa1580156107fa573d6000803e3d6000fd5b505050506040513d602081101561081057600080fd5b50515b610850576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61058a6114b2565b6060600260000160029054906101000a90046001600160a01b03166001600160a01b0316637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b1580156108ab57600080fd5b505afa1580156108bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156108e857600080fd5b8101908080516040519392919084600160201b82111561090757600080fd5b90830190602082018581111561091c57600080fd5b8251600160201b81118282018810171561093557600080fd5b82525081516020918201929091019080838360005b8381101561096257818101518382015260200161094a565b50505050905090810190601f16801561098f5780820380516001836020036101000a031916815260200191505b50604052505050905090565b6001546001600160a01b031633146109f3576040805162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015290519081900360640190fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6005546000906001600160a01b0316801580610b07575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610ada57600080fd5b505afa158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50515b610b44576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61058a611560565b6000546001600160a01b031681565b60055460009081908190819081906001600160a01b0316801580610c20575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b505050506040513d6020811015610c1d57600080fd5b50515b610c5d576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b6003546001600160a01b0316610ca8576040805162461bcd60e51b815260206004820152601e6024820152600080516020611adb833981519152604482015290519081900360640190fd5b610cb06115b3565b95509550955095509550509091929394565b6000546001600160a01b03163314610d0f576040805162461bcd60e51b81526020600482015260166024820152600080516020611afb833981519152604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60055460009081908190819081906001600160a01b0316801580610df6575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610dc957600080fd5b505afa158015610ddd573d6000803e3d6000fd5b505050506040513d6020811015610df357600080fd5b50515b610e33576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b610743876116a9565b6000546001600160a01b03163314610e89576040805162461bcd60e51b81526020600482015260166024820152600080516020611afb833981519152604482015290519081900360640190fd5b6003546001600160a01b03828116911614610ee9576040805162461bcd60e51b815260206004820152601b60248201527a24b73b30b634b210383937b837b9b2b21030b3b3b932b3b0ba37b960291b604482015290519081900360640190fd5b600380546001600160a01b0319169055610f02816117a4565b50565b6005546000906001600160a01b0316801580610fc2575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b158015610f9557600080fd5b505afa158015610fa9573d6000803e3d6000fd5b505050506040513d6020811015610fbf57600080fd5b50515b610fff576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b61100883611813565b9392505050565b6005546000906001600160a01b03168015806110cc575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b15801561109f57600080fd5b505afa1580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b50515b611109576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b611008836118ef565b6005546001600160a01b031681565b6004602052600090815260409020546001600160a01b031681565b6003546001600160a01b031681565b6000546001600160a01b03163314611198576040805162461bcd60e51b81526020600482015260166024820152600080516020611afb833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000546001600160a01b03163314611236576040805162461bcd60e51b81526020600482015260166024820152600080516020611afb833981519152604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60055460009081908190819081906001600160a01b031680158061131d575060408051630d629b5f60e31b815233600482018181526024830193845236604484018190526001600160a01b03861694636b14daf8946000939190606401848480828437600083820152604051601f909101601f1916909201965060209550909350505081840390508186803b1580156112f057600080fd5b505afa158015611304573d6000803e3d6000fd5b505050506040513d602081101561131a57600080fd5b50515b61135a576040805162461bcd60e51b81526020600482015260096024820152684e6f2061636365737360b81b604482015290519081900360640190fd5b610cb0611994565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b60035460009081908190819081906001600160a01b031661140b576040805162461bcd60e51b815260206004820152601e6024820152600080516020611adb833981519152604482015290519081900360640190fd5b60035460408051639a6fc8f560e01b81526001600160501b038916600482015290516001600160a01b0390921691639a6fc8f59160248082019260a092909190829003018186803b15801561145f57600080fd5b505afa158015611473573d6000803e3d6000fd5b505050506040513d60a081101561148957600080fd5b508051602082015160408301516060840151608090940151929a91995097509195509350915050565b60006114bc611ac3565b5060408051808201825260025461ffff8116808352620100009091046001600160a01b031660208084018290528451633345078160e11b8152945193946115519463668a0f0292600480840193919291829003018186803b15801561152057600080fd5b505afa158015611534573d6000803e3d6000fd5b505050506040513d602081101561154a57600080fd5b5051611a6b565b6001600160501b031691505090565b6000600260000160029054906101000a90046001600160a01b03166001600160a01b0316638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b60035460009081908190819081906001600160a01b0316611609576040805162461bcd60e51b815260206004820152601e6024820152600080516020611adb833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561165757600080fd5b505afa15801561166b573d6000803e3d6000fd5b505050506040513d60a081101561168157600080fd5b5080516020820151604083015160608401516080909401519299919850965091945092509050565b60008060008060008060006116c6886001600160501b0316611a85565b61ffff8216600090815260046020819052604091829020548251639a6fc8f560e01b81526001600160401b0385169281019290925291519395509193506001600160a01b031691639a6fc8f59160248082019260a092909190829003018186803b15801561173357600080fd5b505afa158015611747573d6000803e3d6000fd5b505050506040513d60a081101561175d57600080fd5b508051602082015160408301516060840151608090940151929a5090985096509094509250611790878787878787611a8d565b939c929b5090995097509095509350505050565b60028054604080518082018252600161ffff80851691909101168082526001600160a01b0395909516602091820181905261ffff19909316851762010000600160b01b0319166201000084021790935560009384526004909252912080546001600160a01b0319169091179055565b60006001600160501b0382111561182c575060006118ea565b60008061183884611a85565b61ffff821660009081526004602052604090205491935091506001600160a01b03168061186b57600093505050506118ea565b806001600160a01b031663b5ab58dc836040518263ffffffff1660e01b815260040180826001600160401b0316815260200191505060206040518083038186803b1580156118b857600080fd5b505afa1580156118cc573d6000803e3d6000fd5b505050506040513d60208110156118e257600080fd5b505193505050505b919050565b60006001600160501b03821115611908575060006118ea565b60008061191484611a85565b61ffff821660009081526004602052604090205491935091506001600160a01b03168061194757600093505050506118ea565b806001600160a01b031663b633620c836040518263ffffffff1660e01b815260040180826001600160401b0316815260200191505060206040518083038186803b1580156118b857600080fd5b60008060008060006119a4611ac3565b5060408051808201825260025461ffff811682526201000090046001600160a01b0316602082018190528251633fabe5a360e21b815292519192909163feaf968c9160048082019260a092909190829003018186803b158015611a0657600080fd5b505afa158015611a1a573d6000803e3d6000fd5b505050506040513d60a0811015611a3057600080fd5b5080516020820151604083015160608401516080909401518551939a509198509650919450909250610cb09087908790879087908790611a8d565b6001600160401b031660409190911b61ffff60401b161790565b604081901c91565b6000806000806000611a9f868c611a6b565b8a8a8a611aac8a8c611a6b565b939f929e50909c509a509098509650505050505050565b60408051808201909152600080825260208201529056fe4e6f2070726f706f7365642061676772656761746f722070726573656e7400004f6e6c792063616c6c61626c65206279206f776e657200000000000000000000a2646970667358221220439fd1c62513ca91a94168f04cf655e36f45906bee7fbcea54d9997e27b3189b64736f6c63430006060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f3764b1fc0ab831f75d3edd7435abfe4af675c9a0000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _aggregator (address): 0xf3764B1fc0Ab831f75D3edd7435ABFE4Af675c9A
Arg [1] : _accessController (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f3764b1fc0ab831f75d3edd7435abfe4af675c9a
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
17969:9057:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17969:9057:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;13897:124:0;;;:::i;:::-;;;;-1:-1:-1;;;;;13897:124:0;;;;;;;;;;;;;;14294:136;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19037:134;;;:::i;:::-;;;;;;;;;;;;;;;;14546:136;;;:::i;14087:103::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25542:305;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;25542:305:0;-1:-1:-1;;;;;25542:305:0;;:::i;:::-;;;;-1:-1:-1;;;;;25542:305:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21632:133;;;:::i;14779: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;14779:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3129:264;;;:::i;:::-;;19702:141;;;:::i;2470:20::-;;;:::i;26412:288::-;;;:::i;18425:154::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18425:154:0;-1:-1:-1;;;;;18425:154:0;;:::i;23103:272::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;23103:272:0;-1:-1:-1;;;;;23103:272:0;;:::i;15521:242::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15521:242:0;-1:-1:-1;;;;;15521:242:0;;:::i;20331:152::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20331:152:0;;:::i;21010:159::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;21010:159:0;;:::i;18023:49::-;;;:::i;4198:66::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4198:66:0;;;;:::i;4144:49::-;;;:::i;2878:157::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2878:157:0;-1:-1:-1;;;;;2878:157:0;;:::i;15093:152::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15093:152:0;-1:-1:-1;;;;;15093:152:0;;:::i;24656:255::-;;;:::i;13897:124::-;13991:12;:23;;;;-1:-1:-1;;;;;13991:23:0;;13897:124::o;14294:136::-;14366:5;14390:12;:23;;;;;;;;;;-1:-1:-1;;;;;14390:23:0;-1:-1:-1;;;;;14390:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14390:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14390:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14390:34:0;;-1:-1:-1;14294:136:0;:::o;19037:134::-;26901:16;;19120:6;;-1:-1:-1;;;;;26901:16:0;26932:25;;;:63;;-1:-1:-1;26961:34:0;;;-1:-1:-1;;;26961:34:0;;26974:10;26961:34;;;;;;;;;;;;26986:8;26961:34;;;;;;-1:-1:-1;;;;;26961:12:0;;;;;26986:8;;26961:34;;;;26986:8;;;;26961:34;1:33:-1;99:1;81:16;;;74:27;26961:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26961:34:0;;-1:-1:-1;26961:34:0;;-1:-1:-1;;;26961:34:0;;;;-1:-1:-1;26961:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26961:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26961:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26961:34:0;26932:63;26924:85;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;;;;19145:20:::1;:18;:20::i;:::-;19138:27;;19037:134:::0;;:::o;14546:136::-;14617:7;14643:12;:23;;;;;;;;;;-1:-1:-1;;;;;14643:23:0;-1:-1:-1;;;;;14643:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;14087:103:0;14169:12;:15;;;14087:103;:::o;25542:305::-;26901:16;;25671:14;;;;;;;;;;-1:-1:-1;;;;;26901:16:0;26932:25;;;:63;;-1:-1:-1;26961:34:0;;;-1:-1:-1;;;26961:34:0;;26974:10;26961:34;;;;;;;;;;;;26986:8;26961:34;;;;;;-1:-1:-1;;;;;26961:12:0;;;;;26986:8;;26961:34;;;;26986:8;;;;26961:34;1:33:-1;99:1;81:16;;;74:27;26961:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26961:34:0;;-1:-1:-1;26961:34:0;;-1:-1:-1;;;26961:34:0;;;;-1:-1:-1;26961:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26961:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26961:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26961:34:0;26932:63;26924:85;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;;;;17023:18:::1;::::0;-1:-1:-1;;;;;17023:18:0::1;17007:84;;;::::0;;-1:-1:-1;;;17007:84:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;17007:84:0;;;;;;;;;;;;;::::1;;25805:36:::2;25832:8;25805:26;:36::i;:::-;25798:43:::0;;;;-1:-1:-1;25798:43:0;;-1:-1:-1;25798:43:0;-1:-1:-1;25798:43:0;;-1:-1:-1;25542:305:0;-1:-1:-1;;;25542:305:0:o;21632:133::-;26901:16;;21714:7;;-1:-1:-1;;;;;26901:16:0;26932:25;;;:63;;-1:-1:-1;26961:34:0;;;-1:-1:-1;;;26961:34:0;;26974:10;26961:34;;;;;;;;;;;;26986:8;26961:34;;;;;;-1:-1:-1;;;;;26961:12:0;;;;;26986:8;;26961:34;;;;26986:8;;;;26961:34;1:33:-1;99:1;81:16;;;74:27;26961:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26961:34:0;;-1:-1:-1;26961:34:0;;-1:-1:-1;;;26961:34:0;;;;-1:-1:-1;26961:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26961:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26961:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26961:34:0;26932:63;26924:85;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;;;;21740:19:::1;:17;:19::i;14779:150::-:0;14854:13;14886:12;:23;;;;;;;;;;-1:-1:-1;;;;;14886:23:0;-1:-1:-1;;;;;14886:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14886:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14886:37:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;14886: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;14886:37:0;;;;;;;;;;;;;-1:-1:-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;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;14886:37:0;;420:4:-1;411:14;;;;14886:37:0;;;;;411:14:-1;14886: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;14886:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14879:44;;14779:150;:::o;3129:264::-;3202:12;;-1:-1:-1;;;;;3202:12:0;3188:10;:26;3180:61;;;;;-1:-1:-1;;;3180:61:0;;;;;;;;;;;;-1:-1:-1;;;3180:61:0;;;;;;;;;;;;;;;3250:16;3269:5;;3289:10;-1:-1:-1;;;;;;3281:18:0;;;;;;;-1:-1:-1;3306:25:0;;;;;;;3345:42;;-1:-1:-1;;;;;3269:5:0;;;;3289:10;;3269:5;;3345:42;;;3129:264;:::o;19702:141::-;26901:16;;19788:7;;-1:-1:-1;;;;;26901:16:0;26932:25;;;:63;;-1:-1:-1;26961:34:0;;;-1:-1:-1;;;26961:34:0;;26974:10;26961:34;;;;;;;;;;;;26986:8;26961:34;;;;;;-1:-1:-1;;;;;26961:12:0;;;;;26986:8;;26961:34;;;;26986:8;;;;26961:34;1:33:-1;99:1;81:16;;;74:27;26961:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26961:34:0;;-1:-1:-1;26961:34:0;;-1:-1:-1;;;26961:34:0;;;;-1:-1:-1;26961:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26961:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26961:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26961:34:0;26932:63;26924:85;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;;;;19814:23:::1;:21;:23::i;2470:20::-:0;;;-1:-1:-1;;;;;2470:20:0;;:::o;26412:288::-;26901:16;;26529:14;;;;;;;;;;-1:-1:-1;;;;;26901:16:0;26932:25;;;:63;;-1:-1:-1;26961:34:0;;;-1:-1:-1;;;26961:34:0;;26974:10;26961:34;;;;;;;;;;;;26986:8;26961:34;;;;;;-1:-1:-1;;;;;26961:12:0;;;;;26986:8;;26961:34;;;;26986:8;;;;26961:34;1:33:-1;99:1;81:16;;;74:27;26961:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26961:34:0;;-1:-1:-1;26961:34:0;;-1:-1:-1;;;26961:34:0;;;;-1:-1:-1;26961:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26961:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26961:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26961:34:0;26932:63;26924:85;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;;;;17023:18:::1;::::0;-1:-1:-1;;;;;17023:18:0::1;17007:84;;;::::0;;-1:-1:-1;;;17007:84:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;17007:84:0;;;;;;;;;;;;;::::1;;26663:31:::2;:29;:31::i;:::-;26656:38;;;;;;;;;;26412:288:::0;;;;;;:::o;18425:154::-;3533:5;;-1:-1:-1;;;;;3533:5:0;3519:10;:19;3511:54;;;;;-1:-1:-1;;;3511:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3511:54:0;;;;;;;;;;;;;;;18510:16:::1;:63:::0;;-1:-1:-1;;;;;;18510:63:0::1;-1:-1:-1::0;;;;;18510:63:0;;;::::1;::::0;;;::::1;::::0;;18425:154::o;23103:272::-;26901:16;;23207:14;;;;;;;;;;-1:-1:-1;;;;;26901:16:0;26932:25;;;:63;;-1:-1:-1;26961:34:0;;;-1:-1:-1;;;26961:34:0;;26974:10;26961:34;;;;;;;;;;;;26986:8;26961:34;;;;;;-1:-1:-1;;;;;26961:12:0;;;;;26986:8;;26961:34;;;;26986:8;;;;26961:34;1:33:-1;99:1;81:16;;;74:27;26961:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26961:34:0;;-1:-1:-1;26961:34:0;;-1:-1:-1;;;26961:34:0;;;;-1:-1:-1;26961:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26961:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26961:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26961:34:0;26932:63;26924:85;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;;;;23341:28:::1;23360:8;23341:18;:28::i;15521:242::-:0;3533:5;;-1:-1:-1;;;;;3533:5:0;3519:10;:19;3511:54;;;;;-1:-1:-1;;;3511:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3511:54:0;;;;;;;;;;;;;;;15641:18:::1;::::0;-1:-1:-1;;;;;15618:42:0;;::::1;15641:18:::0;::::1;15618:42;15610:82;;;::::0;;-1:-1:-1;;;15610:82:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15610:82:0;;;;;;;;;;;;;::::1;;15706:18;15699:25:::0;;-1:-1:-1;;;;;;15699:25:0::1;::::0;;15731:26:::1;15745:11:::0;15731:13:::1;:26::i;:::-;15521:242:::0;:::o;20331:152::-;26901:16;;20427:6;;-1:-1:-1;;;;;26901:16:0;26932:25;;;:63;;-1:-1:-1;26961:34:0;;;-1:-1:-1;;;26961:34:0;;26974:10;26961:34;;;;;;;;;;;;26986:8;26961:34;;;;;;-1:-1:-1;;;;;26961:12:0;;;;;26986:8;;26961:34;;;;26986:8;;;;26961:34;1:33:-1;99:1;81:16;;;74:27;26961:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26961:34:0;;-1:-1:-1;26961:34:0;;-1:-1:-1;;;26961:34:0;;;;-1:-1:-1;26961:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26961:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26961:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26961:34:0;26932:63;26924:85;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;;;;20452:25:::1;20468:8;20452:15;:25::i;:::-;20445:32:::0;20331:152;-1:-1:-1;;;20331:152:0:o;21010:159::-;26901:16;;21109:7;;-1:-1:-1;;;;;26901:16:0;26932:25;;;:63;;-1:-1:-1;26961:34:0;;;-1:-1:-1;;;26961:34:0;;26974:10;26961:34;;;;;;;;;;;;26986:8;26961:34;;;;;;-1:-1:-1;;;;;26961:12:0;;;;;26986:8;;26961:34;;;;26986:8;;;;26961:34;1:33:-1;99:1;81:16;;;74:27;26961:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26961:34:0;;-1:-1:-1;26961:34:0;;-1:-1:-1;;;26961:34:0;;;;-1:-1:-1;26961:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26961:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26961:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26961:34:0;26932:63;26924:85;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;;;;21135:28:::1;21154:8;21135:18;:28::i;18023:49::-:0;;;-1:-1:-1;;;;;18023:49:0;;:::o;4198:66::-;;;;;;;;;;;;-1:-1:-1;;;;;4198:66:0;;:::o;4144:49::-;;;-1:-1:-1;;;;;4144:49:0;;:::o;2878:157::-;3533:5;;-1:-1:-1;;;;;3533:5:0;3519:10;:19;3511:54;;;;;-1:-1:-1;;;3511:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3511:54:0;;;;;;;;;;;;;;;2959:12:::1;:18:::0;;-1:-1:-1;;;;;;2959:18:0::1;-1:-1:-1::0;;;;;2959:18:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;3018:5:0;;2991:38:::1;::::0;2959:18;;3018:5:::1;::::0;2991:38:::1;::::0;-1:-1:-1;2991:38:0::1;2878:157:::0;:::o;15093:152::-;3533:5;;-1:-1:-1;;;;;3533:5:0;3519:10;:19;3511:54;;;;;-1:-1:-1;;;3511:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3511:54:0;;;;;;;;;;;;;;;15182:18:::1;:57:::0;;-1:-1:-1;;;;;;15182:57:0::1;-1:-1:-1::0;;;;;15182:57:0;;;::::1;::::0;;;::::1;::::0;;15093:152::o;24656:255::-;26901:16;;24748:14;;;;;;;;;;-1:-1:-1;;;;;26901:16:0;26932:25;;;:63;;-1:-1:-1;26961:34:0;;;-1:-1:-1;;;26961:34:0;;26974:10;26961:34;;;;;;;;;;;;26986:8;26961:34;;;;;;-1:-1:-1;;;;;26961:12:0;;;;;26986:8;;26961:34;;;;26986:8;;;;26961:34;1:33:-1;99:1;81:16;;;74:27;26961:34:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;26961:34:0;;-1:-1:-1;26961:34:0;;-1:-1:-1;;;26961:34:0;;;;-1:-1:-1;26961:34:0;;;;;2:2:-1;;;;27:1;24;17:12;2:2;26961:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26961:34:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26961:34:0;26932:63;26924:85;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;-1:-1:-1;;;26924:85:0;;;;;;;;;;;;;;;24882:23:::1;:21;:23::i;4916:163::-:0;5003:13;5035:12;:23;;;;;;;;;;-1:-1:-1;;;;;5035:23:0;-1:-1:-1;;;;;5035:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;12639:314:0;17023:18;;12762:14;;;;;;;;;;-1:-1:-1;;;;;17023:18:0;17007:84;;;;;-1:-1:-1;;;17007:84:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17007:84:0;;;;;;;;;;;;;;;12906:18:::1;::::0;:41:::1;::::0;;-1:-1:-1;;;12906:41:0;;-1:-1:-1;;;;;12906:41:0;::::1;;::::0;::::1;::::0;;;-1:-1:-1;;;;;12906: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;12906:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12906:41:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29::::0;22:12:::1;4:2;-1:-1:::0;12906:41:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;12906:41:0;-1:-1:-1;12906:41:0;;-1:-1:-1;12906:41:0;-1:-1:-1;12639:314:0;-1:-1:-1;;12639:314:0:o;7900:247::-;7986:15;8013:18;;:::i;:::-;-1:-1:-1;8013:33:0;;;;;;;;8034:12;8013:33;;;;;;;;;;;-1:-1:-1;;;;;8013:33:0;;;;;;;;8109:30;;-1:-1:-1;;;8109:30:0;;;;8013:33;;8083:58;;8109:28;;:30;;;;;8013:33;;8109:30;;;;;;8013:33;8109:30;;;2:2:-1;;;;27:1;24;17:12;2:2;8109:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8109:30:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8109:30:0;8083:8;:58::i;:::-;-1:-1:-1;;;;;8076:65:0;;;;7900:247;:::o;5477:173::-;5567:17;5603:12;:23;;;;;;;;;;-1:-1:-1;;;;;5603:23:0;-1:-1:-1;;;;;5603:39:0;;:41;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;13518:297:0;17023:18;;13629:14;;;;;;;;;;-1:-1:-1;;;;;17023:18:0;17007:84;;;;;-1:-1:-1;;;17007:84:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17007:84:0;;;;;;;;;;;;;;;13773:18:::1;;;;;;;;;-1:-1:-1::0;;;;;13773:18:0::1;-1:-1:-1::0;;;;;13773:34:0::1;;:36;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13773:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13773:36:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29::::0;22:12:::1;4:2;-1:-1:::0;13773:36:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;13773:36:0;-1:-1:-1;13773:36:0;;-1:-1:-1;13773:36:0;-1:-1:-1;13518:297:0;-1:-1:-1;13518:297:0:o;9611:575::-;9721:14;9744:13;9766:17;9792;9818:22;9859:14;9875:24;9903:18;9912:8;-1:-1:-1;;;;;9903:18:0;:8;:18::i;:::-;10031:25;;;;;;;:16;:25;;;;;;;;;;:57;;-1:-1:-1;;;10031:57:0;;-1:-1:-1;;;;;10031:57:0;;;;;;;;;;;9858:63;;-1:-1:-1;9858:63:0;;-1:-1:-1;;;;;;10031:25:0;;:38;;:57;;;;;;;;;;;;;;;:25;:57;;;2:2:-1;;;;27:1;24;17:12;2:2;10031:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10031:57:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;10031:57:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10031:57:0;;-1:-1:-1;10031:57:0;-1:-1:-1;10031:57:0;;-1:-1:-1;10031:57:0;-1:-1:-1;10104:76:0;10031:57;;;;;10172:7;10104:11;:76::i;:::-;10097:83;;;;-1:-1:-1;10097:83:0;;-1:-1:-1;10097:83:0;-1:-1:-1;10097:83:0;;-1:-1:-1;9611:575:0;-1:-1:-1;;;;9611:575:0:o;15801:240::-;15881:12;:15;;15922:47;;;;;;;;15881:15;;;;;:19;;;;15922:47;;;;-1:-1:-1;;;;;15922:47:0;;;;;;;;;;;-1:-1:-1;;15907:62:0;;;;;-1:-1:-1;;;;;;15907:62:0;;;;;;;;-1:-1:-1;15976:20:0;;;:16;:20;;;;;:59;;-1:-1:-1;;;;;;15976:59:0;;;;;;15801:240::o;6073:412::-;6173:13;-1:-1:-1;;;;;6202:17:0;;6198:31;;;-1:-1:-1;6228:1:0;6221:8;;6198:31;6239:14;6255:24;6283:18;6292:8;6283;:18::i;:::-;6345:25;;;6308:34;6345:25;;;:16;:25;;;;;;6238:63;;-1:-1:-1;6238:63:0;-1:-1:-1;;;;;;6345:25:0;6381:33;6377:47;;6423:1;6416:8;;;;;;;6377:47;6440:10;-1:-1:-1;;;;;6440:20:0;;6461:17;6440:39;;;;;;;;;;;;;-1:-1:-1;;;;;6440:39:0;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6440:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6440:39:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6440:39:0;;-1:-1:-1;;;;6073:412:0;;;;:::o;6947:422::-;7050:17;-1:-1:-1;;;;;7083:17:0;;7079:31;;;-1:-1:-1;7109:1:0;7102:8;;7079:31;7120:14;7136:24;7164:18;7173:8;7164;:18::i;:::-;7226:25;;;7189:34;7226:25;;;:16;:25;;;;;;7119:63;;-1:-1:-1;7119:63:0;-1:-1:-1;;;;;;7226:25:0;7262:33;7258:47;;7304:1;7297:8;;;;;;;7258:47;7321:10;-1:-1:-1;;;;;7321:23:0;;7345:17;7321:42;;;;;;;;;;;;;-1:-1:-1;;;;;7321:42:0;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;11468:540:0;11566:14;11589:13;11611:17;11637;11663:22;11703:20;;:::i;:::-;-1:-1:-1;11703:35:0;;;;;;;;11726:12;11703:35;;;;;;;;;-1:-1:-1;;;;;11703:35:0;;;;;;;11871:36;;-1:-1:-1;;;11871:36:0;;;;11703:35;;;;11871:34;;:36;;;;;;;;;;;;;;;11703:35;11871:36;;;2:2:-1;;;;27:1;24;17:12;2:2;11871:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11871:36:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;11871:36:0;;;;;;;;;;;;;;;;;;;11991:10;;11871:36;;-1:-1:-1;11871:36:0;;-1:-1:-1;11871:36:0;-1:-1:-1;11871:36:0;;-1:-1:-1;11871:36:0;;-1:-1:-1;11923:79:0;;11871:36;;;;;;;;;;11923:11;:79::i;16047:190::-;-1:-1:-1;;;;;16185:45:0;4311:2;16185:31;;;;-1:-1:-1;;;16185:31:0;:45;;16047:190::o;16243:259::-;4311:2;16377:24;;;;16243:259::o;16508:432::-;16723:6;16731;16739:7;16748;16757:6;16791:34;16800:7;16816;16791:8;:34::i;:::-;16834:6;16849:9;16867;16885:42;16894:7;16910:15;16885:8;:42::i;:::-;16775:159;;;;-1:-1:-1;16775:159:0;;-1:-1:-1;16775:159:0;-1:-1:-1;16775:159:0;;-1:-1:-1;16508:432:0;-1:-1:-1;;;;;;;16508:432:0:o;17969:9057::-;;;;;;;;;;-1:-1:-1;17969:9057:0;;;;;;;;:::o
Swarm Source
ipfs://439fd1c62513ca91a94168f04cf655e36f45906bee7fbcea54d9997e27b3189b
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.