ETH Price: $3,331.51 (-3.93%)

Contract

0x888108116DAD3F62fAa2A70B7a75f3ba44a0E8aC
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer108334722020-09-10 10:37:421568 days ago1599734262IN
0x88810811...a44a0E8aC
0 ETH0.005100
Transfer89017172019-11-09 10:00:451874 days ago1573293645IN
0x88810811...a44a0E8aC
0 ETH0.0009403625.0025
Transfer87956052019-10-23 8:24:371891 days ago1571819077IN
0x88810811...a44a0E8aC
0 ETH0.0021062810.7
Transfer87745602019-10-20 1:01:201894 days ago1571533280IN
0x88810811...a44a0E8aC
0 ETH0.001712588.7
Transfer87649632019-10-18 12:46:551896 days ago1571402815IN
0x88810811...a44a0E8aC
0 ETH0.0118109460
Transfer87614222019-10-17 23:19:391896 days ago1571354379IN
0x88810811...a44a0E8aC
0 ETH0.001860
Transfer87580652019-10-17 10:36:241897 days ago1571308584IN
0x88810811...a44a0E8aC
0 ETH0.003660
Transfer87563002019-10-17 3:51:011897 days ago1571284261IN
0x88810811...a44a0E8aC
0 ETH0.0007813
Transfer84805592019-09-04 1:02:411940 days ago1567558961IN
0x88810811...a44a0E8aC
0 ETH0.0007522220
Transfer84509512019-08-30 10:09:411945 days ago1567159781IN
0x88810811...a44a0E8aC
0 ETH0.0007522220
Transfer83803542019-08-19 10:50:401956 days ago1566211840IN
0x88810811...a44a0E8aC
0 ETH0.000478179.1
Transfer79305002019-06-10 9:50:092026 days ago1560160209IN
0x88810811...a44a0E8aC
0 ETH0.0006746918
Transfer79304752019-06-10 9:45:452026 days ago1560159945IN
0x88810811...a44a0E8aC
0 ETH0.0007496620
Transfer77727792019-05-16 17:59:472051 days ago1558029587IN
0x88810811...a44a0E8aC
0 ETH0.000112415
Transfer77721022019-05-16 15:27:462051 days ago1558020466IN
0x88810811...a44a0E8aC
0 ETH0.0009446918
Transfer77720882019-05-16 15:25:472051 days ago1558020347IN
0x88810811...a44a0E8aC
0 ETH0.0007496620
Transfer77532442019-05-13 17:10:322054 days ago1557767432IN
0x88810811...a44a0E8aC
0 ETH0.000112735
Transfer77525102019-05-13 14:21:282054 days ago1557757288IN
0x88810811...a44a0E8aC
0 ETH0.0009458418
Transfer77525082019-05-13 14:21:032054 days ago1557757263IN
0x88810811...a44a0E8aC
0 ETH0.0003748310
Transfer77518052019-05-13 11:43:072054 days ago1557747787IN
0x88810811...a44a0E8aC
0 ETH0.000113055
Transfer77517492019-05-13 11:28:172054 days ago1557746897IN
0x88810811...a44a0E8aC
0 ETH0.0009469918
Transfer77517412019-05-13 11:26:232054 days ago1557746783IN
0x88810811...a44a0E8aC
0 ETH0.000146433.9
Transfer77099602019-05-06 22:27:512060 days ago1557181671IN
0x88810811...a44a0E8aC
0 ETH0.000112735
Transfer77099012019-05-06 22:16:452060 days ago1557181005IN
0x88810811...a44a0E8aC
0 ETH0.0009458418
Transfer77098942019-05-06 22:15:092060 days ago1557180909IN
0x88810811...a44a0E8aC
0 ETH0.000149674
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PFU

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-11-02
*/

pragma solidity ^0.4.24;

/* PFU
*
*
*   ___ ___ _   _   _      ___  __          _ _     _
*  | _ \ __| | | | (_)___ | _ \/ _|_ _ _  _(_) |_  | |
*  |  _/ _|| |_| | | (_-< |  _/  _| '_| || | |  _| |_|
*  |_| |_|  \___/  |_/__/ |_| |_| |_|  \_,_|_|\__| (_)
*
*
*/

// SafeMath methods
library SafeMath {
    function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
        uint256 c = _a + _b;
        assert(c >= _a);
        return c;
    }

    function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
        assert(_a >= _b);
        return _a - _b;
    }

    function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
        uint256 c = _a * _b;
        assert(_a == 0 || c / _a == _b);
        return c;
    }
}

// Contract must have an owner
contract Owned {
    address public owner;

    constructor() public {
        owner = msg.sender;
    }

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

    function setOwner(address _owner) onlyOwner public {
        owner = _owner;
    }
}

