ETH Price: $2,713.79 (+5.44%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer99176182020-04-21 19:08:061749 days ago1587496086IN
0xbCd7964E...a45039857
0 ETH0.000087712
Transfer98833622020-04-16 11:58:401754 days ago1587038320IN
0xbCd7964E...a45039857
0 ETH0.000916710
Transfer98668332020-04-13 22:49:521757 days ago1586818192IN
0xbCd7964E...a45039857
0 ETH0.000043851
Transfer98621722020-04-13 5:34:311758 days ago1586756071IN
0xbCd7964E...a45039857
0 ETH0.000043851
Transfer97401242020-03-25 11:12:281776 days ago1585134748IN
0xbCd7964E...a45039857
0 ETH0.0010107411
Transfer96069302020-03-04 20:41:311797 days ago1583354491IN
0xbCd7964E...a45039857
0 ETH0.000043851
Transfer95807652020-02-29 20:10:511801 days ago1583007051IN
0xbCd7964E...a45039857
0 ETH0.000091881
Transfer94345942020-02-07 8:47:121824 days ago1581065232IN
0xbCd7964E...a45039857
0 ETH0.0011606710
Transfer92677902020-01-12 18:40:091849 days ago1578854409IN
0xbCd7964E...a45039857
0 ETH0.000091881
Transfer92537362020-01-10 15:00:591851 days ago1578668459IN
0xbCd7964E...a45039857
0 ETH0.00104469
Transfer92515592020-01-10 6:59:571852 days ago1578639597IN
0xbCd7964E...a45039857
0 ETH00
Transfer92514032020-01-10 6:24:421852 days ago1578637482IN
0xbCd7964E...a45039857
0 ETH00
Transfer92491642020-01-09 22:17:111852 days ago1578608231IN
0xbCd7964E...a45039857
0 ETH00
Transfer92491642020-01-09 22:17:111852 days ago1578608231IN
0xbCd7964E...a45039857
0 ETH00
Transfer92491142020-01-09 22:07:281852 days ago1578607648IN
0xbCd7964E...a45039857
0 ETH00
Transfer92491142020-01-09 22:07:281852 days ago1578607648IN
0xbCd7964E...a45039857
0 ETH00
Transfer92483242020-01-09 19:10:151852 days ago1578597015IN
0xbCd7964E...a45039857
0 ETH00
Transfer92482212020-01-09 18:45:321852 days ago1578595532IN
0xbCd7964E...a45039857
0 ETH00
Transfer92482212020-01-09 18:45:321852 days ago1578595532IN
0xbCd7964E...a45039857
0 ETH00
Transfer92481812020-01-09 18:38:201852 days ago1578595100IN
0xbCd7964E...a45039857
0 ETH00
Transfer92470602020-01-09 14:37:381852 days ago1578580658IN
0xbCd7964E...a45039857
0 ETH00
Transfer92443532020-01-09 4:32:581853 days ago1578544378IN
0xbCd7964E...a45039857
0 ETH00
Transfer92443532020-01-09 4:32:581853 days ago1578544378IN
0xbCd7964E...a45039857
0 ETH00
Transfer92428452020-01-08 22:58:361853 days ago1578524316IN
0xbCd7964E...a45039857
0 ETH00
Transfer92361322020-01-07 22:09:391854 days ago1578434979IN
0xbCd7964E...a45039857
0 ETH00
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
68791202018-12-13 13:02:142244 days ago1544706134  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x0b87BDF9...16A2C7cf8
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
managedToken

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-12-13
*/

pragma solidity ^0.4.25;

// Project: token ALE, http://alehub.io
// v1, 2018-12-13
// Full compatibility with ERC20.
// Token with special add. properties: division into privileged (default, for all) and usual tokens (for team).

// Authors: Ivan Fedorov and Dmitry Borodin (CryptoB2B)
// Copying in whole or in part is prohibited.
// This code is the property of CryptoB2B.io

contract IRightAndRoles {
    address[][] public wallets;
    mapping(address => uint16) public roles;

    event WalletChanged(address indexed newWallet, address indexed oldWallet, uint8 indexed role);
    event CloneChanged(address indexed wallet, uint8 indexed role, bool indexed mod);

    function changeWallet(address _wallet, uint8 _role) external;
    function onlyRoles(address _sender, uint16 _roleMask) view external returns(bool);
}

contract RightAndRoles is IRightAndRoles {
    constructor (address[] _roles) public {
        uint8 len = uint8(_roles.length);
        require(len > 0 &&len <16);
        wallets.length = len;

        for(uint8 i = 0; i < len; i++){
            wallets[i].push(_roles[i]);
            roles[_roles[i]] += uint16(2)**i;
            emit WalletChanged(_roles[i], address(0),i);
        }
        
    }

    function changeClons(address _clon, uint8 _role, bool _mod) external {
        require(wallets[_role][0] == msg.sender&&_clon != msg.sender);
        emit CloneChanged(_clon,_role,_mod);
        uint16 roleMask = uint16(2)**_role;
        if(_mod){
            require(roles[_clon]&roleMask == 0);
            wallets[_role].push(_clon);
        }else{
            address[] storage tmp = wallets[_role];
            uint8 i = 1;
            for(i; i < tmp.length; i++){
                if(tmp[i] == _clon) break;
            }
            require(i > tmp.length);
            tmp[i] = tmp[tmp.length];
            delete tmp[tmp.length];
        }
        roles[_clon] = _mod?roles[_clon]|roleMask:roles[_clon]&~roleMask;
    }

    function changeWallet(address _wallet, uint8 _role) external {
        require(wallets[_role][0] == msg.sender || wallets[0][0] == msg.sender || (wallets[2][0] == msg.sender && _role == 0));
        emit WalletChanged(wallets[_role][0],_wallet,_role);
        uint16 roleMask = uint16(2)**_role;
        address[] storage tmp = wallets[_role];
        for(uint8 i = 0; i < tmp.length; i++){
            roles[tmp[i]] = roles[tmp[i]]&~roleMask;
        }
        delete  wallets[_role];
        tmp.push(_wallet);
        roles[_wallet] = roles[_wallet]|roleMask;
    }

    function onlyRoles(address _sender, uint16 _roleMask) view external returns(bool) {
        return roles[_sender]&_roleMask != 0;
    }

    function getMainWallets() view external returns(address[]){
        address[] memory _wallets = new address[](wallets.length);
        for(uint8 i = 0; i<wallets.length; i++){
            _wallets[i] = wallets[i][0];
        }
        return _wallets;
    }

    function getCloneWallets(uint8 _role) view external returns(address[]){
        return wallets[_role];
    }
}



contract GuidedByRoles {
    IRightAndRoles public rightAndRoles;
    constructor(IRightAndRoles _rightAndRoles) public {
        rightAndRoles = _rightAndRoles;
    }
}

contract BaseIterableDubleToken{
    
    uint8 public withdrawPriority;
    uint8 public mixedType;
    
    uint256[2] public supply = [0,0];
    
    struct Item {
        uint256 index;
        uint256 value;
    }
    
    address[][] items = [[address(0)],[address(0)]];
    
    mapping (uint8 => mapping (address => Item)) balances;
    
    mapping (address => mapping (address => uint256)) allowed;
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    
    event Mint(address indexed to, uint256 value);
    
    event Burn(address indexed from, uint256 value);
    
    event Approval(address indexed owner, address indexed spender, uint256 value);
    
    event changeBalance(uint8 indexed tokenType, address indexed owner, uint256 newValue);
    
    function totalSupply() view public returns(uint256){
        return supply[0] + supply[1];
    }
    
    function balanceOf(address _who) view public returns(uint256) {
        return getBalance(0,_who) + getBalance(1,_who);
    }
    
    function transfer(address _to, uint256 _value) public returns (bool){
        internalTransfer(msg.sender,_to,_value);
        return true;
    }
    
    function getBalance(uint8 _type ,address _addr) view public returns(uint256){
        return balances[_type][_addr].value;
    }
    
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return allowed[_owner][_spender];
    }
    
    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(allowed[_from][msg.sender] >= _value);
        
        allowed[_from][msg.sender] = allowed[_from][msg.sender] - _value;
        internalTransfer(_from, _to, _value);
        emit Approval(_from, msg.sender, allowed[_from][msg.sender]);
        return true;
    }
    
    function increaseAllowance(address _spender, uint256 _addedValue) public returns (bool) {
        uint256 _tmpAllowed = allowed[msg.sender][_spender] + _addedValue;
        require(_tmpAllowed >= _addedValue);

        allowed[msg.sender][_spender] = _tmpAllowed;
        emit Approval(msg.sender, _spender, _tmpAllowed);
        return true;
    }
    
    function decreaseAllowance(address _spender, uint256 _subtractedValue) public returns (bool) {
        require(allowed[msg.sender][_spender] >= _subtractedValue);
        
        allowed[msg.sender][_spender] -= _subtractedValue;
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
    
    function internalMint(uint8 _type, address _account, uint256 _value) internal {
        require(totalSupply() + _value >= _value);
        supply[_type] += _value;
        uint256 _tmpBalance = getBalance(_type,_account) + _value;
        emit Mint(_account,_value);
        setBalance(_type,_account,_tmpBalance);
    }
    
    function internalBurn(uint8 _type, address _account, uint256 _value) internal {
        uint256 _tmpBalance = getBalance(_type,_account);
        require(_tmpBalance >= _value);
        _tmpBalance -= _value;
        emit Burn(_account,_value);
        setBalance(_type,_account,_tmpBalance);
    }
    
    function setBalance(uint8 _type ,address _addr, uint256 _value) internal {
        address[] storage _items = items[_type];
        Item storage _item = balances[_type][_addr];
        if(_item.value == _value) return;
        emit changeBalance(_type, _addr, _value);
        if(_value == 0){
            uint256 _index = _item.index;
            delete balances[_type][_addr];
            _items[_index] = _items[items.length - 1];
            balances[_type][_items[_index]].index = _index;
            _items.length = _items.length - 1;
        }else{
            if(_item.value == 0){
               _item.index = _items.length; 
               _items.push(_addr);
            }
            _item.value = _value;
        }
    }
    
    function internalSend(uint8 _type, address _to, uint256 _value) internal {
        uint8 _tmpType = (mixedType > 1) ? mixedType - 2 : _type;
        uint256 _tmpBalance = getBalance(_tmpType,_to);
        require(mixedType != 1 || _tmpBalance > 0);
        if(_tmpType != _type){
            supply[_type] -= _value;
            supply[_tmpType] += _value;
        }
        setBalance(_tmpType,_to,_tmpBalance + _value);
    }
    
    function internalTransfer(address _from, address _to, uint256 _value) internal {
        require(balanceOf(_from) >= _value);
        emit Transfer(_from,_to,_value);
        uint8 _tmpType = withdrawPriority;
        uint256 _tmpValue = _value;
        uint256 _tmpBalance = getBalance(_tmpType,_from);
        if(_tmpBalance < _value){
            setBalance(_tmpType,_from,0);
            internalSend(_tmpType,_to,_tmpBalance);
            _tmpType = (_tmpType == 0) ? 1 : 0;
            _tmpValue = _tmpValue - _tmpBalance;
            _tmpBalance = getBalance(_tmpType,_from);
        }
        setBalance(_tmpType,_from,_tmpBalance - _tmpValue);
        internalSend(_tmpType,_to,_tmpValue);
    }
    
    function getBalancesList(uint8 _type) view external returns(address[] _addreses, uint256[] _values){
        require(_type < 3);
        address[] storage _items = items[_type];
        uint256 _length = _items.length - 1;
        _addreses = new address[](_length);
        _values = new uint256[](_length);
        for(uint256 i = 0; i < _length; i++){
            _addreses[i] = _items[i + 1];
            _values[i] = getBalance(_type,_items[i + 1]);
        }
    }
}

