ETH Price: $3,297.81 (-0.34%)

Contract

0xf485C5E679238f9304D986bb2fC28fE3379200e5
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer213984782024-12-14 4:50:599 days ago1734151859IN
UGChain Token
0 ETH0.0003941811.40681613
Transfer213984672024-12-14 4:48:479 days ago1734151727IN
UGChain Token
0 ETH0.00040511.72003944
Transfer213972792024-12-14 0:50:119 days ago1734137411IN
UGChain Token
0 ETH0.000431312.48106527
Transfer213972742024-12-14 0:49:119 days ago1734137351IN
UGChain Token
0 ETH0.0004533813.11993934
Approve213424682024-12-06 9:09:4717 days ago1733476187IN
UGChain Token
0 ETH0.0012347726.63219601
Transfer213256602024-12-04 0:49:1119 days ago1733273351IN
UGChain Token
0 ETH0.0006499918.822518
Transfer212373972024-11-21 16:48:2332 days ago1732207703IN
UGChain Token
0 ETH0.000717320.77166131
Approve211787132024-11-13 12:16:5940 days ago1731500219IN
UGChain Token
0 ETH0.0014998532.3495324
Transfer211785492024-11-13 11:43:3540 days ago1731498215IN
UGChain Token
0 ETH0.0011859925.3108827
Transfer210988712024-11-02 8:49:1151 days ago1730537351IN
UGChain Token
0 ETH0.000345536.69065012
Transfer210988682024-11-02 8:48:3551 days ago1730537315IN
UGChain Token
0 ETH0.000223996.48197156
Transfer210964822024-11-02 0:49:1151 days ago1730508551IN
UGChain Token
0 ETH0.000188236.32840987
Transfer210964792024-11-02 0:48:3551 days ago1730508515IN
UGChain Token
0 ETH0.00022896.62386098
Transfer210952912024-11-01 20:49:1151 days ago1730494151IN
UGChain Token
0 ETH0.000392377.59752226
Transfer210940922024-11-01 16:48:2352 days ago1730479703IN
UGChain Token
0 ETH0.0006592519.07725628
Transfer210929022024-11-01 12:49:2352 days ago1730465363IN
UGChain Token
0 ETH0.0004103713.7965831
Transfer210928972024-11-01 12:48:2352 days ago1730465303IN
UGChain Token
0 ETH0.0004409312.75960095
Transfer210749832024-10-30 0:48:5954 days ago1730249339IN
UGChain Token
0 ETH0.000396987.68674299
Transfer210737842024-10-29 20:48:4754 days ago1730234927IN
UGChain Token
0 ETH0.0003940813.24862308
Transfer210611222024-10-28 2:22:3556 days ago1730082155IN
UGChain Token
0 ETH0.000429758.33104262
Transfer210606572024-10-28 0:48:5956 days ago1730076539IN
UGChain Token
0 ETH0.000355386.88134522
Transfer210606552024-10-28 0:48:3556 days ago1730076515IN
UGChain Token
0 ETH0.000248457.18966542
Transfer210594592024-10-27 20:48:5956 days ago1730062139IN
UGChain Token
0 ETH0.00019726.62992431
Transfer210594572024-10-27 20:48:3556 days ago1730062115IN
UGChain Token
0 ETH0.000250737.255811
Transfer210510912024-10-26 16:48:5958 days ago1729961339IN
UGChain Token
0 ETH0.0005717311.07043584
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:
UGCoin

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-24
*/

