Sponsored:   Ubex.com - Crypto Valley IAB member. Traded on Bitforex, Bitmart, Btc-Alpha, IDEX, Bilaxy, soon on Lbank.
Contract Overview
Balance: 133,101.926164791017852377 Ether
Ether Value: $32,601,985.79 (@ $244.94/ETH)
Transactions: 175 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73at txn 0xf6d06bedd5f4030157e6f8ae101574f0564d6727e7e03e6cbdc0ede32f13be75
Token Balance:
 Latest 25 txns From a total of 175 Transactions

TxHash Age From To Value [TxFee]
0xba8efa814373a5c41bad0bd27dc5ec9d7487ea281299b8d1f6eef2b055693a804 days 15 hrs ago0x3ba456b07af82c5e7d6ece71d37aecaaeafae0a7  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.08161364 Ether0.000248468
0x666087cb30e7760cd3f0128b229d1a6d26f3a3817707421080757600f49705979 days 9 hrs ago0xf73b054c28d95598f49ec9b42793dac18fba07e0  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c20.10706909 Ether0.000180704
0x817b750073d9b267f8da33f6a91e432d6f81e7c6b0fb8f2ecb42b0be4f9d44fd18 days 4 hrs ago0x7550ee9ba2243b4d5f6830c419522267acbd5ee5  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c37.69691327 Ether0.00011294
0x1594b6c890c41a5b29695682a15f58b6d2b66165b589dc79490faaa8b355494b23 days 10 hrs ago0xd3aff80b2dfea45b757cea75e54bab015f6bc0f3  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c22.41476434 Ether0.000180704
0x93323b176d09fa94031ef9a5de0ab751004ee4ab37a4d1a18602b3dc495d669427 days 8 hrs ago0x3e78e2a7c217649fea62073e149599a49a0f64d0  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c16.28352763 Ether0.00011294
0xc58408cc850ad87d65f667769e9553f85ca7193bbf162625b34bb0122ac0f1f358 days 13 hrs ago0x8a1dc2c65f303173338e30ea1f42b5217b8d40ed  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c14.9219522 Ether0.0000463054
0xff46e4b303cd5d749c3643f64e7ca72d91d90a3c00492c510529207e61d386ca60 days 8 hrs ago0x826a77a955a80acfc60cec078a85bf0e266b4628  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c14.99969012 Ether0.000090352
0xd8189d5e87b933dafe678ef8e6e5f544b350d90aee1647fb6c9aff35ff536d8460 days 23 hrs ago0x5450b10de13833044a2a714a5a7307e49dd7b664  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c1.40252642 Ether0.00011294
0x26bdb23942e8c9550018c9a031ea44b6528074c35ee92777bee092d5c586646f63 days 17 hrs ago0xe84c70d1526530d47fc6a0c4519654df7ecb277f  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c10,767.19684312625 Ether0.00011294
0xcebb47938929d4013c4f5117e1099bd23ae1e2893b7fdc8ade6115a34a126f3563 days 17 hrs ago0x2f9fdb4ec574c8ac3ffc0277e6a0892ce38d79e2  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c5,848.728728269353 Ether0.00011294
0xd206c5b01240e38dcb3c1c9887d8b36ee77886672ecc133e2afa2d9b053446ba69 days 18 hrs ago0xb2ae9b15fe69ef2dd7e41883d7b2a1d3d6abd3f3  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c34.00148412 Ether0.00022588
0x2e138577c329320e5fcb81bb19f3177bf117abdb098b8794510b1475eb0ddf5f71 days 15 hrs ago0xaf983a44d3ee65207bcfcf671ebe6518cc229665  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.03033612 Ether0.00135528
0x123c89cf80282922e5114a29f2afa56450d8ce463debaef3aa6538c61126ea5571 days 15 hrs ago0x93bdaa8e35a44eec8766da94b5c693704d2091ab  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c3.43655198 Ether0.00135528
0x0672a63caf4241c9c9a0b2715f24d8357ec385abafa3e43af7ada6c55369e6fd74 days 5 hrs ago0xfbd06573ec1d5264633a323246693d490a855617  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c9.8539033 Ether0.000587288
0x321470f4d11f9016455fd1ac3620f8187c12a4e4b56161ee72f9906e823f36e787 days 10 hrs ago0x47cd3c95525a64656eab5eb762951281f418d203  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c7,849.499651296 Ether0.000180704
0x82abf420e1b0a61e04a2b688253c252823b31214d2e257222f3b2daee6587c2f87 days 10 hrs ago0x6d1627e046613482740ea35573a92e45558cb348  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c9,018.000705821 Ether0.000180704
0x903ce0812cc10f2e642b17c0b0e40ad039f3e883373baee522aede121c5bf32a87 days 10 hrs ago0x93b034ff9a29d39a4ae52ffb658dd573f39e51ff  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c13,927.280563974867777 Ether0.000180704
0x4a16d829d1f0723efbff816a3bf78b6a6aebce5915d2f37b0f93fb7be4fb819791 days 15 hrs ago0x392cc8c76090a40c2395e9c77cac43d58ec7153b  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c5.87661112 Ether0.000067764
0x379d4d06bbacf819f87ec8e09866607687a438acc3a160bccb9410d34d0e4dda92 days 15 hrs ago0x57abe6cf749f83a2e99728bf00b4ec70dd2c649c  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c57.69940712 Ether0.000045176
0x3726f04773146f92de8e0976b0d6ca79869d091b48bf97bd55b75553487f3f5692 days 15 hrs ago0x5437183656c0d07838ca87f3ef5b547b211f0cc2  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c4.46288897 Ether0.000045176
0xcbe22ea814085bdf9a870157c3d3d641a1d01d38a3cf5c38e299e168147fd8d592 days 15 hrs ago0xbae265bffadd0e7855669a93f7a76821e15d9c10  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c1.56384212 Ether0.000045176
0xaa41e7ccda41d5b76d41b92e7a75121c8babe458519a4731935a4434249874c797 days 6 hrs ago0x765ab7e503293bf87c7f10c381361c65237a2911  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c11.23489808 Ether0.000090352
0xe6494ffdad9184def32bce28b11f47edd9edb0628460795cc74189114585cdeb107 days 13 hrs ago0x49af1fd3e5c563c7914d253ea7d4c78dba22ede9  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c9.99952212 Ether0.000271056
0xd7280389258b09641b628031cbc2ccd9a1a3d52a0260a799b1b544d0201336bb107 days 13 hrs ago0x92338c9d00b90f5729a1b88c81c06c4d4b5c337e  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c1.84062372 Ether0.000271056
0xdab07fa52ee3025c45c5bf9c85524666654178d3d3884ba781f2de0a512301e1107 days 13 hrs ago0xc74975a4843f196e825fbcf741da72f35517f501  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.86171956 Ether0.000271056
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 17 Internal Transactions

