Sponsored:   Temco - Join the Largest VC Backed ICO on the Bitcoin Network! TEMCO KYC Whitelist Starts Now!!
Contract Overview | District0x_MultiSig
Balance: 20,003.042378470837437369 Ether
Ether Value: $1,809,875.27 (@ $90.48/ETH)
Transactions: 231 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73at txn 0xbdc3ca5a2d4654ada84277aad4430af8a236b31aea666e51b597d6c50a241b2e
Token Balance:
 Latest 25 transactions from a total of 231 transactions

TxHash Age From To Value [TxFee]
0x0a26a35df2967d57544b74b9b35ae29003e7e3462b1acbb30ab4611f4ee43a254 days 7 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.002221905
0x74200512919e7e76c5137ac5783f1c8730bb336741c923447beb46e71059313d4 days 7 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.002221905
0x52e7791498d64c8407c57935a2d8cc5720410b216c139eb2cf3a1daeaa821ab54 days 7 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.001866095
0xffc2cd08eb15a355afda050bf9af337ef1354171ac270f6f6c05cb83fb98cae54 days 13 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00442148
0x23cf5bdeb4f1e15fbb317ba9e6c46ac89fa493d7e988c6905ac12a1a012b105a4 days 13 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00158224
0x61e3199a24d8b7d343effc8996b1b4714c004c69060ac0dd22f87362e460e7f44 days 13 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00158224
0xd4c4679ae25871f85b0aaea4fd9998195e899565d7d33868cbc6ef0396c480394 days 13 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00173078
0x801026ab4a13ca6539bc6ba8af93985e1039e9ca8f96668bcebb30e91cd1d70d4 days 16 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.001577485
0x088c831be6ba4b174a9b481f8d5b83faa6d7191d881591c44ffd96c9e62bbe2a4 days 16 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00166416
0x148251a19ff041dab9c14546e41afb9bd713ea8207d7e6f70a575244332545754 days 16 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.0017335
0xbb76b400c52efab233388e3710f1b613cab0ffb0a02b832c8de4863ef279bf515 days 5 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00173078
0x6fcee097bd1adfdb689069acaeacc3485c652aa84976e07147cd2e56dd4f6cbe5 days 6 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.002233431251
0x243c04cd7e20236d32b9e2f75c948767a514497c6df9b3f6c55e9c7cebddc0a119 days 11 hrs ago0xbcd9a181ca8745a71a1b3848efa16fe7a80bff04  IN   District0x_MultiSig5.85 Ether0.00005647
0x0377bc1da8a9e6397d093ec64f74c36dc9f252826ecc48c500f44794a4e7550719 days 16 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0xad6f0c9721e313bd88f1269b28323804ec138f5de3532d08e003593074e9fde019 days 16 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.000890001
0x0aa54e7ae40491fa6526615ae02c139b34a7c5aaf6ab331ecd99edb6e5d9539320 days 15 hrs ago0x790ee7e92f9af7dcf849319954bd60d853166377  IN   District0x_MultiSig13 Ether0.000429172
0x8aa570d63acc37ad463c5beae674bfe3fc33d95e0256bde3ae2515121141de9c20 days 15 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x31c1d7757ce0c418f81c10a8e0a10a4634fb677b3e8912b79775fc714fa6476020 days 16 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00123381
0xeabe13d19bf65d2079a10edb0a5ef1e5ba48aeb5df96d0f794d954c43618f15026 days 5 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x050cddb723d962161f3a6d19ae7be52b8fe147577f88696803ea30fc8b57b90026 days 5 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.0012205728
0xefe9a294a6da29f6c5e8e12f365edc7bf4279903a969d65bef10889c1ded9a0d26 days 6 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x6c41ac034b49895b7e56aa206526b08c2f86b011b662271f69ddf90ce04f083826 days 6 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.00127079
0x123be8b33e222284f27140a304edc737dd201ee7a58f18377509fd08269aa52426 days 6 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
0x426c49fa7e00a72f7ebd73afccb1794cfba7563cc4d527c26999a79170864a4726 days 6 hrs ago0x0e90d8f85fc3107df47d20444244feaa824d1082  IN   District0x_MultiSig0 Ether0.001397869
0x7e124901dfd7893443ed53f99af3909382f8966c817f26872bfed402920eec7e26 days 7 hrs ago0xa8dc2b53ecebeaa641ebb0601a69fbf936ee04f4  IN   District0x_MultiSig0 Ether0.00156528
[ 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
0x0377bc1da8a9e6397d093ec64f74c36dc9f252826ecc48c500f44794a4e75507675316119 days 16 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xbcd9a181ca8745a71a1b3848efa16fe7a80bff04172.043 Ether
0x8aa570d63acc37ad463c5beae674bfe3fc33d95e0256bde3ae2515121141de9c674720820 days 15 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba434 Ether
0xeabe13d19bf65d2079a10edb0a5ef1e5ba48aeb5df96d0f794d954c43618f150671319726 days 5 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a87,000 Ether
0xefe9a294a6da29f6c5e8e12f365edc7bf4279903a969d65bef10889c1ded9a0d671307826 days 6 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a84,000 Ether
0x123be8b33e222284f27140a304edc737dd201ee7a58f18377509fd08269aa524671296126 days 6 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a82,000 Ether
0x7e124901dfd7893443ed53f99af3909382f8966c817f26872bfed402920eec7e671283626 days 7 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a81,000 Ether
0x264859c566407e17b4a7cfa787bfb18424f84313fbd2e7edf76df21e5739c1af671266926 days 7 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xd092b18c0e68061b69374deceea7aeb1912543a81 Ether
0x18362adda57d3749158060c50783aa96a279fa2bfa00e35d352577d12316f3d1670457627 days 15 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba468 Ether
0x81c35d9d09af978c42200ffb8a788b1addbde909aedd4addc42fe896748d63a1670402027 days 17 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377445 Ether
0x2764c3daf9c416b9df1cc7a4dc57610fcbf0f5ef7cf5b3b98e433eb44d7bea3d670401127 days 17 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4410 Ether
0x68bdb6d45555a73cbdd051a3a9479dd1306de26b2746f1841a5ea44f8f6f532f663138839 days 15 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377205 Ether
0x0a7580e986999b80364c722a216622fdb9645b89298e12e2c8ccdea3b12f582a663137439 days 15 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4223 Ether
0x88ffb62c1da7b5ab87d3d49a4e07c4a8b68aadd5c08ab93adbb73f589da4ec28656370050 days 17 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377130 Ether
0x47e9e8c123ab72566223a43a598668933bb3534639acfbebab3723974e0b6a34656369050 days 17 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4100 Ether
0x8b76dfe1fd05753766ca332128733c884495fda53305667ce17e2ea72a13200b647794064 days 16 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377113 Ether
0xe23c4c58f241e6c332bba240a112e61b49c5f97b63bddf22f70a1f2b943ed294647792964 days 16 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba489 Ether
0x1757c3a94db3406fee8977ab2888baac6294c7b8a21447d01b1aba2c9bd8f999637375581 days 17 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377110.417 Ether
0xb90bd05ba6937d122ef32b7bed3af2e7ff4937b0907d079fd9d61a59582357c7631257691 days 19 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x4da8473d85582f0839c42bc8067c3bcf5a6b13eb1,962 Ether
0xa6628d13563c89715a7ccdec4aba644a76911532f90257e486da7d55651075c3630817892 days 13 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d85316637727.5 Ether
0x39a2acff87e9f099fffb1b4a91fb574670835c996fe5b9e3dfb6da0063fdcad3628985895 days 15 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377424 Ether
0x1032463b692f266c4b8bbad269441178897c58ec0aa34a7d4775c105838c0d41628984695 days 15 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba4488 Ether
0x3fc525a9513d1d7013f8ec9d8517f421b74bdb282af22ecf6a983ff9b6147d9d628352396 days 17 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680xbcd9a181ca8745a71a1b3848efa16fe7a80bff04225 Ether
0xdfa461ed3d14062fda9908e46d124df4989a8f26bac1286a52f796ffeac50c506223972106 days 17 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x89dbb75467a93fc949673f49882dbd8ec9fb046714.1125 Ether
0x1b1ff7448e86850eaad3748306dc1508b54c31dbeed29f4fdd72a47b4453d15d6188048112 days 19 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x7fe59d375f0558ee16774e80858fee7770948ba417 Ether
0x5d0dd91453524f71dfeb7ca74037d088b5030ff8bd2645995731ec9701b6572f6165082116 days 16 hrs ago0xd20e4d854c71de2428e1268167753e4c7070ae680x790ee7e92f9af7dcf849319954bd60d853166377122.3 Ether
[ Download CSV Export  ] 
Contract Name: MultiSigWalletWithDailyLimit
Compiler Text: v0.4.4+commit.4633f3de
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.4;


/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <[email protected]>
contract MultiSigWallet {

    uint constant public MAX_OWNER_COUNT = 50;

    event Confirmation(address indexed sender, uint indexed transactionId);
    event Revocation(address indexed sender, uint indexed transactionId);
    event Submission(uint indexed transactionId);
    event Execution(uint indexed transactionId);
    event ExecutionFailure(uint indexed transactionId);
    event Deposit(address indexed sender, uint value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint required);

    mapping (uint => Transaction) public transactions;
    mapping (uint => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    address[] public owners;
    uint public required;
    uint public transactionCount;

    struct Transaction {
        address destination;
        uint value;
        bytes data;
        bool executed;
    }

    modifier onlyWallet() {
        if (msg.sender != address(this))
            throw;
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        if (isOwner[owner])
            throw;
        _;
    }

    modifier ownerExists(address owner) {
        if (!isOwner[owner])
            throw;
        _;
    }

    modifier transactionExists(uint transactionId) {
        if (transactions[transactionId].destination == 0)
            throw;
        _;
    }

    modifier confirmed(uint transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notConfirmed(uint transactionId, address owner) {
        if (confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notExecuted(uint transactionId) {
        if (transactions[transactionId].executed)
            throw;
        _;
    }

    modifier notNull(address _address) {
        if (_address == 0)
            throw;
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        if (   ownerCount > MAX_OWNER_COUNT
            || _required > ownerCount
            || _required == 0
            || ownerCount == 0)
            throw;
        _;
    }

    /// @dev Fallback function allows to deposit ether.
    function()
        payable
    {
        if (msg.value > 0)
            Deposit(msg.sender, msg.value);
    }

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners and required number of confirmations.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    function MultiSigWallet(address[] _owners, uint _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint i=0; i<_owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == 0)
                throw;
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }

    /// @dev Allows to add a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of new owner.
    function addOwner(address owner)
        public
        onlyWallet
        ownerDoesNotExist(owner)
        notNull(owner)
        validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        OwnerAddition(owner);
    }

    /// @dev Allows to remove an owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner.
    function removeOwner(address owner)
        public
        onlyWallet
        ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint i=0; i<owners.length - 1; i++)
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        owners.length -= 1;
        if (required > owners.length)
            changeRequirement(owners.length);
        OwnerRemoval(owner);
    }

    /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner to be replaced.
    /// @param owner Address of new owner.
    function replaceOwner(address owner, address newOwner)
        public
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
    {
        for (uint i=0; i<owners.length; i++)
            if (owners[i] == owner) {
                owners[i] = newOwner;
                break;
            }
        isOwner[owner] = false;
        isOwner[newOwner] = true;
        OwnerRemoval(owner);
        OwnerAddition(newOwner);
    }

    /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
    /// @param _required Number of required confirmations.
    function changeRequirement(uint _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        RequirementChange(_required);
    }

    /// @dev Allows an owner to submit and confirm a transaction.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function submitTransaction(address destination, uint value, bytes data)
        public
        returns (uint transactionId)
    {
        transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
    }

    /// @dev Allows an owner to confirm a transaction.
    /// @param transactionId Transaction ID.
    function confirmTransaction(uint transactionId)
        public
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        Confirmation(msg.sender, transactionId);
        executeTransaction(transactionId);
    }

    /// @dev Allows an owner to revoke a confirmation for a transaction.
    /// @param transactionId Transaction ID.
    function revokeConfirmation(uint transactionId)
        public
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        Revocation(msg.sender, transactionId);
    }

    /// @dev Allows anyone to execute a confirmed transaction.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction tx = transactions[transactionId];
            tx.executed = true;
            if (tx.destination.call.value(tx.value)(tx.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                tx.executed = false;
            }
        }
    }

    /// @dev Returns the confirmation status of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Confirmation status.
    function isConfirmed(uint transactionId)
        public
        constant
        returns (bool)
    {
        uint count = 0;
        for (uint i=0; i<owners.length; i++) {
            if (confirmations[transactionId][owners[i]])
                count += 1;
            if (count == required)
                return true;
        }
    }

    /*
     * Internal functions
     */
    /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function addTransaction(address destination, uint value, bytes data)
        internal
        notNull(destination)
        returns (uint transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        Submission(transactionId);
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns number of confirmations of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Number of confirmations.
    function getConfirmationCount(uint transactionId)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]])
                count += 1;
    }

    /// @dev Returns total number of transactions after filers are applied.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Total number of transactions after filters are applied.
    function getTransactionCount(bool pending, bool executed)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
                count += 1;
    }

    /// @dev Returns list of owners.
    /// @return List of owner addresses.
    function getOwners()
        public
        constant
        returns (address[])
    {
        return owners;
    }

    /// @dev Returns array with owner addresses, which confirmed transaction.
    /// @param transactionId Transaction ID.
    /// @return Returns array of owner addresses.
    function getConfirmations(uint transactionId)
        public
        constant
        returns (address[] _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint count = 0;
        uint i;
        for (i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]]) {
                confirmationsTemp[count] = owners[i];
                count += 1;
            }
        _confirmations = new address[](count);
        for (i=0; i<count; i++)
            _confirmations[i] = confirmationsTemp[i];
    }

    /// @dev Returns list of transaction IDs in defined range.
    /// @param from Index start position of transaction array.
    /// @param to Index end position of transaction array.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Returns array of transaction IDs.
    function getTransactionIds(uint from, uint to, bool pending, bool executed)
        public
        constant
        returns (uint[] _transactionIds)
    {
        uint[] memory transactionIdsTemp = new uint[](transactionCount);
        uint count = 0;
        uint i;
        for (i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
            {
                transactionIdsTemp[count] = i;
                count += 1;
            }
        _transactionIds = new uint[](to - from);
        for (i=from; i<to; i++)
            _transactionIds[i - from] = transactionIdsTemp[i];
    }
}

