Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 12,516 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Submit Value | 15879737 | 738 days ago | IN | 0 ETH | 0.00445386 | ||||
Submit Value | 15879652 | 738 days ago | IN | 0 ETH | 0.00445386 | ||||
Submit Value | 15879141 | 738 days ago | IN | 0 ETH | 0.00415693 | ||||
Submit Value | 15878914 | 738 days ago | IN | 0 ETH | 0.00356308 | ||||
Submit Value | 15878806 | 738 days ago | IN | 0 ETH | 0.00356308 | ||||
Submit Value | 15878698 | 738 days ago | IN | 0 ETH | 0.00333478 | ||||
Submit Value | 15878280 | 738 days ago | IN | 0 ETH | 0.00326616 | ||||
Submit Value | 15877960 | 738 days ago | IN | 0 ETH | 0.00445386 | ||||
Submit Value | 15877829 | 738 days ago | IN | 0 ETH | 0.00415693 | ||||
Submit Value | 15877622 | 738 days ago | IN | 0 ETH | 0.00445386 | ||||
Submit Value | 15877362 | 738 days ago | IN | 0 ETH | 0.00475078 | ||||
Submit Value | 15876669 | 738 days ago | IN | 0 ETH | 0.00534463 | ||||
Submit Value | 15876515 | 738 days ago | IN | 0 ETH | 0.00534463 | ||||
Submit Value | 15876099 | 738 days ago | IN | 0 ETH | 0.00772002 | ||||
Submit Value | 15875912 | 738 days ago | IN | 0 ETH | 0.00861079 | ||||
Submit Value | 15875536 | 738 days ago | IN | 0 ETH | 0.00475078 | ||||
Submit Value | 15875298 | 738 days ago | IN | 0 ETH | 0.00277009 | ||||
Submit Value | 15875256 | 738 days ago | IN | 0 ETH | 0.00653232 | ||||
Submit Value | 15875177 | 738 days ago | IN | 0 ETH | 0.00386001 | ||||
Submit Value | 15875145 | 738 days ago | IN | 0 ETH | 0.00475078 | ||||
Submit Value | 15875030 | 738 days ago | IN | 0 ETH | 0.00415693 | ||||
Submit Value | 15874884 | 738 days ago | IN | 0 ETH | 0.00326616 | ||||
Submit Value | 15874334 | 738 days ago | IN | 0 ETH | 0.00326603 | ||||
Submit Value | 15874214 | 738 days ago | IN | 0 ETH | 0.00326616 | ||||
Submit Value | 15874073 | 738 days ago | IN | 0 ETH | 0.00326616 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | ||||
---|---|---|---|---|---|---|---|
21068110 | 11 days ago | 0 ETH | |||||
21068110 | 11 days ago | 0 ETH | |||||
21068110 | 11 days ago | 0 ETH | |||||
21068110 | 11 days ago | 0 ETH | |||||
21068110 | 11 days ago | 0 ETH | |||||
21068110 | 11 days ago | 0 ETH | |||||
21068110 | 11 days ago | 0 ETH | |||||
21068110 | 11 days ago | 0 ETH | |||||
18941810 | 308 days ago | 0 ETH | |||||
18941810 | 308 days ago | 0 ETH | |||||
18941810 | 308 days ago | 0 ETH | |||||
18941810 | 308 days ago | 0 ETH | |||||
18941784 | 308 days ago | 0 ETH | |||||
18941784 | 308 days ago | 0 ETH | |||||
18941784 | 308 days ago | 0 ETH | |||||
18941784 | 308 days ago | 0 ETH | |||||
17435605 | 519 days ago | 0 ETH | |||||
17435605 | 519 days ago | 0 ETH | |||||
17435605 | 519 days ago | 0 ETH | |||||
17435605 | 519 days ago | 0 ETH | |||||
17005603 | 580 days ago | 0 ETH | |||||
17005603 | 580 days ago | 0 ETH | |||||
17005603 | 580 days ago | 0 ETH | |||||
17005603 | 580 days ago | 0 ETH | |||||
16703044 | 623 days ago | 0 ETH |
Loading...
Loading
Contract Name:
Oracle
Compiler Version
v0.8.3+commit.8d00100c
Optimization Enabled:
Yes with 300 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.3; import "./interfaces/IController.sol"; import "./TellorVars.sol"; /** @author Tellor Inc. @title Oracle @dev This is the Oracle contract which defines the functionality for the Tellor * oracle, where reporters submit values on chain and users can retrieve values. */ contract Oracle is TellorVars { // Storage uint256 public reportingLock = 12 hours; // amount of time before a reporter is able to submit a value again uint256 public timeBasedReward = 5e17; // time based reward for a reporter for successfully submitting a value uint256 public timeOfLastNewValue = block.timestamp; // time of the last new submitted value, originally set to the block timestamp uint256 public tipsInContract; // amount of tips within the contract mapping(bytes32 => Report) private reports; // mapping of query IDs to a report mapping(bytes32 => uint256) public tips; // mapping of query IDs to the amount of TRB they are tipped mapping(address => uint256) private reporterLastTimestamp; // mapping of reporter addresses to the timestamp of their last reported value mapping(address => uint256) private reportsSubmittedByAddress; // mapping of reporter addresses to the number of reports they've submitted mapping(address => uint256) private tipsByUser; // mapping of a user to the amount of tips they've paid // Structs struct Report { uint256[] timestamps; // array of all newValueTimestamps reported mapping(uint256 => uint256) timestampIndex; // mapping of timestamps to respective indices mapping(uint256 => uint256) timestampToBlockNum; // mapping of timestamp to block number mapping(uint256 => bytes) valueByTimestamp; // mapping of timestamps to values mapping(uint256 => address) reporterByTimestamp; // mapping of timestamps to reporters } // Events event ReportingLockChanged(uint256 _newReportingLock); event NewReport( bytes32 _queryId, uint256 _time, bytes _value, uint256 _reward, uint256 _nonce, bytes _queryData, address _reporter ); event TimeBasedRewardsChanged(uint256 _newTimeBasedReward); event TipAdded( address indexed _user, bytes32 indexed _queryId, uint256 _tip, uint256 _totalTip, bytes _queryData ); /** * @dev Changes reporting lock for reporters. * Note: this function is only callable by the Governance contract. * @param _newReportingLock is the new reporting lock. */ function changeReportingLock(uint256 _newReportingLock) external { require( msg.sender == IController(TELLOR_ADDRESS).addresses(_GOVERNANCE_CONTRACT), "Only governance contract can change reporting lock." ); require(_newReportingLock < 8640000, "Invalid _newReportingLock value"); reportingLock = _newReportingLock; emit ReportingLockChanged(_newReportingLock); } /** * @dev Changes time based reward for reporters. * Note: this function is only callable by the Governance contract. * @param _newTimeBasedReward is the new time based reward. */ function changeTimeBasedReward(uint256 _newTimeBasedReward) external { require( msg.sender == IController(TELLOR_ADDRESS).addresses(_GOVERNANCE_CONTRACT), "Only governance contract can change time based reward." ); timeBasedReward = _newTimeBasedReward; emit TimeBasedRewardsChanged(_newTimeBasedReward); } /** * @dev Removes a value from the oracle. * Note: this function is only callable by the Governance contract. * @param _queryId is ID of the specific data feed * @param _timestamp is the timestamp of the data value to remove */ function removeValue(bytes32 _queryId, uint256 _timestamp) external { require( msg.sender == IController(TELLOR_ADDRESS).addresses(_GOVERNANCE_CONTRACT) || msg.sender == IController(TELLOR_ADDRESS).addresses(_ORACLE_CONTRACT), "caller must be the governance contract or the oracle contract" ); Report storage rep = reports[_queryId]; uint256 _index = rep.timestampIndex[_timestamp]; // Shift all timestamps back to reflect deletion of value for (uint256 i = _index; i < rep.timestamps.length - 1; i++) { rep.timestamps[i] = rep.timestamps[i + 1]; rep.timestampIndex[rep.timestamps[i]] -= 1; } // Delete and reset timestamp and value delete rep.timestamps[rep.timestamps.length - 1]; rep.timestamps.pop(); rep.valueByTimestamp[_timestamp] = ""; rep.timestampIndex[_timestamp] = 0; } /** * @dev Allows a reporter to submit a value to the oracle * @param _queryId is ID of the specific data feed. Equals keccak256(_queryData) for non-legacy IDs * @param _value is the value the user submits to the oracle * @param _nonce is the current value count for the query id * @param _queryData is the data used to fulfill the data query */ function submitValue( bytes32 _queryId, bytes calldata _value, uint256 _nonce, bytes memory _queryData ) external { Report storage rep = reports[_queryId]; require( _nonce == rep.timestamps.length, "nonce must match timestamp index" ); // Require reporter to abide by given reporting lock require( block.timestamp - reporterLastTimestamp[msg.sender] > reportingLock, "still in reporter time lock, please wait!" ); require( address(this) == IController(TELLOR_ADDRESS).addresses(_ORACLE_CONTRACT), "can only submit to current oracle contract" ); require( _queryId == keccak256(_queryData) || uint256(_queryId) <= 100, "id must be hash of bytes data" ); reporterLastTimestamp[msg.sender] = block.timestamp; IController _tellor = IController(TELLOR_ADDRESS); // Checks that reporter is not already staking TRB (uint256 _status, ) = _tellor.getStakerInfo(msg.sender); require(_status == 1, "Reporter status is not staker"); // Check is in case the stake amount increases require( _tellor.balanceOf(msg.sender) >= _tellor.uints(_STAKE_AMOUNT), "balance must be greater than stake amount" ); // Checks for no double reporting of timestamps require( rep.reporterByTimestamp[block.timestamp] == address(0), "timestamp already reported for" ); // Update number of timestamps, value for given timestamp, and reporter for timestamp rep.timestampIndex[block.timestamp] = rep.timestamps.length; rep.timestamps.push(block.timestamp); rep.timestampToBlockNum[block.timestamp] = block.number; rep.valueByTimestamp[block.timestamp] = _value; rep.reporterByTimestamp[block.timestamp] = msg.sender; // Send tips + timeBasedReward to reporter of value, and reset tips for ID (uint256 _tip, uint256 _reward) = getCurrentReward(_queryId); tipsInContract -= _tip; if (_reward + _tip > 0) { _tellor.transfer(msg.sender, _reward + _tip); } tips[_queryId] = 0; // Update last oracle value and number of values submitted by a reporter timeOfLastNewValue = block.timestamp; reportsSubmittedByAddress[msg.sender]++; emit NewReport( _queryId, block.timestamp, _value, _tip + _reward, _nonce, _queryData, msg.sender ); } /** * @dev Adds tips to incentivize reporters to submit values for specific data IDs. * @param _queryId is ID of the specific data feed * @param _tip is the amount to tip the given data ID * @param _queryData is required for IDs greater than 100, informs reporters how to fulfill request. See github.com/tellor-io/dataSpecs */ function tipQuery( bytes32 _queryId, uint256 _tip, bytes memory _queryData ) external { // Require tip to be greater than 1 and be paid require(_tip > 1, "Tip should be greater than 1"); require( IController(TELLOR_ADDRESS).approveAndTransferFrom( msg.sender, address(this), _tip ), "tip must be paid" ); require( _queryId == keccak256(_queryData) || uint256(_queryId) <= 100 || msg.sender == IController(TELLOR_ADDRESS).addresses(_GOVERNANCE_CONTRACT), "id must be hash of bytes data" ); // Burn half the tip _tip = _tip / 2; IController(TELLOR_ADDRESS).burn(_tip); // Update total tip amount for user, data ID, and in total contract tips[_queryId] += _tip; tipsByUser[msg.sender] += _tip; tipsInContract += _tip; emit TipAdded(msg.sender, _queryId, _tip, tips[_queryId], _queryData); } //Getters /** * @dev Returns the block number at a given timestamp * @param _queryId is ID of the specific data feed * @param _timestamp is the timestamp to find the corresponding block number for * @return uint256 block number of the timestamp for the given data ID */ function getBlockNumberByTimestamp(bytes32 _queryId, uint256 _timestamp) external view returns (uint256) { return reports[_queryId].timestampToBlockNum[_timestamp]; } /** * @dev Calculates the current reward for a reporter given tips * and time based reward * @param _queryId is ID of the specific data feed * @return uint256 tips on given queryId * @return uint256 time based reward */ function getCurrentReward(bytes32 _queryId) public view returns (uint256, uint256) { IController _tellor = IController(TELLOR_ADDRESS); uint256 _timeDiff = block.timestamp - timeOfLastNewValue; uint256 _reward = (_timeDiff * timeBasedReward) / 300; //.5 TRB per 5 minutes (should we make this upgradeable) if (_tellor.balanceOf(address(this)) < _reward + tipsInContract) { _reward = _tellor.balanceOf(address(this)) - tipsInContract; } return (tips[_queryId], _reward); } /** * @dev Returns the current value of a data feed given a specific ID * @param _queryId is the ID of the specific data feed * @return bytes memory of the current value of data */ function getCurrentValue(bytes32 _queryId) external view returns (bytes memory) { return reports[_queryId].valueByTimestamp[ reports[_queryId].timestamps[ reports[_queryId].timestamps.length - 1 ] ]; } /** * @dev Returns the reporting lock time, the amount of time a reporter must wait to submit again * @return uint256 reporting lock time */ function getReportingLock() external view returns (uint256) { return reportingLock; } /** * @dev Returns the address of the reporter who submitted a value for a data ID at a specific time * @param _queryId is ID of the specific data feed * @param _timestamp is the timestamp to find a corresponding reporter for * @return address of the reporter who reported the value for the data ID at the given timestamp */ function getReporterByTimestamp(bytes32 _queryId, uint256 _timestamp) external view returns (address) { return reports[_queryId].reporterByTimestamp[_timestamp]; } /** * @dev Returns the timestamp of the reporter's last submission * @param _reporter is address of the reporter * @return uint256 timestamp of the reporter's last submission */ function getReporterLastTimestamp(address _reporter) external view returns (uint256) { return reporterLastTimestamp[_reporter]; } /** * @dev Returns the number of values submitted by a specific reporter address * @param _reporter is the address of a reporter * @return uint256 of the number of values submitted by the given reporter */ function getReportsSubmittedByAddress(address _reporter) external view returns (uint256) { return reportsSubmittedByAddress[_reporter]; } /** * @dev Returns the timestamp of a reported value given a data ID and timestamp index * @param _queryId is ID of the specific data feed * @param _index is the index of the timestamp * @return uint256 timestamp of the given queryId and index */ function getReportTimestampByIndex(bytes32 _queryId, uint256 _index) external view returns (uint256) { return reports[_queryId].timestamps[_index]; } /** * @dev Returns the time based reward for submitting a value * @return uint256 of time based reward */ function getTimeBasedReward() external view returns (uint256) { return timeBasedReward; } /** * @dev Returns the number of timestamps/reports for a specific data ID * @param _queryId is ID of the specific data feed * @return uint256 of the number of timestamps/reports for the given data ID */ function getTimestampCountById(bytes32 _queryId) external view returns (uint256) { return reports[_queryId].timestamps.length; } /** * @dev Returns the timestamp for the last value of any ID from the oracle * @return uint256 of timestamp of the last oracle value */ function getTimeOfLastNewValue() external view returns (uint256) { return timeOfLastNewValue; } /** * @dev Returns the index of a reporter timestamp in the timestamp array for a specific data ID * @param _queryId is ID of the specific data feed * @param _timestamp is the timestamp to find in the timestamps array * @return uint256 of the index of the reporter timestamp in the array for specific ID */ function getTimestampIndexByTimestamp(bytes32 _queryId, uint256 _timestamp) external view returns (uint256) { return reports[_queryId].timestampIndex[_timestamp]; } /** * @dev Returns the amount of tips available for a specific query ID * @param _queryId is ID of the specific data feed * @return uint256 of the amount of tips added for the specific ID */ function getTipsById(bytes32 _queryId) external view returns (uint256) { return tips[_queryId]; } /** * @dev Returns the amount of tips made by a user * @param _user is the address of the user * @return uint256 of the amount of tips made by the user */ function getTipsByUser(address _user) external view returns (uint256) { return tipsByUser[_user]; } /** * @dev Returns the value of a data feed given a specific ID and timestamp * @param _queryId is the ID of the specific data feed * @param _timestamp is the timestamp to look for data * @return bytes memory of the value of data at the associated timestamp */ function getValueByTimestamp(bytes32 _queryId, uint256 _timestamp) external view returns (bytes memory) { return reports[_queryId].valueByTimestamp[_timestamp]; } /** * @dev Used during the upgrade process to verify valid Tellor Contracts */ function verify() external pure returns (uint256) { return 9999; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.3; interface IController{ function addresses(bytes32) external returns(address); function uints(bytes32) external returns(uint256); function burn(uint256 _amount) external; function changeDeity(address _newDeity) external; function changeOwner(address _newOwner) external; function changeTellorContract(address _tContract) external; function changeControllerContract(address _newController) external; function changeGovernanceContract(address _newGovernance) external; function changeOracleContract(address _newOracle) external; function changeTreasuryContract(address _newTreasury) external; function changeUint(bytes32 _target, uint256 _amount) external; function migrate() external; function mint(address _reciever, uint256 _amount) external; function init() external; function getDisputeIdByDisputeHash(bytes32 _hash) external view returns (uint256); function getLastNewValueById(uint256 _requestId) external view returns (uint256, bool); function retrieveData(uint256 _requestId, uint256 _timestamp) external view returns (uint256); function getNewValueCountbyRequestId(uint256 _requestId) external view returns (uint256); function getAddressVars(bytes32 _data) external view returns (address); function getUintVar(bytes32 _data) external view returns (uint256); function totalSupply() external view returns (uint256); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function allowance(address _user, address _spender) external view returns (uint256); function allowedToTrade(address _user, uint256 _amount) external view returns (bool); function approve(address _spender, uint256 _amount) external returns (bool); function approveAndTransferFrom(address _from, address _to, uint256 _amount) external returns(bool); function balanceOf(address _user) external view returns (uint256); function balanceOfAt(address _user, uint256 _blockNumber)external view returns (uint256); function transfer(address _to, uint256 _amount)external returns (bool success); function transferFrom(address _from,address _to,uint256 _amount) external returns (bool success) ; function depositStake() external; function requestStakingWithdraw() external; function withdrawStake() external; function changeStakingStatus(address _reporter, uint _status) external; function slashReporter(address _reporter, address _disputer) external; function getStakerInfo(address _staker) external view returns (uint256, uint256); function getTimestampbyRequestIDandIndex(uint256 _requestID, uint256 _index) external view returns (uint256); function getNewCurrentVariables()external view returns (bytes32 _c,uint256[5] memory _r,uint256 _d,uint256 _t); //in order to call fallback function function beginDispute(uint256 _requestId, uint256 _timestamp,uint256 _minerIndex) external; function unlockDisputeFee(uint256 _disputeId) external; function vote(uint256 _disputeId, bool _supportsDispute) external; function tallyVotes(uint256 _disputeId) external; //test functions function tipQuery(uint,uint,bytes memory) external; function getNewVariablesOnDeck() external view returns (uint256[5] memory idsOnDeck, uint256[5] memory tipsOnDeck); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.3; import "./tellor3/TellorVariables.sol"; /** @author Tellor Inc. @title TellorVariables @dev Helper contract to store hashes of variables. * For each of the bytes32 constants, the values are equal to * keccak256([VARIABLE NAME]) */ contract TellorVars is TellorVariables { // Storage address constant TELLOR_ADDRESS = 0x88dF592F8eb5D7Bd38bFeF7dEb0fBc02cf3778a0; // Address of main Tellor Contract // Hashes for each pertinent contract bytes32 constant _GOVERNANCE_CONTRACT = 0xefa19baa864049f50491093580c5433e97e8d5e41f8db1a61108b4fa44cacd93; bytes32 constant _ORACLE_CONTRACT = 0xfa522e460446113e8fd353d7fa015625a68bc0369712213a42e006346440891e; bytes32 constant _TREASURY_CONTRACT = 0x1436a1a60dca0ebb2be98547e57992a0fa082eb479e7576303cbd384e934f1fa; bytes32 constant _SWITCH_TIME = 0x6c0e91a96227393eb6e42b88e9a99f7c5ebd588098b549c949baf27ac9509d8f; bytes32 constant _MINIMUM_DISPUTE_FEE = 0x7335d16d7e7f6cb9f532376441907fe76aa2ea267285c82892601f4755ed15f0; }
// SPDX-License-Identifier: MIT pragma solidity >=0.7.4; /** @author Tellor Inc. @title TellorVariables @dev Helper contract to store hashes of variables */ contract TellorVariables { bytes32 constant _BLOCK_NUMBER = 0x4b4cefd5ced7569ef0d091282b4bca9c52a034c56471a6061afd1bf307a2de7c; //keccak256("_BLOCK_NUMBER"); bytes32 constant _CURRENT_CHALLENGE = 0xd54702836c9d21d0727ffacc3e39f57c92b5ae0f50177e593bfb5ec66e3de280; //keccak256("_CURRENT_CHALLENGE"); bytes32 constant _CURRENT_REQUESTID = 0xf5126bb0ac211fbeeac2c0e89d4c02ac8cadb2da1cfb27b53c6c1f4587b48020; //keccak256("_CURRENT_REQUESTID"); bytes32 constant _CURRENT_REWARD = 0xd415862fd27fb74541e0f6f725b0c0d5b5fa1f22367d9b78ec6f61d97d05d5f8; //keccak256("_CURRENT_REWARD"); bytes32 constant _CURRENT_TOTAL_TIPS = 0x09659d32f99e50ac728058418d38174fe83a137c455ff1847e6fb8e15f78f77a; //keccak256("_CURRENT_TOTAL_TIPS"); bytes32 constant _DEITY = 0x5fc094d10c65bc33cc842217b2eccca0191ff24148319da094e540a559898961; //keccak256("_DEITY"); bytes32 constant _DIFFICULTY = 0xf758978fc1647996a3d9992f611883adc442931dc49488312360acc90601759b; //keccak256("_DIFFICULTY"); bytes32 constant _DISPUTE_COUNT = 0x310199159a20c50879ffb440b45802138b5b162ec9426720e9dd3ee8bbcdb9d7; //keccak256("_DISPUTE_COUNT"); bytes32 constant _DISPUTE_FEE = 0x675d2171f68d6f5545d54fb9b1fb61a0e6897e6188ca1cd664e7c9530d91ecfc; //keccak256("_DISPUTE_FEE"); bytes32 constant _DISPUTE_ROUNDS = 0x6ab2b18aafe78fd59c6a4092015bddd9fcacb8170f72b299074f74d76a91a923; //keccak256("_DISPUTE_ROUNDS"); bytes32 constant _EXTENSION = 0x2b2a1c876f73e67ebc4f1b08d10d54d62d62216382e0f4fd16c29155818207a4; //keccak256("_EXTENSION"); bytes32 constant _FEE = 0x1da95f11543c9b03927178e07951795dfc95c7501a9d1cf00e13414ca33bc409; //keccak256("_FEE"); bytes32 constant _FORK_EXECUTED = 0xda571dfc0b95cdc4a3835f5982cfdf36f73258bee7cb8eb797b4af8b17329875; //keccak256("_FORK_EXECUTED"); bytes32 constant _LOCK = 0xd051321aa26ce60d202f153d0c0e67687e975532ab88ce92d84f18e39895d907; bytes32 constant _MIGRATOR = 0xc6b005d45c4c789dfe9e2895b51df4336782c5ff6bd59a5c5c9513955aa06307; //keccak256("_MIGRATOR"); bytes32 constant _MIN_EXECUTION_DATE = 0x46f7d53798d31923f6952572c6a19ad2d1a8238d26649c2f3493a6d69e425d28; //keccak256("_MIN_EXECUTION_DATE"); bytes32 constant _MINER_SLOT = 0x6de96ee4d33a0617f40a846309c8759048857f51b9d59a12d3c3786d4778883d; //keccak256("_MINER_SLOT"); bytes32 constant _NUM_OF_VOTES = 0x1da378694063870452ce03b189f48e04c1aa026348e74e6c86e10738514ad2c4; //keccak256("_NUM_OF_VOTES"); bytes32 constant _OLD_TELLOR = 0x56e0987db9eaec01ed9e0af003a0fd5c062371f9d23722eb4a3ebc74f16ea371; //keccak256("_OLD_TELLOR"); bytes32 constant _ORIGINAL_ID = 0xed92b4c1e0a9e559a31171d487ecbec963526662038ecfa3a71160bd62fb8733; //keccak256("_ORIGINAL_ID"); bytes32 constant _OWNER = 0x7a39905194de50bde334d18b76bbb36dddd11641d4d50b470cb837cf3bae5def; //keccak256("_OWNER"); bytes32 constant _PAID = 0x29169706298d2b6df50a532e958b56426de1465348b93650fca42d456eaec5fc; //keccak256("_PAID"); bytes32 constant _PENDING_OWNER = 0x7ec081f029b8ac7e2321f6ae8c6a6a517fda8fcbf63cabd63dfffaeaafa56cc0; //keccak256("_PENDING_OWNER"); bytes32 constant _REQUEST_COUNT = 0x3f8b5616fa9e7f2ce4a868fde15c58b92e77bc1acd6769bf1567629a3dc4c865; //keccak256("_REQUEST_COUNT"); bytes32 constant _REQUEST_ID = 0x9f47a2659c3d32b749ae717d975e7962959890862423c4318cf86e4ec220291f; //keccak256("_REQUEST_ID"); bytes32 constant _REQUEST_Q_POSITION = 0xf68d680ab3160f1aa5d9c3a1383c49e3e60bf3c0c031245cbb036f5ce99afaa1; //keccak256("_REQUEST_Q_POSITION"); bytes32 constant _SLOT_PROGRESS = 0xdfbec46864bc123768f0d134913175d9577a55bb71b9b2595fda21e21f36b082; //keccak256("_SLOT_PROGRESS"); bytes32 constant _STAKE_AMOUNT = 0x5d9fadfc729fd027e395e5157ef1b53ef9fa4a8f053043c5f159307543e7cc97; //keccak256("_STAKE_AMOUNT"); bytes32 constant _STAKE_COUNT = 0x10c168823622203e4057b65015ff4d95b4c650b308918e8c92dc32ab5a0a034b; //keccak256("_STAKE_COUNT"); bytes32 constant _T_BLOCK = 0xf3b93531fa65b3a18680d9ea49df06d96fbd883c4889dc7db866f8b131602dfb; //keccak256("_T_BLOCK"); bytes32 constant _TALLY_DATE = 0xf9e1ae10923bfc79f52e309baf8c7699edb821f91ef5b5bd07be29545917b3a6; //keccak256("_TALLY_DATE"); bytes32 constant _TARGET_MINERS = 0x0b8561044b4253c8df1d9ad9f9ce2e0f78e4bd42b2ed8dd2e909e85f750f3bc1; //keccak256("_TARGET_MINERS"); bytes32 constant _TELLOR_CONTRACT = 0x0f1293c916694ac6af4daa2f866f0448d0c2ce8847074a7896d397c961914a08; //keccak256("_TELLOR_CONTRACT"); bytes32 constant _TELLOR_GETTERS = 0xabd9bea65759494fe86471c8386762f989e1f2e778949e94efa4a9d1c4b3545a; //keccak256("_TELLOR_GETTERS"); bytes32 constant _TIME_OF_LAST_NEW_VALUE = 0x2c8b528fbaf48aaf13162a5a0519a7ad5a612da8ff8783465c17e076660a59f1; //keccak256("_TIME_OF_LAST_NEW_VALUE"); bytes32 constant _TIME_TARGET = 0xd4f87b8d0f3d3b7e665df74631f6100b2695daa0e30e40eeac02172e15a999e1; //keccak256("_TIME_TARGET"); bytes32 constant _TIMESTAMP = 0x2f9328a9c75282bec25bb04befad06926366736e0030c985108445fa728335e5; //keccak256("_TIMESTAMP"); bytes32 constant _TOTAL_SUPPLY = 0xe6148e7230ca038d456350e69a91b66968b222bfac9ebfbea6ff0a1fb7380160; //keccak256("_TOTAL_SUPPLY"); bytes32 constant _TOTAL_TIP = 0x1590276b7f31dd8e2a06f9a92867333eeb3eddbc91e73b9833e3e55d8e34f77d; //keccak256("_TOTAL_TIP"); bytes32 constant _VALUE = 0x9147231ab14efb72c38117f68521ddef8de64f092c18c69dbfb602ffc4de7f47; //keccak256("_VALUE"); bytes32 constant _EIP_SLOT = 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3; }
{ "optimizer": { "enabled": true, "runs": 300 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_time","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_value","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"_reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_nonce","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_queryData","type":"bytes"},{"indexed":false,"internalType":"address","name":"_reporter","type":"address"}],"name":"NewReport","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newReportingLock","type":"uint256"}],"name":"ReportingLockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_newTimeBasedReward","type":"uint256"}],"name":"TimeBasedRewardsChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_tip","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalTip","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_queryData","type":"bytes"}],"name":"TipAdded","type":"event"},{"inputs":[{"internalType":"uint256","name":"_newReportingLock","type":"uint256"}],"name":"changeReportingLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTimeBasedReward","type":"uint256"}],"name":"changeTimeBasedReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"getBlockNumberByTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getCurrentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getCurrentValue","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getReportTimestampByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"getReporterByTimestamp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_reporter","type":"address"}],"name":"getReporterLastTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReportingLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_reporter","type":"address"}],"name":"getReportsSubmittedByAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeBasedReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeOfLastNewValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getTimestampCountById","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"getTimestampIndexByTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"}],"name":"getTipsById","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getTipsByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"getValueByTimestamp","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"removeValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reportingLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"bytes","name":"_value","type":"bytes"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"bytes","name":"_queryData","type":"bytes"}],"name":"submitValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"timeBasedReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeOfLastNewValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_queryId","type":"bytes32"},{"internalType":"uint256","name":"_tip","type":"uint256"},{"internalType":"bytes","name":"_queryData","type":"bytes"}],"name":"tipQuery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"tips","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tipsInContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"verify","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
608060405261a8c06000556706f05b59d3b200006001554260025534801561002657600080fd5b50611e52806100366000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80636fd4f229116100ee578063adf1639d11610097578063e07c548611610071578063e07c5486146103d7578063ef0234ad14610426578063ef4c262d14610439578063fc735e9914610459576101ae565b8063adf1639d14610393578063b736ec36146103a6578063c0f95d52146103cf576101ae565b806396426d97116100c857806396426d97146103335780639d9b16ed1461033c578063a1e588a51461036b576101ae565b80636fd4f229146102e85780637c37b8b4146102f1578063935408d014610304576101ae565b806350005b831161015b5780635eaa9ced116101355780635eaa9ced14610299578063602bf227146102ac57806369d43bd3146102cc5780636d53585f146102d5576101ae565b806350005b83146102485780635b5edcfc146102715780635d183cfa14610286576101ae565b806335e724321161018c57806335e72432146101f75780633878293e14610217578063460c33a214610240576101ae565b80630b2d2b0d146101b357806314d66b9a146101dc5780633321fc41146101ee575b600080fd5b6101c66101c1366004611b70565b610461565b6040516101d39190611cd9565b60405180910390f35b6001545b6040519081526020016101d3565b6101e060005481565b6101e0610205366004611ab3565b60009081526004602052604090205490565b6101e0610225366004611a54565b6001600160a01b031660009081526007602052604090205490565b6000546101e0565b6101e0610256366004611a54565b6001600160a01b031660009081526006602052604090205490565b61028461027f366004611b70565b610512565b005b610284610294366004611ab3565b6108b6565b6102846102a7366004611acb565b610a64565b6101e06102ba366004611ab3565b60056020526000908152604090205481565b6101e060035481565b6102846102e3366004611ab3565b611153565b6101e060025481565b6101e06102ff366004611b70565b6112b2565b6101e0610312366004611b70565b60009182526004602090815260408084209284526002909201905290205490565b6101e060015481565b6101e061034a366004611b70565b60009182526004602090815260408084209284526001909201905290205490565b61037e610379366004611ab3565b6112f3565b604080519283526020830191909152016101d3565b6101c66103a1366004611ab3565b61146a565b6101e06103b4366004611a54565b6001600160a01b031660009081526008602052604090205490565b6002546101e0565b61040e6103e5366004611b70565b60009182526004602081815260408085209385529290910190529020546001600160a01b031690565b6040516001600160a01b0390911681526020016101d3565b610284610434366004611b91565b611557565b6101e0610447366004611ab3565b60009081526005602052604090205490565b61270f6101e0565b6000828152600460209081526040808320848452600301909152902080546060919061048c90611d82565b80601f01602080910402602001604051908101604052809291908181526020018280546104b890611d82565b80156105055780601f106104da57610100808354040283529160200191610505565b820191906000526020600020905b8154815290600101906020018083116104e857829003601f168201915b5050505050905092915050565b60405163699f200f60e01b81527fefa19baa864049f50491093580c5433e97e8d5e41f8db1a61108b4fa44cacd9360048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b69190611a77565b6001600160a01b0316336001600160a01b03161480610689575060405163699f200f60e01b81527ffa522e460446113e8fd353d7fa015625a68bc0369712213a42e006346440891e60048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b15801561063c57600080fd5b505af1158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190611a77565b6001600160a01b0316336001600160a01b0316145b6107005760405162461bcd60e51b815260206004820152603d60248201527f63616c6c6572206d7573742062652074686520676f7665726e616e636520636f60448201527f6e7472616374206f7220746865206f7261636c6520636f6e747261637400000060648201526084015b60405180910390fd5b60008281526004602090815260408083208484526001810190925290912054805b825461072f90600190611d6b565b8110156108075782610742826001611d14565b8154811061076057634e487b7160e01b600052603260045260246000fd5b906000526020600020015483600001828154811061078e57634e487b7160e01b600052603260045260246000fd5b906000526020600020018190555060018360010160008560000184815481106107c757634e487b7160e01b600052603260045260246000fd5b9060005260206000200154815260200190815260200160002060008282546107ef9190611d6b565b909155508190506107ff81611dbd565b915050610721565b508154829061081890600190611d6b565b8154811061083657634e487b7160e01b600052603260045260246000fd5b6000918252602082200155815482908061086057634e487b7160e01b600052603160045260246000fd5b6000828152602080822083016000199081018390559092019092556040805180830180835284825287855260038701909352922091516108a19291906118c0565b50506000918252600101602052604081205550565b60405163699f200f60e01b81527fefa19baa864049f50491093580c5433e97e8d5e41f8db1a61108b4fa44cacd9360048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b15801561092257600080fd5b505af1158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a9190611a77565b6001600160a01b0316336001600160a01b0316146109d65760405162461bcd60e51b815260206004820152603360248201527f4f6e6c7920676f7665726e616e636520636f6e74726163742063616e206368616044820152723733b2903932b837b93a34b733903637b1b59760691b60648201526084016106f7565b6283d6008110610a285760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964205f6e65775265706f7274696e674c6f636b2076616c75650060448201526064016106f7565b60008190556040518181527f8867dac9fd763aeaa408825321cc53f6fd67a46ea326adadfd2a378d17fedf22906020015b60405180910390a150565b600085815260046020526040902080548314610ac25760405162461bcd60e51b815260206004820181905260248201527f6e6f6e6365206d757374206d617463682074696d657374616d7020696e64657860448201526064016106f7565b600080543382526006602052604090912054610ade9042611d6b565b11610b3d5760405162461bcd60e51b815260206004820152602960248201527f7374696c6c20696e207265706f727465722074696d65206c6f636b2c20706c6560448201526861736520776169742160b81b60648201526084016106f7565b60405163699f200f60e01b81527ffa522e460446113e8fd353d7fa015625a68bc0369712213a42e006346440891e60048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be19190611a77565b6001600160a01b0316306001600160a01b031614610c545760405162461bcd60e51b815260206004820152602a60248201527f63616e206f6e6c79207375626d697420746f2063757272656e74206f7261636c604482015269194818dbdb9d1c9858dd60b21b60648201526084016106f7565b81516020830120861480610c69575060648611155b610cb55760405162461bcd60e51b815260206004820152601d60248201527f6964206d7573742062652068617368206f66206279746573206461746100000060448201526064016106f7565b3360008181526006602052604080822042905551630733bdef60e41b815260048101929092527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a091829063733bdef090602401604080518083038186803b158015610d1357600080fd5b505afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190611bf7565b50905080600114610d9e5760405162461bcd60e51b815260206004820152601d60248201527f5265706f7274657220737461747573206973206e6f74207374616b657200000060448201526064016106f7565b604051632d67853560e21b81527f5d9fadfc729fd027e395e5157ef1b53ef9fa4a8f053043c5f159307543e7cc9760048201526001600160a01b0383169063b59e14d490602401602060405180830381600087803b158015610dff57600080fd5b505af1158015610e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e379190611bdf565b6040516370a0823160e01b81523360048201526001600160a01b038416906370a082319060240160206040518083038186803b158015610e7657600080fd5b505afa158015610e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae9190611bdf565b1015610f0e5760405162461bcd60e51b815260206004820152602960248201527f62616c616e6365206d7573742062652067726561746572207468616e207374616044820152681ad948185b5bdd5b9d60ba1b60648201526084016106f7565b4260009081526004840160205260409020546001600160a01b031615610f765760405162461bcd60e51b815260206004820152601e60248201527f74696d657374616d7020616c7265616479207265706f7274656420666f72000060448201526064016106f7565b82544260008181526001808701602090815260408084208690559185018855878352808320909401839055918152600286018352818120439055600386019092529020610fc4908888611944565b504260009081526004840160205260408120805473ffffffffffffffffffffffffffffffffffffffff19163317905580610ffd8a6112f3565b9150915081600360008282546110139190611d6b565b90915550600090506110258383611d14565b11156110c5576001600160a01b03841663a9059cbb336110458585611d14565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561108b57600080fd5b505af115801561109f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c39190611a93565b505b60008a815260056020908152604080832083905542600255338352600790915281208054916110f383611dbd565b909155507fab1d593f8e2ecb165106e30a39db6769078d35c3fdbb110f24932f0d7af68c2990508a428b8b6111288688611d14565b8c8c3360405161113f989796959493929190611c65565b60405180910390a150505050505050505050565b60405163699f200f60e01b81527fefa19baa864049f50491093580c5433e97e8d5e41f8db1a61108b4fa44cacd9360048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b1580156111bf57600080fd5b505af11580156111d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f79190611a77565b6001600160a01b0316336001600160a01b03161461127d5760405162461bcd60e51b815260206004820152603660248201527f4f6e6c7920676f7665726e616e636520636f6e74726163742063616e2063686160448201527f6e67652074696d65206261736564207265776172642e0000000000000000000060648201526084016106f7565b60018190556040518181527f01432c5d54689da3dbfec924c89d1e453ecaec349928ceabd50207e909e8f7de90602001610a59565b60008281526004602052604081208054839081106112e057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008060007388df592f8eb5d7bd38bfef7deb0fbc02cf3778a0905060006002544261131f9190611d6b565b9050600061012c600154836113349190611d4c565b61133e9190611d2c565b90506003548161134e9190611d14565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c59190611bdf565b1015611452576003546040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561140d57600080fd5b505afa158015611421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114459190611bdf565b61144f9190611d6b565b90505b60009586526005602052604090952054959350505050565b600081815260046020526040812080546060926003830192909161149090600190611d6b565b815481106114ae57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154815260200190815260200160002080546114d290611d82565b80601f01602080910402602001604051908101604052809291908181526020018280546114fe90611d82565b801561154b5780601f106115205761010080835404028352916020019161154b565b820191906000526020600020905b81548152906001019060200180831161152e57829003601f168201915b50505050509050919050565b600182116115a75760405162461bcd60e51b815260206004820152601c60248201527f5469702073686f756c642062652067726561746572207468616e20310000000060448201526064016106f7565b60405163288c9c9d60e01b8152336004820152306024820152604481018390527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063288c9c9d90606401602060405180830381600087803b15801561160057600080fd5b505af1158015611614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116389190611a93565b6116775760405162461bcd60e51b815260206004820152601060248201526f1d1a5c081b5d5cdd081899481c185a5960821b60448201526064016106f7565b8051602082012083148061168c575060648311155b8061174b575060405163699f200f60e01b81527fefa19baa864049f50491093580c5433e97e8d5e41f8db1a61108b4fa44cacd9360048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b1580156116fe57600080fd5b505af1158015611712573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117369190611a77565b6001600160a01b0316336001600160a01b0316145b6117975760405162461bcd60e51b815260206004820152601d60248201527f6964206d7573742062652068617368206f66206279746573206461746100000060448201526064016106f7565b6117a2600283611d2c565b604051630852cd8d60e31b8152600481018290529092507388df592f8eb5d7bd38bfef7deb0fbc02cf3778a0906342966c6890602401600060405180830381600087803b1580156117f257600080fd5b505af1158015611806573d6000803e3d6000fd5b5050506000848152600560205260408120805485935090919061182a908490611d14565b9091555050336000908152600860205260408120805484929061184e908490611d14565b9250508190555081600360008282546118679190611d14565b909155505060008381526005602052604090819020549051849133917fd951d408a0f5057da5c25b826fb5ce403d56542962b6ac6994dbc6d5432fbff5916118b3918791908790611cec565b60405180910390a3505050565b8280546118cc90611d82565b90600052602060002090601f0160209004810192826118ee5760008555611934565b82601f1061190757805160ff1916838001178555611934565b82800160010185558215611934579182015b82811115611934578251825591602001919060010190611919565b506119409291506119b8565b5090565b82805461195090611d82565b90600052602060002090601f0160209004810192826119725760008555611934565b82601f1061198b5782800160ff19823516178555611934565b82800160010185558215611934579182015b8281111561193457823582559160200191906001019061199d565b5b8082111561194057600081556001016119b9565b600082601f8301126119dd578081fd5b813567ffffffffffffffff808211156119f8576119f8611dee565b604051601f8301601f19908116603f01168101908282118183101715611a2057611a20611dee565b81604052838152866020858801011115611a38578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215611a65578081fd5b8135611a7081611e04565b9392505050565b600060208284031215611a88578081fd5b8151611a7081611e04565b600060208284031215611aa4578081fd5b81518015158114611a70578182fd5b600060208284031215611ac4578081fd5b5035919050565b600080600080600060808688031215611ae2578081fd5b85359450602086013567ffffffffffffffff80821115611b00578283fd5b818801915088601f830112611b13578283fd5b813581811115611b21578384fd5b896020828501011115611b32578384fd5b60208301965080955050604088013593506060880135915080821115611b56578283fd5b50611b63888289016119cd565b9150509295509295909350565b60008060408385031215611b82578182fd5b50508035926020909101359150565b600080600060608486031215611ba5578283fd5b8335925060208401359150604084013567ffffffffffffffff811115611bc9578182fd5b611bd5868287016119cd565b9150509250925092565b600060208284031215611bf0578081fd5b5051919050565b60008060408385031215611c09578182fd5b505080516020909101519092909150565b60008151808452815b81811015611c3f57602081850181015186830182015201611c23565b81811115611c505782602083870101525b50601f01601f19169290920160200192915050565b600089825288602083015260e060408301528660e083015261010087898285013781818985010152601f19601f8901168301876060850152866080850152818482030160a0850152611cb982820187611c1a565b925050506001600160a01b03831660c08301529998505050505050505050565b600060208252611a706020830184611c1a565b600084825283602083015260606040830152611d0b6060830184611c1a565b95945050505050565b60008219821115611d2757611d27611dd8565b500190565b600082611d4757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611d6657611d66611dd8565b500290565b600082821015611d7d57611d7d611dd8565b500390565b600181811c90821680611d9657607f821691505b60208210811415611db757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611dd157611dd1611dd8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611e1957600080fd5b5056fea26469706673582212201ec320c16a6f6431c31e1fa0184ecb5db4f3edfb5dedfa957962f63c8925874e64736f6c63430008030033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80636fd4f229116100ee578063adf1639d11610097578063e07c548611610071578063e07c5486146103d7578063ef0234ad14610426578063ef4c262d14610439578063fc735e9914610459576101ae565b8063adf1639d14610393578063b736ec36146103a6578063c0f95d52146103cf576101ae565b806396426d97116100c857806396426d97146103335780639d9b16ed1461033c578063a1e588a51461036b576101ae565b80636fd4f229146102e85780637c37b8b4146102f1578063935408d014610304576101ae565b806350005b831161015b5780635eaa9ced116101355780635eaa9ced14610299578063602bf227146102ac57806369d43bd3146102cc5780636d53585f146102d5576101ae565b806350005b83146102485780635b5edcfc146102715780635d183cfa14610286576101ae565b806335e724321161018c57806335e72432146101f75780633878293e14610217578063460c33a214610240576101ae565b80630b2d2b0d146101b357806314d66b9a146101dc5780633321fc41146101ee575b600080fd5b6101c66101c1366004611b70565b610461565b6040516101d39190611cd9565b60405180910390f35b6001545b6040519081526020016101d3565b6101e060005481565b6101e0610205366004611ab3565b60009081526004602052604090205490565b6101e0610225366004611a54565b6001600160a01b031660009081526007602052604090205490565b6000546101e0565b6101e0610256366004611a54565b6001600160a01b031660009081526006602052604090205490565b61028461027f366004611b70565b610512565b005b610284610294366004611ab3565b6108b6565b6102846102a7366004611acb565b610a64565b6101e06102ba366004611ab3565b60056020526000908152604090205481565b6101e060035481565b6102846102e3366004611ab3565b611153565b6101e060025481565b6101e06102ff366004611b70565b6112b2565b6101e0610312366004611b70565b60009182526004602090815260408084209284526002909201905290205490565b6101e060015481565b6101e061034a366004611b70565b60009182526004602090815260408084209284526001909201905290205490565b61037e610379366004611ab3565b6112f3565b604080519283526020830191909152016101d3565b6101c66103a1366004611ab3565b61146a565b6101e06103b4366004611a54565b6001600160a01b031660009081526008602052604090205490565b6002546101e0565b61040e6103e5366004611b70565b60009182526004602081815260408085209385529290910190529020546001600160a01b031690565b6040516001600160a01b0390911681526020016101d3565b610284610434366004611b91565b611557565b6101e0610447366004611ab3565b60009081526005602052604090205490565b61270f6101e0565b6000828152600460209081526040808320848452600301909152902080546060919061048c90611d82565b80601f01602080910402602001604051908101604052809291908181526020018280546104b890611d82565b80156105055780601f106104da57610100808354040283529160200191610505565b820191906000526020600020905b8154815290600101906020018083116104e857829003601f168201915b5050505050905092915050565b60405163699f200f60e01b81527fefa19baa864049f50491093580c5433e97e8d5e41f8db1a61108b4fa44cacd9360048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b69190611a77565b6001600160a01b0316336001600160a01b03161480610689575060405163699f200f60e01b81527ffa522e460446113e8fd353d7fa015625a68bc0369712213a42e006346440891e60048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b15801561063c57600080fd5b505af1158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190611a77565b6001600160a01b0316336001600160a01b0316145b6107005760405162461bcd60e51b815260206004820152603d60248201527f63616c6c6572206d7573742062652074686520676f7665726e616e636520636f60448201527f6e7472616374206f7220746865206f7261636c6520636f6e747261637400000060648201526084015b60405180910390fd5b60008281526004602090815260408083208484526001810190925290912054805b825461072f90600190611d6b565b8110156108075782610742826001611d14565b8154811061076057634e487b7160e01b600052603260045260246000fd5b906000526020600020015483600001828154811061078e57634e487b7160e01b600052603260045260246000fd5b906000526020600020018190555060018360010160008560000184815481106107c757634e487b7160e01b600052603260045260246000fd5b9060005260206000200154815260200190815260200160002060008282546107ef9190611d6b565b909155508190506107ff81611dbd565b915050610721565b508154829061081890600190611d6b565b8154811061083657634e487b7160e01b600052603260045260246000fd5b6000918252602082200155815482908061086057634e487b7160e01b600052603160045260246000fd5b6000828152602080822083016000199081018390559092019092556040805180830180835284825287855260038701909352922091516108a19291906118c0565b50506000918252600101602052604081205550565b60405163699f200f60e01b81527fefa19baa864049f50491093580c5433e97e8d5e41f8db1a61108b4fa44cacd9360048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b15801561092257600080fd5b505af1158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a9190611a77565b6001600160a01b0316336001600160a01b0316146109d65760405162461bcd60e51b815260206004820152603360248201527f4f6e6c7920676f7665726e616e636520636f6e74726163742063616e206368616044820152723733b2903932b837b93a34b733903637b1b59760691b60648201526084016106f7565b6283d6008110610a285760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964205f6e65775265706f7274696e674c6f636b2076616c75650060448201526064016106f7565b60008190556040518181527f8867dac9fd763aeaa408825321cc53f6fd67a46ea326adadfd2a378d17fedf22906020015b60405180910390a150565b600085815260046020526040902080548314610ac25760405162461bcd60e51b815260206004820181905260248201527f6e6f6e6365206d757374206d617463682074696d657374616d7020696e64657860448201526064016106f7565b600080543382526006602052604090912054610ade9042611d6b565b11610b3d5760405162461bcd60e51b815260206004820152602960248201527f7374696c6c20696e207265706f727465722074696d65206c6f636b2c20706c6560448201526861736520776169742160b81b60648201526084016106f7565b60405163699f200f60e01b81527ffa522e460446113e8fd353d7fa015625a68bc0369712213a42e006346440891e60048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be19190611a77565b6001600160a01b0316306001600160a01b031614610c545760405162461bcd60e51b815260206004820152602a60248201527f63616e206f6e6c79207375626d697420746f2063757272656e74206f7261636c604482015269194818dbdb9d1c9858dd60b21b60648201526084016106f7565b81516020830120861480610c69575060648611155b610cb55760405162461bcd60e51b815260206004820152601d60248201527f6964206d7573742062652068617368206f66206279746573206461746100000060448201526064016106f7565b3360008181526006602052604080822042905551630733bdef60e41b815260048101929092527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a091829063733bdef090602401604080518083038186803b158015610d1357600080fd5b505afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190611bf7565b50905080600114610d9e5760405162461bcd60e51b815260206004820152601d60248201527f5265706f7274657220737461747573206973206e6f74207374616b657200000060448201526064016106f7565b604051632d67853560e21b81527f5d9fadfc729fd027e395e5157ef1b53ef9fa4a8f053043c5f159307543e7cc9760048201526001600160a01b0383169063b59e14d490602401602060405180830381600087803b158015610dff57600080fd5b505af1158015610e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e379190611bdf565b6040516370a0823160e01b81523360048201526001600160a01b038416906370a082319060240160206040518083038186803b158015610e7657600080fd5b505afa158015610e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae9190611bdf565b1015610f0e5760405162461bcd60e51b815260206004820152602960248201527f62616c616e6365206d7573742062652067726561746572207468616e207374616044820152681ad948185b5bdd5b9d60ba1b60648201526084016106f7565b4260009081526004840160205260409020546001600160a01b031615610f765760405162461bcd60e51b815260206004820152601e60248201527f74696d657374616d7020616c7265616479207265706f7274656420666f72000060448201526064016106f7565b82544260008181526001808701602090815260408084208690559185018855878352808320909401839055918152600286018352818120439055600386019092529020610fc4908888611944565b504260009081526004840160205260408120805473ffffffffffffffffffffffffffffffffffffffff19163317905580610ffd8a6112f3565b9150915081600360008282546110139190611d6b565b90915550600090506110258383611d14565b11156110c5576001600160a01b03841663a9059cbb336110458585611d14565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561108b57600080fd5b505af115801561109f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c39190611a93565b505b60008a815260056020908152604080832083905542600255338352600790915281208054916110f383611dbd565b909155507fab1d593f8e2ecb165106e30a39db6769078d35c3fdbb110f24932f0d7af68c2990508a428b8b6111288688611d14565b8c8c3360405161113f989796959493929190611c65565b60405180910390a150505050505050505050565b60405163699f200f60e01b81527fefa19baa864049f50491093580c5433e97e8d5e41f8db1a61108b4fa44cacd9360048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b1580156111bf57600080fd5b505af11580156111d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f79190611a77565b6001600160a01b0316336001600160a01b03161461127d5760405162461bcd60e51b815260206004820152603660248201527f4f6e6c7920676f7665726e616e636520636f6e74726163742063616e2063686160448201527f6e67652074696d65206261736564207265776172642e0000000000000000000060648201526084016106f7565b60018190556040518181527f01432c5d54689da3dbfec924c89d1e453ecaec349928ceabd50207e909e8f7de90602001610a59565b60008281526004602052604081208054839081106112e057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008060007388df592f8eb5d7bd38bfef7deb0fbc02cf3778a0905060006002544261131f9190611d6b565b9050600061012c600154836113349190611d4c565b61133e9190611d2c565b90506003548161134e9190611d14565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c59190611bdf565b1015611452576003546040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561140d57600080fd5b505afa158015611421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114459190611bdf565b61144f9190611d6b565b90505b60009586526005602052604090952054959350505050565b600081815260046020526040812080546060926003830192909161149090600190611d6b565b815481106114ae57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154815260200190815260200160002080546114d290611d82565b80601f01602080910402602001604051908101604052809291908181526020018280546114fe90611d82565b801561154b5780601f106115205761010080835404028352916020019161154b565b820191906000526020600020905b81548152906001019060200180831161152e57829003601f168201915b50505050509050919050565b600182116115a75760405162461bcd60e51b815260206004820152601c60248201527f5469702073686f756c642062652067726561746572207468616e20310000000060448201526064016106f7565b60405163288c9c9d60e01b8152336004820152306024820152604481018390527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063288c9c9d90606401602060405180830381600087803b15801561160057600080fd5b505af1158015611614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116389190611a93565b6116775760405162461bcd60e51b815260206004820152601060248201526f1d1a5c081b5d5cdd081899481c185a5960821b60448201526064016106f7565b8051602082012083148061168c575060648311155b8061174b575060405163699f200f60e01b81527fefa19baa864049f50491093580c5433e97e8d5e41f8db1a61108b4fa44cacd9360048201527388df592f8eb5d7bd38bfef7deb0fbc02cf3778a09063699f200f90602401602060405180830381600087803b1580156116fe57600080fd5b505af1158015611712573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117369190611a77565b6001600160a01b0316336001600160a01b0316145b6117975760405162461bcd60e51b815260206004820152601d60248201527f6964206d7573742062652068617368206f66206279746573206461746100000060448201526064016106f7565b6117a2600283611d2c565b604051630852cd8d60e31b8152600481018290529092507388df592f8eb5d7bd38bfef7deb0fbc02cf3778a0906342966c6890602401600060405180830381600087803b1580156117f257600080fd5b505af1158015611806573d6000803e3d6000fd5b5050506000848152600560205260408120805485935090919061182a908490611d14565b9091555050336000908152600860205260408120805484929061184e908490611d14565b9250508190555081600360008282546118679190611d14565b909155505060008381526005602052604090819020549051849133917fd951d408a0f5057da5c25b826fb5ce403d56542962b6ac6994dbc6d5432fbff5916118b3918791908790611cec565b60405180910390a3505050565b8280546118cc90611d82565b90600052602060002090601f0160209004810192826118ee5760008555611934565b82601f1061190757805160ff1916838001178555611934565b82800160010185558215611934579182015b82811115611934578251825591602001919060010190611919565b506119409291506119b8565b5090565b82805461195090611d82565b90600052602060002090601f0160209004810192826119725760008555611934565b82601f1061198b5782800160ff19823516178555611934565b82800160010185558215611934579182015b8281111561193457823582559160200191906001019061199d565b5b8082111561194057600081556001016119b9565b600082601f8301126119dd578081fd5b813567ffffffffffffffff808211156119f8576119f8611dee565b604051601f8301601f19908116603f01168101908282118183101715611a2057611a20611dee565b81604052838152866020858801011115611a38578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215611a65578081fd5b8135611a7081611e04565b9392505050565b600060208284031215611a88578081fd5b8151611a7081611e04565b600060208284031215611aa4578081fd5b81518015158114611a70578182fd5b600060208284031215611ac4578081fd5b5035919050565b600080600080600060808688031215611ae2578081fd5b85359450602086013567ffffffffffffffff80821115611b00578283fd5b818801915088601f830112611b13578283fd5b813581811115611b21578384fd5b896020828501011115611b32578384fd5b60208301965080955050604088013593506060880135915080821115611b56578283fd5b50611b63888289016119cd565b9150509295509295909350565b60008060408385031215611b82578182fd5b50508035926020909101359150565b600080600060608486031215611ba5578283fd5b8335925060208401359150604084013567ffffffffffffffff811115611bc9578182fd5b611bd5868287016119cd565b9150509250925092565b600060208284031215611bf0578081fd5b5051919050565b60008060408385031215611c09578182fd5b505080516020909101519092909150565b60008151808452815b81811015611c3f57602081850181015186830182015201611c23565b81811115611c505782602083870101525b50601f01601f19169290920160200192915050565b600089825288602083015260e060408301528660e083015261010087898285013781818985010152601f19601f8901168301876060850152866080850152818482030160a0850152611cb982820187611c1a565b925050506001600160a01b03831660c08301529998505050505050505050565b600060208252611a706020830184611c1a565b600084825283602083015260606040830152611d0b6060830184611c1a565b95945050505050565b60008219821115611d2757611d27611dd8565b500190565b600082611d4757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611d6657611d66611dd8565b500290565b600082821015611d7d57611d7d611dd8565b500390565b600181811c90821680611d9657607f821691505b60208210811415611db757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611dd157611dd1611dd8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611e1957600080fd5b5056fea26469706673582212201ec320c16a6f6431c31e1fa0184ecb5db4f3edfb5dedfa957962f63c8925874e64736f6c63430008030033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $54.64 | 55,428.175 | $3,028,595.48 |
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.