ETH Price: $3,416.14 (-0.70%)
Gas: 9 Gwei

Contract

0x01db18F6a474840DB3480a6a35227D4D0DfccA37
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer139378212022-01-04 8:05:12925 days ago1641283512IN
0x01db18F6...D0DfccA37
0 ETH0.0053193276.21677483
Transfer139187982022-01-01 9:46:07928 days ago1641030367IN
0x01db18F6...D0DfccA37
0 ETH0.0049212470.51305158
Transfer139187372022-01-01 9:29:42928 days ago1641029382IN
0x01db18F6...D0DfccA37
0 ETH0.0040271157.70168127
Transfer138415842021-12-20 10:51:24940 days ago1639997484IN
0x01db18F6...D0DfccA37
0 ETH0.0034984540.2788052
Transfer137581632021-12-07 11:03:44953 days ago1638875024IN
0x01db18F6...D0DfccA37
0 ETH0.0051675874.04261717
Transfer134842502021-10-25 3:45:34996 days ago1635133534IN
0x01db18F6...D0DfccA37
0 ETH0.0075103386.46877682
Transfer134841562021-10-25 3:24:33996 days ago1635132273IN
0x01db18F6...D0DfccA37
0 ETH0.004559355.54714813
Transfer130720912021-08-22 1:17:371060 days ago1629595057IN
0x01db18F6...D0DfccA37
0 ETH0.0022506525.00000145
Transfer130266052021-08-15 0:32:071067 days ago1628987527IN
0x01db18F6...D0DfccA37
0 ETH0.002388527.49964296
Transfer121387002021-03-30 5:19:591205 days ago1617081599IN
0x01db18F6...D0DfccA37
0 ETH0.00846055122.1000016
Transfer121322032021-03-29 5:18:461206 days ago1616995126IN
0x01db18F6...D0DfccA37
0 ETH0.0065550294.6
Transfer121320132021-03-29 4:38:421206 days ago1616992722IN
0x01db18F6...D0DfccA37
0 ETH0.0060987588
Transfer119330052021-02-26 12:59:201237 days ago1614344360IN
0x01db18F6...D0DfccA37
0 ETH0.0067895191.00000112
Transfer109952582020-10-05 10:41:271381 days ago1601894487IN
0x01db18F6...D0DfccA37
0 ETH0.0055433680
Transfer95319582020-02-22 8:07:481607 days ago1582358868IN
0x01db18F6...D0DfccA37
0 ETH0.000463465.499945
Transfer95316362020-02-22 6:49:551607 days ago1582354195IN
0x01db18F6...D0DfccA37
0 ETH0.000381035.499945
Transfer95315972020-02-22 6:40:291607 days ago1582353629IN
0x01db18F6...D0DfccA37
0 ETH0.000399995.7142041
Transfer95315612020-02-22 6:31:181607 days ago1582353078IN
0x01db18F6...D0DfccA37
0 ETH0.000313925.7142041
Transfer92578692020-01-11 6:08:021649 days ago1578722882IN
0x01db18F6...D0DfccA37
0 ETH0.0011376113.5
Transfer92061022020-01-03 8:15:111657 days ago1578039311IN
0x01db18F6...D0DfccA37
0 ETH0.00041176
Transfer90424272019-12-03 7:21:381688 days ago1575357698IN
0x01db18F6...D0DfccA37
0 ETH0.000237345
Transfer90387672019-12-02 15:27:431689 days ago1575300463IN
0x01db18F6...D0DfccA37
0 ETH0.000211046.5
Transfer90264342019-11-30 11:06:541691 days ago1575112014IN
0x01db18F6...D0DfccA37
0 ETH0.00027165.7142041
Transfer90137332019-11-28 5:07:431693 days ago1574917663IN
0x01db18F6...D0DfccA37
0 ETH0.000104572.2
Transfer90136942019-11-28 5:01:041693 days ago1574917264IN
0x01db18F6...D0DfccA37
0 ETH0.000158594.875
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:
BPToken

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-23
*/

