ETH Price: $3,361.44 (-2.41%)
Gas: 1 Gwei

Contract

0xFa55951f84Bfbe2E6F95aA74B58cc7047f9F0644
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve197333172024-04-25 15:36:4768 days ago1714059407IN
0xFa55951f...47f9F0644
0 ETH0.0010919445.18526299
Approve181677002023-09-19 4:53:11288 days ago1695099191IN
0xFa55951f...47f9F0644
0 ETH0.000175997.28293932
Approve167635492023-03-05 17:01:59485 days ago1678035719IN
0xFa55951f...47f9F0644
0 ETH0.0006793825.95243152
Transfer167520642023-03-04 2:17:23487 days ago1677896243IN
0xFa55951f...47f9F0644
0 ETH0.0009539418.42950973
Approve166486252023-02-17 13:07:35501 days ago1676639255IN
0xFa55951f...47f9F0644
0 ETH0.0006482826.81310345
Transfer144225732022-03-20 9:55:10835 days ago1647770110IN
0xFa55951f...47f9F0644
0 ETH0.0008866213.60604012
Transfer130857312021-08-24 4:00:561044 days ago1629777656IN
0xFa55951f...47f9F0644
0 ETH0.0044674579.00000145
Approve130675012021-08-21 8:09:141046 days ago1629533354IN
0xFa55951f...47f9F0644
0 ETH0.001271127.5
Transfer130243252021-08-14 16:21:341053 days ago1628958094IN
0xFa55951f...47f9F0644
0 ETH0.0027433853.00000145
Transfer127170012021-06-27 15:56:091101 days ago1624809369IN
0xFa55951f...47f9F0644
0 ETH0.000207755
Approve126463712021-06-16 15:44:341112 days ago1623858274IN
0xFa55951f...47f9F0644
0 ETH0.0015715434
Transfer126461952021-06-16 15:05:161112 days ago1623855916IN
0xFa55951f...47f9F0644
0 ETH0.0012052929
Transfer125735442021-06-05 9:00:211123 days ago1622883621IN
0xFa55951f...47f9F0644
0 ETH0.000540313
Transfer124183412021-05-12 7:44:481147 days ago1620805488IN
0xFa55951f...47f9F0644
0 ETH0.00694085167
Transfer123461842021-05-01 4:33:361159 days ago1619843616IN
0xFa55951f...47f9F0644
0 ETH0.0011130826.78125
Transfer123076582021-04-25 5:53:111165 days ago1619329991IN
0xFa55951f...47f9F0644
0 ETH0.0015027236.15625
Transfer123006032021-04-24 3:54:111166 days ago1619236451IN
0xFa55951f...47f9F0644
0 ETH0.0027846567.00000145
Transfer122040912021-04-09 6:41:511180 days ago1617950511IN
0xFa55951f...47f9F0644
0 ETH0.003348484.00000145
Transfer121165732021-03-26 19:35:321194 days ago1616787332IN
0xFa55951f...47f9F0644
0 ETH0.00593943149
Transfer121149242021-03-26 13:39:271194 days ago1616765967IN
0xFa55951f...47f9F0644
0 ETH0.00546109137
Transfer120728592021-03-20 2:03:491201 days ago1616205829IN
0xFa55951f...47f9F0644
0 ETH0.00615013154.28571572
Transfer119535742021-03-01 17:07:101219 days ago1614618430IN
0xFa55951f...47f9F0644
0 ETH0.003886134
Approve115025312020-12-22 9:46:571288 days ago1608630417IN
0xFa55951f...47f9F0644
0 ETH0.0019854945
Transfer113814212020-12-03 18:56:071307 days ago1607021767IN
0xFa55951f...47f9F0644
0 ETH0.0005972319.3
Approve113652042020-12-01 7:10:211309 days ago1606806621IN
0xFa55951f...47f9F0644
0 ETH0.0032650274
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:
UST

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.21;

