Sponsored:   LH-CRYPTO - 200 instruments (BTC, EUR, GOLD, OIL, SHARES). Leverage up to 1:500. OPEN ACCOUNT
Contract Overview
Balance: 13,929.418151269509490526 Ether
Ether Value: $2,424,136.64 (@ $174.03/ETH)
Transactions: 2763 txns
Token Tracker: Cash (CASH)
 Latest 25 transactions from a total of 2763 transactions
(+1 PendingTxn)

TxHash Age From To Value [TxFee]
0xe4397e1cb1524ec19724b09e027cbeee4f4ab5ba13c06e3d497fff7c24bda9c7(pending)0x0fa23c532b040f8e93af72d91fb03ad78eb367ed  IN  0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether(Pending)
0x6b7ac48395e282e57e2ba7c6b98e8f6f6c3a572f39926587ae4454522a1f11011 hr 22 mins ago0x60dc0b25f6aa160ec8748a52f6c360c213454bd1  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000109236
0xe02a0064eda669fb5c3af6f4d5ce09396d850400afd931b3061014f6bfce7af07 hrs 10 mins ago0x6bf1bc8c798f08615fa6b56563bc1a9164ae7eac  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.00025706
0xc0e657c9338a181a4bd6d21a155ad0baeb03c38c7805e18a1238c2ed1c8a14d512 hrs 57 mins ago0x0f8c0019414099aaf0db6a89d9109f41d03d5769  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000154236
0xd76545a9478eb45f6eb8b6dc72d82c3a93c4dfbdb8bbb3e73354dfa089690b1114 hrs 34 mins ago0x34c738a9034c437a1fb232e66824edf6e2624d62  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.00018206
0x76cbb01cf2ffbd86ab43b1c81df37bba9e0c509f2f452abe875fe88c492dec0b14 hrs 34 mins ago0x34c738a9034c437a1fb232e66824edf6e2624d62  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.00025706
0x3344b104b9cb65921a4294a2d91b601eae83bdfe49c7614e26104319d0c8d64b1 day 3 hrs ago0x6dd1d7feedb6e9ed6bcab06401df7776b7b9a185  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.00051412
0xfb8613bd36369edbb0486eedf58d6c34301c1e6299f2f832b60a8cd52eb1b2381 day 10 hrs ago0x594f5b1d405c41fd5732d89cf0a442f6361575bb  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000154236
0xbf16acc5992f7a929d39c9f4838ccd4e26a137cc08fc8fa20f70c0fa1f536ab81 day 17 hrs ago0x644385fa243d66ef38213d97f72c8c9ba4704b7a  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.00051412
0xab857364451c42bca7b40a7e55087b2952aee625538abef1ebb44b06b2e1c52d2 days 2 hrs ago0xa862b5237f4882a6b29d09bbf2f1a25ff08e16bb  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000154236
0x71781caef889fb3fea2194e2968654c0a98e4ecbf96e513b21a0f317e0694cc02 days 3 hrs ago0x190dc4f9aee4b89f23832f0cdd8ccd6eb8906667  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000616944
0x80a366d1244f6462b1b24e5f11661a74ee83e4ea66f4e70fd634fb193c32cafb2 days 14 hrs ago0x147824b5e8fb916e37cc47494afdb1dbb41f1d66  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000411296
0x23102b5497a8cf33c8783190bd3e44fc453596230ad6dc393bedbff512182dee2 days 17 hrs ago0xa808ba63710fb2f052871eddd6ac7f453df609ae  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000668356
0x6fbca1389abbd7e02e0fcaa44dd7a32df768042aacdd71558a0ef6c327f97b1b3 days 1 hr ago0x389a1a1dfe5e02ca4795bbcde92d1e4f04dccb01  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.00051412
0x926c32513796490545dc3ea0d9f75ca83f8ef4f2d4daab15d45a38048b129af03 days 8 hrs ago0x967522977231d072ad0b47aaf8c5018b04913ce9  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000205648
0xbecd9a355d1e930d54c42de8c1a098704cfd7c3de0ce0ff20868013f539989423 days 9 hrs ago0x2f70305965cc71bcc6f00c6253282fe33a3170a2  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000154236
0x2af03189cc4d372d01c4b5682dd019c4d7993c60f2101033128e37afc0a082d03 days 10 hrs ago0xcf0c8edaf6efe3d1116e0cac536648b9964104cd  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000154236
0x35659824b3679a772b3a726dfd437c52be284371f15ea6decf98b51097c9ca123 days 11 hrs ago0x99390bac1919423b87e8a8517ebf396866745c72  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000154236
0x4ec8f582849a798080b8ef05ccd60cbf4666fe9ae1898eb3de6c0f9a03baad983 days 12 hrs ago0xfa4d2600267f24db996f5e0b4bb8d1f1165fda2e  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000154236
0xeb53650e96c4f3859c1de8c17d13b1fefa35025799305e2eaa3ab3832973afa43 days 12 hrs ago0x38d6a550ebe865aca6938faaba0b34fcabb0d011  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000154236
0x29e10f5b9f15f803280417e10e5515181592b97526f77d36e4a085fe5687496a3 days 13 hrs ago0xaff57fe8bbc9cc6aec3fd21e8388d2a11efaf371  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.00025706
0xa4946aae196d7c170e5abf8c3876c26c977e34f01b5fa6c3bb9f23e4d2f2943c3 days 15 hrs ago0xa0652bb68340bec7144f1d545fdc2c84b9da11fc  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000205648
0x210d2874fcd2828a908500e393d0d18d6ce374e558db868330fac87cbe3e311f3 days 19 hrs ago0x493b5cffc19804e8fa2883bd7e567d40027a5744  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.0005089788
0x81d05c5881126ad28aaf21896bc607155a965427d56a3c28b318db6160d782814 days 6 hrs ago0x90f0e52a5c766508d7210443eec8d7507edda9d7  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000205648
0x174fd6c52977079b11160dc774f1705ac17ed62b957c18feae4f752350b0bdc24 days 9 hrs ago0x1602f94cd903a64a2a4d48080652f8d03e7aa205  IN   0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0 Ether0.000145648
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x0b198c20e661764e7022fdf71818648cf38e0e080324e174eb5a8f5cfa8a377e672083510 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.32 Ether
0xb2de28d96f8419bdbd626e6d204c20a1961d39d0e242c884401120c8de9ba10b672083310 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.2 Ether
0x9915bf6e4b38aae5828eb2a6ba54d634071f51f120455206fe24e0183d258357672079920 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b2.895 Ether
0x125f6cd0b243f777131e58ca2f8128fcd4747d53ffc7b10eb67790643f81df1767205631 hr 14 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b2.52 Ether
0xec91973bd215b729143f8ad6741dc376bb9437475a8ef49b293c5458f63f93af67204761 hr 34 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.08651 Ether
0x2d03698a69d94bdb65ab077a05323bbf3172c81084b2742ce072dcb85166ca2467204411 hr 41 mins ago0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0x60dc0b25f6aa160ec8748a52f6c360c213454bd13.12 Ether
0x4209ed3308a3081bc88d8873ed4ccb5a7a4db99e98d3ad4aa1a767bd3472d6e867204391 hr 42 mins ago0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0x60dc0b25f6aa160ec8748a52f6c360c213454bd13.29 Ether
0x8ee85aeaaacea1428d6c3c09be30f6aaf2c2dfdbdf763167bf82c8c7a43bcc1e67201832 hrs 44 mins ago0x7f27b0598949dbf9e539bbd217f15bf3f5e979990xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.63 Ether
0xd137e6a26cd9db3fe0d99f98e154877dc1832166b65d07829e4711afd2d9ef0d67201762 hrs 45 mins ago0x7f27b0598949dbf9e539bbd217f15bf3f5e979990xd5524179cb7ae012f5b642c1d6d700bbaa76b96b1.12 Ether
0x99e07d129af9dd3f9b5de0de9c0d6a1b813fe3ca54b866271bfec2b03d705f6467201722 hrs 46 mins ago0x7f27b0598949dbf9e539bbd217f15bf3f5e979990xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.64 Ether
0x5ae31836450a46e1464653fe8835a9d763ab557e3d90224337842f0c8288346967200863 hrs 5 mins ago0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0x2a544ee7dca6663841ac2956530bbd1bd482e6570.008 Ether
0x487a48d31f1fbbad4a85959d8eb5a6a2cf6cd80fd731ba041f4ce4c85b3a4e8a67198334 hrs 6 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.15 Ether
0xc67fb1de5a6eb38ebde79e392c41f4dd2d20750e5025177fd0c591715f61df5b67198274 hrs 7 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.12 Ether
0x3756ff74c492a1c7313fefabb864ff9e7c5e6bc7bd7434e7cdf11d6cd549b04767198254 hrs 8 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.0985 Ether
0x029eb2e74c3535a99dec4690f3b08fb245724170e18b268ce1ba9f0b1f28b29367198214 hrs 9 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.15 Ether
0xb6964cc490b2a44c44db76f9eeeb94b881d9af048477c956441bbf36c2397f9667198154 hrs 10 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.98 Ether
0x14f4815684656c2c6f8658a70eef429d5b06147801fd269f6da306dfc48afa0167191516 hrs 51 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.301 Ether
0x9fb3034755faf0d4ab9d201030b9899439300f24222797382050f59539c27cd367191017 hrs 4 mins ago0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0xb1a587ba36c49e37f58c081b7071f4217db3f3ed0.2649735 Ether
0x9fb3034755faf0d4ab9d201030b9899439300f24222797382050f59539c27cd367191017 hrs 4 mins ago0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0x008c84421da5527f462886cec43d2717b686a7e44.7345265 Ether
0xd05ce2a8b14cc3d5c57129a1c9d3ca491b63babc34ff3a31074e0f2ac0bce2ad67190897 hrs 8 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b4.699 Ether
0x3320af03224ef0c9106f9b5333850cd70eb0dfcad9d7a13601e82897af20ee7867189947 hrs 30 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.038 Ether
0x6dc932e4e07e0fb3ad2f6c05f7bd5451a6ab46bd11fdc375b6224e1659982d3c67188298 hrs 7 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0.301 Ether
0xfa125ac43549e89d32105f791a4a726e35b42c23625a4e8198a214506f544ce767188188 hrs 10 mins ago0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0xb1a587ba36c49e37f58c081b7071f4217db3f3ed0.2649735 Ether
0xfa125ac43549e89d32105f791a4a726e35b42c23625a4e8198a214506f544ce767188188 hrs 10 mins ago0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b0x008c84421da5527f462886cec43d2717b686a7e44.7345265 Ether
0x60113783ee7ed0f331334f56a87318f3d1c21b518441eac13e53fd807cf2fd4567187338 hrs 26 mins ago0x24e2b1d415e6e0d04042eaa45dc2a08fc33ca6cd0xd5524179cb7ae012f5b642c1d6d700bbaa76b96b4.699 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Similar Match)
Note: Displaying Similar Match Verified Source Code At Contract 0x10b5589fc6922f5c27061ac79ad9a4af35e15806(Excluding Constructor Arguments if_any)
Contract Name: Delegator
Compiler Text: v0.4.20+commit.3155dd80
Optimization Enabled: Yes
Runs (Optimiser):  500



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.20;

