Contract 0x94133870506AF5D0644F41A2ee62cC387B81135E

 

Contract Overview

Balance:
36,034.301450252598090844 Ether

EtherValue:
$5,308,933.63 (@ $147.33/ETH)

Token:
TxHash Block Age From To Value [TxFee]
0x29ee4068c02ce33db7aa1add5ed904880f33f20a5048fc0f611a41765bcb9e2e720206810 days 22 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000637616
0xe1da0326235cf14c2ef6509ac25b4d34f7c24a2588f5471978bcd74df59b56f8720177311 days 20 mins ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000651324
0xd2a905a960c842d77a981c065d524d72fd2ed8fa620886b34832c74f622ce18a719916011 days 13 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000559464
0x12b1ad5f33f2d8c173fc2199cf538364da3a94318b98cd1fd6149976455cd087714441422 days 17 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000973464
0x260f3358cf10207d6896a1eaef371b5d0b234d713f09328d75d39f1fa80b50c4714408122 days 19 hrs ago0x2175b09a8321b712220d1608388e270f4b5906f1 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.002768127
0x15213be71ec0404b188862703f365bbb6cfcc259f681f573f0814935fb607992714309623 days 4 mins ago0x8180a5ca4e3b94045e05a9313777955f7518d757 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.001118928
0x6e89494fcc6e584a0cae041642bc789b676ad33c48af90c9a325b34cfccd2924707095536 days 17 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000956424
0xf006bfc0a23d321597a55935de5e8bdf2c0a71766782faac29da1f9a90e339a8707091536 days 17 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000488493
0xc40d93a5f7ccf713f27838c7fdcc4d02eb8d59c4c319b8756b9c423f777caa17707075436 days 18 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00279604
0xcfa85252789d3f26a146512fa4a60bdfa2b0d32d018311c8ff2ac1a6675db9b8704114642 days 1 hr ago0xd0643bc0d0c879f175556509dbcee9373379d5c3 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000717318
0x22d4e59b2b48d4570943ad1d308c4e924c17ea942ec841e63d188fea5301d8c6704113542 days 1 hr ago0xd0643bc0d0c879f175556509dbcee9373379d5c3 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000717318
0x29bd1c34dbcdf9a94c945ae2399de07ee8b360a1a12a06ab824c13ceda306282704108042 days 1 hr ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000651324
0x64ee756562b5f2260cebbae85019e05f8802bc46b652ac879932f7cf0494cc38704107642 days 1 hr ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.000651324
0x5e199a434b69275446a70007cd38271bf6712c1ebcdf6d0fad8b852115808272704042142 days 4 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00129791
0x5e3b470b02d9f2802645002106952f6eb1388dc83fec19f2b4127a00fd20a87f704040042 days 4 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00139802
0xcd0fee3c6c48b1fdd0abbbe3a1bebbefa9f199d1e52f428423f79275fe29908a697451653 days 17 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00159404
0x7cb4f743f78319c9271a01d8d84b8c6a0cdfed62e372f5b1b1792e6a5df4f28a697447653 days 17 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00054277
0x8cc4ea634a2d46033fd9e51e26065bcab54e81bd63913452cca4fe0a7aa569c0697390553 days 19 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.0014120002
0x2621945e3b245853a7f7ab83220a71f318c0bdbc70e70f2e26efb131a101b52e692117462 days 18 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00014888
0xf86241a8895fd1c291a86178cd26f813139b925590e2fce9a987bfb50d5c8bfa692117062 days 18 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00079702
0x41957f96b8d53a42b1f72bf5bcff0ba79adabc51afda4d05b7dd65fbeabb0dff692116362 days 18 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00054259
0x35f4b09837a682db406ee2cf0ccae1f74351c5d841b3edbda43774cff6b2c8ad692108562 days 18 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00108554
0xf441628138646a77bb11af6610d14473d483d949950078481f0dcaf99fef484f692107162 days 18 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00233739
0x5a348dc25bba619b858811417b2d5ded10c9a5b0d564dfff0629513f25f5c127692100062 days 18 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00159404
0x2bb9568da3e42a77d9d38fc9a71446dac96bba13640abdfe410e00b7a388a883691952063 days 57 mins ago0x8180a5ca4e3b94045e05a9313777955f7518d757 IN  0x94133870506af5d0644f41a2ee62cc387b81135e0 Ether0.00054277
[ Download CSV Export 

Latest 20 Internal Transactions Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0x29ee4068c02ce33db7aa1add5ed904880f33f20a5048fc0f611a41765bcb9e2e720206810 days 22 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0x387ad93bfe9957a4eeba0cb2ff9303f6ec0833d010,000 Ether
0x12b1ad5f33f2d8c173fc2199cf538364da3a94318b98cd1fd6149976455cd087714441422 days 17 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0x387ad93bfe9957a4eeba0cb2ff9303f6ec0833d010,000 Ether
0x6e89494fcc6e584a0cae041642bc789b676ad33c48af90c9a325b34cfccd2924707095536 days 17 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0xd99c41703d5bd44eb80d8bc8d1d7d2ccdd3248942,000 Ether
0xcfa85252789d3f26a146512fa4a60bdfa2b0d32d018311c8ff2ac1a6675db9b8704114642 days 1 hr ago0x94133870506af5d0644f41a2ee62cc387b81135e0xe3da0b61db276dc83c96fe42a8a5d1c66ddd4e8e20 Ether
0x22d4e59b2b48d4570943ad1d308c4e924c17ea942ec841e63d188fea5301d8c6704113542 days 1 hr ago0x94133870506af5d0644f41a2ee62cc387b81135e0x387ad93bfe9957a4eeba0cb2ff9303f6ec0833d03,000 Ether
0xcd0fee3c6c48b1fdd0abbbe3a1bebbefa9f199d1e52f428423f79275fe29908a697451653 days 17 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0x387ad93bfe9957a4eeba0cb2ff9303f6ec0833d02,000 Ether
0xf86241a8895fd1c291a86178cd26f813139b925590e2fce9a987bfb50d5c8bfa692117062 days 18 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0xd99c41703d5bd44eb80d8bc8d1d7d2ccdd3248945,000 Ether
0x5a348dc25bba619b858811417b2d5ded10c9a5b0d564dfff0629513f25f5c127692100062 days 18 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0xd99c41703d5bd44eb80d8bc8d1d7d2ccdd32489420,000 Ether
0x42985e51ff2117900f0899339dd622d6e4113add0bc79c18ad22f5542441668f6661475105 days 14 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0x008024771614f4290696b63ba3dd3a1ceb34d4d91,000 Ether
0xb51940be125e09290671477458778dc964b1dc320f5e6a0ee9be207eb7d50c886661463105 days 14 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0x2e4f5a27b6163ead05ecca02c54b17fe2043341f3,000 Ether
0x84ebf5dc53d5a83cdd47ccb3157e3e449a167439805dd29ef35a293f43256cbf6592011117 days 20 mins ago0x94133870506af5d0644f41a2ee62cc387b81135e0x1f73dd842aef9ce1e0768a6aa3b38cbf0ef49a5a10,000 Ether
0x78059c60b74982c0cb1495cbe99d9852092779f1d0952afa5c042d7330afd6086282684167 days 18 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0x2e4f5a27b6163ead05ecca02c54b17fe2043341f2,000 Ether
0x9b82f880a1d2b2cc9362cdd12d3b755c481425b7111eec1b8b15326ef7f29d834310917513 days 15 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0x3eb01b3391ea15ce752d01cf3d3f09dec596f65014.9991868 Ether
0x0b8fe60e716af9bad9434a8b7f10b0c9e56a07f278d62ea8f623d3f7142e72fe4258193528 days 23 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0x61b92ec8b6f56d39af3e891e2d33aa36a7e77049500 Ether
0x704dcd8825a7191c6d34ee7ddd30c6276bc229990069b5cfb32a5970afdf77ce4218641540 days 4 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0xd3388e1ed707443442afa9bb133d9dffacd9b4677,000 Ether
0x16604a38fa4cf501f3c565e352bade768ba584495a68605f9f2ad9de18e3608b4218613540 days 4 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0xd3388e1ed707443442afa9bb133d9dffacd9b4670.001 Ether
0xb4bb0a356beca47851d0754443031c5ad5c127e14fbec7e15e9732f8ad8814c84137108560 days 14 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0x449baf9413c60cd24a8c1c6010729c84b9d5139b0.000000000000001 Ether
0x6b59da5d661f6e9ab246ed4a8fa7979563006ce192722be97913aed0c3bffb6f4134222561 days 7 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0xc8a1dab586dee8a30cb88c87b8a3614e0a391fc50.000000000000001 Ether
0x41717906b107d8291444b6fb4f5cc73d4f0f21b39fe8700abbb1758d7f05cd254132889561 days 15 hrs ago0x94133870506af5d0644f41a2ee62cc387b81135e0xc8a1dab586dee8a30cb88c87b8a3614e0a391fc50.000000000000001 Ether
0xbfdb4f217c5513a4c51a0f37e1eb1e6d323d860669b9da6fbb5fcd1d3924f6ee4131095562 days 1 hr ago0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73  Contract Creation0 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.