contract Owned {
    
    /// 'owner' is the only address that can call a function with 
    /// this modifier
    address public owner;
    address internal newOwner;
    
    ///@notice The constructor assigns the message sender to be 'owner'
    function Owned() public {
        owner = msg.sender;
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    event updateOwner(address _oldOwner, address _newOwner);
    
    ///change the owner
    function changeOwner(address _newOwner) public onlyOwner returns(bool) {
        require(owner != _newOwner);
        newOwner = _newOwner;
        return true;
    }
    
    /// accept the ownership
    function acceptNewOwner() public returns(bool) {
        require(msg.sender == newOwner);
        emit updateOwner(owner, newOwner);
        owner = newOwner;
        return true;
    }
    
}

// Safe maths, borrowed from OpenZeppelin
library SafeMath {

    function mul(uint a, uint b) internal pure returns (uint) {
        uint c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }
    
    function div(uint a, uint b) internal pure returns (uint) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint c = a / b;
        return c;
    }
    
    function sub(uint a, uint b) internal pure returns (uint) {
        assert(b <= a);
        return a - b;
    }
    
    function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        assert(c >= a);
        return c;
    }
}

contract ERC20Token {
    /* This is a slight change to the ERC20 base standard.
    function totalSupply() constant returns (uint256 supply);
    is replaced with:
    uint256 public totalSupply;
    This automatically creates a getter function for the totalSupply.
    This is moved to the base contract since public getter functions are not
    currently recognised as an implementation of the matching abstract
    function by the compiler.
    */
    /// total amount of tokens
    uint256 public totalSupply;
    
    /// user tokens
    mapping (address => uint256) public balances;
    
    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) constant public returns (uint256 balance);

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _value) public returns (bool success);
    
    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);

    /// @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 tokens to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint256 _value) public returns (bool success);

    /// @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 public returns (uint256 remaining);

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

contract Controlled is Owned, ERC20Token {
    using SafeMath for uint;
    uint256 public releaseStartTime;
    uint256 oneMonth = 3600 * 24 * 30;
    
    // Flag that determines if the token is transferable or not
    bool  public emergencyStop = false;
    
    struct userToken {
        uint256 UST;
        uint256 addrLockType;
    }
    mapping (address => userToken) public userReleaseToken;
    
    modifier canTransfer {
        require(emergencyStop == false);
        _;
    }
    
    modifier releaseTokenValid(address _user, uint256 _time, uint256 _value) {
		uint256 _lockTypeIndex = userReleaseToken[_user].addrLockType;
		if(_lockTypeIndex != 0) {
			require (balances[_user].sub(_value) >= userReleaseToken[_user].UST.sub(calcReleaseToken(_user, _time, _lockTypeIndex)));
        }
        
		_;
    }
    
    
    function canTransferUST(bool _bool) public onlyOwner{
        emergencyStop = _bool;
    }
    
    /// @notice get `_user` transferable token amount 
    /// @param _user The user's address
    /// @param _time The present time
    /// @param _lockTypeIndex The user's investment lock type
    /// @return Return the amount of user's transferable token
    function calcReleaseToken(address _user, uint256 _time, uint256 _lockTypeIndex) internal view returns (uint256) {
        uint256 _timeDifference = _time.sub(releaseStartTime);
        uint256 _whichPeriod = getPeriod(_lockTypeIndex, _timeDifference);
        
        if(_lockTypeIndex == 1) {
            
            return (percent(userReleaseToken[_user].UST, 25) + percent(userReleaseToken[_user].UST, _whichPeriod.mul(25)));
        }
        
        if(_lockTypeIndex == 2) {
            return (percent(userReleaseToken[_user].UST, 25) + percent(userReleaseToken[_user].UST, _whichPeriod.mul(25)));
        }
        
        if(_lockTypeIndex == 3) {
            return (percent(userReleaseToken[_user].UST, 10) + percent(userReleaseToken[_user].UST, _whichPeriod.mul(15)));
        }
		
		revert();
    
    }
    
    /// @notice get time period for the given '_lockTypeIndex'
    /// @param _lockTypeIndex The user's investment locktype index
    /// @param _timeDifference The passed time since releaseStartTime to now
    /// @return Return the time period
    function getPeriod(uint256 _lockTypeIndex, uint256 _timeDifference) internal view returns (uint256) {
        if(_lockTypeIndex == 1) {           //The lock for the usechain coreTeamSupply
            uint256 _period1 = (_timeDifference.div(oneMonth)).div(12);
            if(_period1 >= 3){
                _period1 = 3;
            }
            return _period1;
        }
        if(_lockTypeIndex == 2) {           //The lock for medium investment
            uint256 _period2 = _timeDifference.div(oneMonth);
            if(_period2 >= 3){
                _period2 = 3;
            }
            return _period2;
        }
        if(_lockTypeIndex == 3) {           //The lock for massive investment
            uint256 _period3 = _timeDifference.div(oneMonth);
            if(_period3 >= 6){
                _period3 = 6;
            }
            return _period3;
        }
		
		revert();
    }
    
    function percent(uint _token, uint _percentage) internal pure returns (uint) {
        return _percentage.mul(_token).div(100);
    }
    
}