// Standard ERC20 Token Interface
interface ERC20Token {
    function name() external view returns (string name_);
    function symbol() external view returns (string symbol_);
    function decimals() external view returns (uint8 decimals_);
    function totalSupply() external view returns (uint256 totalSupply_);
    function balanceOf(address _owner) external view returns (uint256 _balance);
    function transfer(address _to, uint256 _value) external returns (bool _success);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool _success);
    function approve(address _spender, uint256 _value) external returns (bool _success);
    function allowance(address _owner, address _spender) external view returns (uint256 _remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

// the main ERC20-compliant multi-timelock enabled contract
contract PFU is Owned, ERC20Token {
    using SafeMath for uint256;

    string private constant standard = "201810X8";
    string private constant version = "5.0X8";
    string private name_ = "PFruit";
    string private symbol_ = "PFU";
    uint8 private decimals_ = 18;
    uint256 private totalSupply_ = uint256(10)**uint256(9) * uint256(10)**uint256(decimals_);
    mapping (address => uint256) private balanceP;
    mapping (address => mapping (address => uint256)) private allowed;

    mapping (address => uint256[]) private lockTime;
    mapping (address => uint256[]) private lockValue;
    mapping (address => uint256) private lockNum;
    mapping (address => bool) public locker;
    address public lockerAddress;
    uint256 public later = 0;
    uint256 public earlier = 0;

    // burn token event
    event Burn(address indexed _from, uint256 _value);

    // timelock-related events
    event TransferLocked(address indexed _from, address indexed _to, uint256 _time, uint256 _value);
    event TokenUnlocked(address indexed _address, uint256 _value);

    // safety method-related events
    event WrongTokenEmptied(address indexed _token, address indexed _addr, uint256 _amount);
    event WrongEtherEmptied(address indexed _addr, uint256 _amount);

    // constructor for the ERC20 Token
    constructor(address _address) public {

        // add the PFR contract address as preset locker
        lockerAddress = _address;
        locker[_address] = true;

        balanceP[msg.sender] = totalSupply_;
    }

    modifier validAddress(address _address) {
        require(_address != 0x0);
        _;
    }

    // fast-forward the timelocks for all accounts
    function setUnlockEarlier(uint256 _earlier) public onlyOwner {
        earlier = earlier.add(_earlier);
    }

    // delay the timelocks for all accounts
    function setUnlockLater(uint256 _later) public onlyOwner {
        later = later.add(_later);
    }

    // standard ERC20 name function
    function name() public view returns (string) {
        return name_;
    }

    // standard ERC20 symbol function
    function symbol() public view returns (string) {
        return symbol_;
    }

    // standard ERC20 decimals function
    function decimals() public view returns (uint8) {
        return decimals_;
    }

    // standard ERC20 totalSupply function
    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }

    // standard ERC20 allowance function
    function allowance(address _owner, address _spender) external view returns (uint256) {
        return allowed[_owner][_spender];
    }

    // show unlocked balance of an account
    function balanceUnlocked(address _address) public view returns (uint256 _balance) {
        _balance = balanceP[_address];
        uint256 i = 0;
        while (i < lockNum[_address]) {
            if (now.add(earlier) >= lockTime[_address][i].add(later)) _balance = _balance.add(lockValue[_address][i]);
            i++;
        }
        return _balance;
    }

    // show timelocked balance of an account
    function balanceLocked(address _address) public view returns (uint256 _balance) {
        _balance = 0;
        uint256 i = 0;
        while (i < lockNum[_address]) {
            if (now.add(earlier) < lockTime[_address][i].add(later)) _balance = _balance.add(lockValue[_address][i]);
            i++;
        }
        return  _balance;
    }

    // standard ERC20 balanceOf with timelock added
    function balanceOf(address _address) public view returns (uint256 _balance) {
        _balance = balanceP[_address];
        uint256 i = 0;
        while (i < lockNum[_address]) {
            _balance = _balance.add(lockValue[_address][i]);
            i++;
        }
        return _balance;
    }

    // show timelocks in an account
    function showLockTimes(address _address) public view validAddress(_address) returns (uint256[] _times) {
        uint i = 0;
        uint256[] memory tempLockTime = new uint256[](lockNum[_address]);
        while (i < lockNum[_address]) {
            tempLockTime[i] = lockTime[_address][i].add(later).sub(earlier);
            i++;
        }
        return tempLockTime;
    }

    // show values locked in an account's timelocks
    function showLockValues(address _address) public view validAddress(_address) returns (uint256[] _values) {
        return lockValue[_address];
    }

    function showLockNum(address _address) public view validAddress(_address) returns (uint256 _lockNum) {
        return lockNum[_address];
    }

    // removes the preset locker address
    function removeLocker(address _address) public validAddress(_address) onlyOwner {
        lockerAddress = address(0x0);
        locker[_address] = false;
    }

    // Calculate and process the timelock states of an account
    function calcUnlock(address _address) private {
        uint256 i = 0;
        uint256 j = 0;
        uint256[] memory currentLockTime;
        uint256[] memory currentLockValue;
        uint256[] memory newLockTime = new uint256[](lockNum[_address]);
        uint256[] memory newLockValue = new uint256[](lockNum[_address]);
        currentLockTime = lockTime[_address];
        currentLockValue = lockValue[_address];
        while (i < lockNum[_address]) {
            if (now.add(earlier) >= currentLockTime[i].add(later)) {
                balanceP[_address] = balanceP[_address].add(currentLockValue[i]);
                emit TokenUnlocked(_address, currentLockValue[i]);
            } else {
                newLockTime[j] = currentLockTime[i];
                newLockValue[j] = currentLockValue[i];
                j++;
            }
            i++;
        }
        uint256[] memory trimLockTime = new uint256[](j);
        uint256[] memory trimLockValue = new uint256[](j);
        i = 0;
        while (i < j) {
            trimLockTime[i] = newLockTime[i];
            trimLockValue[i] = newLockValue[i];
            i++;
        }
        lockTime[_address] = trimLockTime;
        lockValue[_address] = trimLockValue;
        lockNum[_address] = j;
    }

    // standard ERC20 transfer
    function transfer(address _to, uint256 _value) public validAddress(_to) returns (bool _success) {
        if (lockNum[msg.sender] > 0) calcUnlock(msg.sender);
        require(balanceP[msg.sender] >= _value && _value >= 0);
        balanceP[msg.sender] = balanceP[msg.sender].sub(_value);
        balanceP[_to] = balanceP[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    // transfer Token with timelocks
    function transferLocked(address _to, uint256[] _time, uint256[] _value) public validAddress(_to) returns (bool _success) {
        require(_value.length == _time.length);

        if (lockNum[msg.sender] > 0) calcUnlock(msg.sender);
        uint256 i = 0;
        uint256 totalValue = 0;
        while (i < _value.length) {
            totalValue = totalValue.add(_value[i]);
            i++;
        }
        require(balanceP[msg.sender] >= totalValue && totalValue >= 0);
        require(lockNum[_to].add(_time.length) <= 42);
        i = 0;
        while (i < _time.length) {
            if (_value[i] > 0) {
                balanceP[msg.sender] = balanceP[msg.sender].sub(_value[i]);
                lockTime[_to].length = lockNum[_to]+1;
                lockValue[_to].length = lockNum[_to]+1;
                lockTime[_to][lockNum[_to]] = now.add(_time[i]).add(earlier).sub(later);
                lockValue[_to][lockNum[_to]] = _value[i];
                lockNum[_to]++;
            }

            // emit custom TransferLocked event
            emit TransferLocked(msg.sender, _to, _time[i], _value[i]);

            // emit standard Transfer event for wallets
            emit Transfer(msg.sender, _to, _value[i]);

            i++;
        }
        return true;
    }

    // TransferFrom Token with timelocks
    function transferLockedFrom(address _from, address _to, uint256[] _time, uint256[] _value) public
	    validAddress(_from) validAddress(_to) returns (bool success) {
        require(_value.length == _time.length);

        if (lockNum[_from] > 0) calcUnlock(_from);
        uint256 i = 0;
        uint256 totalValue = 0;
        while (i < _value.length) {
            totalValue = totalValue.add(_value[i]);
            i++;
        }

        if (locker[msg.sender]) {
            allowed[_from][msg.sender] = totalSupply_;
        }

        require(balanceP[_from] >= totalValue && totalValue >= 0 && allowed[_from][msg.sender] >= totalValue);
        require(lockNum[_to].add(_time.length) <= 42);
        i = 0;
        while (i < _time.length) {
            if (_value[i] > 0) {
                balanceP[_from] = balanceP[_from].sub(_value[i]);
                allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value[i]);
                lockTime[_to].length = lockNum[_to]+1;
                lockValue[_to].length = lockNum[_to]+1;
                lockTime[_to][lockNum[_to]] = now.add(_time[i]).add(earlier).sub(later);
                lockValue[_to][lockNum[_to]] = _value[i];
                lockNum[_to]++;
            }

            // emit custom TransferLocked event
            emit TransferLocked(_from, _to, _time[i], _value[i]);

            // emit standard Transfer event for wallets
            emit Transfer(_from, _to, _value[i]);

            i++;
        }

        if (locker[msg.sender]) {
            allowed[_from][msg.sender] = 0;
        }

        return true;
    }

    // standard ERC20 transferFrom
    function transferFrom(address _from, address _to, uint256 _value) public validAddress(_from) validAddress(_to) returns (bool _success) {
        if (lockNum[_from] > 0) calcUnlock(_from);
        require(balanceP[_from] >= _value && _value >= 0 && allowed[_from][msg.sender] >= _value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        balanceP[_from] = balanceP[_from].sub(_value);
        balanceP[_to] = balanceP[_to].add(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    // should only be called when first setting an allowed
    function approve(address _spender, uint256 _value) public validAddress(_spender) returns (bool _success) {
        if (lockNum[msg.sender] > 0) calcUnlock(msg.sender);
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    // increase or decrease allowed
    function increaseApproval(address _spender, uint _value) public validAddress(_spender) returns (bool _success) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_value);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval(address _spender, uint _value) public validAddress(_spender) returns (bool _success) {
        if(_value >= allowed[msg.sender][_spender]) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = allowed[msg.sender][_spender].sub(_value);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    // owner may burn own token
    function burn(uint256 _value) public onlyOwner returns (bool _success) {
        if (lockNum[msg.sender] > 0) calcUnlock(msg.sender);
        require(balanceP[msg.sender] >= _value && _value >= 0);
        balanceP[msg.sender] = balanceP[msg.sender].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        emit Burn(msg.sender, _value);
        return true;
    }

    // safety methods
    function () public payable {
        revert();
    }

    function emptyWrongToken(address _addr) onlyOwner public {
        ERC20Token wrongToken = ERC20Token(_addr);
        uint256 amount = wrongToken.balanceOf(address(this));
        require(amount > 0);
        require(wrongToken.transfer(msg.sender, amount));

        emit WrongTokenEmptied(_addr, msg.sender, amount);
    }

    // shouldn't happen, just in case
    function emptyWrongEther() onlyOwner public {
        uint256 amount = address(this).balance;
        require(amount > 0);
        msg.sender.transfer(amount);

        emit WrongEtherEmptied(msg.sender, amount);
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceUnlocked","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_time","type":"uint256[]"},{"name":"_value","type":"uint256[]"}],"name":"transferLockedFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockerAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceLocked","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"earlier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_time","type":"uint256[]"},{"name":"_value","type":"uint256[]"}],"name":"transferLocked","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"showLockTimes","outputs":[{"name":"_times","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"later","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"showLockValues","outputs":[{"name":"_values","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_later","type":"uint256"}],"name":"setUnlockLater","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"removeLocker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"locker","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"emptyWrongToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"emptyWrongEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_earlier","type":"uint256"}],"name":"setUnlockEarlier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"showLockNum","outputs":[{"name":"_lockNum","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_address","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_time","type":"uint256"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"TransferLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"TokenUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_addr","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"WrongTokenEmptied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_addr","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"WrongEtherEmptied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60c0604052600660808190527f504672756974000000000000000000000000000000000000000000000000000060a09081526200004091600191906200012f565b506040805180820190915260038082527f5046550000000000000000000000000000000000000000000000000000000000602090920191825262000087916002916200012f565b5060038054601260ff19909116179081905560ff16600a0a633b9aca00026004556000600c819055600d55348015620000bf57600080fd5b50604051602080620024dd83398101604090815290516000805433600160a060020a031991821681178355600b8054909216600160a060020a03909416938417909155918152600a6020908152838220805460ff19166001179055600454928252600590529190912055620001d4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017257805160ff1916838001178555620001a2565b82800160010185558215620001a2579182015b82811115620001a257825182559160200191906001019062000185565b50620001b0929150620001b4565b5090565b620001d191905b80821115620001b05760008155600101620001bb565b90565b6122f980620001e46000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630451f520811461018457806306fdde03146101b7578063095ea7b3146102415780630fce887b1461027957806313af40351461031d57806318160ddd1461034057806323b872dd14610355578063313ce5671461037f5780633675f29b146103aa57806342966c68146103db5780635fc3a312146103f3578063661884631461041457806366fbc1541461043857806370a082311461044d5780638da5cb5b1461046e57806395d89b4114610483578063a9059cbb14610498578063b91aedab146104bc578063b9c5416d14610558578063c7cc4ee9146105c9578063c9e6bd34146105de578063ca0cd7c0146105ff578063ce62cd4a14610617578063d71c9c1214610638578063d729018114610659578063d73dd6231461067a578063d80b20561461069e578063dd62ed3e146106b3578063df51d46b146106da578063fb276fcf146106f2575b600080fd5b34801561019057600080fd5b506101a5600160a060020a0360043516610713565b60408051918252519081900360200190f35b3480156101c357600080fd5b506101cc610801565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102065781810151838201526020016101ee565b50505050905090810190601f1680156102335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024d57600080fd5b50610265600160a060020a0360043516602435610897565b604080519115158252519081900360200190f35b34801561028557600080fd5b506040805160206004604435818101358381028086018501909652808552610265958335600160a060020a039081169660248035909216963696956064959294930192829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506109369650505050505050565b34801561032957600080fd5b5061033e600160a060020a0360043516610e33565b005b34801561034c57600080fd5b506101a5610e79565b34801561036157600080fd5b50610265600160a060020a0360043581169060243516604435610e7f565b34801561038b57600080fd5b50610394611033565b6040805160ff9092168252519081900360200190f35b3480156103b657600080fd5b506103bf61103c565b60408051600160a060020a039092168252519081900360200190f35b3480156103e757600080fd5b5061026560043561104b565b3480156103ff57600080fd5b506101a5600160a060020a0360043516611131565b34801561042057600080fd5b50610265600160a060020a03600435166024356111d0565b34801561044457600080fd5b506101a56112fa565b34801561045957600080fd5b506101a5600160a060020a0360043516611300565b34801561047a57600080fd5b506103bf61136e565b34801561048f57600080fd5b506101cc61137d565b3480156104a457600080fd5b50610265600160a060020a03600435166024356113db565b3480156104c857600080fd5b50604080516020600460248035828101358481028087018601909752808652610265968435600160a060020a031696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506114dc9650505050505050565b34801561056457600080fd5b50610579600160a060020a036004351661185a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105b557818101518382015260200161059d565b505050509050019250505060405180910390f35b3480156105d557600080fd5b506101a561194c565b3480156105ea57600080fd5b50610579600160a060020a0360043516611952565b34801561060b57600080fd5b5061033e6004356119d5565b34801561062357600080fd5b5061033e600160a060020a0360043516611a05565b34801561064457600080fd5b50610265600160a060020a0360043516611a71565b34801561066557600080fd5b5061033e600160a060020a0360043516611a86565b34801561068657600080fd5b50610265600160a060020a0360043516602435611c23565b3480156106aa57600080fd5b5061033e611c6f565b3480156106bf57600080fd5b506101a5600160a060020a0360043581169060243516611cfe565b3480156106e657600080fd5b5061033e600435611d29565b3480156106fe57600080fd5b506101a5600160a060020a0360043516611d59565b600160a060020a038116600090815260056020526040812054905b600160a060020a0383166000908152600960205260409020548110156107fb57600c54600160a060020a038416600090815260076020526040902080546107949291908490811061077b57fe5b9060005260206000200154611d8e90919063ffffffff16565b600d546107a890429063ffffffff611d8e16565b106107f357600160a060020a038316600090815260086020526040902080546107f09190839081106107d657fe5b906000526020600020015483611d8e90919063ffffffff16565b91505b60010161072e565b50919050565b60018054604080516020601f6002600019610100878916150201909516949094049384018190048102820181019092528281526060939092909183018282801561088c5780601f106108615761010080835404028352916020019161088c565b820191906000526020600020905b81548152906001019060200180831161086f57829003601f168201915b505050505090505b90565b600082600160a060020a03811615156108af57600080fd5b3360009081526009602052604081205411156108ce576108ce33611da4565b336000818152600660209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000808086600160a060020a038116151561095057600080fd5b86600160a060020a038116151561096657600080fd5b865186511461097457600080fd5b600160a060020a038916600090815260096020526040812054111561099c5761099c89611da4565b60009350600092505b85518410156109e3576109d686858151811015156109bf57fe5b60209081029091010151849063ffffffff611d8e16565b60019094019392506109a5565b336000908152600a602052604090205460ff1615610a2357600454600160a060020a038a1660009081526006602090815260408083203384529091529020555b600160a060020a0389166000908152600560205260409020548311801590610a4c575060008310155b8015610a7b5750600160a060020a03891660009081526006602090815260408083203384529091529020548311155b1515610a8657600080fd5b8651600160a060020a038916600090815260096020526040902054602a91610ab4919063ffffffff611d8e16565b1115610abf57600080fd5b600093505b8651841015610de75760008685815181101515610add57fe5b906020019060200201511115610d1257610b2f8685815181101515610afe57fe5b6020908102909101810151600160a060020a038c16600090815260059092526040909120549063ffffffff61220d16565b600160a060020a038a166000908152600560205260409020558551610b9490879086908110610b5a57fe5b6020908102909101810151600160a060020a038c16600090815260068352604080822033835290935291909120549063ffffffff61220d16565b600160a060020a03808b166000908152600660209081526040808320338452825280832094909455918b1681526009825282812054600790925291909120600190910190610be2908261221f565b50600160a060020a0388166000908152600960209081526040808320546008909252909120600190910190610c17908261221f565b50610c64600c54610c58600d54610c4c8b89815181101515610c3557fe5b60209081029091010151429063ffffffff611d8e16565b9063ffffffff611d8e16565b9063ffffffff61220d16565b600160a060020a038916600090815260076020908152604080832060099092529091205481548110610c9257fe5b6000918252602090912001558551869085908110610cac57fe5b6020908102909101810151600160a060020a038a166000908152600883526040808220600990945290205482549192918110610ce457fe5b6000918252602080832090910192909255600160a060020a038a168152600990915260409020805460010190555b87600160a060020a031689600160a060020a03167f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e8987815181101515610d5557fe5b906020019060200201518988815181101515610d6d57fe5b602090810290910181015160408051938452918301528051918290030190a387600160a060020a031689600160a060020a03166000805160206122ae8339815191528887815181101515610dbd57fe5b906020019060200201516040518082815260200191505060405180910390a3600190930192610ac4565b336000908152600a602052604090205460ff1615610e2457600160a060020a03891660009081526006602090815260408083203384529091528120555b50600198975050505050505050565b600054600160a060020a03163314610e4a57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600083600160a060020a0381161515610e9757600080fd5b83600160a060020a0381161515610ead57600080fd5b600160a060020a0386166000908152600960205260408120541115610ed557610ed586611da4565b600160a060020a0386166000908152600560205260409020548411801590610efe575060008410155b8015610f2d5750600160a060020a03861660009081526006602090815260408083203384529091529020548411155b1515610f3857600080fd5b600160a060020a0386166000908152600660209081526040808320338452909152902054610f6c908563ffffffff61220d16565b600160a060020a038716600081815260066020908152604080832033845282528083209490945591815260059091522054610fad908563ffffffff61220d16565b600160a060020a038088166000908152600560205260408082209390935590871681522054610fe2908563ffffffff611d8e16565b600160a060020a0380871660008181526005602090815260409182902094909455805188815290519193928a16926000805160206122ae83398151915292918290030190a350600195945050505050565b60035460ff1690565b600b54600160a060020a031681565b60008054600160a060020a0316331461106357600080fd5b3360009081526009602052604081205411156110825761108233611da4565b3360009081526005602052604090205482118015906110a2575060008210155b15156110ad57600080fd5b336000908152600560205260409020546110cd908363ffffffff61220d16565b336000908152600560205260409020556004546110f0908363ffffffff61220d16565b60045560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2506001919050565b6000805b600160a060020a0383166000908152600960205260409020548110156107fb57600c54600160a060020a038416600090815260076020526040902080546111829291908490811061077b57fe5b600d5461119690429063ffffffff611d8e16565b10156111c857600160a060020a038316600090815260086020526040902080546111c59190839081106107d657fe5b91505b600101611135565b600082600160a060020a03811615156111e857600080fd5b336000908152600660209081526040808320600160a060020a0388168452909152902054831061123b57336000908152600660209081526040808320600160a060020a0388168452909152812055611294565b336000908152600660209081526040808320600160a060020a038816845290915290205461126f908463ffffffff61220d16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600d5481565b600160a060020a038116600090815260056020526040812054905b600160a060020a0383166000908152600960205260409020548110156107fb57600160a060020a038316600090815260086020526040902080546113649190839081106107d657fe5b915060010161131b565b600054600160a060020a031681565b60028054604080516020601f600019610100600187161502019094168590049384018190048102820181019092528281526060939092909183018282801561088c5780601f106108615761010080835404028352916020019161088c565b600082600160a060020a03811615156113f357600080fd5b3360009081526009602052604081205411156114125761141233611da4565b336000908152600560205260409020548311801590611432575060008310155b151561143d57600080fd5b3360009081526005602052604090205461145d908463ffffffff61220d16565b3360009081526005602052604080822092909255600160a060020a0386168152205461148f908463ffffffff611d8e16565b600160a060020a0385166000818152600560209081526040918290209390935580518681529051919233926000805160206122ae8339815191529281900390910190a35060019392505050565b6000808085600160a060020a03811615156114f657600080fd5b855185511461150457600080fd5b3360009081526009602052604081205411156115235761152333611da4565b60009250600091505b845183101561156a5761155d858481518110151561154657fe5b60209081029091010151839063ffffffff611d8e16565b600190930192915061152c565b33600090815260056020526040902054821180159061158a575060008210155b151561159557600080fd5b8551600160a060020a038816600090815260096020526040902054602a916115c3919063ffffffff611d8e16565b11156115ce57600080fd5b600092505b855183101561184d57600085848151811015156115ec57fe5b90602001906020020151111561177857611635858481518110151561160d57fe5b602090810290910181015133600090815260059092526040909120549063ffffffff61220d16565b33600090815260056020908152604080832093909355600160a060020a038a16825260098152828220546007909152919020600190910190611677908261221f565b50600160a060020a03871660009081526009602090815260408083205460089092529091206001909101906116ac908261221f565b506116ca600c54610c58600d54610c4c8a88815181101515610c3557fe5b600160a060020a0388166000908152600760209081526040808320600990925290912054815481106116f857fe5b600091825260209091200155845185908490811061171257fe5b6020908102909101810151600160a060020a038916600090815260088352604080822060099094529020548254919291811061174a57fe5b6000918252602080832090910192909255600160a060020a0389168152600990915260409020805460010190555b86600160a060020a031633600160a060020a03167f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e88868151811015156117bb57fe5b9060200190602002015188878151811015156117d357fe5b602090810290910181015160408051938452918301528051918290030190a386600160a060020a031633600160a060020a03166000805160206122ae833981519152878681518110151561182357fe5b906020019060200201516040518082815260200191505060405180910390a36001909201916115d3565b5060019695505050505050565b606060008183600160a060020a038116151561187557600080fd5b600092506009600086600160a060020a0316600160a060020a03168152602001908152602001600020546040519080825280602002602001820160405280156118c8578160200160208202803883390190505b5091505b600160a060020a03851660009081526009602052604090205483101561194457600d54600c54600160a060020a038716600090815260076020526040902080546119219392610c589290918890811061077b57fe5b828481518110151561192f57fe5b602090810290910101526001909201916118cc565b509392505050565b600c5481565b606081600160a060020a038116151561196a57600080fd5b600160a060020a038316600090815260086020908152604091829020805483518184028101840190945280845290918301828280156119c857602002820191906000526020600020905b8154815260200190600101908083116119b4575b5050505050915050919050565b600054600160a060020a031633146119ec57600080fd5b600c546119ff908263ffffffff611d8e16565b600c5550565b80600160a060020a0381161515611a1b57600080fd5b600054600160a060020a03163314611a3257600080fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff19169055600160a060020a03166000908152600a60205260409020805460ff19169055565b600a6020526000908152604090205460ff1681565b600080548190600160a060020a03163314611aa057600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611b0457600080fd5b505af1158015611b18573d6000803e3d6000fd5b505050506040513d6020811015611b2e57600080fd5b5051905060008111611b3f57600080fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390529051600160a060020a0384169163a9059cbb9160448083019260209291908290030181600087803b158015611ba757600080fd5b505af1158015611bbb573d6000803e3d6000fd5b505050506040513d6020811015611bd157600080fd5b50511515611bde57600080fd5b6040805182815290513391600160a060020a038616917f5d8daa04d680e083e2ab17a35494ba9f290f554edf76a78f0103a8a599b5c4249181900360200190a3505050565b600082600160a060020a0381161515611c3b57600080fd5b336000908152600660209081526040808320600160a060020a038816845290915290205461126f908463ffffffff611d8e16565b60008054600160a060020a03163314611c8757600080fd5b50303160008111611c9757600080fd5b604051339082156108fc029083906000818181858888f19350505050158015611cc4573d6000803e3d6000fd5b5060408051828152905133917faea7a96dc17068a25e51e08f8ed45b86bd34b10af65af8e757af57b7e7b9e55d919081900360200190a250565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600054600160a060020a03163314611d4057600080fd5b600d54611d53908263ffffffff611d8e16565b600d5550565b600081600160a060020a0381161515611d7157600080fd5b5050600160a060020a031660009081526009602052604090205490565b600082820183811015611d9d57fe5b9392505050565b6000806060806060806060806000975060009650600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611e07578160200160208202803883390190505b509350600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611e59578160200160208202803883390190505b50600160a060020a038a166000908152600760209081526040918290208054835181840281018401909452808452939650919290830182828015611ebc57602002820191906000526020600020905b815481526020019060010190808311611ea8575b50505050509550600860008a600160a060020a0316600160a060020a03168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611f3257602002820191906000526020600020905b815481526020019060010190808311611f1e575b505050505094505b600160a060020a0389166000908152600960205260409020548810156120c157611f84600c54878a815181101515611f6e57fe5b602090810290910101519063ffffffff611d8e16565b600d54611f9890429063ffffffff611d8e16565b1061204f57611fdf8589815181101515611fae57fe5b6020908102909101810151600160a060020a038c16600090815260059092526040909120549063ffffffff611d8e16565b600160a060020a038a1660008181526005602052604090209190915585517f613edbda9d1e6bda8af8e869a973f88cccf93854a11f351589038de07e1ab4e39087908b90811061202b57fe5b906020019060200201516040518082815260200191505060405180910390a26120b6565b858881518110151561205d57fe5b90602001906020020151848881518110151561207557fe5b60209081029091010152845185908990811061208d57fe5b9060200190602002015183888151811015156120a557fe5b602090810290910101526001909601955b600190970196611f3a565b866040519080825280602002602001820160405280156120eb578160200160208202803883390190505b50915086604051908082528060200260200182016040528015612118578160200160208202803883390190505b509050600097505b8688101561219357838881518110151561213657fe5b90602001906020020151828981518110151561214e57fe5b60209081029091010152825183908990811061216657fe5b90602001906020020151818981518110151561217e57fe5b60209081029091010152600190970196612120565b600160a060020a038916600090815260076020908152604090912083516121bc92850190612248565b50600160a060020a038916600090815260086020908152604090912082516121e692840190612248565b505050600160a060020a039096166000908152600960205260409020939093555050505050565b60008183101561221957fe5b50900390565b81548183558181111561224357600083815260209020612243918101908301612293565b505050565b828054828255906000526020600020908101928215612283579160200282015b82811115612283578251825591602001919060010190612268565b5061228f929150612293565b5090565b61089491905b8082111561228f57600081556001016122995600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058208e9225d33f74cb1e4a70d97bb2f8c6d2ca51b185f8282375935039f407ca86b300290000000000000000000000008884454e46410fda043dae2efa79f5584f31a634

Deployed Bytecode

0x60806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630451f520811461018457806306fdde03146101b7578063095ea7b3146102415780630fce887b1461027957806313af40351461031d57806318160ddd1461034057806323b872dd14610355578063313ce5671461037f5780633675f29b146103aa57806342966c68146103db5780635fc3a312146103f3578063661884631461041457806366fbc1541461043857806370a082311461044d5780638da5cb5b1461046e57806395d89b4114610483578063a9059cbb14610498578063b91aedab146104bc578063b9c5416d14610558578063c7cc4ee9146105c9578063c9e6bd34146105de578063ca0cd7c0146105ff578063ce62cd4a14610617578063d71c9c1214610638578063d729018114610659578063d73dd6231461067a578063d80b20561461069e578063dd62ed3e146106b3578063df51d46b146106da578063fb276fcf146106f2575b600080fd5b34801561019057600080fd5b506101a5600160a060020a0360043516610713565b60408051918252519081900360200190f35b3480156101c357600080fd5b506101cc610801565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102065781810151838201526020016101ee565b50505050905090810190601f1680156102335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024d57600080fd5b50610265600160a060020a0360043516602435610897565b604080519115158252519081900360200190f35b34801561028557600080fd5b506040805160206004604435818101358381028086018501909652808552610265958335600160a060020a039081169660248035909216963696956064959294930192829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506109369650505050505050565b34801561032957600080fd5b5061033e600160a060020a0360043516610e33565b005b34801561034c57600080fd5b506101a5610e79565b34801561036157600080fd5b50610265600160a060020a0360043581169060243516604435610e7f565b34801561038b57600080fd5b50610394611033565b6040805160ff9092168252519081900360200190f35b3480156103b657600080fd5b506103bf61103c565b60408051600160a060020a039092168252519081900360200190f35b3480156103e757600080fd5b5061026560043561104b565b3480156103ff57600080fd5b506101a5600160a060020a0360043516611131565b34801561042057600080fd5b50610265600160a060020a03600435166024356111d0565b34801561044457600080fd5b506101a56112fa565b34801561045957600080fd5b506101a5600160a060020a0360043516611300565b34801561047a57600080fd5b506103bf61136e565b34801561048f57600080fd5b506101cc61137d565b3480156104a457600080fd5b50610265600160a060020a03600435166024356113db565b3480156104c857600080fd5b50604080516020600460248035828101358481028087018601909752808652610265968435600160a060020a031696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506114dc9650505050505050565b34801561056457600080fd5b50610579600160a060020a036004351661185a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105b557818101518382015260200161059d565b505050509050019250505060405180910390f35b3480156105d557600080fd5b506101a561194c565b3480156105ea57600080fd5b50610579600160a060020a0360043516611952565b34801561060b57600080fd5b5061033e6004356119d5565b34801561062357600080fd5b5061033e600160a060020a0360043516611a05565b34801561064457600080fd5b50610265600160a060020a0360043516611a71565b34801561066557600080fd5b5061033e600160a060020a0360043516611a86565b34801561068657600080fd5b50610265600160a060020a0360043516602435611c23565b3480156106aa57600080fd5b5061033e611c6f565b3480156106bf57600080fd5b506101a5600160a060020a0360043581169060243516611cfe565b3480156106e657600080fd5b5061033e600435611d29565b3480156106fe57600080fd5b506101a5600160a060020a0360043516611d59565b600160a060020a038116600090815260056020526040812054905b600160a060020a0383166000908152600960205260409020548110156107fb57600c54600160a060020a038416600090815260076020526040902080546107949291908490811061077b57fe5b9060005260206000200154611d8e90919063ffffffff16565b600d546107a890429063ffffffff611d8e16565b106107f357600160a060020a038316600090815260086020526040902080546107f09190839081106107d657fe5b906000526020600020015483611d8e90919063ffffffff16565b91505b60010161072e565b50919050565b60018054604080516020601f6002600019610100878916150201909516949094049384018190048102820181019092528281526060939092909183018282801561088c5780601f106108615761010080835404028352916020019161088c565b820191906000526020600020905b81548152906001019060200180831161086f57829003601f168201915b505050505090505b90565b600082600160a060020a03811615156108af57600080fd5b3360009081526009602052604081205411156108ce576108ce33611da4565b336000818152600660209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000808086600160a060020a038116151561095057600080fd5b86600160a060020a038116151561096657600080fd5b865186511461097457600080fd5b600160a060020a038916600090815260096020526040812054111561099c5761099c89611da4565b60009350600092505b85518410156109e3576109d686858151811015156109bf57fe5b60209081029091010151849063ffffffff611d8e16565b60019094019392506109a5565b336000908152600a602052604090205460ff1615610a2357600454600160a060020a038a1660009081526006602090815260408083203384529091529020555b600160a060020a0389166000908152600560205260409020548311801590610a4c575060008310155b8015610a7b5750600160a060020a03891660009081526006602090815260408083203384529091529020548311155b1515610a8657600080fd5b8651600160a060020a038916600090815260096020526040902054602a91610ab4919063ffffffff611d8e16565b1115610abf57600080fd5b600093505b8651841015610de75760008685815181101515610add57fe5b906020019060200201511115610d1257610b2f8685815181101515610afe57fe5b6020908102909101810151600160a060020a038c16600090815260059092526040909120549063ffffffff61220d16565b600160a060020a038a166000908152600560205260409020558551610b9490879086908110610b5a57fe5b6020908102909101810151600160a060020a038c16600090815260068352604080822033835290935291909120549063ffffffff61220d16565b600160a060020a03808b166000908152600660209081526040808320338452825280832094909455918b1681526009825282812054600790925291909120600190910190610be2908261221f565b50600160a060020a0388166000908152600960209081526040808320546008909252909120600190910190610c17908261221f565b50610c64600c54610c58600d54610c4c8b89815181101515610c3557fe5b60209081029091010151429063ffffffff611d8e16565b9063ffffffff611d8e16565b9063ffffffff61220d16565b600160a060020a038916600090815260076020908152604080832060099092529091205481548110610c9257fe5b6000918252602090912001558551869085908110610cac57fe5b6020908102909101810151600160a060020a038a166000908152600883526040808220600990945290205482549192918110610ce457fe5b6000918252602080832090910192909255600160a060020a038a168152600990915260409020805460010190555b87600160a060020a031689600160a060020a03167f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e8987815181101515610d5557fe5b906020019060200201518988815181101515610d6d57fe5b602090810290910181015160408051938452918301528051918290030190a387600160a060020a031689600160a060020a03166000805160206122ae8339815191528887815181101515610dbd57fe5b906020019060200201516040518082815260200191505060405180910390a3600190930192610ac4565b336000908152600a602052604090205460ff1615610e2457600160a060020a03891660009081526006602090815260408083203384529091528120555b50600198975050505050505050565b600054600160a060020a03163314610e4a57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600083600160a060020a0381161515610e9757600080fd5b83600160a060020a0381161515610ead57600080fd5b600160a060020a0386166000908152600960205260408120541115610ed557610ed586611da4565b600160a060020a0386166000908152600560205260409020548411801590610efe575060008410155b8015610f2d5750600160a060020a03861660009081526006602090815260408083203384529091529020548411155b1515610f3857600080fd5b600160a060020a0386166000908152600660209081526040808320338452909152902054610f6c908563ffffffff61220d16565b600160a060020a038716600081815260066020908152604080832033845282528083209490945591815260059091522054610fad908563ffffffff61220d16565b600160a060020a038088166000908152600560205260408082209390935590871681522054610fe2908563ffffffff611d8e16565b600160a060020a0380871660008181526005602090815260409182902094909455805188815290519193928a16926000805160206122ae83398151915292918290030190a350600195945050505050565b60035460ff1690565b600b54600160a060020a031681565b60008054600160a060020a0316331461106357600080fd5b3360009081526009602052604081205411156110825761108233611da4565b3360009081526005602052604090205482118015906110a2575060008210155b15156110ad57600080fd5b336000908152600560205260409020546110cd908363ffffffff61220d16565b336000908152600560205260409020556004546110f0908363ffffffff61220d16565b60045560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2506001919050565b6000805b600160a060020a0383166000908152600960205260409020548110156107fb57600c54600160a060020a038416600090815260076020526040902080546111829291908490811061077b57fe5b600d5461119690429063ffffffff611d8e16565b10156111c857600160a060020a038316600090815260086020526040902080546111c59190839081106107d657fe5b91505b600101611135565b600082600160a060020a03811615156111e857600080fd5b336000908152600660209081526040808320600160a060020a0388168452909152902054831061123b57336000908152600660209081526040808320600160a060020a0388168452909152812055611294565b336000908152600660209081526040808320600160a060020a038816845290915290205461126f908463ffffffff61220d16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600d5481565b600160a060020a038116600090815260056020526040812054905b600160a060020a0383166000908152600960205260409020548110156107fb57600160a060020a038316600090815260086020526040902080546113649190839081106107d657fe5b915060010161131b565b600054600160a060020a031681565b60028054604080516020601f600019610100600187161502019094168590049384018190048102820181019092528281526060939092909183018282801561088c5780601f106108615761010080835404028352916020019161088c565b600082600160a060020a03811615156113f357600080fd5b3360009081526009602052604081205411156114125761141233611da4565b336000908152600560205260409020548311801590611432575060008310155b151561143d57600080fd5b3360009081526005602052604090205461145d908463ffffffff61220d16565b3360009081526005602052604080822092909255600160a060020a0386168152205461148f908463ffffffff611d8e16565b600160a060020a0385166000818152600560209081526040918290209390935580518681529051919233926000805160206122ae8339815191529281900390910190a35060019392505050565b6000808085600160a060020a03811615156114f657600080fd5b855185511461150457600080fd5b3360009081526009602052604081205411156115235761152333611da4565b60009250600091505b845183101561156a5761155d858481518110151561154657fe5b60209081029091010151839063ffffffff611d8e16565b600190930192915061152c565b33600090815260056020526040902054821180159061158a575060008210155b151561159557600080fd5b8551600160a060020a038816600090815260096020526040902054602a916115c3919063ffffffff611d8e16565b11156115ce57600080fd5b600092505b855183101561184d57600085848151811015156115ec57fe5b90602001906020020151111561177857611635858481518110151561160d57fe5b602090810290910181015133600090815260059092526040909120549063ffffffff61220d16565b33600090815260056020908152604080832093909355600160a060020a038a16825260098152828220546007909152919020600190910190611677908261221f565b50600160a060020a03871660009081526009602090815260408083205460089092529091206001909101906116ac908261221f565b506116ca600c54610c58600d54610c4c8a88815181101515610c3557fe5b600160a060020a0388166000908152600760209081526040808320600990925290912054815481106116f857fe5b600091825260209091200155845185908490811061171257fe5b6020908102909101810151600160a060020a038916600090815260088352604080822060099094529020548254919291811061174a57fe5b6000918252602080832090910192909255600160a060020a0389168152600990915260409020805460010190555b86600160a060020a031633600160a060020a03167f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e88868151811015156117bb57fe5b9060200190602002015188878151811015156117d357fe5b602090810290910181015160408051938452918301528051918290030190a386600160a060020a031633600160a060020a03166000805160206122ae833981519152878681518110151561182357fe5b906020019060200201516040518082815260200191505060405180910390a36001909201916115d3565b5060019695505050505050565b606060008183600160a060020a038116151561187557600080fd5b600092506009600086600160a060020a0316600160a060020a03168152602001908152602001600020546040519080825280602002602001820160405280156118c8578160200160208202803883390190505b5091505b600160a060020a03851660009081526009602052604090205483101561194457600d54600c54600160a060020a038716600090815260076020526040902080546119219392610c589290918890811061077b57fe5b828481518110151561192f57fe5b602090810290910101526001909201916118cc565b509392505050565b600c5481565b606081600160a060020a038116151561196a57600080fd5b600160a060020a038316600090815260086020908152604091829020805483518184028101840190945280845290918301828280156119c857602002820191906000526020600020905b8154815260200190600101908083116119b4575b5050505050915050919050565b600054600160a060020a031633146119ec57600080fd5b600c546119ff908263ffffffff611d8e16565b600c5550565b80600160a060020a0381161515611a1b57600080fd5b600054600160a060020a03163314611a3257600080fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff19169055600160a060020a03166000908152600a60205260409020805460ff19169055565b600a6020526000908152604090205460ff1681565b600080548190600160a060020a03163314611aa057600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611b0457600080fd5b505af1158015611b18573d6000803e3d6000fd5b505050506040513d6020811015611b2e57600080fd5b5051905060008111611b3f57600080fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390529051600160a060020a0384169163a9059cbb9160448083019260209291908290030181600087803b158015611ba757600080fd5b505af1158015611bbb573d6000803e3d6000fd5b505050506040513d6020811015611bd157600080fd5b50511515611bde57600080fd5b6040805182815290513391600160a060020a038616917f5d8daa04d680e083e2ab17a35494ba9f290f554edf76a78f0103a8a599b5c4249181900360200190a3505050565b600082600160a060020a0381161515611c3b57600080fd5b336000908152600660209081526040808320600160a060020a038816845290915290205461126f908463ffffffff611d8e16565b60008054600160a060020a03163314611c8757600080fd5b50303160008111611c9757600080fd5b604051339082156108fc029083906000818181858888f19350505050158015611cc4573d6000803e3d6000fd5b5060408051828152905133917faea7a96dc17068a25e51e08f8ed45b86bd34b10af65af8e757af57b7e7b9e55d919081900360200190a250565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600054600160a060020a03163314611d4057600080fd5b600d54611d53908263ffffffff611d8e16565b600d5550565b600081600160a060020a0381161515611d7157600080fd5b5050600160a060020a031660009081526009602052604090205490565b600082820183811015611d9d57fe5b9392505050565b6000806060806060806060806000975060009650600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611e07578160200160208202803883390190505b509350600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611e59578160200160208202803883390190505b50600160a060020a038a166000908152600760209081526040918290208054835181840281018401909452808452939650919290830182828015611ebc57602002820191906000526020600020905b815481526020019060010190808311611ea8575b50505050509550600860008a600160a060020a0316600160a060020a03168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611f3257602002820191906000526020600020905b815481526020019060010190808311611f1e575b505050505094505b600160a060020a0389166000908152600960205260409020548810156120c157611f84600c54878a815181101515611f6e57fe5b602090810290910101519063ffffffff611d8e16565b600d54611f9890429063ffffffff611d8e16565b1061204f57611fdf8589815181101515611fae57fe5b6020908102909101810151600160a060020a038c16600090815260059092526040909120549063ffffffff611d8e16565b600160a060020a038a1660008181526005602052604090209190915585517f613edbda9d1e6bda8af8e869a973f88cccf93854a11f351589038de07e1ab4e39087908b90811061202b57fe5b906020019060200201516040518082815260200191505060405180910390a26120b6565b858881518110151561205d57fe5b90602001906020020151848881518110151561207557fe5b60209081029091010152845185908990811061208d57fe5b9060200190602002015183888151811015156120a557fe5b602090810290910101526001909601955b600190970196611f3a565b866040519080825280602002602001820160405280156120eb578160200160208202803883390190505b50915086604051908082528060200260200182016040528015612118578160200160208202803883390190505b509050600097505b8688101561219357838881518110151561213657fe5b90602001906020020151828981518110151561214e57fe5b60209081029091010152825183908990811061216657fe5b90602001906020020151818981518110151561217e57fe5b60209081029091010152600190970196612120565b600160a060020a038916600090815260076020908152604090912083516121bc92850190612248565b50600160a060020a038916600090815260086020908152604090912082516121e692840190612248565b505050600160a060020a039096166000908152600960205260409020939093555050505050565b60008183101561221957fe5b50900390565b81548183558181111561224357600083815260209020612243918101908301612293565b505050565b828054828255906000526020600020908101928215612283579160200282015b82811115612283578251825591602001919060010190612268565b5061228f929150612293565b5090565b61089491905b8082111561228f57600081556001016122995600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058208e9225d33f74cb1e4a70d97bb2f8c6d2ca51b185f8282375935039f407ca86b30029

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

0000000000000000000000008884454e46410fda043dae2efa79f5584f31a634

-----Decoded View---------------
Arg [0] : _address (address): 0x8884454E46410fdA043DAe2EfA79F5584f31A634

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008884454e46410fda043dae2efa79f5584f31a634


Swarm Source

bzzr://8e9225d33f74cb1e4a70d97bb2f8c6d2ca51b185f8282375935039f407ca86b3

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  ]

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.