ParentTxHash Block Age From To Value
0x2287d8c79d4fec75821b2bf0bdd3317702a7b5ea00393821c3e33ca5bc8569d0611021046 days 14 hrs ago0x1522900b6dafac587d499a862861c0869be6e4280x1e39fbf0c16a20f65613a4ed1baa088a8937b15c9,000 Ether
0x885ed91c2eb6458c36af396de137d63e68e26e8602bf1440e949718872de54b35417519166 days 4 hrs ago0x31a240648e2baf4f9f17225987f6f53fceb1699a0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.000000007777777777 Ether
0xa0866f4741e7d552e4408cc24737f3333bb024108a25cb2ee172e245e7f23d154896649254 days 10 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b35,000 Ether
0x6b356ceded52da461fd372da28a2bc7a21bb9d9dcb69a766e4528347201ca4d34853506262 days 9 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b45,000 Ether
0x53af2270508b6e9a9fae31cc96abf6e36ea1445f23d01cc2cd1ef8781d3fd6f64849384263 days 3 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b30,000 Ether
0xc5991933121607aab618b1c72632bd6e1d86de63bc788d81e225488d646a67054771533276 days 11 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b30,000 Ether
0x60fe746558ee48469c6c43b7ac1ed5ef6f1688374816bf07564554cf15e023074760082278 days 12 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b30,000 Ether
0x7be8650ea66fdc76c9cedb55860c23594a9ee028ef2c391f34d2d863b6f04c784720814285 days 8 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b65,000 Ether
0x998eb5e1d3906935c907852f33cabc7da3258f8e7f0ca4a119fed4c8c68ce57c4669484294 days 8 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b15,000 Ether
0xe57139e994e247416af3d1673411e76d2de02a1ad3b5ffbff6c5e82351426f104669469294 days 8 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b0.000000000000015 Ether
0xd3ee6bfc22999599e69e870e7afcf70c7cade509a8c2dc1a9ce080d524d4841e4650527297 days 10 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b25,000 Ether
0x767ee8a0a3a3f743e87d2d8dd4fc98d5380d82831d50f2dd26a8a3c9f45e687e4626705301 days 8 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b8,000 Ether
0x0acbc34073e882e735bcb9190ccc912c3010221eeffe8210fc14da9d812a206d4608240304 days 7 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b20,000 Ether
0xaf9f2b60e6097976c488087c6ed3089f87489a515ab3b360bcbc80420b552a7d4584965308 days 2 hrs ago0x1522900b6dafac587d499a862861c0869be6e4280x1e39fbf0c16a20f65613a4ed1baa088a8937b15c11,000 Ether
0x7bd55ac46920582b0c7e91a2a80a8f27d84acc018eca4bd18afbec514c28e9f54552209313 days 8 hrs ago0x54e1ae2a4c55c00d82699d8a27c058f1c55280c60x1e39fbf0c16a20f65613a4ed1baa088a8937b15c34,784.706899095 Ether
0xa7e9ba007c74e9c7084a2485f76eeda536e07a70cd0e962c2e4292500c6a0fd84551915313 days 9 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x2a7077399b3e90f5392d55a1dc7046ad8d1523480.01 Ether
0xf6d06bedd5f4030157e6f8ae101574f0564d6727e7e03e6cbdc0ede32f13be754516309319 days 2 hrs ago0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73  Contract Creation0 Ether
[ Download CSV Export  ] 
Contract Name: MultiSigWalletWithDailyLimit
Compiler Text: v0.4.4+commit.4633f3de
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.4;