contract standardToken is ERC20Token, Controlled {
    
    mapping (address => mapping (address => uint256)) public allowances;
    
    /// @param _owner The address that's balance is being requested
    /// @return The balance of `_owner` at the current block
    function balanceOf(address _owner) constant public returns (uint256) {
        return balances[_owner];
    }

    /// @notice Send `_value` tokens to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of tokens to be transferred
    /// @return Whether the transfer was successful or not
    
	function transfer(
        address _to,
        uint256 _value) 
        public 
        canTransfer
        releaseTokenValid(msg.sender, now, _value)
        returns (bool) 
    {
        require (balances[msg.sender] >= _value);           // Throw if sender has insufficient balance
        require (balances[_to] + _value >= balances[_to]);  // Throw if owerflow detected
        balances[msg.sender] -= _value;                     // Deduct senders balance
        balances[_to] += _value;                            // Add recivers balance
        emit Transfer(msg.sender, _to, _value);             // Raise Transfer event
        return true;
    }
    
    /// @notice `msg.sender` approves `_spender` to spend `_value` tokens on
    ///  its behalf. This is a modified version of the ERC20 approve function
    ///  to be a little bit safer
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of tokens to be approved for transfer
    /// @return True if the approval was successful
    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowances[msg.sender][_spender] = _value;          // Set allowance
        emit Approval(msg.sender, _spender, _value);             // Raise Approval event
        return true;
    }

    /// @notice `msg.sender` approves `_spender` to send `_value` tokens on
    ///  its behalf, and then a function is triggered in the contract that is
    ///  being approved, `_spender`. This allows users to use their tokens to
    ///  interact with contracts in one function call instead of two
    /// @param _spender The address of the contract able to transfer the tokens
    /// @param _value The amount of tokens to be approved for transfer
    /// @return True if the function call was successful
    function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {
        approve(_spender, _value);                          // Set approval to contract for _value
        //receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData)
        //it is assumed that when does this that the call *should* succeed, otherwise one would use vanilla approve instead.
        if(!_spender.call(bytes4(bytes32(keccak256("receiveApproval(address,uint256,address,bytes)"))), msg.sender, _value, this, _extraData)) { 
            revert(); 
        }
        return true;
    }

    /// @notice Send `_value` tokens to `_to` from `_from` on the condition it
    ///  is approved by `_from`
    /// @param _from The address holding the tokens being transferred
    /// @param _to The address of the recipient
    /// @param _value The amount of tokens to be transferred
    /// @return True if the transfer was successful
    function transferFrom(address _from, address _to, uint256 _value) public canTransfer releaseTokenValid(msg.sender, now, _value) returns (bool success) {
        require (balances[_from] >= _value);                // Throw if sender does not have enough balance
        require (balances[_to] + _value >= balances[_to]);  // Throw if overflow detected
        require (_value <= allowances[_from][msg.sender]);  // Throw if you do not have allowance
        balances[_from] -= _value;                          // Deduct senders balance
        balances[_to] += _value;                            // Add recipient balance
        allowances[_from][msg.sender] -= _value;            // Deduct allowance for this address
        emit Transfer(_from, _to, _value);                       // Raise Transfer event
        return true;
    }

    /// @dev This function makes it easy to read the `allowances[]` map
    /// @param _owner The address of the account that owns the token
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens of _owner that _spender is allowed to spend
    function allowance(address _owner, address _spender) constant public returns (uint256) {
        return allowances[_owner][_spender];
    }

}

