Sponsored:   VC, TLDR and CoinBene Funded "TEMCO: Bitcoin Network (RSK) Suppy Chain! Whitelist KYC Starts Now!!"
Contract Overview
Balance: 33,393.535771811017852377 Ether
Ether Value: $3,498,974.68 (@ $104.78/ETH)
Transactions: 203 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73at txn 0xf6d06bedd5f4030157e6f8ae101574f0564d6727e7e03e6cbdc0ede32f13be75
Token Balance:
 Latest 25 transactions from a total of 203 transactions

TxHash Age From To Value [TxFee]
0x0c167e3d6edc4fa8de89c62d304c7152fd4cf69b89f30ab60171f666ca4a13be16 hrs 13 mins ago0xef3fa6f694b0d48783c0894abf1b4905e321383a  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c27.64623851 Ether0.00022588
0x20f2e9d09a297c8a6c92aa79469eaaf507cc7e5856147273158aab0e74a0a83312 days 8 hrs ago0xf811769e967953bff67b0f2fd40a0dac82c3752d  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00078264
0x234dd0ff62fdc8aed2b837b409e5988af2265b115df2dbc5d5558f05f02651f112 days 13 hrs ago0x82c8074ab7c6a7bb7ecc78dcd26515bb47aeb216  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00095963
0xb2bce9dec14ee55c8182e9405779ad8e1de4c408038c421b6e6ab77d4ffea62514 days 6 hrs ago0xcbf1586adf92ebe9ef75035397c87f0dd3cac949  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.0123
0xd0614f2a9b99a0eb1101fca59b7ac0b471a65ef10a62732e11b49b765aeb0a1014 days 6 hrs ago0xcbf1586adf92ebe9ef75035397c87f0dd3cac949  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.0123
0x63366ee7e97b6b8e8374174da47e56663a37f470d3a3b4b39b02a7b5e6e3bb5f14 days 7 hrs ago0xcbf1586adf92ebe9ef75035397c87f0dd3cac949  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.001066
0x033f8e41f31622a4dab738cfabf6aa88114755b03ffacce1302eb14f3bdfc50114 days 7 hrs ago0xcbf1586adf92ebe9ef75035397c87f0dd3cac949  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.001066
0x7e9673ab52203d1f3760b0662585f61e6578119aa447fd3e8ae0d1de8f34e1a214 days 7 hrs ago0xcbf1586adf92ebe9ef75035397c87f0dd3cac949  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.001066
0xd5bc3222e484ec48e1cce848eda83cda635fafa36689a92f11240a53254d97cb14 days 13 hrs ago0xf28233cf5af37c02af3aa4cd071cca19677136d5  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c28.57578193 Ether0.00022588
0x6ae44c4e05466ae069e567ddf260b61ad867e4fd359bdb8a3305a879f2bd1d3c18 days 5 hrs ago0x16d83b182c7a14c0af81610d51326958737c5abc  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c21.88420492 Ether0.00022588
0x689f2ccff5a40945d93b138b6ed65da30834b1dba1c7e29a9847e91411c7d44d25 days 10 hrs ago0xce64ab07fb04e705f8b400c0374e2fdb41eacf88  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c8.26877282 Ether0.0001626336
0x90ac54b8e2e076c962f246071dd21bc122e9844f89aebf3bfe2a07a7f647467425 days 14 hrs ago0xcd5ae458de5225a13c1f9b5d5d2eeebd4a58f70a  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00079684
0x3f1133336bdbc94d89faa1962925451a7b482d229ce95b0cd417879ab5fc324825 days 14 hrs ago0x82c8074ab7c6a7bb7ecc78dcd26515bb47aeb216  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.00095963
0xa31c6b3d9229bb8b1276ea5ee46fccd2eecef4f1c8d3f759f2e1ea095e13576331 days 10 hrs ago0x34b8aa81b1a65d28913e6543daf5681bc9d55200  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.0015
0xa2a407b7d71fe1634291dac9501bf373dd6a31e3e418528a318bb93457a81e4a33 days 19 hrs ago0xf811769e967953bff67b0f2fd40a0dac82c3752d  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.000313056
0xdfd0c9448a46ccd9016bafafae3ae6ed5aafcfe30e99f88855ade91c8f90b1fc33 days 19 hrs ago0x82c8074ab7c6a7bb7ecc78dcd26515bb47aeb216  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0 Ether0.000960078
0x669a657ea6922c0f32001e9b73b549723da50580ca4752f6b6a8d8dc2cbd835541 days 9 hrs ago0xa8f5fa530700f6b30c4efd6eb767b74976b0fe71  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c1.75371638 Ether0.00022588
0xcd9e740eea23e3b5ac37bbc04d51ee17e835fec9857a8d64081c1fc2ce701e3842 days 10 hrs ago0x94fa49fa7c85d85d1232de163f32e25e4a20b078  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c2.78580448 Ether0.000271056
0xcde4c75269202e1584c31ee5f6bceb1db3dfd2b9d50e508f8559d4a7923f8bd746 days 17 hrs ago0x71dd7f79ac0192b612184285d5f1bdba28c72710  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c29.37531077 Ether0.000248468
0x5553c5b16da9eac67de2e66600dc7897a8f287a27c5f3b77438f36c686bca87d48 days 11 hrs ago0xd9c264f87d37f0e5c76733f4083f2fcbe58fe4a4  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c76.48127537 Ether0.00022588
0x3626447516fda115af82bd07b96ac94221e5d90ee6e7fdab440ec91ce72d1d3961 days 21 hrs ago0xa05a8f5188f7245c49df2ddd6d026cfffc540b50  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c4.51622312 Ether0.000135528
0xb5662ed1abc54e69e8555325c9d38cf4247df84b31c051d79f28a1176a792c4962 days 12 hrs ago0x744ce2be21e237ed36f914e5570312dbf9e4f3cd  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c10.84764812 Ether0.000135528
0x6a68934be169338244aa1405f2c6d4ce3a8c9f084323665c246b5f82a92565b567 days 9 hrs ago0xe6e5b2368d989e85c2c1de485f7da82df9b3d743  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c57.05992232 Ether0.0001987744
0xc1c00a819998b50273870575ad3e360d5cb3ee043a8421d3c3d01a46f08b650d68 days 4 hrs ago0x688506c709a4ab2a1bd47425878b253c7dd98627  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c3.72643632 Ether0.00011294
0x54947e53f0eac2609dfe6d7d55ac6e688648a0540890940e4d26d4460da6981776 days 6 hrs ago0x4a9b616b7f2e4187086c978a0eb43c856abde40a  IN   0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c2.4436556 Ether0.000135528
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 23 Internal Transactions