contract IAugur {
    function createChildUniverse(bytes32 _parentPayoutDistributionHash, uint256[] _parentPayoutNumerators, bool _parentInvalid) public returns (IUniverse);
    function isKnownUniverse(IUniverse _universe) public view returns (bool);
    function trustedTransfer(ERC20 _token, address _from, address _to, uint256 _amount) public returns (bool);
    function logMarketCreated(bytes32 _topic, string _description, string _extraInfo, IUniverse _universe, address _market, address _marketCreator, bytes32[] _outcomes, int256 _minPrice, int256 _maxPrice, IMarket.MarketType _marketType) public returns (bool);
    function logMarketCreated(bytes32 _topic, string _description, string _extraInfo, IUniverse _universe, address _market, address _marketCreator, int256 _minPrice, int256 _maxPrice, IMarket.MarketType _marketType) public returns (bool);
    function logInitialReportSubmitted(IUniverse _universe, address _reporter, address _market, uint256 _amountStaked, bool _isDesignatedReporter, uint256[] _payoutNumerators, bool _invalid) public returns (bool);
    function disputeCrowdsourcerCreated(IUniverse _universe, address _market, address _disputeCrowdsourcer, uint256[] _payoutNumerators, uint256 _size, bool _invalid) public returns (bool);
    function logDisputeCrowdsourcerContribution(IUniverse _universe, address _reporter, address _market, address _disputeCrowdsourcer, uint256 _amountStaked) public returns (bool);
    function logDisputeCrowdsourcerCompleted(IUniverse _universe, address _market, address _disputeCrowdsourcer) public returns (bool);
    function logInitialReporterRedeemed(IUniverse _universe, address _reporter, address _market, uint256 _amountRedeemed, uint256 _repReceived, uint256 _reportingFeesReceived, uint256[] _payoutNumerators) public returns (bool);
    function logDisputeCrowdsourcerRedeemed(IUniverse _universe, address _reporter, address _market, uint256 _amountRedeemed, uint256 _repReceived, uint256 _reportingFeesReceived, uint256[] _payoutNumerators) public returns (bool);
    function logFeeWindowRedeemed(IUniverse _universe, address _reporter, uint256 _amountRedeemed, uint256 _reportingFeesReceived) public returns (bool);
    function logMarketFinalized(IUniverse _universe) public returns (bool);
    function logMarketMigrated(IMarket _market, IUniverse _originalUniverse) public returns (bool);
    function logReportingParticipantDisavowed(IUniverse _universe, IMarket _market) public returns (bool);
    function logMarketParticipantsDisavowed(IUniverse _universe) public returns (bool);
    function logOrderCanceled(IUniverse _universe, address _shareToken, address _sender, bytes32 _orderId, Order.Types _orderType, uint256 _tokenRefund, uint256 _sharesRefund) public returns (bool);
    function logOrderCreated(Order.Types _orderType, uint256 _amount, uint256 _price, address _creator, uint256 _moneyEscrowed, uint256 _sharesEscrowed, bytes32 _tradeGroupId, bytes32 _orderId, IUniverse _universe, address _shareToken) public returns (bool);
    function logOrderFilled(IUniverse _universe, address _shareToken, address _filler, bytes32 _orderId, uint256 _numCreatorShares, uint256 _numCreatorTokens, uint256 _numFillerShares, uint256 _numFillerTokens, uint256 _marketCreatorFees, uint256 _reporterFees, uint256 _amountFilled, bytes32 _tradeGroupId) public returns (bool);
    function logCompleteSetsPurchased(IUniverse _universe, IMarket _market, address _account, uint256 _numCompleteSets) public returns (bool);
    function logCompleteSetsSold(IUniverse _universe, IMarket _market, address _account, uint256 _numCompleteSets) public returns (bool);
    function logTradingProceedsClaimed(IUniverse _universe, address _shareToken, address _sender, address _market, uint256 _numShares, uint256 _numPayoutTokens, uint256 _finalTokenBalance) public returns (bool);
    function logUniverseForked() public returns (bool);
    function logFeeWindowTransferred(IUniverse _universe, address _from, address _to, uint256 _value) public returns (bool);
    function logReputationTokensTransferred(IUniverse _universe, address _from, address _to, uint256 _value) public returns (bool);
    function logDisputeCrowdsourcerTokensTransferred(IUniverse _universe, address _from, address _to, uint256 _value) public returns (bool);
    function logShareTokensTransferred(IUniverse _universe, address _from, address _to, uint256 _value) public returns (bool);
    function logReputationTokenBurned(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logReputationTokenMinted(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logShareTokenBurned(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logShareTokenMinted(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logFeeWindowBurned(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logFeeWindowMinted(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logDisputeCrowdsourcerTokensBurned(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logDisputeCrowdsourcerTokensMinted(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logFeeWindowCreated(IFeeWindow _feeWindow, uint256 _id) public returns (bool);
    function logFeeTokenTransferred(IUniverse _universe, address _from, address _to, uint256 _value) public returns (bool);
    function logFeeTokenBurned(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logFeeTokenMinted(IUniverse _universe, address _target, uint256 _amount) public returns (bool);
    function logTimestampSet(uint256 _newTimestamp) public returns (bool);
    function logInitialReporterTransferred(IUniverse _universe, IMarket _market, address _from, address _to) public returns (bool);
    function logMarketTransferred(IUniverse _universe, address _from, address _to) public returns (bool);
    function logMarketMailboxTransferred(IUniverse _universe, IMarket _market, address _from, address _to) public returns (bool);
    function logEscapeHatchChanged(bool _isOn) public returns (bool);
}

contract IControlled {
    function getController() public view returns (IController);
    function setController(IController _controller) public returns(bool);
}

contract Controlled is IControlled {
    IController internal controller;

    modifier onlyWhitelistedCallers {
        require(controller.assertIsWhitelisted(msg.sender));
        _;
    }

    modifier onlyCaller(bytes32 _key) {
        require(msg.sender == controller.lookup(_key));
        _;
    }

    modifier onlyControllerCaller {
        require(IController(msg.sender) == controller);
        _;
    }

    modifier onlyInGoodTimes {
        require(controller.stopInEmergency());
        _;
    }

    modifier onlyInBadTimes {
        require(controller.onlyInEmergency());
        _;
    }

    function Controlled() public {
        controller = IController(msg.sender);
    }

    function getController() public view returns(IController) {
        return controller;
    }

    function setController(IController _controller) public onlyControllerCaller returns(bool) {
        controller = _controller;
        return true;
    }
}

contract IController {
    function assertIsWhitelisted(address _target) public view returns(bool);
    function lookup(bytes32 _key) public view returns(address);
    function stopInEmergency() public view returns(bool);
    function onlyInEmergency() public view returns(bool);
    function getAugur() public view returns (IAugur);
    function getTimestamp() public view returns (uint256);
}

contract DelegationTarget is Controlled {
    bytes32 public controllerLookupName;
}

contract Delegator is DelegationTarget {
    function Delegator(IController _controller, bytes32 _controllerLookupName) public {
        controller = _controller;
        controllerLookupName = _controllerLookupName;
    }

    function() external payable {
        // Do nothing if we haven't properly set up the delegator to delegate calls
        if (controllerLookupName == 0) {
            return;
        }

        // Get the delegation target contract
        address _target = controller.lookup(controllerLookupName);

        assembly {
            //0x40 is the address where the next free memory slot is stored in Solidity
            let _calldataMemoryOffset := mload(0x40)
            // new "memory end" including padding. The bitwise operations here ensure we get rounded up to the nearest 32 byte boundary
            let _size := and(add(calldatasize, 0x1f), not(0x1f))
            // Update the pointer at 0x40 to point at new free memory location so any theoretical allocation doesn't stomp our memory in this call
            mstore(0x40, add(_calldataMemoryOffset, _size))
            // Copy method signature and parameters of this call into memory
            calldatacopy(_calldataMemoryOffset, 0x0, calldatasize)
            // Call the actual method via delegation
            let _retval := delegatecall(gas, _target, _calldataMemoryOffset, calldatasize, 0, 0)
            switch _retval
            case 0 {
                // 0 == it threw, so we revert
                revert(0,0)
            } default {
                // If the call succeeded return the return data from the delegate call
                let _returndataMemoryOffset := mload(0x40)
                // Update the pointer at 0x40 again to point at new free memory location so any theoretical allocation doesn't stomp our memory in this call
                mstore(0x40, add(_returndataMemoryOffset, returndatasize))
                returndatacopy(_returndataMemoryOffset, 0x0, returndatasize)
                return(_returndataMemoryOffset, returndatasize)
            }
        }
    }
}

contract IOwnable {
    function getOwner() public view returns (address);
    function transferOwnership(address newOwner) public returns (bool);
}

contract ITyped {
    function getTypeName() public view returns (bytes32);
}

contract Initializable {
    bool private initialized = false;

    modifier afterInitialized {
        require(initialized);
        _;
    }

    modifier beforeInitialized {
        require(!initialized);
        _;
    }

    function endInitialization() internal beforeInitialized returns (bool) {
        initialized = true;
        return true;
    }

    function getInitialized() public view returns (bool) {
        return initialized;
    }
}

library SafeMathUint256 {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a * b;
        require(a == 0 || c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);
        return c;
    }

    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a <= b) {
            return a;
        } else {
            return b;
        }
    }

    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a >= b) {
            return a;
        } else {
            return b;
        }
    }

    function getUint256Min() internal pure returns (uint256) {
        return 0;
    }

    function getUint256Max() internal pure returns (uint256) {
        return 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
    }

    function isMultipleOf(uint256 a, uint256 b) internal pure returns (bool) {
        return a % b == 0;
    }

    // Float [fixed point] Operations
    function fxpMul(uint256 a, uint256 b, uint256 base) internal pure returns (uint256) {
        return div(mul(a, b), base);
    }

    function fxpDiv(uint256 a, uint256 b, uint256 base) internal pure returns (uint256) {
        return div(mul(a, base), b);
    }
}

contract ERC20Basic {
    event Transfer(address indexed from, address indexed to, uint256 value);

    function balanceOf(address _who) public view returns (uint256);
    function transfer(address _to, uint256 _value) public returns (bool);
    function totalSupply() public view returns (uint256);
}

contract ERC20 is ERC20Basic {
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function allowance(address _owner, address _spender) public view returns (uint256);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
    function approve(address _spender, uint256 _value) public returns (bool);
}

contract IFeeToken is ERC20, Initializable {
    function initialize(IFeeWindow _feeWindow) public returns (bool);
    function getFeeWindow() public view returns (IFeeWindow);
    function feeWindowBurn(address _target, uint256 _amount) public returns (bool);
    function mintForReportingParticipant(address _target, uint256 _amount) public returns (bool);
}

contract IFeeWindow is ITyped, ERC20 {
    function initialize(IUniverse _universe, uint256 _feeWindowId) public returns (bool);
    function getUniverse() public view returns (IUniverse);
    function getReputationToken() public view returns (IReputationToken);
    function getStartTime() public view returns (uint256);
    function getEndTime() public view returns (uint256);
    function getNumMarkets() public view returns (uint256);
    function getNumInvalidMarkets() public view returns (uint256);
    function getNumIncorrectDesignatedReportMarkets() public view returns (uint256);
    function getNumDesignatedReportNoShows() public view returns (uint256);
    function getFeeToken() public view returns (IFeeToken);
    function isActive() public view returns (bool);
    function isOver() public view returns (bool);
    function onMarketFinalized() public returns (bool);
    function buy(uint256 _attotokens) public returns (bool);
    function redeem(address _sender) public returns (bool);
    function redeemForReportingParticipant() public returns (bool);
    function mintFeeTokens(uint256 _amount) public returns (bool);
    function trustedUniverseBuy(address _buyer, uint256 _attotokens) public returns (bool);
}

contract IMailbox {
    function initialize(address _owner, IMarket _market) public returns (bool);
    function depositEther() public payable returns (bool);
}

contract IMarket is ITyped, IOwnable {
    enum MarketType {
        YES_NO,
        CATEGORICAL,
        SCALAR
    }

    function initialize(IUniverse _universe, uint256 _endTime, uint256 _feePerEthInAttoeth, ICash _cash, address _designatedReporterAddress, address _creator, uint256 _numOutcomes, uint256 _numTicks) public payable returns (bool _success);
    function derivePayoutDistributionHash(uint256[] _payoutNumerators, bool _invalid) public view returns (bytes32);
    function getUniverse() public view returns (IUniverse);
    function getFeeWindow() public view returns (IFeeWindow);
    function getNumberOfOutcomes() public view returns (uint256);
    function getNumTicks() public view returns (uint256);
    function getDenominationToken() public view returns (ICash);
    function getShareToken(uint256 _outcome)  public view returns (IShareToken);
    function getMarketCreatorSettlementFeeDivisor() public view returns (uint256);
    function getForkingMarket() public view returns (IMarket _market);
    function getEndTime() public view returns (uint256);
    function getMarketCreatorMailbox() public view returns (IMailbox);
    function getWinningPayoutDistributionHash() public view returns (bytes32);
    function getWinningPayoutNumerator(uint256 _outcome) public view returns (uint256);
    function getReputationToken() public view returns (IReputationToken);
    function getFinalizationTime() public view returns (uint256);
    function getInitialReporterAddress() public view returns (address);
    function deriveMarketCreatorFeeAmount(uint256 _amount) public view returns (uint256);
    function isContainerForShareToken(IShareToken _shadyTarget) public view returns (bool);
    function isContainerForReportingParticipant(IReportingParticipant _reportingParticipant) public view returns (bool);
    function isInvalid() public view returns (bool);
    function finalize() public returns (bool);
    function designatedReporterWasCorrect() public view returns (bool);
    function designatedReporterShowed() public view returns (bool);
    function isFinalized() public view returns (bool);
    function finalizeFork() public returns (bool);
    function assertBalances() public view returns (bool);
}

contract IReportingParticipant {
    function getStake() public view returns (uint256);
    function getPayoutDistributionHash() public view returns (bytes32);
    function liquidateLosing() public returns (bool);
    function redeem(address _redeemer) public returns (bool);
    function isInvalid() public view returns (bool);
    function isDisavowed() public view returns (bool);
    function migrate() public returns (bool);
    function getPayoutNumerator(uint256 _outcome) public view returns (uint256);
    function getMarket() public view returns (IMarket);
    function getSize() public view returns (uint256);
}

contract IDisputeCrowdsourcer is IReportingParticipant, ERC20 {
    function initialize(IMarket market, uint256 _size, bytes32 _payoutDistributionHash, uint256[] _payoutNumerators, bool _invalid) public returns (bool);
    function contribute(address _participant, uint256 _amount) public returns (uint256);
}

contract IReputationToken is ITyped, ERC20 {
    function initialize(IUniverse _universe) public returns (bool);
    function migrateOut(IReputationToken _destination, uint256 _attotokens) public returns (bool);
    function migrateIn(address _reporter, uint256 _attotokens) public returns (bool);
    function trustedReportingParticipantTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool);
    function trustedMarketTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool);
    function trustedFeeWindowTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool);
    function trustedUniverseTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool);
    function getUniverse() public view returns (IUniverse);
    function getTotalMigrated() public view returns (uint256);
    function getTotalTheoreticalSupply() public view returns (uint256);
    function mintForReportingParticipant(uint256 _amountMigrated) public returns (bool);
}