/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <[email protected]>
contract MultiSigWallet {

    uint constant public MAX_OWNER_COUNT = 50;

    event Confirmation(address indexed sender, uint indexed transactionId);
    event Revocation(address indexed sender, uint indexed transactionId);
    event Submission(uint indexed transactionId);
    event Execution(uint indexed transactionId);
    event ExecutionFailure(uint indexed transactionId);
    event Deposit(address indexed sender, uint value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint required);

    mapping (uint => Transaction) public transactions;
    mapping (uint => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    address[] public owners;
    uint public required;
    uint public transactionCount;

    struct Transaction {
        address destination;
        uint value;
        bytes data;
        bool executed;
    }

    modifier onlyWallet() {
        if (msg.sender != address(this))
            throw;
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        if (isOwner[owner])
            throw;
        _;
    }

    modifier ownerExists(address owner) {
        if (!isOwner[owner])
            throw;
        _;
    }

    modifier transactionExists(uint transactionId) {
        if (transactions[transactionId].destination == 0)
            throw;
        _;
    }

    modifier confirmed(uint transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notConfirmed(uint transactionId, address owner) {
        if (confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notExecuted(uint transactionId) {
        if (transactions[transactionId].executed)
            throw;
        _;
    }

    modifier notNull(address _address) {
        if (_address == 0)
            throw;
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        if (   ownerCount > MAX_OWNER_COUNT
            || _required > ownerCount
            || _required == 0
            || ownerCount == 0)
            throw;
        _;
    }

    /// @dev Fallback function allows to deposit ether.
    function()
        payable
    {
        if (msg.value > 0)
            Deposit(msg.sender, msg.value);
    }

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners and required number of confirmations.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    function MultiSigWallet(address[] _owners, uint _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint i=0; i<_owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == 0)
                throw;
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }

    /// @dev Allows to add a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of new owner.
    function addOwner(address owner)
        public
        onlyWallet
        ownerDoesNotExist(owner)
        notNull(owner)
        validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        OwnerAddition(owner);
    }

    /// @dev Allows to remove an owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner.
    function removeOwner(address owner)
        public
        onlyWallet
        ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint i=0; i<owners.length - 1; i++)
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        owners.length -= 1;
        if (required > owners.length)
            changeRequirement(owners.length);
        OwnerRemoval(owner);
    }

    /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner to be replaced.
    /// @param owner Address of new owner.
    function replaceOwner(address owner, address newOwner)
        public
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
    {
        for (uint i=0; i<owners.length; i++)
            if (owners[i] == owner) {
                owners[i] = newOwner;
                break;
            }
        isOwner[owner] = false;
        isOwner[newOwner] = true;
        OwnerRemoval(owner);
        OwnerAddition(newOwner);
    }

    /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
    /// @param _required Number of required confirmations.
    function changeRequirement(uint _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        RequirementChange(_required);
    }

    /// @dev Allows an owner to submit and confirm a transaction.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function submitTransaction(address destination, uint value, bytes data)
        public
        returns (uint transactionId)
    {
        transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
    }

    /// @dev Allows an owner to confirm a transaction.
    /// @param transactionId Transaction ID.
    function confirmTransaction(uint transactionId)
        public
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        Confirmation(msg.sender, transactionId);
        executeTransaction(transactionId);
    }

    /// @dev Allows an owner to revoke a confirmation for a transaction.
    /// @param transactionId Transaction ID.
    function revokeConfirmation(uint transactionId)
        public
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        Revocation(msg.sender, transactionId);
    }

    /// @dev Allows anyone to execute a confirmed transaction.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction tx = transactions[transactionId];
            tx.executed = true;
            if (tx.destination.call.value(tx.value)(tx.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                tx.executed = false;
            }
        }
    }

    /// @dev Returns the confirmation status of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Confirmation status.
    function isConfirmed(uint transactionId)
        public
        constant
        returns (bool)
    {
        uint count = 0;
        for (uint i=0; i<owners.length; i++) {
            if (confirmations[transactionId][owners[i]])
                count += 1;
            if (count == required)
                return true;
        }
    }

    /*
     * Internal functions
     */
    /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function addTransaction(address destination, uint value, bytes data)
        internal
        notNull(destination)
        returns (uint transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        Submission(transactionId);
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns number of confirmations of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Number of confirmations.
    function getConfirmationCount(uint transactionId)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]])
                count += 1;
    }

    /// @dev Returns total number of transactions after filers are applied.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Total number of transactions after filters are applied.
    function getTransactionCount(bool pending, bool executed)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
                count += 1;
    }

    /// @dev Returns list of owners.
    /// @return List of owner addresses.
    function getOwners()
        public
        constant
        returns (address[])
    {
        return owners;
    }

    /// @dev Returns array with owner addresses, which confirmed transaction.
    /// @param transactionId Transaction ID.
    /// @return Returns array of owner addresses.
    function getConfirmations(uint transactionId)
        public
        constant
        returns (address[] _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint count = 0;
        uint i;
        for (i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]]) {
                confirmationsTemp[count] = owners[i];
                count += 1;
            }
        _confirmations = new address[](count);
        for (i=0; i<count; i++)
            _confirmations[i] = confirmationsTemp[i];
    }

    /// @dev Returns list of transaction IDs in defined range.
    /// @param from Index start position of transaction array.
    /// @param to Index end position of transaction array.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Returns array of transaction IDs.
    function getTransactionIds(uint from, uint to, bool pending, bool executed)
        public
        constant
        returns (uint[] _transactionIds)
    {
        uint[] memory transactionIdsTemp = new uint[](transactionCount);
        uint count = 0;
        uint i;
        for (i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
            {
                transactionIdsTemp[count] = i;
                count += 1;
            }
        _transactionIds = new uint[](to - from);
        for (i=from; i<to; i++)
            _transactionIds[i - from] = transactionIdsTemp[i];
    }
}