ParentTxHash Block Age From To Value
0x5e4a491c454734b1f49e16645c7121cf9d0ed136739e425c7160c7b5aae2627969104388 hrs 51 mins ago0x0e26f7385d6c293a8a977cb9306236b8c4b88d1a0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.003 Ether
0xf1343ca2240bb32e2e2b327312e5754c6210951f599576aecf1c1ed640be98e369103909 hrs 2 mins ago0x1c4c2e028dfe6f18cd937ff9ab478ba9499149580x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.002 Ether
0x83130834dae4af49627ea60cb94aa9996370492f948d0920eed7fb702c58a47b69103639 hrs 7 mins ago0x0e26f7385d6c293a8a977cb9306236b8c4b88d1a0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.001 Ether
0x20f2e9d09a297c8a6c92aa79469eaaf507cc7e5856147273158aab0e74a0a833683809412 days 8 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x2810d22c2d77a91c456116d0a49a42bb417986f940,000 Ether
0x90ac54b8e2e076c962f246071dd21bc122e9844f89aebf3bfe2a07a7f6474674675778025 days 14 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b40,000 Ether
0xa2a407b7d71fe1634291dac9501bf373dd6a31e3e418528a318bb93457a81e4a670777133 days 19 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b50,000 Ether
0x2287d8c79d4fec75821b2bf0bdd3317702a7b5ea00393821c3e33ca5bc8569d06110210132 days 15 hrs ago0x1522900b6dafac587d499a862861c0869be6e4280x1e39fbf0c16a20f65613a4ed1baa088a8937b15c9,000 Ether
0x885ed91c2eb6458c36af396de137d63e68e26e8602bf1440e949718872de54b35417519252 days 5 hrs ago0x31a240648e2baf4f9f17225987f6f53fceb1699a0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0.000000007777777777 Ether
0xa0866f4741e7d552e4408cc24737f3333bb024108a25cb2ee172e245e7f23d154896649340 days 12 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b35,000 Ether
0x6b356ceded52da461fd372da28a2bc7a21bb9d9dcb69a766e4528347201ca4d34853506348 days 11 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b45,000 Ether
0x53af2270508b6e9a9fae31cc96abf6e36ea1445f23d01cc2cd1ef8781d3fd6f64849384349 days 5 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b30,000 Ether
0xc5991933121607aab618b1c72632bd6e1d86de63bc788d81e225488d646a67054771533362 days 12 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b30,000 Ether
0x60fe746558ee48469c6c43b7ac1ed5ef6f1688374816bf07564554cf15e023074760082364 days 14 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b30,000 Ether
0x7be8650ea66fdc76c9cedb55860c23594a9ee028ef2c391f34d2d863b6f04c784720814371 days 10 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b65,000 Ether
0x998eb5e1d3906935c907852f33cabc7da3258f8e7f0ca4a119fed4c8c68ce57c4669484380 days 9 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b15,000 Ether
0xe57139e994e247416af3d1673411e76d2de02a1ad3b5ffbff6c5e82351426f104669469380 days 9 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b0.000000000000015 Ether
0xd3ee6bfc22999599e69e870e7afcf70c7cade509a8c2dc1a9ce080d524d4841e4650527383 days 12 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b25,000 Ether
0x767ee8a0a3a3f743e87d2d8dd4fc98d5380d82831d50f2dd26a8a3c9f45e687e4626705387 days 10 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b8,000 Ether
0x0acbc34073e882e735bcb9190ccc912c3010221eeffe8210fc14da9d812a206d4608240390 days 9 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x976fd26bc177542c3ade3aa28b374f866e7dde4b20,000 Ether
0xaf9f2b60e6097976c488087c6ed3089f87489a515ab3b360bcbc80420b552a7d4584965394 days 3 hrs ago0x1522900b6dafac587d499a862861c0869be6e4280x1e39fbf0c16a20f65613a4ed1baa088a8937b15c11,000 Ether
0x7bd55ac46920582b0c7e91a2a80a8f27d84acc018eca4bd18afbec514c28e9f54552209399 days 10 hrs ago0x54e1ae2a4c55c00d82699d8a27c058f1c55280c60x1e39fbf0c16a20f65613a4ed1baa088a8937b15c34,784.706899095 Ether
0xa7e9ba007c74e9c7084a2485f76eeda536e07a70cd0e962c2e4292500c6a0fd84551915399 days 11 hrs ago0x1e39fbf0c16a20f65613a4ed1baa088a8937b15c0x2a7077399b3e90f5392d55a1dc7046ad8d1523480.01 Ether
0xf6d06bedd5f4030157e6f8ae101574f0564d6727e7e03e6cbdc0ede32f13be754516309405 days 4 hrs ago0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73  Contract Creation0 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.