Contract 0x660cdee72302d2941a43db1275eded7827023baa

 

TxHash Block Age From To Value [TxFee]
0x320ac269c1b402c6cbaa16e4ac8c4368f86fa1e2f93e07729b8af12f9322c84772150699 days 11 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000862075
0xabb13a14ff1b64cedaa960ea33e6aa6b715d783f4a89cb5509e2b6561b9a5aac714945223 days 7 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000517245
0x42d9250e8c1630a6e6ee2eb89bbba2b964fa1d45f0a6073d31ac4e51812653ba696887256 days 6 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000517053
0x6d8097af806ef4d4b04954c3435eee755301ab762f9aea2f89e3d4571b20c66e691468365 days 11 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000649616
0x1e70e413b3be76143d74647e41e6943108ac7eb8d48b717de54d9b099e91b18a691400365 days 14 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.00068966
0xb43dc2981628e68165b1892c084b88ff8c764829f4b0ed5652476f48e7ad9f30681218582 days 11 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.00068966
0x4c0604e72f8785045fb29975e668f3041e933292f8fe6a94abe694e9e4ee372d6624952113 days 5 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000517245
0xfaeef8da6ed47e7c9926d62dac631617b41a2b8de1e4011295bd5b605e98644c6446055142 days 9 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.00081202
0x962eb66f918a4810d5d1f186dce4d3294b3ce5670a7a286a6799c271a25ddee16446022142 days 9 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000862075
0xe593be79bdcaf087c7684a49aa8d9c88871224a01d24e917c4e282620d37c0376306719165 days 7 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.00068966
0x620cdf7551cb3b46801b2d4b009dc490a90772d36486c123e08b29182bd61d336264336172 days 10 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000517245
0xa31be4e15abe2a9367d4b406a003ed680b1d94dc07d078621b2906f0b84877ca6233759177 days 14 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.0004308775
0x52dcaf30980158b85efb5a321ad5f1dc25b177e8545f2ba2b808dda8d2b202a76193110184 days 11 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000862075
0x61d26f0d0e051da7179e7e24b12b7df61d5bc4b2b6924de832974829388f74106139610193 days 12 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.0009367
0x39b1f8a425177533634e87e4923ff3f8e5164a6ce783cd42e51170b9661592946139380193 days 13 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.00103449
0x0e9cb11bb658955d0dced0bd0dbbdf734a6d4c6cc35669c7588b5cbc15f69dfe6122159196 days 11 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.00194808
0xa01beccb7eb8eec9574b0dee3f927034d18eca999f93b2b258b4904a305b3cae6122058196 days 11 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.001895861
0x8894e35b8b619e76448dd34d7bf1d39d8c1a45cb98f8bd2ee04990f1f10165dd6074535204 days 12 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.0003572888
0x76c159b25637a1eecd288daa82bafc739690dcedd5776e39b5b772a14cb45d696074528204 days 12 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.0003572888
0xf5b30e0b38f057a9f050b7d77b7bba35a9961508210d32e257a1887759f210046074525204 days 12 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000379313
0xd6e626b5d841c75bdbd963b2a39222b013b50290dd66210c027b1202535b323e5932739228 days 12 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.001895861
0x87470bfea9de5725c6807ea98c9a74ef8c4cf7ef3f2fbab3a8ca477b6e85be095780835254 days 13 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000861755
0x7451f3ca762138c660b881e80e74f2d0bac88ec2b21d667d28501878970fb4295719282265 days 11 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000861755
0xbeca2fd6c2271c14e658c12dda019e62d9247c72dcff7bf2398747c19a8af6d85514401301 days 12 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000344702
0x9b78c69de186b88dbb8fc1873e10c461dad858860dc666287014299d4a21cc845450414312 days 12 hrs ago0xf75b56e9431814ef9e34e197411914db90316290 IN  EloPayMultiSigWallet0 Ether0.000172351
[ 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
0x320ac269c1b402c6cbaa16e4ac8c4368f86fa1e2f93e07729b8af12f9322c84772150699 days 11 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x14343bd240d378b216d322eda10da12fc440fc0e7.711664908 Ether
0xabb13a14ff1b64cedaa960ea33e6aa6b715d783f4a89cb5509e2b6561b9a5aac714945223 days 7 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c7.728488478 Ether
0x42d9250e8c1630a6e6ee2eb89bbba2b964fa1d45f0a6073d31ac4e51812653ba696887256 days 6 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c6.477290194 Ether
0x6d8097af806ef4d4b04954c3435eee755301ab762f9aea2f89e3d4571b20c66e691468365 days 11 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c1.291001243 Ether
0x1e70e413b3be76143d74647e41e6943108ac7eb8d48b717de54d9b099e91b18a691400365 days 14 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c3.900536324 Ether
0xb43dc2981628e68165b1892c084b88ff8c764829f4b0ed5652476f48e7ad9f30681218582 days 11 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c7.227298134 Ether
0x4c0604e72f8785045fb29975e668f3041e933292f8fe6a94abe694e9e4ee372d6624952113 days 5 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c4.279863784 Ether
0xfaeef8da6ed47e7c9926d62dac631617b41a2b8de1e4011295bd5b605e98644c6446055142 days 9 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c3.715098443 Ether
0x962eb66f918a4810d5d1f186dce4d3294b3ce5670a7a286a6799c271a25ddee16446022142 days 9 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0xe9c313d439f5d3d89bc0f95f8cb8ba22dbf5e7211.19047619 Ether
0xe593be79bdcaf087c7684a49aa8d9c88871224a01d24e917c4e282620d37c0376306719165 days 7 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x6130cb60b5c3777554aefd21216e200e1434e4bc0.5091908957 Ether
0x620cdf7551cb3b46801b2d4b009dc490a90772d36486c123e08b29182bd61d336264336172 days 10 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c2.812409012 Ether
0xa31be4e15abe2a9367d4b406a003ed680b1d94dc07d078621b2906f0b84877ca6233759177 days 14 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0xd530711f815bafc8a2826f32538f2d792d6388740.6 Ether
0x52dcaf30980158b85efb5a321ad5f1dc25b177e8545f2ba2b808dda8d2b202a76193110184 days 11 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x14343bd240d378b216d322eda10da12fc440fc0e2.556147093 Ether
0x61d26f0d0e051da7179e7e24b12b7df61d5bc4b2b6924de832974829388f74106139610193 days 12 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x6130cb60b5c3777554aefd21216e200e1434e4bc1.564161922 Ether
0x39b1f8a425177533634e87e4923ff3f8e5164a6ce783cd42e51170b9661592946139380193 days 13 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0xb3b204f80d8b9425800c6106a2b114704c55bf6d2.686604517 Ether
0x0e9cb11bb658955d0dced0bd0dbbdf734a6d4c6cc35669c7588b5cbc15f69dfe6122159196 days 11 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0xb3b204f80d8b9425800c6106a2b114704c55bf6d9.9 Ether
0xa01beccb7eb8eec9574b0dee3f927034d18eca999f93b2b258b4904a305b3cae6122058196 days 11 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0xb3b204f80d8b9425800c6106a2b114704c55bf6d0.1 Ether
0x8894e35b8b619e76448dd34d7bf1d39d8c1a45cb98f8bd2ee04990f1f10165dd6074535204 days 12 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c1.945184245 Ether
0x76c159b25637a1eecd288daa82bafc739690dcedd5776e39b5b772a14cb45d696074528204 days 12 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x8b618720206e2999e98ca2de5598ee4fa18c03392.899601305 Ether
0xf5b30e0b38f057a9f050b7d77b7bba35a9961508210d32e257a1887759f210046074525204 days 12 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0xe9c313d439f5d3d89bc0f95f8cb8ba22dbf5e7211.159840522 Ether
0xd6e626b5d841c75bdbd963b2a39222b013b50290dd66210c027b1202535b323e5932739228 days 12 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x22df21548f57867ab5c883b7e881c88c385f036c3.322 Ether
0x87470bfea9de5725c6807ea98c9a74ef8c4cf7ef3f2fbab3a8ca477b6e85be095780835254 days 13 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x721ac3fe8d10b8046f3d75b80e893b3cf557ea691 Ether
0x7451f3ca762138c660b881e80e74f2d0bac88ec2b21d667d28501878970fb4295719282265 days 11 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x8b82f749846fd5f93691fde13bad6071c27539c11.154 Ether
0xbeca2fd6c2271c14e658c12dda019e62d9247c72dcff7bf2398747c19a8af6d85514401301 days 12 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x4ddda5cf6183caa5fc5c5b4a71de270496455e861 Ether
0x9b78c69de186b88dbb8fc1873e10c461dad858860dc666287014299d4a21cc845450414312 days 12 hrs ago0x660cdee72302d2941a43db1275eded7827023baa0x521a974278bcaad7fbf61c3d55e06a20a3d0be0e0.55 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;
        if (dailyLimit < spentToday)
            return 0;
        return dailyLimit - spentToday;
    }
}