contract IUniverse is ITyped {
    function initialize(IUniverse _parentUniverse, bytes32 _parentPayoutDistributionHash) external returns (bool);
    function fork() public returns (bool);
    function getParentUniverse() public view returns (IUniverse);
    function createChildUniverse(uint256[] _parentPayoutNumerators, bool _invalid) public returns (IUniverse);
    function getChildUniverse(bytes32 _parentPayoutDistributionHash) public view returns (IUniverse);
    function getReputationToken() public view returns (IReputationToken);
    function getForkingMarket() public view returns (IMarket);
    function getForkEndTime() public view returns (uint256);
    function getForkReputationGoal() public view returns (uint256);
    function getParentPayoutDistributionHash() public view returns (bytes32);
    function getDisputeRoundDurationInSeconds() public view returns (uint256);
    function getOrCreateFeeWindowByTimestamp(uint256 _timestamp) public returns (IFeeWindow);
    function getOrCreateCurrentFeeWindow() public returns (IFeeWindow);
    function getOrCreateNextFeeWindow() public returns (IFeeWindow);
    function getOpenInterestInAttoEth() public view returns (uint256);
    function getRepMarketCapInAttoeth() public view returns (uint256);
    function getTargetRepMarketCapInAttoeth() public view returns (uint256);
    function getOrCacheValidityBond() public returns (uint256);
    function getOrCacheDesignatedReportStake() public returns (uint256);
    function getOrCacheDesignatedReportNoShowBond() public returns (uint256);
    function getOrCacheReportingFeeDivisor() public returns (uint256);
    function getDisputeThresholdForFork() public view returns (uint256);
    function getInitialReportMinValue() public view returns (uint256);
    function calculateFloatingValue(uint256 _badMarkets, uint256 _totalMarkets, uint256 _targetDivisor, uint256 _previousValue, uint256 _defaultValue, uint256 _floor) public pure returns (uint256 _newValue);
    function getOrCacheMarketCreationCost() public returns (uint256);
    function getCurrentFeeWindow() public view returns (IFeeWindow);
    function getOrCreateFeeWindowBefore(IFeeWindow _feeWindow) public returns (IFeeWindow);
    function isParentOf(IUniverse _shadyChild) public view returns (bool);
    function updateTentativeWinningChildUniverse(bytes32 _parentPayoutDistributionHash) public returns (bool);
    function isContainerForFeeWindow(IFeeWindow _shadyTarget) public view returns (bool);
    function isContainerForMarket(IMarket _shadyTarget) public view returns (bool);
    function isContainerForReportingParticipant(IReportingParticipant _reportingParticipant) public view returns (bool);
    function isContainerForShareToken(IShareToken _shadyTarget) public view returns (bool);
    function isContainerForFeeToken(IFeeToken _shadyTarget) public view returns (bool);
    function addMarketTo() public returns (bool);
    function removeMarketFrom() public returns (bool);
    function decrementOpenInterest(uint256 _amount) public returns (bool);
    function decrementOpenInterestFromMarket(uint256 _amount) public returns (bool);
    function incrementOpenInterest(uint256 _amount) public returns (bool);
    function incrementOpenInterestFromMarket(uint256 _amount) public returns (bool);
    function getWinningChildUniverse() public view returns (IUniverse);
    function isForking() public view returns (bool);
}