pragma solidity ^0.4.20;


/*
 * ERC20 interface
 * see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 {
    uint public totalSupply;
    function balanceOf(address who) constant returns (uint);
    function allowance(address owner, address spender) constant returns (uint);

    function transfer(address to, uint value) returns (bool ok);
    function transferFrom(address from, address to, uint value) returns (bool ok);
    function approve(address spender, uint value) returns (bool ok);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}


/**
 * Math operations with safety checks
 */
contract SafeMath {
    function safeMul(uint a, uint b) internal returns (uint) {
        uint c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function safeDiv(uint a, uint b) internal returns (uint) {
        assert(b > 0);
        uint c = a / b;
        assert(a == b * c + a % b);
        return c;
    }

    function safeSub(uint a, uint b) internal returns (uint) {
        assert(b <= a);
        return a - b;
    }

    function safeAdd(uint a, uint b) internal returns (uint) {
        uint c = a + b;
        assert(c >= a && c >= b);
        return c;
    }

    function max64(uint64 a, uint64 b) internal constant returns (uint64) {
        return a >= b ? a : b;
    }

    function min64(uint64 a, uint64 b) internal constant returns (uint64) {
        return a < b ? a : b;
    }

    function max256(uint256 a, uint256 b) internal constant returns (uint256) {
        return a >= b ? a : b;
    }

    function min256(uint256 a, uint256 b) internal constant returns (uint256) {
        return a < b ? a : b;
    }

    function assert(bool assertion) internal {
        if (!assertion) {
            throw;
        }
    }

}

/**
 * Owned contract
 */
contract Owned {
    address[] public pools;
    address public owner;

    function Owned() {
        owner = msg.sender;
        pools.push(msg.sender);
    }

    modifier onlyPool {
        require(isPool(msg.sender));
        _;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }
    
    /// add new pool address to pools
    function addPool(address newPool) onlyOwner {
        assert (newPool != 0);
        if (isPool(newPool)) throw;
        pools.push(newPool);
    }
    
    /// remove a address from pools
    function removePool(address pool) onlyOwner{
        assert (pool != 0);
        if (!isPool(pool)) throw;
        
        for (uint i=0; i<pools.length - 1; i++) {
            if (pools[i] == pool) {
                pools[i] = pools[pools.length - 1];
                break;
            }
        }
        pools.length -= 1;
    }

    function isPool(address pool) internal returns (bool ok){
        for (uint i=0; i<pools.length; i++) {
            if (pools[i] == pool)
                return true;
        }
        return false;
    }
    
    function transferOwnership(address newOwner) onlyOwner public {
        removePool(owner);
        addPool(newOwner);
        owner = newOwner;
    }
}

/**
 * BP crowdsale contract
*/
contract BPToken is SafeMath, Owned, ERC20 {
    string public constant name = "Backpack Token";
    string public constant symbol = "BP";
    uint256 public constant decimals = 18;  

    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;

    function BPToken() {
        totalSupply = 2000000000 * 10 ** uint256(decimals);
        balances[msg.sender] = totalSupply;
    }

    /// asset pool map
    mapping (address => address) addressPool;

    /// address base amount
    mapping (address => uint256) addressAmount;

    /// per month seconds
    uint perMonthSecond = 2592000;
    
    /// calc the balance that the user shuold hold
    function shouldHadBalance(address who) constant returns (uint256){
        if (isPool(who)) return 0;

        address apAddress = getAssetPoolAddress(who);
        uint256 baseAmount  = getBaseAmount(who);

        /// Does not belong to AssetPool contract
        if( (apAddress == address(0)) || (baseAmount == 0) ) return 0;

        /// Instantiate ap contract
        AssetPool ap = AssetPool(apAddress);

        uint startLockTime = ap.getStartLockTime();
        uint stopLockTime = ap.getStopLockTime();

        if (block.timestamp > stopLockTime) {
            return 0;
        }

        if (ap.getBaseLockPercent() == 0) {
            return 0;
        }

        // base lock amount 
        uint256 baseLockAmount = safeDiv(safeMul(baseAmount, ap.getBaseLockPercent()),100);
        if (block.timestamp < startLockTime) {
            return baseLockAmount;
        }
        
        /// will not linear release
        if (ap.getLinearRelease() == 0) {
            if (block.timestamp < stopLockTime) {
                return baseLockAmount;
            } else {
                return 0;
            }
        }
        /// will linear release 

        /// now timestamp before start lock time 
        if (block.timestamp < startLockTime + perMonthSecond) {
            return baseLockAmount;
        }
        // total lock months
        uint lockMonth = safeDiv(safeSub(stopLockTime,startLockTime),perMonthSecond);
        if (lockMonth <= 0) {
            if (block.timestamp >= stopLockTime) {
                return 0;
            } else {
                return baseLockAmount;
            }
        }

        // unlock amount of every month
        uint256 monthUnlockAmount = safeDiv(baseLockAmount,lockMonth);

        // current timestamp passed month 
        uint hadPassMonth = safeDiv(safeSub(block.timestamp,startLockTime),perMonthSecond);

        return safeSub(baseLockAmount,safeMul(hadPassMonth,monthUnlockAmount));
    }

    function getAssetPoolAddress(address who) internal returns(address){
        return addressPool[who];
    }

    function getBaseAmount(address who) internal returns(uint256){
        return addressAmount[who];
    }

    function getBalance() constant returns(uint){
        return balances[msg.sender];
    }

    function setPoolAndAmount(address who, uint256 amount) onlyPool returns (bool) {
        assert(balances[msg.sender] >= amount);

        if (owner == who) {
            return true;
        }
        
        address apAddress = getAssetPoolAddress(who);
        uint256 baseAmount = getBaseAmount(who);

        assert((apAddress == msg.sender) || (baseAmount == 0));

        addressPool[who] = msg.sender;
        addressAmount[who] += amount;

        return true;
    }

    /// get balance of the special address
    function balanceOf(address who) constant returns (uint) {
        return balances[who];
    }

    /// @notice Transfer `value` BP tokens from sender's account
    /// `msg.sender` to provided account address `to`.
    /// @notice This function is disabled during the funding.
    /// @dev Required state: Success
    /// @param to The address of the recipient
    /// @param value The number of BPs to transfer
    /// @return Whether the transfer was successful or not
    function transfer(address to, uint256 value) returns (bool) {
        if (safeSub(balances[msg.sender],value) < shouldHadBalance(msg.sender)) throw;

        uint256 senderBalance = balances[msg.sender];
        if (senderBalance >= value && value > 0) {
            senderBalance = safeSub(senderBalance, value);
            balances[msg.sender] = senderBalance;
            balances[to] = safeAdd(balances[to], value);
            Transfer(msg.sender, to, value);
            return true;
        } else {
            throw;
        }
    }

    /// @notice Transfer `value` BP tokens from sender 'from'
    /// to provided account address `to`.
    /// @notice This function is disabled during the funding.
    /// @dev Required state: Success
    /// @param from The address of the sender
    /// @param to The address of the recipient
    /// @param value The number of BPs to transfer
    /// @return Whether the transfer was successful or not
    function transferFrom(address from, address to, uint256 value) returns (bool) {
        // Abort if not in Success state.
        // protect against wrapping uints
        if (balances[from] >= value &&
        allowed[from][msg.sender] >= value &&
        safeAdd(balances[to], value) > balances[to])
        {
            balances[to] = safeAdd(balances[to], value);
            balances[from] = safeSub(balances[from], value);
            allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], value);
            Transfer(from, to, value);
            return true;
        } else {
            throw;
        }
    }

    /// @notice `msg.sender` approves `spender` to spend `value` tokens
    /// @param spender The address of the account able to transfer the tokens
    /// @param value The amount of wei to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address spender, uint256 value) returns (bool) {
        if (safeSub(balances[msg.sender],value) < shouldHadBalance(msg.sender)) throw;
        
        // Abort if not in Success state.
        allowed[msg.sender][spender] = value;
        Approval(msg.sender, spender, value);
        return true;
    }

    /// @param owner The address of the account owning tokens
    /// @param spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address owner, address spender) constant returns (uint) {
        uint allow = allowed[owner][spender];
        return allow;
    }
}



