Sponsored:   Color - Revolutionizing the Dapp Ecosystem, Bounty & Airdrop, Get 240,000 COL NOW!
 Latest 25 txns from a total Of 26360 transactions

TxHash Age From To Value [TxFee]
0xa330f456474277c7459bdea693c315b6bcb07cc68e999ae59d5482e51ffa9db42 hrs 21 mins ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.00005237557
0x4c560e64f80a1924c0e99d7c4267e6c00b5116c7f852bba044b1b2c098847bcc1 day 1 hr ago0xf38978dc1a5de8dd00e3353c3c8a88d38d0a6f7c  IN   OpenTradingNetworkToken0 Ether0.000043842
0x804b58b8a802cbb546f5e29ee949d1055b78d6c4632b16319b49f2af4dce493d1 day 1 hr ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00103714
0x1e63b2420376c8e890c33608d9c624687f02346491e0ebf2c9ea7600ee39a45a1 day 2 hrs ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.0000552855
0x1491c0e6f7ba9f6ad509513c00149d9e0eea2a17abb8827193e78c9a34d2e3821 day 8 hrs ago0x7f96407e81e5efe61c61157de0bee765caf20f4f  IN   OpenTradingNetworkToken0 Ether0.001516385
0x5eac446d1f132e79c7381e2bae5f1b35242920e7c28dae3fe16d99e401f4e9ca1 day 12 hrs ago0xacb0500e1bdc7bd91e65870ab2ed3411dba1fb9a  IN   OpenTradingNetworkToken0 Ether0.00108965
0x08a630950d79c61b6c9d11a8ca31711e4ab5a4ba39a87bb2cb4485f8a1b045701 day 15 hrs ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.000207172
0xa5dc76a70095caeeb36f3de96fbf095d2a62452c9820bd93066e43ae365eb7e82 days 58 mins ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.000207684
0x1785b69007845eea9ba06ae5464710688197b0dc58374b8e6a7f1f2f442e270f2 days 14 hrs ago0x885ec7b5c5c2c54903af8485fcd8a51a1c15e936  IN   OpenTradingNetworkToken0 Ether0.000849183
0x96ac80cf98cfb02e718a898c5e46e8028128a67b4d07b8476df194cdeaa8659a2 days 16 hrs ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.003007706
0xf96ec2c1b6ce60535ee5ef09d3c6084f29b635673e47a2788572370969450c6f2 days 16 hrs ago0x097031752baafc976386eb90e70a480fd210a14c  IN   OpenTradingNetworkToken0 Ether0.002178339
0x2d84cda1c3b00769c1dd3afd4aaa108791d1210999efcbb3138cbdf1e6da11983 days 17 hrs ago0x4e338e8e7d5c527a73241cc116c16c8db0ad9a24  IN   OpenTradingNetworkToken0 Ether0.000182192
0x3670b00f89e39265239e125848fae57a80b02151678c2d80abd724edf376e0c73 days 20 hrs ago0xbc92f01855ac7d9c91c5d8bdc0769acbf59a9143  IN   OpenTradingNetworkToken0 Ether0.00184285
0x6231ed26a362a988368e95654385603456d4354aff5e68260cdbaeeb100a94c24 days 3 hrs ago0x26ebb22d5bd11ee0ff3f88a3634657b5a19d60f3  IN   OpenTradingNetworkToken0 Ether0.000136644
0xd362b446c9a5da94b95c52c28a0c4d88fef7723f80bb606e14f71457dc4d59544 days 10 hrs ago0xc6dcc9683e1548a40c34f32dae5b3f034f0ad6d9  IN   OpenTradingNetworkToken0 Ether0.002436793685
0x94ce410e88680550ec46cbbcbe82bb0a8fc9d6e309cfb8f5cab5ac983da1394a5 days 1 hr ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00073714
0x73fcd95e59800d61ae7a63298c883bc8ab686291894abb88270de6b4aa6acef65 days 4 hrs ago0x097031752baafc976386eb90e70a480fd210a14c  IN   OpenTradingNetworkToken0 Ether0.000155379
0x568418257ba060f5336d23a3b0da160f72b21d791f8c356e70e4772661728fd65 days 6 hrs ago0xe4febeba49d67727c08d2b8dbcf91dd512312305  IN   OpenTradingNetworkToken0 Ether0.000087172
0xa58f1f3ffa217e286e31d64ef816b97e4d5ffd759b5582940ad082a0547eae995 days 6 hrs ago0xbc92f01855ac7d9c91c5d8bdc0769acbf59a9143  IN   OpenTradingNetworkToken0 Ether0.00258965
0xfb4d85075cacb08ffbdc3ea4f50805c3c3b2c21baf2388b336f4852791c150a75 days 18 hrs ago0x097031752baafc976386eb90e70a480fd210a14c  IN   OpenTradingNetworkToken0 Ether0.000259285
0x09c6b29c38e292593436bb0804d409230314254b2b2226007569db6ee1d7fcca6 days 5 hrs agoHitBTC_2  IN   OpenTradingNetworkToken0 Ether0.000662274
0xc5bbba762227ac8c8b2eaf1278858ffe74ba00b8e384813482b92c6bdb58bedf6 days 5 hrs ago0x4e338e8e7d5c527a73241cc116c16c8db0ad9a24  IN   OpenTradingNetworkToken0 Ether0.000810854
0x203c346fa9a145bb3a9c64f946cf9be5fe31f3c52ed07b80a3af27e9ab61991d6 days 6 hrs ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.000259605
0x2464bf365f9563939b3c8e2cd510eb2c9ba85a1ac2ec1dd98efe2b000fa3f6e66 days 8 hrs ago0xc40d424474752c20a21fc9d181155868137616e2  IN   OpenTradingNetworkToken0 Ether0.001516385
0xe003801d372da0b7ef9c091983ba80da88407dd9180797f82b4bf937cd589bc26 days 11 hrs ago0xc6dcc9683e1548a40c34f32dae5b3f034f0ad6d9  IN   OpenTradingNetworkToken0 Ether0.000861897259
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Name: OTNToken
Compiler Version: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

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 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"}]

  Contract Creation Code Switch To Opcodes View
