ETH Price: $2,830.78 (+5.05%)

Contract

0x881Ef48211982D01E2CB7092C915E647Cd40D85C
 
Transaction Hash
Method
Block
From
To
Approve189271502024-01-03 13:32:59411 days ago1704288779IN
OpenTradingNetworkToken
0 ETH0.0013994558.05919206
Transfer183047792023-10-08 9:09:47498 days ago1696756187IN
OpenTradingNetworkToken
0 ETH0.000328776.97195603
Transfer160122592022-11-20 15:56:11819 days ago1668959771IN
OpenTradingNetworkToken
0 ETH0.0003735312.45247573
Transfer160122502022-11-20 15:54:23819 days ago1668959663IN
OpenTradingNetworkToken
0 ETH0.0004379312.58535315
Transfer151727522022-07-19 11:19:10944 days ago1658229550IN
OpenTradingNetworkToken
0 ETH0.0036783370.79575498
Transfer144822292022-03-29 16:40:021055 days ago1648572002IN
OpenTradingNetworkToken
0 ETH0.0026440356.05457205
Approve117565762021-01-30 9:57:551479 days ago1612000675IN
OpenTradingNetworkToken
0 ETH0.00268461
Transfer117565562021-01-30 9:52:491479 days ago1612000369IN
OpenTradingNetworkToken
0 ETH0.00437628120
Transfer117564872021-01-30 9:35:481479 days ago1611999348IN
OpenTradingNetworkToken
0 ETH0.00617484120
Transfer113174162020-11-23 23:17:171546 days ago1606173437IN
OpenTradingNetworkToken
0 ETH0.0018811851.6
Transfer112631942020-11-15 15:29:591554 days ago1605454199IN
OpenTradingNetworkToken
0 ETH0.0019300590
Transfer112620902020-11-15 11:18:591555 days ago1605439139IN
OpenTradingNetworkToken
0 ETH0.0011832823.001
Transfer109287152020-09-25 0:58:311606 days ago1600995511IN
OpenTradingNetworkToken
0 ETH0.0026257672
Transfer104918672020-07-19 19:41:571673 days ago1595187717IN
OpenTradingNetworkToken
0 ETH0.0010728550
Transfer104883212020-07-19 6:33:191674 days ago1595140399IN
OpenTradingNetworkToken
0 ETH0.0032417963
Transfer104883192020-07-19 6:32:551674 days ago1595140375IN
OpenTradingNetworkToken
0 ETH0.0025592870.2
Transfer104882992020-07-19 6:29:141674 days ago1595140154IN
OpenTradingNetworkToken
0 ETH0.0027014674.1
Transfer104882932020-07-19 6:27:551674 days ago1595140075IN
OpenTradingNetworkToken
0 ETH0.0011580354
Transfer104882932020-07-19 6:27:551674 days ago1595140075IN
OpenTradingNetworkToken
0 ETH0.0011580354
Transfer104882932020-07-19 6:27:551674 days ago1595140075IN
OpenTradingNetworkToken
0 ETH0.0011593254
Transfer104605992020-07-14 23:29:031678 days ago1594769343IN
OpenTradingNetworkToken
0 ETH0.0025722550
Transfer101227662020-05-23 14:54:081731 days ago1590245648IN
OpenTradingNetworkToken
0 ETH0.000182225
Transfer100163492020-05-07 2:07:551747 days ago1588817275IN
OpenTradingNetworkToken
0 ETH0.0006619118.15000035
Transfer99949542020-05-03 18:59:561750 days ago1588532396IN
OpenTradingNetworkToken
0 ETH0.000145824
Transfer97584972020-03-28 7:02:541787 days ago1585378974IN
OpenTradingNetworkToken
0 ETH0.0010722550
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:
OTNToken

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-09-29
*/

pragma solidity ^0.4.11;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal constant returns (uint256) {
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal constant returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal constant returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal constant returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
    uint256 public totalSupply;

    function balanceOf(address who) public constant returns (uint256);

    function transfer(address to, uint256 value) public returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public constant returns (uint256);

    function transferFrom(address from, address to, uint256 value) public returns (bool);

    function approve(address spender, uint256 value) public returns (bool);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
    using SafeMath for uint256;

    mapping (address => uint256) balances;

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));

        // SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _owner The address to query the the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) public constant returns (uint256 balance) {
        return balances[_owner];
    }

}

/**
 * @title Shareable
 * @dev inheritable "property" contract that enables methods to be protected by requiring the
 * acquiescence of either a single, or, crucially, each of a number of, designated owners.
 * @dev Usage: use modifiers onlyOwner (just own owned) or onlyManyOwners(hash), whereby the same hash must be provided by some number (specified in constructor) of the set of owners (specified in the constructor) before the interior is executed.
 */
