Sponsored Link:   WELL – WORKING HEALTHCARE U.S. PLATFORM - RAISED $3M IN PRE-ICO – JOIN NOW WITH 40% BONUS
  Latest 25 txns from a total Of 58888 transactions (+2 PendingTxns) View All

TxHash Age From To Value [TxFee]
0x05d5f0b4e9bc4f4b2c2dc6c4353faf41f7f7b2a0e74e7a3088cb6e362a207e23(pending)12 mins ago0xcce3274d89c285e70ad33e255b6db99590e0de3b  IN  0x09678741bd50c3e74301f38fbd0136307099ae5d0.05029 Ether(pending)
0x677db1a3229de1543ffddb8787b9a1b6ae3ad3655bdba9665d6501657a5a9a4a(pending)32 mins ago0x6de83123e443ab0eb89366e8286938f4b8557e9f  IN  0x09678741bd50c3e74301f38fbd0136307099ae5d0.05 Ether(pending)
0x1ba2ae42543a19820346ed3023be1efe8f00e957b0fb5a2d78fe9dbc3215dd39 36 secs ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.00114087168
0xf597b45ab486da32c02fd4ef99bc087e89a515b239d400d8fb39180caf32526f2 mins ago0x18d4137c7cba32aa66d183d4f121ea2b170a1f68  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0.4893 Ether0.0007228416
0xa99c3543125a9e102ea4a5532485b78c9c6884892b3261abd1d748665a3cd8c33 mins ago0x3c79138c9d126ba438c333e43667e3b3608acabd  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0.12319 Ether0.000452192
0xa810ce7f32419454bbac84c58a7c2c6128b2f623799ff1797a46ba8e87ad67b43 mins ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.00056545398
0xc4f9d4fcaffa327629163cecab050f3c5b8554b940cfd99da45e8754bf6f0ebd21 mins ago0xe68a267ec02c82c94c9b4d56a004acf5a5902d6f  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d1.8 Ether0.0002710656
0x9666ee306c29d1db633bc367878d4d47aa81916f1e475c0c8727de611037580a31 mins ago0xda4aebcad91183803dd0b4db436909265c8fd3d8  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0.05881 Ether0.000180544
0x2dc0b0114e78cac751fdea6fffb38ecd5c4173d1f16589ab95c351192fa653d731 mins ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.00036511371
0xce16f57488329c1968310482aeae2ea921d887847d6fca45ba0758f62918f72235 mins ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.00026379756
0x39b2f90fab742c7e100b9204c71166c4a9e15393f21403c447b11a792488d2bb35 mins ago0xc266c05c633cc3d26aab8e0f6015b2937084bc67  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0.31032 Ether0.0002710656
0x5aaec9a787ed1a5b53b24bf9b8a3f08989ea99d18ecd76c5e79513a7fa770e3746 mins ago0x23b05e1bd96e642c60307673d892516b7b12498f  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0.00811 Ether0.0003603444
0xcb25633d728cd3417e9d456d31c9b66d9110f0ae1a2ee28ac7bf4b338f3bc11547 mins ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.0003520296
0xa57e049081993a42806ea309f1b6586eec71e5bf91aab8fd42dfd8a6f6c8285249 mins ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.00036963108
0xc8e800b3ffab684f2bb14eca9f3efea35528a59345eb00575133d28abf2864ad49 mins ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.00026357292
0x53379bf3b76da9d28d0c5db516196bbde10cad0063d8d09c36a099b0a6ede66649 mins ago0xc64ad3c83a0259a1ed1ec17a27c712a0399bb277  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d1.14207 Ether0.000270816
0xc64b3034f8780784dc865f819830c7d07c07680c32e6ed53472dbd308bae2d2055 mins ago0x0101b0f6d585f43064799dd7b0d26de6ced3a64b  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0.12 Ether0.0003614208
0x118d19eabae9751cc14eb048e9a87abb400f354049f900a9a6e2a7fe500a529858 mins ago0x589855506658d4d0893b397ccdb0e940fea880c4  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0.0505 Ether0.0003614208
0xd9185b1e4b12bf15f52f43036dbf51fb6f6e730af597082096842a6fbcbcff7e59 mins ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.00078949728
0xdec8e1ce52807bcf9f4e849b8a5de18e5c972f05154581e2d083ac98aa30aac81 hr 2 mins ago0x73e45feb4d87a8634919df85d2f261880cefa973  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d1.41 Ether0.00045136
0x18513132f588ab5229548efa76adbcbe9106600f91369812d701c8f6bdb4a1841 hr 4 mins ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.0004404114
0x615dad54a4ec2f97e4a4c79dcb2a00a1dae0c2fe1ab4f8b00f29213aaf50d9fa1 hr 4 mins ago0xcd48eca3789f3845b493d52d44b171e4fc41c87e  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0.50378 Ether0.000452192
0xb2675f23250400cf80a338b3505f1948e66b2fc6d33c64c7777ea0c0f0d51cba1 hr 6 mins ago0xf008e2c7a7f16ac706c2e0ebd3f015d442016420  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0 Ether0.0004404114
0x19365405a88dd7595074041642aa73f07e5fb493bb6adceda4a15ce3d3d4e5341 hr 6 mins ago0xe6017d140292938573b55bc3a5ee825f1e329ece  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d0.21783 Ether0.000452192
0x060f7a96e6d3402d1b9a7669cc4ce9759b412e7569de01bb9277ec7cd8abbd181 hr 11 mins ago0x73e45feb4d87a8634919df85d2f261880cefa973  IN   0x09678741bd50c3e74301f38fbd0136307099ae5d1.08732 Ether0.000452192
[ 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
0x1ba2ae42543a19820346ed3023be1efe8f00e957b0fb5a2d78fe9dbc3215dd395123295 36 secs ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xdf71ad03c282cfaef78cf93c5798df78cafbc5b01.214908724 Ether
0x1ba2ae42543a19820346ed3023be1efe8f00e957b0fb5a2d78fe9dbc3215dd395123295 36 secs ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x54e2e938004ee55ef669d7e511978948539285450.1504413072 Ether
0x2dc0b0114e78cac751fdea6fffb38ecd5c4173d1f16589ab95c351192fa653d7512318131 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xfff069b48e696fcd10dfaeed943c591c6a7a4a580.0078521715 Ether
0xce16f57488329c1968310482aeae2ea921d887847d6fca45ba0758f62918f722512316435 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x0b614dfc2e5bcbda0fb12ced040ba17ecd21ccc40.108990144 Ether
0xcb25633d728cd3417e9d456d31c9b66d9110f0ae1a2ee28ac7bf4b338f3bc115512311747 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x61be6e800fdf267b115ad0218fcda5b9e86943af0.049692672 Ether
0xa57e049081993a42806ea309f1b6586eec71e5bf91aab8fd42dfd8a6f6c82852512311049 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x4930fa7697d76427536248e8dbf9aebd4f3d6d1a0.1187825556 Ether
0xc8e800b3ffab684f2bb14eca9f3efea35528a59345eb00575133d28abf2864ad512310749 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xcdd190a190a18d34539c38841867e5a3eb7948431.395673254 Ether
0xd9185b1e4b12bf15f52f43036dbf51fb6f6e730af597082096842a6fbcbcff7e512306959 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xe90b4e3bbc7af3d49c6c853048bbcf3ecf09ee570.828786592 Ether
0xd9185b1e4b12bf15f52f43036dbf51fb6f6e730af597082096842a6fbcbcff7e512306959 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xd81392f1969cc702f93afc311a53f8eb16ef2bd90.499788242 Ether
0xd9185b1e4b12bf15f52f43036dbf51fb6f6e730af597082096842a6fbcbcff7e512306959 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xce6be7b93e42204abfba8ce917fb7fd0918cba500.215438292 Ether
0x18513132f588ab5229548efa76adbcbe9106600f91369812d701c8f6bdb4a18451230461 hr 4 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xb22bd6e59a6f539ca92ff1136e0bb451e1a08c7c1.07606889 Ether
0xb2675f23250400cf80a338b3505f1948e66b2fc6d33c64c7777ea0c0f0d51cba51230331 hr 6 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x6b160293e2318da1e7fcfc28734913758604ebeb3.76338429 Ether
0xa7d8f834173b856341d91a3941d6a78340cc4fa7775bab0cbfdfa671aa9dcc3d51229021 hr 42 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x96b6ae9c8e413fdb39114fb0e8a97870a2297cc70.097707672 Ether
0xa21b741fecc08bd0deefdfc321540f78b7f20bb07e087b56aefbf21787f8ce7051228381 hr 59 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x07166e5c748dd56b06700d7b5b85907c1bcc10cf0.1598171715 Ether
0x03aafe739775e1060c31665ab27dc9f8cd4ad7ebb17f44f81d4a841e6dd4a8df51228102 hrs 7 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x217787fe5f6da4b2ceb6d4224d9bfa304ea541fa0.6353516556 Ether
0x494ff08016ff60fd990904fc34ed4dafaf67ac640950120b9726ce815235721751227862 hrs 13 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x03f92560addfbd9699caf243853472ddf7b669230.3957198682 Ether
0xccbff74c56255b4d7e0462646cffdcac2f91f66b9c8d6fdaabe2ad974c35cd7a51227462 hrs 22 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x41fe7031843cf718292b8b2715bb66143af926661.999856736 Ether
0x2dbb987d188ed2bcf5616a7f755320ea6797f4c0a75b6583c512115f8ef05ffa51226192 hrs 49 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xec414eb2b50463f9073e8c2ff67b9b428aeb0b440.180553536 Ether
0xf4f5985745b7caed757c757e32db9abcb4a3d501ef6e557340ffbe7fc6f32de651225902 hrs 57 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x7e8e81fd9eb6e4f456d8fe53080bc116f2e2274a0.152358336 Ether
0xd0e39aef5f06ca50e28bcaa4ba9b48937f3f8b55ffc1e145ccc4ce74f646fc8b51224023 hrs 40 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xc3fb683da397d99a1712f9000f69fbbb036043ce0.3792282723 Ether
0x702b9fa4b79c238c6d52c94d275b6b9a4e5d4022e0bb93f1b786d561d0a2c9bc51224013 hrs 40 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xb6d2522008ca43ec615ea8ce80042d31cc8cd49a0.196707672 Ether
0x67e78ee9eb619fea1bf5c7b54879fcd0661a1b17941991b36c5ff380fec38d3751223333 hrs 57 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x6cb469b01204623d9d05fe9842fe7ff92fc6b95c4.649640537 Ether
0x67e78ee9eb619fea1bf5c7b54879fcd0661a1b17941991b36c5ff380fec38d3751223333 hrs 57 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0x4e6f39133e37d0a09744b304fbfab3e49346c3150.503014362 Ether
0x98c09ce4ed4bb9c16504369d014742d0ebd62e98de49f5ed6964d2a0e0948d7151223154 hrs 1 min ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xb6e2cd6d4e17db2cca588b69c891e8134cdb46a30.249751872 Ether
0x6f0cbd98a792453dbaaa35c52f3b60bb4f34d0a4dd0c8809cfcc432644aec45851222934 hrs 6 mins ago0x09678741bd50c3e74301f38fbd0136307099ae5d0xba0b7867f69eb61b9d935b18fff63a8a44f62e7d3.174523344 Ether
[ Download CSV Export  ] 
Contract Source Code Verified
Contract Name: LocalEthereumEscrows
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.18;
contract Token {
    function transfer(address _to, uint _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint _value) public returns (bool success);
    function approve(address _spender, uint _value) public returns (bool success);
}
contract LocalEthereumEscrows {
    // The address of the arbitrator
    // In the first version, this is always localethereum staff.
    address public arbitrator;
    address public owner;
    address public relayer;
    uint32 public requestCancellationMinimumTime;
    uint256 public feesAvailableForWithdraw;

    uint8 constant ACTION_SELLER_CANNOT_CANCEL = 0x01; // Called when marking as paid or calling a dispute as the buyer
    uint8 constant ACTION_BUYER_CANCEL = 0x02;
    uint8 constant ACTION_SELLER_CANCEL = 0x03;
    uint8 constant ACTION_SELLER_REQUEST_CANCEL = 0x04;
    uint8 constant ACTION_RELEASE = 0x05;
    uint8 constant ACTION_DISPUTE = 0x06;

    event Created(bytes32 _tradeHash);
    event SellerCancelDisabled(bytes32 _tradeHash);
    event SellerRequestedCancel(bytes32 _tradeHash);
    event CancelledBySeller(bytes32 _tradeHash);
    event CancelledByBuyer(bytes32 _tradeHash);
    event Released(bytes32 _tradeHash);
    event DisputeResolved(bytes32 _tradeHash);

    struct Escrow {
        // Set so we know the trade has already been created
        bool exists;
        // The timestamp in which the seller can cancel the trade if the buyer has not yet marked as paid. Set to 0 on marked paid or dispute
        // 1 = unlimited cancel time
        uint32 sellerCanCancelAfter;
        // The total cost of gas spent by relaying parties. This amount will be
        // refunded/paid to localethereum.com once the escrow is finished.
        uint128 totalGasFeesSpentByRelayer;
    }
    // Mapping of active trades. Key is a hash of the trade data
    mapping (bytes32 => Escrow) public escrows;

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    modifier onlyArbitrator() {
        require(msg.sender == arbitrator);
        _;
    }

    function getRelayedSender(
      bytes16 _tradeID, // The unique ID of the trade, generated by localethereum.com
      uint8 _actionByte, // The desired action of the user, matching an ACTION_* constant
      uint128 _maximumGasPrice, // The maximum gas price the user is willing to pay
      uint8 _v, // Signature value
      bytes32 _r, // Signature value
      bytes32 _s // Signature value
    ) view private returns (address) {
        bytes32 _hash = keccak256(_tradeID, _actionByte, _maximumGasPrice);
        if(tx.gasprice > _maximumGasPrice) return;
        return ecrecover(_hash, _v, _r, _s);
    }

    function LocalEthereumEscrows() public {
        /**
         * Initialize the contract.
         */
        owner = msg.sender;
        arbitrator = msg.sender;
        relayer = msg.sender;
        requestCancellationMinimumTime = 2 hours; // TODO
    }

    function getEscrowAndHash(
      /**
       * Hashes the values and returns the matching escrow object and trade hash.
       * Returns an empty escrow struct and 0 _tradeHash if not found
       */
      bytes16 _tradeID,
      address _seller,
      address _buyer,
      uint256 _value,
      uint16 _fee
    ) view private returns (Escrow, bytes32) {
        bytes32 _tradeHash = keccak256(_tradeID, _seller, _buyer, _value, _fee);
        return (escrows[_tradeHash], _tradeHash);
    }

    function createEscrow(
      /**
       * Create a new escrow and add it to `escrows`.
       * _tradeHash is created by hashing _tradeID, _seller, _buyer, _value and _fee variables. These variables must be supplied on future contract calls.
       * v, r and s is the signature data supplied from the api. The sig is keccak256(_tradeHash, _paymentWindowInSeconds, _expiry).
       */
      bytes16 _tradeID, // The unique ID of the trade, generated by localethereum.com
      address _seller, // The selling party of the trade
      address _buyer, // The buying party of the trade
      uint256 _value, // The ether amount being held in escrow
      uint16 _fee, // The localethereum.com fee in 1/10000ths
      uint32 _paymentWindowInSeconds, // The time in seconds from contract creation that the buyer has to mark as paid
      uint32 _expiry, // Provided by localethereum.com. This transaction must be created before this time.
      uint8 _v, // Signature value
      bytes32 _r, // Signature value
      bytes32 _s // Signature value
    ) payable external {
        bytes32 _tradeHash = keccak256(_tradeID, _seller, _buyer, _value, _fee);
        require(!escrows[_tradeHash].exists); // Require that trade does not already exist
        require(ecrecover(keccak256(_tradeHash, _paymentWindowInSeconds, _expiry), _v, _r, _s) == relayer); // Signature must have come from the relayer
        require(block.timestamp < _expiry);
        require(msg.value == _value && msg.value > 0); // Check sent eth against signed _value and make sure is not 0
        uint32 _sellerCanCancelAfter = _paymentWindowInSeconds == 0 ? 1 : uint32(block.timestamp) + _paymentWindowInSeconds;
        escrows[_tradeHash] = Escrow(true, _sellerCanCancelAfter, 0);
        Created(_tradeHash);
    }

    uint16 constant GAS_doRelease = 36100;
    function doRelease(
      /**
       * Called by the seller to releases the funds for a successful trade.
       * Deletes the trade from the `escrows` mapping.
       */
      bytes16 _tradeID,
      address _seller,
      address _buyer,
      uint256 _value,
      uint16 _fee,
      uint128 _additionalGas
    ) private returns (bool) {
        var (_escrow, _tradeHash) = getEscrowAndHash(_tradeID, _seller, _buyer, _value, _fee);
        if (!_escrow.exists) return false;
        uint128 _gasFees = _escrow.totalGasFeesSpentByRelayer + (msg.sender == relayer ? (GAS_doRelease + _additionalGas) * uint128(tx.gasprice) : 0);
        delete escrows[_tradeHash];
        Released(_tradeHash);
        transferMinusFees(_buyer, _value, _gasFees, _fee);
        return true;
    }

    uint16 constant GAS_doDisableSellerCancel = 12100;
    function doDisableSellerCancel(
      /**
       * Stops the seller from cancelling the trade.
       * Can only be called the buyer.
       * Used to mark the trade as paid, or if the buyer has a dispute.
       */
      bytes16 _tradeID,
      address _seller,
      address _buyer,
      uint256 _value,
      uint16 _fee,
      uint128 _additionalGas
    ) private returns (bool) {
        var (_escrow, _tradeHash) = getEscrowAndHash(_tradeID, _seller, _buyer, _value, _fee);
        if (!_escrow.exists) return false;
        if(_escrow.sellerCanCancelAfter == 0) return false;
        escrows[_tradeHash].sellerCanCancelAfter = 0;
        SellerCancelDisabled(_tradeHash);
        if (msg.sender == relayer) {
          increaseGasSpent(_tradeHash, GAS_doDisableSellerCancel + _additionalGas);
        }
        return true;
    }

    uint16 constant GAS_doBuyerCancel = 36100;
    function doBuyerCancel(
      /**
       * Cancels the trade and returns the ether to the seller.
       * Can only be called the buyer.
       */
      bytes16 _tradeID,
      address _seller,
      address _buyer,
      uint256 _value,
      uint16 _fee,
      uint128 _additionalGas
    ) private returns (bool) {
        var (_escrow, _tradeHash) = getEscrowAndHash(_tradeID, _seller, _buyer, _value, _fee);
        if (!_escrow.exists) return false;
        uint128 _gasFees = _escrow.totalGasFeesSpentByRelayer + (msg.sender == relayer ? (GAS_doBuyerCancel + _additionalGas) * uint128(tx.gasprice) : 0);
        delete escrows[_tradeHash];
        CancelledByBuyer(_tradeHash);
        transferMinusFees(_seller, _value, _gasFees, 0);
        return true;
    }

    uint16 constant GAS_doSellerCancel = 36100;
    function doSellerCancel(
      /**
       * Cancels the trade and returns the ether to the seller.
       * Can only be called the seller.
       * Can only be called if the payment window was missed by the buyer
       */
      bytes16 _tradeID,
      address _seller,
      address _buyer,
      uint256 _value,
      uint16 _fee,
      uint128 _additionalGas
    ) private returns (bool) {
        var (_escrow, _tradeHash) = getEscrowAndHash(_tradeID, _seller, _buyer, _value, _fee);
        if (!_escrow.exists) return false;
        if(_escrow.sellerCanCancelAfter <= 1 || _escrow.sellerCanCancelAfter > block.timestamp) return false;
        uint128 _gasFees = _escrow.totalGasFeesSpentByRelayer + (msg.sender == relayer ? (GAS_doSellerCancel + _additionalGas) * uint128(tx.gasprice) : 0);
        delete escrows[_tradeHash];
        CancelledBySeller(_tradeHash);
        transferMinusFees(_seller, _value, _gasFees, 0);
        return true;
    }

    uint16 constant GAS_doSellerRequestCancel = 12100;
    function doSellerRequestCancel(
      /**
       * Called by the seller if the buyer is unresponsive
       * Can only be called on unlimited payment window trades (sellerCanCancelAfter == 1)
       * Sets the payment window to `requestCancellationMinimumTime` from now, in which it can be cancelled.
       */
      bytes16 _tradeID,
      address _seller,
      address _buyer,
      uint256 _value,
      uint16 _fee,
      uint128 _additionalGas
    ) private returns (bool) {
        // Called on unlimited payment window trades wheret the buyer is not responding
        var (_escrow, _tradeHash) = getEscrowAndHash(_tradeID, _seller, _buyer, _value, _fee);
        if (!_escrow.exists) return false;
        if(_escrow.sellerCanCancelAfter != 1) return false;
        escrows[_tradeHash].sellerCanCancelAfter = uint32(block.timestamp) + requestCancellationMinimumTime;
        SellerRequestedCancel(_tradeHash);
        if (msg.sender == relayer) {
          increaseGasSpent(_tradeHash, GAS_doSellerRequestCancel + _additionalGas);
        }
        return true;
    }

    uint16 constant GAS_doResolveDispute = 36100;
    function resolveDispute(
      /**
       * Called by the arbitrator to resolve a dispute
       * Requires the signed ACTION_DISPUTE actionByte from either the buyer or the seller
       */
      bytes16 _tradeID,
      address _seller,
      address _buyer,
      uint256 _value,
      uint16 _fee,
      uint8 _v,
      bytes32 _r,
      bytes32 _s,
      uint8 _buyerPercent
    ) external onlyArbitrator {
        address _signature = ecrecover(keccak256(_tradeID, ACTION_DISPUTE), _v, _r, _s);
        require(_signature == _buyer || _signature == _seller);

        var (_escrow, _tradeHash) = getEscrowAndHash(_tradeID, _seller, _buyer, _value, _fee);
        require(_escrow.exists);
        require(_buyerPercent <= 100);

        uint256 _totalFees = _escrow.totalGasFeesSpentByRelayer + GAS_doResolveDispute;
        require(_value - _totalFees <= _value); // Prevent underflow
        feesAvailableForWithdraw += _totalFees; // Add the the pot for localethereum to withdraw

        delete escrows[_tradeHash];
        DisputeResolved(_tradeHash);
        _buyer.transfer((_value - _totalFees) * _buyerPercent / 100);
        _seller.transfer((_value - _totalFees) * (100 - _buyerPercent) / 100);
    }

    function release(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee) external returns (bool){
      require(msg.sender == _seller);
      return doRelease(_tradeID, _seller, _buyer, _value, _fee, 0);
    }
    function disableSellerCancel(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee) external returns (bool) {
      require(msg.sender == _buyer);
      return doDisableSellerCancel(_tradeID, _seller, _buyer, _value, _fee, 0);
    }
    function buyerCancel(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee) external returns (bool) {
      require(msg.sender == _buyer);
      return doBuyerCancel(_tradeID, _seller, _buyer, _value, _fee, 0);
    }
    function sellerCancel(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee) external returns (bool) {
      require(msg.sender == _seller);
      return doSellerCancel(_tradeID, _seller, _buyer, _value, _fee, 0);
    }
    function sellerRequestCancel(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee) external returns (bool) {
      require(msg.sender == _seller);
      return doSellerRequestCancel(_tradeID, _seller, _buyer, _value, _fee, 0);
    }

    function relaySellerCannotCancel(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee, uint128 _maximumGasPrice, uint8 _v, bytes32 _r, bytes32 _s) external returns (bool) {
      return relay(_tradeID, _seller, _buyer, _value, _fee, _maximumGasPrice, _v, _r, _s, ACTION_SELLER_CANNOT_CANCEL, 0);
    }
    function relayBuyerCancel(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee, uint128 _maximumGasPrice, uint8 _v, bytes32 _r, bytes32 _s) external returns (bool) {
      return relay(_tradeID, _seller, _buyer, _value, _fee, _maximumGasPrice, _v, _r, _s, ACTION_BUYER_CANCEL, 0);
    }
    function relayRelease(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee, uint128 _maximumGasPrice, uint8 _v, bytes32 _r, bytes32 _s) external returns (bool) {
      return relay(_tradeID, _seller, _buyer, _value, _fee, _maximumGasPrice, _v, _r, _s, ACTION_RELEASE, 0);
    }
    function relaySellerCancel(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee, uint128 _maximumGasPrice, uint8 _v, bytes32 _r, bytes32 _s) external returns (bool) {
      return relay(_tradeID, _seller, _buyer, _value, _fee, _maximumGasPrice, _v, _r, _s, ACTION_SELLER_CANCEL, 0);
    }
    function relaySellerRequestCancel(bytes16 _tradeID, address _seller, address _buyer, uint256 _value, uint16 _fee, uint128 _maximumGasPrice, uint8 _v, bytes32 _r, bytes32 _s) external returns (bool) {
      return relay(_tradeID, _seller, _buyer, _value, _fee, _maximumGasPrice, _v, _r, _s, ACTION_SELLER_REQUEST_CANCEL, 0);
    }

    function relay(
      bytes16 _tradeID,
      address _seller,
      address _buyer,
      uint256 _value,
      uint16 _fee,
      uint128 _maximumGasPrice,
      uint8 _v,
      bytes32 _r,
      bytes32 _s,
      uint8 _actionByte,
      uint128 _additionalGas
    ) private returns (bool) {
      address _relayedSender = getRelayedSender(_tradeID, _actionByte, _maximumGasPrice, _v, _r, _s);
      if (_relayedSender == _buyer) {
        if (_actionByte == ACTION_SELLER_CANNOT_CANCEL) {
          return doDisableSellerCancel(_tradeID, _seller, _buyer, _value, _fee, _additionalGas);
        } else if (_actionByte == ACTION_BUYER_CANCEL) {
          return doBuyerCancel(_tradeID, _seller, _buyer, _value, _fee, _additionalGas);
        }
      } else if (_relayedSender == _seller) {
        if (_actionByte == ACTION_RELEASE) {
          return doRelease(_tradeID, _seller, _buyer, _value, _fee, _additionalGas);
        } else if (_actionByte == ACTION_SELLER_CANCEL) {
          return doSellerCancel(_tradeID, _seller, _buyer, _value, _fee, _additionalGas);
        } else if (_actionByte == ACTION_SELLER_REQUEST_CANCEL){
          return doSellerRequestCancel(_tradeID, _seller, _buyer, _value, _fee, _additionalGas);
        }
      } else {
        return false;
      }
    }

    uint16 constant GAS_batchRelayBaseCost = 28500;
    function batchRelay(
      /**
       * Call multiple relay methods at once to save on gas.
       */
        bytes16[] _tradeID,
        address[] _seller,
        address[] _buyer,
        uint256[] _value,
        uint16[] _fee,
        uint128[] _maximumGasPrice,
        uint8[] _v,
        bytes32[] _r,
        bytes32[] _s,
        uint8[] _actionByte
    ) public returns (bool[]) {
        bool[] memory _results = new bool[](_tradeID.length);
        uint128 _additionalGas = uint128(msg.sender == relayer ? GAS_batchRelayBaseCost / _tradeID.length : 0);
        for (uint8 i=0; i<_tradeID.length; i++) {
            _results[i] = relay(_tradeID[i], _seller[i], _buyer[i], _value[i], _fee[i], _maximumGasPrice[i], _v[i], _r[i], _s[i], _actionByte[i], _additionalGas);
        }
        return _results;
    }

    function increaseGasSpent(bytes32 _tradeHash, uint128 _gas) private {
        /** Increase `totalGasFeesSpentByRelayer` to be charged later on completion of the trade.
         */
        escrows[_tradeHash].totalGasFeesSpentByRelayer += _gas * uint128(tx.gasprice);
    }

    function transferMinusFees(address _to, uint256 _value, uint128 _totalGasFeesSpentByRelayer, uint16 _fee) private {
        uint256 _totalFees = (_value * _fee / 10000) + _totalGasFeesSpentByRelayer;
        if(_value - _totalFees > _value) return; // Prevent underflow
        feesAvailableForWithdraw += _totalFees; // Add the the pot for localethereum to withdraw
        _to.transfer(_value - _totalFees);
    }

    function withdrawFees(address _to, uint256 _amount) onlyOwner external {
      /**
       * Withdraw fees collected by the contract. Only the owner can call this.
       */
        require(_amount <= feesAvailableForWithdraw); // Also prevents underflow
        feesAvailableForWithdraw -= _amount;
        _to.transfer(_amount);
    }

    function setArbitrator(address _newArbitrator) onlyOwner external {
        /**
         * Set the arbitrator to a new address. Only the owner can call this.
         * @param address _newArbitrator
         */
        arbitrator = _newArbitrator;
    }

    function setOwner(address _newOwner) onlyOwner external {
        /**
         * Change the owner to a new address. Only the owner can call this.
         * @param address _newOwner
         */
        owner = _newOwner;
    }

    function setRelayer(address _newRelayer) onlyOwner external {
        /**
         * Change the relayer to a new address. Only the owner can call this.
         * @param address _newRelayer
         */
        relayer = _newRelayer;
    }

    function setRequestCancellationMinimumTime(uint32 _newRequestCancellationMinimumTime) onlyOwner external {
        /**
         * Change the requestCancellationMinimumTime. Only the owner can call this.
         * @param uint32 _newRequestCancellationMinimumTime
         */
        requestCancellationMinimumTime = _newRequestCancellationMinimumTime;
    }

    function transferToken(Token _tokenContract, address _transferTo, uint256 _value) onlyOwner external {
        /**
         * If ERC20 tokens are sent to this contract, they will be trapped forever.
         * This function is way for us to withdraw them so we can get them back to their rightful owner
         */
         _tokenContract.transfer(_transferTo, _value);
    }
    function transferTokenFrom(Token _tokenContract, address _transferTo, address _transferFrom, uint256 _value) onlyOwner external {
        /**
         * If ERC20 tokens are sent to this contract, they will be trapped forever.
         * This function is way for us to withdraw them so we can get them back to their rightful owner
         */
         _tokenContract.transferFrom(_transferTo, _transferFrom, _value);
    }
    function approveToken(Token _tokenContract, address _spender, uint256 _value) onlyOwner external {
        /**
         * If ERC20 tokens are sent to this contract, they will be trapped forever.
         * This function is way for us to withdraw them so we can get them back to their rightful owner
         */
         _tokenContract.approve(_spender, _value);
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"},{"name":"_maximumGasPrice","type":"uint128"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"relaySellerRequestCancel","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newRequestCancellationMinimumTime","type":"uint32"}],"name":"setRequestCancellationMinimumTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"},{"name":"_buyerPercent","type":"uint8"}],"name":"resolveDispute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"}],"name":"buyerCancel","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"escrows","outputs":[{"name":"exists","type":"bool"},{"name":"sellerCanCancelAfter","type":"uint32"},{"name":"totalGasFeesSpentByRelayer","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"},{"name":"_maximumGasPrice","type":"uint128"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"relaySellerCancel","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"}],"name":"sellerCancel","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"},{"name":"_maximumGasPrice","type":"uint128"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"relayRelease","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"requestCancellationMinimumTime","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"}],"name":"disableSellerCancel","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newRelayer","type":"address"}],"name":"setRelayer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"}],"name":"sellerRequestCancel","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"arbitrator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"relayer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16[]"},{"name":"_seller","type":"address[]"},{"name":"_buyer","type":"address[]"},{"name":"_value","type":"uint256[]"},{"name":"_fee","type":"uint16[]"},{"name":"_maximumGasPrice","type":"uint128[]"},{"name":"_v","type":"uint8[]"},{"name":"_r","type":"bytes32[]"},{"name":"_s","type":"bytes32[]"},{"name":"_actionByte","type":"uint8[]"}],"name":"batchRelay","outputs":[{"name":"","type":"bool[]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"},{"name":"_maximumGasPrice","type":"uint128"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"relaySellerCannotCancel","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newArbitrator","type":"address"}],"name":"setArbitrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"},{"name":"_maximumGasPrice","type":"uint128"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"relayBuyerCancel","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approveToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feesAvailableForWithdraw","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_transferTo","type":"address"},{"name":"_transferFrom","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferTokenFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"}],"name":"release","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tradeID","type":"bytes16"},{"name":"_seller","type":"address"},{"name":"_buyer","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint16"},{"name":"_paymentWindowInSeconds","type":"uint32"},{"name":"_expiry","type":"uint32"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"createEscrow","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_transferTo","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tradeHash","type":"bytes32"}],"name":"Created","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tradeHash","type":"bytes32"}],"name":"SellerCancelDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tradeHash","type":"bytes32"}],"name":"SellerRequestedCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tradeHash","type":"bytes32"}],"name":"CancelledBySeller","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tradeHash","type":"bytes32"}],"name":"CancelledByBuyer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tradeHash","type":"bytes32"}],"name":"Released","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tradeHash","type":"bytes32"}],"name":"DisputeResolved","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000f57600080fd5b60018054600160a060020a031990811633600160a060020a0316908117909255600080548216831781556002805490921690921760a060020a63ffffffff021916751c200000000000000000000000000000000000000000179055611e1290819061007a90396000f3006060604052600436106101455763ffffffff60e060020a600035041663036c36eb811461014a57806305b64993146101b357806313af4035146101d157806324943c7d146101f05780632cc9636c146102415780632d83549c1461027d57806331d36cf0146102c757806335adc0c51461031c578063520c3db71461035857806357938b2a146103ad5780635c810f09146103d95780636548e9bc146104155780636b407837146104345780636cc6cde1146104705780638406c0791461049f5780638da5cb5b146104b25780638eb4e0ad146104c5578063a246d83b146107a7578063ad3b1b47146107fc578063b0eefabe1461081e578063d81d50621461083d578063da3e339714610892578063de5785d5146108ba578063e5994905146108df578063e9600f121461090d578063f1e03d6714610949578063f5537ede14610997575b600080fd5b341561015557600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff6084351660a4356001608060020a031660ff60c4351660e435610104356109bf565b604051901515815260200160405180910390f35b34156101be57600080fd5b6101cf63ffffffff600435166109e4565b005b34156101dc57600080fd5b6101cf600160a060020a0360043516610a47565b34156101fb57600080fd5b6101cf6001608060020a031960043516600160a060020a036024358116906044351660643561ffff6084351660ff60a43581169060c4359060e435906101043516610a91565b341561024c57600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff60843516610cf3565b341561028857600080fd5b610293600435610d2e565b604051921515835263ffffffff90911660208301526001608060020a03166040808301919091526060909101905180910390f35b34156102d257600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff6084351660a4356001608060020a031660ff60c4351660e43561010435610d63565b341561032757600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff60843516610d7a565b341561036357600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff6084351660a4356001608060020a031660ff60c4351660e43561010435610dab565b34156103b857600080fd5b6103c0610dc2565b60405163ffffffff909116815260200160405180910390f35b34156103e457600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff60843516610de6565b341561042057600080fd5b6101cf600160a060020a0360043516610e17565b341561043f57600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff60843516610e61565b341561047b57600080fd5b610483610e92565b604051600160a060020a03909116815260200160405180910390f35b34156104aa57600080fd5b610483610ea1565b34156104bd57600080fd5b610483610eb0565b34156104d057600080fd5b6107546004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610ebf95505050505050565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561079357808201518382015260200161077b565b505050509050019250505060405180910390f35b34156107b257600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff6084351660a4356001608060020a031660ff60c4351660e43561010435611070565b341561080757600080fd5b6101cf600160a060020a0360043516602435611087565b341561082957600080fd5b6101cf600160a060020a03600435166110ef565b341561084857600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff6084351660a4356001608060020a031660ff60c4351660e43561010435611139565b341561089d57600080fd5b6101cf600160a060020a0360043581169060243516604435611150565b34156108c557600080fd5b6108cd6111e8565b60405190815260200160405180910390f35b34156108ea57600080fd5b6101cf600160a060020a03600435811690602435811690604435166064356111ee565b341561091857600080fd5b61019f6001608060020a031960043516600160a060020a036024358116906044351660643561ffff60843516611294565b6101cf6001608060020a031960043516600160a060020a036024358116906044351660643561ffff6084351663ffffffff60a43581169060c4351660ff60e4351661010435610124356112c5565b34156109a257600080fd5b6101cf600160a060020a0360043581169060243516604435611542565b60006109d68a8a8a8a8a8a8a8a8a600460006115ba565b9a9950505050505050505050565b60015433600160a060020a039081169116146109ff57600080fd5b6002805463ffffffff909216740100000000000000000000000000000000000000000277ffffffff000000000000000000000000000000000000000019909216919091179055565b60015433600160a060020a03908116911614610a6257600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610a9b611db4565b60008054819033600160a060020a03908116911614610ab957600080fd5b60018d60066040516001608060020a031992909216825260ff167f010000000000000000000000000000000000000000000000000000000000000002601082015260110160405180910390208989896040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f11515610b6757600080fd5b50506020604051035193508a600160a060020a031684600160a060020a03161480610ba357508b600160a060020a031684600160a060020a0316145b1515610bae57600080fd5b610bbb8d8d8d8d8d6116a4565b909350915082511515610bcd57600080fd5b606460ff86161115610bde57600080fd5b618d046040840151016001608060020a0316905089818b0311151515610c0357600080fd5b600380548201905560008281526004602052604090819020805474ffffffffffffffffffffffffffffffffffffffffff191690557f65e0c7182ce84cd9087c1b07dc4b65875578877b885848e4be19ee312f2c3d319083905190815260200160405180910390a1600160a060020a038b16606460ff8716838d03020480156108fc0290604051600060405180830381858888f193505050501515610ca657600080fd5b600160a060020a038c16606486810360ff16838d03020480156108fc0290604051600060405180830381858888f193505050501515610ce457600080fd5b50505050505050505050505050565b600083600160a060020a031633600160a060020a0316141515610d1557600080fd5b610d2486868686866000611793565b9695505050505050565b60046020526000908152604090205460ff811690610100810463ffffffff16906501000000000090046001608060020a031683565b60006109d68a8a8a8a8a8a8a8a8a600360006115ba565b600084600160a060020a031633600160a060020a0316141515610d9c57600080fd5b610d248686868686600061186f565b60006109d68a8a8a8a8a8a8a8a8a600560006115ba565b60025474010000000000000000000000000000000000000000900463ffffffff1681565b600083600160a060020a031633600160a060020a0316141515610e0857600080fd5b610d248686868686600061196a565b60015433600160a060020a03908116911614610e3257600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600084600160a060020a031633600160a060020a0316141515610e8357600080fd5b610d2486868686866000611a38565b600054600160a060020a031681565b600254600160a060020a031681565b600154600160a060020a031681565b610ec7611dd4565b610ecf611dd4565b6000808d51604051805910610ee15750595b908082528060200260200182016040525060025490935033600160a060020a03908116911614610f12576000610f22565b8d51616f54811515610f2057fe5b045b9150600090505b8d518160ff16101561105e576110388e8260ff1681518110610f4757fe5b906020019060200201518e8360ff1681518110610f6057fe5b906020019060200201518e8460ff1681518110610f7957fe5b906020019060200201518e8560ff1681518110610f9257fe5b906020019060200201518e8660ff1681518110610fab57fe5b906020019060200201518e8760ff1681518110610fc457fe5b906020019060200201518e8860ff1681518110610fdd57fe5b906020019060200201518e8960ff1681518110610ff657fe5b906020019060200201518e8a60ff168151811061100f57fe5b906020019060200201518e8b60ff168151811061102857fe5b906020019060200201518c6115ba565b838260ff168151811061104757fe5b911515602092830290910190910152600101610f29565b50909c9b505050505050505050505050565b60006109d68a8a8a8a8a8a8a8a8a600160006115ba565b60015433600160a060020a039081169116146110a257600080fd5b6003548111156110b157600080fd5b600380548290039055600160a060020a03821681156108fc0282604051600060405180830381858888f1935050505015156110eb57600080fd5b5050565b60015433600160a060020a0390811691161461110a57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006109d68a8a8a8a8a8a8a8a8a600260006115ba565b60015433600160a060020a0390811691161461116b57600080fd5b82600160a060020a031663095ea7b3838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156111c857600080fd5b6102c65a03f115156111d957600080fd5b50505060405180515050505050565b60035481565b60015433600160a060020a0390811691161461120957600080fd5b83600160a060020a03166323b872dd84848460006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561127357600080fd5b6102c65a03f1151561128457600080fd5b5050506040518051505050505050565b600084600160a060020a031633600160a060020a03161415156112b657600080fd5b610d2486868686866000611b2b565b6000808b8b8b8b8b6040516001608060020a031990951685526c01000000000000000000000000600160a060020a039485168102601087015292909316909102602484015260388301527e0100000000000000000000000000000000000000000000000000000000000061ffff909116026058820152605a0160405190819003902060008181526004602052604090205490925060ff161561136657600080fd5b600254600160a060020a0316600183898960405192835260e060020a63ffffffff92831681026020850152911602602482015260280160405180910390208787876040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f1151561140657600080fd5b505060206040510351600160a060020a03161461142257600080fd5b63ffffffff8616421061143457600080fd5b88341480156114435750600034115b151561144e57600080fd5b63ffffffff87161561146257864201611465565b60015b9050606060405190810160409081526001825263ffffffff831660208084019190915260008284018190528581526004909152208151815460ff19169015151781556020820151815463ffffffff919091166101000264ffffffff0019909116178155604082015181546001608060020a0391909116650100000000000274ffffffffffffffffffffffffffffffff000000000019909116179055507f102d25c49d33fcdb8976a3f2744e0785c98d9e43b88364859e6aec4ae82eff5c8260405190815260200160405180910390a1505050505050505050505050565b60015433600160a060020a0390811691161461155d57600080fd5b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156111c857600080fd5b6000806115cb8d858a8a8a8a611bf4565b90508a600160a060020a031681600160a060020a031614156116275760ff841660011415611608576116018d8d8d8d8d8861196a565b9150611694565b60ff841660021415611622576116018d8d8d8d8d88611793565b611694565b8b600160a060020a031681600160a060020a0316141561168f5760ff84166005141561165b576116018d8d8d8d8d88611b2b565b60ff841660031415611675576116018d8d8d8d8d8861186f565b60ff841660041415611622576116018d8d8d8d8d88611a38565b600091505b509b9a5050505050505050505050565b6116ac611db4565b60008087878787876040516001608060020a031990951685526c01000000000000000000000000600160a060020a039485168102601087015292909316909102602484015260388301527e0100000000000000000000000000000000000000000000000000000000000061ffff909116026058820152605a016040519081900390206000818152600460205260409081902091925082908290606090519081016040908152915460ff811615158252610100810463ffffffff1660208301526501000000000090046001608060020a0316918101919091529a909950975050505050505050565b600061179d611db4565b6000806117ad8a8a8a8a8a6116a4565b9093509150825115156117c35760009350611862565b60025433600160a060020a039081169116146117e05760006117e8565b618d0485013a025b836040015160008481526004602052604090819020805474ffffffffffffffffffffffffffffffffffffffffff19169055910191507fd9b627ddaa414e8e6c82366cc9c179f6281d73968827cc17038a56852e28ac8b9083905190815260200160405180910390a161185d8988836000611cf9565b600193505b5050509695505050505050565b6000611879611db4565b6000806118898a8a8a8a8a6116a4565b90935091508251151561189f5760009350611862565b6001836020015163ffffffff161115806118c2575042836020015163ffffffff16115b156118d05760009350611862565b60025433600160a060020a039081169116146118ed5760006118f5565b618d0485013a025b836040015160008481526004602052604090819020805474ffffffffffffffffffffffffffffffffffffffffff19169055910191507f366d2b4e6cc37ecebb3d7d41df6d581634fd8137412710a1e086e4ca4656bb589083905190815260200160405180910390a161185d8988836000611cf9565b6000611974611db4565b600061198389898989896116a4565b9092509050815115156119995760009250611a2c565b816020015163ffffffff1615156119b35760009250611a2c565b60008181526004602052604090819020805464ffffffff00191690557fe95fa7985c7585e90dab2dc46470726468662be06f67d79a31a5012e4bc0edeb9082905190815260200160405180910390a160025433600160a060020a0390811691161415611a2757611a2781612f448601611d62565b600192505b50509695505050505050565b6000611a42611db4565b6000611a5189898989896116a4565b909250905081511515611a675760009250611a2c565b816020015163ffffffff166001141515611a845760009250611a2c565b6002546000828152600460205260409081902080544263ffffffff740100000000000000000000000000000000000000009095048516019093166101000264ffffffff0019909316929092179091557f43e76a2687c7b12792086e4c776772be26c4d6a7041115f446cbc22ccada08ab9082905190815260200160405180910390a160025433600160a060020a0390811691161415611a2757611a2781612f448601611d62565b6000611b35611db4565b600080611b458a8a8a8a8a6116a4565b909350915082511515611b5b5760009350611862565b60025433600160a060020a03908116911614611b78576000611b80565b618d0485013a025b836040015160008481526004602052604090819020805474ffffffffffffffffffffffffffffffffffffffffff19169055910191507f6eec2dd2382427616d4ea7ef183b16091feac4e2e63c8b55f25215f132df8d149083905190815260200160405180910390a161185d88888389611cf9565b6000808787876040516001608060020a031993909316835260ff919091167f01000000000000000000000000000000000000000000000000000000000000000260108301526001608060020a031670010000000000000000000000000000000002601182015260210160405180910390209050856001608060020a03163a1115611c7d57611cee565b6001818686866040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f11515611ce257600080fd5b50506020604051035191505b509695505050505050565b61271061ffff82168402046001608060020a0383160180840384901115611d1f57611d5b565b6003805482019055600160a060020a03851681850380156108fc0290604051600060405180830381858888f193505050501515611d5b57600080fd5b5050505050565b600091825260046020526040909120805474ffffffffffffffffffffffffffffffff00000000001981163a90930265010000000000918290046001608060020a03908116919091011602919091179055565b606060405190810160409081526000808352602083018190529082015290565b602060405190810160405260008152905600a165627a7a723058206892bb8b3f3d8d03c452391b945a85a0b85bc59f54ace201085313f16b984ce40029

   Swarm Source:
bzzr://6892bb8b3f3d8d03c452391b945a85a0b85bc59f54ace201085313f16b984ce4

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.