6001600b556000600c5560a0604052601460608190527f4f70656e2054726164696e67204e6574776f726b00000000000000000000000060809081526200004a91600d91906200039f565b506040805180820190915260038082527f4f544e000000000000000000000000000000000000000000000000000000000060209092019182526200009191600e916200039f565b506012600f553415620000a057fe5b60405162001d2938038062001d2983398101604052805160208201519091015b816a4158e694d13d54af000000694a1d89bb94865ec000006a52b7d2dcc80cd2e400000060648560025b81815b6000825160010182600181118015620001065750808210155b1515620001135760006000fd5b600480546001810162000127838262000425565b916000526020600020900160005b8154600160a060020a033381166101009390930a838102910219909116179091556000908152600560205260408120805460ff191660011790559350505b8451831015620002aa576005600086858151811015156200019057fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff16158015620001e757508451600090869085908110620001d157fe5b90602001906020020151600160a060020a031614155b1515620001f45760006000fd5b600480546001810162000208838262000425565b916000526020600020900160005b87868151811015156200022557fe5b90602001906020020151909190916101000a815481600160a060020a030219169083600160a060020a031602179055505060016005600087868151811015156200026b57fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff19169115159190911790555b60019092019162000173565b60038490555b5b5050505050600160a060020a03871615801590620002cf5750600086115b1515620002dc5760006000fd5b600c85905560088490556009839055620003054384640100000000620016476200038482021704565b600a55600054620003259087640100000000620016476200038482021704565b6000908155600160a060020a0388168152600160205260409020546200035a9087640100000000620016476200038482021704565b600160a060020a0388166000908152600160205260409020555b505050505050505b505062000476565b6000828201838110156200039457fe5b8091505b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003e257805160ff191683800117855562000412565b8280016001018555821562000412579182015b8281111562000412578251825591602001919060010190620003f5565b5b506200042192915062000452565b5090565b8154818355818115116200044c576000838152602090206200044c91810190830162000452565b5b505050565b6200047391905b8082111562000421576000815560010162000459565b5090565b90565b6118a380620004866000396000f300606060405236156101305763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610132578063095ea7b3146101c2578063173825d9146101f557806318160ddd1461021357806323b872dd14610235578063313ce5671461026e57806340c10f191461029057806366188463146102c35780637065cb48146102f657806370a08231146103145780637ef4cabb1461034257806388c6abf81461036457806395d89b4114610386578063a9059cbb14610416578063b75c7dc614610449578063ba51a6df1461045e578063bac21a2214610473578063c2cf732614610495578063d73dd623146104c8578063dc8452cd146104fb578063dd62ed3e1461051d578063ef7f23a614610551578063fc82d0f714610573575bfe5b341561013a57fe5b610142610595565b604080516020808252835181830152835191928392908301918501908083838215610188575b80518252602083111561018857601f199092019160209182019101610168565b505050905090810190601f1680156101b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101ca57fe5b6101e1600160a060020a0360043516602435610623565b604080519115158252519081900360200190f35b34156101fd57fe5b610211600160a060020a036004351661068e565b005b341561021b57fe5b6102236108b1565b60408051918252519081900360200190f35b341561023d57fe5b6101e1600160a060020a03600435811690602435166044356108b7565b604080519115158252519081900360200190f35b341561027657fe5b6102236109e4565b60408051918252519081900360200190f35b341561029857fe5b6101e1600160a060020a03600435166024356109ea565b604080519115158252519081900360200190f35b34156102cb57fe5b6101e1600160a060020a0360043516602435610bc8565b604080519115158252519081900360200190f35b34156102fe57fe5b610211600160a060020a0360043516610cc3565b005b341561031c57fe5b610223600160a060020a0360043516610dee565b60408051918252519081900360200190f35b341561034a57fe5b610223610e0d565b60408051918252519081900360200190f35b341561036c57fe5b610223610e13565b60408051918252519081900360200190f35b341561038e57fe5b610142610e19565b604080516020808252835181830152835191928392908301918501908083838215610188575b80518252602083111561018857601f199092019160209182019101610168565b505050905090810190601f1680156101b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041e57fe5b6101e1600160a060020a0360043516602435610ea7565b604080519115158252519081900360200190f35b341561045157fe5b610211600435610f7f565b005b341561046657fe5b610211600435611129565b005b341561047b57fe5b6102236111d2565b60408051918252519081900360200190f35b341561049d57fe5b6101e1600435600160a060020a03602435166111d8565b604080519115158252519081900360200190f35b34156104d057fe5b6101e1600160a060020a036004351660243561124e565b604080519115158252519081900360200190f35b341561050357fe5b6102236112f1565b60408051918252519081900360200190f35b341561052557fe5b610223600160a060020a03600435811690602435166112f7565b60408051918252519081900360200190f35b341561055957fe5b610223611324565b60408051918252519081900360200190f35b341561057b57fe5b61022361132a565b60408051918252519081900360200190f35b600d805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600081600160a060020a03811615156106a75760006000fd5b600160a060020a038316600090815260056020526040902054839060ff1615156106d15760006000fd5b604080517f72656d6f76652d6f776e6572000000000000000000000000000000000000000081526c01000000000000000000000000600160a060020a03871602600c820152905190819003602001902061072a816113ac565b156108a75760016004805490500360035460018111801561074b5750808210155b15156107575760006000fd5b61075f611576565b600160a060020a0387166000908152600560205260408120805460ff1916905595505b6004546000190186101561085a5786600160a060020a03166004878154811015156107a957fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a0316141561084e576004805460001981019081106107ea57fe5b906000526020600020900160005b9054906101000a9004600160a060020a031660048781548110151561081957fe5b906000526020600020900160005b6101000a815481600160a060020a030219169083600160a060020a0316021790555061085a565b5b600190950194610782565b60048054600019019061086d90826117b7565b50604051600160a060020a038816907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25b5b50505b5b505b505b505050565b60005481565b600080600160a060020a03841615156108d05760006000fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610916908463ffffffff61163016565b600160a060020a03808716600090815260016020526040808220939093559086168152205461094b908463ffffffff61164716565b600160a060020a038516600090815260016020526040902055610974818463ffffffff61163016565b600160a060020a038087166000818152600260209081526040808320338616845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3600191505b509392505050565b600f5481565b600081600a5443101515156109ff5760006000fd5b600854600054610a15908363ffffffff61164716565b1115610a215760006000fd5b610a2961132a565b811115610a365760006000fd5b604080517f6d696e740000000000000000000000000000000000000000000000000000000081526c01000000000000000000000000600160a060020a038716026004820152601881018590529051908190036038019020610a96816113ac565b15610bbd57610aa361132a565b600c55600954610aba90439063ffffffff61164716565b600a55600054610ad0908563ffffffff61164716565b6000908155600160a060020a038616815260016020526040902054610afb908563ffffffff61164716565b600160a060020a03861660008181526001602090815260409182902093909355600b548151908152928301879052805191927f4e3883c75cc9c752bb1db2e406a822e4a75067ae77ad9a0a4d179f2709b9e1f6929081900390910190a2604080518581529051600160a060020a038716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3600b54610bad90600163ffffffff61164716565b600b55610bb8611576565b600192505b5b5b505b5092915050565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610c2557600160a060020a033381166000908152600260209081526040808320938816835292905290812055610c5c565b610c35818463ffffffff61163016565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529482529182902054825190815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3600191505b5092915050565b80600160a060020a0381161515610cda5760006000fd5b600160a060020a038216600090815260056020526040902054829060ff1615610d035760006000fd5b604080517f6164642d6f776e6572000000000000000000000000000000000000000000000081526c01000000000000000000000000600160a060020a038616026009820152905190819003601d019020610d5c816113ac565b156108aa576004805460018101610d7383826117b7565b916000526020600020900160005b8154600160a060020a038089166101009390930a83810291021990911617909155600081815260056020526040808220805460ff19166001179055519192507ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25b5b5b505b505b5050565b600160a060020a0381166000908152600160205260409020545b919050565b600a5481565b600b5481565b600e805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b6000600160a060020a0383161515610ebf5760006000fd5b600160a060020a033316600090815260016020526040902054610ee8908363ffffffff61163016565b600160a060020a033381166000908152600160205260408082209390935590851681522054610f1d908363ffffffff61164716565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060015b92915050565b600160a060020a0333166000908152600560205260408120548190819060ff161515610fab5760006000fd5b6000848152600660209081526040808320600160a060020a0333168452600281019092529091205490935060ff16156108aa575050600180820180549091019055600160a060020a03331660009081526002820160205260408120805460ff19169055805b600454811015611067576110528460048381548110151561102d57fe5b906000526020600020900160005b9054906101000a9004600160a060020a03166111d8565b1561105e576001909101905b5b600101611010565b600082116110dc5760078054600019810190811061108157fe5b906000526020600020900160005b505483546007805490919081106110a257fe5b906000526020600020900160005b505560078054906110c59060001983016117b7565b506000848152600660205260408120818155600101555b60408051600160a060020a03331681526020810186905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5b5b50505050565b6004548160018111801561113d5750808210155b15156111495760006000fd5b604080517f6368616e67652d726571756972656d656e740000000000000000000000000000815260128101859052905190819003603201902061118b816113ac565b156108aa5760038490556040805185815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a15b5b5b505b505050565b60085481565b600081600160a060020a03811615156111f15760006000fd5b600160a060020a03331660009081526005602052604090205460ff1615156112195760006000fd5b6000848152600660209081526040808320600160a060020a038716845260020190915290205460ff1691505b5b5b5092915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054611286908363ffffffff61164716565b600160a060020a0333811660008181526002602090815260408083209489168084529482529182902085905581519485529051929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35060015b92915050565b60035481565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60095481565b6000600b54600114156113405750600c546113a7565b61136f6402540be40061136364024cfe11d1600c5461166190919063ffffffff16565b9063ffffffff61169016565b905061138860005460085461163090919063ffffffff16565b8111156113a7576000546008546113a49163ffffffff61163016565b90505b5b5b90565b600160a060020a033316600090815260056020526040812054819060ff1615156113d65760006000fd5b5060008281526006602052604090206001810154151561144c576113f9836116ad565b6003546001808301919091556007805491611416919083016117b7565b50600780549061142990600183016117b7565b80825560078054859290811061143b57fe5b906000526020600020900160005b50555b61145683336111d8565b15156115645760408051600160a060020a03331681526020810185905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a16001818101541161152c576114b4836116ad565b6007805460001981019081106114c657fe5b906000526020600020900160005b505481546007805490919081106114e757fe5b906000526020600020900160005b5055600780549061150a9060001983016117b7565b506000838152600660205260408120818155600190810191909155915061156f565b60018082018054600019019055600160a060020a03331660009081526002830160205260409020805460ff191690911790555b61156a565b60006000fd5b600091505b5b50919050565b600160a060020a033316600090815260056020526040812054819060ff1615156115a05760006000fd5b505060075460005b8181101561161c576115d76007828154811015156115c257fe5b906000526020600020900160005b50546116ad565b600660006007838154811015156115ea57fe5b906000526020600020900160005b5054815260208101919091526040016000908120818155600101555b6001016115a8565b60006108ac6007826117b7565b505b5b5050565b60008282111561163c57fe5b508082035b92915050565b60008282018381101561165657fe5b8091505b5092915050565b600082820283158061167d575082848281151561167a57fe5b04145b151561165657fe5b8091505b5092915050565b60006000828481151561169f57fe5b0490508091505b5092915050565b600160a060020a03331660009081526005602052604081205460ff1615156116d55760006000fd5b5060005b600454811015610dea57600082815260066020526040812060048054600290920192918490811061170657fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff16156117a8576000828152600660205260408120600480546002909201918391908590811061176657fe5b906000526020600020900160005b90546101009190910a9004600160a060020a031681526020810191909152604001600020805460ff19169115159190911790555b5b6001016116d9565b5b5b5050565b8154818355818115116108ac576000838152602090206108ac918101908301611835565b5b505050565b8154818355818115116108ac576000838152602090206108ac918101908301611835565b5b505050565b8154818355818115116108ac576000838152602090206108ac918101908301611835565b5b505050565b6113a791905b8082111561184f576000815560010161183b565b5090565b90565b6113a791905b8082111561184f576000815560010161183b565b5090565b905600a165627a7a723058209a1bb977857602702c06a5e4b23157e8c33f0f010fdce8f1d3ea06b298687366002900000000000000000000000035d1e834514a86828e3946bbc2c6273e6d0ce0d300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003000000000000000000000000232602cec23dc38a5b1224037198aba0ed146f4a000000000000000000000000d930a8c01abb2849434c744132552ac4a230f6a5000000000000000000000000c0094efe4654c6e6babd16471e589c9580384ace

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

-----Decoded View---------------
Found 6 constructor arguments :
Arg [0] : 00000000000000000000000035d1e834514a86828e3946bbc2c6273e6d0ce0d3
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 000000000000000000000000232602cec23dc38a5b1224037198aba0ed146f4a
Arg [4] : 000000000000000000000000d930a8c01abb2849434c744132552ac4a230f6a5
Arg [5] : 000000000000000000000000c0094efe4654c6e6babd16471e589c9580384ace


   Swarm Source:
bzzr://9a1bb977857602702c06a5e4b23157e8c33f0f010fdce8f1d3ea06b298687366

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.