Contract 0xd20e4d854c71de2428e1268167753e4c7070ae68

 

Contract Overview

District0x_MultiSig
Balance:
19,903.042378470837437369 Ether

EtherValue:
$2,551,570.03 (@ $128.20/ETH)

Token:
TxHash Block Age From To Value [TxFee]
0x44948e0affb07039a12a9490ce944d326639a59926d74e1c1b1aec737c2c5ef072245682 days 50 mins ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00173078
0x794b300b29d606ae3f8d89f5b7f49a8ca46dd451fdc8f842b766679ff997676e72245632 days 52 mins ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00173078
0xc03ca3f36c7fbf087fe3fb010a647eab3756c42bb8243d88b2d29147aa5e9f6472243952 days 1 hr ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.0024269
0x9f63fb684914cddd66ec2b6d6fa61b5dd36d6749364335409496b109b36ae4fe72243842 days 1 hr ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.0024269
0xbfeef035f55b63afdbe63341a18927bb97fac719b75398456fea033fe6ffae12715966416 days 1 hr ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00173078
0x9790e35d70d358e938c4a63e940c662782fe51c82707b86fd07c656f936d7970715965816 days 1 hr ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00173078
0x2cbf9638c80dca4359a047ec3b90f62918041c64039a18ce2938b5a670e23361715965416 days 1 hr ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0xdafc401d5d0654e48d3a5df043607fe0466231dc3fa8c07d47532fabc27920d1715957416 days 2 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.0020021925
0x6dc4f3f7405e656dd7e7f8555949086ca24a58b001c894ebd77887d8417115fe715956316 days 2 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.001993525
0x54f504a58881e955031b3b8949ae0e8a8a9548a6a07798b319e43c6c219da5ad715954316 days 2 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00164508
0x0a26a35df2967d57544b74b9b35ae29003e7e3462b1acbb30ab4611f4ee43a25684624971 days 16 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.002221905
0x74200512919e7e76c5137ac5783f1c8730bb336741c923447beb46e71059313d684624571 days 16 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.002221905
0x52e7791498d64c8407c57935a2d8cc5720410b216c139eb2cf3a1daeaa821ab5684623771 days 16 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.001866095
0xffc2cd08eb15a355afda050bf9af337ef1354171ac270f6f6c05cb83fb98cae5684474871 days 22 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00442148
0x23cf5bdeb4f1e15fbb317ba9e6c46ac89fa493d7e988c6905ac12a1a012b105a684471071 days 22 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00158224
0x61e3199a24d8b7d343effc8996b1b4714c004c69060ac0dd22f87362e460e7f4684469371 days 22 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00158224
0xd4c4679ae25871f85b0aaea4fd9998195e899565d7d33868cbc6ef0396c48039684467971 days 22 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00173078
0x801026ab4a13ca6539bc6ba8af93985e1039e9ca8f96668bcebb30e91cd1d70d684410972 days 57 mins ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.001577485
0x088c831be6ba4b174a9b481f8d5b83faa6d7191d881591c44ffd96c9e62bbe2a684409972 days 59 mins ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00166416
0x148251a19ff041dab9c14546e41afb9bd713ea8207d7e6f70a57524433254575684398872 days 1 hr ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.0017335
0xbb76b400c52efab233388e3710f1b613cab0ffb0a02b832c8de4863ef279bf51684085672 days 13 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00173078
0x6fcee097bd1adfdb689069acaeacc3485c652aa84976e07147cd2e56dd4f6cbe684047372 days 15 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.002233431251
0x243c04cd7e20236d32b9e2f75c948767a514497c6df9b3f6c55e9c7cebddc0a1675436586 days 20 hrs ago0xbcd9a181ca8745a71a1b3848efa16fe7a80bff04  IN   District0x_MultiSig5.85 Ether0.00005647
0x0377bc1da8a9e6397d093ec64f74c36dc9f252826ecc48c500f44794a4e75507675316187 days 57 mins ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0xad6f0c9721e313bd88f1269b28323804ec138f5de3532d08e003593074e9fde0675313387 days 1 hr ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.000890001
[ 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
0x2cbf9638c80dca4359a047ec3b90f62918041c64039a18ce2938b5a670e23361715965416 days 1 hr ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4100 Ether
0x0377bc1da8a9e6397d093ec64f74c36dc9f252826ecc48c500f44794a4e75507675316187 days 57 mins ago0xd20e4d854c71de2428e1268167753e4c7070ae680xbcd9a181ca8745a71a1b3848efa16fe7a80bff04172.043 Ether
0x8aa570d63acc37ad463c5beae674bfe3fc33d95e0256bde3ae2515121141de9c674720888 days 26 mins ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba434 Ether
0xeabe13d19bf65d2079a10edb0a5ef1e5ba48aeb5df96d0f794d954c43618f150671319793 days 14 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a87,000 Ether
0xefe9a294a6da29f6c5e8e12f365edc7bf4279903a969d65bef10889c1ded9a0d671307893 days 14 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a84,000 Ether
0x123be8b33e222284f27140a304edc737dd201ee7a58f18377509fd08269aa524671296193 days 15 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a82,000 Ether
0x7e124901dfd7893443ed53f99af3909382f8966c817f26872bfed402920eec7e671283693 days 15 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a81,000 Ether
0x264859c566407e17b4a7cfa787bfb18424f84313fbd2e7edf76df21e5739c1af671266993 days 16 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a81 Ether
0x18362adda57d3749158060c50783aa96a279fa2bfa00e35d352577d12316f3d1670457695 days 17 mins ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba468 Ether
0x81c35d9d09af978c42200ffb8a788b1addbde909aedd4addc42fe896748d63a1670402095 days 2 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377445 Ether
0x2764c3daf9c416b9df1cc7a4dc57610fcbf0f5ef7cf5b3b98e433eb44d7bea3d670401195 days 2 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4410 Ether
0x68bdb6d45555a73cbdd051a3a9479dd1306de26b2746f1841a5ea44f8f6f532f6631388107 days 2 mins ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377205 Ether
0x0a7580e986999b80364c722a216622fdb9645b89298e12e2c8ccdea3b12f582a6631374107 days 5 mins ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4223 Ether
0x88ffb62c1da7b5ab87d3d49a4e07c4a8b68aadd5c08ab93adbb73f589da4ec286563700118 days 1 hr ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377130 Ether
0x47e9e8c123ab72566223a43a598668933bb3534639acfbebab3723974e0b6a346563690118 days 1 hr ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4100 Ether
0x8b76dfe1fd05753766ca332128733c884495fda53305667ce17e2ea72a13200b6477940132 days 1 hr ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377113 Ether
0xe23c4c58f241e6c332bba240a112e61b49c5f97b63bddf22f70a1f2b943ed2946477929132 days 1 hr ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba489 Ether
0x1757c3a94db3406fee8977ab2888baac6294c7b8a21447d01b1aba2c9bd8f9996373755149 days 1 hr ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377110.417 Ether
0xb90bd05ba6937d122ef32b7bed3af2e7ff4937b0907d079fd9d61a59582357c76312576159 days 4 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb1,962 Ether
0xa6628d13563c89715a7ccdec4aba644a76911532f90257e486da7d55651075c36308178159 days 22 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d85316637727.5 Ether
0x39a2acff87e9f099fffb1b4a91fb574670835c996fe5b9e3dfb6da0063fdcad36289858163 days 18 mins ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377424 Ether
0x1032463b692f266c4b8bbad269441178897c58ec0aa34a7d4775c105838c0d416289846163 days 20 mins ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4488 Ether
0x3fc525a9513d1d7013f8ec9d8517f421b74bdb282af22ecf6a983ff9b6147d9d6283523164 days 1 hr ago0xd20e4d854c71de2428e1268167753e4c7070ae680xbcd9a181ca8745a71a1b3848efa16fe7a80bff04225 Ether
0xdfa461ed3d14062fda9908e46d124df4989a8f26bac1286a52f796ffeac50c506223972174 days 2 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x89dbb75467a93fc949673f49882dbd8ec9fb046714.1125 Ether
0x1b1ff7448e86850eaad3748306dc1508b54c31dbeed29f4fdd72a47b4453d15d6188048180 days 3 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba417 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.