contract UST is Owned, standardToken {
        
    string constant public name   = "UseChainToken";
    string constant public symbol = "UST";
    uint constant public decimals = 18;

    uint256 public totalSupply = 0;
    uint256 constant public topTotalSupply = 2 * 10**10 * 10**decimals;
    uint public forSaleSupply        = percent(topTotalSupply, 45);
    uint public marketingPartnerSupply = percent(topTotalSupply, 5);
    uint public coreTeamSupply   = percent(topTotalSupply, 15);
    uint public technicalCommunitySupply       = percent(topTotalSupply, 15);
    uint public communitySupply          = percent(topTotalSupply, 20);
    uint public softCap                = percent(topTotalSupply, 30);
    
    function () public {
        revert();
    }
    
    /// @dev Owner can change the releaseStartTime when needs
    /// @param _time The releaseStartTime, UTC timezone
    function setRealseTime(uint256 _time) public onlyOwner {
        releaseStartTime = _time;
    }
    
    /// @dev This owner allocate token for private sale
    /// @param _owners The address of the account that owns the token
    /// @param _values The amount of tokens
    /// @param _addrLockType The locktype for different investment type
    function allocateToken(address[] _owners, uint256[] _values, uint256[] _addrLockType) public onlyOwner {
        require ((_owners.length == _values.length) && ( _values.length == _addrLockType.length));
        for(uint i = 0; i < _owners.length ; i++){
            uint256 value = _values[i] * 10 ** decimals;
            
            totalSupply = totalSupply.add(value);
            balances[_owners[i]] = balances[_owners[i]].add(value);             // Set minted coins to target
            emit Transfer(0x0, _owners[i], value);    
            
            userReleaseToken[_owners[i]].UST = userReleaseToken[_owners[i]].UST.add(value);
            userReleaseToken[_owners[i]].addrLockType = _addrLockType[i];
        }
    }
    
    /// @dev This owner allocate token for candy airdrop
    /// @param _owners The address of the account that owns the token
    /// @param _values The amount of tokens
	function allocateCandyToken(address[] _owners, uint256[] _values) public onlyOwner {
       for(uint i = 0; i < _owners.length ; i++){
           uint256 value = _values[i] * 10 ** decimals;
           totalSupply = totalSupply.add(value);
		   balances[_owners[i]] = balances[_owners[i]].add(value); 
		   emit Transfer(0x0, _owners[i], value);  		  
        }
    }
    
}

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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_bool","type":"bool"}],"name":"canTransferUST","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":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"technicalCommunitySupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"emergencyStop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"coreTeamSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"topTotalSupply","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":"marketingPartnerSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"softCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userReleaseToken","outputs":[{"name":"UST","type":"uint256"},{"name":"addrLockType","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","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":false,"inputs":[{"name":"_time","type":"uint256"}],"name":"setRealseTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"forSaleSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owners","type":"address[]"},{"name":"_values","type":"uint256[]"},{"name":"_addrLockType","type":"uint256[]"}],"name":"allocateToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owners","type":"address[]"},{"name":"_values","type":"uint256[]"}],"name":"allocateCandyToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"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":"releaseStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptNewOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"communitySupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_oldOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"updateOwner","type":"event"}]

