Contract Overview | Matryx_MultiSig
Balance: 0.007527555464555682 Ether
Ether Value: $1.58 (@ $210.37/ETH)
Transactions: 158 txns
 Latest 25 txns From a total of 158 Transactions

TxHash Age From To Value [TxFee]
0xb9e808622d8fb885d0c6df737fba1551762ea6c73013cf3185a7553eb16b6cf311 days 15 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.000081415
0x9284e2c5ef04d02799a95b0ccfcc5e61b10e91438bdb512cb026ae357ec54c3116 days 3 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.000081415
0x38641ca72b2df004cea866978be92973dff0a991b5d2388e504bd95f8486927933 days 10 hrs ago0x00a0c67c449e783e21a3a05a902c6293df4d1110  IN   Matryx_MultiSig0 Ether0.0004128
0x043f53f0a67cc23b3dc40e1f68dd15ecb89aa9c97478f5be2f84aadcb10f47ac33 days 11 hrs ago0x00a0c67c449e783e21a3a05a902c6293df4d1110  IN   Matryx_MultiSig0 Ether0.000407075
0xd6037368cf06785dfa1d92309852dbce1a5dbf268a5bb8b96ec076e216730e1833 days 12 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.000271475
0xdacbc596f5374724ffbd17b198bd3332bfab8f34acca0c4f62921209dcfca21833 days 12 hrs ago0x00859a83cb3200fe847862e144a16da80b5c0158  IN   Matryx_MultiSig0 Ether0.000271385
0x693362bad12250a95a2c78eedc83a3084299902eabb9a0b56c2c7e268d066c8734 days 9 hrs ago0x00fe71cd4914f388313439f42ea19b4479903beb  IN   Matryx_MultiSig0 Ether0.00083958
0xc2b3423126638ca2df21b171ca213f1d62d21f4160b9501edabfa6f1fc22d40280 days 10 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.000789222
0x66c8d76bf4bba8ad5bed5bd9ee82f08575555ca2c0e30610b8d18b3865a2b33080 days 10 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.00024012
0x218300112e4e13be223efaab36047db81f028ae04b851e3e9ddc19fe836bcfbb80 days 10 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.000240039
0x72c7d295a3db2185c09e9bc13f73083cf1ebeae853d2ec3699f821c0dd73d36580 days 10 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.007600027
0x7b6b7ad8926203896e2d081f8c1678b395f39756d338cd3a61d84f66153ebac981 days 4 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.007600027
0x9ff60c241a8eb7afcfdc3738debff1d727f1cc42fbc30dcf4d24b5ee7d4574a6110 days 7 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.007600027
0x9ba082bdfe7232d14a3cc281d4da1605b78be0fe5f89a56d384ba50f5905fab5110 days 8 hrs ago0x008f1939eae74f620b268c168a80dcdd2c2b5d95  IN   Matryx_MultiSig0 Ether0.007600027
0xb1954c992d9e8c8a4aa541188a517d887db5bfce7f45e1898a91258948f71cf8110 days 11 hrs ago0x00fe71cd4914f388313439f42ea19b4479903beb  IN   Matryx_MultiSig0 Ether0.004
0x9d401cfc4666bba35d8b2538312270a1ddcee2296f7e9c6d3c0b2a63265bf878110 days 11 hrs ago0x00fe71cd4914f388313439f42ea19b4479903beb  IN   Matryx_MultiSig0 Ether0.00049536
0x385cf44610b91950d445d818d37782b5b750fbab3635325aa8b96c9737983f0f110 days 11 hrs ago0x00fe71cd4914f388313439f42ea19b4479903beb  IN   Matryx_MultiSig0 Ether0.000081442
0x6411abb6f18f62cf6a1573d3511c08058f420f6fb67f0fae91b08410ded3f2e7110 days 12 hrs ago0x00a0c67c449e783e21a3a05a902c6293df4d1110  IN   Matryx_MultiSig0 Ether0.000054295
0x7755ae49ee34b2b1d5d438fe29f8917379476b260eb41d6b925b7a6ed3ff39c3110 days 12 hrs ago0x00859a83cb3200fe847862e144a16da80b5c0158  IN   Matryx_MultiSig0 Ether0.000108554
0x4102b6c6821418d1380bb1c126ef68c5c7e8ac90ed87a8dac5381736ae443427110 days 12 hrs ago0x00e547ee05826ed41c52db55c7cd6ae9e841410d  IN   Matryx_MultiSig0 Ether0.000779514
0x2553b799980911a56aeca7691c18f6650ac1fccf5e102a416b5f50dee6594f95110 days 12 hrs ago0x00e547ee05826ed41c52db55c7cd6ae9e841410d  IN   Matryx_MultiSig0 Ether0.00083958
0x66225afd362786710de90d87e6bf959dd3d1473353599b658a52a7b474b93ec0110 days 12 hrs ago0x00e547ee05826ed41c52db55c7cd6ae9e841410d  IN   Matryx_MultiSig0 Ether0.00334184
0xc9abdde27c366b84380851da65a6423bae1a656e9b2344b449279d402adf501b110 days 12 hrs ago0x00e547ee05826ed41c52db55c7cd6ae9e841410d  IN   Matryx_MultiSig0 Ether0.00334224
0x5fdb7b1a5fd3ba14f9da376f25137ab596b4a35908da6d154b88e04175d7a307110 days 14 hrs ago0x00859a83cb3200fe847862e144a16da80b5c0158  IN   Matryx_MultiSig0 Ether0.00032016
0xf46f434f47fe43b5109bc241e5cd7fe3fc81b8030503218a6c4f7a8c9cf976ef110 days 15 hrs ago0x00a0c67c449e783e21a3a05a902c6293df4d1110  IN   Matryx_MultiSig0 Ether0.000106684
[ 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
0x38641ca72b2df004cea866978be92973dff0a991b5d2388e504bd95f84869279632551333 days 10 hrs ago0x873767026deab58b3d14ceb60a0c9ba60773e3e70xdd1ff0cccff8b90d70497c8b6f1a07b7073131393,008.4 Ether
0xc2b3423126638ca2df21b171ca213f1d62d21f4160b9501edabfa6f1fc22d402604678280 days 10 hrs ago0x873767026deab58b3d14ceb60a0c9ba60773e3e70x873767026deab58b3d14ceb60a0c9ba60773e3e71,200 Ether
0x9d401cfc4666bba35d8b2538312270a1ddcee2296f7e9c6d3c0b2a63265bf8785870278110 days 11 hrs ago0x873767026deab58b3d14ceb60a0c9ba60773e3e70xbf051b2c03fcbcb1aedc0708035e6b1c4f7b587e1,200 Ether
0x66225afd362786710de90d87e6bf959dd3d1473353599b658a52a7b474b93ec05869964110 days 12 hrs ago0x873767026deab58b3d14ceb60a0c9ba60773e3e70x873767026deab58b3d14ceb60a0c9ba60773e3e71,200 Ether
0xc9abdde27c366b84380851da65a6423bae1a656e9b2344b449279d402adf501b5869936110 days 12 hrs ago0x873767026deab58b3d14ceb60a0c9ba60773e3e70x873767026deab58b3d14ceb60a0c9ba60773e3e71,200 Ether
0x99ebe15dc213d373ef36f85f10328caa6c8620e964a194e77b6ccb9f367143c14678884315 days 20 hrs ago0x873767026deab58b3d14ceb60a0c9ba60773e3e70xbf051b2c03fcbcb1aedc0708035e6b1c4f7b587e0.55 Ether
0xa4c383c0c1812569680447038cd879cdedde53122f49b551396a4da9f7d55c134571236333 days 10 hrs ago0x873767026deab58b3d14ceb60a0c9ba60773e3e70x0d938f8a0eb8ed09bc29f286a09de0b13b54654d750 Ether
0xa44a15adcf2f8c227daca5ceaef0020a03083ed919158aadc89a0d0650d288174552409336 days 11 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.35 Ether
0x5d838c8282d35649b6f3022eceb633a049f46c235f559aed088e6acb0b6268c84548917337 days 55 mins ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.5 Ether
0x21bbe6c77055c2a23e464d3813d5ff0ea55cc7c5a80557816797184fa29a863d4548810337 days 1 hr ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e72 Ether
0xa5031a314f17af7fef2ae0e7a7a3a465dc4f5a5a0731d685ab82e033cad7da464548805337 days 1 hr ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e73 Ether
0x8c901db9aba6de9f2a0954323bfafbc965dd47777ee7322e35a9628386004b754548787337 days 1 hr ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e71 Ether
0x9f82d78c8feb01fb8b357f0687379b3ae24cf524d693fa53318de631b861adec4548771337 days 1 hr ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e71 Ether
0x73e1b2e564a97be1f6de2ffcfe627f3875db3342c5d96c798f84b78b879db3974547939337 days 4 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.5 Ether
0x50103fd9a0571bc1747bc3b77645c978f5a03c87d8ce8d9145c33f037ee355c94547889337 days 4 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.41706 Ether
0xb504c0d3310481a4139b8699fefb0f406a5b38e43fb2b95dff476beb457821cd4547866337 days 5 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.5 Ether
0xe7d880c7b23b2a7fedcd1dab155c7156e673636ff902138ecd1164f7984949924547836337 days 5 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.2 Ether
0x1376203085d8f97fb55edef277c728a7fbd894b81a31d8c43dcb0e344e74607f4547748337 days 5 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.15 Ether
0xf523f93aac01d25a2b219ebb318a80517bd2655406084a5cee959363a640504c4547556337 days 6 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e73 Ether
0xbde64d8e0ead60b55e79bdb737d11c85186089796a0e4816c28661be0fff63464547433337 days 6 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.3 Ether
0x0d46a40f70d3bd6ee901d48bae6764bab098b70a8a03f6dd638c4a925a02efa94547348337 days 6 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.01 Ether
0xab5267035ad1b173f0c11b8109041a6f61091d0ea612d789f7f99cdf873339bd4547328337 days 7 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e73 Ether
0x1e2d560c96d7d528b428eb999646eba3ae2506a2fd2f2698fd9bef0368f3cc4a4547223337 days 7 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.03 Ether
0xcf3a65b919f0c3ce659bed1fb6dd52437619a2cba79cb46ab0d833c0e80c37fb4546623337 days 9 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e730 Ether
0x5af82342f7b3f72816305e828eda5f3d9c6744a8ebb12ee0a99abd999b4e37d84546403337 days 10 hrs ago0x97ca8108064eb2a90428ed6f407ae583ee7c3fd80x873767026deab58b3d14ceb60a0c9ba60773e3e70.01 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;
        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 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.