ETH Price: $2,321.37 (-6.53%)

Contract

0x4F75836e2D0FF46513532d276e0475543B43d308
 

Overview

ETH Balance

0.195000000000000002 ETH

Eth Value

$452.67 (@ $2,321.37/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Redeem44262012017-10-25 9:59:542681 days ago1508925594IN
0x4F75836e...43B43d308
0 ETH0.000227045
Create44257592017-10-25 8:20:202681 days ago1508919620IN
0x4F75836e...43B43d308
0.005 ETH0.000820696
Redeem42133712017-08-28 16:23:162739 days ago1503937396IN
0x4F75836e...43B43d308
0 ETH0.0014758821
Redeem41673862017-08-17 2:21:312750 days ago1502936491IN
0x4F75836e...43B43d308
0 ETH0.0009590721
Create41403572017-08-10 12:54:592757 days ago1502369699IN
0x4F75836e...43B43d308
0.02 ETH0.000547384
Create41325902017-08-08 15:14:512759 days ago1502205291IN
0x4F75836e...43B43d308
0.1 ETH0.0028737621
Redeem41314692017-08-08 8:42:222759 days ago1502181742IN
0x4F75836e...43B43d308
0 ETH0.0014043220
Create41310632017-08-08 6:32:062759 days ago1502173926IN
0x4F75836e...43B43d308
0.01 ETH0.0028737621
Redeem41264472017-08-07 3:11:132760 days ago1502075473IN
0x4F75836e...43B43d308
0 ETH0.0014785621
Create41261102017-08-07 1:14:252760 days ago1502068465IN
0x4F75836e...43B43d308
0.01 ETH0.0028737621
Create41261012017-08-07 1:12:352760 days ago1502068355IN
0x4F75836e...43B43d308
0.01 ETH0.002121
Redeem41212642017-08-05 20:25:112762 days ago1501964711IN
0x4F75836e...43B43d308
0 ETH0.0009235220.42469852
Create41201682017-08-05 14:00:492762 days ago1501941649IN
0x4F75836e...43B43d308
0.01 ETH0.0028724221
Redeem40862512017-07-28 16:10:232770 days ago1501258223IN
0x4F75836e...43B43d308
0 ETH0.0009495321
Create40862452017-07-28 16:07:502770 days ago1501258070IN
0x4F75836e...43B43d308
0.1 ETH0.0028737621
Redeem40862282017-07-28 16:03:412770 days ago1501257821IN
0x4F75836e...43B43d308
0 ETH0.0009535621
Create40862242017-07-28 16:02:212770 days ago1501257741IN
0x4F75836e...43B43d308
0.05 ETH0.0028737621
Redeem40732162017-07-25 20:45:032773 days ago1501015503IN
0x4F75836e...43B43d308
0 ETH0.0015475622
Create40674782017-07-24 15:21:262774 days ago1500909686IN
0x4F75836e...43B43d308
0.025 ETH0.0027369220
Is Owner40480452017-07-20 10:31:382778 days ago1500546698IN
0x4F75836e...43B43d308
0 ETH0.0010620
Execute40480292017-07-20 10:23:572778 days ago1500546237IN
0x4F75836e...43B43d308
0 ETH0.0045548440
Execute40480252017-07-20 10:22:282778 days ago1500546148IN
0x4F75836e...43B43d308
0 ETH0.0008712220
Redeem40406832017-07-18 19:43:182780 days ago1500406998IN
0x4F75836e...43B43d308
0 ETH0.0010229722.52862201
Create40406482017-07-18 19:35:192780 days ago1500406519IN
0x4F75836e...43B43d308
0.05 ETH0.0028737621
Create40353662017-07-17 15:56:462781 days ago1500307006IN
0x4F75836e...43B43d308
0.005 ETH0.0041053830
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
44262012017-10-25 9:59:542681 days ago1508925594
0x4F75836e...43B43d308
0.005 ETH
42133712017-08-28 16:23:162739 days ago1503937396
0x4F75836e...43B43d308
0.02 ETH
41673862017-08-17 2:21:312750 days ago1502936491
0x4F75836e...43B43d308
0.1 ETH
41314692017-08-08 8:42:222759 days ago1502181742
0x4F75836e...43B43d308
0.01 ETH
41264472017-08-07 3:11:132760 days ago1502075473
0x4F75836e...43B43d308
0.01 ETH
41212642017-08-05 20:25:112762 days ago1501964711
0x4F75836e...43B43d308
0.01 ETH
40862512017-07-28 16:10:232770 days ago1501258223
0x4F75836e...43B43d308
0.1 ETH
40862282017-07-28 16:03:412770 days ago1501257821
0x4F75836e...43B43d308
0.05 ETH
40732162017-07-25 20:45:032773 days ago1501015503
0x4F75836e...43B43d308
0.025 ETH
40406832017-07-18 19:43:182780 days ago1500406998
0x4F75836e...43B43d308
0.05 ETH
40249852017-07-15 9:00:322783 days ago1500109232
0x4F75836e...43B43d308
0.022 ETH
40247202017-07-15 7:38:142783 days ago1500104294
0x4F75836e...43B43d308
0.03 ETH
40245982017-07-15 7:04:352783 days ago1500102275
0x4F75836e...43B43d308
0.017 ETH
40245422017-07-15 6:46:442783 days ago1500101204
0x4F75836e...43B43d308
0.03 ETH
40215912017-07-14 15:14:212784 days ago1500045261
0x4F75836e...43B43d308
0.005 ETH
40120462017-07-12 12:30:092786 days ago1499862609
0x4F75836e...43B43d308
0.005 ETH
39776832017-07-05 11:29:032793 days ago1499254143
0x4F75836e...43B43d308
0.01 ETH
39686562017-07-03 16:27:552795 days ago1499099275
0x4F75836e...43B43d308
0.005 ETH
39635632017-07-02 15:57:502796 days ago1499011070
0x4F75836e...43B43d308
0.1 ETH
39635292017-07-02 15:48:172796 days ago1499010497
0x4F75836e...43B43d308
0.1 ETH
39526852017-06-30 12:23:342798 days ago1498825414
0x4F75836e...43B43d308
0.02999999 ETH
39482592017-06-29 15:06:432799 days ago1498748803
0x4F75836e...43B43d308
0.005 ETH
39448492017-06-28 22:46:372800 days ago1498689997
0x4F75836e...43B43d308
0.001 ETH
39436362017-06-28 17:04:342800 days ago1498669474
0x4F75836e...43B43d308
0.01 ETH
39431542017-06-28 14:37:412800 days ago1498660661
0x4F75836e...43B43d308
0.02 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtherCheque

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-06-26
*/

pragma solidity ^0.4.11;

// copyright [email protected]

contract EtherCheque {
    enum Status { NONE, CREATED, LOCKED, EXPIRED, USED}
    enum ResultCode { 
        SUCCESS,
        ERROR_MAX,
        ERROR_MIN,
        ERROR_EXIST,
        ERROR_NOT_EXIST,
        ERROR_INVALID_STATUS,
        ERROR_LOCKED,
        ERROR_EXPIRED,
        ERROR_INVALID_AMOUNT,
        ERROR_USED
    }
    struct Cheque {
        bytes32 pinHash; // we only save sha3 of cheque signature
        address creator;
        Status status;
        uint value;
        uint createTime;
        uint expiringPeriod; // in seconds - optional, 0 mean no expire
        uint8 attempt; // current attempt account to cash the cheque
    }
    address public owner;
    address[] public moderators;
    uint public totalCheque = 0;
    uint public totalChequeValue = 0;
    uint public totalRedeemedCheque = 0;
    uint public totalRedeemedValue = 0;
    uint public commissionRate = 10; // div 1000
    uint public minFee = 0.005 ether;
    uint public minChequeValue = 0.01 ether;
    uint public maxChequeValue = 0; // optional, 0 mean no limit
    uint8 public maxAttempt = 3;
    bool public isMaintaining = false;
    
    // hash cheque no -> Cheque info
    mapping(bytes32 => Cheque) items;

    // modifier
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    modifier isActive {
        if(isMaintaining == true) throw;
        _;
    }
    
    modifier onlyModerators() {
        if (msg.sender != owner) {
            bool found = false;
            for (uint index = 0; index < moderators.length; index++) {
                if (moderators[index] == msg.sender) {
                    found = true;
                    break;
                }
            }
            if (!found) throw;
        }
        _;
    }
    
    function EtherCheque() {
        owner = msg.sender;
    }

    // event
    event LogCreate(bytes32 indexed chequeIdHash, uint result, uint amount);
    event LogRedeem(bytes32 indexed chequeIdHash, ResultCode result, uint amount, address receiver);
    event LogWithdrawEther(address indexed sendTo, ResultCode result, uint amount);
    event LogRefundCheque(bytes32 indexed chequeIdHash, ResultCode result);
    
    // owner function
    function ChangeOwner(address _newOwner) onlyOwner {
        owner = _newOwner;
    }
    
    function Kill() onlyOwner {
        suicide(owner);
    }
    
    function AddModerator(address _newModerator) onlyOwner {
        for (uint index = 0; index < moderators.length; index++) {
            if (moderators[index] == _newModerator) {
                return;
            }
        }
        moderators.push(_newModerator);
    }
    
    function RemoveModerator(address _oldModerator) onlyOwner {
        uint foundIndex = 0;
        for (; foundIndex < moderators.length; foundIndex++) {
            if (moderators[foundIndex] == _oldModerator) {
                break;
            }
        }
        if (foundIndex < moderators.length)
        {
            moderators[foundIndex] = moderators[moderators.length-1];
            delete moderators[moderators.length-1];
            moderators.length--;
        }
    }
    
    // moderator function
    function SetCommissionRate(uint _commissionRate) onlyModerators {
        commissionRate = _commissionRate;
    }
    
    function SetMinFee(uint _minFee) onlyModerators {
        minFee = _minFee;
    }
    
    function SetMinChequeValue(uint _minChequeValue) onlyModerators {
        minChequeValue = _minChequeValue;
    }
    
    function SetMaxChequeValue(uint _maxChequeValue) onlyModerators {
        maxChequeValue = _maxChequeValue;
    }
    
    function SetMaxAttempt(uint8 _maxAttempt) onlyModerators {
        maxAttempt = _maxAttempt;
    }
    
    function UpdateMaintenance(bool _isMaintaining) onlyModerators {
        isMaintaining = _isMaintaining;
    }
    
    function WithdrawEther(address _sendTo, uint _amount) onlyModerators returns(ResultCode) {
        // can only can withdraw profit - unable to withdraw cheque value
        uint currentProfit = this.balance - (totalChequeValue - totalRedeemedValue);
        if (_amount > currentProfit) {
            LogWithdrawEther(_sendTo, ResultCode.ERROR_INVALID_AMOUNT, 0);
            return ResultCode.ERROR_INVALID_AMOUNT;
        }
        
        _sendTo.transfer(_amount);
        LogWithdrawEther(_sendTo, ResultCode.SUCCESS, _amount);
        return ResultCode.SUCCESS;
    }
    
    // only when creator wants to get the money back
    // only can refund back to creator
    function RefundChequeById(string _chequeId) onlyModerators returns(ResultCode) {
        bytes32 chequeIdHash = sha3(_chequeId);
        Cheque cheque = items[chequeIdHash];
        if (cheque.status == Status.NONE) {
            LogRefundCheque(chequeIdHash, ResultCode.ERROR_NOT_EXIST);
            return ResultCode.ERROR_NOT_EXIST;
        }
        if (cheque.status == Status.USED) {
            LogRefundCheque(chequeIdHash, ResultCode.ERROR_USED);
            return ResultCode.ERROR_USED;
        }
        
        totalRedeemedCheque += 1;
        totalRedeemedValue += cheque.value;
        uint sendAmount = cheque.value;
        
        cheque.status = Status.USED;
        cheque.value = 0;
        
        cheque.creator.transfer(sendAmount);
        LogRefundCheque(chequeIdHash, ResultCode.SUCCESS);
        return ResultCode.SUCCESS;
    }

    function RefundChequeByHash(uint256 _chequeIdHash) onlyModerators returns(ResultCode) {
        bytes32 chequeIdHash = bytes32(_chequeIdHash);
        Cheque cheque = items[chequeIdHash];
        if (cheque.status == Status.NONE) {
            LogRefundCheque(chequeIdHash, ResultCode.ERROR_NOT_EXIST);
            return ResultCode.ERROR_NOT_EXIST;
        }
        if (cheque.status == Status.USED) {
            LogRefundCheque(chequeIdHash, ResultCode.ERROR_USED);
            return ResultCode.ERROR_USED;
        }
        
        totalRedeemedCheque += 1;
        totalRedeemedValue += cheque.value;
        uint sendAmount = cheque.value;
        
        cheque.status = Status.USED;
        cheque.value = 0;
        
        cheque.creator.transfer(sendAmount);
        LogRefundCheque(chequeIdHash, ResultCode.SUCCESS);
        return ResultCode.SUCCESS;
    }

    function GetChequeInfoByHash(uint256 _chequeIdHash) onlyModerators constant returns(Status, uint, uint, uint) {
        bytes32 chequeIdHash = bytes32(_chequeIdHash);
        Cheque cheque = items[chequeIdHash];
        if (cheque.status == Status.NONE) 
            return (Status.NONE, 0, 0, 0);

        if (cheque.expiringPeriod > 0) {
            uint timeGap = now;
            if (timeGap > cheque.createTime)
                timeGap = timeGap - cheque.createTime;
            else
                timeGap = 0;

            if (cheque.expiringPeriod > timeGap)
                return (cheque.status, cheque.value, cheque.attempt, cheque.expiringPeriod - timeGap);
            else
                return (Status.EXPIRED, cheque.value, cheque.attempt, 0);
        }
        return (cheque.status, cheque.value, cheque.attempt, 0);
    }

    function VerifyCheque(string _chequeId, string _pin) onlyModerators constant returns(ResultCode, Status, uint, uint, uint) {
        bytes32 chequeIdHash = sha3(_chequeId);
        Cheque cheque = items[chequeIdHash];
        if (cheque.status == Status.NONE) {
            return (ResultCode.ERROR_NOT_EXIST, Status.NONE, 0, 0, 0);
        }
        if (cheque.status == Status.USED) {
            return (ResultCode.ERROR_USED, Status.USED, 0, 0, 0);
        }
        if (cheque.pinHash != sha3(_chequeId, _pin)) {
            return (ResultCode.ERROR_INVALID_STATUS, Status.NONE, 0, 0, 0);
        }
        
        return (ResultCode.SUCCESS, cheque.status, cheque.value, cheque.attempt, 0);
    }
    
    // constant function
    function GetChequeInfo(string _chequeId) constant returns(Status, uint, uint, uint) {
        bytes32 hashChequeId = sha3(_chequeId);
        Cheque cheque = items[hashChequeId];
        if (cheque.status == Status.NONE) 
            return (Status.NONE, 0, 0, 0);

        if (cheque.expiringPeriod > 0) {
            uint timeGap = now;
            if (timeGap > cheque.createTime)
                timeGap = timeGap - cheque.createTime;
            else
                timeGap = 0;

            if (cheque.expiringPeriod > timeGap)
                return (cheque.status, cheque.value, cheque.attempt, cheque.expiringPeriod - timeGap);
            else
                return (Status.EXPIRED, cheque.value, cheque.attempt, 0);
        }
        return (cheque.status, cheque.value, cheque.attempt, 0);
    }
    
    // transaction
    function Create(uint256 _chequeIdHash, uint256 _pinHash, uint32 _expiringPeriod) payable isActive returns(ResultCode) {
        // condition: 
        // 1. check min value
        // 2. check _chequeId exist or not
        bytes32 chequeIdHash = bytes32(_chequeIdHash);
        bytes32 pinHash = bytes32(_pinHash);
        uint chequeValue = 0;
        
        // deduct commission
        uint commissionFee = (msg.value / 1000) * commissionRate;
        if (commissionFee < minFee) {
            commissionFee = minFee;
        }
        if (msg.value < commissionFee) {
            msg.sender.transfer(msg.value);
            LogCreate(chequeIdHash, uint(ResultCode.ERROR_INVALID_AMOUNT), chequeValue);
            return ResultCode.ERROR_INVALID_AMOUNT;
        }
        chequeValue = msg.value - commissionFee;
        
        if (chequeValue < minChequeValue) {
            msg.sender.transfer(msg.value);
            LogCreate(chequeIdHash, uint(ResultCode.ERROR_MIN), chequeValue);
            return ResultCode.ERROR_MIN;
        }
        if (maxChequeValue > 0 && chequeValue > maxChequeValue) {
            msg.sender.transfer(msg.value);
            LogCreate(chequeIdHash, uint(ResultCode.ERROR_MAX), chequeValue);
            return ResultCode.ERROR_MAX;
        }
        if (items[chequeIdHash].status != Status.NONE && items[chequeIdHash].status != Status.USED) {
            msg.sender.transfer(msg.value);
            LogCreate(chequeIdHash, uint(ResultCode.ERROR_EXIST), chequeValue);
            return ResultCode.ERROR_EXIST;
        }

        totalCheque += 1;
        totalChequeValue += chequeValue;
        items[chequeIdHash] = Cheque({
            pinHash: pinHash,
            creator: msg.sender,
            status: Status.CREATED,
            value: chequeValue,
            createTime: now,
            expiringPeriod: _expiringPeriod,
            attempt: 0
        });
        
        LogCreate(chequeIdHash, uint(ResultCode.SUCCESS), chequeValue);
        return ResultCode.SUCCESS;
    }
    
    function Redeem(string _chequeId, string _pin, address _sendTo) payable returns (ResultCode){
        // condition
        // 1. cheque status must exist
        // 2. cheque status must be CREATED status for non-creator
        // 3. verify attempt and expiry time for non-creator
        bytes32 chequeIdHash = sha3(_chequeId);
        Cheque cheque = items[chequeIdHash];
        if (cheque.status == Status.NONE) {
            LogRedeem(chequeIdHash, ResultCode.ERROR_NOT_EXIST, 0, _sendTo);
            return ResultCode.ERROR_NOT_EXIST;
        }
        if (cheque.status == Status.USED) {
            LogRedeem(chequeIdHash, ResultCode.ERROR_USED, 0, _sendTo);
            return ResultCode.ERROR_USED;
        }
        if (msg.sender != cheque.creator) {
            if (cheque.status != Status.CREATED) {
                LogRedeem(chequeIdHash, ResultCode.ERROR_INVALID_STATUS, 0, _sendTo);
                return ResultCode.ERROR_INVALID_STATUS;
            }
            if (cheque.attempt > maxAttempt) {
                LogRedeem(chequeIdHash, ResultCode.ERROR_LOCKED, 0, _sendTo);
                return ResultCode.ERROR_LOCKED;
            }
            if (cheque.expiringPeriod > 0 && now > (cheque.createTime + cheque.expiringPeriod)) {
                LogRedeem(chequeIdHash, ResultCode.ERROR_EXPIRED, 0, _sendTo);
                return ResultCode.ERROR_EXPIRED;
            }
        }
        
        // check pin
        if (cheque.pinHash != sha3(_chequeId, _pin)) {
            cheque.attempt += 1;
            LogRedeem(chequeIdHash, ResultCode.ERROR_INVALID_STATUS, 0, _sendTo);
            return ResultCode.ERROR_INVALID_STATUS;
        }
        
        totalRedeemedCheque += 1;
        totalRedeemedValue += cheque.value;
        uint sendMount = cheque.value;
        
        cheque.status = Status.USED;
        cheque.value = 0;
        
        _sendTo.transfer(sendMount);
        LogRedeem(chequeIdHash, ResultCode.SUCCESS, sendMount, _sendTo);
        return ResultCode.SUCCESS;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"maxAttempt","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_chequeId","type":"string"},{"name":"_pin","type":"string"},{"name":"_sendTo","type":"address"}],"name":"Redeem","outputs":[{"name":"","type":"uint8"}],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"minFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_chequeId","type":"string"}],"name":"GetChequeInfo","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_minChequeValue","type":"uint256"}],"name":"SetMinChequeValue","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_chequeId","type":"string"},{"name":"_pin","type":"string"}],"name":"VerifyCheque","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"commissionRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_minFee","type":"uint256"}],"name":"SetMinFee","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minChequeValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxChequeValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_maxAttempt","type":"uint8"}],"name":"SetMaxAttempt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalRedeemedCheque","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_commissionRate","type":"uint256"}],"name":"SetCommissionRate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalChequeValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_chequeId","type":"string"}],"name":"RefundChequeById","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintenance","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_chequeIdHash","type":"uint256"},{"name":"_pinHash","type":"uint256"},{"name":"_expiringPeriod","type":"uint32"}],"name":"Create","outputs":[{"name":"","type":"uint8"}],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"totalCheque","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalRedeemedValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"moderators","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"Kill","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_chequeIdHash","type":"uint256"}],"name":"RefundChequeByHash","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"WithdrawEther","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_maxChequeValue","type":"uint256"}],"name":"SetMaxChequeValue","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isMaintaining","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"ChangeOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_chequeIdHash","type":"uint256"}],"name":"GetChequeInfoByHash","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"chequeIdHash","type":"bytes32"},{"indexed":false,"name":"result","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogCreate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"chequeIdHash","type":"bytes32"},{"indexed":false,"name":"result","type":"uint8"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"receiver","type":"address"}],"name":"LogRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sendTo","type":"address"},{"indexed":false,"name":"result","type":"uint8"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogWithdrawEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"chequeIdHash","type":"bytes32"},{"indexed":false,"name":"result","type":"uint8"}],"name":"LogRefundCheque","type":"event"}]

60606040526000600255600060035560006004556000600555600a6006556611c37937e08000600755662386f26fc1000060085560006009556003600a60006101000a81548160ff021916908360ff1602179055506000600a60016101000a81548160ff021916908315150217905550341561007757fe5b5b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b61339f806100ca6000396000f3006060604052361561017e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310d5e27614610180578063164d3f3a146101ac57806324ec75901461028257806331c33669146102a85780634b57fbaf146103395780635a0024ae146103595780635ea1d6f8146104425780636c81fd6d1461046857806381d2c8711461049e578063879e84ab146104be5780638da5cb5b146104e457806393c573c014610536578063994e52671461055c5780639f351fc01461057f578063a79a416d146105a5578063a9b1ffd9146105c5578063aa2529a2146105eb578063ad7e7cfc14610667578063ad8718c214610689578063b0f239e9146106db578063b4134e6e14610701578063b85d627514610727578063bd842a111461075d578063be26733c146107bd578063cb526229146107cf578063db35132c14610811578063ddca337e14610872578063ee4e441614610892578063f2853292146108bc578063f6c1db4c146108f2575bfe5b341561018857fe5b610190610949565b604051808260ff1660ff16815260200191505060405180910390f35b61025e600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061095c565b6040518082600981111561026e57fe5b60ff16815260200191505060405180910390f35b341561028a57fe5b6102926110af565b6040518082815260200191505060405180910390f35b34156102b057fe5b610300600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506110b5565b6040518085600481111561031057fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390f35b341561034157fe5b6103576004808035906020019091905050611288565b005b341561036157fe5b6103f4600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061139b565b6040518086600981111561040457fe5b60ff16815260200185600481111561041857fe5b60ff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b341561044a57fe5b61045261170c565b6040518082815260200191505060405180910390f35b341561047057fe5b61049c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611712565b005b34156104a657fe5b6104bc600480803590602001909190505061186f565b005b34156104c657fe5b6104ce611982565b6040518082815260200191505060405180910390f35b34156104ec57fe5b6104f4611988565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053e57fe5b6105466119ae565b6040518082815260200191505060405180910390f35b341561056457fe5b61057d600480803560ff169060200190919050506119b4565b005b341561058757fe5b61058f611adb565b6040518082815260200191505060405180910390f35b34156105ad57fe5b6105c36004808035906020019091905050611ae1565b005b34156105cd57fe5b6105d5611bf4565b6040518082815260200191505060405180910390f35b34156105f357fe5b610643600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bfa565b6040518082600981111561065357fe5b60ff16815260200191505060405180910390f35b341561066f57fe5b61068760048080351515906020019091905050611faa565b005b6106b7600480803590602001909190803590602001909190803563ffffffff169060200190919050506120d0565b604051808260098111156106c757fe5b60ff16815260200191505060405180910390f35b34156106e357fe5b6106eb61261f565b6040518082815260200191505060405180910390f35b341561070957fe5b610711612625565b6040518082815260200191505060405180910390f35b341561072f57fe5b61075b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061262b565b005b341561076557fe5b61077b600480803590602001909190505061282b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107c557fe5b6107cd61286b565b005b34156107d757fe5b6107ed6004808035906020019091905050612906565b604051808260098111156107fd57fe5b60ff16815260200191505060405180910390f35b341561081957fe5b61084e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612c59565b6040518082600981111561085e57fe5b60ff16815260200191505060405180910390f35b341561087a57fe5b6108906004808035906020019091905050612eaf565b005b341561089a57fe5b6108a2612fc2565b604051808215151515815260200191505060405180910390f35b34156108c457fe5b6108f0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fd5565b005b34156108fa57fe5b6109106004808035906020019091905050613078565b6040518085600481111561092057fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390f35b600a60009054906101000a900460ff1681565b6000600060006000866040518082805190602001908083835b602083106109985780518252602082019150602081019050602083039250610975565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600b600084600019166000191681526020019081526020016000209150600060048111156109f157fe5b8260010160149054906101000a900460ff166004811115610a0e57fe5b1415610aa55782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600460008860405180846009811115610a4f57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600493506110a5565b60046004811115610ab257fe5b8260010160149054906101000a900460ff166004811115610acf57fe5b1415610b665782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600960008860405180846009811115610b1057fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600993506110a5565b8160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df45760016004811115610bcc57fe5b8260010160149054906101000a900460ff166004811115610be957fe5b141515610c815782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600560008860405180846009811115610c2b57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600593506110a5565b600a60009054906101000a900460ff1660ff168260050160009054906101000a900460ff1660ff161115610d405782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600660008860405180846009811115610cea57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600693506110a5565b60008260040154118015610d5d5750816004015482600301540142115b15610df35782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600760008860405180846009811115610d9d57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600793506110a5565b5b86866040518083805190602001908083835b60208310610e295780518252602082019150602081019050602083039250610e06565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310610e7a5780518252602082019150602081019050602083039250610e57565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051809103902060001916826000015460001916141515610f7d5760018260050160008282829054906101000a900460ff160192506101000a81548160ff021916908360ff16021790555082600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600560008860405180846009811115610f2757fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600593506110a5565b600160046000828254019250508190555081600201546005600082825401925050819055508160020154905060048260010160146101000a81548160ff02191690836004811115610fca57fe5b0217905550600082600201819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f19350505050151561101957fe5b82600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600083886040518084600981111561105357fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600093505b5050509392505050565b60075481565b6000600060006000600060006000876040518082805190602001908083835b602083106110f757805182526020820191506020810190506020830392506110d4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600b6000846000191660001916815260200190815260200160002091506000600481111561115057fe5b8260010160149054906101000a900460ff16600481111561116d57fe5b1415611191576000600060006000829250819150809050965096509650965061127e565b6000826004015411156112415742905081600301548111156111bb578160030154810390506111c0565b600090505b808260040154111561120f578160010160149054906101000a900460ff1682600201548360050160009054906101000a900460ff16838560040154038160ff169150965096509650965061127e565b600382600201548360050160009054906101000a900460ff1660008160ff169150809050965096509650965061127e565b5b8160010160149054906101000a900460ff1682600201548360050160009054906101000a900460ff1660008160ff16915080905096509650965096505b5050509193509193565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138d5760009150600090505b60018054905081101561137f573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561131f57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611371576001915061137f565b5b80806001019150506112ec565b81151561138c5760006000fd5b5b826008819055505b5b505050565b600060006000600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ae5760009150600090505b6001805490508110156114a0573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561144057fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561149257600191506114a0565b5b808060010191505061140d565b8115156114ad5760006000fd5b5b8a6040518082805190602001908083835b602083106114e257805182526020820191506020810190506020830392506114bf565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350600b6000856000191660001916815260200190815260200160002092506000600481111561153b57fe5b8360010160149054906101000a900460ff16600481111561155857fe5b14156115805760046000600060006000829250819150809050985098509850985098506116fd565b6004600481111561158d57fe5b8360010160149054906101000a900460ff1660048111156115aa57fe5b14156115d25760096004600060006000829250819150809050985098509850985098506116fd565b8a8a6040518083805190602001908083835b6020831061160757805182526020820191506020810190506020830392506115e4565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106116585780518252602082019150602081019050602083039250611635565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040518091039020600019168360000154600019161415156116bc5760056000600060006000829250819150809050985098509850985098506116fd565b60008360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff1660008160ff169150809050985098509850985098505b5b505050509295509295909350565b60065481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117715760006000fd5b600090505b600180549050811015611805578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156117a957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156117f75761186a565b5b8080600101915050611776565b6001805480600101828161181991906132f6565b916000526020600020900160005b84909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b5050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119745760009150600090505b600180549050811015611966573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561190657fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119585760019150611966565b5b80806001019150506118d3565b8115156119735760006000fd5b5b826007819055505b5b505050565b60085481565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab95760009150600090505b600180549050811015611aab573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a4b57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a9d5760019150611aab565b5b8080600101915050611a18565b811515611ab85760006000fd5b5b82600a60006101000a81548160ff021916908360ff1602179055505b5b505050565b60045481565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611be65760009150600090505b600180549050811015611bd8573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611b7857fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bca5760019150611bd8565b5b8080600101915050611b45565b811515611be55760006000fd5b5b826006819055505b5b505050565b60035481565b600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d075760009150600090505b600180549050811015611cf9573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611c9957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ceb5760019150611cf9565b5b8080600101915050611c66565b811515611d065760006000fd5b5b866040518082805190602001908083835b60208310611d3b5780518252602082019150602081019050602083039250611d18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450600b60008660001916600019168152602001908152602001600020935060006004811115611d9457fe5b8460010160149054906101000a900460ff166004811115611db157fe5b1415611e0b5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600460405180826009811115611def57fe5b60ff16815260200191505060405180910390a260049550611f9f565b60046004811115611e1857fe5b8460010160149054906101000a900460ff166004811115611e3557fe5b1415611e8f5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600960405180826009811115611e7357fe5b60ff16815260200191505060405180910390a260099550611f9f565b600160046000828254019250508190555083600201546005600082825401925050819055508360020154925060048460010160146101000a81548160ff02191690836004811115611edc57fe5b0217905550600084600201819055508360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051809050600060405180830381858888f193505050501515611f4f57fe5b84600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600060405180826009811115611f8757fe5b60ff16815260200191505060405180910390a2600095505b5b5050505050919050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120af5760009150600090505b6001805490508110156120a1573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561204157fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561209357600191506120a1565b5b808060010191505061200e565b8115156120ae5760006000fd5b5b82600a60016101000a81548160ff0219169083151502179055505b5b505050565b6000600060006000600060011515600a60019054906101000a900460ff16151514156120fc5760006000fd5b876001029350866001029250600091506006546103e83481151561211c57fe5b040290506007548110156121305760075490505b803410156121d1573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561217857fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d9600860098111156121ab57fe5b84604051808381526020018281526020019250505060405180910390a260089450612613565b8034039150600854821015612279573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561222057fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96002600981111561225357fe5b84604051808381526020018281526020019250505060405180910390a260029450612613565b600060095411801561228c575060095482115b1561232a573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f1935050505015156122d157fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96001600981111561230457fe5b84604051808381526020018281526020019250505060405180910390a260019450612613565b6000600481111561233757fe5b600b6000866000191660001916815260200190815260200160002060010160149054906101000a900460ff16600481111561236e57fe5b141580156123be57506004600481111561238457fe5b600b6000866000191660001916815260200190815260200160002060010160149054906101000a900460ff1660048111156123bb57fe5b14155b1561245c573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561240357fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96003600981111561243657fe5b84604051808381526020018281526020019250505060405180910390a260039450612613565b60016002600082825401925050819055508160036000828254019250508190555060e060405190810160405280846000191681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600160048111156124bc57fe5b81526020018381526020014281526020018763ffffffff168152602001600060ff16815250600b600086600019166000191681526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083600481111561257757fe5b0217905550606082015181600201556080820151816003015560a0820151816004015560c08201518160050160006101000a81548160ff021916908360ff16021790555090505083600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d9600060098111156125f157fe5b84604051808381526020018281526020019250505060405180910390a2600094505b5b505050509392505050565b60025481565b60055481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268a5760006000fd5b600090505b60018054905081101561271e578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156126c257fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127105761271e565b5b808060010191505061268f565b60018054905081101561282557600160016001805490500381548110151561274257fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018281548110151561277e57fe5b906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016001600180549050038154811015156127df57fe5b906000526020600020900160005b6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018054809190600190036128239190613322565b505b5b5b5050565b60018181548110151561283a57fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128c85760006000fd5b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a135760009150600090505b600180549050811015612a05573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156129a557fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156129f75760019150612a05565b5b8080600101915050612972565b811515612a125760006000fd5b5b866001029450600b60008660001916600019168152602001908152602001600020935060006004811115612a4357fe5b8460010160149054906101000a900460ff166004811115612a6057fe5b1415612aba5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600460405180826009811115612a9e57fe5b60ff16815260200191505060405180910390a260049550612c4e565b60046004811115612ac757fe5b8460010160149054906101000a900460ff166004811115612ae457fe5b1415612b3e5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600960405180826009811115612b2257fe5b60ff16815260200191505060405180910390a260099550612c4e565b600160046000828254019250508190555083600201546005600082825401925050819055508360020154925060048460010160146101000a81548160ff02191690836004811115612b8b57fe5b0217905550600084600201819055508360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051809050600060405180830381858888f193505050501515612bfe57fe5b84600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600060405180826009811115612c3657fe5b60ff16815260200191505060405180910390a2600095505b5b5050505050919050565b6000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d625760009150600090505b600180549050811015612d54573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612cf457fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d465760019150612d54565b5b8080600101915050612cc1565b811515612d615760006000fd5b5b600554600354033073ffffffffffffffffffffffffffffffffffffffff163103925082851115612dfb578573ffffffffffffffffffffffffffffffffffffffff167f1ff2ff382712a755b304cdd3cb404f9fe3c3614c725549cd8c34cd3fac1801c46008600060405180836009811115612dd857fe5b60ff1681526020018281526020019250505060405180910390a260089350612ea5565b8573ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051809050600060405180830381858888f193505050501515612e3b57fe5b8573ffffffffffffffffffffffffffffffffffffffff167f1ff2ff382712a755b304cdd3cb404f9fe3c3614c725549cd8c34cd3fac1801c460008760405180836009811115612e8657fe5b60ff1681526020018281526020019250505060405180910390a2600093505b5b50505092915050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fb45760009150600090505b600180549050811015612fa6573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612f4657fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f985760019150612fa6565b5b8080600101915050612f13565b811515612fb35760006000fd5b5b826009819055505b5b505050565b600a60019054906101000a900460ff1681565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130325760006000fd5b80600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b600060006000600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561318b5760009150600090505b60018054905081101561317d573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561311d57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561316f576001915061317d565b5b80806001019150506130ea565b81151561318a5760006000fd5b5b896001029450600b600086600019166000191681526020019081526020016000209350600060048111156131bb57fe5b8460010160149054906101000a900460ff1660048111156131d857fe5b14156131fc57600060006000600082925081915080905098509850985098506132e9565b6000846004015411156132ac5742925083600301548311156132265783600301548303925061322b565b600092505b828460040154111561327a578360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff16858760040154038160ff16915098509850985098506132e9565b600384600201548560050160009054906101000a900460ff1660008160ff16915080905098509850985098506132e9565b5b8360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff1660008160ff16915080905098509850985098505b5b50505050509193509193565b81548183558181151161331d5781836000526020600020918201910161331c919061334e565b5b505050565b81548183558181151161334957818360005260206000209182019101613348919061334e565b5b505050565b61337091905b8082111561336c576000816000905550600101613354565b5090565b905600a165627a7a723058208d2ba906e03f4420788c8422492556e6cd00cae7d5fe555af0e3a2f4ddb81cb00029

Deployed Bytecode

0x6060604052361561017e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310d5e27614610180578063164d3f3a146101ac57806324ec75901461028257806331c33669146102a85780634b57fbaf146103395780635a0024ae146103595780635ea1d6f8146104425780636c81fd6d1461046857806381d2c8711461049e578063879e84ab146104be5780638da5cb5b146104e457806393c573c014610536578063994e52671461055c5780639f351fc01461057f578063a79a416d146105a5578063a9b1ffd9146105c5578063aa2529a2146105eb578063ad7e7cfc14610667578063ad8718c214610689578063b0f239e9146106db578063b4134e6e14610701578063b85d627514610727578063bd842a111461075d578063be26733c146107bd578063cb526229146107cf578063db35132c14610811578063ddca337e14610872578063ee4e441614610892578063f2853292146108bc578063f6c1db4c146108f2575bfe5b341561018857fe5b610190610949565b604051808260ff1660ff16815260200191505060405180910390f35b61025e600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061095c565b6040518082600981111561026e57fe5b60ff16815260200191505060405180910390f35b341561028a57fe5b6102926110af565b6040518082815260200191505060405180910390f35b34156102b057fe5b610300600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506110b5565b6040518085600481111561031057fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390f35b341561034157fe5b6103576004808035906020019091905050611288565b005b341561036157fe5b6103f4600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061139b565b6040518086600981111561040457fe5b60ff16815260200185600481111561041857fe5b60ff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b341561044a57fe5b61045261170c565b6040518082815260200191505060405180910390f35b341561047057fe5b61049c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611712565b005b34156104a657fe5b6104bc600480803590602001909190505061186f565b005b34156104c657fe5b6104ce611982565b6040518082815260200191505060405180910390f35b34156104ec57fe5b6104f4611988565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053e57fe5b6105466119ae565b6040518082815260200191505060405180910390f35b341561056457fe5b61057d600480803560ff169060200190919050506119b4565b005b341561058757fe5b61058f611adb565b6040518082815260200191505060405180910390f35b34156105ad57fe5b6105c36004808035906020019091905050611ae1565b005b34156105cd57fe5b6105d5611bf4565b6040518082815260200191505060405180910390f35b34156105f357fe5b610643600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bfa565b6040518082600981111561065357fe5b60ff16815260200191505060405180910390f35b341561066f57fe5b61068760048080351515906020019091905050611faa565b005b6106b7600480803590602001909190803590602001909190803563ffffffff169060200190919050506120d0565b604051808260098111156106c757fe5b60ff16815260200191505060405180910390f35b34156106e357fe5b6106eb61261f565b6040518082815260200191505060405180910390f35b341561070957fe5b610711612625565b6040518082815260200191505060405180910390f35b341561072f57fe5b61075b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061262b565b005b341561076557fe5b61077b600480803590602001909190505061282b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107c557fe5b6107cd61286b565b005b34156107d757fe5b6107ed6004808035906020019091905050612906565b604051808260098111156107fd57fe5b60ff16815260200191505060405180910390f35b341561081957fe5b61084e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612c59565b6040518082600981111561085e57fe5b60ff16815260200191505060405180910390f35b341561087a57fe5b6108906004808035906020019091905050612eaf565b005b341561089a57fe5b6108a2612fc2565b604051808215151515815260200191505060405180910390f35b34156108c457fe5b6108f0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fd5565b005b34156108fa57fe5b6109106004808035906020019091905050613078565b6040518085600481111561092057fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390f35b600a60009054906101000a900460ff1681565b6000600060006000866040518082805190602001908083835b602083106109985780518252602082019150602081019050602083039250610975565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600b600084600019166000191681526020019081526020016000209150600060048111156109f157fe5b8260010160149054906101000a900460ff166004811115610a0e57fe5b1415610aa55782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600460008860405180846009811115610a4f57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600493506110a5565b60046004811115610ab257fe5b8260010160149054906101000a900460ff166004811115610acf57fe5b1415610b665782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600960008860405180846009811115610b1057fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600993506110a5565b8160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df45760016004811115610bcc57fe5b8260010160149054906101000a900460ff166004811115610be957fe5b141515610c815782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600560008860405180846009811115610c2b57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600593506110a5565b600a60009054906101000a900460ff1660ff168260050160009054906101000a900460ff1660ff161115610d405782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600660008860405180846009811115610cea57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600693506110a5565b60008260040154118015610d5d5750816004015482600301540142115b15610df35782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600760008860405180846009811115610d9d57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600793506110a5565b5b86866040518083805190602001908083835b60208310610e295780518252602082019150602081019050602083039250610e06565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310610e7a5780518252602082019150602081019050602083039250610e57565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051809103902060001916826000015460001916141515610f7d5760018260050160008282829054906101000a900460ff160192506101000a81548160ff021916908360ff16021790555082600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600560008860405180846009811115610f2757fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600593506110a5565b600160046000828254019250508190555081600201546005600082825401925050819055508160020154905060048260010160146101000a81548160ff02191690836004811115610fca57fe5b0217905550600082600201819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f19350505050151561101957fe5b82600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600083886040518084600981111561105357fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600093505b5050509392505050565b60075481565b6000600060006000600060006000876040518082805190602001908083835b602083106110f757805182526020820191506020810190506020830392506110d4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600b6000846000191660001916815260200190815260200160002091506000600481111561115057fe5b8260010160149054906101000a900460ff16600481111561116d57fe5b1415611191576000600060006000829250819150809050965096509650965061127e565b6000826004015411156112415742905081600301548111156111bb578160030154810390506111c0565b600090505b808260040154111561120f578160010160149054906101000a900460ff1682600201548360050160009054906101000a900460ff16838560040154038160ff169150965096509650965061127e565b600382600201548360050160009054906101000a900460ff1660008160ff169150809050965096509650965061127e565b5b8160010160149054906101000a900460ff1682600201548360050160009054906101000a900460ff1660008160ff16915080905096509650965096505b5050509193509193565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138d5760009150600090505b60018054905081101561137f573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561131f57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611371576001915061137f565b5b80806001019150506112ec565b81151561138c5760006000fd5b5b826008819055505b5b505050565b600060006000600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ae5760009150600090505b6001805490508110156114a0573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561144057fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561149257600191506114a0565b5b808060010191505061140d565b8115156114ad5760006000fd5b5b8a6040518082805190602001908083835b602083106114e257805182526020820191506020810190506020830392506114bf565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350600b6000856000191660001916815260200190815260200160002092506000600481111561153b57fe5b8360010160149054906101000a900460ff16600481111561155857fe5b14156115805760046000600060006000829250819150809050985098509850985098506116fd565b6004600481111561158d57fe5b8360010160149054906101000a900460ff1660048111156115aa57fe5b14156115d25760096004600060006000829250819150809050985098509850985098506116fd565b8a8a6040518083805190602001908083835b6020831061160757805182526020820191506020810190506020830392506115e4565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106116585780518252602082019150602081019050602083039250611635565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040518091039020600019168360000154600019161415156116bc5760056000600060006000829250819150809050985098509850985098506116fd565b60008360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff1660008160ff169150809050985098509850985098505b5b505050509295509295909350565b60065481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117715760006000fd5b600090505b600180549050811015611805578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156117a957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156117f75761186a565b5b8080600101915050611776565b6001805480600101828161181991906132f6565b916000526020600020900160005b84909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b5050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119745760009150600090505b600180549050811015611966573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561190657fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119585760019150611966565b5b80806001019150506118d3565b8115156119735760006000fd5b5b826007819055505b5b505050565b60085481565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab95760009150600090505b600180549050811015611aab573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a4b57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a9d5760019150611aab565b5b8080600101915050611a18565b811515611ab85760006000fd5b5b82600a60006101000a81548160ff021916908360ff1602179055505b5b505050565b60045481565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611be65760009150600090505b600180549050811015611bd8573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611b7857fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bca5760019150611bd8565b5b8080600101915050611b45565b811515611be55760006000fd5b5b826006819055505b5b505050565b60035481565b600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d075760009150600090505b600180549050811015611cf9573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611c9957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ceb5760019150611cf9565b5b8080600101915050611c66565b811515611d065760006000fd5b5b866040518082805190602001908083835b60208310611d3b5780518252602082019150602081019050602083039250611d18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450600b60008660001916600019168152602001908152602001600020935060006004811115611d9457fe5b8460010160149054906101000a900460ff166004811115611db157fe5b1415611e0b5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600460405180826009811115611def57fe5b60ff16815260200191505060405180910390a260049550611f9f565b60046004811115611e1857fe5b8460010160149054906101000a900460ff166004811115611e3557fe5b1415611e8f5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600960405180826009811115611e7357fe5b60ff16815260200191505060405180910390a260099550611f9f565b600160046000828254019250508190555083600201546005600082825401925050819055508360020154925060048460010160146101000a81548160ff02191690836004811115611edc57fe5b0217905550600084600201819055508360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051809050600060405180830381858888f193505050501515611f4f57fe5b84600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600060405180826009811115611f8757fe5b60ff16815260200191505060405180910390a2600095505b5b5050505050919050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120af5760009150600090505b6001805490508110156120a1573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561204157fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561209357600191506120a1565b5b808060010191505061200e565b8115156120ae5760006000fd5b5b82600a60016101000a81548160ff0219169083151502179055505b5b505050565b6000600060006000600060011515600a60019054906101000a900460ff16151514156120fc5760006000fd5b876001029350866001029250600091506006546103e83481151561211c57fe5b040290506007548110156121305760075490505b803410156121d1573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561217857fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d9600860098111156121ab57fe5b84604051808381526020018281526020019250505060405180910390a260089450612613565b8034039150600854821015612279573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561222057fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96002600981111561225357fe5b84604051808381526020018281526020019250505060405180910390a260029450612613565b600060095411801561228c575060095482115b1561232a573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f1935050505015156122d157fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96001600981111561230457fe5b84604051808381526020018281526020019250505060405180910390a260019450612613565b6000600481111561233757fe5b600b6000866000191660001916815260200190815260200160002060010160149054906101000a900460ff16600481111561236e57fe5b141580156123be57506004600481111561238457fe5b600b6000866000191660001916815260200190815260200160002060010160149054906101000a900460ff1660048111156123bb57fe5b14155b1561245c573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561240357fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96003600981111561243657fe5b84604051808381526020018281526020019250505060405180910390a260039450612613565b60016002600082825401925050819055508160036000828254019250508190555060e060405190810160405280846000191681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600160048111156124bc57fe5b81526020018381526020014281526020018763ffffffff168152602001600060ff16815250600b600086600019166000191681526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083600481111561257757fe5b0217905550606082015181600201556080820151816003015560a0820151816004015560c08201518160050160006101000a81548160ff021916908360ff16021790555090505083600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d9600060098111156125f157fe5b84604051808381526020018281526020019250505060405180910390a2600094505b5b505050509392505050565b60025481565b60055481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268a5760006000fd5b600090505b60018054905081101561271e578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156126c257fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127105761271e565b5b808060010191505061268f565b60018054905081101561282557600160016001805490500381548110151561274257fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018281548110151561277e57fe5b906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016001600180549050038154811015156127df57fe5b906000526020600020900160005b6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018054809190600190036128239190613322565b505b5b5b5050565b60018181548110151561283a57fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128c85760006000fd5b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a135760009150600090505b600180549050811015612a05573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156129a557fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156129f75760019150612a05565b5b8080600101915050612972565b811515612a125760006000fd5b5b866001029450600b60008660001916600019168152602001908152602001600020935060006004811115612a4357fe5b8460010160149054906101000a900460ff166004811115612a6057fe5b1415612aba5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600460405180826009811115612a9e57fe5b60ff16815260200191505060405180910390a260049550612c4e565b60046004811115612ac757fe5b8460010160149054906101000a900460ff166004811115612ae457fe5b1415612b3e5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600960405180826009811115612b2257fe5b60ff16815260200191505060405180910390a260099550612c4e565b600160046000828254019250508190555083600201546005600082825401925050819055508360020154925060048460010160146101000a81548160ff02191690836004811115612b8b57fe5b0217905550600084600201819055508360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051809050600060405180830381858888f193505050501515612bfe57fe5b84600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600060405180826009811115612c3657fe5b60ff16815260200191505060405180910390a2600095505b5b5050505050919050565b6000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d625760009150600090505b600180549050811015612d54573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612cf457fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d465760019150612d54565b5b8080600101915050612cc1565b811515612d615760006000fd5b5b600554600354033073ffffffffffffffffffffffffffffffffffffffff163103925082851115612dfb578573ffffffffffffffffffffffffffffffffffffffff167f1ff2ff382712a755b304cdd3cb404f9fe3c3614c725549cd8c34cd3fac1801c46008600060405180836009811115612dd857fe5b60ff1681526020018281526020019250505060405180910390a260089350612ea5565b8573ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051809050600060405180830381858888f193505050501515612e3b57fe5b8573ffffffffffffffffffffffffffffffffffffffff167f1ff2ff382712a755b304cdd3cb404f9fe3c3614c725549cd8c34cd3fac1801c460008760405180836009811115612e8657fe5b60ff1681526020018281526020019250505060405180910390a2600093505b5b50505092915050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fb45760009150600090505b600180549050811015612fa6573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612f4657fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f985760019150612fa6565b5b8080600101915050612f13565b811515612fb35760006000fd5b5b826009819055505b5b505050565b600a60019054906101000a900460ff1681565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130325760006000fd5b80600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b600060006000600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561318b5760009150600090505b60018054905081101561317d573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561311d57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561316f576001915061317d565b5b80806001019150506130ea565b81151561318a5760006000fd5b5b896001029450600b600086600019166000191681526020019081526020016000209350600060048111156131bb57fe5b8460010160149054906101000a900460ff1660048111156131d857fe5b14156131fc57600060006000600082925081915080905098509850985098506132e9565b6000846004015411156132ac5742925083600301548311156132265783600301548303925061322b565b600092505b828460040154111561327a578360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff16858760040154038160ff16915098509850985098506132e9565b600384600201548560050160009054906101000a900460ff1660008160ff16915080905098509850985098506132e9565b5b8360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff1660008160ff16915080905098509850985098505b5b50505050509193509193565b81548183558181151161331d5781836000526020600020918201910161331c919061334e565b5b505050565b81548183558181151161334957818360005260206000209182019101613348919061334e565b5b505050565b61337091905b8082111561336c576000816000905550600101613354565b5090565b905600a165627a7a723058208d2ba906e03f4420788c8422492556e6cd00cae7d5fe555af0e3a2f4ddb81cb00029

Swarm Source

bzzr://8d2ba906e03f4420788c8422492556e6cd00cae7d5fe555af0e3a2f4ddb81cb0

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.