Sponsored Link:   Alt.Estate - ERC20 for Real Estate. Live Prototype in Japan, USA, EU.Buy ALT tokens. Endorsed by partners of PWC, Knight Frank.
 Latest 25 txns from a total Of 1232 transactions
View All

TxHash Age From To Value [TxFee]
0x9038e0ff344d27e0cd154eb6e65f5a1727b896f925c618b5661c31b8618e75ae20 days 4 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.003518452
0x8d5a0255eeed6e4ccca0e49026535fca2721b778d82eedaa6a24ef3fbd117a0820 days 5 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00039132
0x1b167cbcc0b248c73b31e9bb7cd11b71ae3535999ca794bded1185f7748c1aa620 days 7 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.002890157
0x71ea4620ecd43eea242cb08fd1162d57b1e25b1ea7c4ca3914708dbceb1d0aec20 days 16 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000482952
0xc0069faa155d96faf10c430602120f7b38f94ae92c599f0dd3a2495b9783361e20 days 16 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00032184
0x9d7f308c22ea11b8391a7a171238446d2b69a1aad7e53979cec5b006491a27d820 days 17 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000512793
0x922e2d851b7004b903637124d9fef2e2fea22c3bdab748ee6bfe475adf2861f432 days 23 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000743724
0x9970da4e4faf0839a57d81662678b237daa3c0d5c4c7fb0b90d77d4b67d2962134 days 11 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000078264
0x8121dca20c334ed30105d721e8326096b46bc623938c5445eb41515f4a118d0234 days 12 hrs ago0x1b1414d6e2dcf307a8c79ed26e7a172afe0352c0  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.014358026
0xacfd8c695e49ffbf73177dae083efd743f9963b225ca3b6a156e1ae00e0e3acb34 days 17 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.0012067
0x2ca64d4323eb0e29884ebbe3af972c5a6a52d399f8acba5a3c1b6d1f6ff03efd48 days 18 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00034199
0x0a62286e83d39f3960480d8711ee90db59a19262f87f837908ac545e9aaae93950 days 17 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000512985
0x0fed852ae8f353ac9b8a3d7644f2aa2b2af73bbbad3868b7c17a69d353b3b24151 days 19 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00170995
0x559bc634fb3e672001f747dadbdb76876ac76985dfaaae600166fe0096f313ef66 days 15 hrs ago0x34dfff1699850f78229885d38c551da31d37f683  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00042148
0x1cde0340d645c78a42ef207f675ad49295ac21d3ed179718fe8d46a94867e51f70 days 5 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00068398
0x59d302d668fe74e9b3b6de656fb40872285c2dbf5c34c8210da9e73d3c56527f84 days 17 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00351968
0xf2ae51c8a96e83899e2cb24a99c59b3c65ff97e99ce04c1b5a393223c966f57a85 days 15 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.000313056
0x3e59da400d5f52ed11d20a4da9d84468a0867ffab5c5be4e41653cadda1abc4785 days 15 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.028758012007
0xb29c617969fb7eee9e9f7de1b8f806c2fa8f0348357e559a7e03f305063650f485 days 15 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00048268
0x82166b44cc1535e952a321a8191a2bca7d6eab99a322bc128ce54ff7dd41bd6f87 days 23 hrs ago0x7fda38d44943e05460d2e75946ae24444a2d9ef4  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0.5 Ether0.000090352
0x03ed2525d0e7ebe97c74f649a6f184de41c9f06a4d35429022eea9d7a9f7b96e88 days 18 hrs ago0x49e641d5d6c99cc4dec9a38877fd70da466e550f  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0.1 Ether0.000926108
0xd37cfe7a4d6394cf517309e4deaeacd20943a479666260424664beddf44c63e089 days 14 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.0707968
0x446e17f82bca39d4004f387ce97251b4e17c82c918da9359a1e50bfe6b294eb189 days 14 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.04956042
0xd24e6408864f6fa21994489a78c1e53c51869849475d3017ea5b8f8e19e9f8a589 days 15 hrs ago0x9b0a5fd9c6d94305aba74a59180bbdd441108128  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00239393
0x159f7d4d13fba7015ef3d657b900fdc0d7eb0b7da55e6082a6bdc8f91af003ca89 days 19 hrs ago0x3203b00f1a224ca20ce791816e32a6eb5a474692  IN  0xb4b67fba9949105b89dd5785c6d99e452ac2888e0 Ether0.00151209
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 21 Internal Transactions