contract Multiowned {

    // TYPES

    // struct for the status of a pending operation.
    struct PendingState {
        uint yetNeeded;
        uint ownersDone;
        uint index;
    }

    // EVENT

    // this contract only has five types of events: it can accept a confirmation, in which case
    // we record owner and operation (hash) alongside it.
    event Confirmation(address owner, bytes32 operation);
    event Revoke(address owner, bytes32 operation);
    // some others are in the case of an owner changing.
    event OwnerChanged(address oldOwner, address newOwner, bytes32 operation);
    event OwnerAdded(address newOwner, bytes32 operation);
    event OwnerRemoved(address oldOwner, bytes32 operation);
    // the last one is emitted if the required signatures change
    event RequirementChanged(uint newRequirement, bytes32 operation);
    event Operation(bytes32 operation);


    // MODIFIERS

    // simple single-sig function modifier.
    modifier onlyOwner {
        if (isOwner(msg.sender))
            _;
    }
    // multi-sig function modifier: the operation must have an intrinsic hash in order
    // that later attempts can be realised as the same underlying operation and
    // thus count as confirmations.
    modifier onlyManyOwners(bytes32 _operation) {
        Operation(_operation);
        if (confirmAndCheck(_operation))
            _;
    }

    // METHODS

    // constructor is given number of sigs required to do protected "onlyManyOwners" transactions
    // as well as the selection of addresses capable of confirming them.
    function Multiowned() public{
        m_numOwners = 1;
        m_owners[1] = uint(msg.sender);
        m_ownerIndex[uint(msg.sender)] = 1;
        m_required = 1;
    }
    
    // Revokes a prior confirmation of the given operation
    function revoke(bytes32 _operation) external {
        uint ownerIndex = m_ownerIndex[uint(msg.sender)];
        // make sure they're an owner
        if (ownerIndex == 0) return;
        uint ownerIndexBit = 2**ownerIndex;
        var pending = m_pending[_operation];
        if (pending.ownersDone & ownerIndexBit > 0) {
            pending.yetNeeded++;
            pending.ownersDone -= ownerIndexBit;
            Revoke(msg.sender, _operation);
        }
    }
    
    // Replaces an owner `_from` with another `_to`.
    function changeOwner(address _from, address _to) onlyManyOwners(keccak256(msg.data)) external {
        if (isOwner(_to)) return;
        uint ownerIndex = m_ownerIndex[uint(_from)];
        if (ownerIndex == 0) return;

        clearPending();
        m_owners[ownerIndex] = uint(_to);
        m_ownerIndex[uint(_from)] = 0;
        m_ownerIndex[uint(_to)] = ownerIndex;
        OwnerChanged(_from, _to, keccak256(msg.data));
    }
    
    function addOwner(address _owner) onlyManyOwners(keccak256(msg.data)) external {
        if (isOwner(_owner)) return;

        clearPending();
        if (m_numOwners >= c_maxOwners)
            reorganizeOwners();
        if (m_numOwners >= c_maxOwners)
            return;
        m_numOwners++;
        m_owners[m_numOwners] = uint(_owner);
        m_ownerIndex[uint(_owner)] = m_numOwners;
        OwnerAdded(_owner,keccak256(msg.data));
    }
    
    function removeOwner(address _owner) onlyManyOwners(keccak256(msg.data)) external {
        uint ownerIndex = m_ownerIndex[uint(_owner)];
        if (ownerIndex == 0) return;
        if (m_required > m_numOwners - 1) return;

        m_owners[ownerIndex] = 0;
        m_ownerIndex[uint(_owner)] = 0;
        clearPending();
        reorganizeOwners(); //make sure m_numOwner is equal to the number of owners and always points to the optimal free slot
        OwnerRemoved(_owner,keccak256(msg.data));
    }
    
    function changeRequirement(uint _newRequired) onlyManyOwners(keccak256(msg.data)) external {
        if (_newRequired > m_numOwners) return;
        m_required = _newRequired;
        clearPending();
        RequirementChanged(_newRequired,keccak256(msg.data));
    }

    function isOwner(address _addr) view public returns (bool){
        return m_ownerIndex[uint(_addr)] > 0;
    }
    
    //when the voting is complate, hasConfirmed return false
    //if the voteing is ongoing, it returns whether _owner has voted the _operation
    function hasConfirmed(bytes32 _operation, address _owner) view public returns (bool) {
        var pending = m_pending[_operation];
        uint ownerIndex = m_ownerIndex[uint(_owner)];

        // make sure they're an owner
        if (ownerIndex == 0) return false;

        // determine the bit to set for this owner.
        uint ownerIndexBit = 2**ownerIndex;
        return !(pending.ownersDone & ownerIndexBit == 0);
    }
    
    // INTERNAL METHODS

    function confirmAndCheck(bytes32 _operation) internal returns (bool) {
        // determine what index the present sender is:
        uint ownerIndex = m_ownerIndex[uint(msg.sender)];
        // make sure they're an owner
        if (ownerIndex == 0) return;

        var pending = m_pending[_operation];
        // if we're not yet working on this operation, switch over and reset the confirmation status.
        if (pending.yetNeeded == 0) {
            // reset count of confirmations needed.
            pending.yetNeeded = m_required;
            // reset which owners have confirmed (none) - set our bitmap to 0.
            pending.ownersDone = 0;
            pending.index = m_pendingIndex.length++;
            m_pendingIndex[pending.index] = _operation;
        }
        // determine the bit to set for this owner.
        uint ownerIndexBit = 2**ownerIndex;
        // make sure we (the message sender) haven't confirmed this operation previously.
        if (pending.ownersDone & ownerIndexBit == 0) {
            Confirmation(msg.sender, _operation);
            // ok - check if count is enough to go ahead.
            if (pending.yetNeeded <= 1) {
                // enough confirmations: reset and run interior.
                delete m_pendingIndex[m_pending[_operation].index];
                delete m_pending[_operation];
                return true;
            }
            else
            {
                // not enough: record that this owner in particular confirmed.
                pending.yetNeeded--;
                pending.ownersDone |= ownerIndexBit;
            }
        }
    }

    function reorganizeOwners() private {
        uint free = 1;
        while (free < m_numOwners)
        {
            while (free < m_numOwners && m_owners[free] != 0) free++;
            while (m_numOwners > 1 && m_owners[m_numOwners] == 0) m_numOwners--;
            if (free < m_numOwners && m_owners[m_numOwners] != 0 && m_owners[free] == 0)
            {
                m_owners[free] = m_owners[m_numOwners];
                m_ownerIndex[m_owners[free]] = free;
                m_owners[m_numOwners] = 0;
            }
        }
    }
    
    function clearPending() internal {
        uint length = m_pendingIndex.length;
        for (uint i = 0; i < length; ++i)
            if (m_pendingIndex[i] != 0)
                delete m_pending[m_pendingIndex[i]];
        delete m_pendingIndex;
    }
        
    // FIELDS

    // the number of owners that must confirm the same operation before it is run.
    uint public m_required;
    // pointer used to find a free slot in m_owners
    uint public m_numOwners;
    
    // list of owners
    uint[256] m_owners;
    uint constant c_maxOwners = 250;
    // index on the list of owners to allow reverse lookup
    mapping(uint => uint) m_ownerIndex;
    // the ongoing operations.
    mapping(bytes32 => PendingState) m_pending;
    bytes32[] m_pendingIndex;
}

