Sponsored Link:  Download the Monaco app for Android and iOS on Aug 31 - www.mona.co
Contract Overview | district0xMultiSig
ETH Balance: 42,176.661268470837437369 Ether
ETH USD Value: $15,307,175.67 (@ $362.93/ETH)
No Of Transactions: 60 txns
  Latest 25 txns from a total Of 60 transactions View All

TxHash Age From To Value [TxFee]
0xc905284681985c80e6e9ceb466f1cd5b714383bdd5e7df109aba08029158f14b4 days 6 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.001643544
0x2368cc1adc5b4d3d57b45d958d4df404bc48e3ebb2d1ba4912223caa0b2c152d4 days 7 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.00150799
0xf71619794ef42e125a81a4f88149139e4096164772ea2d4d09c9d3d65daf549814 days 18 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.001643544
0xc0db33ece4704a5cd5e924dacd4666b0dc490fca6178ed6ee7a45d28eacbc45714 days 23 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.00109672
0x63fa9c59ed5bd841e68b1a9976a4f73f44854530d601e424ba6f4c5cc2fdba8d22 days 9 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.00039132
0x668e3d91f1c239555a01ac889cbe1d09366ea7c10b8c420ccabb2b434fd5508e23 days 12 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.00082254
0x639087b92e12b72f63043ee8f26c2affffcb8e980e5e16e851d30362d756f56934 days 7 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.000939168
0x8c12aba8944a83d09475ed54baeb014b1fa7c239a2ad0cc77b6bccb587ee18e634 days 8 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.00109672
0x86e1f696ed74265c9f4f190e487f8578ccdd91ba59e3bba6e599b5e7091f891438 days 21 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.000939168
0x0cdfad3017adb6d1086a7af550719655e8b08678815f30a41b2ade184347659e38 days 21 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.00287889
0xa17fcb263546568f18b5dd2c79a77f4f334ce3cbbbf7d73a8b97251c8ddad47846 days 12 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.000939168
0x27daea9916d53f70083a0cb948fca385a82e79aea58221dfbf61d4bdb7516ce046 days 13 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.00287889
0x1a7eb86fb3fdd7de929001105122f48fa02b7f6497f140cff0867878b4b713cc50 days 11 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.000939168
0xc4ca9f3a88a7379a5d33b5c35a81030284cc0898d52a9592e5f5f63679e08be350 days 12 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.00274052
0x74962bea71f125dc2b9c40cda61ee08894be2619db73b67b0e70a5cadeebb79151 days 13 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.000939168
0x36097ff1c2007a8df270a530b6b3a13936a59fc9790c8b1e2a040a5091a8dd5e51 days 13 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.002877546
0x5381c0d5fbbb07dd586e2f5f5d0ba0136b020db211201f4bb5e6bfdbad83938355 days 22 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.000939168
0x93d50ca0aa21ad356b081f69446a0a20494373f7fdc80036e96c70a5d60e608e55 days 22 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.002877546
0x4e71ba1a7d0d166630cd93f8a98e60eac9a514d3cc5615eef5ee3b851ea31c7f67 days 11 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.00078264
0xa4de674baa7607a7aba320bdd574d826788ad0e6d732ae0a7d8892929ca839e167 days 11 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.005440752507
0xb2a6483bc292d4749b89899ed4f7d1b6dddf6959b4adcda4d81f71952f79b09677 days 21 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.00078264
0x767b362413cf0f105078809f0a47da05d6ccabfbf75d6cea6d1c37d5db0c108077 days 21 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.00391755298
0xb2abee1f4f9a80fcae7b98253f7559d1794e163e931733c9800a5851b2319b0e80 days 35 mins ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.00078264
0xfe7b9bb20f5ec32357655c3b110d14376b7520ae94069ee5a40c2131fc55753280 days 10 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   district0xMultiSig0 Ether0.00383020899
0x90038fcf134583af0d05922551becdf005b7f89192ecd27b901f2cfca97c279494 days 11 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   district0xMultiSig0 Ether0.00078264
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0xc905284681985c80e6e9ceb466f1cd5b714383bdd5e7df109aba08029158f14b45746974 days 6 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb94.3 Ether
0xf71619794ef42e125a81a4f88149139e4096164772ea2d4d09c9d3d65daf5498450936314 days 18 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xc42b76447c640c2d84c3349129eaf51925ea169f96.938 Ether
0x63fa9c59ed5bd841e68b1a9976a4f73f44854530d601e424ba6f4c5cc2fdba8d446200322 days 9 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb33.5 Ether
0x639087b92e12b72f63043ee8f26c2affffcb8e980e5e16e851d30362d756f569438792734 days 7 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb92 Ether
0x86e1f696ed74265c9f4f190e487f8578ccdd91ba59e3bba6e599b5e7091f8914436561538 days 21 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x8f5aafde2f96238e88403a9af533f7d0440309f429.57 Ether
0xa17fcb263546568f18b5dd2c79a77f4f334ce3cbbbf7d73a8b97251c8ddad478434350546 days 12 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb96 Ether
0x1a7eb86fb3fdd7de929001105122f48fa02b7f6497f140cff0867878b4b713cc433213450 days 11 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb17 Ether
0x74962bea71f125dc2b9c40cda61ee08894be2619db73b67b0e70a5cadeebb791432908651 days 13 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb2 Ether
0x5381c0d5fbbb07dd586e2f5f5d0ba0136b020db211201f4bb5e6bfdbad839383431653855 days 22 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb10 Ether
0x4e71ba1a7d0d166630cd93f8a98e60eac9a514d3cc5615eef5ee3b851ea31c7f427892067 days 11 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb91.6 Ether
0xb2a6483bc292d4749b89899ed4f7d1b6dddf6959b4adcda4d81f71952f79b096424173177 days 21 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f482.9 Ether
0xb2abee1f4f9a80fcae7b98253f7559d1794e163e931733c9800a5851b2319b0e423416380 days 35 mins ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb60 Ether
0x90038fcf134583af0d05922551becdf005b7f89192ecd27b901f2cfca97c2794418002494 days 11 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb60 Ether
0x4533e73ed73dbca0997e2764abe8fee7b73dfedd94962fe1667a212e00fea1da4114175110 days 12 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb227 Ether
0x35b6e38b434f8781d1cfa18b4aebaa6a60e7b57aaced34f8d5dada534143dd584104243112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae680.28171949 Ether
0x47900a9725c40aec6fbf46889aa6d7c2721ed3fd8bfc681dd815347153b8011e4104243112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae683 Ether
0x05b9d0512d73f713f56845a7055ae823fe25e7ea790bbd60acd8bec293a209ce4104242112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae6810 Ether
0xfae5111e865cfde98e4a7e65ed8aa221c3feaaa843cfa908c2be0502719522954104242112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae680.5 Ether
0x4f056d6a6283c037813f7b513a1ddfa8de3fef55f5b3931aa6c969f7f7fa3ea64104239112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae687 Ether
0xb1cce3ff11bac44a7cbf81e25a4278832622c8820baf9ab35c0c5a9bf8f60f534104237112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae680.49682178 Ether
0x38d79d4c803ff759a924db64dc182061fbacf21a962d62f27e3ea964addc1fbb4104236112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae680.8 Ether
0x7adc7895bf1ce4c8be4484b299db413e6cd6bf7fbd709e50bf00c98b980b94d24104235112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae684.98 Ether
0x5d7d83ae7b5fc6bf1164379b5ed011f5b25af0d9fc9060a7cbe90415624311ed4104234112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae681 Ether
0x58139d2f0a912de861431e66688bcb1b0b9fba78cc67fefe334bd74d9c08cf504104234112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae6810 Ether
0x0cbf71379ca385450fc87b86d92172b80c1dda080339d0cec51bdd871298a37f4104233112 days 23 hrs ago0xf8094e15c897518b5ac5287d7070ca5850efc6ff0xd20e4d854c71de2428e1268167753e4c7070ae6820 Ether
[ Download CSV Export  ] 
Contract Name: MultiSigWalletWithDailyLimit
Compiler Version: 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 txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.