Contract Overview | District0x_MultiSig
Balance: 35,890.235378470837437369 Ether
Ether Value: $7,672,614.52 (@ $213.78/ETH)
Transactions: 173 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73at txn 0xbdc3ca5a2d4654ada84277aad4430af8a236b31aea666e51b597d6c50a241b2e
Token Balance:
 Latest 25 txns From a total of 173 Transactions

TxHash Age From To Value [TxFee]
0x1757c3a94db3406fee8977ab2888baac6294c7b8a21447d01b1aba2c9bd8f9994 days 14 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x87743cbf7d673cfbaf5c96854cefc46c4b0cdad40b8726761e8c94afeae035d74 days 14 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.001645848
0xb90bd05ba6937d122ef32b7bed3af2e7ff4937b0907d079fd9d61a59582357c714 days 16 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x13a74ac32e147cb269a0ad41b29437d50fbc389097998a61d66fb436c50e317b15 days 1 hr ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00072689188
0xa6628d13563c89715a7ccdec4aba644a76911532f90257e486da7d55651075c315 days 10 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x60958df0e520836d200434b8441e3a8bf7fe4c8af090cdfeb27a29efda6a4d0715 days 13 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00095963
0x39a2acff87e9f099fffb1b4a91fb574670835c996fe5b9e3dfb6da0063fdcad318 days 12 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x1032463b692f266c4b8bbad269441178897c58ec0aa34a7d4775c105838c0d4118 days 12 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x9f8fef68c0b165d491c6112b0a4e57c549c96fe937ec71b891ca40b612167be918 days 12 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.000762474
0x68d97ebe238399533aed3f550a0a60160aca6d0619cccb01f25b27342697f69a18 days 13 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.0000982608
0x4d00d6fa524bd71dc03bd04ad945d83901dca398a2cc7a45238083ab19b1719118 days 13 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.000889553
0xc6cdcb56f5ffd37e8419fe3fd40d3d15f1a1b3555499714e907b4af4277b3b8f18 days 14 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00095963
0xfbc6347a0e906e31138834fbdc5b789046ea4deda6482de1051601ac3920ca7f18 days 14 hrs ago0xbcd9a181ca8745a71a1b3848efa16fe7a80bff04  IN   District0x_MultiSig7.443 Ether0.0000767992
0x3fc525a9513d1d7013f8ec9d8517f421b74bdb282af22ecf6a983ff9b6147d9d19 days 14 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x9be68bb075d1509b869a7a6df117d60a4f266476cdd1f4037af6521630bcf9ff19 days 14 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.001316064
0xdfa461ed3d14062fda9908e46d124df4989a8f26bac1286a52f796ffeac50c5029 days 14 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x97d9ce9065daa67fc69b08e2666a62f30edaefbf72637acd7c032fc00b1225f229 days 14 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00068545
0x1b1ff7448e86850eaad3748306dc1508b54c31dbeed29f4fdd72a47b4453d15d35 days 16 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x0fdc641c908d6c34085fabc17491090998f68c913e49ccdd7d8bfa144b8cb64036 days 39 mins ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.0004384832
0x5d0dd91453524f71dfeb7ca74037d088b5030ff8bd2645995731ec9701b6572f39 days 13 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.000939168
0xbb557047da3beee7ef6a5e52569c58aeaeecd03b6132642e0d07fbedc12187a739 days 13 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.000939168
0xbe910a2d4c5cc7af21d6d880f2c4a2f7b4c71762158223adb59d565e932da1b339 days 13 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.000762474
0xe907ce69d2c042444e51ebf1a108c881c53ddac1cc08dfcbd62f526640137ee739 days 13 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00082254
0xf9fab660ca56e462049d5931a3ebdaa06feff0ecd795ff47e3288471ce60740253 days 12 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x150740798ea21a0ea0add0a06ad22c9407c1f27e5a5522ae28d840b3a5ba9e4053 days 12 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click Here To View More View All
ParentTxHash Block Age From To Value
0x1757c3a94db3406fee8977ab2888baac6294c7b8a21447d01b1aba2c9bd8f99963737554 days 14 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377110.417 Ether
0xb90bd05ba6937d122ef32b7bed3af2e7ff4937b0907d079fd9d61a59582357c7631257614 days 16 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb1,962 Ether
0xa6628d13563c89715a7ccdec4aba644a76911532f90257e486da7d55651075c3630817815 days 10 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d85316637727.5 Ether
0x39a2acff87e9f099fffb1b4a91fb574670835c996fe5b9e3dfb6da0063fdcad3628985818 days 12 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377424 Ether
0x1032463b692f266c4b8bbad269441178897c58ec0aa34a7d4775c105838c0d41628984618 days 12 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4488 Ether
0x3fc525a9513d1d7013f8ec9d8517f421b74bdb282af22ecf6a983ff9b6147d9d628352319 days 14 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xbcd9a181ca8745a71a1b3848efa16fe7a80bff04225 Ether
0xdfa461ed3d14062fda9908e46d124df4989a8f26bac1286a52f796ffeac50c50622397229 days 14 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x89dbb75467a93fc949673f49882dbd8ec9fb046714.1125 Ether
0x1b1ff7448e86850eaad3748306dc1508b54c31dbeed29f4fdd72a47b4453d15d618804835 days 16 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba417 Ether
0x5d0dd91453524f71dfeb7ca74037d088b5030ff8bd2645995731ec9701b6572f616508239 days 13 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377122.3 Ether
0xbb557047da3beee7ef6a5e52569c58aeaeecd03b6132642e0d07fbedc12187a7616507139 days 13 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4109 Ether
0xf9fab660ca56e462049d5931a3ebdaa06feff0ecd795ff47e3288471ce607402608230553 days 12 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d85316637776.5 Ether
0x150740798ea21a0ea0add0a06ad22c9407c1f27e5a5522ae28d840b3a5ba9e40608229553 days 12 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4104 Ether
0x3a7efc24a7636347cf0cc5fa2b34df2b3d540418cafec95434487efae0827c65599998067 days 11 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d85316637771.5 Ether
0x7f5e3c9f32c7ce84ba71c2f15ff55bf77dfcf5f8578901dbc5b94942c6744b80599996167 days 11 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba468.45 Ether
0xcaa0f25459f05bc01f9a0f5057e103130fc17dd98e6a6057dd589e255ab0ee80591756281 days 11 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d85316637765.732 Ether
0x36092d7f9f973ffa0f5a311c98dbcbfd3a8383766ca57486a2047bede72b0bae591755581 days 11 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba472.67 Ether
0x7ebc12076dacd3f415cfba21288e7f872e5dad6b6b730ea6a294d4d324db0248582945196 days 14 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xbcd9a181ca8745a71a1b3848efa16fe7a80bff04103 Ether
0x18185ce90fa1d3d400140ef812d2acaba9396d5ee53e61ac423a94eea832c530581760298 days 15 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb300 Ether
0x451fe6c38aec5bac4ae3ca266081ed420c18383c51a6d4433a18c8b4f728de025795054102 days 11 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d85316637742.487 Ether
0x06f2260642253635ca52a01472aa6bbfe2c41996a3c5cf90f20de7e2161dc0755795045102 days 11 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba463.706 Ether
0x2eadaacd4c7831d95fff450f8da5d517e45ce2cb83f2af2d1b7c94a37b05a48a5732223113 days 13 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xfe88dd131d675874d8475ed6d3e3e92993f76d5110.3 Ether
0x0e91dde938e84e61fd55755fa102774f8fdf0fd35801a0bcff7fcaf823d64c1c5715345116 days 12 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x2a7c59ec1a2e10e5642e2e2b38c73053aca7150289.842 Ether
0xad8ae105ac9b7268ba7d8abad336316dfd931d6da34dc8b9d083aad457ce06c75658148126 days 16 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xbcd9a181ca8745a71a1b3848efa16fe7a80bff0479 Ether
0x9229135afb8e1897bb6a6d719828e69e4af85cc320ee120a895b221eb102c6725638329130 days 4 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x2a7c59ec1a2e10e5642e2e2b38c73053aca7150288 Ether
0xae41842d6a5ab04520a024e0391c0360e374b90d09e1e204faf7c28bca1b4c4e5627425132 days 2 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd61a73832cab4744f955f1ed307db2ad70e1928676.51 Ether
[ Download CSV Export  ] 
Contract Name: MultiSigWalletWithDailyLimit
Compiler Text: v0.4.4+commit.4633f3de
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.4;