/// @title Multisignature wallet with daily limit - Allows an owner to withdraw a daily limit without multisig.
/// @author Stefan George - <[email protected]>
contract MultiSigWalletWithDailyLimit is MultiSigWallet {

    event DailyLimitChange(uint dailyLimit);

    uint public dailyLimit;
    uint public lastDay;
    uint public spentToday;

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners, required number of confirmations and daily withdraw limit.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    /// @param _dailyLimit Amount in wei, which can be withdrawn without confirmations on a daily basis.
    function MultiSigWalletWithDailyLimit(address[] _owners, uint _required, uint _dailyLimit)
        public
        MultiSigWallet(_owners, _required)
    {
        dailyLimit = _dailyLimit;
    }

    /// @dev Allows to change the daily limit. Transaction has to be sent by wallet.
    /// @param _dailyLimit Amount in wei.
    function changeDailyLimit(uint _dailyLimit)
        public
        onlyWallet
    {
        dailyLimit = _dailyLimit;
        DailyLimitChange(_dailyLimit);
    }

    /// @dev Allows anyone to execute a confirmed transaction or ether withdraws until daily limit is reached.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        Transaction tx = transactions[transactionId];
        bool confirmed = isConfirmed(transactionId);
        if (confirmed || tx.data.length == 0 && isUnderLimit(tx.value)) {
            tx.executed = true;
            if (!confirmed)
                spentToday += tx.value;
            if (tx.destination.call.value(tx.value)(tx.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                tx.executed = false;
                if (!confirmed)
                    spentToday -= tx.value;
            }
        }
    }

    /*
     * Internal functions
     */
    /// @dev Returns if amount is within daily limit and resets spentToday after one day.
    /// @param amount Amount to withdraw.
    /// @return Returns if amount is under daily limit.
    function isUnderLimit(uint amount)
        internal
        returns (bool)
    {
        if (now > lastDay + 24 hours) {
            lastDay = now;
            spentToday = 0;
        }
        if (spentToday + amount > dailyLimit || spentToday + amount < spentToday)
            return false;
        return true;
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns maximum withdraw amount.
    /// @return Returns amount.
    function calcMaxWithdraw()
        public
        constant
        returns (uint)
    {
        if (now > lastDay + 24 hours)
            return dailyLimit;
        return dailyLimit - spentToday;
    }
}

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

  Contract Creation Code Switch To Opcodes View
606060405260405161163038038061163083398101604052805160805160a05191909201919082826000825182603282118061003a57508181115b80610043575080155b8061004c575081155b1561005657610002565b600092505b84518310156100ce576002600050600086858151811015610002576020908102909101810151600160a060020a031682528101919091526040016000205460ff16806100c45750848381518110156100025790602001906020020151600160a060020a03166000145b1561015357610002565b845160038054828255600082905290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b918201916020890182156101cd579160200282015b828111156101cd5782518254600160a060020a0319166c0100000000000000000000000091820291909104178255602090920191600190910190610114565b600160026000506000878681518110156100025790602001906020020151600160a060020a0316815260200190815260200160002060006101000a81548160ff02191690837f010000000000000000000000000000000000000000000000000000000000000090810204021790555060019092019161005b565b506101f39291505b80821115610213578054600160a060020a03191681556001016101d5565b505050600492909255505050600655506114199050806102176000396000f35b509056606060405236156101325760e060020a6000350463025e7c278114610180578063173825d9146101b257806320ea8d86146101df5780632f54bf6e146102135780633411c81c146102335780634bc9fdc214610260578063547415251461028357806367eeba0c146102f75780636b0c932d146103055780637065cb4814610313578063784547a71461033e5780638b51d13f1461034e5780639ace38c2146103c2578063a0e67e2b146103fd578063a8abe69a1461046e578063b5dc40c31461054d578063b77bf60014610659578063ba51a6df14610667578063c01a8c8414610693578063c6427474146106a3578063cea0862114610714578063d74f8edd1461073f578063dc8452cd1461074c578063e20056e61461075a578063ee22610b1461078a578063f059cf2b1461079a575b6107a8600034111561017e57604080513481529051600160a060020a033316917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b565b34610002576107aa60043560038054829081101561000257600091825260209091200154600160a060020a0316905081565b34610002576107a8600435600030600160a060020a031633600160a060020a0316141515610a1a57610002565b34610002576107a8600435600160a060020a033390811660009081526002602052604090205460ff161515610c5f57610002565b34610002576107c660043560026020526000908152604090205460ff1681565b34610002576001602090815260043560009081526040808220909252602435815220546107c69060ff1681565b34610002576107da6007546000906201518001421115610d0f5750600654610d18565b34610002576107da6004356024356000805b600554811015610d1b578380156102be575060008181526020819052604090206003015460ff16155b806102e257508280156102e2575060008181526020819052604090206003015460ff165b156102ef57600191909101905b600101610295565b34610002576107da60065481565b34610002576107da60075481565b34610002576107a860043530600160a060020a031633600160a060020a0316141515610d2257610002565b34610002576107c6600435610801565b34610002576107da6004356000805b600354811015610e52576000838152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156103ba57600191909101905b60010161035d565b34610002576000602081905260043581526040902080546001820154600383015461087993600160a060020a03909316926002019060ff1684565b346100025760408051602080820183526000825260038054845181840281018401909552808552610923949283018282801561046257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610444575b50505050509050610d18565b34610002576109236004356024356044356064356040805160208181018352600080835283519182018452808252600554935192939192909182918059106104b35750595b9080825280602002602001820160405280156104ca575b509250600091508190505b600554811015610e58578580156104fe575060008181526020819052604090206003015460ff16155b806105225750848015610522575060008181526020819052604090206003015460ff165b156105455780838381518110156100025760209081029091010152600191909101905b6001016104d5565b34610002576109236004356040805160208181018352600080835283519182018452808252600354935192939192909182918059106105895750595b9080825280602002602001820160405280156105a0575b509250600091508190505b600354811015610ecd576000858152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561065157600380548290811015610002576000918252602090912001548351600160a060020a03909116908490849081101561000257600160a060020a03909216602092830290910190910152600191909101905b6001016105ab565b34610002576107da60055481565b34610002576107a86004355b30600160a060020a031633600160a060020a0316141515610f4957610002565b34610002576107a8600435610974565b3461000257604080516020600460443581810135601f81018490048402850184019095528484526107da948235946024803595606494929391909201918190840183828082843750949650505050505050600061096d848484600083600160a060020a0381161515610b6157610002565b34610002576107a860043530600160a060020a031633600160a060020a031614151561101457610002565b34610002576107da603281565b34610002576107da60045481565b34610002576107a8600435602435600030600160a060020a031633600160a060020a031614151561104f57610002565b34610002576107a86004356109f7565b34610002576107da60085481565b005b60408051600160a060020a039092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b600084815260208190526040902092506111c2845b600080805b600354811015610872576000848152600160205260408120600380549192918490811015610002576000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561086357600191909101905b600454821415610e4a57600192505b5050919050565b60408051600160a060020a03861681526020810185905282151560608201526080918101828152845460026000196101006001841615020190911604928201839052909160a0830190859080156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b50509550505050505060405180910390f35b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b905061100d815b33600160a060020a03811660009081526002602052604090205460ff161515610fb457610002565b6000858152600160208181526040808420600160a060020a0333168086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610ce6855b6000818152602081905260408120600301548190839060ff16156107ec57610002565b600160a060020a038216600090815260026020526040902054829060ff161515610a4357610002565b600160a060020a0383166000908152600260205260408120805460ff1916905591505b60035460001901821015610b085782600160a060020a0316600360005083815481101561000257600091825260209091200154600160a060020a03161415610b3857600380546000198101908110156100025760009182526020909120015460038054600160a060020a039092169184908110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600380546000198101808355919082908015829011610b4357600083815260209020610b43918101908301610c0e565b600190910190610a66565b505060035460045411159150610c26905057600354610c2690610673565b60055460408051608081018252878152602080820188815282840188815260006060850181905286815280845294852084518154606060020a91820291909104600160a060020a031990911617815591516001808401919091559051805160028085018054818a5298879020999b5096989497601f9481161561010002600019011604830185900484019490939291019083901061137e57805160ff19168380011785555b506113ae9291505b80821115610c225760008155600101610c0e565b5090565b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a2505050565b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff161515610cee57610002565b6000858152600160209081526040808320600160a060020a0333168085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35b505b50505050565b600084815260208190526040902060030154849060ff1615610c9457610002565b50600854600654035b90565b5092915050565b600160a060020a038116600090815260026020526040902054819060ff1615610d4a57610002565b81600160a060020a0381161515610d6057610002565b6003546004546001909101906032821180610d7a57508181115b80610d83575080155b80610d8c575081155b15610d9657610002565b600160a060020a0385166000908152600260205260409020805460ff19166001908117909155600380549182018082559091908281838015829011610dec57600083815260209020610dec918101908301610c0e565b50505060009283525060208220018054600160a060020a031916606060020a88810204179055604051600160a060020a038716917ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d91a25050505050565b600101610806565b50919050565b878703604051805910610e685750595b908082528060200260200182016040528015610e7f575b5093508790505b86811015610ec2578281815181101561000257906020019060200201518489830381518110156100025760209081029091010152600101610e86565b505050949350505050565b81604051805910610edb5750595b908082528060200260200182016040528015610ef2575b509350600090505b81811015610f41578281815181101561000257906020019060200201518482815181101561000257600160a060020a03909216602092830290910190910152600101610efa565b505050919050565b600354816032821180610f5b57508181115b80610f64575080155b80610f6d575081155b15610f7757610002565b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b6000828152602081905260409020548290600160a060020a03161515610fd957610002565b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff161561099c57610002565b9392505050565b60068190556040805182815290517fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca29181900360200190a150565b600160a060020a038316600090815260026020526040902054839060ff16151561107857610002565b600160a060020a038316600090815260026020526040902054839060ff16156110a057610002565b600092505b60035483101561111d5784600160a060020a0316600360005084815481101561000257600091825260209091200154600160a060020a031614156111b7578360036000508481548110156100025760009182526020909120018054600160a060020a031916606060020a928302929092049190911790555b600160a060020a03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b6001909201916110a5565b9150818061123157506002808401546000196101006001831615020116041580156112315750600183015461123190600754600090620151800142111561120d574260075560006008555b600654600854830111806112245750600854828101105b1561141057506000611414565b15610ce85760038301805460ff1916600117905581151561125b5760018301546008805490910190555b825460018085015460405160028088018054600160a060020a039096169593949093839285926000199083161561010002019091160480156112de5780601f106112b3576101008083540402835291602001916112de565b820191906000526020600020905b8154815290600101906020018083116112c157829003601f168201915b505091505060006040518083038185876185025a03f1925050501561132d5760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610ce8565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038301805460ff19169055811515610ce8575050600101546008805491909103905550565b82800160010185558215610c06579182015b82811115610c06578251826000505591602001919060010190611390565b5050606091909101516003909101805460ff191660f860020a9283029290920491909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b5060015b91905056000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000008ac7230489e80000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000085e6ecb2b3511bffe4edf4cd3b00caf3802702e100000000000000000000000000a245706741d7949c82356ef9955dd3f7bfc21700000000000000000000000028bbf0ef519f72cafea000eaf64ed679dbdda738

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.