ParentTxHash Block Age From To Value
0x8d5a0255eeed6e4ccca0e49026535fca2721b778d82eedaa6a24ef3fbd117a08555432720 days 5 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c100 Ether
0x71ea4620ecd43eea242cb08fd1162d57b1e25b1ea7c4ca3914708dbceb1d0aec555158220 days 16 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c19.5 Ether
0xc0069faa155d96faf10c430602120f7b38f94ae92c599f0dd3a2495b9783361e555155120 days 16 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c0.25 Ether
0x9d7f308c22ea11b8391a7a171238446d2b69a1aad7e53979cec5b006491a27d8555136920 days 17 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x3203b00f1a224ca20ce791816e32a6eb5a4746920.25 Ether
0x922e2d851b7004b903637124d9fef2e2fea22c3bdab748ee6bfe475adf2861f4548073032 days 23 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c11 Ether
0x9970da4e4faf0839a57d81662678b237daa3c0d5c4c7fb0b90d77d4b67d29621547200334 days 11 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c300 Ether
0x2ca64d4323eb0e29884ebbe3af972c5a6a52d399f8acba5a3c1b6d1f6ff03efd538712048 days 18 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x0a62286e83d39f3960480d8711ee90db59a19262f87f837908ac545e9aaae939537543450 days 17 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x0fed852ae8f353ac9b8a3d7644f2aa2b2af73bbbad3868b7c17a69d353b3b241536876851 days 19 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x1cde0340d645c78a42ef207f675ad49295ac21d3ed179718fe8d46a94867e51f525898370 days 5 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x59d302d668fe74e9b3b6de656fb40872285c2dbf5c34c8210da9e73d3c56527f517359384 days 17 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0xf2ae51c8a96e83899e2cb24a99c59b3c65ff97e99ce04c1b5a393223c966f57a516830685 days 15 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0xf79364ed2cb64c8c984c759ff755d66c693bc15f56 Ether
0xd24e6408864f6fa21994489a78c1e53c51869849475d3017ea5b8f8e19e9f8a5514478689 days 15 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c20 Ether
0x2f70d24c40faddb15da88c258f42c6a99cd4612fd0e1342d7998c53b2628c02a514376689 days 19 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x87ed6369212814c286ebfe56dba741e9e5eda15c2 Ether
0xbd4b38864dc181be711a623e8d9a91345e89bb076b2f94a295ebbb0e2d0dea7f514374189 days 19 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x9b0a5fd9c6d94305aba74a59180bbdd44110812819.99 Ether
0xa26fb3253524f7ae9355361ce9f1bc63a623752a6815f3522f571fb050460d2a514297689 days 22 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x9b0a5fd9c6d94305aba74a59180bbdd44110812819.9 Ether
0x7e0e113eea249dc493c556f41db0e09271f0480b3822cc99b39089e542793b17513762890 days 20 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x3203b00f1a224ca20ce791816e32a6eb5a4746920.01 Ether
0xd28275c84ca18cd09c59542c4b274c5ca5a8070fb9364bad3cbc25f41734e8d5512372593 days 5 hrs ago0x9a8963f5d68c84028f77251cf967a84b21a413d60xb4b67fba9949105b89dd5785c6d99e452ac2888e64.652104055 Ether
0x6120d9cc197f0836f2cbcd71cac3d85c7861e9c8cfa73ec09ffea755d579469e512262293 days 10 hrs ago0xca01b38e7fd88ed3ce72dae439903e52e101e8d10xb4b67fba9949105b89dd5785c6d99e452ac2888e147.738215625 Ether
0xe2dfbad4c4bc96a7a795802800ef884a52864aabf46534cf7fbba755436cc0214999545114 days 3 hrs ago0xb4b67fba9949105b89dd5785c6d99e452ac2888e0x9b0a5fd9c6d94305aba74a59180bbdd4411081280.33 Ether
0xbded6390a03e2bbfee790a5ccc1bcb5aa13f029d3b359a3cae52b9d46373db1e4997688114 days 11 hrs ago0xed5a90efa30637606ddaf4f4b3d42bb49d79bd4e  Contract Creation0 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 0x0c9a023dc047bc3140ece933dd285c50379a9d4a(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;
        if (dailyLimit < spentToday)
            return 0;
        return dailyLimit - spentToday;
    }
}

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

  Contract Creation Code Switch To Opcodes View
