Sponsored Link:   ARNA Genomics - FIRST BLOCKCHAIN BIOTECH ECOSYSTEM. Join ICO Now!
Contract Overview | CivicMultiSig
ETH Balance: 487.08125622707924295 Ether
ETH USD Value: $176,610.79 (@ $362.59/ETH)
No Of Transactions: 188 txns
  Latest 25 txns from a total Of 188 transactions View All

TxHash Age From To Value [TxFee]
0xc8c2082165a341583e5fac19dbcb0624187693fc66f71bb716de2ef694b074c620 days 18 hrs ago0x003cb639f3c0120051abf4f927c2414d56ac766c  IN   CivicMultiSig0 Ether0.000361448
0x626ef9f0ae7549c2df13f02de785c6b18f13328c208c036e8942c304315cb2ef20 days 18 hrs ago0x00cb0d8171a9fa71e71fbf3f9cc17c6442755c29  IN   CivicMultiSig0 Ether0.000213368
0x3eb5df10337d63171c0e1a1be74b5d1ff03551587627703921f781b97139cc1420 days 18 hrs ago0x0063af5125737564407a4081f017c34d647dad4f  IN   CivicMultiSig0 Ether0.001407472
0xe64bc80227ff9a84d475a78adedb3cf5b7b2affa4a0034c26d0dce4972d21f7f20 days 19 hrs ago0x00cb0d8171a9fa71e71fbf3f9cc17c6442755c29  IN   CivicMultiSig0 Ether0.000361448
0xbe3d9fa163f6d36ede0c1a4c1b763189fe0698c227ceb1a32cac7a4e36fa995f20 days 19 hrs ago0x003cb639f3c0120051abf4f927c2414d56ac766c  IN   CivicMultiSig0 Ether0.024164608
0xe5bd63c19bcedf5baf989bd30587aebe5dbd4ae1b203f12c5f3c14546c8a1eed20 days 19 hrs ago0x003cb639f3c0120051abf4f927c2414d56ac766c  IN   CivicMultiSig0 Ether0.000213368
0xb52364eaa5e85927d80cd783f90937b22f70ab2d137c1fcddf784855f0d6a74620 days 19 hrs ago0x0063af5125737564407a4081f017c34d647dad4f  IN   CivicMultiSig0 Ether0.00087935
0x13fc0cd74792f8d437458e308456d88b06ec574c89f06a4df333149368c7110724 days 10 hrs ago0x00c947cdb9112086d203843be8132bc992737f69  IN   CivicMultiSig0 Ether0.000355768
0x52777c306f3227fb0bc337fe1e3cc7af933052a52fde84166f9a06cf8699635b24 days 10 hrs ago0x0063af5125737564407a4081f017c34d647dad4f  IN   CivicMultiSig0 Ether0.024167008
0xf5038b7147799ee49f465e24e2086b80b1ace90069205ff3fd4dd1e1074c9d0b24 days 10 hrs ago0x0063af5125737564407a4081f017c34d647dad4f  IN   CivicMultiSig0 Ether0.000213368
0x63b2f53c2a78e1731565bb4cbacb5ace5f67c626df32c9e088d91f69ecd4ae2548 days 18 hrs ago0x003cb639f3c0120051abf4f927c2414d56ac766c  IN   CivicMultiSig0 Ether0.0035174
0x6cef8783e115aaf516a2d8515e7ab268bf49f184b78350b70c95044e1e9cd3a456 days 10 hrs ago0x00c947cdb9112086d203843be8132bc992737f69  IN   CivicMultiSig0 Ether0.001867782
0x03a94aae8ede6dcf02a89ef50584f99a7eed2c5cf2ff95c9eab3f178bd2d593f56 days 10 hrs ago0x0063af5125737564407a4081f017c34d647dad4f  IN   CivicMultiSig0 Ether0.001120182
0x2d53164363af4e9c9d8e59b99ad7a8d08f76dac6884d900627bf39359550f77f56 days 10 hrs ago0x00c947cdb9112086d203843be8132bc992737f69  IN   CivicMultiSig0 Ether0.001867782
0x08b2ec262fdc27b012445df6b1db5a6a4fc72a7b42482e68d2976a67318baee656 days 10 hrs ago0x0063af5125737564407a4081f017c34d647dad4f  IN   CivicMultiSig0 Ether0.001120182
0x1065ceed617ec2f866ee80dd6c03607590672e879a628fb6fd05ea3fe60bd26c62 days 20 hrs ago0x00c947cdb9112086d203843be8132bc992737f69  IN   CivicMultiSig0 Ether0.001867782
0xe172190fc8fb7a7526fe4eb98824812bc5c555f457daaef9d610d37c02fb8c3062 days 20 hrs ago0x0063af5125737564407a4081f017c34d647dad4f  IN   CivicMultiSig0 Ether0.001120182
0xf94e0c83cf9b2b8fdbbb894f9ac0dd091a15ad459ca1ee8d9bd84e2139b4939162 days 20 hrs ago0x003cb639f3c0120051abf4f927c2414d56ac766c  IN   CivicMultiSig0 Ether0.003694614
0xa0f60680d6479934b41a25f423ed369f2b94d4426fe645a9f9e30e6d2093734f62 days 20 hrs ago0x003cb639f3c0120051abf4f927c2414d56ac766c  IN   CivicMultiSig0 Ether0.003694614
0x482eec8071c2664be1132307cf1b2aa375825973d125084334bbf830364e5d8f67 days 22 hrs ago0x00c947cdb9112086d203843be8132bc992737f69  IN   CivicMultiSig0 Ether0.135571391587
0x5a58a84002ba8938668d6e55a36674ceb010a14af5d3937b89d57ddc8f9fdf9567 days 22 hrs ago0x00c947cdb9112086d203843be8132bc992737f69  IN   CivicMultiSig0 Ether0.002334873104
0xcb9eab378347900d264a8bb24e6d200c62c00eef742d8b7e36e69290f58abfa167 days 22 hrs ago0x0063af5125737564407a4081f017c34d647dad4f  IN   CivicMultiSig0 Ether0.001198233641
0x45ab5fd912533a1373cab5ecea703349def043c6746e4fdc1a9b555185752acb67 days 22 hrs ago0x003cb639f3c0120051abf4f927c2414d56ac766c  IN   CivicMultiSig0 Ether0.003949170701
0xfef17149cdbb91b443131bde959db74c8ae4335b54eae6e78a38d13ed6521e3e67 days 22 hrs ago0x003cb639f3c0120051abf4f927c2414d56ac766c  IN   CivicMultiSig0 Ether0.003858590087
0x78560054f7988ab61841b36325e20e2d53a996dad04a68de3c7c0a13d6e59dee67 days 22 hrs ago0x23fcf6b8385a8b4836d35aa9f85ccad75cfcd5d1  IN   CivicMultiSig0.2 Ether0.0011294
[ 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
0xf768a51e68416b929e21c21985c5965cf18e331b74f0f8b5477a83835fc850ab4069152118 days 15 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0xbce39acfeac70947763c37cb21e64e22c82c74c33.16535832 Ether
0x14902eaed71fb5434d5ab13a590cc07bd2ec8028f1047931bc91ec6065a71ffd4069152118 days 15 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x3cb73c6fd21f176b6d3546cb81905ebd12f7fc7f1.64826108 Ether
0x4b71a2d4ce7fc2cf2494691aa6c83393a516326abea86d7466be44693208f45b4069151118 days 15 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0xd152b83627302baeeb7f1fea9025cc57e6ed23681.6262278 Ether
0xe342b9530fefa36ecf1730dae8a8fc8f08086fe3159d6248841149d4db45690f4031503126 days 20 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x9a95c1be5497cbc0cfedde4853aed3f2faa8afca10 Ether
0x6386c37fd1e173e5c231d3d957c255f4552a654baf32765491620825e967639f4026642127 days 21 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x7725e0bc98e61c47dceb1906be968492e8cd90804,380 Ether
0x4919c511f98a508622d0b9762c6f5ccf85abf9ce91550c820aef26872cffeef84022716128 days 18 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x9a95c1be5497cbc0cfedde4853aed3f2faa8afca20 Ether
0x309ab55f74a98623b0c9cdf3416f6802464f1187f6232711b1b6c52b6ec462804019104129 days 13 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d379 Ether
0xd09f23c373a5fddd4098c5d9efbdd2b1b5b51f448a5aeed2960021c9eed5d6684018959129 days 14 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d357 Ether
0x07fcc74ea157111eada978ff0a5047940c8790a09eb0ae9013272185d136676b4018580129 days 16 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d154 Ether
0x99b3cd05d1a31da27ef4e2e2fe56be3682599985fc35240c7585a8a403f3add04018506129 days 16 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d22 Ether
0x5561cdd31f51e14019a83d49ecab407efd5bba043d0f220c4d22b831f7c027c83976829138 days 7 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d3,033 Ether
0xd4015be2f320f75b67804630b3f805a62ef89e32c725fa27aa995afd50e533ba3976738138 days 8 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d2,604 Ether
0x4182514e5a0b773764509ede8cdb1b55f26a30ee5291479db759216a3f813e3a3976670138 days 8 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d3,312 Ether
0x40e22cfcb333b03c420692498e68be2fc28622ef3e633e7b7a79b08aebeba0623976595138 days 9 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d3,275 Ether
0xbe6b0bfafb8ae84227f672dd5f122c168bd81d5dc6930608e4738dd58c72003b3976550138 days 9 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d616 Ether
0xf6d927ad0ac027f8dc0a97a16ade5b7a71c5f44e97397e6acc8d57a2665d14553976442138 days 9 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x1e27138de182aeddc28c41eab9c7edaae72d6d1d173 Ether
0xe35767df4a86605d2b48d2b3a5bb8177ca35f0b4b27f25d5ec0c2aaa43c15f433938336146 days ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x23fcf6b8385a8b4836d35aa9f85ccad75cfcd5d191 Ether
0x36189e3f2f2c4bb8785d9f48e181d081471724c39557864541d89b0471896c0b3935319146 days 14 hrs ago0xa38d8109127028d3e1774413ef28db70c471cb540x2323763d78bf7104b54a462a79c2ce858d118f2f137.36 Ether
0x146138307914f30aa5f156f8057628d992e83886d392d12c885c14a5d59616d23935280146 days 14 hrs ago0x2323763d78bf7104b54a462a79c2ce858d118f2f0x23fcf6b8385a8b4836d35aa9f85ccad75cfcd5d110 Ether
0xd5e1fbe53339db11bc72134c7afbde9aa7ddb3bf68927d724c7603209014b50e3930452147 days 13 hrs ago0xa38d8109127028d3e1774413ef28db70c471cb540x2323763d78bf7104b54a462a79c2ce858d118f2f137.36 Ether
0x67439bc4d4cabb404e0ac383f3325f1fa3080486d020f2a39e93fa45ceb4234c3917331150 days 5 hrs ago0x8d18fee3552179082064abc5ef0b97c529a616b00x2323763d78bf7104b54a462a79c2ce858d118f2f0.316666138889768497 Ether
0x3e5f892216d33a2b58f1b8248a328a444b4c77278482ea060ff1592d849a178f3916340150 days 10 hrs ago0xa38d8109127028d3e1774413ef28db70c471cb540x2323763d78bf7104b54a462a79c2ce858d118f2f171.32 Ether
0xcd81fe16b44c747ae12785ca4b2df5013f26ff7e904e2f9f2f976ccfc51f4ce93915963150 days 12 hrs ago0x8d18fee3552179082064abc5ef0b97c529a616b00x2323763d78bf7104b54a462a79c2ce858d118f2f1.593371574251115302 Ether
0x20a0fae04cdb831c82704581ab295ba3fef500f140780ebd6726800ae8d7b8973915901150 days 12 hrs ago0x8d18fee3552179082064abc5ef0b97c529a616b00x2323763d78bf7104b54a462a79c2ce858d118f2f1.593371574251115302 Ether
0x2f6930cd27db163ed71c69219bfa34b924056f24fb62e1ffdb15661e051749213915859150 days 13 hrs ago0x8d18fee3552179082064abc5ef0b97c529a616b00x2323763d78bf7104b54a462a79c2ce858d118f2f1.593371574251115302 Ether
[ Download CSV Export  ] 
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.