contract FreezingToken is BaseIterableDubleToken, GuidedByRoles {
    struct freeze {
    uint256 amount;
    uint256 when;
    }

    mapping (address => freeze) freezedTokens;
    
    constructor(IRightAndRoles _rightAndRoles) GuidedByRoles(_rightAndRoles) public {}

    function freezedTokenOf(address _beneficiary) public view returns (uint256 amount){
        freeze storage _freeze = freezedTokens[_beneficiary];
        if(_freeze.when < now) return 0;
        return _freeze.amount;
    }

    function defrostDate(address _beneficiary) public view returns (uint256 Date) {
        freeze storage _freeze = freezedTokens[_beneficiary];
        if(_freeze.when < now) return 0;
        return _freeze.when;
    }

    function masFreezedTokens(address[] _beneficiary, uint256[] _amount, uint256[] _when) public {
        require(rightAndRoles.onlyRoles(msg.sender,3));
        require(_beneficiary.length == _amount.length && _beneficiary.length == _when.length);
        for(uint16 i = 0; i < _beneficiary.length; i++){
            freeze storage _freeze = freezedTokens[_beneficiary[i]];
            _freeze.amount = _amount[i];
            _freeze.when = _when[i];
        }
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        require(balanceOf(msg.sender) >= freezedTokenOf(msg.sender) + _value);
        return super.transfer(_to,_value);
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(balanceOf(_from) >= freezedTokenOf(_from) + _value);
        return super.transferFrom( _from,_to,_value);
    }
}

