ETH Price: $3,493.80 (-2.38%)
Gas: 42 Gwei

Contract

0x88dF592F8eb5D7Bd38bFeF7dEb0fBc02cf3778a0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00
Transaction Hash
Method
Block
From
To
Value
0xc330f8b05f670563811ecfdec66efc1191d4a1db6296fb5542ab02544f3336f1Approve(pending)2024-03-27 13:13:262 days ago1711545206IN
Tellor Tributes: TRB Token
0 ETH(Pending)(Pending)
0x16a39d6c83f34f35c94531ab77362f3568f214d7736043553119c8d03452c6d9Approve(pending)2024-03-24 1:38:555 days ago1711244335IN
Tellor Tributes: TRB Token
0 ETH(Pending)(Pending)
Transfer195404252024-03-29 15:03:1142 mins ago1711724591IN
Tellor Tributes: TRB Token
0 ETH0.0034087834.5648411
Transfer195402612024-03-29 14:30:111 hr ago1711722611IN
Tellor Tributes: TRB Token
0 ETH0.0031734231.53491403
Transfer195402522024-03-29 14:28:231 hr ago1711722503IN
Tellor Tributes: TRB Token
0 ETH0.0030618830.42654246
Transfer195402152024-03-29 14:20:591 hr ago1711722059IN
Tellor Tributes: TRB Token
0 ETH0.0034045833.83202579
Transfer195401862024-03-29 14:15:111 hr ago1711721711IN
Tellor Tributes: TRB Token
0 ETH0.0028321128.13990645
Transfer195400222024-03-29 13:41:472 hrs ago1711719707IN
Tellor Tributes: TRB Token
0 ETH0.0028059528.44522344
Transfer195399672024-03-29 13:30:232 hrs ago1711719023IN
Tellor Tributes: TRB Token
0 ETH0.0030997530.80653203
Transfer195397922024-03-29 12:54:592 hrs ago1711716899IN
Tellor Tributes: TRB Token
0 ETH0.0029172926.06422274
Transfer195397442024-03-29 12:45:232 hrs ago1711716323IN
Tellor Tributes: TRB Token
0 ETH0.0028354828.18015492
Transfer195396692024-03-29 12:30:113 hrs ago1711715411IN
Tellor Tributes: TRB Token
0 ETH0.0022025421.88714048
Transfer195394142024-03-29 11:38:474 hrs ago1711712327IN
Tellor Tributes: TRB Token
0 ETH0.0023083221.00095921
Transfer195393632024-03-29 11:28:114 hrs ago1711711691IN
Tellor Tributes: TRB Token
0 ETH0.0022134722.44172046
Transfer195393412024-03-29 11:23:354 hrs ago1711711415IN
Tellor Tributes: TRB Token
0 ETH0.0024340222.14216483
Transfer195393272024-03-29 11:20:474 hrs ago1711711247IN
Tellor Tributes: TRB Token
0 ETH0.0021800521.66364063
Migrate195391812024-03-29 10:51:234 hrs ago1711709483IN
Tellor Tributes: TRB Token
0 ETH0.0025991222.47094994
Transfer195390772024-03-29 10:30:235 hrs ago1711708223IN
Tellor Tributes: TRB Token
0 ETH0.0019800919.67662835
Transfer195389592024-03-29 10:06:475 hrs ago1711706807IN
Tellor Tributes: TRB Token
0 ETH0.0020052925.46757816
Transfer195389592024-03-29 10:06:475 hrs ago1711706807IN
Tellor Tributes: TRB Token
0 ETH0.0020052925.46757816
Transfer195389592024-03-29 10:06:475 hrs ago1711706807IN
Tellor Tributes: TRB Token
0 ETH0.0025634625.46757816
Transfer195388092024-03-29 9:36:356 hrs ago1711704995IN
Tellor Tributes: TRB Token
0 ETH0.0026134625.97053429
Transfer195387092024-03-29 9:16:236 hrs ago1711703783IN
Tellor Tributes: TRB Token
0 ETH0.0030912931.34167901
Transfer195386922024-03-29 9:12:596 hrs ago1711703579IN
Tellor Tributes: TRB Token
0 ETH0.0031517328.16189999
Transfer195385482024-03-29 8:43:477 hrs ago1711701827IN
Tellor Tributes: TRB Token
0 ETH0.0026045623.27024004
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TellorMaster

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 3 : TellorMaster.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.4;