contract ownedPool {
    address public owner;

    function ownedPool() public {
        owner = msg.sender;
    }

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

    function transferOwnership(address newOwner) onlyOwner public {
        owner = newOwner;
    }
}

/**
 * Asset pool contract
*/
contract AssetPool is ownedPool {
    uint  baseLockPercent;
    uint  startLockTime;
    uint  stopLockTime;
    uint  linearRelease;
    address public bpTokenAddress;

    BPToken bp;

    function AssetPool(address _bpTokenAddress, uint _baseLockPercent, uint _startLockTime, uint _stopLockTime, uint _linearRelease) {
        assert(_stopLockTime > _startLockTime);
        
        baseLockPercent = _baseLockPercent;
        startLockTime = _startLockTime;
        stopLockTime = _stopLockTime;
        linearRelease = _linearRelease;

        bpTokenAddress = _bpTokenAddress;
        bp = BPToken(bpTokenAddress);

        owner = msg.sender;
    }
    
    /// set role value
    function setRule(uint _baseLockPercent, uint _startLockTime, uint _stopLockTime, uint _linearRelease) onlyOwner {
        assert(_stopLockTime > _startLockTime);
       
        baseLockPercent = _baseLockPercent;
        startLockTime = _startLockTime;
        stopLockTime = _stopLockTime;
        linearRelease = _linearRelease;
    }

    /// set bp token contract address
    // function setBpToken(address _bpTokenAddress) onlyOwner {
    //     bpTokenAddress = _bpTokenAddress;
    //     bp = BPToken(bpTokenAddress);
    // }
    
    /// assign BP token to another address
    function assign(address to, uint256 amount) onlyOwner returns (bool) {
        if (bp.setPoolAndAmount(to,amount)) {
            if (bp.transfer(to,amount)) {
                return true;
            }
        }
        return false;
    }

    /// get the balance of current asset pool
    function getPoolBalance() constant returns (uint) {
        return bp.getBalance();
    }
    
    function getStartLockTime() constant returns (uint) {
        return startLockTime;
    }
    
    function getStopLockTime() constant returns (uint) {
        return stopLockTime;
    }
    
    function getBaseLockPercent() constant returns (uint) {
        return baseLockPercent;
    }
    
    function getLinearRelease() constant returns (uint) {
        return linearRelease;
    }
}

