Contract 0x1e39FbF0c16A20F65613a4eD1baA088A8937B15c

 

Contract Overview

Balance:
0 Ether

EtherValue:
$0

Token:
TxHash Block Age From To Value [TxFee]
0xf10f3e6f59d4d0b0a3d4979c191d15d8ddcbe6fb068a90ef33fb8da171e0110b72357943 hrs 33 mins ago0xf811769e967953bff67b0f2fd40a0dac82c3752d  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00117396
0x847ad4c5c13e3e7f7f29f2094d03cec2df3690fcca00c815e199e9eccdd9082972356794 hrs 13 mins ago0x82c8074ab7c6a7bb7ecc78dcd26515bb47aeb216  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00205923
0x5341b89d9f5203f5c0c3bb961d5efc9e1cb955195fe48cb235be676917f2f52b72156074 days 23 hrs ago0xcd5ae458de5225a13c1f9b5d5d2eeebd4a58f70a  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00079684
0x832acdf6fcfb71ba0d681346fd61b23b34f958a8eab43f5258fc1e533835a0d872156034 days 23 hrs ago0xcd5ae458de5225a13c1f9b5d5d2eeebd4a58f70a  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00079684
0x6d96a043475eafd7acf4bca2d370e5ff5b0fda51b434b8645bc2c70856140ffd72149905 days 3 hrs ago0x82c8074ab7c6a7bb7ecc78dcd26515bb47aeb216  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00127143
0xd2eca098b162999d2910b914610fcafcbd88e24503159d073d1c5733d317713972149795 days 3 hrs ago0x82c8074ab7c6a7bb7ecc78dcd26515bb47aeb216  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00137154
0x0fb1504af3c305b4a4776a54eb51ffcac1b462c6ae576406ec76469c3f63aa40714349520 days 3 hrs ago0x65cacc00c4c86c5b12761aff8c0469da5a0c410a  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c6.86233373 Ether0.000203292
0x5802e9c758dde2411c16452045c4ff2a356c3f6ba79f5e1c0e8cee051b5d894b708722431 days 1 hr ago0x217eace3b95c8fb2eea4ee42ae5fa3f3dddd0774  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c33.20043828 Ether0.00022588
0xa95ab429b3f28825d441790810c530da099a0e502d794c71a7eafde8bb2ce29b708682831 days 3 hrs ago0xb80fb39823db0bda35ed1ffe5982ae1278fb0074  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c1.50346916 Ether0.00022588
0x424f3c7f677321b0a3321200ac7e7ecc08d350a1b9f53a351dde6bc5fabad792707485033 days 6 hrs ago0xd56aa27dafd4498f844897827d51166f292d80a0  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c82.68276803 Ether0.00022588
0xd7fa616fbd37beb861a6d0e06aa01515dca07212fb4458609a571f19a31c9162706415935 days 4 hrs ago0xe7a1648a7db495c6c05ed21854e9664b0a55a56a  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c31,778.776306066352189 Ether0.000180704
0x501f7f33f765c8ce2b91d4b96cdb2f0d5e8f0dc62684613dd3af8cff952471fd706414935 days 4 hrs ago0xe7a1648a7db495c6c05ed21854e9664b0a55a56a  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c32,250 Ether0.000180704
0x475309267585825e01b84e91b96de4c6ce7fdae3fd69871ef09bacc6b1636cbb706412535 days 4 hrs ago0xe7a1648a7db495c6c05ed21854e9664b0a55a56a  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c49,500 Ether0.000180704
0x239428a4775a834886fa151620dfb76be4ed1cadd1370937af8153ce1e24ddd1704950337 days 19 hrs ago0x54729901734361d658b0a20317c2a292a46f714b  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c12.115148133846072 Ether0.000155046348
0x6ac8a93f766ab325116852786cf14ff80ba6cdec7c566b5f9d3a28eca2c64a9c704874737 days 22 hrs ago0x82c8074ab7c6a7bb7ecc78dcd26515bb47aeb216  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.000626112
0xa3214546ecae4f06ff977e2747c0b17dd23c2d64e4e4de0079670e23b25c31ac704839138 days 12 mins ago0xf811769e967953bff67b0f2fd40a0dac82c3752d  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00137154
0x45c77a3c2ddcced0c62d57dd4afe04674107b1cf7f5638ea5d2b152ce157da0a704749138 days 4 hrs ago0x274e128d0f2aeba24ccbc88c95f500a5226b5afb  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c116.52192847 Ether0.00022588
0x4f41834bbd06eb7be066b913aac2c14625dbbc954360ca22a0fc606fae74378a701065744 days 18 hrs ago0x569217c78cc449d58f9e9191dc75b12f249555d2  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c11.12661401 Ether0.000203292
0xf152dc5453881eabb61a56af819e56e1e79476c13e0643f5bcaa11dd577dcb90698635748 days 23 hrs ago0xdc0c58ef80f00e5510242534b4b37cbfc6b05d53  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c99.99988706 Ether0.00011294
0x64feec3af35d01a1cde1930cf80a3d9f93c756316acb0cc69ceaa775f961d94a698635348 days 23 hrs ago0x0a0fed0ff3495fe93749cde2b692b7e217dc739c  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c29,999.99988706 Ether0.00011294
0xb36e9cd86e51f2cd541182884c94cbe1515348abf92e7e28469a2ab6fd533cbf698635048 days 23 hrs ago0x976fd26bc177542c3ade3aa28b374f866e7dde4b  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c24,157.824640429999987 Ether0.00011294
0x7d31d399a9c43610bd2263389a600c4a39ae324b4e137904a5f9835d5af0e3ba696300352 days 22 hrs ago0x1acf25dfbc30c9ff6bbc823acb8757f715146f99  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c299.99956412 Ether0.00022588
0x6a8618f16f57ce17e08e5ea8a038578f4c8e32678bf522f80c421c56d0a9876b694473356 days 8 mins ago0xf811769e967953bff67b0f2fd40a0dac82c3752d  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00078264
0xbd7984aa777f688d507036615e436da5047c9e6fe35d77d58d68d9e3f385e3dc694414256 days 2 hrs ago0x82c8074ab7c6a7bb7ecc78dcd26515bb47aeb216  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00068577
0x83fc3544487c17063df231411d8cca8f66ada082a00e5bcdba3b7d18885410b5692331059 days 15 hrs ago0x17ffefd42de1900f01078d09d370d95e812b448e  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c22.86797851 Ether0.00022588
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xf10f3e6f59d4d0b0a3d4979c191d15d8ddcbe6fb068a90ef33fb8da171e0110b72357943 hrs 33 mins ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0xf145efb50291fd7b7a9afe547c8445cbc1cf6f5523,666.045789282394966103 Ether
0x5341b89d9f5203f5c0c3bb961d5efc9e1cb955195fe48cb235be676917f2f52b72156074 days 23 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b45,000 Ether
0x832acdf6fcfb71ba0d681346fd61b23b34f958a8eab43f5258fc1e533835a0d872156034 days 23 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b45,000 Ether
0xaa5bce188826c885ca5b0c1d926915d727dd18736c8d2bbd71efa308865dc804718807211 days 1 hr ago0x18717b319927aa07065d8989f3e1c5f4cedefcb40x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.00000988745 Ether
0x0086467f6d564e6636cca24994849185e09c2f1aec38e212bdaa20441a1f5885718704311 days 6 hrs ago0xa741da896218bf58d57470465d8963b8bf0c20520x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.00032147784121 Ether
0x2adfa81b7257f8a9d653f3b87705a3004d224a3641c9279b1ccae58002b4e3a7718405511 days 21 hrs ago0x58b0880cb2cef900f7e4413460cc9c7455738c920x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.0003 Ether
0x28d46631cf057acb404a581f4345c9271f1febec5bbcb7a4b1bd0b95dcdf3aaf717915512 days 21 hrs ago0x3f9f7b60f7fcd24ff7ba776e20bfcb57c3b79aed0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.000002 Ether
0xc5dc5fb95e124e7c625cc3f0538e1bf7ab427c904f260f408be6ae08df0cd163717870712 days 23 hrs ago0xaa5903fa508f210f88baf74ee3561d611b66217d0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.00001 Ether
0x4d884a1929c305c06e9c778041b4ed5fc2cf2dd5b03134914b9e31265c5b3ffc714340420 days 4 hrs ago0xd342023865f2ad57cdb7ebe9ef8070d407943b5e0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.000123 Ether
0xb935908e8505da6377b03190af3a8729f3b75634029c735d0bb5e4456f5173d0714339120 days 4 hrs ago0xd342023865f2ad57cdb7ebe9ef8070d407943b5e0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.0003 Ether
0x6ac8a93f766ab325116852786cf14ff80ba6cdec7c566b5f9d3a28eca2c64a9c704874737 days 22 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0xe7a1648a7db495c6c05ed21854e9664b0a55a56a55,101 Ether
0xa37c91de6f84364f342c59ab4f658715a6cf64fb35e086b6b8d639ca44512376704749238 days 4 hrs ago0xe6f14431c8c9603056ce24a8f1ba99780a73f4190x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.00001 Ether
0x3e97443b18dc145f4ab27d3e9c0a5df7ed58032da04e893c870a7e735de334da704749038 days 4 hrs ago0x1daafd861626be68cf1cd1a6421579111c1761220x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.00001 Ether
0xc6106e29cde9e868add73b8b0c43c65e51ef9e07829ee656f246eb9e3462b9b7704304138 days 23 hrs ago0xdd94bf687b916742e4007424833d24f1bafe70270x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.00321 Ether
0xc435aa213ec777499ce73a42e4d3592453d02cd253a0ba691bed45dc39ee2b86703788839 days 21 hrs ago0xdd94bf687b916742e4007424833d24f1bafe70270x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.012 Ether
0x1eab430d04f1b1ce7a3b0bcfd99c91db694faee5cdb84bb81477fa3984a8d8d8700825945 days 4 hrs ago0xdd94bf687b916742e4007424833d24f1bafe70270x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.0000123369 Ether
0xd3f5cd9e38c90fab2e3cf57213b2aa36b4b7d3a9ac9f20de18cce514a4698be7700819145 days 5 hrs ago0x86329b94112b112345dadcaeb42f379793e3d6820x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.0004 Ether
0x6ec681ff3a5ff4f679fb1944af9306d419b8bbc2c6109407bf0e9a10ecd92424700399745 days 23 hrs ago0xdd94bf687b916742e4007424833d24f1bafe70270x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.00000001 Ether
0x384636a1869aca8addfa59a13e4085838dff9339bc72c86bb360a8f56d76729d700302546 days 3 hrs ago0xdd94bf687b916742e4007424833d24f1bafe70270x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.00000001 Ether
0x6a8618f16f57ce17e08e5ea8a038578f4c8e32678bf522f80c421c56d0a9876b694473356 days 8 mins ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x2a7077399b3e90f5392d55a1dc7046ad8d15234833,000 Ether
0x3e92f3050f5b37e5db64fdd0bd0486e2f1f5c199e6c41a423776b468755f721d691443561 days 3 hrs ago0xf848c87f9dbddfe7ee632710988b04c0a35f2b270x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.00000001 Ether
0x2cffe88f5caed79689b13a81abb2065258825091c5884d66df1b25a7aff13b72691434661 days 4 hrs ago0xf848c87f9dbddfe7ee632710988b04c0a35f2b270x1e39fbf0c16a20f65613a4ed1baa088a8937b15c1 wei
0x5efea49d506ef31dbbf022593321bf83d82dbdb9fc12eef77f2f05242b4989d7691368361 days 6 hrs ago0x1c4c2e028dfe6f18cd937ff9ab478ba9499149580x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.012345678987654321 Ether
0x5e4a491c454734b1f49e16645c7121cf9d0ed136739e425c7160c7b5aae26279691043861 days 20 hrs ago0x0e26f7385d6c293a8a977cb9306236b8c4b88d1a0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.003 Ether
0xf1343ca2240bb32e2e2b327312e5754c6210951f599576aecf1c1ed640be98e3691039061 days 20 hrs ago0x1c4c2e028dfe6f18cd937ff9ab478ba9499149580x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.002 Ether
[ Download CSV Export 
Contract Name: MultiSigWalletWithDailyLimit
Compiler Version: v0.4.4+commit.4633f3de
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
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
606060405260405161163038038061163083398101604052805160805160a05191909201919082826000825182603282118061003a57508181115b80610043575080155b8061004c575081155b1561005657610002565b600092505b84518310156100ce576002600050600086858151811015610002576020908102909101810151600160a060020a031682528101919091526040016000205460ff16806100c45750848381518110156100025790602001906020020151600160a060020a03166000145b1561015357610002565b845160038054828255600082905290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b918201916020890182156101cd579160200282015b828111156101cd5782518254600160a060020a0319166c0100000000000000000000000091820291909104178255602090920191600190910190610114565b600160026000506000878681518110156100025790602001906020020151600160a060020a0316815260200190815260200160002060006101000a81548160ff02191690837f010000000000000000000000000000000000000000000000000000000000000090810204021790555060019092019161005b565b506101f39291505b80821115610213578054600160a060020a03191681556001016101d5565b505050600492909255505050600655506114199050806102176000396000f35b509056606060405236156101325760e060020a6000350463025e7c278114610180578063173825d9146101b257806320ea8d86146101df5780632f54bf6e146102135780633411c81c146102335780634bc9fdc214610260578063547415251461028357806367eeba0c146102f75780636b0c932d146103055780637065cb4814610313578063784547a71461033e5780638b51d13f1461034e5780639ace38c2146103c2578063a0e67e2b146103fd578063a8abe69a1461046e578063b5dc40c31461054d578063b77bf60014610659578063ba51a6df14610667578063c01a8c8414610693578063c6427474146106a3578063cea0862114610714578063d74f8edd1461073f578063dc8452cd1461074c578063e20056e61461075a578063ee22610b1461078a578063f059cf2b1461079a575b6107a8600034111561017e57604080513481529051600160a060020a033316917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b565b34610002576107aa60043560038054829081101561000257600091825260209091200154600160a060020a0316905081565b34610002576107a8600435600030600160a060020a031633600160a060020a0316141515610a1a57610002565b34610002576107a8600435600160a060020a033390811660009081526002602052604090205460ff161515610c5f57610002565b34610002576107c660043560026020526000908152604090205460ff1681565b34610002576001602090815260043560009081526040808220909252602435815220546107c69060ff1681565b34610002576107da6007546000906201518001421115610d0f5750600654610d18565b34610002576107da6004356024356000805b600554811015610d1b578380156102be575060008181526020819052604090206003015460ff16155b806102e257508280156102e2575060008181526020819052604090206003015460ff165b156102ef57600191909101905b600101610295565b34610002576107da60065481565b34610002576107da60075481565b34610002576107a860043530600160a060020a031633600160a060020a0316141515610d2257610002565b34610002576107c6600435610801565b34610002576107da6004356000805b600354811015610e52576000838152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156103ba57600191909101905b60010161035d565b34610002576000602081905260043581526040902080546001820154600383015461087993600160a060020a03909316926002019060ff1684565b346100025760408051602080820183526000825260038054845181840281018401909552808552610923949283018282801561046257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610444575b50505050509050610d18565b34610002576109236004356024356044356064356040805160208181018352600080835283519182018452808252600554935192939192909182918059106104b35750595b9080825280602002602001820160405280156104ca575b509250600091508190505b600554811015610e58578580156104fe575060008181526020819052604090206003015460ff16155b806105225750848015610522575060008181526020819052604090206003015460ff165b156105455780838381518110156100025760209081029091010152600191909101905b6001016104d5565b34610002576109236004356040805160208181018352600080835283519182018452808252600354935192939192909182918059106105895750595b9080825280602002602001820160405280156105a0575b509250600091508190505b600354811015610ecd576000858152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561065157600380548290811015610002576000918252602090912001548351600160a060020a03909116908490849081101561000257600160a060020a03909216602092830290910190910152600191909101905b6001016105ab565b34610002576107da60055481565b34610002576107a86004355b30600160a060020a031633600160a060020a0316141515610f4957610002565b34610002576107a8600435610974565b3461000257604080516020600460443581810135601f81018490048402850184019095528484526107da948235946024803595606494929391909201918190840183828082843750949650505050505050600061096d848484600083600160a060020a0381161515610b6157610002565b34610002576107a860043530600160a060020a031633600160a060020a031614151561101457610002565b34610002576107da603281565b34610002576107da60045481565b34610002576107a8600435602435600030600160a060020a031633600160a060020a031614151561104f57610002565b34610002576107a86004356109f7565b34610002576107da60085481565b005b60408051600160a060020a039092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600084815260208190526040902092506111c2845b600080805b600354811015610872576000848152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561086357600191909101905b600454821415610e4a57600192505b5050919050565b60408051600160a060020a03861681526020810185905282151560608201526080918101828152845460026000196101006001841615020190911604928201839052909160a0830190859080156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b50509550505050505060405180910390f35b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b905061100d815b33600160a060020a03811660009081526002602052604090205460ff161515610fb457610002565b6000858152600160208181526040808420600160a060020a0333168086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ce6855b6000818152602081905260408120600301548190839060ff16156107ec57610002565b600160a060020a038216600090815260026020526040902054829060ff161515610a4357610002565b600160a060020a0383166000908152600260205260408120805460ff1916905591505b60035460001901821015610b085782600160a060020a0316600360005083815481101561000257600091825260209091200154600160a060020a03161415610b3857600380546000198101908110156100025760009182526020909120015460038054600160a060020a039092169184908110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600380546000198101808355919082908015829011610b4357600083815260209020610b43918101908301610c0e565b600190910190610a66565b505060035460045411159150610c26905057600354610c2690610673565b60055460408051608081018252878152602080820188815282840188815260006060850181905286815280845294852084518154606060020a91820291909104600160a060020a031990911617815591516001808401919091559051805160028085018054818a5298879020999b5096989497601f9481161561010002600019011604830185900484019490939291019083901061137e57805160ff19168380011785555b506113ae9291505b80821115610c225760008155600101610c0e565b5090565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff161515610cee57610002565b6000858152600160209081526040808320600160a060020a0333168085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35b505b50505050565b600084815260208190526040902060030154849060ff1615610c9457610002565b50600854600654035b90565b5092915050565b600160a060020a038116600090815260026020526040902054819060ff1615610d4a57610002565b81600160a060020a0381161515610d6057610002565b6003546004546001909101906032821180610d7a57508181115b80610d83575080155b80610d8c575081155b15610d9657610002565b600160a060020a0385166000908152600260205260409020805460ff19166001908117909155600380549182018082559091908281838015829011610dec57600083815260209020610dec918101908301610c0e565b50505060009283525060208220018054600160a060020a031916606060020a88810204179055604051600160a060020a038716917ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25050505050565b600101610806565b50919050565b878703604051805910610e685750595b908082528060200260200182016040528015610e7f575b5093508790505b86811015610ec2578281815181101561000257906020019060200201518489830381518110156100025760209081029091010152600101610e86565b505050949350505050565b81604051805910610edb5750595b908082528060200260200182016040528015610ef2575b509350600090505b81811015610f41578281815181101561000257906020019060200201518482815181101561000257600160a060020a03909216602092830290910190910152600101610efa565b505050919050565b600354816032821180610f5b57508181115b80610f64575080155b80610f6d575081155b15610f7757610002565b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b6000828152602081905260409020548290600160a060020a03161515610fd957610002565b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561099c57610002565b9392505050565b60068190556040805182815290517fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca29181900360200190a150565b600160a060020a038316600090815260026020526040902054839060ff16151561107857610002565b600160a060020a038316600090815260026020526040902054839060ff16156110a057610002565b600092505b60035483101561111d5784600160a060020a0316600360005084815481101561000257600091825260209091200154600160a060020a031614156111b7578360036000508481548110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600160a060020a03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b6001909201916110a5565b9150818061123157506002808401546000196101006001831615020116041580156112315750600183015461123190600754600090620151800142111561120d574260075560006008555b600654600854830111806112245750600854828101105b1561141057506000611414565b15610ce85760038301805460ff1916600117905581151561125b5760018301546008805490910190555b825460018085015460405160028088018054600160a060020a039096169593949093839285926000199083161561010002019091160480156112de5780601f106112b3576101008083540402835291602001916112de565b820191906000526020600020905b8154815290600101906020018083116112c157829003601f168201915b505091505060006040518083038185876185025a03f1925050501561132d5760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610ce8565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038301805460ff19169055811515610ce8575050600101546008805491909103905550565b82800160010185558215610c06579182015b82811115610c06578251826000505591602001919060010190611390565b5050606091909101516003909101805460ff191660f860020a9283029290920491909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b5060015b91905056000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000008ac7230489e80000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000085e6ecb2b3511bffe4edf4cd3b00caf3802702e100000000000000000000000000a245706741d7949c82356ef9955dd3f7bfc21700000000000000000000000028bbf0ef519f72cafea000eaf64ed679dbdda738

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