Sponsored Link:   COVESTING - EU-based digital asset exchange. Aggregated liquidity. Algorithmic & Copy-trading features. 24/7 support. Get access!
Contract Overview | KyberMultiSigWallet
Balance: 86,649.114647913798190977 Ether
Ether Value: $39,085,682.64 (@ $451.08/ETH)
Transactions: 543 txns
Misc
Address Watch: Add To Watch List
Contract Creator: 0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73at txn 0x1655512929f985c24e0d75b26214e86ced263b46463b0b300f8d672bdf6049af
Token Balances:
 Latest 25 txns from a total Of 543 transactions

TxHash Age From To Value [TxFee]
0x2d195291a948a9c34639a6d5e48ea0f04b89e955aea5ed4ad8f49b821e4fa02b11 days 5 hrs ago0x2175b09a8321b712220d1608388e270f4b5906f1  IN   KyberMultiSigWallet0 Ether0.000567854
0xab212d384ed0d1bb8fcbc3536864c946e3202e4f625f414101d4ccebcaf9557411 days 14 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   KyberMultiSigWallet0 Ether0.000597047
0xd5bd7e9c22f0ecdea6f7ac4ba59abdde3bb41bf504fc3cfff8a0780aced7641011 days 15 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   KyberMultiSigWallet0 Ether0.0041979
0x172659bbefc49510305ac621b56c77ff222bf3b550cd8954d38cd90b68efe31920 days 21 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   KyberMultiSigWallet0 Ether0.00239106
0xf75e981948c18368e9e16e7b67aa4d865d063fa20ed1159cee89c704ea1fc63320 days 21 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   KyberMultiSigWallet0 Ether0.000976986
0xfffe3e27e9949f1f879c0f6a04b1cbcb694b38bb261d0736fc98857f0f79741020 days 22 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   KyberMultiSigWallet0 Ether0.00643678
0x9f416f0587df87d90f1c67fa865679cadfcffc00a28b406fd448d3df3770586c29 days 13 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   KyberMultiSigWallet16 Ether0.000316232
0x8668f10e3e467624c9f8575a5cd2338426954222886395bbbe5f28d24aa7f9ec29 days 16 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   KyberMultiSigWallet0 Ether0.001380276
0xdd87d19678ba1d4d8505d4382e7e255769e81026caa04c8daffc6f5fdd4a6b0f29 days 16 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   KyberMultiSigWallet0 Ether0.00186697
0x66f534bec6e1934a0fdbd25cf7b148964fadc63c0a8a0a47492ce1f4486b27aa29 days 16 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   KyberMultiSigWallet0 Ether0.006873906
0xf910d4af2afe22a4b437841671e8479072bf2bf3a96691fd53e0ce9d0782698029 days 16 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   KyberMultiSigWallet0 Ether0.003614905
0x96da482bddbaf175d9f1b51e4eff227d646c98aa9fd06eac1aac308262ea5dbc29 days 17 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   KyberMultiSigWallet0 Ether0.00320887
0x06a6607f05139bf838a7da65e9b840e54defe3b788b6e085e7fc9ec67236128629 days 17 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   KyberMultiSigWallet0 Ether0.003072055
0x6af0275f8a32fd39e68a7461854b8706ca8a233e93c9a88451972f9051e4632429 days 17 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   KyberMultiSigWallet0 Ether0.000960156
0xcfd11d5917124f76d9dc6cbb7841da4288573ed8a2ef031bf52f1fc473b8630f29 days 17 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   KyberMultiSigWallet0 Ether0.000586762
0x85bc0d96277871ee0fd88bda2489b9ec49e4e774d87af1e23ab05c0612b11d9329 days 17 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   KyberMultiSigWallet0 Ether0.000586762
0x2f5884c0249f4532b61cc06141ca1481686e48cd1298dfada0a9f93309d1120029 days 17 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   KyberMultiSigWallet0 Ether0.006866418
0xd5d260c9b50aee0435ad30b6644efdd4f050a0e451a364de1de183b2a60d9cc429 days 17 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   KyberMultiSigWallet0 Ether0.006868914
0xc5168253b4edeaa6017e68bd53ecd6037a250216f30150cb4212a05c4b6fe99f29 days 17 hrs ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   KyberMultiSigWallet0 Ether0.00687141
0xd8d7ddc2a3536b961017e03200840bfd593d5306b5710bbc8eb015577f63c25e38 days 23 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   KyberMultiSigWallet0 Ether0.000876722
0xe8b84eec20f30b12b1d814b6ceab4c85cbb1df8bb6e5f5704bd0bf14698f97bf38 days 23 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   KyberMultiSigWallet0 Ether0.001899695
0x42faaff606af0ed5eaaf371becd8d52317f37ba4e290c3c170de6e94bc3147e839 days 49 mins ago0xd0643bc0d0c879f175556509dbcee9373379d5c3  IN   KyberMultiSigWallet0 Ether0.00545727
0x2d492b546b3b1f41227acf089b6747025ad85ca9e513cd07e9e8d1c38b35232142 days 21 hrs ago0x8180a5ca4e3b94045e05a9313777955f7518d757  IN   KyberMultiSigWallet0 Ether0.00307734
0x2a14839220017c39d5c0c1f7b71e3c2a54d44452d9c42f77f33ba244be58d08742 days 21 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   KyberMultiSigWallet0 Ether0.00436468
0x21c4eb2a105f4a0e9be21c41c704e93ecdcca761895556d4f7524f5203e4381342 days 21 hrs ago0x449baf9413c60cd24a8c1c6010729c84b9d5139b  IN   KyberMultiSigWallet0 Ether0.001013498
[ 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
0x2d195291a948a9c34639a6d5e48ea0f04b89e955aea5ed4ad8f49b821e4fa02b578455011 days 5 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xcf6c378a19c9cd0236b953c1eebaa82550db6825166.38 Ether
0x172659bbefc49510305ac621b56c77ff222bf3b550cd8954d38cd90b68efe319572982120 days 21 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xcc3a572c4d49eeabd53154a59779f7eb6da912a941.67 Ether
0xd8d7ddc2a3536b961017e03200840bfd593d5306b5710bbc8eb015577f63c25e562797138 days 23 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x787b7b915bb1aecece3dce2491915b57ce69c364400 Ether
0x2a14839220017c39d5c0c1f7b71e3c2a54d44452d9c42f77f33ba244be58d087560561742 days 21 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xffc4bb89185e6775cbc4a9ac10bb5298d0157cd2200 Ether
0x74bf8c176dc14089273690519b5ceaba03d7fdc3839107f9daf0afb6ca6d04a8559972443 days 22 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x053be2218a888ad0aec995d2273396ebb90a566640 Ether
0xfdfd59975140efc7ec92dba85a1e35a549560fbc0dae8c68b93ddc6d8797e329553820454 days 16 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xfdf28bf25779ed4ca74e958d54653260af604c20300 Ether
0x3437d6704d877b5244c4f13d9cffaaf17274c39bfb2d2c722c34475c7bac7253550999559 days 14 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x7c5634dc4c39862e9bcd499d11ba7c37601268827.89490305 Ether
0x431a4540af6ab422496ff4c12a906647563bb405efe222dd91982735e5d4d229543815471 days 21 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x88cc8cdc7baeeb15d03da28f0db830eeb445d8e1400 Ether
0x521cea17da49e2bdb6f794af86f12974312380251538340a1f5e24e8aa897d96538347981 days 11 mins ago0x146f2fba9eba1b72d5162a56e3e5da6c0f4808cc0x3eb01b3391ea15ce752d01cf3d3f09dec596f650537.65 Ether
0x48fa7ccff202a7792ab401e0ba2c6deb113277ec4be6136ef0701d3a245252df534825286 days 20 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x88cc8cdc7baeeb15d03da28f0db830eeb445d8e1500 Ether
0x16c96caff5a2030982246b48b1805202098048d91ff63a6c3602b0c942f7523a534334487 days 16 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x146f2fba9eba1b72d5162a56e3e5da6c0f4808cc537.65 Ether
0x448a96b1830d1526b37cc69cb3446ef94bff438b5c1eaac3a7703900fc69a928534333487 days 16 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x9a56f1cfa93d64db202f7f2a99f0d129b2ad0180100 Ether
0x3429a5ebc029e5e1ece928ba01b09b2214ca3fb76cead2ebd328a84655e1fd805215978109 days 4 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xfe9dac1ded58b2b3929ebff0442d70029fa0cd43117.2 Ether
0xca4e0c290f90fc62de031c25582e45c5b9f5f83797fb9f50bbbf04845d6a1dde5215970109 days 4 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x21357b3dcb7ae07da23a708dbbd9a2340001a3f418.75 Ether
0xabdb8cab2cfea55450a416dbbd555e2444f911ec6b34f45a564ff3082c3a9fde5182191114 days 21 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x88cc8cdc7baeeb15d03da28f0db830eeb445d8e1299 Ether
0x721857cd34a7e50093bd3853d1bafaad68977b22cfba7c6c7c63eb8e4e8540495182184114 days 21 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x88cc8cdc7baeeb15d03da28f0db830eeb445d8e11 Ether
0x8f776257a4a70524e6ad4e0ddfc0f8591562347ee666f7f576eddb3d22672e565177510115 days 16 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xe7efe820aefca42880b2ae0046e8fe32fa381827999 Ether
0xec60446018636610b081e4ae16a2043b8467fb855f3d50903696288591c1a5115177485115 days 16 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xe7efe820aefca42880b2ae0046e8fe32fa3818271 Ether
0x532b4fd867eff756476b08989fa423c3577e30b795f64e829ba7079744e7a35a5160032118 days 15 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xbc29571ed93a3ef41a7567414ca386ef7d355183100 Ether
0xa43128807522046b8c5968d69f876259b9bd8141f70aa1c4cd24c962786ba2165107931127 days 12 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xb836e8046eadc979a1f230449b0270060fda091e12.8479 Ether
0x9c3a73c9e2040b57ed044a17a8e19c94714891b0f2a6c467d7303975c82911345065483134 days 15 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x7ad0fa0e2380a5e0208b25ac69216bd7ff206bf8216.5134 Ether
0xcdb4aeb71be86703996c8861746cd0e59125df6348b2fa33f99b0dbe4dac1e2f5065077134 days 17 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x63825c174ab367968ec60f061753d3bbd36a0d8f120 Ether
0x8d67bf858ad665efbdfc13e1d3608f6f2c3afeb1a4c3ba56bd35defbc3ab19405063618134 days 23 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xfdf28bf25779ed4ca74e958d54653260af604c20100 Ether
0x5e6d3005a1d114e34384fa1481ef7d6a970c465af8b3b71d24433b7e652d593f5060146135 days 13 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500xd7c709eae2f70856a2c8e9b69796addd85eed680118.89 Ether
0x7842c1818cda08e7f6d954c3cf277d373b1c641dc282bf99d92f60e94bc57b055036348139 days 13 hrs ago0x3eb01b3391ea15ce752d01cf3d3f09dec596f6500x9a56f1cfa93d64db202f7f2a99f0d129b2ad0180300 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity), IdentityPrecompileReturnIgnored (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Similar match)
Note: Displaying similar matching verified source code at contract 0x35792029777427920ce7aDecccE9e645465e9C72(excluding Constructor Arguments if any)
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;
        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 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.