contract Token {
    /* 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;

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) public view 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) public view returns (uint256 remaining);

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

contract StandardToken is Token {

    uint256 constant MAX_UINT256 = 2**256 - 1;

    function transfer(address _to, uint256 _value) public returns (bool success) {
        //Default assumes totalSupply can't be over max (2^256 - 1).
        //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.
        //Replace the if with this one instead.
        //require(balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]);
        require(balances[msg.sender] >= _value);
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        Transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        //same as above. Replace this line with the following if you want to protect against wrapping uints.
        //require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]);
        uint256 allowance = allowed[_from][msg.sender];
        require(balances[_from] >= _value && allowance >= _value);
        balances[_to] += _value;
        balances[_from] -= _value;
        if (allowance < MAX_UINT256) {
            allowed[_from][msg.sender] -= _value;
        }
        Transfer(_from, _to, _value);
        return true;
    }

    function balanceOf(address _owner) view public returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender)
    view public returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

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


contract UGCoin is Multiowned, StandardToken {

    event Freeze(address from, uint value);
    event Defreeze(address ownerAddr, address userAddr, uint256 amount);
    event ReturnToOwner(address ownerAddr, uint amount);
    event Destroy(address from, uint value);

    function UGCoin() public Multiowned(){
        balances[msg.sender] = initialAmount;   // Give the creator all initial balances is defined in StandardToken.sol
        totalSupply = initialAmount;              // Update total supply, totalSupply is defined in Tocken.sol
    }

    function() public {

    }
    
    /* transfer UGC to DAS */
    function freeze(uint256 _amount) external returns (bool success){
        require(balances[msg.sender] >= _amount);
        coinPool += _amount;
        balances[msg.sender] -= _amount;
        Freeze(msg.sender, _amount);
        return true;
    }

    /* transfer UGC from DAS */
    function defreeze(address _userAddr, uint256 _amount) onlyOwner external returns (bool success){
        require(balances[msg.sender] >= _amount); //msg.sender is a owner
        require(coinPool >= _amount);
        balances[_userAddr] += _amount;
        balances[msg.sender] -= _amount;
        ownersLoan[msg.sender] += _amount;
        Defreeze(msg.sender, _userAddr, _amount);
        return true;
    }

    function returnToOwner(address _ownerAddr, uint256 _amount) onlyManyOwners(keccak256(msg.data)) external returns (bool success){
        require(coinPool >= _amount);
        require(isOwner(_ownerAddr));
        require(ownersLoan[_ownerAddr] >= _amount);
        balances[_ownerAddr] += _amount;
        coinPool -= _amount;
        ownersLoan[_ownerAddr] -= _amount;
        ReturnToOwner(_ownerAddr, _amount);
        return true;
    }
    
    function destroy(uint256 _amount) external returns (bool success){
        require(balances[msg.sender] >= _amount);
        balances[msg.sender] -= _amount;
        totalSupply -= _amount;
        Destroy(msg.sender, _amount);
        return true;
    }

    function getOwnersLoan(address _ownerAddr) view public returns (uint256){
        return ownersLoan[_ownerAddr];
    }

    /* Approves and then calls the receiving contract */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);

        //call the receiveApproval function on the contract you want to be notified. 
        //This crafts the function signature manually so one doesn't have to include a contract in here just for this.
        //receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData)
        //it is assumed when one does this that the call *should* succeed, otherwise one would use vanilla approve instead.
        require(_spender.call(bytes4(bytes32(keccak256("receiveApproval(address,uint256,address,bytes)"))), msg.sender, _value, this, _extraData));
        return true;
    }

    string public name = "UG Coin";
    uint8 public decimals = 18;
    string public symbol = "UGC";
    string public version = "v0.1";
    uint256 public initialAmount = (10 ** 9) * (10 ** 18);
    uint256 public coinPool = 0;      // coinPool is a pool for freezing UGC
    mapping (address => uint256) ownersLoan;      // record the amount of UGC paid by oweners for freezing UGC

}

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":"_owner","type":"address"}],"name":"removeOwner","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":"_userAddr","type":"address"},{"name":"_amount","type":"uint256"}],"name":"defreeze","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"_addr","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m_numOwners","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m_required","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":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"destroy","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operation","type":"bytes32"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newRequired","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ownerAddr","type":"address"},{"name":"_amount","type":"uint256"}],"name":"returnToOwner","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_operation","type":"bytes32"},{"name":"_owner","type":"address"}],"name":"hasConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ownerAddr","type":"address"}],"name":"getOwnersLoan","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"freeze","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":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"coinPool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ownerAddr","type":"address"},{"indexed":false,"name":"userAddr","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Defreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ownerAddr","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"ReturnToOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Destroy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Revoke","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"OwnerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"OwnerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newRequirement","type":"uint256"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"RequirementChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Operation","type":"event"}]

60606040526040805190810160405280600781526020017f554720436f696e00000000000000000000000000000000000000000000000000815250610108908051906020019062000052929190620001f7565b50601261010960006101000a81548160ff021916908360ff1602179055506040805190810160405280600381526020017f554743000000000000000000000000000000000000000000000000000000000081525061010a9080519060200190620000be929190620001f7565b506040805190810160405280600481526020017f76302e310000000000000000000000000000000000000000000000000000000081525061010b90805190602001906200010d929190620001f7565b506b033b2e3c9fd0803ce800000061010c55600061010d5534156200013157600080fd5b600180819055503373ffffffffffffffffffffffffffffffffffffffff1660026001610100811015156200016157fe5b0181905550600161010260003373ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160008190555061010c5461010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061010c5461010581905550620002a6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023a57805160ff19168380011785556200026b565b828001600101855582156200026b579182015b828111156200026a5782518255916020019190600101906200024d565b5b5090506200027a91906200027e565b5090565b620002a391905b808211156200029f57600081600090555060010162000285565b5090565b90565b6127b580620002b66000396000f30060606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016c578063095ea7b3146101fa578063173825d91461025457806318160ddd1461028d5780631ee2fe6a146102b657806323b872dd146103105780632f54bf6e14610389578063313ce567146103da5780634123cb6b1461040957806354fd4d50146104325780637065cb48146104c057806370a08231146104f9578063746c91711461054657806395d89b411461056f5780639d118770146105fd578063a9059cbb14610638578063b75c7dc614610692578063ba51a6df146106b9578063be2b9a79146106dc578063c2cf732614610736578063c67410fb14610794578063cae9ca51146107e1578063d7a78db81461087e578063dd62ed3e146108b9578063f00d4b5d14610925578063f4ea77f31461097d578063fc1ed437146109a6575b341561016a57600080fd5b005b341561017757600080fd5b61017f6109cf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bf5780820151818401526020810190506101a4565b50505050905090810190601f1680156101ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020557600080fd5b61023a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a6e565b604051808215151515815260200191505060405180910390f35b341561025f57600080fd5b61028b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b61565b005b341561029857600080fd5b6102a0610d09565b6040518082815260200191505060405180910390f35b34156102c157600080fd5b6102f6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d10565b604051808215151515815260200191505060405180910390f35b341561031b57600080fd5b61036f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f15565b604051808215151515815260200191505060405180910390f35b341561039457600080fd5b6103c0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111b4565b604051808215151515815260200191505060405180910390f35b34156103e557600080fd5b6103ed6111ea565b604051808260ff1660ff16815260200191505060405180910390f35b341561041457600080fd5b61041c6111fe565b6040518082815260200191505060405180910390f35b341561043d57600080fd5b610445611204565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561048557808201518184015260208101905061046a565b50505050905090810190601f1680156104b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104cb57600080fd5b6104f7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112a3565b005b341561050457600080fd5b610530600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611456565b6040518082815260200191505060405180910390f35b341561055157600080fd5b6105596114a0565b6040518082815260200191505060405180910390f35b341561057a57600080fd5b6105826114a6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c25780820151818401526020810190506105a7565b50505050905090810190601f1680156105ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561060857600080fd5b61061e6004808035906020019091905050611545565b604051808215151515815260200191505060405180910390f35b341561064357600080fd5b610678600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611669565b604051808215151515815260200191505060405180910390f35b341561069d57600080fd5b6106b76004808035600019169060200190919050506117c5565b005b34156106c457600080fd5b6106da60048080359060200190919050506118d9565b005b34156106e757600080fd5b61071c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506119cc565b604051808215151515815260200191505060405180910390f35b341561074157600080fd5b61077a60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611bd1565b604051808215151515815260200191505060405180910390f35b341561079f57600080fd5b6107cb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c51565b6040518082815260200191505060405180910390f35b34156107ec57600080fd5b610864600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611c9b565b604051808215151515815260200191505060405180910390f35b341561088957600080fd5b61089f6004808035906020019091905050611f3d565b604051808215151515815260200191505060405180910390f35b34156108c457600080fd5b61090f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612061565b6040518082815260200191505060405180910390f35b341561093057600080fd5b61097b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120e9565b005b341561098857600080fd5b610990612302565b6040518082815260200191505060405180910390f35b34156109b157600080fd5b6109b9612309565b6040518082815260200191505060405180910390f35b6101088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a665780601f10610a3b57610100808354040283529160200191610a66565b820191906000526020600020905b815481529060010190602001808311610a4957829003601f168201915b505050505081565b60008161010760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a1610bc881612310565b15610d045761010260008473ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000821415610c0857610d03565b60018054036000541115610c1b57610d03565b600060028361010081101515610c2d57fe5b0181905550600061010260008573ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c6a61251c565b610c726125d2565b7f6de65097a3f0c1ff92f9afb7cae179e776c6a00a57c2211a50a2e02865475f6783600036604051808383808284378201915050925050506040518091039020604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b505050565b6101055481565b6000610d1b336111b4565b15610f0f578161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610d6f57600080fd5b8161010d5410151515610d8157600080fd5b8161010660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508161010e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055507f46a3e2909577f2702de8e9d85fb18e091da6f1ac1c344916e8eae2b373180a0e338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1600190505b92915050565b60008061010760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508261010660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610fe85750828110155b1515610ff357600080fd5b8261010660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508261010660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015611143578261010760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60008061010260008473ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b61010960009054906101000a900460ff1681565b60015481565b61010b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561129b5780601f106112705761010080835404028352916020019161129b565b820191906000526020600020905b81548152906001019060200180831161127e57829003601f168201915b505050505081565b6000366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a161130981612310565b1561145257611317826111b4565b1561132157611451565b61132961251c565b60fa60015410151561133e5761133d6125d2565b5b60fa60015410151561134f57611451565b6001600081548092919060010191905055508173ffffffffffffffffffffffffffffffffffffffff1660026001546101008110151561138a57fe5b018190555060015461010260008473ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fe76895bf802f93276d19c09b901db9bc4894a3d92c887ef5acb84fe23c35afd582600036604051808383808284378201915050925050506040518091039020604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b5050565b600061010660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60005481565b61010a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561153d5780601f106115125761010080835404028352916020019161153d565b820191906000526020600020905b81548152906001019060200180831161152057829003601f168201915b505050505081565b60008161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561159657600080fd5b8161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081610105600082825403925050819055507f81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160019050919050565b60008161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116ba57600080fd5b8161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508161010660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600061010260003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492506000831415611805576118d3565b8260020a915061010360008560001916600019168152602001908152602001600020905060008282600101541611156118d25780600001600081548092919060010191905055508181600101600082825403925050819055507fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b3385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b50505050565b6000366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a161193f81612310565b156119c857600154821115611953576119c7565b8160008190555061196261251c565b7fd9f38388916febc2ded023fd78160b7407245c343d4aca394284a34d841490e3826000366040518083838082843782019150509250505060405180910390206040518083815260200182600019166000191681526020019250505060405180910390a15b5b5050565b600080366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a1611a3381612310565b15611bca578261010d5410151515611a4a57600080fd5b611a53846111b4565b1515611a5e57600080fd5b8261010e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611aad57600080fd5b8261010660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508261010d600082825403925050819055508261010e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fd9987c07e67b2955451d91af3143fe74a702a43c2adcbaac5aeac3c916bec4d38484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600191505b5092915050565b60008060008061010360008760001916600019168152602001908152602001600020925061010260008673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000821415611c345760009350611c48565b8160020a9050600081846001015416141593505b50505092915050565b600061010e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008261010760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff1660405180807f72656365697665417070726f76616c28616464726573732c75696e743235362c81526020017f616464726573732c627974657329000000000000000000000000000000000000815250602e01905060405180910390207c01000000000000000000000000000000000000000000000000000000009004338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828051906020019080838360005b83811015611edd578082015181840152602081019050611ec2565b50505050905090810190601f168015611f0a5780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038160008761646e5a03f1925050501515611f3257600080fd5b600190509392505050565b60008161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611f8e57600080fd5b8161010d600082825401925050819055508161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e03383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160019050919050565b600061010760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a161215081612310565b156122fc5761215e836111b4565b15612168576122fb565b61010260008573ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060008214156121a3576122fb565b6121ab61251c565b8273ffffffffffffffffffffffffffffffffffffffff16600283610100811015156121d257fe5b0181905550600061010260008673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508161010260008573ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fe1b8708f9200a62991e7705bf47bdd8797e7d38802e7b17060a3efa5576ccb538484600036604051808383808284378201915050925050506040518091039020604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260001916600019168152602001935050505060405180910390a15b5b50505050565b61010d5481565b61010c5481565b60008060008061010260003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600083141561235157612514565b6101036000866000191660001916815260200190815260200160002091506000826000015414156123d75760005482600001819055506000826001018190555061010480548091906001016123a69190612717565b82600201819055508461010483600201548154811015156123c357fe5b906000526020600020900181600019169055505b8260020a90506000818360010154161415612513577fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda3386604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a1600182600001541115156124eb57610104610103600087600019166000191681526020019081526020016000206002015481548110151561249c57fe5b9060005260206000209001600090556101036000866000191660001916815260200190815260200160002060008082016000905560018201600090556002820160009055505060019350612514565b8160000160008154809291906001900391905055508082600101600082825417925050819055505b5b505050919050565b600080610104805490509150600090505b818110156125bf5760006001026101048281548110151561254a57fe5b906000526020600020900154600019161415156125b45761010360006101048381548110151561257657fe5b906000526020600020900154600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905550505b80600101905061252d565b61010460006125ce9190612743565b5050565b6000600190505b600154811015612714575b60015481108015612607575060006002826101008110151561260257fe5b015414155b156126195780806001019150506125e4565b5b6001805411801561263e5750600060026001546101008110151561263a57fe5b0154145b1561265b576001600081548092919060019003919050555061261a565b600154811080156126805750600060026001546101008110151561267b57fe5b015414155b801561269d575060006002826101008110151561269957fe5b0154145b1561270f576002600154610100811015156126b457fe5b0154600282610100811015156126c657fe5b0181905550806101026000600284610100811015156126e157fe5b0154815260200190815260200160002081905550600060026001546101008110151561270957fe5b01819055505b6125d9565b50565b81548183558181151161273e5781836000526020600020918201910161273d9190612764565b5b505050565b50805460008255906000526020600020908101906127619190612764565b50565b61278691905b8082111561278257600081600090555060010161276a565b5090565b905600a165627a7a72305820e486acae3bbc23eef2bbbbb157bcd6f5bc734d9b7a9ea76fa4321619b5f7ad010029

Deployed Bytecode

0x60606040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016c578063095ea7b3146101fa578063173825d91461025457806318160ddd1461028d5780631ee2fe6a146102b657806323b872dd146103105780632f54bf6e14610389578063313ce567146103da5780634123cb6b1461040957806354fd4d50146104325780637065cb48146104c057806370a08231146104f9578063746c91711461054657806395d89b411461056f5780639d118770146105fd578063a9059cbb14610638578063b75c7dc614610692578063ba51a6df146106b9578063be2b9a79146106dc578063c2cf732614610736578063c67410fb14610794578063cae9ca51146107e1578063d7a78db81461087e578063dd62ed3e146108b9578063f00d4b5d14610925578063f4ea77f31461097d578063fc1ed437146109a6575b341561016a57600080fd5b005b341561017757600080fd5b61017f6109cf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bf5780820151818401526020810190506101a4565b50505050905090810190601f1680156101ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020557600080fd5b61023a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610a6e565b604051808215151515815260200191505060405180910390f35b341561025f57600080fd5b61028b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b61565b005b341561029857600080fd5b6102a0610d09565b6040518082815260200191505060405180910390f35b34156102c157600080fd5b6102f6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d10565b604051808215151515815260200191505060405180910390f35b341561031b57600080fd5b61036f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f15565b604051808215151515815260200191505060405180910390f35b341561039457600080fd5b6103c0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111b4565b604051808215151515815260200191505060405180910390f35b34156103e557600080fd5b6103ed6111ea565b604051808260ff1660ff16815260200191505060405180910390f35b341561041457600080fd5b61041c6111fe565b6040518082815260200191505060405180910390f35b341561043d57600080fd5b610445611204565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561048557808201518184015260208101905061046a565b50505050905090810190601f1680156104b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104cb57600080fd5b6104f7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112a3565b005b341561050457600080fd5b610530600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611456565b6040518082815260200191505060405180910390f35b341561055157600080fd5b6105596114a0565b6040518082815260200191505060405180910390f35b341561057a57600080fd5b6105826114a6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c25780820151818401526020810190506105a7565b50505050905090810190601f1680156105ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561060857600080fd5b61061e6004808035906020019091905050611545565b604051808215151515815260200191505060405180910390f35b341561064357600080fd5b610678600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611669565b604051808215151515815260200191505060405180910390f35b341561069d57600080fd5b6106b76004808035600019169060200190919050506117c5565b005b34156106c457600080fd5b6106da60048080359060200190919050506118d9565b005b34156106e757600080fd5b61071c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506119cc565b604051808215151515815260200191505060405180910390f35b341561074157600080fd5b61077a60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611bd1565b604051808215151515815260200191505060405180910390f35b341561079f57600080fd5b6107cb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c51565b6040518082815260200191505060405180910390f35b34156107ec57600080fd5b610864600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611c9b565b604051808215151515815260200191505060405180910390f35b341561088957600080fd5b61089f6004808035906020019091905050611f3d565b604051808215151515815260200191505060405180910390f35b34156108c457600080fd5b61090f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612061565b6040518082815260200191505060405180910390f35b341561093057600080fd5b61097b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120e9565b005b341561098857600080fd5b610990612302565b6040518082815260200191505060405180910390f35b34156109b157600080fd5b6109b9612309565b6040518082815260200191505060405180910390f35b6101088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a665780601f10610a3b57610100808354040283529160200191610a66565b820191906000526020600020905b815481529060010190602001808311610a4957829003601f168201915b505050505081565b60008161010760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a1610bc881612310565b15610d045761010260008473ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000821415610c0857610d03565b60018054036000541115610c1b57610d03565b600060028361010081101515610c2d57fe5b0181905550600061010260008573ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c6a61251c565b610c726125d2565b7f6de65097a3f0c1ff92f9afb7cae179e776c6a00a57c2211a50a2e02865475f6783600036604051808383808284378201915050925050506040518091039020604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b505050565b6101055481565b6000610d1b336111b4565b15610f0f578161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610d6f57600080fd5b8161010d5410151515610d8157600080fd5b8161010660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508161010e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055507f46a3e2909577f2702de8e9d85fb18e091da6f1ac1c344916e8eae2b373180a0e338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1600190505b92915050565b60008061010760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508261010660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610fe85750828110155b1515610ff357600080fd5b8261010660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508261010660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015611143578261010760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60008061010260008473ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b61010960009054906101000a900460ff1681565b60015481565b61010b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561129b5780601f106112705761010080835404028352916020019161129b565b820191906000526020600020905b81548152906001019060200180831161127e57829003601f168201915b505050505081565b6000366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a161130981612310565b1561145257611317826111b4565b1561132157611451565b61132961251c565b60fa60015410151561133e5761133d6125d2565b5b60fa60015410151561134f57611451565b6001600081548092919060010191905055508173ffffffffffffffffffffffffffffffffffffffff1660026001546101008110151561138a57fe5b018190555060015461010260008473ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fe76895bf802f93276d19c09b901db9bc4894a3d92c887ef5acb84fe23c35afd582600036604051808383808284378201915050925050506040518091039020604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b5050565b600061010660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60005481565b61010a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561153d5780601f106115125761010080835404028352916020019161153d565b820191906000526020600020905b81548152906001019060200180831161152057829003601f168201915b505050505081565b60008161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561159657600080fd5b8161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081610105600082825403925050819055507f81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160019050919050565b60008161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116ba57600080fd5b8161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508161010660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600061010260003373ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492506000831415611805576118d3565b8260020a915061010360008560001916600019168152602001908152602001600020905060008282600101541611156118d25780600001600081548092919060010191905055508181600101600082825403925050819055507fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b3385604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a15b5b50505050565b6000366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a161193f81612310565b156119c857600154821115611953576119c7565b8160008190555061196261251c565b7fd9f38388916febc2ded023fd78160b7407245c343d4aca394284a34d841490e3826000366040518083838082843782019150509250505060405180910390206040518083815260200182600019166000191681526020019250505060405180910390a15b5b5050565b600080366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a1611a3381612310565b15611bca578261010d5410151515611a4a57600080fd5b611a53846111b4565b1515611a5e57600080fd5b8261010e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611aad57600080fd5b8261010660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508261010d600082825403925050819055508261010e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507fd9987c07e67b2955451d91af3143fe74a702a43c2adcbaac5aeac3c916bec4d38484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600191505b5092915050565b60008060008061010360008760001916600019168152602001908152602001600020925061010260008673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000821415611c345760009350611c48565b8160020a9050600081846001015416141593505b50505092915050565b600061010e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008261010760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff1660405180807f72656365697665417070726f76616c28616464726573732c75696e743235362c81526020017f616464726573732c627974657329000000000000000000000000000000000000815250602e01905060405180910390207c01000000000000000000000000000000000000000000000000000000009004338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828051906020019080838360005b83811015611edd578082015181840152602081019050611ec2565b50505050905090810190601f168015611f0a5780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038160008761646e5a03f1925050501515611f3257600080fd5b600190509392505050565b60008161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611f8e57600080fd5b8161010d600082825401925050819055508161010660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e03383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160019050919050565b600061010760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080366040518083838082843782019150509250505060405180910390207fbc77a194c76c281279b0795dd58fe933d3265a2fa119952cff085cad68a87a048160405180826000191660001916815260200191505060405180910390a161215081612310565b156122fc5761215e836111b4565b15612168576122fb565b61010260008573ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060008214156121a3576122fb565b6121ab61251c565b8273ffffffffffffffffffffffffffffffffffffffff16600283610100811015156121d257fe5b0181905550600061010260008673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508161010260008573ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fe1b8708f9200a62991e7705bf47bdd8797e7d38802e7b17060a3efa5576ccb538484600036604051808383808284378201915050925050506040518091039020604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260001916600019168152602001935050505060405180910390a15b5b50505050565b61010d5481565b61010c5481565b60008060008061010260003373ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600083141561235157612514565b6101036000866000191660001916815260200190815260200160002091506000826000015414156123d75760005482600001819055506000826001018190555061010480548091906001016123a69190612717565b82600201819055508461010483600201548154811015156123c357fe5b906000526020600020900181600019169055505b8260020a90506000818360010154161415612513577fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda3386604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019250505060405180910390a1600182600001541115156124eb57610104610103600087600019166000191681526020019081526020016000206002015481548110151561249c57fe5b9060005260206000209001600090556101036000866000191660001916815260200190815260200160002060008082016000905560018201600090556002820160009055505060019350612514565b8160000160008154809291906001900391905055508082600101600082825417925050819055505b5b505050919050565b600080610104805490509150600090505b818110156125bf5760006001026101048281548110151561254a57fe5b906000526020600020900154600019161415156125b45761010360006101048381548110151561257657fe5b906000526020600020900154600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905550505b80600101905061252d565b61010460006125ce9190612743565b5050565b6000600190505b600154811015612714575b60015481108015612607575060006002826101008110151561260257fe5b015414155b156126195780806001019150506125e4565b5b6001805411801561263e5750600060026001546101008110151561263a57fe5b0154145b1561265b576001600081548092919060019003919050555061261a565b600154811080156126805750600060026001546101008110151561267b57fe5b015414155b801561269d575060006002826101008110151561269957fe5b0154145b1561270f576002600154610100811015156126b457fe5b0154600282610100811015156126c657fe5b0181905550806101026000600284610100811015156126e157fe5b0154815260200190815260200160002081905550600060026001546101008110151561270957fe5b01819055505b6125d9565b50565b81548183558181151161273e5781836000526020600020918201910161273d9190612764565b5b505050565b50805460008255906000526020600020908101906127619190612764565b50565b61278691905b8082111561278257600081600090555060010161276a565b5090565b905600a165627a7a72305820e486acae3bbc23eef2bbbbb157bcd6f5bc734d9b7a9ea76fa4321619b5f7ad010029

Swarm Source

bzzr://e486acae3bbc23eef2bbbbb157bcd6f5bc734d9b7a9ea76fa4321619b5f7ad01

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

ugChain (UGC) is a cryptocurrency and operates on the Ethereum platform.

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.