Contract Security Audit

Contract ABI

[{"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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"who","type":"address"},{"name":"amount","type":"uint256"}],"name":"setPoolAndAmount","outputs":[{"name":"","type":"bool"}],"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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pool","type":"address"}],"name":"removePool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"pools","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPool","type":"address"}],"name":"addPool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"shouldHadBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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"}]

606060405262278d0060075534156200001757600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600080548060010182816200006e91906200011a565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506012600a0a637735940002600281905550600254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000171565b815481835581811511620001445781836000526020600020918201910162000143919062000149565b5b505050565b6200016e91905b808211156200016a57600081600090555060010162000150565b5090565b90565b611c2580620001816000396000f3006060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100f6578063095ea7b31461018457806312065fe0146101de57806314b116511461020757806318160ddd1461026157806323b872dd1461028a578063313ce567146103035780633b7d09461461032c57806370a08231146103655780638da5cb5b146103b257806395d89b4114610407578063a9059cbb14610495578063ac4afa38146104ef578063d914cd4b14610552578063d9a4ad8b1461058b578063dd62ed3e146105d8578063f2fde38b14610644575b600080fd5b341561010157600080fd5b61010961067d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018f57600080fd5b6101c4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106b6565b604051808215151515815260200191505060405180910390f35b34156101e957600080fd5b6101f1610805565b6040518082815260200191505060405180910390f35b341561021257600080fd5b610247600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061084c565b604051808215151515815260200191505060405180910390f35b341561026c57600080fd5b610274610a3f565b6040518082815260200191505060405180910390f35b341561029557600080fd5b6102e9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a45565b604051808215151515815260200191505060405180910390f35b341561030e57600080fd5b610316610e41565b6040518082815260200191505060405180910390f35b341561033757600080fd5b610363600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e46565b005b341561037057600080fd5b61039c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611028565b6040518082815260200191505060405180910390f35b34156103bd57600080fd5b6103c5611071565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561041257600080fd5b61041a611097565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045a57808201518184015260208101905061043f565b50505050905090810190601f1680156104875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104a057600080fd5b6104d5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110d0565b604051808215151515815260200191505060405180910390f35b34156104fa57600080fd5b61051060048080359060200190919050506112dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561055d57600080fd5b610589600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061131c565b005b341561059657600080fd5b6105c2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611414565b6040518082815260200191505060405180910390f35b34156105e357600080fd5b61062e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611800565b6040518082815260200191505060405180910390f35b341561064f57600080fd5b61067b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061188c565b005b6040805190810160405280600e81526020017f4261636b7061636b20546f6b656e00000000000000000000000000000000000081525081565b60006106c133611414565b61070a600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611960565b101561071557600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600080600061085a33611979565b151561086557600080fd5b6108b084600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a1d565b8473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561090f5760019250610a37565b61091885611a2c565b915061092385611a95565b90506109673373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806109625750600082145b611a1d565b33600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600192505b505092915050565b60025481565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610b12575081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015610ba45750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ba2600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611ade565b115b15610e3557610bf2600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611ade565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c7e600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611960565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d47600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611960565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610e3a565b600080fd5b9392505050565b601281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ea457600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515610ec757fe5b610ed082611979565b1515610edb57600080fd5b600090505b60016000805490500381101561100b578173ffffffffffffffffffffffffffffffffffffffff16600082815481101515610f1657fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610ffe576000600160008054905003815481101515610f7557fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600082815481101515610fb057fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061100b565b8080600101915050610ee0565b60016000818180549050039150816110239190611b7c565b505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600281526020017f425000000000000000000000000000000000000000000000000000000000000081525081565b6000806110dc33611414565b611125600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485611960565b101561113057600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101580156111825750600083115b156112d1576111918184611960565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611220600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611ade565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506112d6565b600080fd5b5092915050565b6000818154811015156112ec57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561139b57fe5b6113a481611979565b156113ae57600080fd5b600080548060010182816113c29190611ba8565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008060008060008060008060008061142c8b611979565b1561143a57600099506117f2565b6114438b611a2c565b985061144e8b611a95565b9750600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16148061148b5750600088145b1561149957600099506117f2565b8896508673ffffffffffffffffffffffffffffffffffffffff1663a24247f16040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156114ff57600080fd5b5af1151561150c57600080fd5b5050506040518051905095508673ffffffffffffffffffffffffffffffffffffffff16636b27909d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561157b57600080fd5b5af1151561158857600080fd5b505050604051805190509450844211156115a557600099506117f2565b60008773ffffffffffffffffffffffffffffffffffffffff16639fb8dd1a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561160a57600080fd5b5af1151561161757600080fd5b50505060405180519050141561163057600099506117f2565b6116bd6116b6898973ffffffffffffffffffffffffffffffffffffffff16639fb8dd1a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561169a57600080fd5b5af115156116a757600080fd5b50505060405180519050611b08565b6064611b3b565b9350854210156116cf578399506117f2565b60008773ffffffffffffffffffffffffffffffffffffffff166382351b436040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561173457600080fd5b5af1151561174157600080fd5b50505060405180519050141561176a5784421015611761578399506117f2565b600099506117f2565b600754860142101561177e578399506117f2565b61179361178b8688611960565b600754611b3b565b92506000831115156117b95784421015156117b157600099506117f2565b8399506117f2565b6117c38484611b3b565b91506117da6117d24288611960565b600754611b3b565b90506117ef846117ea8385611b08565b611960565b99505b505050505050505050919050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118e857600080fd5b611913600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e46565b61191c8161131c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061196e83831115611a1d565b818303905092915050565b600080600090505b600080549050811015611a12578273ffffffffffffffffffffffffffffffffffffffff166000828154811015156119b457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a055760019150611a17565b8080600101915050611981565b600091505b50919050565b801515611a2957600080fd5b50565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000808284019050611afe848210158015611af95750838210155b611a1d565b8091505092915050565b6000808284029050611b316000851480611b2c5750838583811515611b2957fe5b04145b611a1d565b8091505092915050565b600080611b4a60008411611a1d565b8284811515611b5557fe5b049050611b728385811515611b6657fe5b06828502018514611a1d565b8091505092915050565b815481835581811511611ba357818360005260206000209182019101611ba29190611bd4565b5b505050565b815481835581811511611bcf57818360005260206000209182019101611bce9190611bd4565b5b505050565b611bf691905b80821115611bf2576000816000905550600101611bda565b5090565b905600a165627a7a723058200bb19593604693e4d77088b98e9682fc99e097a27c82c87a51a01e66e1bb21f20029

