Sponsored:   VC, TLDR and CoinBene Funded "TEMCO: Bitcoin Network (RSK) Suppy Chain! Whitelist KYC Starts Now!!"
Contract Overview | Kyber_MultiSig
Balance: 5,562.922133101998190977 Ether
Ether Value: $585,330.67 (@ $105.22/ETH)
Transactions: 908 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73at txn 0x1655512929f985c24e0d75b26214e86ced263b46463b0b300f8d672bdf6049af
Token Balance:
 Latest 25 transactions from a total of 908 transactions

TxHash Age From To Value [TxFee]
0x56f22136ed3e9cb01bbf8e8c99d80e47078bc9f2ce56c57f8371b6fd095158251 day 12 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   Kyber_MultiSig0 Ether0.00159532
0xbf826f4df51fdebaf247233038a4c405f109ffc8986894ffe84f37563263b9d91 day 12 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   Kyber_MultiSig0 Ether0.00054341
0x81b0d6e45017a7757e9e5686dcb3e17b8cc9447a7c8ab5652b739aef8daa16331 day 12 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   Kyber_MultiSig0 Ether0.00079766
0xa3574dafedd7ab81ea01e01cd1bdde517b0e6421c29be51f1f568985bf7f23c01 day 12 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   Kyber_MultiSig0 Ether0.00088124
0x8824b8f747818236c6ea2a5fbd09c572a53263e83dad25809518ef9572bea8571 day 12 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   Kyber_MultiSig0 Ether0.00108682
0x503fd022b30920b06afc76a84f6998cfbde3b0f955384b928449f8250296796f1 day 13 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   Kyber_MultiSig0 Ether0.00129791
0xcd825dfa50af4fae2ec977a5503136a1e7de6051f1f63c59e0a09291de243e401 day 13 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   Kyber_MultiSig0 Ether0.0013827726
0x05bf55a4ca251c6292aa542cfb730864649c4f9358e63ca0ebbb781cd920deff1 day 16 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   Kyber_MultiSig0 Ether0.00106812
0x4ffd31aa744193db602e0747aad48ad29295a671552f705c80147559e6a62e911 day 16 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   Kyber_MultiSig0 Ether0.0017619
0x8558fd0bff78bcfc65c080ecb287eba92c58860e1635103a3591ec8bcbd50fa32 days 9 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   Kyber_MultiSig0 Ether0.00175976
0xccd502d4f22dafb91a460a57fdf30d5a7c14368eab7b7ff1e068c8e210d29a692 days 14 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   Kyber_MultiSig0 Ether0.00106812
0xb15361ced2e289d7af9f71fdd88ed7d89611012487d526d17600b45be1ab6c252 days 17 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   Kyber_MultiSig0 Ether0.00176126
0x4fe6b841f60ce04d9213d5ff4ed7ad7ad18a11098aee954508492dbaf2d951944 days 9 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   Kyber_MultiSig0 Ether0.00159532
0x26cec1ec96aa5a4a5c4c0cc16ad36bf80373728e71625b4da1edfa467f16a7a94 days 9 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   Kyber_MultiSig0 Ether0.00054341
0xb0d5ff92ec299a742ad0a19fe572744795b081a74fb514b9a0b2ab298e628fcd4 days 10 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   Kyber_MultiSig0 Ether0.0002984
0xa3822736c92d0fffd08548434730f6acf7613a133fd52fbe5d8ae1a76c0f218a4 days 10 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   Kyber_MultiSig0 Ether0.0025971
0xbc8f1f5baebe2162660d37d8abb9d505e891942b414865060c124b47bfb8647e4 days 10 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   Kyber_MultiSig0 Ether0.00279732
0x8a8a8027acc1411c7d0d3790866460494adfcd27d26c9b1bf1e4f7875e4922807 days 12 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   Kyber_MultiSig0 Ether0.00119649
0x940697f20f4802bc5e91b4ced6e0ee23c28e44296cbf6694af7a08cce4f1798b7 days 12 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   Kyber_MultiSig0 Ether0.00108682
0xc2e37f3a8a54e1c35d5c6b387913582aecf51a1a08742e27f18f2d5f623d91b07 days 13 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   Kyber_MultiSig0 Ether0.00129983
0xd6eeed7df467870f6afa90c76060c95f8fd6076abf6d284461b0676b6e93ec097 days 19 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   Kyber_MultiSig0 Ether0.00079766
0xb06ae42c5d0646aadb4201548574f7133b02e069860d5e77ebdce81acc60aab87 days 19 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   Kyber_MultiSig0 Ether0.000815115
0xc152e90923beebf6d52c2ab311338c8d426d9e5ba7c9f9e849036afda517b5797 days 20 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   Kyber_MultiSig0 Ether0.00279732
0x46c7a0f5a413ce2c494e69e2050912f2cea4802e7ae4d38f3be9be2e926e96fd10 days 6 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   Kyber_MultiSig0 Ether0.00087988
0x6407a504a5f2b7ad6ac1627f8a18564b6f06fb6c0c823b3c60183cfb2d796fb810 days 22 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   Kyber_MultiSig0 Ether0.00132387
[ 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
0x56f22136ed3e9cb01bbf8e8c99d80e47078bc9f2ce56c57f8371b6fd0951582569038371 day 12 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x008024771614f4290696b63ba3dd3a1ceb34d4d919,999 Ether
0x81b0d6e45017a7757e9e5686dcb3e17b8cc9447a7c8ab5652b739aef8daa163369037651 day 12 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x008024771614f4290696b63ba3dd3a1ceb34d4d91 Ether
0x4fe6b841f60ce04d9213d5ff4ed7ad7ad18a11098aee954508492dbaf2d9519468863374 days 9 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xd99c41703d5bd44eb80d8bc8d1d7d2ccdd32489415,000 Ether
0x8a8a8027acc1411c7d0d3790866460494adfcd27d26c9b1bf1e4f7875e49228068674997 days 12 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xd99c41703d5bd44eb80d8bc8d1d7d2ccdd32489420,000 Ether
0xd6eeed7df467870f6afa90c76060c95f8fd6076abf6d284461b0676b6e93ec0968656667 days 19 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x2e4f5a27b6163ead05ecca02c54b17fe2043341f10,000 Ether
0x1235cb2a1c3b855da54d009df176b5e9edab8147ec9d1c2c2ae3a93fa36a9406683115313 days 12 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xfdf28bf25779ed4ca74e958d54653260af604c20200 Ether
0xeb48f604db2b2e2864303f41ce4a93662e03ae2c9db0cb6accb6c477e3d9acd8677959622 days 1 hr ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x822ca3549b99b7a6cf6046f7d3f0d60d86425deb1,786 Ether
0x7b261fd09eb34bf404bd3ebe7e4059491c3238060bfde497ff0f073858e0a423677352223 days 1 hr ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x63825c174ab367968ec60f061753d3bbd36a0d8f100 Ether
0x56bb851f74b2b773c8dba5b3d58c87305aa16a7c0380bdecf10646b077618969676715724 days 2 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x63825c174ab367968ec60f061753d3bbd36a0d8f200 Ether
0x53484415d91db1d2c199e5b62b84821190f689dbc312aeaafc5889601af00079658729253 days 13 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x2e4f5a27b6163ead05ecca02c54b17fe2043341f2,000 Ether
0xd219a37c5d4a810254eaa73d8383aa61e4365c606b004c3798e0e99baf3a93b9652054464 days 11 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x2e4f5a27b6163ead05ecca02c54b17fe2043341f1,000 Ether
0x280ac88750441b01de63b5d899aa7d20be92732451e825242d3d54c0b5553aa9647653271 days 15 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x2e4f5a27b6163ead05ecca02c54b17fe2043341f1,000 Ether
0xbe32e3d19e797df22615070866a58d8d6a86ebe9db7ecda937d8c88dbd39a4c3647652371 days 15 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x008024771614f4290696b63ba3dd3a1ceb34d4d91,000 Ether
0x4914bf1a725e0e463ffdf8c1194487db0a82c38af3f0f1bcb6847559c022c8fa644036477 days 11 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xfdf28bf25779ed4ca74e958d54653260af604c20100 Ether
0x33588b3b853476464ed760b4c89b0c1fe24abd9e63b9966c67ab8a4c3a17ff59643992777 days 13 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x2e4f5a27b6163ead05ecca02c54b17fe2043341f1,000 Ether
0x862253e0c369577739be2c01872db1feec0a8d8ebf193c3bb540b7bb6f4756c2643989877 days 13 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x008024771614f4290696b63ba3dd3a1ceb34d4d91,000 Ether
0x79b05d9cc97125a01d729eae258693d0705e54809a36ef6a2a10a376084aa5a2641056882 days 8 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x008024771614f4290696b63ba3dd3a1ceb34d4d9500 Ether
0xe2431a6fd26dfa1280eff15ae40223b9052c2cb5b096c2e3ce5738cba0e9a161640661183 days 36 mins ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x9a56f1cfa93d64db202f7f2a99f0d129b2ad0180200 Ether
0xa541cf82e210f34abda75274063fccf745109d7aa50f39448edc50376bbacda6637396388 days 8 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x008024771614f4290696b63ba3dd3a1ceb34d4d9800 Ether
0x64b7d131815984b209f92f9ab86972619ceb8feea6de8a330fc304fa89457bf4636131090 days 11 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x008024771614f4290696b63ba3dd3a1ceb34d4d9500 Ether
0x5bcff034da58ae0b9c1b21dfa20372eba765a5abca43323c5aed6168cc10e952635314791 days 19 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x008024771614f4290696b63ba3dd3a1ceb34d4d9500 Ether
0x11d2da61cef1fd9c15131245bbfbcfae58860fe0008ba213e40903d541b0ae4f633124395 days 10 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x55193c0fbf5921d4d91f26cc8cf84f5d72c6e50d355.450237 Ether
0x2243ac63ec321215dd898ec587c4a69fa5b0505786c83af26455ef9c67b77dec6269373105 days 18 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x787b7b915bb1aecece3dce2491915b57ce69c364353.1073446328 Ether
0xd56c874692c575f4c33b1675ee32a497d364fa07ea3985b20787f6fa9b1074dc6258951107 days 12 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x008024771614f4290696b63ba3dd3a1ceb34d4d9300 Ether
0xf6ab23a3d2c1e0d1c916734023b40f6c1c8bb034c65c26d8b6d648d5d9bf52f06222327113 days 17 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x21357b3dcb7ae07da23a708dbbd9a2340001a3f441.5672667 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 GasUsed 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.