Contract ABI
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"calcMaxWithdraw","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"dailyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"lastDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"name":"_transactionIds","type":"uint256[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_dailyLimit","type":"uint256"}],"name":"changeDailyLimit","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"spentToday","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_dailyLimit","type":"uint256"}],"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dailyLimit","type":"uint256"}],"name":"DailyLimitChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"}]

Contract Creation Code
606060405260405161164438038061164483398101604052805160805160a05191909201919082826000825182603282118061003a57508181115b80610043575080155b8061004c575081155b1561005657610002565b600092505b84518310156100ce576002600050600086858151811015610002576020908102909101810151600160a060020a031682528101919091526040016000205460ff16806100c45750848381518110156100025790602001906020020151600160a060020a03166000145b1561015357610002565b845160038054828255600082905290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b918201916020890182156101cd579160200282015b828111156101cd5782518254600160a060020a0319166c0100000000000000000000000091820291909104178255602090920191600190910190610114565b600160026000506000878681518110156100025790602001906020020151600160a060020a0316815260200190815260200160002060006101000a81548160ff02191690837f010000000000000000000000000000000000000000000000000000000000000090810204021790555060019092019161005b565b506101f39291505b80821115610213578054600160a060020a03191681556001016101d5565b5050506004929092555050506006555061142d9050806102176000396000f35b509056606060405236156101325760e060020a6000350463025e7c278114610180578063173825d9146101b257806320ea8d86146101df5780632f54bf6e146102135780633411c81c146102335780634bc9fdc214610260578063547415251461028357806367eeba0c146102f75780636b0c932d146103055780637065cb4814610313578063784547a71461033e5780638b51d13f1461034e5780639ace38c2146103c2578063a0e67e2b146103fd578063a8abe69a1461046e578063b5dc40c31461054d578063b77bf60014610659578063ba51a6df14610667578063c01a8c8414610693578063c6427474146106a3578063cea0862114610714578063d74f8edd1461073f578063dc8452cd1461074c578063e20056e61461075a578063ee22610b1461078a578063f059cf2b1461079a575b6107a8600034111561017e57604080513481529051600160a060020a033316917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b565b34610002576107aa60043560038054829081101561000257600091825260209091200154600160a060020a0316905081565b34610002576107a8600435600030600160a060020a031633600160a060020a0316141515610a1a57610002565b34610002576107a8600435600160a060020a033390811660009081526002602052604090205460ff161515610c5f57610002565b34610002576107c660043560026020526000908152604090205460ff1681565b34610002576001602090815260043560009081526040808220909252602435815220546107c69060ff1681565b34610002576107da6007546000906201518001421115610d1b5750600654610d18565b34610002576107da6004356024356000805b600554811015610d2f578380156102be575060008181526020819052604090206003015460ff16155b806102e257508280156102e2575060008181526020819052604090206003015460ff165b156102ef57600191909101905b600101610295565b34610002576107da60065481565b34610002576107da60075481565b34610002576107a860043530600160a060020a031633600160a060020a0316141515610d3657610002565b34610002576107c6600435610801565b34610002576107da6004356000805b600354811015610e66576000838152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156103ba57600191909101905b60010161035d565b34610002576000602081905260043581526040902080546001820154600383015461087993600160a060020a03909316926002019060ff1684565b346100025760408051602080820183526000825260038054845181840281018401909552808552610923949283018282801561046257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610444575b50505050509050610d18565b34610002576109236004356024356044356064356040805160208181018352600080835283519182018452808252600554935192939192909182918059106104b35750595b9080825280602002602001820160405280156104ca575b509250600091508190505b600554811015610e6c578580156104fe575060008181526020819052604090206003015460ff16155b806105225750848015610522575060008181526020819052604090206003015460ff165b156105455780838381518110156100025760209081029091010152600191909101905b6001016104d5565b34610002576109236004356040805160208181018352600080835283519182018452808252600354935192939192909182918059106105895750595b9080825280602002602001820160405280156105a0575b509250600091508190505b600354811015610ee1576000858152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561065157600380548290811015610002576000918252602090912001548351600160a060020a03909116908490849081101561000257600160a060020a03909216602092830290910190910152600191909101905b6001016105ab565b34610002576107da60055481565b34610002576107a86004355b30600160a060020a031633600160a060020a0316141515610f5d57610002565b34610002576107a8600435610974565b3461000257604080516020600460443581810135601f81018490048402850184019095528484526107da948235946024803595606494929391909201918190840183828082843750949650505050505050600061096d848484600083600160a060020a0381161515610b6157610002565b34610002576107a860043530600160a060020a031633600160a060020a031614151561102857610002565b34610002576107da603281565b34610002576107da60045481565b34610002576107a8600435602435600030600160a060020a031633600160a060020a031614151561106357610002565b34610002576107a86004356109f7565b34610002576107da60085481565b005b60408051600160a060020a039092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600084815260208190526040902092506111d6845b600080805b600354811015610872576000848152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561086357600191909101905b600454821415610e5e57600192505b5050919050565b60408051600160a060020a03861681526020810185905282151560608201526080918101828152845460026000196101006001841615020190911604928201839052909160a0830190859080156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b50509550505050505060405180910390f35b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b9050611021815b33600160a060020a03811660009081526002602052604090205460ff161515610fc857610002565b6000858152600160208181526040808420600160a060020a0333168086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ce6855b6000818152602081905260408120600301548190839060ff16156107ec57610002565b600160a060020a038216600090815260026020526040902054829060ff161515610a4357610002565b600160a060020a0383166000908152600260205260408120805460ff1916905591505b60035460001901821015610b085782600160a060020a0316600360005083815481101561000257600091825260209091200154600160a060020a03161415610b3857600380546000198101908110156100025760009182526020909120015460038054600160a060020a039092169184908110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600380546000198101808355919082908015829011610b4357600083815260209020610b43918101908301610c0e565b600190910190610a66565b505060035460045411159150610c26905057600354610c2690610673565b60055460408051608081018252878152602080820188815282840188815260006060850181905286815280845294852084518154606060020a91820291909104600160a060020a031990911617815591516001808401919091559051805160028085018054818a5298879020999b5096989497601f9481161561010002600019011604830185900484019490939291019083901061139257805160ff19168380011785555b506113c29291505b80821115610c225760008155600101610c0e565b5090565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff161515610cee57610002565b6000858152600160209081526040808320600160a060020a0333168085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35b505b50505050565b600084815260208190526040902060030154849060ff1615610c9457610002565b50600854600654035b90565b6008546006541015610d0f57506000610d18565b5092915050565b600160a060020a038116600090815260026020526040902054819060ff1615610d5e57610002565b81600160a060020a0381161515610d7457610002565b6003546004546001909101906032821180610d8e57508181115b80610d97575080155b80610da0575081155b15610daa57610002565b600160a060020a0385166000908152600260205260409020805460ff19166001908117909155600380549182018082559091908281838015829011610e0057600083815260209020610e00918101908301610c0e565b50505060009283525060208220018054600160a060020a031916606060020a88810204179055604051600160a060020a038716917ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25050505050565b600101610806565b50919050565b878703604051805910610e7c5750595b908082528060200260200182016040528015610e93575b5093508790505b86811015610ed6578281815181101561000257906020019060200201518489830381518110156100025760209081029091010152600101610e9a565b505050949350505050565b81604051805910610eef5750595b908082528060200260200182016040528015610f06575b509350600090505b81811015610f55578281815181101561000257906020019060200201518482815181101561000257600160a060020a03909216602092830290910190910152600101610f0e565b505050919050565b600354816032821180610f6f57508181115b80610f78575080155b80610f81575081155b15610f8b57610002565b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b6000828152602081905260409020548290600160a060020a03161515610fed57610002565b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561099c57610002565b9392505050565b60068190556040805182815290517fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca29181900360200190a150565b600160a060020a038316600090815260026020526040902054839060ff16151561108c57610002565b600160a060020a038316600090815260026020526040902054839060ff16156110b457610002565b600092505b6003548310156111315784600160a060020a0316600360005084815481101561000257600091825260209091200154600160a060020a031614156111cb578360036000508481548110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600160a060020a03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b6001909201916110b9565b91508180611245575060028084015460001961010060018316150201160415801561124557506001830154611245906007546000906201518001421115611221574260075560006008555b600654600854830111806112385750600854828101105b1561142457506000611428565b15610ce85760038301805460ff1916600117905581151561126f5760018301546008805490910190555b825460018085015460405160028088018054600160a060020a039096169593949093839285926000199083161561010002019091160480156112f25780601f106112c7576101008083540402835291602001916112f2565b820191906000526020600020905b8154815290600101906020018083116112d557829003601f168201915b505091505060006040518083038185876185025a03f192505050156113415760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610ce8565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038301805460ff19169055811515610ce8575050600101546008805491909103905550565b82800160010185558215610c06579182015b82811115610c065782518260005055916020019190600101906113a4565b5050606091909101516003909101805460ff191660f860020a9283029290920491909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b5060015b9190505600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000009f7dfab2222a473284205cddf08a677726d786a00000000000000000000000005210c4dcd7eb899a1274fd6471adec9896ae05aa0000000000000000000000001d805bc00b8fa3c96ae6c8fa97b2fd24b19a9801000000000000000000000000aca7bd07a8c207f7964261c2cf1e0fbfcff37836

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.