/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <[email protected]>
contract MultiSigWallet {

    uint constant public MAX_OWNER_COUNT = 50;

    event Confirmation(address indexed sender, uint indexed transactionId);
    event Revocation(address indexed sender, uint indexed transactionId);
    event Submission(uint indexed transactionId);
    event Execution(uint indexed transactionId);
    event ExecutionFailure(uint indexed transactionId);
    event Deposit(address indexed sender, uint value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint required);

    mapping (uint => Transaction) public transactions;
    mapping (uint => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    address[] public owners;
    uint public required;
    uint public transactionCount;

    struct Transaction {
        address destination;
        uint value;
        bytes data;
        bool executed;
    }

    modifier onlyWallet() {
        if (msg.sender != address(this))
            throw;
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        if (isOwner[owner])
            throw;
        _;
    }

    modifier ownerExists(address owner) {
        if (!isOwner[owner])
            throw;
        _;
    }

    modifier transactionExists(uint transactionId) {
        if (transactions[transactionId].destination == 0)
            throw;
        _;
    }

    modifier confirmed(uint transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notConfirmed(uint transactionId, address owner) {
        if (confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notExecuted(uint transactionId) {
        if (transactions[transactionId].executed)
            throw;
        _;
    }

    modifier notNull(address _address) {
        if (_address == 0)
            throw;
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        if (   ownerCount > MAX_OWNER_COUNT
            || _required > ownerCount
            || _required == 0
            || ownerCount == 0)
            throw;
        _;
    }

    /// @dev Fallback function allows to deposit ether.
    function()
        payable
    {
        if (msg.value > 0)
            Deposit(msg.sender, msg.value);
    }

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners and required number of confirmations.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    function MultiSigWallet(address[] _owners, uint _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint i=0; i<_owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == 0)
                throw;
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }

    /// @dev Allows to add a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of new owner.
    function addOwner(address owner)
        public
        onlyWallet
        ownerDoesNotExist(owner)
        notNull(owner)
        validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        OwnerAddition(owner);
    }

    /// @dev Allows to remove an owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner.
    function removeOwner(address owner)
        public
        onlyWallet
        ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint i=0; i<owners.length - 1; i++)
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        owners.length -= 1;
        if (required > owners.length)
            changeRequirement(owners.length);
        OwnerRemoval(owner);
    }

    /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner to be replaced.
    /// @param owner Address of new owner.
    function replaceOwner(address owner, address newOwner)
        public
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
    {
        for (uint i=0; i<owners.length; i++)
            if (owners[i] == owner) {
                owners[i] = newOwner;
                break;
            }
        isOwner[owner] = false;
        isOwner[newOwner] = true;
        OwnerRemoval(owner);
        OwnerAddition(newOwner);
    }

    /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
    /// @param _required Number of required confirmations.
    function changeRequirement(uint _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        RequirementChange(_required);
    }

    /// @dev Allows an owner to submit and confirm a transaction.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function submitTransaction(address destination, uint value, bytes data)
        public
        returns (uint transactionId)
    {
        transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
    }

    /// @dev Allows an owner to confirm a transaction.
    /// @param transactionId Transaction ID.
    function confirmTransaction(uint transactionId)
        public
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        Confirmation(msg.sender, transactionId);
        executeTransaction(transactionId);
    }

    /// @dev Allows an owner to revoke a confirmation for a transaction.
    /// @param transactionId Transaction ID.
    function revokeConfirmation(uint transactionId)
        public
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        Revocation(msg.sender, transactionId);
    }

    /// @dev Allows anyone to execute a confirmed transaction.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction tx = transactions[transactionId];
            tx.executed = true;
            if (tx.destination.call.value(tx.value)(tx.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                tx.executed = false;
            }
        }
    }

    /// @dev Returns the confirmation status of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Confirmation status.
    function isConfirmed(uint transactionId)
        public
        constant
        returns (bool)
    {
        uint count = 0;
        for (uint i=0; i<owners.length; i++) {
            if (confirmations[transactionId][owners[i]])
                count += 1;
            if (count == required)
                return true;
        }
    }

    /*
     * Internal functions
     */
    /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function addTransaction(address destination, uint value, bytes data)
        internal
        notNull(destination)
        returns (uint transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        Submission(transactionId);
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns number of confirmations of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Number of confirmations.
    function getConfirmationCount(uint transactionId)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]])
                count += 1;
    }

    /// @dev Returns total number of transactions after filers are applied.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Total number of transactions after filters are applied.
    function getTransactionCount(bool pending, bool executed)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
                count += 1;
    }

    /// @dev Returns list of owners.
    /// @return List of owner addresses.
    function getOwners()
        public
        constant
        returns (address[])
    {
        return owners;
    }

    /// @dev Returns array with owner addresses, which confirmed transaction.
    /// @param transactionId Transaction ID.
    /// @return Returns array of owner addresses.
    function getConfirmations(uint transactionId)
        public
        constant
        returns (address[] _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint count = 0;
        uint i;
        for (i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]]) {
                confirmationsTemp[count] = owners[i];
                count += 1;
            }
        _confirmations = new address[](count);
        for (i=0; i<count; i++)
            _confirmations[i] = confirmationsTemp[i];
    }

    /// @dev Returns list of transaction IDs in defined range.
    /// @param from Index start position of transaction array.
    /// @param to Index end position of transaction array.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Returns array of transaction IDs.
    function getTransactionIds(uint from, uint to, bool pending, bool executed)
        public
        constant
        returns (uint[] _transactionIds)
    {
        uint[] memory transactionIdsTemp = new uint[](transactionCount);
        uint count = 0;
        uint i;
        for (i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
            {
                transactionIdsTemp[count] = i;
                count += 1;
            }
        _transactionIds = new uint[](to - from);
        for (i=from; i<to; i++)
            _transactionIds[i - from] = transactionIdsTemp[i];
    }
}