import "./TellorStorage.sol";
import "./TellorVariables.sol";

/**
 * @title Tellor Master
 * @dev This is the Master contract with all tellor getter functions and delegate call to Tellor.
 * The logic for the functions on this contract is saved on the TellorGettersLibrary, TellorTransfer,
 * TellorGettersLibrary, and TellorStake
 */
contract TellorMaster is TellorStorage, TellorVariables {
    event NewTellorAddress(address _newTellor);

    constructor(address _tContract, address _oTellor) {
        addresses[_OWNER] = msg.sender;
        addresses[_DEITY] = msg.sender;
        addresses[_TELLOR_CONTRACT] = _tContract;
        addresses[_OLD_TELLOR] = _oTellor;
        bytesVars[_CURRENT_CHALLENGE] = bytes32("1");
        uints[_DIFFICULTY] = 100;
        uints[_TIME_TARGET] = 240;
        uints[_TARGET_MINERS] = 200;
        uints[_CURRENT_REWARD] = 1e18;
        uints[_DISPUTE_FEE] = 500e18;
        uints[_STAKE_AMOUNT] = 500e18;
        uints[_TIME_OF_LAST_NEW_VALUE] = block.timestamp - 240;

        currentMiners[0].value = 1;
        currentMiners[1].value = 2;
        currentMiners[2].value = 3;
        currentMiners[3].value = 4;
        currentMiners[4].value = 5;

        // Bootstraping Request Queue
        for (uint256 index = 1; index < 51; index++) {
            Request storage req = requestDetails[index];
            req.apiUintVars[_REQUEST_Q_POSITION] = index;
            requestIdByRequestQIndex[index] = index;
        }

        assembly {
            sstore(_EIP_SLOT, _tContract)
        }

        emit NewTellorAddress(_tContract);
    }

    /**
     * @dev This function allows the Deity to set a new deity
     * @param _newDeity the new Deity in the contract
     */
    function changeDeity(address _newDeity) external {
        require(msg.sender == addresses[_DEITY]);
        addresses[_DEITY] = _newDeity;
    }

    /**
     * @dev This function allows the owner to set a new _owner
     * @param _newOwner the new Owner in the contract
     */
    function changeOwner(address _newOwner) external {
        require(msg.sender == addresses[_OWNER]);
        addresses[_OWNER] = _newOwner;
    }

    /**
     * @dev  allows for the deity to make fast upgrades.  Deity should be 0 address if decentralized
     * @param _tContract the address of the new Tellor Contract
     */
    function changeTellorContract(address _tContract) external {
        require(msg.sender == addresses[_DEITY]);
        addresses[_TELLOR_CONTRACT] = _tContract;

        assembly {
            sstore(_EIP_SLOT, _tContract)
        }
    }

    /**
     * @dev This is the internal function that allows for delegate calls to the Tellor logic
     * contract address
     */
    function _delegate(address implementation) internal virtual {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(
                gas(),
                implementation,
                0,
                calldatasize(),
                0,
                0
            )

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
                // delegatecall returns 0 on error.
                case 0 {
                    revert(0, returndatasize())
                }
                default {
                    return(0, returndatasize())
                }
        }
    }

    /**
     * @dev This is the fallback function that allows contracts to call the tellor
     * contract at the address stored
     */
    fallback() external payable {
        address addr = addresses[_TELLOR_CONTRACT];
        _delegate(addr);
    }
}

File 3 of 3 : TellorStorage.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.4;

/**
 * @title Tellor Oracle Storage Library
 * @dev Contains all the variables/structs used by Tellor
 */

