Sponsored Link:   $30 Mn 5 star ICO - TrakInvest building crypto AI engine. Buy TRAK token now here.
 Latest 25 txns from a total Of 24424 transactions
View All

TxHash Age From To Value [TxFee]
0x74bd9103b623478ce28ad2ffb23c1a935324852f462509e11211080d3d80ce2d3 mins ago0xce17e399af12eb5551c1b599b5f96c85de968d84  IN   OpenTradingNetworkToken0 Ether0.000240427
0x59ad029b1c3ff127c4bb720e1064a6034d160555781efcfe939bdcceef82112610 mins ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00155571
0x03506bb55c31760bf00ea96d336136a69ea654c41521754f2bd67b70a38079482 hrs 44 mins ago0xc6dcc9683e1548a40c34f32dae5b3f034f0ad6d9  IN   OpenTradingNetworkToken0 Ether0.002339320921
0xa74f6476f5736175ea8b2e7ef41f49a141cb714639d8cde0a7b7981f0334a37d6 hrs 49 mins ago0x3e5d55d1c0c0c9f9170e9fde569b1a6a0439d8f2  IN   OpenTradingNetworkToken0 Ether0.00073842
0xa5ad79a46f541830eb17f25f708e33adfe68a8695fe01646b4c144564b6fe14e9 hrs 17 mins agoHitBTC_2  IN   OpenTradingNetworkToken0 Ether0.0004459697
0x9eca405352cfade0b083a239f1a99c7b4835a2cf43c4b0bf33b907059ebfd18b20 hrs 12 mins ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00155571
0x30d9ee34a59a470e8918d9f9978b4503b2e0293e3a19c0f83ca1d98c8e2b600321 hrs 23 mins ago0x7220daa62c5d01fcef388fce34a636899461eabf  IN   OpenTradingNetworkToken0 Ether0.00103586
0x71c7a5c5ee0d5865fec9f5c06d6c21cc011b06b052c3c0633449d42ccb2ebcea21 hrs 37 mins ago0x65a40fe9253adc48ae12c0a9ce0569b4195d9d46  IN   OpenTradingNetworkToken0 Ether0.002126137
0xfef455249d381d828728afd7107ba81e5d6870ac9351510ad136d104a73c6b4422 hrs 31 mins ago0x3e5d55d1c0c0c9f9170e9fde569b1a6a0439d8f2  IN   OpenTradingNetworkToken0 Ether0.00073842
0x17c3e4399a4b20fb9d3e961e3f8bf7e8f9f0c55d2eaaa958c641bc6ad39d911122 hrs 37 mins ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00155571
0xc5f335443a7b5474c43113e6c5ebb0b772d8449a1f765d79c1bc108e9e05abe722 hrs 42 mins ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00155571
0x03f231587571adeb6635c5304b053c87478580daaabc54699497529949408eba22 hrs 46 mins ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00155763
0x6a72f09214053d3b27ab0a79d2a4d9e3a13b0ea9762ac943513b4f795e778c7723 hrs 48 mins ago0x3e5d55d1c0c0c9f9170e9fde569b1a6a0439d8f2  IN   OpenTradingNetworkToken0 Ether0.00103714
0xeb371c8251e663e44b897f757694ca5640545b6a0136262c3cc46a44fed15d0e23 hrs 52 mins ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00155571
0x61f3a618d182ce33bc801dfff1d19953b1cdc2a261856e39c37ac24dab02d0341 day 1 hr ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.00036921
0xd9b78439fb480006485f2d9f20f7b8d91c64073daf88878fb65307aa699368d21 day 4 hrs ago0xc6dcc9683e1548a40c34f32dae5b3f034f0ad6d9  IN   OpenTradingNetworkToken0 Ether0.001912789197
0x4261e8b88e32fde7a976d03aa2eae01a13e8deff50613f384696d6906c6e0d5a1 day 5 hrs ago0x3e5d55d1c0c0c9f9170e9fde569b1a6a0439d8f2  IN   OpenTradingNetworkToken0 Ether0.00103842
0xf19a2386377476c22924cbb29d3b8622c96aed2bdedb0be5c337799b7779e0501 day 5 hrs agoHitBTC_2  IN   OpenTradingNetworkToken0 Ether0.0005639121
0x1d7d4e14be823c95fb007c90356d551bf8af4b84eff41447ff5a84a0b20ac5a31 day 11 hrs ago0xfdce579aac71821670756f1cb4fa4546d6417392  IN   OpenTradingNetworkToken0 Ether0.000262284
0xb73bcd42b0e650dcbf68d83ecc7f93fe8256ff59d3e05a77e4bdb83679f045a61 day 11 hrs ago0xbc92f01855ac7d9c91c5d8bdc0769acbf59a9143  IN   OpenTradingNetworkToken0 Ether0.00259285
0x36c96bdad8ee708d061bc4df02d69a63e019f3bc0fd43763a19f409c268e88bd1 day 12 hrs ago0x69702877651421c9f3e82bdb30b5572465ce08c5  IN   OpenTradingNetworkToken0 Ether0.005133843
0xdab0a011c5995626eb15fd4691157a73a0f202b4894fb654cea299a660a187b01 day 12 hrs ago0xfdce579aac71821670756f1cb4fa4546d6417392  IN   OpenTradingNetworkToken0 Ether0.000262284
0x961d02b874d8c49953dbc8d1a8ddfd9d3431a66246794e955ae809aa2706bf2f1 day 12 hrs ago0xbc92f01855ac7d9c91c5d8bdc0769acbf59a9143  IN   OpenTradingNetworkToken0 Ether0.00259285
0x0f93a16befa1ac1c4e70ac40ce817ecfd9406b912ae7a4d1313b7f631aaca0451 day 16 hrs ago0xbc92f01855ac7d9c91c5d8bdc0769acbf59a9143  IN   OpenTradingNetworkToken0 Ether0.00184285
0x1821a47340a39450eb4c4b2a074b34d27b4a2a26c31e9c92e84d13027bbfa0791 day 18 hrs ago0x2718b09c18941e72b15c640cd10c0d6ec0a48e7f  IN   OpenTradingNetworkToken0 Ether0.000241835
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
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.