contract ICash is ERC20 {
    function depositEther() external payable returns(bool);
    function depositEtherFor(address _to) external payable returns(bool);
    function withdrawEther(uint256 _amount) external returns(bool);
    function withdrawEtherTo(address _to, uint256 _amount) external returns(bool);
    function withdrawEtherToIfPossible(address _to, uint256 _amount) external returns (bool);
}

contract IOrders {
    function saveOrder(Order.Types _type, IMarket _market, uint256 _fxpAmount, uint256 _price, address _sender, uint256 _outcome, uint256 _moneyEscrowed, uint256 _sharesEscrowed, bytes32 _betterOrderId, bytes32 _worseOrderId, bytes32 _tradeGroupId) public returns (bytes32 _orderId);
    function removeOrder(bytes32 _orderId) public returns (bool);
    function getMarket(bytes32 _orderId) public view returns (IMarket);
    function getOrderType(bytes32 _orderId) public view returns (Order.Types);
    function getOutcome(bytes32 _orderId) public view returns (uint256);
    function getAmount(bytes32 _orderId) public view returns (uint256);
    function getPrice(bytes32 _orderId) public view returns (uint256);
    function getOrderCreator(bytes32 _orderId) public view returns (address);
    function getOrderSharesEscrowed(bytes32 _orderId) public view returns (uint256);
    function getOrderMoneyEscrowed(bytes32 _orderId) public view returns (uint256);
    function getBetterOrderId(bytes32 _orderId) public view returns (bytes32);
    function getWorseOrderId(bytes32 _orderId) public view returns (bytes32);
    function getBestOrderId(Order.Types _type, IMarket _market, uint256 _outcome) public view returns (bytes32);
    function getWorstOrderId(Order.Types _type, IMarket _market, uint256 _outcome) public view returns (bytes32);
    function getLastOutcomePrice(IMarket _market, uint256 _outcome) public view returns (uint256);
    function getOrderId(Order.Types _type, IMarket _market, uint256 _fxpAmount, uint256 _price, address _sender, uint256 _blockNumber, uint256 _outcome, uint256 _moneyEscrowed, uint256 _sharesEscrowed) public pure returns (bytes32);
    function getTotalEscrowed(IMarket _market) public view returns (uint256);
    function isBetterPrice(Order.Types _type, uint256 _price, bytes32 _orderId) public view returns (bool);
    function isWorsePrice(Order.Types _type, uint256 _price, bytes32 _orderId) public view returns (bool);
    function assertIsNotBetterPrice(Order.Types _type, uint256 _price, bytes32 _betterOrderId) public view returns (bool);
    function assertIsNotWorsePrice(Order.Types _type, uint256 _price, bytes32 _worseOrderId) public returns (bool);
    function recordFillOrder(bytes32 _orderId, uint256 _sharesFilled, uint256 _tokensFilled) public returns (bool);
    function setPrice(IMarket _market, uint256 _outcome, uint256 _price) external returns (bool);
    function incrementTotalEscrowed(IMarket _market, uint256 _amount) external returns (bool);
    function decrementTotalEscrowed(IMarket _market, uint256 _amount) external returns (bool);
}