/// @title Multisignature wallet with daily limit - Allows an owner to withdraw a daily limit without multisig.
/// @author Stefan George - <[email protected]>
contract MultiSigWalletWithDailyLimit is MultiSigWallet {

    event DailyLimitChange(uint dailyLimit);

    uint public dailyLimit;
    uint public lastDay;
    uint public spentToday;

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners, required number of confirmations and daily withdraw limit.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    /// @param _dailyLimit Amount in wei, which can be withdrawn without confirmations on a daily basis.
    function MultiSigWalletWithDailyLimit(address[] _owners, uint _required, uint _dailyLimit)
        public
        MultiSigWallet(_owners, _required)
    {
        dailyLimit = _dailyLimit;
    }

    /// @dev Allows to change the daily limit. Transaction has to be sent by wallet.
    /// @param _dailyLimit Amount in wei.
    function changeDailyLimit(uint _dailyLimit)
        public
        onlyWallet
    {
        dailyLimit = _dailyLimit;
        DailyLimitChange(_dailyLimit);
    }

    /// @dev Allows anyone to execute a confirmed transaction or ether withdraws until daily limit is reached.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        Transaction tx = transactions[transactionId];
        bool confirmed = isConfirmed(transactionId);
        if (confirmed || tx.data.length == 0 && isUnderLimit(tx.value)) {
            tx.executed = true;
            if (!confirmed)
                spentToday += tx.value;
            if (tx.destination.call.value(tx.value)(tx.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                tx.executed = false;
                if (!confirmed)
                    spentToday -= tx.value;
            }
        }
    }

    /*
     * Internal functions
     */
    /// @dev Returns if amount is within daily limit and resets spentToday after one day.
    /// @param amount Amount to withdraw.
    /// @return Returns if amount is under daily limit.
    function isUnderLimit(uint amount)
        internal
        returns (bool)
    {
        if (now > lastDay + 24 hours) {
            lastDay = now;
            spentToday = 0;
        }
        if (spentToday + amount > dailyLimit || spentToday + amount < spentToday)
            return false;
        return true;
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns maximum withdraw amount.
    /// @return Returns amount.
    function calcMaxWithdraw()
        public
        constant
        returns (uint)
    {
        if (now > lastDay + 24 hours)
            return dailyLimit;
        return dailyLimit - spentToday;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"calcMaxWithdraw","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"dailyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"lastDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"name":"_transactionIds","type":"uint256[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_dailyLimit","type":"uint256"}],"name":"changeDailyLimit","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"spentToday","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_dailyLimit","type":"uint256"}],"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dailyLimit","type":"uint256"}],"name":"DailyLimitChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","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":false,"name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260405161163038038061163083398101604052805160805160a05191909201919082826000825182603282118061003a57508181115b80610043575080155b8061004c575081155b1561005657610002565b600092505b84518310156100ce576002600050600086858151811015610002576020908102909101810151600160a060020a031682528101919091526040016000205460ff16806100c45750848381518110156100025790602001906020020151600160a060020a03166000145b1561015357610002565b845160038054828255600082905290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b918201916020890182156101cd579160200282015b828111156101cd5782518254600160a060020a0319166c0100000000000000000000000091820291909104178255602090920191600190910190610114565b600160026000506000878681518110156100025790602001906020020151600160a060020a0316815260200190815260200160002060006101000a81548160ff02191690837f010000000000000000000000000000000000000000000000000000000000000090810204021790555060019092019161005b565b506101f39291505b80821115610213578054600160a060020a03191681556001016101d5565b505050600492909255505050600655506114199050806102176000396000f35b509056606060405236156101325760e060020a6000350463025e7c278114610180578063173825d9146101b257806320ea8d86146101df5780632f54bf6e146102135780633411c81c146102335780634bc9fdc214610260578063547415251461028357806367eeba0c146102f75780636b0c932d146103055780637065cb4814610313578063784547a71461033e5780638b51d13f1461034e5780639ace38c2146103c2578063a0e67e2b146103fd578063a8abe69a1461046e578063b5dc40c31461054d578063b77bf60014610659578063ba51a6df14610667578063c01a8c8414610693578063c6427474146106a3578063cea0862114610714578063d74f8edd1461073f578063dc8452cd1461074c578063e20056e61461075a578063ee22610b1461078a578063f059cf2b1461079a575b6107a8600034111561017e57604080513481529051600160a060020a033316917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b565b34610002576107aa60043560038054829081101561000257600091825260209091200154600160a060020a0316905081565b34610002576107a8600435600030600160a060020a031633600160a060020a0316141515610a1a57610002565b34610002576107a8600435600160a060020a033390811660009081526002602052604090205460ff161515610c5f57610002565b34610002576107c660043560026020526000908152604090205460ff1681565b34610002576001602090815260043560009081526040808220909252602435815220546107c69060ff1681565b34610002576107da6007546000906201518001421115610d0f5750600654610d18565b34610002576107da6004356024356000805b600554811015610d1b578380156102be575060008181526020819052604090206003015460ff16155b806102e257508280156102e2575060008181526020819052604090206003015460ff165b156102ef57600191909101905b600101610295565b34610002576107da60065481565b34610002576107da60075481565b34610002576107a860043530600160a060020a031633600160a060020a0316141515610d2257610002565b34610002576107c6600435610801565b34610002576107da6004356000805b600354811015610e52576000838152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156103ba57600191909101905b60010161035d565b34610002576000602081905260043581526040902080546001820154600383015461087993600160a060020a03909316926002019060ff1684565b346100025760408051602080820183526000825260038054845181840281018401909552808552610923949283018282801561046257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610444575b50505050509050610d18565b34610002576109236004356024356044356064356040805160208181018352600080835283519182018452808252600554935192939192909182918059106104b35750595b9080825280602002602001820160405280156104ca575b509250600091508190505b600554811015610e58578580156104fe575060008181526020819052604090206003015460ff16155b806105225750848015610522575060008181526020819052604090206003015460ff165b156105455780838381518110156100025760209081029091010152600191909101905b6001016104d5565b34610002576109236004356040805160208181018352600080835283519182018452808252600354935192939192909182918059106105895750595b9080825280602002602001820160405280156105a0575b509250600091508190505b600354811015610ecd576000858152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561065157600380548290811015610002576000918252602090912001548351600160a060020a03909116908490849081101561000257600160a060020a03909216602092830290910190910152600191909101905b6001016105ab565b34610002576107da60055481565b34610002576107a86004355b30600160a060020a031633600160a060020a0316141515610f4957610002565b34610002576107a8600435610974565b3461000257604080516020600460443581810135601f81018490048402850184019095528484526107da948235946024803595606494929391909201918190840183828082843750949650505050505050600061096d848484600083600160a060020a0381161515610b6157610002565b34610002576107a860043530600160a060020a031633600160a060020a031614151561101457610002565b34610002576107da603281565b34610002576107da60045481565b34610002576107a8600435602435600030600160a060020a031633600160a060020a031614151561104f57610002565b34610002576107a86004356109f7565b34610002576107da60085481565b005b60408051600160a060020a039092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600084815260208190526040902092506111c2845b600080805b600354811015610872576000848152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561086357600191909101905b600454821415610e4a57600192505b5050919050565b60408051600160a060020a03861681526020810185905282151560608201526080918101828152845460026000196101006001841615020190911604928201839052909160a0830190859080156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b50509550505050505060405180910390f35b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b905061100d815b33600160a060020a03811660009081526002602052604090205460ff161515610fb457610002565b6000858152600160208181526040808420600160a060020a0333168086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ce6855b6000818152602081905260408120600301548190839060ff16156107ec57610002565b600160a060020a038216600090815260026020526040902054829060ff161515610a4357610002565b600160a060020a0383166000908152600260205260408120805460ff1916905591505b60035460001901821015610b085782600160a060020a0316600360005083815481101561000257600091825260209091200154600160a060020a03161415610b3857600380546000198101908110156100025760009182526020909120015460038054600160a060020a039092169184908110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600380546000198101808355919082908015829011610b4357600083815260209020610b43918101908301610c0e565b600190910190610a66565b505060035460045411159150610c26905057600354610c2690610673565b60055460408051608081018252878152602080820188815282840188815260006060850181905286815280845294852084518154606060020a91820291909104600160a060020a031990911617815591516001808401919091559051805160028085018054818a5298879020999b5096989497601f9481161561010002600019011604830185900484019490939291019083901061137e57805160ff19168380011785555b506113ae9291505b80821115610c225760008155600101610c0e565b5090565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff161515610cee57610002565b6000858152600160209081526040808320600160a060020a0333168085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35b505b50505050565b600084815260208190526040902060030154849060ff1615610c9457610002565b50600854600654035b90565b5092915050565b600160a060020a038116600090815260026020526040902054819060ff1615610d4a57610002565b81600160a060020a0381161515610d6057610002565b6003546004546001909101906032821180610d7a57508181115b80610d83575080155b80610d8c575081155b15610d9657610002565b600160a060020a0385166000908152600260205260409020805460ff19166001908117909155600380549182018082559091908281838015829011610dec57600083815260209020610dec918101908301610c0e565b50505060009283525060208220018054600160a060020a031916606060020a88810204179055604051600160a060020a038716917ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25050505050565b600101610806565b50919050565b878703604051805910610e685750595b908082528060200260200182016040528015610e7f575b5093508790505b86811015610ec2578281815181101561000257906020019060200201518489830381518110156100025760209081029091010152600101610e86565b505050949350505050565b81604051805910610edb5750595b908082528060200260200182016040528015610ef2575b509350600090505b81811015610f41578281815181101561000257906020019060200201518482815181101561000257600160a060020a03909216602092830290910190910152600101610efa565b505050919050565b600354816032821180610f5b57508181115b80610f64575080155b80610f6d575081155b15610f7757610002565b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b6000828152602081905260409020548290600160a060020a03161515610fd957610002565b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561099c57610002565b9392505050565b60068190556040805182815290517fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca29181900360200190a150565b600160a060020a038316600090815260026020526040902054839060ff16151561107857610002565b600160a060020a038316600090815260026020526040902054839060ff16156110a057610002565b600092505b60035483101561111d5784600160a060020a0316600360005084815481101561000257600091825260209091200154600160a060020a031614156111b7578360036000508481548110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600160a060020a03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b6001909201916110a5565b9150818061123157506002808401546000196101006001831615020116041580156112315750600183015461123190600754600090620151800142111561120d574260075560006008555b600654600854830111806112245750600854828101105b1561141057506000611414565b15610ce85760038301805460ff1916600117905581151561125b5760018301546008805490910190555b825460018085015460405160028088018054600160a060020a039096169593949093839285926000199083161561010002019091160480156112de5780601f106112b3576101008083540402835291602001916112de565b820191906000526020600020905b8154815290600101906020018083116112c157829003601f168201915b505091505060006040518083038185876185025a03f1925050501561132d5760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610ce8565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038301805460ff19169055811515610ce8575050600101546008805491909103905550565b82800160010185558215610c06579182015b82811115610c06578251826000505591602001919060010190611390565b5050606091909101516003909101805460ff191660f860020a9283029290920491909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b5060015b91905056000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000008ac7230489e80000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000085e6ecb2b3511bffe4edf4cd3b00caf3802702e100000000000000000000000000a245706741d7949c82356ef9955dd3f7bfc21700000000000000000000000028bbf0ef519f72cafea000eaf64ed679dbdda738

 

View All
Block Age transaction Difficulty 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.