Latest 25 txns From a total of 27244 Transactions

TxHash Age From To Value [TxFee]
0xdb14e834f09948fc54d436c0cd4ee855873a8af2b55923521e2164ffd1ba45521 hr 28 mins ago0x6bb698d7134f5d39eb4f7437f543aa4b5800ddf3  IN   OpenTradingNetworkToken0 Ether0.000109925
0xa5c468e452d1141edadb896677b627480cf1c2e4f9d0ca71b31db55c7f88b1bb1 hr 33 mins ago0x884867d7ff50df14c2f2c57f63c55ab3bf4d25da  IN   OpenTradingNetworkToken0 Ether0.00184605
0xa75938a0e98462c51d9114b44cf85b5eba211469718e22d29b85c7fae66a33536 hrs 2 mins ago0x977407aee5748177f15f755e2783f3228d9409db  IN   OpenTradingNetworkToken0 Ether0.000211056
0xf864bfa2eedff06da3659a73d0ac36458f48739ac62378384563ce251e9933ac6 hrs 7 mins ago0x588902411a0f682acb1532e813311f0a10e6aef9  IN   OpenTradingNetworkToken0 Ether0.000184925
0xe310669ef9d4522050deeca882908bfa013567b7d71b0a7323806e7fca7f7ecf10 hrs 49 mins ago0x7516bc9eb8a504b392f1ce5c778c3698fbf319d2  IN   OpenTradingNetworkToken0 Ether0.000109285
0x6dd9a2f3eee0b1c39514b2ce683527e42e59ffa2735d9d8df45377418273b28f10 hrs 54 mins ago0xb7bf6180a21fad6f81cad47bd6200df32fa1d113  IN   OpenTradingNetworkToken0 Ether0.002126137
0xdcf89501f75eacc85becf3b9812c051ecec515b48be480ae73a5b43aa8cffa4d11 hrs 8 mins ago0x7516bc9eb8a504b392f1ce5c778c3698fbf319d2  IN   OpenTradingNetworkToken0 Ether0.0001046064
0xe503422db010cce78bccbecd34cf288b80773cc84710ae4a868e33076d1a54ba11 hrs 15 mins ago0xb7bf6180a21fad6f81cad47bd6200df32fa1d113  IN   OpenTradingNetworkToken0 Ether0.002123513
0x2881fee771d5e1d5f294f523919080991329da6c9c36f585b7cf2079eb791fae1 day 12 hrs ago0x0e4e82710128248739229dd88c7d462e83dbfa1b  IN   OpenTradingNetworkToken0 Ether0.0001424865
0xbad1ef112d0677bb59e9db923cac41d287be1eacbd383764e2585425205704b71 day 12 hrs ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00103842
0xe302989b2d9d3693495e1163eeea5c62b1878b20858fd5c5eea1b7f4f55d367a1 day 13 hrs ago0x052c2b1dfa5692c9e829194ecc23ba9327f52879  IN   OpenTradingNetworkToken0 Ether0.000114066218
0xca61896ac0c06fec278d9b8e8bf3bffb94cbaf02b40aaff14097adf0f6ec09cc1 day 14 hrs ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.000311142
0x093dba01a2a957ec93f4e8a83bf17c79120978c2cacbb9d0cccb621f15a39b061 day 17 hrs ago0xc4200fb6097588b0bfa491c7c61f30ae48fdc9d3  IN   OpenTradingNetworkToken0 Ether0.000165279164
0x30de33f0b04961d23999c53620f637bcdebb35e5db5e91471b697b2979e208142 days 7 hrs ago0xe80548f34d9451218a952df1e22eb8cf36104f7a  IN   OpenTradingNetworkToken0 Ether0.000065763
0xb855e8bcfb8802560b1300efdadc1238c51d0c4a82bf3575101f986f6cc47fa42 days 7 hrs ago0x2984581ece53a4390d1f568673cf693139c97049  IN   OpenTradingNetworkToken0 Ether0.00103842
0xf8c4e44cee66969eb6c0c15a804da4c142bee73e086b461eefcd39776119bcad2 days 8 hrs ago0xaea2e7093536e5ad18a24603f0950e9fecf4ed28  IN   OpenTradingNetworkToken0 Ether0.000088196
0x9ac0105ec52d3eba8e0b3f9a996d417612d81303aa8ee86aaa8b4f17de35a7922 days 8 hrs ago0x929a38a6641a61f5f6cb30b680fd3aac65784089  IN   OpenTradingNetworkToken0 Ether0.001037372
0x5943ec76ba3d77df928beb3d9ddff4f65ac070f1887938005d484414ecd238d12 days 10 hrs ago0xf0f81cd08600ebbcfddabdbe15262b22d87ef17f  IN   OpenTradingNetworkToken0 Ether0.000305998
0x348b5922cb05adb38329ad43fcd6e710051102c56eaff04eadea06a4afaeddbf2 days 10 hrs ago0x097031752baafc976386eb90e70a480fd210a14c  IN   OpenTradingNetworkToken0 Ether0.000725102
0x20e374181f3c06e453368f91777911b275230014c8d584b41a3809a7008ce9e92 days 11 hrs ago0xacfbb1a79180b8f4e6637c8c1686d955134124a0  IN   OpenTradingNetworkToken0 Ether0.000065763
0xebd1d91affc904b2c352b694625b4b62bbaf007d88d1dc627db89c122cc6c3952 days 11 hrs ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.000155763
0x4f9352bb2908d8a8cf5ffb8790235b6dcc5d43b0db14e8ce37f82eab84fa3ecd2 days 11 hrs ago0x0928448488833b33e5053c98adc772c9dc469608  IN   OpenTradingNetworkToken0 Ether0.000065571
0x96ca8801a89ef1c20022ddb3082418d759934a3bb18eb9be8a8c2b2ecef5e6952 days 11 hrs ago0x67b5ef408dfea81b1c745abf41bc50022282d548  IN   OpenTradingNetworkToken0 Ether0.000155571
0xfcaf6df8c40d9863b6cbbc6a1766d66bf1ca7da2dbe7733e2c80fa1a7e32506a2 days 16 hrs ago0xb9707447246f75881c72de09eb30005362a52548  IN   OpenTradingNetworkToken0 Ether0.000093849281
0xa2a15ea0d71ce1ed1844503abe432e7e6af6701d7347dbb92c754687a33ac3432 days 16 hrs ago0x65ec94b9330827b614b546d3123f66fe250c94cc  IN   OpenTradingNetworkToken0 Ether0.000294856
[ 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.