contract managedToken is FreezingToken{
    uint256[2] public mintLimit = [101000000 ether, 9000000 ether]; // privileged, usual (total hardcap = 110M tokens)
    uint256[2] public totalMint = [0,0];
    string public constant name = "ALE";
    string public constant symbol = "ALE";
    uint8 public constant decimals = 18;
    
    constructor(IRightAndRoles _rightAndRoles) FreezingToken(_rightAndRoles) public {}
    
    function internalMint(uint8 _type, address _account, uint256 _value) internal {
        totalMint[_type] += _value;
        require(totalMint[_type] <= mintLimit[_type]);
        super.internalMint(_type,_account,_value);
    }
    // _withdrawPriority 
    // first use when sending:
    // 0 - privileged
    // 1 - usual
    // _mixedType
    // 0 - mixing enabled
    // 1 - mixing disabled
    // 2 - mixing disabled, forced conversion into privileged
    // 3 - mixing disabled, forced conversion into usual
    function setup(uint8 _withdrawPriority, uint8 _mixedType) public {
        require(rightAndRoles.onlyRoles(msg.sender,3));
        require(_withdrawPriority < 2 && _mixedType < 4);
        mixedType = _mixedType;
        withdrawPriority = _withdrawPriority;
    }
    function massMint(uint8[] _types, address[] _addreses, uint256[] _values) public {
        require(rightAndRoles.onlyRoles(msg.sender,3));
        require(_types.length == _addreses.length && _addreses.length == _values.length);
        for(uint256 i = 0; i < _types.length; i++){
            internalMint(_types[i], _addreses[i], _values[i]);
        }
    }
    function massBurn(uint8[] _types, address[] _addreses, uint256[] _values) public {
        require(rightAndRoles.onlyRoles(msg.sender,3));
        require(_types.length == _addreses.length && _addreses.length == _values.length);
        for(uint256 i = 0; i < _types.length; i++){
            internalBurn(_types[i], _addreses[i], _values[i]);
        }
    }
    
    function distribution(uint8 _type, address[] _addresses, uint256[] _values, uint256[] _when) public {
        require(rightAndRoles.onlyRoles(msg.sender,3));
        require(_addresses.length == _values.length && _values.length == _when.length);
        uint256 sumValue = 0;
        for(uint256 i = 0; i < _addresses.length; i++){
            sumValue += _values[i]; 
            uint256 _value = getBalance(_type,_addresses[i]) + _values[i];
            setBalance(_type,_addresses[i],_value);
            emit Transfer(msg.sender, _addresses[i], _values[i]);
            if(_when[i] > 0){
                _value = balanceOf(_addresses[i]);
                freeze storage _freeze = freezedTokens[_addresses[i]];
                _freeze.amount = _value;
                _freeze.when = _when[i];
            }
        }
        uint256 _balance = getBalance(_type, msg.sender);
        require(_balance >= sumValue);
        setBalance(_type,msg.sender,_balance-sumValue);
    }
}



