Sponsored:   Ubex.com - Additional 17% of tokens are available for purchase! Trading on exchanges already started.
 Latest 25 txns from a total Of 1239 transactions
(+1 PendingTxn)

TxHash Age From To Value [TxFee]
0xa31e4fede98cc6bef34117bca186fb98a583adb51a20ca22754e47c7e44b1e43(pending)0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether(pending)
0x365f4c4e176973a8a007114dce55371ff6eafb3de83120b5cdcf841bb87aec0e15 days 16 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00136796
0x34a1bc2f9e940b33cf1d729e196668af457c208f30c2dbb6a99a034a98db56d916 days 20 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00125659
0x1809e07a8732f19bf3f17043a549e419b5897a5894277ae3b04704cafa1a6f5b16 days 20 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00170995
0xd7af24bd49e1c999d7b959118be984566fa72f8f32d1257445c550d5a5ae7add19 days 20 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.001538955
0x6443e65d824a4d1bb83d1311dc828a7c30cd73e7964c2b35ad26b6b055ac8e5f65 days 22 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00444587
0x08648e468a504e9e3076afc620677132b7916673a9de5aaa484a05df843ade7b69 days 5 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00410388
0xe161da8bd7dc0219d0382109d437993196b185432a81c7b5553a2cb30d7b89c470 days 6 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.004958855
0x9038e0ff344d27e0cd154eb6e65f5a1727b896f925c618b5661c31b8618e75ae107 days 16 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.003518452
0x8d5a0255eeed6e4ccca0e49026535fca2721b778d82eedaa6a24ef3fbd117a08107 days 17 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00039132
0x1b167cbcc0b248c73b31e9bb7cd11b71ae3535999ca794bded1185f7748c1aa6107 days 19 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.002890157
0x71ea4620ecd43eea242cb08fd1162d57b1e25b1ea7c4ca3914708dbceb1d0aec108 days 4 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000482952
0xc0069faa155d96faf10c430602120f7b38f94ae92c599f0dd3a2495b9783361e108 days 4 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00032184
0x9d7f308c22ea11b8391a7a171238446d2b69a1aad7e53979cec5b006491a27d8108 days 5 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000512793
0x922e2d851b7004b903637124d9fef2e2fea22c3bdab748ee6bfe475adf2861f4120 days 11 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000743724
0x9970da4e4faf0839a57d81662678b237daa3c0d5c4c7fb0b90d77d4b67d29621122 days ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000078264
0x8121dca20c334ed30105d721e8326096b46bc623938c5445eb41515f4a118d02122 days 10 mins ago0x1b1414d6e2dcf307a8c79ed26e7a172afe0352c0  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.014358026
0xacfd8c695e49ffbf73177dae083efd743f9963b225ca3b6a156e1ae00e0e3acb122 days 5 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.0012067
0x2ca64d4323eb0e29884ebbe3af972c5a6a52d399f8acba5a3c1b6d1f6ff03efd136 days 6 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00034199
0x0a62286e83d39f3960480d8711ee90db59a19262f87f837908ac545e9aaae939138 days 5 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000512985
0x0fed852ae8f353ac9b8a3d7644f2aa2b2af73bbbad3868b7c17a69d353b3b241139 days 7 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00170995
0x559bc634fb3e672001f747dadbdb76876ac76985dfaaae600166fe0096f313ef154 days 3 hrs ago0x34dfff1699850f78229885d38c551da31d37f683  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00042148
0x1cde0340d645c78a42ef207f675ad49295ac21d3ed179718fe8d46a94867e51f157 days 17 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00068398
0x59d302d668fe74e9b3b6de656fb40872285c2dbf5c34c8210da9e73d3c56527f172 days 5 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00351968
0xf2ae51c8a96e83899e2cb24a99c59b3c65ff97e99ce04c1b5a393223c966f57a173 days 3 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN   0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000313056
[ 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
0x365f4c4e176973a8a007114dce55371ff6eafb3de83120b5cdcf841bb87aec0e608629215 days 16 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x1809e07a8732f19bf3f17043a549e419b5897a5894277ae3b04704cafa1a6f5b607941716 days 20 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0xd7af24bd49e1c999d7b959118be984566fa72f8f32d1257445c550d5a5ae7add606181319 days 20 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x6443e65d824a4d1bb83d1311dc828a7c30cd73e7964c2b35ad26b6b055ac8e5f579129665 days 22 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x08648e468a504e9e3076afc620677132b7916673a9de5aaa484a05df843ade7b577249369 days 5 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0xe161da8bd7dc0219d0382109d437993196b185432a81c7b5553a2cb30d7b89c4576650070 days 6 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x8d5a0255eeed6e4ccca0e49026535fca2721b778d82eedaa6a24ef3fbd117a085554327107 days 17 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c100 Ether
0x71ea4620ecd43eea242cb08fd1162d57b1e25b1ea7c4ca3914708dbceb1d0aec5551582108 days 4 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c19.5 Ether
0xc0069faa155d96faf10c430602120f7b38f94ae92c599f0dd3a2495b9783361e5551551108 days 4 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c0.25 Ether
0x9d7f308c22ea11b8391a7a171238446d2b69a1aad7e53979cec5b006491a27d85551369108 days 5 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x3203b00f1a224ca20ce791816e32a6eb5a4746920.25 Ether
0x922e2d851b7004b903637124d9fef2e2fea22c3bdab748ee6bfe475adf2861f45480730120 days 11 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c11 Ether
0x9970da4e4faf0839a57d81662678b237daa3c0d5c4c7fb0b90d77d4b67d296215472003122 days ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c300 Ether
0x2ca64d4323eb0e29884ebbe3af972c5a6a52d399f8acba5a3c1b6d1f6ff03efd5387120136 days 6 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x0a62286e83d39f3960480d8711ee90db59a19262f87f837908ac545e9aaae9395375434138 days 5 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x0fed852ae8f353ac9b8a3d7644f2aa2b2af73bbbad3868b7c17a69d353b3b2415368768139 days 7 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x1cde0340d645c78a42ef207f675ad49295ac21d3ed179718fe8d46a94867e51f5258983157 days 17 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x59d302d668fe74e9b3b6de656fb40872285c2dbf5c34c8210da9e73d3c56527f5173593172 days 5 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0xf2ae51c8a96e83899e2cb24a99c59b3c65ff97e99ce04c1b5a393223c966f57a5168306173 days 3 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0xf79364ed2cb64c8c984c759ff755d66c693bc15f56 Ether
0xd24e6408864f6fa21994489a78c1e53c51869849475d3017ea5b8f8e19e9f8a55144786177 days 3 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x2f70d24c40faddb15da88c258f42c6a99cd4612fd0e1342d7998c53b2628c02a5143766177 days 7 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c2 Ether
0xbd4b38864dc181be711a623e8d9a91345e89bb076b2f94a295ebbb0e2d0dea7f5143741177 days 7 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x9b0a5fd9c6d94305aba74a59180bbdd44110812819.99 Ether
0xa26fb3253524f7ae9355361ce9f1bc63a623752a6815f3522f571fb050460d2a5142976177 days 10 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x9b0a5fd9c6d94305aba74a59180bbdd44110812819.9 Ether
0x7e0e113eea249dc493c556f41db0e09271f0480b3822cc99b39089e542793b175137628178 days 8 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x3203b00f1a224ca20ce791816e32a6eb5a4746920.01 Ether
0xd28275c84ca18cd09c59542c4b274c5ca5a8070fb9364bad3cbc25f41734e8d55123725180 days 17 hrs ago0x9a8963f5d68c84028f77251cf967a84b21a413d60xb4b67fba9949105b89dd5785c6d99e452ac2888e64.652104055 Ether
0x6120d9cc197f0836f2cbcd71cac3d85c7861e9c8cfa73ec09ffea755d579469e5122622180 days 22 hrs ago0xca01b38e7fd88ed3ce72dae439903e52e101e8d10xb4b67fba9949105b89dd5785c6d99e452ac2888e147.738215625 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to NestedArrayFunctionCallDecoder (medium-severity), ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity), IdentityPrecompileReturnIgnored (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Similar match)
Note: Displaying similar matching verified source code at contract 0x0c9a023dc047bc3140ece933dd285c50379a9d4a(excluding Constructor Arguments if any)
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;
        if (dailyLimit < spentToday)
            return 0;
        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