contract IShareToken is ITyped, ERC20 {
    function initialize(IMarket _market, uint256 _outcome) external returns (bool);
    function createShares(address _owner, uint256 _amount) external returns (bool);
    function destroyShares(address, uint256 balance) external returns (bool);
    function getMarket() external view returns (IMarket);
    function getOutcome() external view returns (uint256);
    function trustedOrderTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool);
    function trustedFillOrderTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool);
    function trustedCancelOrderTransfer(address _source, address _destination, uint256 _attotokens) public returns (bool);
}

library Order {
    using SafeMathUint256 for uint256;

    enum Types {
        Bid, Ask
    }

    enum TradeDirections {
        Long, Short
    }

    struct Data {
        // Contracts
        IOrders orders;
        IMarket market;
        IAugur augur;

        // Order
        bytes32 id;
        address creator;
        uint256 outcome;
        Order.Types orderType;
        uint256 amount;
        uint256 price;
        uint256 sharesEscrowed;
        uint256 moneyEscrowed;
        bytes32 betterOrderId;
        bytes32 worseOrderId;
    }

    //
    // Constructor
    //

    // No validation is needed here as it is simply a librarty function for organizing data
    function create(IController _controller, address _creator, uint256 _outcome, Order.Types _type, uint256 _attoshares, uint256 _price, IMarket _market, bytes32 _betterOrderId, bytes32 _worseOrderId) internal view returns (Data) {
        require(_outcome < _market.getNumberOfOutcomes());
        require(_price < _market.getNumTicks());

        IOrders _orders = IOrders(_controller.lookup("Orders"));
        IAugur _augur = _controller.getAugur();

        return Data({
            orders: _orders,
            market: _market,
            augur: _augur,
            id: 0,
            creator: _creator,
            outcome: _outcome,
            orderType: _type,
            amount: _attoshares,
            price: _price,
            sharesEscrowed: 0,
            moneyEscrowed: 0,
            betterOrderId: _betterOrderId,
            worseOrderId: _worseOrderId
        });
    }

    //
    // "public" functions
    //

    function getOrderId(Order.Data _orderData) internal view returns (bytes32) {
        if (_orderData.id == bytes32(0)) {
            bytes32 _orderId = _orderData.orders.getOrderId(_orderData.orderType, _orderData.market, _orderData.amount, _orderData.price, _orderData.creator, block.number, _orderData.outcome, _orderData.moneyEscrowed, _orderData.sharesEscrowed);
            require(_orderData.orders.getAmount(_orderId) == 0);
            _orderData.id = _orderId;
        }
        return _orderData.id;
    }

    function getOrderTradingTypeFromMakerDirection(Order.TradeDirections _creatorDirection) internal pure returns (Order.Types) {
        return (_creatorDirection == Order.TradeDirections.Long) ? Order.Types.Bid : Order.Types.Ask;
    }

    function getOrderTradingTypeFromFillerDirection(Order.TradeDirections _fillerDirection) internal pure returns (Order.Types) {
        return (_fillerDirection == Order.TradeDirections.Long) ? Order.Types.Ask : Order.Types.Bid;
    }

    function escrowFunds(Order.Data _orderData) internal returns (bool) {
        if (_orderData.orderType == Order.Types.Ask) {
            return escrowFundsForAsk(_orderData);
        } else if (_orderData.orderType == Order.Types.Bid) {
            return escrowFundsForBid(_orderData);
        }
    }

    function saveOrder(Order.Data _orderData, bytes32 _tradeGroupId) internal returns (bytes32) {
        return _orderData.orders.saveOrder(_orderData.orderType, _orderData.market, _orderData.amount, _orderData.price, _orderData.creator, _orderData.outcome, _orderData.moneyEscrowed, _orderData.sharesEscrowed, _orderData.betterOrderId, _orderData.worseOrderId, _tradeGroupId);
    }

    //
    // Private functions
    //

    function escrowFundsForBid(Order.Data _orderData) private returns (bool) {
        require(_orderData.moneyEscrowed == 0);
        require(_orderData.sharesEscrowed == 0);
        uint256 _attosharesToCover = _orderData.amount;
        uint256 _numberOfOutcomes = _orderData.market.getNumberOfOutcomes();

        // Figure out how many almost-complete-sets (just missing `outcome` share) the creator has
        uint256 _attosharesHeld = 2**254;
        for (uint256 _i = 0; _i < _numberOfOutcomes; _i++) {
            if (_i != _orderData.outcome) {
                uint256 _creatorShareTokenBalance = _orderData.market.getShareToken(_i).balanceOf(_orderData.creator);
                _attosharesHeld = SafeMathUint256.min(_creatorShareTokenBalance, _attosharesHeld);
            }
        }

        // Take shares into escrow if they have any almost-complete-sets
        if (_attosharesHeld > 0) {
            _orderData.sharesEscrowed = SafeMathUint256.min(_attosharesHeld, _attosharesToCover);
            _attosharesToCover -= _orderData.sharesEscrowed;
            for (_i = 0; _i < _numberOfOutcomes; _i++) {
                if (_i != _orderData.outcome) {
                    _orderData.market.getShareToken(_i).trustedOrderTransfer(_orderData.creator, _orderData.market, _orderData.sharesEscrowed);
                }
            }
        }
        // If not able to cover entire order with shares alone, then cover remaining with tokens
        if (_attosharesToCover > 0) {
            _orderData.moneyEscrowed = _attosharesToCover.mul(_orderData.price);
            require(_orderData.augur.trustedTransfer(_orderData.market.getDenominationToken(), _orderData.creator, _orderData.market, _orderData.moneyEscrowed));
        }

        return true;
    }

    function escrowFundsForAsk(Order.Data _orderData) private returns (bool) {
        require(_orderData.moneyEscrowed == 0);
        require(_orderData.sharesEscrowed == 0);
        IShareToken _shareToken = _orderData.market.getShareToken(_orderData.outcome);
        uint256 _attosharesToCover = _orderData.amount;

        // Figure out how many shares of the outcome the creator has
        uint256 _attosharesHeld = _shareToken.balanceOf(_orderData.creator);

        // Take shares in escrow if user has shares
        if (_attosharesHeld > 0) {
            _orderData.sharesEscrowed = SafeMathUint256.min(_attosharesHeld, _attosharesToCover);
            _attosharesToCover -= _orderData.sharesEscrowed;
            _shareToken.trustedOrderTransfer(_orderData.creator, _orderData.market, _orderData.sharesEscrowed);
        }

        // If not able to cover entire order with shares alone, then cover remaining with tokens
        if (_attosharesToCover > 0) {
            _orderData.moneyEscrowed = _orderData.market.getNumTicks().sub(_orderData.price).mul(_attosharesToCover);
            require(_orderData.augur.trustedTransfer(_orderData.market.getDenominationToken(), _orderData.creator, _orderData.market, _orderData.moneyEscrowed));
        }

        return true;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"getController","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_controller","type":"address"}],"name":"setController","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controllerLookupName","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_controller","type":"address"},{"name":"_controllerLookupName","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000f57600080fd5b6040516040806102fd833981016040528080519190602001805160008054600160a060020a039586163396909616600160a060020a03199182161716949094179093555050600155610297806100666000396000f3006060604052600436106100565763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633018205f811461014057806392eefe9b1461017c578063bef72fa2146101bc575b60015460009015156100675761013d565b6000805460015473ffffffffffffffffffffffffffffffffffffffff9091169163f39ec1f79190604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156100e457600080fd5b6102c65a03f115156100f557600080fd5b505050604051805190509050604051601f19601f36011680820160405236600083376000803684865af4808015610138576040513d81016040523d6000823e3d81f35b600080fd5b50005b341561014b57600080fd5b6101536101e1565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561018757600080fd5b6101a873ffffffffffffffffffffffffffffffffffffffff600435166101fd565b604051901515815260200160405180910390f35b34156101c757600080fd5b6101cf610265565b60405190815260200160405180910390f35b60005473ffffffffffffffffffffffffffffffffffffffff1690565b600080543373ffffffffffffffffffffffffffffffffffffffff90811691161461022657600080fd5b506000805473ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b600154815600a165627a7a7230582084796531768a1d75b70a76b8cd7c7db53c078e5abbed437bd74b1419316ec5990029000000000000000000000000b3337164e91b9f05c87c7662c7ac684e8e0ff3e754726164696e6745736361706548617463685461726765740000000000000000

   Swarm Source:
bzzr://84796531768a1d75b70a76b8cd7c7db53c078e5abbed437bd74b1419316ec599

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.