contract Creator{

    IRightAndRoles public rightAndRoles;
    managedToken public token;

    constructor() public{
        address[] memory tmp = new address[](3);
        tmp[0] = address(this);
        tmp[1] = msg.sender;
        tmp[2] = 0x19557B8beb5cC065fe001dc466b3642b747DA62B;

        rightAndRoles = new RightAndRoles(tmp);

        token=new managedToken(rightAndRoles);
    }

}

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":"_beneficiary","type":"address"}],"name":"freezedTokenOf","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_type","type":"uint8"},{"name":"_addr","type":"address"}],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address[]"},{"name":"_amount","type":"uint256[]"},{"name":"_when","type":"uint256[]"}],"name":"masFreezedTokens","outputs":[],"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":"","type":"uint256"}],"name":"supply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_types","type":"uint8[]"},{"name":"_addreses","type":"address[]"},{"name":"_values","type":"uint256[]"}],"name":"massMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"defrostDate","outputs":[{"name":"Date","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rightAndRoles","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"},{"name":"_addresses","type":"address[]"},{"name":"_values","type":"uint256[]"},{"name":"_when","type":"uint256[]"}],"name":"distribution","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":"withdrawPriority","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_types","type":"uint8[]"},{"name":"_addreses","type":"address[]"},{"name":"_values","type":"uint256[]"}],"name":"massBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"totalMint","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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","type":"uint8"}],"name":"getBalancesList","outputs":[{"name":"_addreses","type":"address[]"},{"name":"_values","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mixedType","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_withdrawPriority","type":"uint8"},{"name":"_mixedType","type":"uint8"}],"name":"setup","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":true,"inputs":[{"name":"","type":"uint256"}],"name":"mintLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_rightAndRoles","type":"address"}],"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":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"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":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenType","type":"uint8"},{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"newValue","type":"uint256"}],"name":"changeBalance","type":"event"}]

