Sponsored Link:   PAVOCOIN - IoT blockchain for the AgTech ecosystem. Bringing together IoT, blockchain, and agriculture. Join now!
Contract Overview | EOS-Owner
Balance: 934,212.316542915137416618 Ether
Ether Value: $661,992,189.63 (@ $708.61/ETH)
Transactions: 371 txns
Misc
Address Watch: Add To Watch List
Contract Creator: 0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73at txn 0x7e1605f9a2d1526133a8333b3592a3cf034b7ea4a60a3153e15b69da8ebe7947
Token Balances:
 Latest 25 txns from a total Of 371 transactions
View All

TxHash Age From To Value [TxFee]
0x487bcc549712ba8ea8daef302d86fc45d1f5d3d14d118c64240fc10375809dc03 days 7 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00079684
0xca5796e4b8847eca3d621f286d1b4e3de7d0463e2dd6440e78506da811c69ca13 days 7 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.001097232
0x6b81e1d3871d5b3f3f97ede7a39cb3b3c312690f23a6b28105dc412b8ac23f3f6 days 10 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00079684
0x0cceb3fde12900a5366b83357e7b6c77c49844f8bb45ae3517abc3d656e865436 days 10 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000604492
0x780aefde0d04f4f6ddd4a3e8457c8c85f91ee281d4a541d45ba48c987e17c3436 days 10 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00079684
0xd250a8258af6c5d24489f6cc88f11cf006dd8ac3d50c0290d0eefaf458a9581b6 days 10 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00111022
0x3ca6ecdb063da1c3b461054e5bdc22e4d808a1d13ec464dc27a2c4914991c8906 days 10 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000889553
0x98c263d341bcc6fed1bcdeacc960c87498147de30ba4f7a5e6bdc2e7e49875f66 days 10 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000960078
0xb0684cca7a6f5e6b822dc81c83fe020e5a7e6e1a992c668f20e8eccd520ef6fd9 days 15 hrs ago0x94e501a6fcb35910e3e62c1a8be2ba36be26769d  IN   EOS-Owner0 Ether0.00528
0xc921188cb1701211625d5b293935cdd2b2d3d9f1b9056b8d51aaf38ecc31ee109 days 15 hrs ago0x94e501a6fcb35910e3e62c1a8be2ba36be26769d  IN   EOS-Owner0 Ether0.00415679
0x6758140627a2ae0a06b9327fb1c81493837c9602204d186e088514c2910f481d10 days 23 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.00043178
0x1ee505edfdcfdb3e9f43d964554aae38542937a32241281ad0b9ec66a94260d610 days 23 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00079684
0x6a81a87325c809fe7a57ec437d06bae3be101fa4846fa751d81093109c5dead710 days 23 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00079684
0xaec2c11122597dd1366093293ed72375c22764cf7244bdf3b41a2df23ed6251010 days 23 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.00068545
0x14b013f406a448773de5a5cb74916749f80aa167c57fe4113c7dd2380dc9990911 days 2 hrs ago0x9c72af18fcb47203d498e568541cd74aa51815d6  IN   EOS-Owner0.001 Ether0.00040641545
0x1f98f030ad0610730b7271c8bbe6b0825de2d1a7b868a06744a0521fc5d13d9311 days 23 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000059552
0x341db8ee99744a40ebfd40101c8a11f889eacc3435b0016d968ad20dbf895c6d13 days 4 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000508572
0x16c58a093814f623035e7a5fef80269cfebfaf27654207fdaccd6a0cc182f36913 days 4 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.00050806
0xc60dbc526c70bd89d193b94a3bd8c48dd81f27dfc77c46a91f4527bea4a800e513 days 6 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000345424
0xcfa3ab59a1974bd8f59978b3e3aca01f48f055fd08cb024073dc506bff50574f13 days 6 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00111022
0xc6e391366177d553c347b8c36d38e150e43219d48c36289e4b589c0c5acf0a7113 days 6 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00111022
0xabd5cdadf6664c06fb4a6f695f593f522e2d7986453e0d313fc97d156d25a5ed13 days 6 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00158642
0x69d9aa391b237474af723c983008a70b139137ead40f689d27608025a3cb441513 days 6 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00104684
0xba9b32248cc0da8ebf01b86d7f37c1fd1b7cb1d41d823a4186e101e4d8782a6c13 days 7 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000548616
0xf5c6db256782ecee713405c213453392a3361f33d207e9eccb2b12174b2794a215 days 4 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.000159368
[ 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
0x487bcc549712ba8ea8daef302d86fc45d1f5d3d14d118c64240fc10375809dc056277723 days 7 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe5107100,000 Ether
0x6b81e1d3871d5b3f3f97ede7a39cb3b3c312690f23a6b28105dc412b8ac23f3f56101056 days 10 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x5ddfc011d0888b9da0463bdeec85f4b9faa4740050,000 Ether
0x0cceb3fde12900a5366b83357e7b6c77c49844f8bb45ae3517abc3d656e8654356100976 days 10 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf4211,853.966469589116919461 Ether
0x780aefde0d04f4f6ddd4a3e8457c8c85f91ee281d4a541d45ba48c987e17c34356100876 days 10 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe510750,000 Ether
0x6758140627a2ae0a06b9327fb1c81493837c9602204d186e088514c2910f481d558409810 days 23 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf498,414.301950383768973251 Ether
0x1ee505edfdcfdb3e9f43d964554aae38542937a32241281ad0b9ec66a94260d6558409310 days 23 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x5ddfc011d0888b9da0463bdeec85f4b9faa4740080,000 Ether
0x6a81a87325c809fe7a57ec437d06bae3be101fa4846fa751d81093109c5dead7558409210 days 23 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe510780,000 Ether
0xc60dbc526c70bd89d193b94a3bd8c48dd81f27dfc77c46a91f4527bea4a800e5557093113 days 6 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf4697,778.232812943435130417 Ether
0x69d9aa391b237474af723c983008a70b139137ead40f689d27608025a3cb4415557087313 days 6 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x2c2fb0313bd5120aa5d5bea20ea07e22e565c6b4100,000 Ether
0xf5c6db256782ecee713405c213453392a3361f33d207e9eccb2b12174b2794a2555975515 days 4 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x847da692032ce95ab2ae75a512699fc570b8a3d920,000 Ether
0xeaee67aa9163e6a4ca1590ec24fd0dc3c1a467b69e52ca4503c0f4e13e582bfd549718426 days 2 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40xa3907df8c310a4dbee36c15bbef96d9ce41164b3200,000 Ether
0x44a335369bf8274c2dd0015ef9672c0e5310f62f5aeb108db45e893b5a60ee98549106427 days 4 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40xb518106e3edb59ba13bb4707c62215f64cbc992d50,000 Ether
0x41880b2518b98ee2088f7a87c92bfebd8dc33e6bae898e36f01083b9e505d7b0548937627 days 11 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf4471,873.931642234202703206 Ether
0x170a637fe34a354b50d2938373c36d8a9ed7c02542026a85b2fb9f2b964d0803547254030 days 8 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40xb518106e3edb59ba13bb4707c62215f64cbc992d50,000 Ether
0x9c6bd4c68adeec72b104af61b05a406ba8073d27ce8f8111b97ac0b048c96e29546130432 days 6 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40xb518106e3edb59ba13bb4707c62215f64cbc992d50,000 Ether
0x9fb48d33620e625b56752b72defac52426b09e519d5c5b8ab96575e90e3637ae545633933 days 3 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40xb518106e3edb59ba13bb4707c62215f64cbc992d50,000 Ether
0xbfcfa29d143b6188c8f591143ceff470e79bfbc2223b217760468ae212ef5263542170838 days 23 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x847da692032ce95ab2ae75a512699fc570b8a3d93,557.98540143 Ether
0x517e3c164b3ef5a388b9b96a1af4c31b380d6e4853038201064a287cb589adbf542169239 days 2 mins ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40xb518106e3edb59ba13bb4707c62215f64cbc992d100,000 Ether
0x1c753623b6cb77e66735a08a1430dd58850b1b1982f2cf5839b5785e7ee23eb6540796441 days 6 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40xb518106e3edb59ba13bb4707c62215f64cbc992d100,000 Ether
0x7db35be1f3a03660c467675a027db5b5e2f4c54570f121fbc46604daf185c6a0540796241 days 6 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf4411,146.155859868469491838 Ether
0xaf587e596edec2a088abd22e6825cad526227d81724a7b44751ef0cf301ca64c537931146 days 36 mins ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x5ddfc011d0888b9da0463bdeec85f4b9faa4740091,100 Ether
0xf302be2cef24db15baa56ddfaacb40b793a55fc9410e159013673d5b9beeefd0537930946 days 37 mins ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x840e7a9161b162da4d4992057f263644eb04c3b5102,400 Ether
0x69b1117157279baf44550e97d3b58f583d475509f5df7d44134dfe8a7c6d612d533639353 days 4 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe5107103,200 Ether
0x79764aec9bbb56dfe3e638dcf823d75a9c75889be17a7310d13434ff99cebe27533634853 days 4 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40xc734ea09b2323bcc7f49bc70d7608b5c1b404cea110,000 Ether
0x665cc7f88aae7d8cc5752a5ab1b190c3c0e463c5f5c8f52042400e5fa83528f0532917554 days 9 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x88972d2aeac08b90de42aad4b85262323420bea385,000 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 - <[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 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.