contract Shareable {

    event Confirmation(address owner, bytes32 operation);
    event Revoke(address owner, bytes32 operation);
    event RequirementChange(uint required);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);

    // struct for the status of a pending operation.
    struct PendingState {
        uint256 index;
        uint256 yetNeeded;
        mapping (address => bool) ownersDone;
    }

    // the number of owners that must confirm the same operation before it is run.
    uint256 public required;

    // list of owners by index
    address[] owners;

    // hash table of owners by address
    mapping (address => bool) internal isOwner;

    // the ongoing operations.
    mapping (bytes32 => PendingState) internal pendings;

    // the ongoing operations by index
    bytes32[] internal pendingsIndex;

    /**
     * @dev Throws if address is null.
     * @param _address The address for check
     */
    modifier addressNotNull(address _address) {
        require(_address != address(0));
        _;
    }

    /**
     * @dev Throws if owners count less then quorum.
     * @param _ownersCount New owners count
     * @param _required New or old required param, min: 2
     */
    modifier validRequirement(uint256 _ownersCount, uint _required) {
        require(_required > 1 && _ownersCount >= _required);
        _;
    }

    /**
     * @dev Throws if owner does not exists.
     * @param owner The address for check
     */
    modifier ownerExists(address owner) {
        require(isOwner[owner]);
        _;
    }

    /**
     * @dev Throws if owner exists.
     * @param owner The address for check
     */
    modifier ownerDoesNotExist(address owner) {
        require(!isOwner[owner]);
        _;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner {
        require(isOwner[msg.sender]);
        _;
    }

    /**
     * @dev Modifier for multisig functions.
     * @param _operation 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) {
        if (confirmAndCheck(_operation)) {
            _;
        }
    }

    /**
     * @dev Constructor is given the number of sigs required to do protected "onlyManyOwners"
     * transactions as well as the selection of addresses capable of confirming them.
     * @param _additionalOwners A list of owners.
     * @param _required The amount required for a operation to be approved.
     */
    function Shareable(address[] _additionalOwners, uint256 _required)
        validRequirement(_additionalOwners.length + 1, _required)
    {
        owners.push(msg.sender);
        isOwner[msg.sender] = true;

        for (uint i = 0; i < _additionalOwners.length; i++) {
            require(!isOwner[_additionalOwners[i]] && _additionalOwners[i] != address(0));

            owners.push(_additionalOwners[i]);
            isOwner[_additionalOwners[i]] = true;
        }

        required = _required;
    }

    /**
     * @dev Allows to change the number of required confirmations.
     * @param _required Number of required confirmations.
     */
    function changeRequirement(uint _required)
        external
        validRequirement(owners.length, _required)
        onlyManyOwners(keccak256("change-requirement", _required))
    {
        required = _required;

        RequirementChange(_required);
    }

    /**
     * @dev Allows owners to add new owner with quorum.
     * @param _owner The address to join for ownership.
     */
    function addOwner(address _owner)
        external
        addressNotNull(_owner)
        ownerDoesNotExist(_owner)
        onlyManyOwners(keccak256("add-owner", _owner))
    {
        owners.push(_owner);
        isOwner[_owner] = true;

        OwnerAddition(_owner);
    }

    /**
     * @dev Allows owners to remove owner with quorum.
     * @param _owner The address to remove from ownership.
     */
    function removeOwner(address _owner)
        external
        addressNotNull(_owner)
        ownerExists(_owner)
        onlyManyOwners(keccak256("remove-owner", _owner))
        validRequirement(owners.length - 1, required)
    {
        // clear all pending operation list
        clearPending();

        isOwner[_owner] = false;

        for (uint256 i = 0; i < owners.length - 1; i++) {
            if (owners[i] == _owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        }

        owners.length -= 1;

        OwnerRemoval(_owner);
    }

    /**
     * @dev Revokes a prior confirmation of the given operation.
     * @param _operation A string identifying the operation.
     */
    function revoke(bytes32 _operation)
        external
        onlyOwner
    {
        var pending = pendings[_operation];

        if (pending.ownersDone[msg.sender]) {
            pending.yetNeeded++;
            pending.ownersDone[msg.sender] = false;

            uint256 count = 0;
            for (uint256 i = 0; i < owners.length; i++) {
                if (hasConfirmed(_operation, owners[i])) {
                    count++;
                }
            }

            if (count <= 0) {
                pendingsIndex[pending.index] = pendingsIndex[pendingsIndex.length - 1];
                pendingsIndex.length--;
                delete pendings[_operation];
            }

            Revoke(msg.sender, _operation);
        }
    }

    /**
     * @dev Function to check is specific owner has already confirme the operation.
     * @param _operation The operation identifier.
     * @param _owner The owner address.
     * @return True if the owner has confirmed and false otherwise.
     */
    function hasConfirmed(bytes32 _operation, address _owner)
        constant
        addressNotNull(_owner)
        onlyOwner
        returns (bool)
    {
        return pendings[_operation].ownersDone[_owner];
    }

    /**
     * @dev Confirm and operation and checks if it's already executable.
     * @param _operation The operation identifier.
     * @return Returns true when operation can be executed.
     */
    function confirmAndCheck(bytes32 _operation)
        internal
        onlyOwner
        returns (bool)
    {
        var pending = pendings[_operation];

        // if we're not yet working on this operation, switch over and reset the confirmation status.
        if (pending.yetNeeded == 0) {
            clearOwnersDone(_operation);
            // reset count of confirmations needed.
            pending.yetNeeded = required;
            // reset which owners have confirmed (none).
            pendingsIndex.length++;
            pending.index = pendingsIndex.length++;
            pendingsIndex[pending.index] = _operation;
        }

        // make sure we (the message sender) haven't confirmed this operation previously.
        if (!hasConfirmed(_operation, msg.sender)) {
            Confirmation(msg.sender, _operation);

            // ok - check if count is enough to go ahead.
            if (pending.yetNeeded <= 1) {
                // enough confirmations: reset and run interior.
                clearOwnersDone(_operation);
                pendingsIndex[pending.index] = pendingsIndex[pendingsIndex.length - 1];
                pendingsIndex.length--;
                delete pendings[_operation];

                return true;
            } else {
                // not enough: record that this owner in particular confirmed.
                pending.yetNeeded--;
                pending.ownersDone[msg.sender] = true;
            }
        } else {
            revert();
        }

        return false;
    }

    /**
     * @dev Clear ownersDone in operation.
     * @param _operation The operation identifier.
     */
    function clearOwnersDone(bytes32 _operation)
        internal
        onlyOwner
    {
        for (uint256 i = 0; i < owners.length; i++) {
            if (pendings[_operation].ownersDone[owners[i]]) {
                pendings[_operation].ownersDone[owners[i]] = false;
            }
        }
    }

    /**
     * @dev Clear the pending list.
     */
    function clearPending()
        internal
        onlyOwner
    {
        uint256 length = pendingsIndex.length;

        for (uint256 i = 0; i < length; ++i) {
            clearOwnersDone(pendingsIndex[i]);
            delete pendings[pendingsIndex[i]];
        }

        pendingsIndex.length = 0;
    }
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

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


    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));

        uint256 _allowance = allowed[_from][msg.sender];

        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // require (_value <= _allowance);

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = _allowance.sub(_value);
        Transfer(_from, _to, _value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     *
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     */
    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _owner address The address which owns the funds.
     * @param _spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

    /**
     * approve should be called when allowed[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     */
    function increaseApproval(address _spender, uint _addedValue)
        returns (bool success) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval(address _spender, uint _subtractedValue)
        returns (bool success) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

}