606060405260405161164438038061164483398101604052805160805160a05191909201919082826000825182603282118061003a57508181115b80610043575080155b8061004c575081155b1561005657610002565b600092505b84518310156100ce576002600050600086858151811015610002576020908102909101810151600160a060020a031682528101919091526040016000205460ff16806100c45750848381518110156100025790602001906020020151600160a060020a03166000145b1561015357610002565b845160038054828255600082905290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b918201916020890182156101cd579160200282015b828111156101cd5782518254600160a060020a0319166c0100000000000000000000000091820291909104178255602090920191600190910190610114565b600160026000506000878681518110156100025790602001906020020151600160a060020a0316815260200190815260200160002060006101000a81548160ff02191690837f010000000000000000000000000000000000000000000000000000000000000090810204021790555060019092019161005b565b506101f39291505b80821115610213578054600160a060020a03191681556001016101d5565b5050506004929092555050506006555061142d9050806102176000396000f35b509056606060405236156101325760e060020a6000350463025e7c278114610180578063173825d9146101b257806320ea8d86146101df5780632f54bf6e146102135780633411c81c146102335780634bc9fdc214610260578063547415251461028357806367eeba0c146102f75780636b0c932d146103055780637065cb4814610313578063784547a71461033e5780638b51d13f1461034e5780639ace38c2146103c2578063a0e67e2b146103fd578063a8abe69a1461046e578063b5dc40c31461054d578063b77bf60014610659578063ba51a6df14610667578063c01a8c8414610693578063c6427474146106a3578063cea0862114610714578063d74f8edd1461073f578063dc8452cd1461074c578063e20056e61461075a578063ee22610b1461078a578063f059cf2b1461079a575b6107a8600034111561017e57604080513481529051600160a060020a033316917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b565b34610002576107aa60043560038054829081101561000257600091825260209091200154600160a060020a0316905081565b34610002576107a8600435600030600160a060020a031633600160a060020a0316141515610a1a57610002565b34610002576107a8600435600160a060020a033390811660009081526002602052604090205460ff161515610c5f57610002565b34610002576107c660043560026020526000908152604090205460ff1681565b34610002576001602090815260043560009081526040808220909252602435815220546107c69060ff1681565b34610002576107da6007546000906201518001421115610d1b5750600654610d18565b34610002576107da6004356024356000805b600554811015610d2f578380156102be575060008181526020819052604090206003015460ff16155b806102e257508280156102e2575060008181526020819052604090206003015460ff165b156102ef57600191909101905b600101610295565b34610002576107da60065481565b34610002576107da60075481565b34610002576107a860043530600160a060020a031633600160a060020a0316141515610d3657610002565b34610002576107c6600435610801565b34610002576107da6004356000805b600354811015610e66576000838152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156103ba57600191909101905b60010161035d565b34610002576000602081905260043581526040902080546001820154600383015461087993600160a060020a03909316926002019060ff1684565b346100025760408051602080820183526000825260038054845181840281018401909552808552610923949283018282801561046257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610444575b50505050509050610d18565b34610002576109236004356024356044356064356040805160208181018352600080835283519182018452808252600554935192939192909182918059106104b35750595b9080825280602002602001820160405280156104ca575b509250600091508190505b600554811015610e6c578580156104fe575060008181526020819052604090206003015460ff16155b806105225750848015610522575060008181526020819052604090206003015460ff165b156105455780838381518110156100025760209081029091010152600191909101905b6001016104d5565b34610002576109236004356040805160208181018352600080835283519182018452808252600354935192939192909182918059106105895750595b9080825280602002602001820160405280156105a0575b509250600091508190505b600354811015610ee1576000858152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561065157600380548290811015610002576000918252602090912001548351600160a060020a03909116908490849081101561000257600160a060020a03909216602092830290910190910152600191909101905b6001016105ab565b34610002576107da60055481565b34610002576107a86004355b30600160a060020a031633600160a060020a0316141515610f5d57610002565b34610002576107a8600435610974565b3461000257604080516020600460443581810135601f81018490048402850184019095528484526107da948235946024803595606494929391909201918190840183828082843750949650505050505050600061096d848484600083600160a060020a0381161515610b6157610002565b34610002576107a860043530600160a060020a031633600160a060020a031614151561102857610002565b34610002576107da603281565b34610002576107da60045481565b34610002576107a8600435602435600030600160a060020a031633600160a060020a031614151561106357610002565b34610002576107a86004356109f7565b34610002576107da60085481565b005b60408051600160a060020a039092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600084815260208190526040902092506111d6845b600080805b600354811015610872576000848152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561086357600191909101905b600454821415610e5e57600192505b5050919050565b60408051600160a060020a03861681526020810185905282151560608201526080918101828152845460026000196101006001841615020190911604928201839052909160a0830190859080156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b50509550505050505060405180910390f35b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b9050611021815b33600160a060020a03811660009081526002602052604090205460ff161515610fc857610002565b6000858152600160208181526040808420600160a060020a0333168086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ce6855b6000818152602081905260408120600301548190839060ff16156107ec57610002565b600160a060020a038216600090815260026020526040902054829060ff161515610a4357610002565b600160a060020a0383166000908152600260205260408120805460ff1916905591505b60035460001901821015610b085782600160a060020a0316600360005083815481101561000257600091825260209091200154600160a060020a03161415610b3857600380546000198101908110156100025760009182526020909120015460038054600160a060020a039092169184908110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600380546000198101808355919082908015829011610b4357600083815260209020610b43918101908301610c0e565b600190910190610a66565b505060035460045411159150610c26905057600354610c2690610673565b60055460408051608081018252878152602080820188815282840188815260006060850181905286815280845294852084518154606060020a91820291909104600160a060020a031990911617815591516001808401919091559051805160028085018054818a5298879020999b5096989497601f9481161561010002600019011604830185900484019490939291019083901061139257805160ff19168380011785555b506113c29291505b80821115610c225760008155600101610c0e565b5090565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff161515610cee57610002565b6000858152600160209081526040808320600160a060020a0333168085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35b505b50505050565b600084815260208190526040902060030154849060ff1615610c9457610002565b50600854600654035b90565b6008546006541015610d0f57506000610d18565b5092915050565b600160a060020a038116600090815260026020526040902054819060ff1615610d5e57610002565b81600160a060020a0381161515610d7457610002565b6003546004546001909101906032821180610d8e57508181115b80610d97575080155b80610da0575081155b15610daa57610002565b600160a060020a0385166000908152600260205260409020805460ff19166001908117909155600380549182018082559091908281838015829011610e0057600083815260209020610e00918101908301610c0e565b50505060009283525060208220018054600160a060020a031916606060020a88810204179055604051600160a060020a038716917ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25050505050565b600101610806565b50919050565b878703604051805910610e7c5750595b908082528060200260200182016040528015610e93575b5093508790505b86811015610ed6578281815181101561000257906020019060200201518489830381518110156100025760209081029091010152600101610e9a565b505050949350505050565b81604051805910610eef5750595b908082528060200260200182016040528015610f06575b509350600090505b81811015610f55578281815181101561000257906020019060200201518482815181101561000257600160a060020a03909216602092830290910190910152600101610f0e565b505050919050565b600354816032821180610f6f57508181115b80610f78575080155b80610f81575081155b15610f8b57610002565b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b6000828152602081905260409020548290600160a060020a03161515610fed57610002565b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561099c57610002565b9392505050565b60068190556040805182815290517fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca29181900360200190a150565b600160a060020a038316600090815260026020526040902054839060ff16151561108c57610002565b600160a060020a038316600090815260026020526040902054839060ff16156110b457610002565b600092505b6003548310156111315784600160a060020a0316600360005084815481101561000257600091825260209091200154600160a060020a031614156111cb578360036000508481548110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600160a060020a03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b6001909201916110b9565b91508180611245575060028084015460001961010060018316150201160415801561124557506001830154611245906007546000906201518001421115611221574260075560006008555b600654600854830111806112385750600854828101105b1561142457506000611428565b15610ce85760038301805460ff1916600117905581151561126f5760018301546008805490910190555b825460018085015460405160028088018054600160a060020a039096169593949093839285926000199083161561010002019091160480156112f25780601f106112c7576101008083540402835291602001916112f2565b820191906000526020600020905b8154815290600101906020018083116112d557829003601f168201915b505091505060006040518083038185876185025a03f192505050156113415760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610ce8565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038301805460ff19169055811515610ce8575050600101546008805491909103905550565b82800160010185558215610c06579182015b82811115610c065782518260005055916020019190600101906113a4565b5050606091909101516003909101805460ff191660f860020a9283029290920491909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b5060015b9190505600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000009f7dfab2222a473284205cddf08a677726d786a00000000000000000000000005210c4dcd7eb899a1274fd6471adec9896ae05aa0000000000000000000000001d805bc00b8fa3c96ae6c8fa97b2fd24b19a9801000000000000000000000000aca7bd07a8c207f7964261c2cf1e0fbfcff37836

 

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.