606060405262278d006005556006805460ff191690556000600955620000416b409f9cbc7c4a04c220000000602d640100000000620012d06200013782021704565b600a556200006b6b409f9cbc7c4a04c2200000006005640100000000620012d06200013782021704565b600b55620000956b409f9cbc7c4a04c220000000600f640100000000620012d06200013782021704565b600c55620000bf6b409f9cbc7c4a04c220000000600f640100000000620012d06200013782021704565b600d55620000e96b409f9cbc7c4a04c2200000006014640100000000620012d06200013782021704565b600e55620001136b409f9cbc7c4a04c220000000601e640100000000620012d06200013782021704565b600f5560008054600160a060020a03191633600160a060020a0316179055620001b4565b60006200016e6064620001598486640100000000620012ac6200017582021704565b90640100000000620012e76200019c82021704565b9392505050565b60008282028315806200019357508284828115156200019057fe5b04145b15156200016e57fe5b6000808284811515620001ab57fe5b04949350505050565b61134a80620001c46000396000f30060606040526004361061015b5763ffffffff60e060020a60003504166306fdde03811461016b578063095ea7b3146101f557806316f0ec721461022b57806318160ddd1461024557806323b872dd1461026a57806327e235e314610292578063313ce567146102b157806349b2f5ff146102c457806355b6ed5c146102d757806363a599a4146102fc5780636bff19011461030f57806370a082311461032257806385c09f26146103415780638da5cb5b146103545780638e9e8b1414610383578063906a26e01461039657806395d89b41146103a95780639c37d47d146103bc578063a6f9dae1146103f3578063a9059cbb14610412578063ac56f98014610434578063af13f1ad1461044a578063c34f783d1461045d578063c6e6ab031461052c578063cae9ca51146105bb578063dd62ed3e14610620578063e97d87d514610645578063f05a781d14610658578063fcceea261461066b575b341561016657600080fd5b600080fd5b341561017657600080fd5b61017e61067e565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101ba5780820151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020057600080fd5b610217600160a060020a03600435166024356106b5565b604051901515815260200160405180910390f35b341561023657600080fd5b6102436004351515610721565b005b341561025057600080fd5b61025861074f565b60405190815260200160405180910390f35b341561027557600080fd5b610217600160a060020a0360043581169060243516604435610755565b341561029d57600080fd5b610258600160a060020a03600435166108f6565b34156102bc57600080fd5b610258610908565b34156102cf57600080fd5b61025861090d565b34156102e257600080fd5b610258600160a060020a0360043581169060243516610913565b341561030757600080fd5b610217610930565b341561031a57600080fd5b610258610939565b341561032d57600080fd5b610258600160a060020a036004351661093f565b341561034c57600080fd5b61025861095a565b341561035f57600080fd5b61036761096a565b604051600160a060020a03909116815260200160405180910390f35b341561038e57600080fd5b610258610979565b34156103a157600080fd5b61025861097f565b34156103b457600080fd5b61017e610985565b34156103c757600080fd5b6103db600160a060020a03600435166109bc565b60405191825260208201526040908101905180910390f35b34156103fe57600080fd5b610217600160a060020a03600435166109d5565b341561041d57600080fd5b610217600160a060020a0360043516602435610a3c565b341561043f57600080fd5b610243600435610b65565b341561045557600080fd5b610258610b85565b341561046857600080fd5b61024360046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610b8b95505050505050565b341561053757600080fd5b610243600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610d7a95505050505050565b34156105c657600080fd5b61021760048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610e7a95505050505050565b341561062b57600080fd5b610258600160a060020a0360043581169060243516610fc0565b341561065057600080fd5b610258610feb565b341561066357600080fd5b610217610ff1565b341561067657600080fd5b61025861109b565b60408051908101604052600d81527f557365436861696e546f6b656e00000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260086020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005433600160a060020a0390811691161461073c57600080fd5b6006805460ff1916911515919091179055565b60095481565b60065460009060ff161561076857600080fd5b33600160a060020a0381166000908152600760205260409020600101544290849080156107f6576107c261079d8585846110a1565b600160a060020a0386166000908152600760205260409020549063ffffffff6111cc16565b600160a060020a0385166000908152600360205260409020546107eb908463ffffffff6111cc16565b10156107f657600080fd5b600160a060020a0388166000908152600360205260409020548690101561081c57600080fd5b600160a060020a038716600090815260036020526040902054868101101561084357600080fd5b600160a060020a038089166000908152600860209081526040808320339094168352929052205486111561087657600080fd5b600160a060020a03808916600081815260036020908152604080832080548c900390558b851680845281842080548d01905584845260088352818420339096168452949091529081902080548a900390556000805160206112ff8339815191529089905190815260200160405180910390a3506001979650505050505050565b60036020526000908152604090205481565b601281565b600d5481565b600860209081526000928352604080842090915290825290205481565b60065460ff1681565b600c5481565b600160a060020a031660009081526003602052604090205490565b6b409f9cbc7c4a04c22000000081565b600054600160a060020a031681565b600b5481565b600f5481565b60408051908101604052600381527f5553540000000000000000000000000000000000000000000000000000000000602082015281565b6007602052600090815260409020805460019091015482565b6000805433600160a060020a039081169116146109f157600080fd5b600054600160a060020a0383811691161415610a0c57600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b60065460009060ff1615610a4f57600080fd5b33600160a060020a038116600090815260076020526040902060010154429084908015610ab857610a8461079d8585846110a1565b600160a060020a038516600090815260036020526040902054610aad908463ffffffff6111cc16565b1015610ab857600080fd5b600160a060020a03331660009081526003602052604090205486901015610ade57600080fd5b600160a060020a0387166000908152600360205260409020548681011015610b0557600080fd5b600160a060020a0333811660008181526003602052604080822080548b90039055928a168082529083902080548a019055916000805160206112ff8339815191529089905190815260200160405180910390a35060019695505050505050565b60005433600160a060020a03908116911614610b8057600080fd5b600455565b600a5481565b60008054819033600160a060020a03908116911614610ba957600080fd5b83518551148015610bbb575082518451145b1515610bc657600080fd5b600091505b8451821015610d7357670de0b6b3a7640000848381518110610be957fe5b9060200190602002015160095491029150610c0a908263ffffffff6111de16565b600955610c518160036000888681518110610c2157fe5b90602001906020020151600160a060020a031681526020810191909152604001600020549063ffffffff6111de16565b60036000878581518110610c6157fe5b90602001906020020151600160a060020a03168152602081019190915260400160002055848281518110610c9157fe5b90602001906020020151600160a060020a031660006000805160206112ff8339815191528360405190815260200160405180910390a3610cdb8160076000888681518110610c2157fe5b60076000878581518110610ceb57fe5b90602001906020020151600160a060020a03168152602081019190915260400160002055828281518110610d1b57fe5b9060200190602002015160076000878581518110610d3557fe5b90602001906020020151600160a060020a0316600160a060020a03168152602001908152602001600020600101819055508180600101925050610bcb565b5050505050565b60008054819033600160a060020a03908116911614610d9857600080fd5b600091505b8351821015610e7457670de0b6b3a7640000838381518110610dbb57fe5b9060200190602002015160095491029150610ddc908263ffffffff6111de16565b600955610df38160036000878681518110610c2157fe5b60036000868581518110610e0357fe5b90602001906020020151600160a060020a03168152602081019190915260400160002055838281518110610e3357fe5b90602001906020020151600160a060020a031660006000805160206112ff8339815191528360405190815260200160405180910390a3600190910190610d9d565b50505050565b6000610e8684846106b5565b5083600160a060020a03166040517f72656365697665417070726f76616c28616464726573732c75696e743235362c81527f616464726573732c6279746573290000000000000000000000000000000000006020820152602e01604051809103902060e060020a9004338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a03168152602001828051906020019080838360005b83811015610f65578082015183820152602001610f4d565b50505050905090810190601f168015610f925780820380516001836020036101000a031916815260200191505b509450505050506000604051808303816000875af1925050501515610fb657600080fd5b5060019392505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b60045481565b60015460009033600160a060020a0390811691161461100f57600080fd5b6000546001547fa6348c80a3dfb1c2603f5c35480c5bd8afc0656ad83dc6b520b648cb286d541791600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a150600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600e5481565b60008060006110bb600454866111cc90919063ffffffff16565b91506110c784836111f4565b9050836001141561113157600160a060020a0386166000908152600760205260409020546111059061110083601963ffffffff6112ac16565b6112d0565b600160a060020a0387166000908152600760205260409020546111299060196112d0565b0192506111c3565b836002141561116857600160a060020a0386166000908152600760205260409020546111059061110083601963ffffffff6112ac16565b836003141561016657600160a060020a03861660009081526007602052604090205461119f9061110083600f63ffffffff6112ac16565b600160a060020a03871660009081526007602052604090205461112990600a6112d0565b50509392505050565b6000828211156111d857fe5b50900390565b6000828201838110156111ed57fe5b9392505050565b600080600080856001141561124057611229600c61121d600554886112e790919063ffffffff16565b9063ffffffff6112e716565b92506003831061123857600392505b8293506112a3565b85600214156112745760055461125d90869063ffffffff6112e716565b91506003821061126c57600391505b8193506112a3565b85600314156101665760055461129190869063ffffffff6112e716565b90506006811061129f575060065b8093505b50505092915050565b60008282028315806112c857508284828115156112c557fe5b04145b15156111ed57fe5b60006111ed606461121d848663ffffffff6112ac16565b60008082848115156112f557fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582078115256c53361a66138c437ed8b5e6fb896bb393c309d9a82c8a5b2ee85be670029