contract TellorStorage {
    //Internal struct for use in proof-of-work submission
    struct Details {
        uint256 value;
        address miner;
    }

    struct Dispute {
        bytes32 hash; //unique hash of dispute: keccak256(_miner,_requestId,_timestamp)
        int256 tally; //current tally of votes for - against measure
        bool executed; //is the dispute settled
        bool disputeVotePassed; //did the vote pass?
        bool isPropFork; //true for fork proposal NEW
        address reportedMiner; //miner who submitted the 'bad value' will get disputeFee if dispute vote fails
        address reportingParty; //miner reporting the 'bad value'-pay disputeFee will get reportedMiner's stake if dispute vote passes
        address proposedForkAddress; //new fork address (if fork proposal)
        mapping(bytes32 => uint256) disputeUintVars;
        //Each of the variables below is saved in the mapping disputeUintVars for each disputeID
        //e.g. TellorStorageStruct.DisputeById[disputeID].disputeUintVars[keccak256("requestId")]
        //These are the variables saved in this mapping:
        // uint keccak256("requestId");//apiID of disputed value
        // uint keccak256("timestamp");//timestamp of disputed value
        // uint keccak256("value"); //the value being disputed
        // uint keccak256("minExecutionDate");//7 days from when dispute initialized
        // uint keccak256("numberOfVotes");//the number of parties who have voted on the measure
        // uint keccak256("blockNumber");// the blocknumber for which votes will be calculated from
        // uint keccak256("minerSlot"); //index in dispute array
        // uint keccak256("fee"); //fee paid corresponding to dispute
        mapping(address => bool) voted; //mapping of address to whether or not they voted
    }

    struct StakeInfo {
        uint256 currentStatus; //0-not Staked, 1=Staked, 2=LockedForWithdraw 3= OnDispute 4=ReadyForUnlocking 5=Unlocked
        uint256 startDate; //stake start date
    }

    //Internal struct to allow balances to be queried by blocknumber for voting purposes
    struct Checkpoint {
        uint128 fromBlock; // fromBlock is the block number that the value was generated from
        uint128 value; // value is the amount of tokens at a specific block number
    }

    struct Request {
        uint256[] requestTimestamps; //array of all newValueTimestamps requested
        mapping(bytes32 => uint256) apiUintVars;
        //Each of the variables below is saved in the mapping apiUintVars for each api request
        //e.g. requestDetails[_requestId].apiUintVars[keccak256("totalTip")]
        //These are the variables saved in this mapping:
        // uint keccak256("requestQPosition"); //index in requestQ
        // uint keccak256("totalTip");//bonus portion of payout
        mapping(uint256 => uint256) minedBlockNum; //[apiId][minedTimestamp]=>block.number
        //This the time series of finalValues stored by the contract where uint UNIX timestamp is mapped to value
        mapping(uint256 => uint256) finalValues;
        mapping(uint256 => bool) inDispute; //checks if API id is in dispute or finalized.
        mapping(uint256 => address[5]) minersByValue;
        mapping(uint256 => uint256[5]) valuesByTimestamp;
    }

    uint256[51] requestQ; //uint50 array of the top50 requests by payment amount
    uint256[] public newValueTimestamps; //array of all timestamps requested
    //Address fields in the Tellor contract are saved the addressVars mapping
    //e.g. addressVars[keccak256("tellorContract")] = address
    //These are the variables saved in this mapping:
    // address keccak256("tellorContract");//Tellor address
    // address  keccak256("_owner");//Tellor Owner address
    // address  keccak256("_deity");//Tellor Owner that can do things at will
    // address  keccak256("pending_owner"); // The proposed new owner
    //uint fields in the Tellor contract are saved the uintVars mapping
    //e.g. uintVars[keccak256("decimals")] = uint
    //These are the variables saved in this mapping:
    // keccak256("decimals");    //18 decimal standard ERC20
    // keccak256("disputeFee");//cost to dispute a mined value
    // keccak256("disputeCount");//totalHistoricalDisputes
    // keccak256("total_supply"); //total_supply of the token in circulation
    // keccak256("stakeAmount");//stakeAmount for miners (we can cut gas if we just hardcoded it in...or should it be variable?)
    // keccak256("stakerCount"); //number of parties currently staked
    // keccak256("timeOfLastNewValue"); // time of last challenge solved
    // keccak256("difficulty"); // Difficulty of current block
    // keccak256("currentTotalTips"); //value of highest api/timestamp PayoutPool
    // keccak256("currentRequestId"); //API being mined--updates with the ApiOnQ Id
    // keccak256("requestCount"); // total number of requests through the system
    // keccak256("slotProgress");//Number of miners who have mined this value so far
    // keccak256("miningReward");//Mining Reward in PoWo tokens given to all miners per value
    // keccak256("timeTarget"); //The time between blocks (mined Oracle values)
    // keccak256("_tblock"); //
    // keccak256("runningTips"); // VAriable to track running tips
    // keccak256("currentReward"); // The current reward
    // keccak256("devShare"); // The amount directed towards th devShare
    // keccak256("currentTotalTips"); //

    //This is a boolean that tells you if a given challenge has been completed by a given miner
    mapping(uint256 => uint256) requestIdByTimestamp; //minedTimestamp to apiId
    mapping(uint256 => uint256) requestIdByRequestQIndex; //link from payoutPoolIndex (position in payout pool array) to apiId
    mapping(uint256 => Dispute) public disputesById; //disputeId=> Dispute details
    mapping(bytes32 => uint256) public requestIdByQueryHash; // api bytes32 gets an id = to count of requests array
    mapping(bytes32 => uint256) public disputeIdByDisputeHash; //maps a hash to an ID for each dispute
    mapping(bytes32 => mapping(address => bool)) public minersByChallenge;
    Details[5] public currentMiners; //This struct is for organizing the five mined values to find the median
    mapping(address => StakeInfo) stakerDetails; //mapping from a persons address to their staking info
    mapping(uint256 => Request) requestDetails;

    mapping(bytes32 => uint256) public uints;
    mapping(bytes32 => address) public addresses;
    mapping(bytes32 => bytes32) public bytesVars;

    //ERC20 storage
    mapping(address => Checkpoint[]) public balances;
    mapping(address => mapping(address => uint256)) public _allowances;

    //Migration storage
    mapping(address => bool) public migrated;
}