/**
 * @title MintableToken
 * @dev Simple ERC20 Token example, with mintable token creation.
 */
contract MintableToken is StandardToken, Shareable {
    event Mint(uint256 iteration, address indexed to, uint256 amount);

    // total supply limit
    uint256 public totalSupplyLimit;

    // the number of blocks to the next supply
    uint256 public numberOfBlocksBetweenSupplies;

    // mint is available after the block number
    uint256 public nextSupplyAfterBlock;

    // the current iteration of the supply
    uint256 public currentIteration = 1;

    // the amount of tokens available supply in prev iteration
    uint256 private prevIterationSupplyLimit = 0;

    /**
     * @dev Throws if minting are not allowed.
     * @param _amount The amount of tokens to mint.
     */
    modifier canMint(uint256 _amount) {
        // check block height
        require(block.number >= nextSupplyAfterBlock);

        // check total supply limit
        require(totalSupply.add(_amount) <= totalSupplyLimit);

        // check supply amount in current iteration
        require(_amount <= currentIterationSupplyLimit());

        _;
    }

    /**
     * @dev Constructor
     * @param _initialSupplyAddress The address that will recieve the initial minted tokens.
     * @param _initialSupply The amount of tokens to initial mint.
     * @param _firstIterationSupplyLimit The amount of token to limit first iteration.
     * @param _totalSupplyLimit The amount of tokens to finish mint.
     * @param _numberOfBlocksBetweenSupplies Number of blocks for the next mint.
     * @param _additionalOwners A list of owners.
     * @param _required The amount required for a transaction to be approved.
     */
    function MintableToken(
        address _initialSupplyAddress,
        uint256 _initialSupply,
        uint256 _firstIterationSupplyLimit,
        uint256 _totalSupplyLimit,
        uint256 _numberOfBlocksBetweenSupplies,
        address[] _additionalOwners,
        uint256 _required
    )
        Shareable(_additionalOwners, _required)
    {
        require(_initialSupplyAddress != address(0) && _initialSupply > 0);

        prevIterationSupplyLimit = _firstIterationSupplyLimit;
        totalSupplyLimit = _totalSupplyLimit;
        numberOfBlocksBetweenSupplies = _numberOfBlocksBetweenSupplies;
        nextSupplyAfterBlock = block.number.add(_numberOfBlocksBetweenSupplies);

        totalSupply = totalSupply.add(_initialSupply);
        balances[_initialSupplyAddress] = balances[_initialSupplyAddress].add(_initialSupply);
    }

    /**
     * @dev Returns the limit on the supply in the current iteration.
     */
    function currentIterationSupplyLimit()
        public
        constant
        returns (uint256 maxSupply)
    {
        if (currentIteration == 1) {
            maxSupply = prevIterationSupplyLimit;
        } else {
            maxSupply = prevIterationSupplyLimit.mul(9881653713).div(10000000000);

            if (maxSupply > (totalSupplyLimit.sub(totalSupply))) {
                maxSupply = totalSupplyLimit.sub(totalSupply);
            }
        }
    }

    /**
     * @dev Function to init minting tokens
     * @param _to The address that will recieve the minted tokens.
     * @param _amount The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address _to, uint256 _amount)
        external
        canMint(_amount)
        onlyManyOwners(keccak256("mint", _to, _amount))
        returns (bool)
    {
        prevIterationSupplyLimit = currentIterationSupplyLimit();
        nextSupplyAfterBlock = block.number.add(numberOfBlocksBetweenSupplies);

        totalSupply = totalSupply.add(_amount);
        balances[_to] = balances[_to].add(_amount);

        Mint(currentIteration, _to, _amount);
        Transfer(0x0, _to, _amount);

        currentIteration = currentIteration.add(1);

        clearPending();

        return true;
    }
}

/**
 * @title OTN ERC20 token
 */
contract OTNToken is MintableToken {
    // token name
    string public name = "Open Trading Network";

    // token symbol
    string public symbol = "OTN";

    // token decimals
    uint256 public decimals = 18;

    /**
     * @dev Constructor
     * @param _initialSupplyAddress The address that will recieve the initial minted tokens.
     * @param _additionalOwners A list of owners.
     */
    function OTNToken(
        address _initialSupplyAddress,
        address[] _additionalOwners
    )
        MintableToken(
            _initialSupplyAddress,
            79000000e18,            // initial supply
            350000e18,              // first iteration max supply
            100000000e18,           // max supply for all time
            100,                    // supply iteration every 100 blocks (17 sec per block)
            _additionalOwners,      // additional owners
            2                       // required number for a operations to be approved
    )
    {

    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"nextSupplyAfterBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"currentIteration","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_operation","type":"bytes32"}],"name":"revoke","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupplyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_operation","type":"bytes32"},{"name":"_owner","type":"address"}],"name":"hasConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfBlocksBetweenSupplies","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"currentIterationSupplyLimit","outputs":[{"name":"maxSupply","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_initialSupplyAddress","type":"address"},{"name":"_additionalOwners","type":"address[]"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"iteration","type":"uint256"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","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":"required","type":"uint256"}],"name":"RequirementChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

6001600b556000600c5560a0604052601460608190527f4f70656e2054726164696e67204e6574776f726b00000000000000000000000060809081526200004a91600d91906200039f565b506040805180820190915260038082527f4f544e000000000000000000000000000000000000000000000000000000000060209092019182526200009191600e916200039f565b506012600f553415620000a057fe5b60405162001d2938038062001d2983398101604052805160208201519091015b816a4158e694d13d54af000000694a1d89bb94865ec000006a52b7d2dcc80cd2e400000060648560025b81815b6000825160010182600181118015620001065750808210155b1515620001135760006000fd5b600480546001810162000127838262000425565b916000526020600020900160005b8154600160a060020a033381166101009390930a838102910219909116179091556000908152600560205260408120805460ff191660011790559350505b8451831015620002aa576005600086858151811015156200019057fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff16158015620001e757508451600090869085908110620001d157fe5b90602001906020020151600160a060020a031614155b1515620001f45760006000fd5b600480546001810162000208838262000425565b916000526020600020900160005b87868151811015156200022557fe5b90602001906020020151909190916101000a815481600160a060020a030219169083600160a060020a031602179055505060016005600087868151811015156200026b57fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff19169115159190911790555b60019092019162000173565b60038490555b5b5050505050600160a060020a03871615801590620002cf5750600086115b1515620002dc5760006000fd5b600c85905560088490556009839055620003054384640100000000620016476200038482021704565b600a55600054620003259087640100000000620016476200038482021704565b6000908155600160a060020a0388168152600160205260409020546200035a9087640100000000620016476200038482021704565b600160a060020a0388166000908152600160205260409020555b505050505050505b505062000476565b6000828201838110156200039457fe5b8091505b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003e257805160ff191683800117855562000412565b8280016001018555821562000412579182015b8281111562000412578251825591602001919060010190620003f5565b5b506200042192915062000452565b5090565b8154818355818115116200044c576000838152602090206200044c91810190830162000452565b5b505050565b6200047391905b8082111562000421576000815560010162000459565b5090565b90565b6118a380620004866000396000f300606060405236156101305763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610132578063095ea7b3146101c2578063173825d9146101f557806318160ddd1461021357806323b872dd14610235578063313ce5671461026e57806340c10f191461029057806366188463146102c35780637065cb48146102f657806370a08231146103145780637ef4cabb1461034257806388c6abf81461036457806395d89b4114610386578063a9059cbb14610416578063b75c7dc614610449578063ba51a6df1461045e578063bac21a2214610473578063c2cf732614610495578063d73dd623146104c8578063dc8452cd146104fb578063dd62ed3e1461051d578063ef7f23a614610551578063fc82d0f714610573575bfe5b341561013a57fe5b610142610595565b604080516020808252835181830152835191928392908301918501908083838215610188575b80518252602083111561018857601f199092019160209182019101610168565b505050905090810190601f1680156101b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101ca57fe5b6101e1600160a060020a0360043516602435610623565b604080519115158252519081900360200190f35b34156101fd57fe5b610211600160a060020a036004351661068e565b005b341561021b57fe5b6102236108b1565b60408051918252519081900360200190f35b341561023d57fe5b6101e1600160a060020a03600435811690602435166044356108b7565b604080519115158252519081900360200190f35b341561027657fe5b6102236109e4565b60408051918252519081900360200190f35b341561029857fe5b6101e1600160a060020a03600435166024356109ea565b604080519115158252519081900360200190f35b34156102cb57fe5b6101e1600160a060020a0360043516602435610bc8565b604080519115158252519081900360200190f35b34156102fe57fe5b610211600160a060020a0360043516610cc3565b005b341561031c57fe5b610223600160a060020a0360043516610dee565b60408051918252519081900360200190f35b341561034a57fe5b610223610e0d565b60408051918252519081900360200190f35b341561036c57fe5b610223610e13565b60408051918252519081900360200190f35b341561038e57fe5b610142610e19565b604080516020808252835181830152835191928392908301918501908083838215610188575b80518252602083111561018857601f199092019160209182019101610168565b505050905090810190601f1680156101b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041e57fe5b6101e1600160a060020a0360043516602435610ea7565b604080519115158252519081900360200190f35b341561045157fe5b610211600435610f7f565b005b341561046657fe5b610211600435611129565b005b341561047b57fe5b6102236111d2565b60408051918252519081900360200190f35b341561049d57fe5b6101e1600435600160a060020a03602435166111d8565b604080519115158252519081900360200190f35b34156104d057fe5b6101e1600160a060020a036004351660243561124e565b604080519115158252519081900360200190f35b341561050357fe5b6102236112f1565b60408051918252519081900360200190f35b341561052557fe5b610223600160a060020a03600435811690602435166112f7565b60408051918252519081900360200190f35b341561055957fe5b610223611324565b60408051918252519081900360200190f35b341561057b57fe5b61022361132a565b60408051918252519081900360200190f35b600d805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600081600160a060020a03811615156106a75760006000fd5b600160a060020a038316600090815260056020526040902054839060ff1615156106d15760006000fd5b604080517f72656d6f76652d6f776e6572000000000000000000000000000000000000000081526c01000000000000000000000000600160a060020a03871602600c820152905190819003602001902061072a816113ac565b156108a75760016004805490500360035460018111801561074b5750808210155b15156107575760006000fd5b61075f611576565b600160a060020a0387166000908152600560205260408120805460ff1916905595505b6004546000190186101561085a5786600160a060020a03166004878154811015156107a957fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316141561084e576004805460001981019081106107ea57fe5b906000526020600020900160005b9054906101000a9004600160a060020a031660048781548110151561081957fe5b906000526020600020900160005b6101000a815481600160a060020a030219169083600160a060020a0316021790555061085a565b5b600190950194610782565b60048054600019019061086d90826117b7565b50604051600160a060020a038816907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25b5b50505b5b505b505b505050565b60005481565b600080600160a060020a03841615156108d05760006000fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610916908463ffffffff61163016565b600160a060020a03808716600090815260016020526040808220939093559086168152205461094b908463ffffffff61164716565b600160a060020a038516600090815260016020526040902055610974818463ffffffff61163016565b600160a060020a038087166000818152600260209081526040808320338616845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3600191505b509392505050565b600f5481565b600081600a5443101515156109ff5760006000fd5b600854600054610a15908363ffffffff61164716565b1115610a215760006000fd5b610a2961132a565b811115610a365760006000fd5b604080517f6d696e740000000000000000000000000000000000000000000000000000000081526c01000000000000000000000000600160a060020a038716026004820152601881018590529051908190036038019020610a96816113ac565b15610bbd57610aa361132a565b600c55600954610aba90439063ffffffff61164716565b600a55600054610ad0908563ffffffff61164716565b6000908155600160a060020a038616815260016020526040902054610afb908563ffffffff61164716565b600160a060020a03861660008181526001602090815260409182902093909355600b548151908152928301879052805191927f4e3883c75cc9c752bb1db2e406a822e4a75067ae77ad9a0a4d179f2709b9e1f6929081900390910190a2604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3600b54610bad90600163ffffffff61164716565b600b55610bb8611576565b600192505b5b5b505b5092915050565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610c2557600160a060020a033381166000908152600260209081526040808320938816835292905290812055610c5c565b610c35818463ffffffff61163016565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529482529182902054825190815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3600191505b5092915050565b80600160a060020a0381161515610cda5760006000fd5b600160a060020a038216600090815260056020526040902054829060ff1615610d035760006000fd5b604080517f6164642d6f776e6572000000000000000000000000000000000000000000000081526c01000000000000000000000000600160a060020a038616026009820152905190819003601d019020610d5c816113ac565b156108aa576004805460018101610d7383826117b7565b916000526020600020900160005b8154600160a060020a038089166101009390930a83810291021990911617909155600081815260056020526040808220805460ff19166001179055519192507ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25b5b5b505b505b5050565b600160a060020a0381166000908152600160205260409020545b919050565b600a5481565b600b5481565b600e805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b6000600160a060020a0383161515610ebf5760006000fd5b600160a060020a033316600090815260016020526040902054610ee8908363ffffffff61163016565b600160a060020a033381166000908152600160205260408082209390935590851681522054610f1d908363ffffffff61164716565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b92915050565b600160a060020a0333166000908152600560205260408120548190819060ff161515610fab5760006000fd5b6000848152600660209081526040808320600160a060020a0333168452600281019092529091205490935060ff16156108aa575050600180820180549091019055600160a060020a03331660009081526002820160205260408120805460ff19169055805b600454811015611067576110528460048381548110151561102d57fe5b906000526020600020900160005b9054906101000a9004600160a060020a03166111d8565b1561105e576001909101905b5b600101611010565b600082116110dc5760078054600019810190811061108157fe5b906000526020600020900160005b505483546007805490919081106110a257fe5b906000526020600020900160005b505560078054906110c59060001983016117b7565b506000848152600660205260408120818155600101555b60408051600160a060020a03331681526020810186905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5b5b50505050565b6004548160018111801561113d5750808210155b15156111495760006000fd5b604080517f6368616e67652d726571756972656d656e740000000000000000000000000000815260128101859052905190819003603201902061118b816113ac565b156108aa5760038490556040805185815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a15b5b5b505b505050565b60085481565b600081600160a060020a03811615156111f15760006000fd5b600160a060020a03331660009081526005602052604090205460ff1615156112195760006000fd5b6000848152600660209081526040808320600160a060020a038716845260020190915290205460ff1691505b5b5b5092915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054611286908363ffffffff61164716565b600160a060020a0333811660008181526002602090815260408083209489168084529482529182902085905581519485529051929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60035481565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60095481565b6000600b54600114156113405750600c546113a7565b61136f6402540be40061136364024cfe11d1600c5461166190919063ffffffff16565b9063ffffffff61169016565b905061138860005460085461163090919063ffffffff16565b8111156113a7576000546008546113a49163ffffffff61163016565b90505b5b5b90565b600160a060020a033316600090815260056020526040812054819060ff1615156113d65760006000fd5b5060008281526006602052604090206001810154151561144c576113f9836116ad565b6003546001808301919091556007805491611416919083016117b7565b50600780549061142990600183016117b7565b80825560078054859290811061143b57fe5b906000526020600020900160005b50555b61145683336111d8565b15156115645760408051600160a060020a03331681526020810185905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a16001818101541161152c576114b4836116ad565b6007805460001981019081106114c657fe5b906000526020600020900160005b505481546007805490919081106114e757fe5b906000526020600020900160005b5055600780549061150a9060001983016117b7565b506000838152600660205260408120818155600190810191909155915061156f565b60018082018054600019019055600160a060020a03331660009081526002830160205260409020805460ff191690911790555b61156a565b60006000fd5b600091505b5b50919050565b600160a060020a033316600090815260056020526040812054819060ff1615156115a05760006000fd5b505060075460005b8181101561161c576115d76007828154811015156115c257fe5b906000526020600020900160005b50546116ad565b600660006007838154811015156115ea57fe5b906000526020600020900160005b5054815260208101919091526040016000908120818155600101555b6001016115a8565b60006108ac6007826117b7565b505b5b5050565b60008282111561163c57fe5b508082035b92915050565b60008282018381101561165657fe5b8091505b5092915050565b600082820283158061167d575082848281151561167a57fe5b04145b151561165657fe5b8091505b5092915050565b60006000828481151561169f57fe5b0490508091505b5092915050565b600160a060020a03331660009081526005602052604081205460ff1615156116d55760006000fd5b5060005b600454811015610dea57600082815260066020526040812060048054600290920192918490811061170657fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff16156117a8576000828152600660205260408120600480546002909201918391908590811061176657fe5b906000526020600020900160005b90546101009190910a9004600160a060020a031681526020810191909152604001600020805460ff19169115159190911790555b5b6001016116d9565b5b5b5050565b8154818355818115116108ac576000838152602090206108ac918101908301611835565b5b505050565b8154818355818115116108ac576000838152602090206108ac918101908301611835565b5b505050565b8154818355818115116108ac576000838152602090206108ac918101908301611835565b5b505050565b6113a791905b8082111561184f576000815560010161183b565b5090565b90565b6113a791905b8082111561184f576000815560010161183b565b5090565b905600a165627a7a723058209a1bb977857602702c06a5e4b23157e8c33f0f010fdce8f1d3ea06b298687366002900000000000000000000000035d1e834514a86828e3946bbc2c6273e6d0ce0d300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003000000000000000000000000232602cec23dc38a5b1224037198aba0ed146f4a000000000000000000000000d930a8c01abb2849434c744132552ac4a230f6a5000000000000000000000000c0094efe4654c6e6babd16471e589c9580384ace

Deployed Bytecode

0x606060405236156101305763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610132578063095ea7b3146101c2578063173825d9146101f557806318160ddd1461021357806323b872dd14610235578063313ce5671461026e57806340c10f191461029057806366188463146102c35780637065cb48146102f657806370a08231146103145780637ef4cabb1461034257806388c6abf81461036457806395d89b4114610386578063a9059cbb14610416578063b75c7dc614610449578063ba51a6df1461045e578063bac21a2214610473578063c2cf732614610495578063d73dd623146104c8578063dc8452cd146104fb578063dd62ed3e1461051d578063ef7f23a614610551578063fc82d0f714610573575bfe5b341561013a57fe5b610142610595565b604080516020808252835181830152835191928392908301918501908083838215610188575b80518252602083111561018857601f199092019160209182019101610168565b505050905090810190601f1680156101b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101ca57fe5b6101e1600160a060020a0360043516602435610623565b604080519115158252519081900360200190f35b34156101fd57fe5b610211600160a060020a036004351661068e565b005b341561021b57fe5b6102236108b1565b60408051918252519081900360200190f35b341561023d57fe5b6101e1600160a060020a03600435811690602435166044356108b7565b604080519115158252519081900360200190f35b341561027657fe5b6102236109e4565b60408051918252519081900360200190f35b341561029857fe5b6101e1600160a060020a03600435166024356109ea565b604080519115158252519081900360200190f35b34156102cb57fe5b6101e1600160a060020a0360043516602435610bc8565b604080519115158252519081900360200190f35b34156102fe57fe5b610211600160a060020a0360043516610cc3565b005b341561031c57fe5b610223600160a060020a0360043516610dee565b60408051918252519081900360200190f35b341561034a57fe5b610223610e0d565b60408051918252519081900360200190f35b341561036c57fe5b610223610e13565b60408051918252519081900360200190f35b341561038e57fe5b610142610e19565b604080516020808252835181830152835191928392908301918501908083838215610188575b80518252602083111561018857601f199092019160209182019101610168565b505050905090810190601f1680156101b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041e57fe5b6101e1600160a060020a0360043516602435610ea7565b604080519115158252519081900360200190f35b341561045157fe5b610211600435610f7f565b005b341561046657fe5b610211600435611129565b005b341561047b57fe5b6102236111d2565b60408051918252519081900360200190f35b341561049d57fe5b6101e1600435600160a060020a03602435166111d8565b604080519115158252519081900360200190f35b34156104d057fe5b6101e1600160a060020a036004351660243561124e565b604080519115158252519081900360200190f35b341561050357fe5b6102236112f1565b60408051918252519081900360200190f35b341561052557fe5b610223600160a060020a03600435811690602435166112f7565b60408051918252519081900360200190f35b341561055957fe5b610223611324565b60408051918252519081900360200190f35b341561057b57fe5b61022361132a565b60408051918252519081900360200190f35b600d805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600081600160a060020a03811615156106a75760006000fd5b600160a060020a038316600090815260056020526040902054839060ff1615156106d15760006000fd5b604080517f72656d6f76652d6f776e6572000000000000000000000000000000000000000081526c01000000000000000000000000600160a060020a03871602600c820152905190819003602001902061072a816113ac565b156108a75760016004805490500360035460018111801561074b5750808210155b15156107575760006000fd5b61075f611576565b600160a060020a0387166000908152600560205260408120805460ff1916905595505b6004546000190186101561085a5786600160a060020a03166004878154811015156107a957fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316141561084e576004805460001981019081106107ea57fe5b906000526020600020900160005b9054906101000a9004600160a060020a031660048781548110151561081957fe5b906000526020600020900160005b6101000a815481600160a060020a030219169083600160a060020a0316021790555061085a565b5b600190950194610782565b60048054600019019061086d90826117b7565b50604051600160a060020a038816907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25b5b50505b5b505b505b505050565b60005481565b600080600160a060020a03841615156108d05760006000fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610916908463ffffffff61163016565b600160a060020a03808716600090815260016020526040808220939093559086168152205461094b908463ffffffff61164716565b600160a060020a038516600090815260016020526040902055610974818463ffffffff61163016565b600160a060020a038087166000818152600260209081526040808320338616845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3600191505b509392505050565b600f5481565b600081600a5443101515156109ff5760006000fd5b600854600054610a15908363ffffffff61164716565b1115610a215760006000fd5b610a2961132a565b811115610a365760006000fd5b604080517f6d696e740000000000000000000000000000000000000000000000000000000081526c01000000000000000000000000600160a060020a038716026004820152601881018590529051908190036038019020610a96816113ac565b15610bbd57610aa361132a565b600c55600954610aba90439063ffffffff61164716565b600a55600054610ad0908563ffffffff61164716565b6000908155600160a060020a038616815260016020526040902054610afb908563ffffffff61164716565b600160a060020a03861660008181526001602090815260409182902093909355600b548151908152928301879052805191927f4e3883c75cc9c752bb1db2e406a822e4a75067ae77ad9a0a4d179f2709b9e1f6929081900390910190a2604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3600b54610bad90600163ffffffff61164716565b600b55610bb8611576565b600192505b5b5b505b5092915050565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610c2557600160a060020a033381166000908152600260209081526040808320938816835292905290812055610c5c565b610c35818463ffffffff61163016565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529482529182902054825190815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3600191505b5092915050565b80600160a060020a0381161515610cda5760006000fd5b600160a060020a038216600090815260056020526040902054829060ff1615610d035760006000fd5b604080517f6164642d6f776e6572000000000000000000000000000000000000000000000081526c01000000000000000000000000600160a060020a038616026009820152905190819003601d019020610d5c816113ac565b156108aa576004805460018101610d7383826117b7565b916000526020600020900160005b8154600160a060020a038089166101009390930a83810291021990911617909155600081815260056020526040808220805460ff19166001179055519192507ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25b5b5b505b505b5050565b600160a060020a0381166000908152600160205260409020545b919050565b600a5481565b600b5481565b600e805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b6000600160a060020a0383161515610ebf5760006000fd5b600160a060020a033316600090815260016020526040902054610ee8908363ffffffff61163016565b600160a060020a033381166000908152600160205260408082209390935590851681522054610f1d908363ffffffff61164716565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b92915050565b600160a060020a0333166000908152600560205260408120548190819060ff161515610fab5760006000fd5b6000848152600660209081526040808320600160a060020a0333168452600281019092529091205490935060ff16156108aa575050600180820180549091019055600160a060020a03331660009081526002820160205260408120805460ff19169055805b600454811015611067576110528460048381548110151561102d57fe5b906000526020600020900160005b9054906101000a9004600160a060020a03166111d8565b1561105e576001909101905b5b600101611010565b600082116110dc5760078054600019810190811061108157fe5b906000526020600020900160005b505483546007805490919081106110a257fe5b906000526020600020900160005b505560078054906110c59060001983016117b7565b506000848152600660205260408120818155600101555b60408051600160a060020a03331681526020810186905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5b5b50505050565b6004548160018111801561113d5750808210155b15156111495760006000fd5b604080517f6368616e67652d726571756972656d656e740000000000000000000000000000815260128101859052905190819003603201902061118b816113ac565b156108aa5760038490556040805185815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a15b5b5b505b505050565b60085481565b600081600160a060020a03811615156111f15760006000fd5b600160a060020a03331660009081526005602052604090205460ff1615156112195760006000fd5b6000848152600660209081526040808320600160a060020a038716845260020190915290205460ff1691505b5b5b5092915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054611286908363ffffffff61164716565b600160a060020a0333811660008181526002602090815260408083209489168084529482529182902085905581519485529051929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60035481565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60095481565b6000600b54600114156113405750600c546113a7565b61136f6402540be40061136364024cfe11d1600c5461166190919063ffffffff16565b9063ffffffff61169016565b905061138860005460085461163090919063ffffffff16565b8111156113a7576000546008546113a49163ffffffff61163016565b90505b5b5b90565b600160a060020a033316600090815260056020526040812054819060ff1615156113d65760006000fd5b5060008281526006602052604090206001810154151561144c576113f9836116ad565b6003546001808301919091556007805491611416919083016117b7565b50600780549061142990600183016117b7565b80825560078054859290811061143b57fe5b906000526020600020900160005b50555b61145683336111d8565b15156115645760408051600160a060020a03331681526020810185905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a16001818101541161152c576114b4836116ad565b6007805460001981019081106114c657fe5b906000526020600020900160005b505481546007805490919081106114e757fe5b906000526020600020900160005b5055600780549061150a9060001983016117b7565b506000838152600660205260408120818155600190810191909155915061156f565b60018082018054600019019055600160a060020a03331660009081526002830160205260409020805460ff191690911790555b61156a565b60006000fd5b600091505b5b50919050565b600160a060020a033316600090815260056020526040812054819060ff1615156115a05760006000fd5b505060075460005b8181101561161c576115d76007828154811015156115c257fe5b906000526020600020900160005b50546116ad565b600660006007838154811015156115ea57fe5b906000526020600020900160005b5054815260208101919091526040016000908120818155600101555b6001016115a8565b60006108ac6007826117b7565b505b5b5050565b60008282111561163c57fe5b508082035b92915050565b60008282018381101561165657fe5b8091505b5092915050565b600082820283158061167d575082848281151561167a57fe5b04145b151561165657fe5b8091505b5092915050565b60006000828481151561169f57fe5b0490508091505b5092915050565b600160a060020a03331660009081526005602052604081205460ff1615156116d55760006000fd5b5060005b600454811015610dea57600082815260066020526040812060048054600290920192918490811061170657fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff16156117a8576000828152600660205260408120600480546002909201918391908590811061176657fe5b906000526020600020900160005b90546101009190910a9004600160a060020a031681526020810191909152604001600020805460ff19169115159190911790555b5b6001016116d9565b5b5b5050565b8154818355818115116108ac576000838152602090206108ac918101908301611835565b5b505050565b8154818355818115116108ac576000838152602090206108ac918101908301611835565b5b505050565b8154818355818115116108ac576000838152602090206108ac918101908301611835565b5b505050565b6113a791905b8082111561184f576000815560010161183b565b5090565b90565b6113a791905b8082111561184f576000815560010161183b565b5090565b905600a165627a7a723058209a1bb977857602702c06a5e4b23157e8c33f0f010fdce8f1d3ea06b2986873660029

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

00000000000000000000000035d1e834514a86828e3946bbc2c6273e6d0ce0d300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003000000000000000000000000232602cec23dc38a5b1224037198aba0ed146f4a000000000000000000000000d930a8c01abb2849434c744132552ac4a230f6a5000000000000000000000000c0094efe4654c6e6babd16471e589c9580384ace

-----Decoded View---------------
Arg [0] : _initialSupplyAddress (address): 0x35d1e834514a86828e3946bBc2c6273E6d0ce0D3
Arg [1] : _additionalOwners (address[]): 0x232602cec23DC38a5b1224037198aBa0ed146F4A,0xD930A8c01ABB2849434C744132552AC4A230F6a5,0xC0094EfE4654C6e6BaBD16471e589C9580384ACE

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000035d1e834514a86828e3946bbc2c6273e6d0ce0d3
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 000000000000000000000000232602cec23dc38a5b1224037198aba0ed146f4a
Arg [4] : 000000000000000000000000d930a8c01abb2849434c744132552ac4a230f6a5
Arg [5] : 000000000000000000000000c0094efe4654c6e6babd16471e589c9580384ace


Swarm Source

bzzr://9a1bb977857602702c06a5e4b23157e8c33f0f010fdce8f1d3ea06b298687366

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.