Deployed Bytecode

0x6060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100f6578063095ea7b31461018457806312065fe0146101de57806314b116511461020757806318160ddd1461026157806323b872dd1461028a578063313ce567146103035780633b7d09461461032c57806370a08231146103655780638da5cb5b146103b257806395d89b4114610407578063a9059cbb14610495578063ac4afa38146104ef578063d914cd4b14610552578063d9a4ad8b1461058b578063dd62ed3e146105d8578063f2fde38b14610644575b600080fd5b341561010157600080fd5b61010961067d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018f57600080fd5b6101c4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106b6565b604051808215151515815260200191505060405180910390f35b34156101e957600080fd5b6101f1610805565b6040518082815260200191505060405180910390f35b341561021257600080fd5b610247600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061084c565b604051808215151515815260200191505060405180910390f35b341561026c57600080fd5b610274610a3f565b6040518082815260200191505060405180910390f35b341561029557600080fd5b6102e9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a45565b604051808215151515815260200191505060405180910390f35b341561030e57600080fd5b610316610e41565b6040518082815260200191505060405180910390f35b341561033757600080fd5b610363600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e46565b005b341561037057600080fd5b61039c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611028565b6040518082815260200191505060405180910390f35b34156103bd57600080fd5b6103c5611071565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561041257600080fd5b61041a611097565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045a57808201518184015260208101905061043f565b50505050905090810190601f1680156104875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104a057600080fd5b6104d5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110d0565b604051808215151515815260200191505060405180910390f35b34156104fa57600080fd5b61051060048080359060200190919050506112dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561055d57600080fd5b610589600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061131c565b005b341561059657600080fd5b6105c2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611414565b6040518082815260200191505060405180910390f35b34156105e357600080fd5b61062e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611800565b6040518082815260200191505060405180910390f35b341561064f57600080fd5b61067b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061188c565b005b6040805190810160405280600e81526020017f4261636b7061636b20546f6b656e00000000000000000000000000000000000081525081565b60006106c133611414565b61070a600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611960565b101561071557600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600080600061085a33611979565b151561086557600080fd5b6108b084600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a1d565b8473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561090f5760019250610a37565b61091885611a2c565b915061092385611a95565b90506109673373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806109625750600082145b611a1d565b33600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600192505b505092915050565b60025481565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610b12575081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015610ba45750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ba2600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611ade565b115b15610e3557610bf2600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611ade565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c7e600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611960565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d47600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611960565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610e3a565b600080fd5b9392505050565b601281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ea457600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515610ec757fe5b610ed082611979565b1515610edb57600080fd5b600090505b60016000805490500381101561100b578173ffffffffffffffffffffffffffffffffffffffff16600082815481101515610f1657fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610ffe576000600160008054905003815481101515610f7557fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600082815481101515610fb057fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061100b565b8080600101915050610ee0565b60016000818180549050039150816110239190611b7c565b505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600281526020017f425000000000000000000000000000000000000000000000000000000000000081525081565b6000806110dc33611414565b611125600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485611960565b101561113057600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101580156111825750600083115b156112d1576111918184611960565b905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611220600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611ade565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506112d6565b600080fd5b5092915050565b6000818154811015156112ec57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561139b57fe5b6113a481611979565b156113ae57600080fd5b600080548060010182816113c29190611ba8565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008060008060008060008060008061142c8b611979565b1561143a57600099506117f2565b6114438b611a2c565b985061144e8b611a95565b9750600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16148061148b5750600088145b1561149957600099506117f2565b8896508673ffffffffffffffffffffffffffffffffffffffff1663a24247f16040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156114ff57600080fd5b5af1151561150c57600080fd5b5050506040518051905095508673ffffffffffffffffffffffffffffffffffffffff16636b27909d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561157b57600080fd5b5af1151561158857600080fd5b505050604051805190509450844211156115a557600099506117f2565b60008773ffffffffffffffffffffffffffffffffffffffff16639fb8dd1a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561160a57600080fd5b5af1151561161757600080fd5b50505060405180519050141561163057600099506117f2565b6116bd6116b6898973ffffffffffffffffffffffffffffffffffffffff16639fb8dd1a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561169a57600080fd5b5af115156116a757600080fd5b50505060405180519050611b08565b6064611b3b565b9350854210156116cf578399506117f2565b60008773ffffffffffffffffffffffffffffffffffffffff166382351b436040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561173457600080fd5b5af1151561174157600080fd5b50505060405180519050141561176a5784421015611761578399506117f2565b600099506117f2565b600754860142101561177e578399506117f2565b61179361178b8688611960565b600754611b3b565b92506000831115156117b95784421015156117b157600099506117f2565b8399506117f2565b6117c38484611b3b565b91506117da6117d24288611960565b600754611b3b565b90506117ef846117ea8385611b08565b611960565b99505b505050505050505050919050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508091505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118e857600080fd5b611913600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e46565b61191c8161131c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061196e83831115611a1d565b818303905092915050565b600080600090505b600080549050811015611a12578273ffffffffffffffffffffffffffffffffffffffff166000828154811015156119b457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a055760019150611a17565b8080600101915050611981565b600091505b50919050565b801515611a2957600080fd5b50565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000808284019050611afe848210158015611af95750838210155b611a1d565b8091505092915050565b6000808284029050611b316000851480611b2c5750838583811515611b2957fe5b04145b611a1d565b8091505092915050565b600080611b4a60008411611a1d565b8284811515611b5557fe5b049050611b728385811515611b6657fe5b06828502018514611a1d565b8091505092915050565b815481835581811511611ba357818360005260206000209182019101611ba29190611bd4565b5b505050565b815481835581811511611bcf57818360005260206000209182019101611bce9190611bd4565b5b505050565b611bf691905b80821115611bf2576000816000905550600101611bda565b5090565b905600a165627a7a723058200bb19593604693e4d77088b98e9682fc99e097a27c82c87a51a01e66e1bb21f20029

Swarm Source

bzzr://0bb19593604693e4d77088b98e9682fc99e097a27c82c87a51a01e66e1bb21f2

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.