Deployed Bytecode

0x60606040526004361061015b5763ffffffff60e060020a60003504166306fdde03811461016b578063095ea7b3146101f557806316f0ec721461022b57806318160ddd1461024557806323b872dd1461026a57806327e235e314610292578063313ce567146102b157806349b2f5ff146102c457806355b6ed5c146102d757806363a599a4146102fc5780636bff19011461030f57806370a082311461032257806385c09f26146103415780638da5cb5b146103545780638e9e8b1414610383578063906a26e01461039657806395d89b41146103a95780639c37d47d146103bc578063a6f9dae1146103f3578063a9059cbb14610412578063ac56f98014610434578063af13f1ad1461044a578063c34f783d1461045d578063c6e6ab031461052c578063cae9ca51146105bb578063dd62ed3e14610620578063e97d87d514610645578063f05a781d14610658578063fcceea261461066b575b341561016657600080fd5b600080fd5b341561017657600080fd5b61017e61067e565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101ba5780820151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020057600080fd5b610217600160a060020a03600435166024356106b5565b604051901515815260200160405180910390f35b341561023657600080fd5b6102436004351515610721565b005b341561025057600080fd5b61025861074f565b60405190815260200160405180910390f35b341561027557600080fd5b610217600160a060020a0360043581169060243516604435610755565b341561029d57600080fd5b610258600160a060020a03600435166108f6565b34156102bc57600080fd5b610258610908565b34156102cf57600080fd5b61025861090d565b34156102e257600080fd5b610258600160a060020a0360043581169060243516610913565b341561030757600080fd5b610217610930565b341561031a57600080fd5b610258610939565b341561032d57600080fd5b610258600160a060020a036004351661093f565b341561034c57600080fd5b61025861095a565b341561035f57600080fd5b61036761096a565b604051600160a060020a03909116815260200160405180910390f35b341561038e57600080fd5b610258610979565b34156103a157600080fd5b61025861097f565b34156103b457600080fd5b61017e610985565b34156103c757600080fd5b6103db600160a060020a03600435166109bc565b60405191825260208201526040908101905180910390f35b34156103fe57600080fd5b610217600160a060020a03600435166109d5565b341561041d57600080fd5b610217600160a060020a0360043516602435610a3c565b341561043f57600080fd5b610243600435610b65565b341561045557600080fd5b610258610b85565b341561046857600080fd5b61024360046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610b8b95505050505050565b341561053757600080fd5b610243600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610d7a95505050505050565b34156105c657600080fd5b61021760048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610e7a95505050505050565b341561062b57600080fd5b610258600160a060020a0360043581169060243516610fc0565b341561065057600080fd5b610258610feb565b341561066357600080fd5b610217610ff1565b341561067657600080fd5b61025861109b565b60408051908101604052600d81527f557365436861696e546f6b656e00000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260086020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005433600160a060020a0390811691161461073c57600080fd5b6006805460ff1916911515919091179055565b60095481565b60065460009060ff161561076857600080fd5b33600160a060020a0381166000908152600760205260409020600101544290849080156107f6576107c261079d8585846110a1565b600160a060020a0386166000908152600760205260409020549063ffffffff6111cc16565b600160a060020a0385166000908152600360205260409020546107eb908463ffffffff6111cc16565b10156107f657600080fd5b600160a060020a0388166000908152600360205260409020548690101561081c57600080fd5b600160a060020a038716600090815260036020526040902054868101101561084357600080fd5b600160a060020a038089166000908152600860209081526040808320339094168352929052205486111561087657600080fd5b600160a060020a03808916600081815260036020908152604080832080548c900390558b851680845281842080548d01905584845260088352818420339096168452949091529081902080548a900390556000805160206112ff8339815191529089905190815260200160405180910390a3506001979650505050505050565b60036020526000908152604090205481565b601281565b600d5481565b600860209081526000928352604080842090915290825290205481565b60065460ff1681565b600c5481565b600160a060020a031660009081526003602052604090205490565b6b409f9cbc7c4a04c22000000081565b600054600160a060020a031681565b600b5481565b600f5481565b60408051908101604052600381527f5553540000000000000000000000000000000000000000000000000000000000602082015281565b6007602052600090815260409020805460019091015482565b6000805433600160a060020a039081169116146109f157600080fd5b600054600160a060020a0383811691161415610a0c57600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b60065460009060ff1615610a4f57600080fd5b33600160a060020a038116600090815260076020526040902060010154429084908015610ab857610a8461079d8585846110a1565b600160a060020a038516600090815260036020526040902054610aad908463ffffffff6111cc16565b1015610ab857600080fd5b600160a060020a03331660009081526003602052604090205486901015610ade57600080fd5b600160a060020a0387166000908152600360205260409020548681011015610b0557600080fd5b600160a060020a0333811660008181526003602052604080822080548b90039055928a168082529083902080548a019055916000805160206112ff8339815191529089905190815260200160405180910390a35060019695505050505050565b60005433600160a060020a03908116911614610b8057600080fd5b600455565b600a5481565b60008054819033600160a060020a03908116911614610ba957600080fd5b83518551148015610bbb575082518451145b1515610bc657600080fd5b600091505b8451821015610d7357670de0b6b3a7640000848381518110610be957fe5b9060200190602002015160095491029150610c0a908263ffffffff6111de16565b600955610c518160036000888681518110610c2157fe5b90602001906020020151600160a060020a031681526020810191909152604001600020549063ffffffff6111de16565b60036000878581518110610c6157fe5b90602001906020020151600160a060020a03168152602081019190915260400160002055848281518110610c9157fe5b90602001906020020151600160a060020a031660006000805160206112ff8339815191528360405190815260200160405180910390a3610cdb8160076000888681518110610c2157fe5b60076000878581518110610ceb57fe5b90602001906020020151600160a060020a03168152602081019190915260400160002055828281518110610d1b57fe5b9060200190602002015160076000878581518110610d3557fe5b90602001906020020151600160a060020a0316600160a060020a03168152602001908152602001600020600101819055508180600101925050610bcb565b5050505050565b60008054819033600160a060020a03908116911614610d9857600080fd5b600091505b8351821015610e7457670de0b6b3a7640000838381518110610dbb57fe5b9060200190602002015160095491029150610ddc908263ffffffff6111de16565b600955610df38160036000878681518110610c2157fe5b60036000868581518110610e0357fe5b90602001906020020151600160a060020a03168152602081019190915260400160002055838281518110610e3357fe5b90602001906020020151600160a060020a031660006000805160206112ff8339815191528360405190815260200160405180910390a3600190910190610d9d565b50505050565b6000610e8684846106b5565b5083600160a060020a03166040517f72656365697665417070726f76616c28616464726573732c75696e743235362c81527f616464726573732c6279746573290000000000000000000000000000000000006020820152602e01604051809103902060e060020a9004338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a03168152602001828051906020019080838360005b83811015610f65578082015183820152602001610f4d565b50505050905090810190601f168015610f925780820380516001836020036101000a031916815260200191505b509450505050506000604051808303816000875af1925050501515610fb657600080fd5b5060019392505050565b600160a060020a03918216600090815260086020908152604080832093909416825291909152205490565b60045481565b60015460009033600160a060020a0390811691161461100f57600080fd5b6000546001547fa6348c80a3dfb1c2603f5c35480c5bd8afc0656ad83dc6b520b648cb286d541791600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a150600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600e5481565b60008060006110bb600454866111cc90919063ffffffff16565b91506110c784836111f4565b9050836001141561113157600160a060020a0386166000908152600760205260409020546111059061110083601963ffffffff6112ac16565b6112d0565b600160a060020a0387166000908152600760205260409020546111299060196112d0565b0192506111c3565b836002141561116857600160a060020a0386166000908152600760205260409020546111059061110083601963ffffffff6112ac16565b836003141561016657600160a060020a03861660009081526007602052604090205461119f9061110083600f63ffffffff6112ac16565b600160a060020a03871660009081526007602052604090205461112990600a6112d0565b50509392505050565b6000828211156111d857fe5b50900390565b6000828201838110156111ed57fe5b9392505050565b600080600080856001141561124057611229600c61121d600554886112e790919063ffffffff16565b9063ffffffff6112e716565b92506003831061123857600392505b8293506112a3565b85600214156112745760055461125d90869063ffffffff6112e716565b91506003821061126c57600391505b8193506112a3565b85600314156101665760055461129190869063ffffffff6112e716565b90506006811061129f575060065b8093505b50505092915050565b60008282028315806112c857508284828115156112c557fe5b04145b15156111ed57fe5b60006111ed606461121d848663ffffffff6112ac16565b60008082848115156112f557fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582078115256c53361a66138c437ed8b5e6fb896bb393c309d9a82c8a5b2ee85be670029

Swarm Source

bzzr://78115256c53361a66138c437ed8b5e6fb896bb393c309d9a82c8a5b2ee85be67

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.