File 4 of 3 : TellorVariables.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.4;

// 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 _FEE =
        0x1da95f11543c9b03927178e07951795dfc95c7501a9d1cf00e13414ca33bc409; //keccak256("FEE");
    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;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_tContract","type":"address"},{"internalType":"address","name":"_oTellor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_newTellor","type":"address"}],"name":"NewTellorAddress","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"addresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balances","outputs":[{"internalType":"uint128","name":"fromBlock","type":"uint128"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"bytesVars","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newDeity","type":"address"}],"name":"changeDeity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tContract","type":"address"}],"name":"changeTellorContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"currentMiners","outputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"miner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"disputeIdByDisputeHash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"disputesById","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"int256","name":"tally","type":"int256"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"bool","name":"disputeVotePassed","type":"bool"},{"internalType":"bool","name":"isPropFork","type":"bool"},{"internalType":"address","name":"reportedMiner","type":"address"},{"internalType":"address","name":"reportingParty","type":"address"},{"internalType":"address","name":"proposedForkAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"migrated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"name":"minersByChallenge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"newValueTimestamps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"requestIdByQueryHash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"uints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50604051610e27380380610e278339818101604052604081101561003357600080fd5b5080516020918201517fb5f7e7387e8e977cc9c4c9513388b0d7224264b9a0159cd8e8bdd84a9ed504c38054336001600160a01b031991821681179092557f437dd27c2043efdfef03344e9331c924985f7bd1752abef5ea93bdbfed685100805482169092179091557ffe10c9a395cce5a324df121072934b83aa2f3aa5f594428b2a75cf926b73fae8805482166001600160a01b03808616919091179091557fc930326aab6c1874fc004d856083a6ed34e057e064970b7effb48e8e6e8ca1278054909216908316179055603160f81b7f52cb9007c7c6068f8ef37039d4f232cbf5a28ff8d93a5983c4c0c27cd2f9bc0d55604690925260647f5bccd7373734898281f858d7562320d2cdfc0b17bd72f779686937174d1500255560f07f8156e704072c396780f8253d0562de28216b73a1503daa96e259b9cdd951d71c5560c87f2e2f0a18eb55ef91e37921b3810d7feeef7a855ddc7f4f4249ef03d7b887ae3155670de0b6b3a76400007fc2c579d641b643400780d5c7ce967b420034b9f66962a5ee405cf70e4cbed6bb55681b1ae4d6e2ef5000007f3e5522f19747f0f285b96ded572ac4128c3a764aea9f44058dc0afc9dda449868190557f167af83a0768d27540775cfef6d996eb63f8a61fcdfb26e654c18fb50960e3be557f2c8b528fbaf48aaf13162a5a0519a7ad5a612da8ff8783465c17e076660a59f16000524260ef19017f231bb0dc207f13dd4e565ebc32496c470e35391bd8d3b6649269ee2328e03118556001603a8190556002603c556003603e55600460405560056042559091905b60338110156102da5760008181526045602090815260408083207ff68d680ab3160f1aa5d9c3a1383c49e3e60bf3c0c031245cbb036f5ce99afaa184526001908101835281842085905584845260359092529091208290550161027c565b507f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3829055604080516001600160a01b038416815290517fc2d1449eb0b6547aa426e09d9942a77fa4fc8cd3296305b3163e22452e0bcb8d9181900360200190a15050610adb8061034c6000396000f3fe6080604052600436106100e85760003560e01c806362dd1d2a1161008a578063b59e14d411610059578063b59e14d414610434578063cbf1304d1461045e578063d01f4d9e146104e5578063db085beb1461050f576100e8565b806362dd1d2a14610337578063699f200f14610361578063a6f9dae1146103b4578063ae0a8279146103f4576100e8565b806347abd7f1116100c657806347abd7f11461023157806348b18e54146102735780634ba0a5ee146102cd5780635700242c1461030d576100e8565b8063024c2ddd146101555780631fd22364146101af578063438c0aa314610207575b7f0f1293c916694ac6af4daa2f866f0448d0c2ce8847074a7896d397c961914a0860005260476020527ffe10c9a395cce5a324df121072934b83aa2f3aa5f594428b2a75cf926b73fae85473ffffffffffffffffffffffffffffffffffffffff1661015281610596565b50005b34801561016157600080fd5b5061019d6004803603604081101561017857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166105ba565b60408051918252519081900360200190f35b3480156101bb57600080fd5b506101d9600480360360208110156101d257600080fd5b50356105d7565b6040805192835273ffffffffffffffffffffffffffffffffffffffff90911660208301528051918290030190f35b34801561021357600080fd5b5061019d6004803603602081101561022a57600080fd5b503561060f565b34801561023d57600080fd5b506102716004803603602081101561025457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610630565b005b34801561027f57600080fd5b506102b96004803603604081101561029657600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff1661072b565b604080519115158252519081900360200190f35b3480156102d957600080fd5b506102b9600480360360208110156102f057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074b565b34801561031957600080fd5b5061019d6004803603602081101561033057600080fd5b5035610760565b34801561034357600080fd5b5061019d6004803603602081101561035a57600080fd5b5035610772565b34801561036d57600080fd5b5061038b6004803603602081101561038457600080fd5b5035610784565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156103c057600080fd5b50610271600480360360208110156103d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ac565b34801561040057600080fd5b506102716004803603602081101561041757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166108a7565b34801561044057600080fd5b5061019d6004803603602081101561045757600080fd5b50356109bf565b34801561046a57600080fd5b506104a46004803603604081101561048157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109d1565b60405180836fffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156104f157600080fd5b5061019d6004803603602081101561050857600080fd5b5035610a2a565b34801561051b57600080fd5b506105396004803603602081101561053257600080fd5b5035610a3c565b604080519889526020890197909752941515878701529215156060870152901515608086015273ffffffffffffffffffffffffffffffffffffffff90811660a086015290811660c08501521660e083015251908190036101000190f35b3660008037600080366000845af43d6000803e8080156105b5573d6000f35b3d6000fd5b604a60209081526000928352604080842090915290825290205481565b603a81600581106105e757600080fd5b60020201805460019091015490915073ffffffffffffffffffffffffffffffffffffffff1682565b6033818154811061061f57600080fd5b600091825260209091200154905081565b7f5fc094d10c65bc33cc842217b2eccca0191ff24148319da094e540a55989896160005260476020527f437dd27c2043efdfef03344e9331c924985f7bd1752abef5ea93bdbfed6851005473ffffffffffffffffffffffffffffffffffffffff16331461069c57600080fd5b7f5fc094d10c65bc33cc842217b2eccca0191ff24148319da094e540a55989896160005260476020527f437dd27c2043efdfef03344e9331c924985f7bd1752abef5ea93bdbfed68510080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b603960209081526000928352604080842090915290825290205460ff1681565b604b6020526000908152604090205460ff1681565b60376020526000908152604090205481565b60486020526000908152604090205481565b60476020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b7f7a39905194de50bde334d18b76bbb36dddd11641d4d50b470cb837cf3bae5def60005260476020527fb5f7e7387e8e977cc9c4c9513388b0d7224264b9a0159cd8e8bdd84a9ed504c35473ffffffffffffffffffffffffffffffffffffffff16331461081857600080fd5b7f7a39905194de50bde334d18b76bbb36dddd11641d4d50b470cb837cf3bae5def60005260476020527fb5f7e7387e8e977cc9c4c9513388b0d7224264b9a0159cd8e8bdd84a9ed504c380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7f5fc094d10c65bc33cc842217b2eccca0191ff24148319da094e540a55989896160005260476020527f437dd27c2043efdfef03344e9331c924985f7bd1752abef5ea93bdbfed6851005473ffffffffffffffffffffffffffffffffffffffff16331461091357600080fd5b7f0f1293c916694ac6af4daa2f866f0448d0c2ce8847074a7896d397c961914a0860005260476020527ffe10c9a395cce5a324df121072934b83aa2f3aa5f594428b2a75cf926b73fae880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790557f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c355565b60466020526000908152604090205481565b604960205281600052604060002081815481106109ed57600080fd5b6000918252602090912001546fffffffffffffffffffffffffffffffff808216935070010000000000000000000000000000000090910416905082565b60386020526000908152604090205481565b603660205260009081526040902080546001820154600283015460038401546004909401549293919260ff8083169361010084048216936201000081049092169273ffffffffffffffffffffffffffffffffffffffff630100000090930483169291821691168856fea26469706673582212209e7d5a59bdd8f8e704c91d2ca1a695b4915f7cb34a29040a745079f8c4ba9f2c64736f6c6343000704003300000000000000000000000004b5129735b5d9b1b54109f2c4c06ea23b506a950000000000000000000000000ba45a8b5d5575935b8158a88c631e9f9c95a2e5