/// @title Multisignature wallet with daily limit - Allows an owner to withdraw a daily limit without multisig.
/// @author Stefan George - <[email protected]>
contract MultiSigWalletWithDailyLimit is MultiSigWallet {

    event DailyLimitChange(uint dailyLimit);

    uint public dailyLimit;
    uint public lastDay;
    uint public spentToday;

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners, required number of confirmations and daily withdraw limit.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    /// @param _dailyLimit Amount in wei, which can be withdrawn without confirmations on a daily basis.
    function MultiSigWalletWithDailyLimit(address[] _owners, uint _required, uint _dailyLimit)
        public
        MultiSigWallet(_owners, _required)
    {
        dailyLimit = _dailyLimit;
    }

    /// @dev Allows to change the daily limit. Transaction has to be sent by wallet.
    /// @param _dailyLimit Amount in wei.
    function changeDailyLimit(uint _dailyLimit)
        public
        onlyWallet
    {
        dailyLimit = _dailyLimit;
        DailyLimitChange(_dailyLimit);
    }

    /// @dev Allows anyone to execute a confirmed transaction or ether withdraws until daily limit is reached.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        Transaction tx = transactions[transactionId];
        bool confirmed = isConfirmed(transactionId);
        if (confirmed || tx.data.length == 0 && isUnderLimit(tx.value)) {
            tx.executed = true;
            if (!confirmed)
                spentToday += tx.value;
            if (tx.destination.call.value(tx.value)(tx.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                tx.executed = false;
                if (!confirmed)
                    spentToday -= tx.value;
            }
        }
    }

    /*
     * Internal functions
     */
    /// @dev Returns if amount is within daily limit and resets spentToday after one day.
    /// @param amount Amount to withdraw.
    /// @return Returns if amount is under daily limit.
    function isUnderLimit(uint amount)
        internal
        returns (bool)
    {
        if (now > lastDay + 24 hours) {
            lastDay = now;
            spentToday = 0;
        }
        if (spentToday + amount > dailyLimit || spentToday + amount < spentToday)
            return false;
        return true;
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns maximum withdraw amount.
    /// @return Returns amount.
    function calcMaxWithdraw()
        public
        constant
        returns (uint)
    {
        if (now > lastDay + 24 hours)
            return dailyLimit;
        return dailyLimit - spentToday;
    }
}

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

  Contract Creation Code Switch To Opcodes View
606060405260405161163038038061163083398101604052805160805160a05191909201919082826000825182603282118061003a57508181115b80610043575080155b8061004c575081155b1561005657610002565b600092505b84518310156100ce576002600050600086858151811015610002576020908102909101810151600160a060020a031682528101919091526040016000205460ff16806100c45750848381518110156100025790602001906020020151600160a060020a03166000145b1561015357610002565b845160038054828255600082905290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b918201916020890182156101cd579160200282015b828111156101cd5782518254600160a060020a0319166c0100000000000000000000000091820291909104178255602090920191600190910190610114565b600160026000506000878681518110156100025790602001906020020151600160a060020a0316815260200190815260200160002060006101000a81548160ff02191690837f010000000000000000000000000000000000000000000000000000000000000090810204021790555060019092019161005b565b506101f39291505b80821115610213578054600160a060020a03191681556001016101d5565b505050600492909255505050600655506114199050806102176000396000f35b509056606060405236156101325760e060020a6000350463025e7c278114610180578063173825d9146101b257806320ea8d86146101df5780632f54bf6e146102135780633411c81c146102335780634bc9fdc214610260578063547415251461028357806367eeba0c146102f75780636b0c932d146103055780637065cb4814610313578063784547a71461033e5780638b51d13f1461034e5780639ace38c2146103c2578063a0e67e2b146103fd578063a8abe69a1461046e578063b5dc40c31461054d578063b77bf60014610659578063ba51a6df14610667578063c01a8c8414610693578063c6427474146106a3578063cea0862114610714578063d74f8edd1461073f578063dc8452cd1461074c578063e20056e61461075a578063ee22610b1461078a578063f059cf2b1461079a575b6107a8600034111561017e57604080513481529051600160a060020a033316917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b565b34610002576107aa60043560038054829081101561000257600091825260209091200154600160a060020a0316905081565b34610002576107a8600435600030600160a060020a031633600160a060020a0316141515610a1a57610002565b34610002576107a8600435600160a060020a033390811660009081526002602052604090205460ff161515610c5f57610002565b34610002576107c660043560026020526000908152604090205460ff1681565b34610002576001602090815260043560009081526040808220909252602435815220546107c69060ff1681565b34610002576107da6007546000906201518001421115610d0f5750600654610d18565b34610002576107da6004356024356000805b600554811015610d1b578380156102be575060008181526020819052604090206003015460ff16155b806102e257508280156102e2575060008181526020819052604090206003015460ff165b156102ef57600191909101905b600101610295565b34610002576107da60065481565b34610002576107da60075481565b34610002576107a860043530600160a060020a031633600160a060020a0316141515610d2257610002565b34610002576107c6600435610801565b34610002576107da6004356000805b600354811015610e52576000838152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156103ba57600191909101905b60010161035d565b34610002576000602081905260043581526040902080546001820154600383015461087993600160a060020a03909316926002019060ff1684565b346100025760408051602080820183526000825260038054845181840281018401909552808552610923949283018282801561046257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610444575b50505050509050610d18565b34610002576109236004356024356044356064356040805160208181018352600080835283519182018452808252600554935192939192909182918059106104b35750595b9080825280602002602001820160405280156104ca575b509250600091508190505b600554811015610e58578580156104fe575060008181526020819052604090206003015460ff16155b806105225750848015610522575060008181526020819052604090206003015460ff165b156105455780838381518110156100025760209081029091010152600191909101905b6001016104d5565b34610002576109236004356040805160208181018352600080835283519182018452808252600354935192939192909182918059106105895750595b9080825280602002602001820160405280156105a0575b509250600091508190505b600354811015610ecd576000858152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561065157600380548290811015610002576000918252602090912001548351600160a060020a03909116908490849081101561000257600160a060020a03909216602092830290910190910152600191909101905b6001016105ab565b34610002576107da60055481565b34610002576107a86004355b30600160a060020a031633600160a060020a0316141515610f4957610002565b34610002576107a8600435610974565b3461000257604080516020600460443581810135601f81018490048402850184019095528484526107da948235946024803595606494929391909201918190840183828082843750949650505050505050600061096d848484600083600160a060020a0381161515610b6157610002565b34610002576107a860043530600160a060020a031633600160a060020a031614151561101457610002565b34610002576107da603281565b34610002576107da60045481565b34610002576107a8600435602435600030600160a060020a031633600160a060020a031614151561104f57610002565b34610002576107a86004356109f7565b34610002576107da60085481565b005b60408051600160a060020a039092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600084815260208190526040902092506111c2845b600080805b600354811015610872576000848152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561086357600191909101905b600454821415610e4a57600192505b5050919050565b60408051600160a060020a03861681526020810185905282151560608201526080918101828152845460026000196101006001841615020190911604928201839052909160a0830190859080156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b50509550505050505060405180910390f35b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b905061100d815b33600160a060020a03811660009081526002602052604090205460ff161515610fb457610002565b6000858152600160208181526040808420600160a060020a0333168086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ce6855b6000818152602081905260408120600301548190839060ff16156107ec57610002565b600160a060020a038216600090815260026020526040902054829060ff161515610a4357610002565b600160a060020a0383166000908152600260205260408120805460ff1916905591505b60035460001901821015610b085782600160a060020a0316600360005083815481101561000257600091825260209091200154600160a060020a03161415610b3857600380546000198101908110156100025760009182526020909120015460038054600160a060020a039092169184908110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600380546000198101808355919082908015829011610b4357600083815260209020610b43918101908301610c0e565b600190910190610a66565b505060035460045411159150610c26905057600354610c2690610673565b60055460408051608081018252878152602080820188815282840188815260006060850181905286815280845294852084518154606060020a91820291909104600160a060020a031990911617815591516001808401919091559051805160028085018054818a5298879020999b5096989497601f9481161561010002600019011604830185900484019490939291019083901061137e57805160ff19168380011785555b506113ae9291505b80821115610c225760008155600101610c0e565b5090565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff161515610cee57610002565b6000858152600160209081526040808320600160a060020a0333168085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35b505b50505050565b600084815260208190526040902060030154849060ff1615610c9457610002565b50600854600654035b90565b5092915050565b600160a060020a038116600090815260026020526040902054819060ff1615610d4a57610002565b81600160a060020a0381161515610d6057610002565b6003546004546001909101906032821180610d7a57508181115b80610d83575080155b80610d8c575081155b15610d9657610002565b600160a060020a0385166000908152600260205260409020805460ff19166001908117909155600380549182018082559091908281838015829011610dec57600083815260209020610dec918101908301610c0e565b50505060009283525060208220018054600160a060020a031916606060020a88810204179055604051600160a060020a038716917ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25050505050565b600101610806565b50919050565b878703604051805910610e685750595b908082528060200260200182016040528015610e7f575b5093508790505b86811015610ec2578281815181101561000257906020019060200201518489830381518110156100025760209081029091010152600101610e86565b505050949350505050565b81604051805910610edb5750595b908082528060200260200182016040528015610ef2575b509350600090505b81811015610f41578281815181101561000257906020019060200201518482815181101561000257600160a060020a03909216602092830290910190910152600101610efa565b505050919050565b600354816032821180610f5b57508181115b80610f64575080155b80610f6d575081155b15610f7757610002565b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b6000828152602081905260409020548290600160a060020a03161515610fd957610002565b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561099c57610002565b9392505050565b60068190556040805182815290517fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca29181900360200190a150565b600160a060020a038316600090815260026020526040902054839060ff16151561107857610002565b600160a060020a038316600090815260026020526040902054839060ff16156110a057610002565b600092505b60035483101561111d5784600160a060020a0316600360005084815481101561000257600091825260209091200154600160a060020a031614156111b7578360036000508481548110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600160a060020a03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b6001909201916110a5565b9150818061123157506002808401546000196101006001831615020116041580156112315750600183015461123190600754600090620151800142111561120d574260075560006008555b600654600854830111806112245750600854828101105b1561141057506000611414565b15610ce85760038301805460ff1916600117905581151561125b5760018301546008805490910190555b825460018085015460405160028088018054600160a060020a039096169593949093839285926000199083161561010002019091160480156112de5780601f106112b3576101008083540402835291602001916112de565b820191906000526020600020905b8154815290600101906020018083116112c157829003601f168201915b505091505060006040518083038185876185025a03f1925050501561132d5760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610ce8565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038301805460ff19169055811515610ce8575050600101546008805491909103905550565b82800160010185558215610c06579182015b82811115610c06578251826000505591602001919060010190611390565b5050606091909101516003909101805460ff191660f860020a9283029290920491909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b5060015b91905056000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000008ac7230489e80000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000085e6ecb2b3511bffe4edf4cd3b00caf3802702e100000000000000000000000000a245706741d7949c82356ef9955dd3f7bfc21700000000000000000000000028bbf0ef519f72cafea000eaf64ed679dbdda738

 

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