606060405260405161164438038061164483398101604052805160805160a05191909201919082826000825182603282118061003a57508181115b80610043575080155b8061004c575081155b1561005657610002565b600092505b84518310156100ce576002600050600086858151811015610002576020908102909101810151600160a060020a031682528101919091526040016000205460ff16806100c45750848381518110156100025790602001906020020151600160a060020a03166000145b1561015357610002565b845160038054828255600082905290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b918201916020890182156101cd579160200282015b828111156101cd5782518254600160a060020a0319166c0100000000000000000000000091820291909104178255602090920191600190910190610114565b600160026000506000878681518110156100025790602001906020020151600160a060020a0316815260200190815260200160002060006101000a81548160ff02191690837f010000000000000000000000000000000000000000000000000000000000000090810204021790555060019092019161005b565b506101f39291505b80821115610213578054600160a060020a03191681556001016101d5565b5050506004929092555050506006555061142d9050806102176000396000f35b509056606060405236156101325760e060020a6000350463025e7c278114610180578063173825d9146101b257806320ea8d86146101df5780632f54bf6e146102135780633411c81c146102335780634bc9fdc214610260578063547415251461028357806367eeba0c146102f75780636b0c932d146103055780637065cb4814610313578063784547a71461033e5780638b51d13f1461034e5780639ace38c2146103c2578063a0e67e2b146103fd578063a8abe69a1461046e578063b5dc40c31461054d578063b77bf60014610659578063ba51a6df14610667578063c01a8c8414610693578063c6427474146106a3578063cea0862114610714578063d74f8edd1461073f578063dc8452cd1461074c578063e20056e61461075a578063ee22610b1461078a578063f059cf2b1461079a575b6107a8600034111561017e57604080513481529051600160a060020a033316917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b565b34610002576107aa60043560038054829081101561000257600091825260209091200154600160a060020a0316905081565b34610002576107a8600435600030600160a060020a031633600160a060020a0316141515610a1a57610002565b34610002576107a8600435600160a060020a033390811660009081526002602052604090205460ff161515610c5f57610002565b34610002576107c660043560026020526000908152604090205460ff1681565b34610002576001602090815260043560009081526040808220909252602435815220546107c69060ff1681565b34610002576107da6007546000906201518001421115610d1b5750600654610d18565b34610002576107da6004356024356000805b600554811015610d2f578380156102be575060008181526020819052604090206003015460ff16155b806102e257508280156102e2575060008181526020819052604090206003015460ff165b156102ef57600191909101905b600101610295565b34610002576107da60065481565b34610002576107da60075481565b34610002576107a860043530600160a060020a031633600160a060020a0316141515610d3657610002565b34610002576107c6600435610801565b34610002576107da6004356000805b600354811015610e66576000838152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156103ba57600191909101905b60010161035d565b34610002576000602081905260043581526040902080546001820154600383015461087993600160a060020a03909316926002019060ff1684565b346100025760408051602080820183526000825260038054845181840281018401909552808552610923949283018282801561046257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610444575b50505050509050610d18565b34610002576109236004356024356044356064356040805160208181018352600080835283519182018452808252600554935192939192909182918059106104b35750595b9080825280602002602001820160405280156104ca575b509250600091508190505b600554811015610e6c578580156104fe575060008181526020819052604090206003015460ff16155b806105225750848015610522575060008181526020819052604090206003015460ff165b156105455780838381518110156100025760209081029091010152600191909101905b6001016104d5565b34610002576109236004356040805160208181018352600080835283519182018452808252600354935192939192909182918059106105895750595b9080825280602002602001820160405280156105a0575b509250600091508190505b600354811015610ee1576000858152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561065157600380548290811015610002576000918252602090912001548351600160a060020a03909116908490849081101561000257600160a060020a03909216602092830290910190910152600191909101905b6001016105ab565b34610002576107da60055481565b34610002576107a86004355b30600160a060020a031633600160a060020a0316141515610f5d57610002565b34610002576107a8600435610974565b3461000257604080516020600460443581810135601f81018490048402850184019095528484526107da948235946024803595606494929391909201918190840183828082843750949650505050505050600061096d848484600083600160a060020a0381161515610b6157610002565b34610002576107a860043530600160a060020a031633600160a060020a031614151561102857610002565b34610002576107da603281565b34610002576107da60045481565b34610002576107a8600435602435600030600160a060020a031633600160a060020a031614151561106357610002565b34610002576107a86004356109f7565b34610002576107da60085481565b005b60408051600160a060020a039092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600084815260208190526040902092506111d6845b600080805b600354811015610872576000848152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561086357600191909101905b600454821415610e5e57600192505b5050919050565b60408051600160a060020a03861681526020810185905282151560608201526080918101828152845460026000196101006001841615020190911604928201839052909160a0830190859080156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b50509550505050505060405180910390f35b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b9050611021815b33600160a060020a03811660009081526002602052604090205460ff161515610fc857610002565b6000858152600160208181526040808420600160a060020a0333168086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ce6855b6000818152602081905260408120600301548190839060ff16156107ec57610002565b600160a060020a038216600090815260026020526040902054829060ff161515610a4357610002565b600160a060020a0383166000908152600260205260408120805460ff1916905591505b60035460001901821015610b085782600160a060020a0316600360005083815481101561000257600091825260209091200154600160a060020a03161415610b3857600380546000198101908110156100025760009182526020909120015460038054600160a060020a039092169184908110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600380546000198101808355919082908015829011610b4357600083815260209020610b43918101908301610c0e565b600190910190610a66565b505060035460045411159150610c26905057600354610c2690610673565b60055460408051608081018252878152602080820188815282840188815260006060850181905286815280845294852084518154606060020a91820291909104600160a060020a031990911617815591516001808401919091559051805160028085018054818a5298879020999b5096989497601f9481161561010002600019011604830185900484019490939291019083901061139257805160ff19168380011785555b506113c29291505b80821115610c225760008155600101610c0e565b5090565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff161515610cee57610002565b6000858152600160209081526040808320600160a060020a0333168085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35b505b50505050565b600084815260208190526040902060030154849060ff1615610c9457610002565b50600854600654035b90565b6008546006541015610d0f57506000610d18565b5092915050565b600160a060020a038116600090815260026020526040902054819060ff1615610d5e57610002565b81600160a060020a0381161515610d7457610002565b6003546004546001909101906032821180610d8e57508181115b80610d97575080155b80610da0575081155b15610daa57610002565b600160a060020a0385166000908152600260205260409020805460ff19166001908117909155600380549182018082559091908281838015829011610e0057600083815260209020610e00918101908301610c0e565b50505060009283525060208220018054600160a060020a031916606060020a88810204179055604051600160a060020a038716917ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25050505050565b600101610806565b50919050565b878703604051805910610e7c5750595b908082528060200260200182016040528015610e93575b5093508790505b86811015610ed6578281815181101561000257906020019060200201518489830381518110156100025760209081029091010152600101610e9a565b505050949350505050565b81604051805910610eef5750595b908082528060200260200182016040528015610f06575b509350600090505b81811015610f55578281815181101561000257906020019060200201518482815181101561000257600160a060020a03909216602092830290910190910152600101610f0e565b505050919050565b600354816032821180610f6f57508181115b80610f78575080155b80610f81575081155b15610f8b57610002565b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b6000828152602081905260409020548290600160a060020a03161515610fed57610002565b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561099c57610002565b9392505050565b60068190556040805182815290517fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca29181900360200190a150565b600160a060020a038316600090815260026020526040902054839060ff16151561108c57610002565b600160a060020a038316600090815260026020526040902054839060ff16156110b457610002565b600092505b6003548310156111315784600160a060020a0316600360005084815481101561000257600091825260209091200154600160a060020a031614156111cb578360036000508481548110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600160a060020a03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b6001909201916110b9565b91508180611245575060028084015460001961010060018316150201160415801561124557506001830154611245906007546000906201518001421115611221574260075560006008555b600654600854830111806112385750600854828101105b1561142457506000611428565b15610ce85760038301805460ff1916600117905581151561126f5760018301546008805490910190555b825460018085015460405160028088018054600160a060020a039096169593949093839285926000199083161561010002019091160480156112f25780601f106112c7576101008083540402835291602001916112f2565b820191906000526020600020905b8154815290600101906020018083116112d557829003601f168201915b505091505060006040518083038185876185025a03f192505050156113415760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610ce8565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038301805460ff19169055811515610ce8575050600101546008805491909103905550565b82800160010185558215610c06579182015b82811115610c065782518260005055916020019190600101906113a4565b5050606091909101516003909101805460ff191660f860020a9283029290920491909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b5060015b9190505600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000009f7dfab2222a473284205cddf08a677726d786a00000000000000000000000005210c4dcd7eb899a1274fd6471adec9896ae05aa0000000000000000000000001d805bc00b8fa3c96ae6c8fa97b2fd24b19a9801000000000000000000000000aca7bd07a8c207f7964261c2cf1e0fbfcff37836

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.