Deployed Bytecode

0x6080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610158578063095ea7b3146101e257806311cfb19d1461021a57806318160ddd1461024d57806323b872dd14610262578063246452541461028c57806324db1f50146102b3578063313ce5671461037c57806335403023146103a757806339509351146103bf578063461c89b3146103e357806350bb117a146104aa57806361cdd2dc146104cb5780636689e28b146104fc57806370a08231146105cb5780637251beba146105ec578063884a26da1461060157806395d89b41146101585780639dafa3e3146106c8578063a457c2d7146106e0578063a9059cbb14610704578063b0de0c4014610728578063c8d2c729146107dc578063d39ebe2c146107f1578063dd62ed3e14610812578063e521aa9414610839575b600080fd5b34801561016457600080fd5b5061016d610851565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a757818101518382015260200161018f565b50505050905090810190601f1680156101d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ee57600080fd5b50610206600160a060020a0360043516602435610888565b604080519115158252519081900360200190f35b34801561022657600080fd5b5061023b600160a060020a03600435166108dc565b60408051918252519081900360200190f35b34801561025957600080fd5b5061023b610914565b34801561026e57600080fd5b50610206600160a060020a036004358116906024351660443561091f565b34801561029857600080fd5b5061023b60ff60043516600160a060020a0360243516610953565b3480156102bf57600080fd5b506040805160206004803580820135838102808601850190965280855261037a95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506109839650505050505050565b005b34801561038857600080fd5b50610391610adc565b6040805160ff9092168252519081900360200190f35b3480156103b357600080fd5b5061023b600435610ae1565b3480156103cb57600080fd5b50610206600160a060020a0360043516602435610af5565b3480156103ef57600080fd5b506040805160206004803580820135838102808601850190965280855261037a95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610b7e9650505050505050565b3480156104b657600080fd5b5061023b600160a060020a0360043516610c93565b3480156104d757600080fd5b506104e0610cca565b60408051600160a060020a039092168252519081900360200190f35b34801561050857600080fd5b5060408051602060046024803582810135848102808701860190975280865261037a96843560ff1696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610cd99650505050505050565b3480156105d757600080fd5b5061023b600160a060020a0360043516610f69565b3480156105f857600080fd5b50610391610f88565b34801561060d57600080fd5b506040805160206004803580820135838102808601850190965280855261037a95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610f919650505050505050565b3480156106d457600080fd5b5061023b6004356110a0565b3480156106ec57600080fd5b50610206600160a060020a03600435166024356110ad565b34801561071057600080fd5b50610206600160a060020a0360043516602435611138565b34801561073457600080fd5b5061074360ff6004351661116a565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561078757818101518382015260200161076f565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156107c65781810151838201526020016107ae565b5050505090500194505050505060405180910390f35b3480156107e857600080fd5b506103916112b6565b3480156107fd57600080fd5b5061037a60ff600435811690602435166112c4565b34801561081e57600080fd5b5061023b600160a060020a0360043581169060243516611396565b34801561084557600080fd5b5061023b6004356113c1565b60408051808201909152600381527f414c450000000000000000000000000000000000000000000000000000000000602082015281565b336000818152600560209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390926000805160206119af833981519152928290030190a350600192915050565b600160a060020a03811660009081526007602052604081206001810154421115610909576000915061090e565b805491505b50919050565b600254600154015b90565b60008161092b856108dc565b0161093585610f69565b101561094057600080fd5b61094b8484846113ce565b949350505050565b60ff82166000908152600460209081526040808320600160a060020a038516845290915290206001015492915050565b6006546040805160e160020a6358bc917b0281523360048201526003602482015290516000928392600160a060020a039091169163b17922f69160448082019260209290919082900301818787803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d6020811015610a0857600080fd5b50511515610a1557600080fd5b83518551148015610a27575082518551145b1515610a3257600080fd5b600091505b84518261ffff161015610ad55760076000868461ffff16815181101515610a5a57fe5b90602001906020020151600160a060020a0316600160a060020a031681526020019081526020016000209050838261ffff16815181101515610a9857fe5b6020908102909101015181558251839061ffff8416908110610ab657fe5b9060200190602002015181600101819055508180600101925050610a37565b5050505050565b601281565b60018160028110610aee57fe5b0154905081565b336000908152600560209081526040808320600160a060020a0386168452909152812054820182811015610b2857600080fd5b336000818152600560209081526040808320600160a060020a03891680855290835292819020859055805185815290519293926000805160206119af833981519152929181900390910190a35060019392505050565b6006546040805160e160020a6358bc917b028152336004820152600360248201529051600092600160a060020a03169163b17922f691604480830192602092919082900301818787803b158015610bd457600080fd5b505af1158015610be8573d6000803e3d6000fd5b505050506040513d6020811015610bfe57600080fd5b50511515610c0b57600080fd5b82518451148015610c1d575081518351145b1515610c2857600080fd5b5060005b8351811015610c8d57610c858482815181101515610c4657fe5b906020019060200201518483815181101515610c5e57fe5b906020019060200201518484815181101515610c7657fe5b90602001906020020151611487565b600101610c2c565b50505050565b600160a060020a03811660009081526007602052604081206001810154421115610cc0576000915061090e565b6001015492915050565b600654600160a060020a031681565b6006546040805160e160020a6358bc917b0281523360048201526003602482015290516000928392839283928392600160a060020a039091169163b17922f69160448082019260209290919082900301818787803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b505050506040513d6020811015610d6457600080fd5b50511515610d7157600080fd5b86518851148015610d83575085518751145b1515610d8e57600080fd5b60009450600093505b8751841015610f38578684815181101515610dae57fe5b90602001906020020151850194508684815181101515610dca57fe5b90602001906020020151610df58a8a87815181101515610de657fe5b90602001906020020151610953565b019250610e1a898986815181101515610e0a57fe5b90602001906020020151856114df565b8784815181101515610e2857fe5b90602001906020020151600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8987815181101515610e7457fe5b906020019060200201516040518082815260200191505060405180910390a360008685815181101515610ea357fe5b906020019060200201511115610f2d57610ed38885815181101515610ec457fe5b90602001906020020151610f69565b9250600760008986815181101515610ee757fe5b6020908102909101810151600160a060020a031682528101919091526040016000208381558651909250869085908110610f1d57fe5b6020908102909101015160018301555b600190930192610d97565b610f428933610953565b905084811015610f5157600080fd5b610f5e89338784036114df565b505050505050505050565b6000610f76600183610953565b610f81600084610953565b0192915050565b60005460ff1681565b6006546040805160e160020a6358bc917b028152336004820152600360248201529051600092600160a060020a03169163b17922f691604480830192602092919082900301818787803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d602081101561101157600080fd5b5051151561101e57600080fd5b82518451148015611030575081518351145b151561103b57600080fd5b5060005b8351811015610c8d57611098848281518110151561105957fe5b90602001906020020151848381518110151561107157fe5b90602001906020020151848481518110151561108957fe5b906020019060200201516116d9565b60010161103f565b600a8160028110610aee57fe5b336000908152600560209081526040808320600160a060020a03861684529091528120548211156110dd57600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020805487900390819055815190815290519293926000805160206119af833981519152929181900390910190a350600192915050565b600081611144336108dc565b0161114e33610f69565b101561115957600080fd5b6111638383611743565b9392505050565b60608060008080600360ff87161061118157600080fd5b6003805460ff881690811061119257fe5b90600052602060002001925060018380549050039150816040519080825280602002602001820160405280156111d2578160200160208202803883390190505b509450816040519080825280602002602001820160405280156111ff578160200160208202803883390190505b509350600090505b818110156112ae57828160010181548110151561122057fe5b6000918252602090912001548551600160a060020a039091169086908390811061124657fe5b600160a060020a03909216602092830290910190910152825461128e90879085906001850190811061127457fe5b600091825260209091200154600160a060020a0316610953565b848281518110151561129c57fe5b60209081029091010152600101611207565b505050915091565b600054610100900460ff1681565b6006546040805160e160020a6358bc917b028152336004820152600360248201529051600160a060020a039092169163b17922f6916044808201926020929091908290030181600087803b15801561131b57600080fd5b505af115801561132f573d6000803e3d6000fd5b505050506040513d602081101561134557600080fd5b5051151561135257600080fd5b60028260ff16108015611368575060048160ff16105b151561137357600080fd5b6000805461ff00191661010060ff938416021760ff191692909116919091179055565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b60088160028110610aee57fe5b600160a060020a03831660009081526005602090815260408083203384529091528120548211156113fe57600080fd5b600160a060020a0384166000908152600560209081526040808320338452909152902080548390039055611433848484611759565b600160a060020a0384166000818152600560209081526040808320338085529083529281902054815190815290519293926000805160206119af833981519152929181900390910190a35060019392505050565b80600a60ff85166002811061149857fe5b0180549091019055600860ff8416600281106114b057fe5b0154600a60ff8516600281106114c257fe5b015411156114cf57600080fd5b6114da838383611833565b505050565b600080600060038660ff168154811015156114f657fe5b6000918252602080832060ff8a168452600482526040808520600160a060020a038b168652909252922060018101549290910194509250841415611539576116d1565b604080518581529051600160a060020a0387169160ff8916917f1cd78d1ff751466c0b9865d2c15ac404b691498f54893d3e7d745c306f8ffd879181900360200190a38315156116825750805460ff86166000908152600460209081526040808320600160a060020a038916845290915281208181556001015560035483548491600019019081106115c757fe5b6000918252602090912001548354600160a060020a03909116908490839081106115ed57fe5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931790925560ff88168152600490915260408120845483929086908490811061164757fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205582546000190161167c8482611971565b506116d1565b600182015415156116c957825480835560018101845560008481526020902001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387161790555b600182018490555b505050505050565b60006116e58484610953565b9050818110156116f457600080fd5b6040805183815290519183900391600160a060020a038516917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2610c8d8484836114df565b6000611750338484611759565b50600192915050565b60008060008361176887610f69565b101561177357600080fd5b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360005460ff1692508391506117d38387610953565b90508381101561181b576117e9838760006114df565b6117f48386836118be565b60ff831615611804576000611807565b60015b925080820391506118188387610953565b90505b61182883878484036114df565b6116d18386846118be565b6000818261183f610914565b01101561184b57600080fd5b81600160ff86166002811061185c57fe5b01805490910190558161186f8585610953565b01905082600160a060020a03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a2610c8d8484836114df565b600080548190600161010090910460ff16116118da57846118ee565b6002600060019054906101000a900460ff16035b91506118fa8285610953565b60005490915060ff6101009091041660011415806119185750600081115b151561192357600080fd5b60ff828116908616146119645782600160ff87166002811061194157fe5b01805491909103905582600160ff84166002811061195b57fe5b01805490910190555b610ad582858584016114df565b8154818355818111156114da576000838152602090206114da91810190830161091c91905b808211156119aa5760008155600101611996565b509056008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a7230582079786cfcbbb9e8dbf74223bf696663c680209a9f0d5277a2739499dc1a0f174d0029

Swarm Source

bzzr://79786cfcbbb9e8dbf74223bf696663c680209a9f0d5277a2739499dc1a0f174d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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