Deployed Bytecode

0x6080604052600436106100e85760003560e01c806362dd1d2a1161008a578063b59e14d411610059578063b59e14d414610434578063cbf1304d1461045e578063d01f4d9e146104e5578063db085beb1461050f576100e8565b806362dd1d2a14610337578063699f200f14610361578063a6f9dae1146103b4578063ae0a8279146103f4576100e8565b806347abd7f1116100c657806347abd7f11461023157806348b18e54146102735780634ba0a5ee146102cd5780635700242c1461030d576100e8565b8063024c2ddd146101555780631fd22364146101af578063438c0aa314610207575b7f0f1293c916694ac6af4daa2f866f0448d0c2ce8847074a7896d397c961914a0860005260476020527ffe10c9a395cce5a324df121072934b83aa2f3aa5f594428b2a75cf926b73fae85473ffffffffffffffffffffffffffffffffffffffff1661015281610596565b50005b34801561016157600080fd5b5061019d6004803603604081101561017857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166105ba565b60408051918252519081900360200190f35b3480156101bb57600080fd5b506101d9600480360360208110156101d257600080fd5b50356105d7565b6040805192835273ffffffffffffffffffffffffffffffffffffffff90911660208301528051918290030190f35b34801561021357600080fd5b5061019d6004803603602081101561022a57600080fd5b503561060f565b34801561023d57600080fd5b506102716004803603602081101561025457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610630565b005b34801561027f57600080fd5b506102b96004803603604081101561029657600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff1661072b565b604080519115158252519081900360200190f35b3480156102d957600080fd5b506102b9600480360360208110156102f057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661074b565b34801561031957600080fd5b5061019d6004803603602081101561033057600080fd5b5035610760565b34801561034357600080fd5b5061019d6004803603602081101561035a57600080fd5b5035610772565b34801561036d57600080fd5b5061038b6004803603602081101561038457600080fd5b5035610784565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156103c057600080fd5b50610271600480360360208110156103d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ac565b34801561040057600080fd5b506102716004803603602081101561041757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166108a7565b34801561044057600080fd5b5061019d6004803603602081101561045757600080fd5b50356109bf565b34801561046a57600080fd5b506104a46004803603604081101561048157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109d1565b60405180836fffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156104f157600080fd5b5061019d6004803603602081101561050857600080fd5b5035610a2a565b34801561051b57600080fd5b506105396004803603602081101561053257600080fd5b5035610a3c565b604080519889526020890197909752941515878701529215156060870152901515608086015273ffffffffffffffffffffffffffffffffffffffff90811660a086015290811660c08501521660e083015251908190036101000190f35b3660008037600080366000845af43d6000803e8080156105b5573d6000f35b3d6000fd5b604a60209081526000928352604080842090915290825290205481565b603a81600581106105e757600080fd5b60020201805460019091015490915073ffffffffffffffffffffffffffffffffffffffff1682565b6033818154811061061f57600080fd5b600091825260209091200154905081565b7f5fc094d10c65bc33cc842217b2eccca0191ff24148319da094e540a55989896160005260476020527f437dd27c2043efdfef03344e9331c924985f7bd1752abef5ea93bdbfed6851005473ffffffffffffffffffffffffffffffffffffffff16331461069c57600080fd5b7f5fc094d10c65bc33cc842217b2eccca0191ff24148319da094e540a55989896160005260476020527f437dd27c2043efdfef03344e9331c924985f7bd1752abef5ea93bdbfed68510080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b603960209081526000928352604080842090915290825290205460ff1681565b604b6020526000908152604090205460ff1681565b60376020526000908152604090205481565b60486020526000908152604090205481565b60476020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b7f7a39905194de50bde334d18b76bbb36dddd11641d4d50b470cb837cf3bae5def60005260476020527fb5f7e7387e8e977cc9c4c9513388b0d7224264b9a0159cd8e8bdd84a9ed504c35473ffffffffffffffffffffffffffffffffffffffff16331461081857600080fd5b7f7a39905194de50bde334d18b76bbb36dddd11641d4d50b470cb837cf3bae5def60005260476020527fb5f7e7387e8e977cc9c4c9513388b0d7224264b9a0159cd8e8bdd84a9ed504c380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7f5fc094d10c65bc33cc842217b2eccca0191ff24148319da094e540a55989896160005260476020527f437dd27c2043efdfef03344e9331c924985f7bd1752abef5ea93bdbfed6851005473ffffffffffffffffffffffffffffffffffffffff16331461091357600080fd5b7f0f1293c916694ac6af4daa2f866f0448d0c2ce8847074a7896d397c961914a0860005260476020527ffe10c9a395cce5a324df121072934b83aa2f3aa5f594428b2a75cf926b73fae880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790557f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c355565b60466020526000908152604090205481565b604960205281600052604060002081815481106109ed57600080fd5b6000918252602090912001546fffffffffffffffffffffffffffffffff808216935070010000000000000000000000000000000090910416905082565b60386020526000908152604090205481565b603660205260009081526040902080546001820154600283015460038401546004909401549293919260ff8083169361010084048216936201000081049092169273ffffffffffffffffffffffffffffffffffffffff630100000090930483169291821691168856fea26469706673582212209e7d5a59bdd8f8e704c91d2ca1a695b4915f7cb34a29040a745079f8c4ba9f2c64736f6c63430007040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000004b5129735b5d9b1b54109f2c4c06ea23b506a950000000000000000000000000ba45a8b5d5575935b8158a88c631e9f9c95a2e5

-----Decoded View---------------
Arg [0] : _tContract (address): 0x04B5129735b5d9B1B54109F2C4C06ea23B506a95
Arg [1] : _oTellor (address): 0x0Ba45A8b5d5575935B8158a88C631E9F9C95a2e5

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000004b5129735b5d9b1b54109f2c4c06ea23b506a95
Arg [1] : 0000000000000000000000000ba45a8b5d5575935b8158a88c631e9f9c95a2e5


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Tellor is a decentralized oracle that provides an on-chain data bank where staked miners compete to add the data points.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.