Sponsored Link:   Buy your 1st Ethereum in 5 minutes. Trusted by more than 100k buyers.
Contract Overview | RaidenMultiSigWallet
ETH Balance: 109,531.609992664836911821 Ether
ETH USD Value: $37,493,765.42 (@ $342.31/ETH)
No Of Transactions: 31 txns
  Latest 25 txns from a total Of 31 transactions View All

TxHash Age From To Value [TxFee]
0x9f6a03d5409577d62b3023a61a93e5b349ae2be5180c3f0670fb28c2ad2dacd331 days 6 hrs ago0x18c266260cf222bb364bde080d2a16ff647ea4c6  IN   RaidenMultiSigWallet0 Ether0.003248721
0x08c330bfef8c79af199dce5bd5837d45318c4aa64838924570b12b3a0b79a79c31 days 6 hrs ago0x7373dfdccdb934a3d1b92fd6f5ea33aa67985a92  IN   RaidenMultiSigWallet0 Ether0.00154221
0xbde0d775c2a52716f0bbaee1827aeaee6b6c3d12dc046cf62c26a85b07f7002c31 days 6 hrs ago0x18c266260cf222bb364bde080d2a16ff647ea4c6  IN   RaidenMultiSigWallet0 Ether0.001120182
0x24a387597b89458b5e1da4da5c9bf254247d8a1be3a7a3bd6421c4db73160ccc31 days 6 hrs ago0x7373dfdccdb934a3d1b92fd6f5ea33aa67985a92  IN   RaidenMultiSigWallet0 Ether0.00119553
0xb83dc6c74b270dd9f728d3d6444d27cb818148014e1633dc421313c16fe6370731 days 7 hrs ago0x18c266260cf222bb364bde080d2a16ff647ea4c6  IN   RaidenMultiSigWallet0 Ether0.001350048
0xa7e47c3e56e25b34736cbda245b3122b98782aaa4902f4309d257aae2d6a590731 days 7 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00528186
0x78373430b63cd19b7fdb32ec16613bf0841735635dd0a1e8352113c8b6e72e9f31 days 7 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00389565
0x1615ddb8994a79f378899adb2e07d9d47492bb48551d483f729a64b9abdfe51732 days 6 hrs ago0x18c266260cf222bb364bde080d2a16ff647ea4c6  IN   RaidenMultiSigWallet0 Ether0.00079702
0xb5882cacd1ec819d22e6e87f18e81d24681698e325e9c90ac95020a3c763d6a432 days 7 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00044664
0x69d7530cf8ebcfa2f3512a74c228ebbe69c9a6fffc1db1cf4cee11c603295f0732 days 7 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00044664
0x48a24c78516469e2af280e5144c43738c0e3b3a661465ac2163daa5563df70db32 days 7 hrs ago0x7373dfdccdb934a3d1b92fd6f5ea33aa67985a92  IN   RaidenMultiSigWallet0 Ether0.000814155
0xa7579414015aa06006e5c2f9f860a8a3b6dcf9bb1b206774a48ae0e06d994e2132 days 7 hrs ago0x7373dfdccdb934a3d1b92fd6f5ea33aa67985a92  IN   RaidenMultiSigWallet0 Ether0.00121683
0x86c23f82f4c27e9a8dcb52d449beb7746b95dcf4d253ab36926437b2939b6c3f32 days 7 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.0041979
0xf299f5c67ad8a696d0a9a9380a38dc64d17bc1ac023dc171cd25f4f0499c076033 days 5 hrs ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.000960156
0xe9b5831d7e9e337cd5e860efdac622a40fa7028bd828262c239dd762aebc3aa733 days 5 hrs ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.000976986
0xd617c19c3d578096089a5bd0267378077ce8fe65f2eddec6ecea2f65d12cc26233 days 10 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.0052473
0x6dfc2c0110ab7ce4ac09cfd3eb4efd9165dc9cc012790d42a03916726eb63d7933 days 10 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00528378
0xad169a530443411ca4f09fa83e7601b1508a32ef98d88e2f0b6b08fd1b6cdd2c33 days 10 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00419598
0xd861348d5d2522bfb2e5f86d7c348d1c13d46b9a79269ea9b0664fe3e75948f936 days 1 hr ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.001631772
0x2ef82e9e7c3c724a447efb549b2c72473a69deffff9539d0b2c3267a38e6c84236 days 1 hr ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.056548656
0xada0d4c67a90e0a441917f6e1aafb304d0170e98590f729e6f89b93f6cc1d90736 days 1 hr ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.001485756
0xdd56fd4c6a32031be6dfe56305966a5f481203ea8ec94642d108c9346bf03e4736 days 5 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.00133355
0x8e6071b2e30df420778e0b187f85ef35dc2406c0137c55eff5512c7fc2d9187636 days 5 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.001356925
0x753a6e0f7234e9221740de7cf2dbc63bd1c627ea7060d9278823fbfd950427d236 days 6 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0.001 Ether0.000406584
0xf3dfdd4a8492b250f8cc66b7c3057cb7a145d93d4e9c852443e6413c0b15669b36 days 6 hrs ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0.001 Ether0.000406584
[ 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
0x9843ff49104ca314e6a79af857730a392ac0a99050fa3fcf7a21588944d41cb6447023817 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2 Ether
0xa5c7e3f49870d094ae4111c1c711c76f984adc1b04ee06faba5017806e5afcf5447023817 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x899873c4c1020b362d81d5ab7c861364eda6c3b700cd59eaae5f17695e0c93f9447023717 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e0.5 Ether
0x4c64c7776dacec4e6de1fa080e7a4b5b3d7ec66de0cac4e8c8e2482a39371e29447023617 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1 Ether
0x87c3d4a3260989c7b08c4f9d62b91a4194cba4be964106cbea53a583a8515e2b447023017 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1.5 Ether
0x0d6223fb64a749e8100498591181a20bd93bdf7a5f4c3fa818e0e8c28d40ebf8447022617 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e50 Ether
0x10089c79582e29139939d706499936ffcec98fd26b731e5d4deabbf68d849f75447022317 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x172ccfa54612f54d2e3209a4ae873ea8d0fee40c0527e2d736fd3fe9e7bc32f3447022117 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e0.8 Ether
0xe334ca3e9067fb8967df27e40eca45746c1c8434e8e4123f11b5555e17d5787d447021717 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1 Ether
0x0a11c6e5c9363a7d4f7e6aca0d4166da20eb8d30c2f032d1b237563a03c16a38447021717 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1.86 Ether
0x01b965f5fb858a71b0ee6c28b3debb14a9fe06504577678bcbda7a44d2c8ff56447021517 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e12.25363375 Ether
0x8312be188008bb69c3303e3bb644df889970c7616a1bd173a36338fadea11d7a447021117 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0xecbea99d83fd41bc837bc377450fb0ecd0d7743308047297996f153c1fefa043447021017 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.6 Ether
0xeca16608a31d5db64e91664220fed0759e064cb53f7e8e1ee20b7f8c38b0b256447020717 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e84 Ether
0xa1643b01abec91f8f6e51a767307b0c66fe0f3f6b121132016d07e9cccd71143447020617 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x454ae79b2a1cf2795a30033dec8af37f55c856c36732ce83ffbff3fae1f477c6447019817 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e3 Ether
0x037e7cd631d7c1112925caf25846d335be8813575a47ec7b4ce642e10400f5b3447019717 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e0.25 Ether
0xa68314a319e64c7121b49483ccd42206d22a06806531cd500795d574be70cf49447019617 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x02b195ac907df81618f451663dee8f14c70532bf376b0411b45d610dccb12b4e447019617 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0xf63cec43dd5887793e7f9691245d5e29f4f2e49e7a2de7647e70233e356ce326447019517 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1.49 Ether
0x46bb7cdfa79ee94838c40eccb1b7fb89e7b396426576a7bba1a5e4ddf8b5cf3a447019417 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1,000 Ether
0xb807818c3801e6d02a044b12c43454fe54209da0f5d8beda94716c3d48d9d151447019217 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x5f73c36b0122e1fe8c993c76818314d8395dfc13f52ab14f0605c9a9ab005e60447019017 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e7 Ether
0x1331d97fd533c4e83662dc9933f3f3c4924943970fd84368c2aabcd6640ac09c447018717 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x3e59ef68170be356362134925aa0b5c3dd3c961a1407ba6cc9c53eb54fd6a761447018617 days 9 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e4.37 Ether
[ Download CSV Export  ] 
Contract Name: MultiSigWalletWithDailyLimit
Compiler Version: 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 - <stefan.george@consensys.net>
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 - <stefan.george@consensys.net>
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 Switch To Opcodes View
606060405260405161164438038061164483398101604052805160805160a05191909201919082826000825182603282118061003a57508181115b80610043575080155b8061004c575081155b1561005657610002565b600092505b84518310156100ce576002600050600086858151811015610002576020908102909101810151600160a060020a031682528101919091526040016000205460ff16806100c45750848381518110156100025790602001906020020151600160a060020a03166000145b1561015357610002565b845160038054828255600082905290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b918201916020890182156101cd579160200282015b828111156101cd5782518254600160a060020a0319166c0100000000000000000000000091820291909104178255602090920191600190910190610114565b600160026000506000878681518110156100025790602001906020020151600160a060020a0316815260200190815260200160002060006101000a81548160ff02191690837f010000000000000000000000000000000000000000000000000000000000000090810204021790555060019092019161005b565b506101f39291505b80821115610213578054600160a060020a03191681556001016101d5565b5050506004929092555050506006555061142d9050806102176000396000f35b509056606060405236156101325760e060020a6000350463025e7c278114610180578063173825d9146101b257806320ea8d86146101df5780632f54bf6e146102135780633411c81c146102335780634bc9fdc214610260578063547415251461028357806367eeba0c146102f75780636b0c932d146103055780637065cb4814610313578063784547a71461033e5780638b51d13f1461034e5780639ace38c2146103c2578063a0e67e2b146103fd578063a8abe69a1461046e578063b5dc40c31461054d578063b77bf60014610659578063ba51a6df14610667578063c01a8c8414610693578063c6427474146106a3578063cea0862114610714578063d74f8edd1461073f578063dc8452cd1461074c578063e20056e61461075a578063ee22610b1461078a578063f059cf2b1461079a575b6107a8600034111561017e57604080513481529051600160a060020a033316917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b565b34610002576107aa60043560038054829081101561000257600091825260209091200154600160a060020a0316905081565b34610002576107a8600435600030600160a060020a031633600160a060020a0316141515610a1a57610002565b34610002576107a8600435600160a060020a033390811660009081526002602052604090205460ff161515610c5f57610002565b34610002576107c660043560026020526000908152604090205460ff1681565b34610002576001602090815260043560009081526040808220909252602435815220546107c69060ff1681565b34610002576107da6007546000906201518001421115610d1b5750600654610d18565b34610002576107da6004356024356000805b600554811015610d2f578380156102be575060008181526020819052604090206003015460ff16155b806102e257508280156102e2575060008181526020819052604090206003015460ff165b156102ef57600191909101905b600101610295565b34610002576107da60065481565b34610002576107da60075481565b34610002576107a860043530600160a060020a031633600160a060020a0316141515610d3657610002565b34610002576107c6600435610801565b34610002576107da6004356000805b600354811015610e66576000838152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156103ba57600191909101905b60010161035d565b34610002576000602081905260043581526040902080546001820154600383015461087993600160a060020a03909316926002019060ff1684565b346100025760408051602080820183526000825260038054845181840281018401909552808552610923949283018282801561046257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610444575b50505050509050610d18565b34610002576109236004356024356044356064356040805160208181018352600080835283519182018452808252600554935192939192909182918059106104b35750595b9080825280602002602001820160405280156104ca575b509250600091508190505b600554811015610e6c578580156104fe575060008181526020819052604090206003015460ff16155b806105225750848015610522575060008181526020819052604090206003015460ff165b156105455780838381518110156100025760209081029091010152600191909101905b6001016104d5565b34610002576109236004356040805160208181018352600080835283519182018452808252600354935192939192909182918059106105895750595b9080825280602002602001820160405280156105a0575b509250600091508190505b600354811015610ee1576000858152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561065157600380548290811015610002576000918252602090912001548351600160a060020a03909116908490849081101561000257600160a060020a03909216602092830290910190910152600191909101905b6001016105ab565b34610002576107da60055481565b34610002576107a86004355b30600160a060020a031633600160a060020a0316141515610f5d57610002565b34610002576107a8600435610974565b3461000257604080516020600460443581810135601f81018490048402850184019095528484526107da948235946024803595606494929391909201918190840183828082843750949650505050505050600061096d848484600083600160a060020a0381161515610b6157610002565b34610002576107a860043530600160a060020a031633600160a060020a031614151561102857610002565b34610002576107da603281565b34610002576107da60045481565b34610002576107a8600435602435600030600160a060020a031633600160a060020a031614151561106357610002565b34610002576107a86004356109f7565b34610002576107da60085481565b005b60408051600160a060020a039092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600084815260208190526040902092506111d6845b600080805b600354811015610872576000848152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561086357600191909101905b600454821415610e5e57600192505b5050919050565b60408051600160a060020a03861681526020810185905282151560608201526080918101828152845460026000196101006001841615020190911604928201839052909160a0830190859080156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b50509550505050505060405180910390f35b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b9050611021815b33600160a060020a03811660009081526002602052604090205460ff161515610fc857610002565b6000858152600160208181526040808420600160a060020a0333168086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ce6855b6000818152602081905260408120600301548190839060ff16156107ec57610002565b600160a060020a038216600090815260026020526040902054829060ff161515610a4357610002565b600160a060020a0383166000908152600260205260408120805460ff1916905591505b60035460001901821015610b085782600160a060020a0316600360005083815481101561000257600091825260209091200154600160a060020a03161415610b3857600380546000198101908110156100025760009182526020909120015460038054600160a060020a039092169184908110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600380546000198101808355919082908015829011610b4357600083815260209020610b43918101908301610c0e565b600190910190610a66565b505060035460045411159150610c26905057600354610c2690610673565b60055460408051608081018252878152602080820188815282840188815260006060850181905286815280845294852084518154606060020a91820291909104600160a060020a031990911617815591516001808401919091559051805160028085018054818a5298879020999b5096989497601f9481161561010002600019011604830185900484019490939291019083901061139257805160ff19168380011785555b506113c29291505b80821115610c225760008155600101610c0e565b5090565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff161515610cee57610002565b6000858152600160209081526040808320600160a060020a0333168085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35b505b50505050565b600084815260208190526040902060030154849060ff1615610c9457610002565b50600854600654035b90565b6008546006541015610d0f57506000610d18565b5092915050565b600160a060020a038116600090815260026020526040902054819060ff1615610d5e57610002565b81600160a060020a0381161515610d7457610002565b6003546004546001909101906032821180610d8e57508181115b80610d97575080155b80610da0575081155b15610daa57610002565b600160a060020a0385166000908152600260205260409020805460ff19166001908117909155600380549182018082559091908281838015829011610e0057600083815260209020610e00918101908301610c0e565b50505060009283525060208220018054600160a060020a031916606060020a88810204179055604051600160a060020a038716917ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25050505050565b600101610806565b50919050565b878703604051805910610e7c5750595b908082528060200260200182016040528015610e93575b5093508790505b86811015610ed6578281815181101561000257906020019060200201518489830381518110156100025760209081029091010152600101610e9a565b505050949350505050565b81604051805910610eef5750595b908082528060200260200182016040528015610f06575b509350600090505b81811015610f55578281815181101561000257906020019060200201518482815181101561000257600160a060020a03909216602092830290910190910152600101610f0e565b505050919050565b600354816032821180610f6f57508181115b80610f78575080155b80610f81575081155b15610f8b57610002565b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b6000828152602081905260409020548290600160a060020a03161515610fed57610002565b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561099c57610002565b9392505050565b60068190556040805182815290517fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca29181900360200190a150565b600160a060020a038316600090815260026020526040902054839060ff16151561108c57610002565b600160a060020a038316600090815260026020526040902054839060ff16156110b457610002565b600092505b6003548310156111315784600160a060020a0316600360005084815481101561000257600091825260209091200154600160a060020a031614156111cb578360036000508481548110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600160a060020a03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b6001909201916110b9565b91508180611245575060028084015460001961010060018316150201160415801561124557506001830154611245906007546000906201518001421115611221574260075560006008555b600654600854830111806112385750600854828101105b1561142457506000611428565b15610ce85760038301805460ff1916600117905581151561126f5760018301546008805490910190555b825460018085015460405160028088018054600160a060020a039096169593949093839285926000199083161561010002019091160480156112f25780601f106112c7576101008083540402835291602001916112f2565b820191906000526020600020905b8154815290600101906020018083116112d557829003601f168201915b505091505060006040518083038185876185025a03f192505050156113415760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610ce8565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038301805460ff19169055811515610ce8575050600101546008805491909103905550565b82800160010185558215610c06579182015b82811115610c065782518260005055916020019190600101906113a4565b5050606091909101516003909101805460ff191660f860020a9283029290920491909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b5060015b9190505600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000009f7dfab2222a473284205cddf08a677726d786a00000000000000000000000005210c4dcd7eb899a1274fd6471adec9896ae05aa0000000000000000000000001d805bc00b8fa3c96ae6c8fa97b2fd24b19a9801000000000000000000000000aca7bd07a8c207f7964261c2cf1e0fbfcff37836
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.