Latest 25 transactions from a total of 28490 transactions

TxHash Age From To Value [TxFee]
0x5186f10bfc6cf2e979f8266054c9cfc9cbf51123de607591cfd107dc4d55f8ef10 hrs 7 mins ago0x9210d8ab955d5761825329fbd50503d754a24be2  IN   OpenTradingNetworkToken0 Ether0.00109605
0xeecc59b353480a0dd86ecaa85da51b8a63c96f3347fdde35ab3dba5eb6757e1a16 hrs 47 mins ago0x097031752baafc976386eb90e70a480fd210a14c  IN   OpenTradingNetworkToken0 Ether0.00010955331
0xfdceb51822d25cbc1afdef09443a28817939d36f62a3546042891b4bbc754dfb1 day 28 mins ago0x75d75b8361fa5d4592837f1dbee6b700b1101ade  IN   OpenTradingNetworkToken0 Ether0.000109605
0x62498e7f4723757c3ae039f34fe460cbfd8810cac15a8eb691502e8309c7b02b1 day 31 mins agoHitBTC_2  IN   OpenTradingNetworkToken0 Ether0.0003266991
0xc0566a9930a842a052cefedf0fe3c18564c23671ac31d9ae27411f0b6434aff71 day 17 hrs ago0x097031752baafc976386eb90e70a480fd210a14c  IN   OpenTradingNetworkToken0 Ether0.000311142
0x5ac7bd2150c15ae6628a43f882acac1479586b3d2047149fd31d7ff7d9522f362 days 12 hrs ago0x5580121e0b5e2ab4053f0baa39892cb851f1372d  IN   OpenTradingNetworkToken0 Ether0.002128761
0x4a32574e428fd096465c15d77bb8ffde9bc4bc40e97e46ca543bb14c7ff6bb652 days 17 hrs agoHitBTC_2  IN   OpenTradingNetworkToken0 Ether0.000331713
0x52aeee233c489721cff53451bb5f7c376b448c3e3552db7cd40be79a4b2d0b592 days 17 hrs ago0x885ec7b5c5c2c54903af8485fcd8a51a1c15e936  IN   OpenTradingNetworkToken0 Ether0.000207428
0x5ca282e67b0c2a8e44ec726bcba979204a327fe3ce81daf4382b7b10a72854a63 days 7 hrs ago0x29ca63efd2b8de7049a015facc9b3532923dd1d2  IN   OpenTradingNetworkToken0 Ether0.00109605
0x76084fb0b774e8e273582e84052f4fa4100677cb87f251df1af7cb20efbb959e3 days 12 hrs agoHitBTC_2  IN   OpenTradingNetworkToken0 Ether0.000294856
0x21c6ce12f749d8ee81a80d67f18b0e85d81220954003faa85405b45ea98d48cc3 days 13 hrs ago0xc4200fb6097588b0bfa491c7c61f30ae48fdc9d3  IN   OpenTradingNetworkToken0 Ether0.000110763
0x0587eb299cf004dcff1da6ac69ce086563dd9bea060b46d7a0f50bdc9793aacc3 days 13 hrs ago0xc4200fb6097588b0bfa491c7c61f30ae48fdc9d3  IN   OpenTradingNetworkToken0 Ether0.000155763
0x46f003f48eac13bedda0f9d877c003adbe2999c7bba95b5e7746454d07260f7f3 days 14 hrs ago0xc4200fb6097588b0bfa491c7c61f30ae48fdc9d3  IN   OpenTradingNetworkToken0 Ether0.000155571
0x66ad70fa14b5f5c1ca397465d38986150bb1d06f4e3e3deba66084777cfc88644 days 11 hrs ago0x097031752baafc976386eb90e70a480fd210a14c  IN   OpenTradingNetworkToken0 Ether0.000155763
0x718a348e71b9cb0b5ea5e06d404740a57133ccf43860debbd77798027695fdd24 days 20 hrs agoHitBTC_2  IN   OpenTradingNetworkToken0 Ether0.000259605
0x2877a5828eee69b8b311ea2b209fd2a86fe2f58a5eb9cba39caf0099c4bcbec84 days 20 hrs agoHitBTC_3  IN   OpenTradingNetworkToken0 Ether0.000295368
0x5b4cfa158f06bd0d3deeb5fbed4cacad4fd33c5a2df17166ec2eb944e889943c4 days 20 hrs ago0x0fa8435ff97b025b570e493c604f88418c0bce24  IN   OpenTradingNetworkToken0 Ether0.0000394578
0xd8e0550ec51b00f412099330c02758cb94488d96c7c3d705e4462b4ba382bedc4 days 20 hrs ago0xf2b4c55a91f9f517f01b2947c258883fc0348e0f  IN   OpenTradingNetworkToken0 Ether0.0000394578
0xe8e9d0487ad43e8cfef4192aae44bed60595dc421cccb55b5ffae950fd061a9b4 days 20 hrs ago0x31398a687d7946c87247770401b08ca839ed27cd  IN   OpenTradingNetworkToken0 Ether0.0000394578
0xcf1784a4fe60a0289efa566c95d03c7d1c1e157086e56cbedda233b3daf865ef4 days 20 hrs ago0xd5d0e860c0795fdc2fbe63f2696bbe5576b42d2c  IN   OpenTradingNetworkToken0 Ether0.0000393426
0x357c72617a6dbe1718ede8ae95554cb9564d378295639cb32f3b606fc7b16b794 days 20 hrs ago0x55f963b82d99464be642d6db66f263693a4a6cf9  IN   OpenTradingNetworkToken0 Ether0.0000392274
0xef0e6be8b345a897613931f7db990b61f80af34a84ef88f243890136d458ca744 days 20 hrs ago0x738ff6d64c1a6c6cae6d3d32a296de12aeb14167  IN   OpenTradingNetworkToken0 Ether0.0000393426
0x35aa0ad3b20c76bb840a3fe0b018ba8825eccd9ff85616fc3fc629d4ec1154434 days 20 hrs ago0x555c6683e318128386a51ec02fe663d80a41a1dd  IN   OpenTradingNetworkToken0 Ether0.0000394578
0x6605025bc48c04b6ec3b0b12b2cc05533114f9674c16900fd7e1d18ef26a2f864 days 20 hrs ago0x8f56b342de31a30f5e84d25411515ae5fa0bcbf5  IN   OpenTradingNetworkToken0 Ether0.0000394578
0x34fc0de61fe212230c885f6fe1aa43bc2874f2ff0bc0bcd5e74029c849495b714 days 20 hrs ago0x9bf82ad588d08bbf3782a3a899898081cc23d33c  IN   OpenTradingNetworkToken0 Ether0.0000394578
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Name: OTNToken
Compiler Text: 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

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


   Swarm Source:
bzzr://9a1bb977857602702c06a5e4b23157e8c33f0f010fdce8f1d3ea06b298687366

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.