Sponsored:   Color Platform: Decentralized App Store - Special Airdrop For Everyone (~17 Sep), Register NOW!
Contract Overview | EOS-Owner
Balance: 0.000000000004714104 Ether
Ether Value: Less Than $0.01 (@ $208.41/ETH)
Transactions: 413 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xa0dbdadcbcc540be9bf4e9a812035eb1289dad73at txn 0x7e1605f9a2d1526133a8333b3592a3cf034b7ea4a60a3153e15b69da8ebe7947
Token Balance:
 Latest 25 txns From a total of 413 Transactions

TxHash Age From To Value [TxFee]
0x2e5f5a6c3dfdd46799585f8ad3f13f890fb2ec21c53e73f224747715b58e85b078 days 19 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.01414391
0x3452a85f527bda126a8ac485851146cf39e2e7abe069ff4f7fcd4b94283fdcc278 days 20 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.018112776
0x1ffa959dc43adc26f7d7f3d0b5a20741a63c9702da9e40dced4479df4f51f82084 days 23 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00079684
0xcada409d5d3356e557f323903833f928d69dd02cfa785511c9ab62cd40c6956d85 days 2 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000548616
0x950b7db68f2f108fb39a7573bf8ffe1976b46ea0391f59f9c32c2415a2aab42f85 days 16 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00079684
0xea683eacb26b5a21f994d8d02682a86432e1b0ebf5f07cbafc658a940dcac04986 days 4 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.00041127
0x164c8cfeba2f8896f3a739406fb406b2145e11780a627beeeddf33525b3ffe5095 days 19 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.000876524
0xe96acef1ca4880d8d048ddd1ad0d68e642fe9c51d4c830d813f50a0afa9e243895 days 22 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.002194464
0x1ad6d30e4182cdc5fb8d38f80b328628247f26bc9f202688dea49a8f752b8a6c97 days 2 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00079684
0x6fe8b304b90f91f7cac3fbcf035f9c7ff1ac5f7d6fc37fe07b337eb28c967f2497 days 3 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.0012481014
0x31ac66f80c6bc2b056676cd808930641616b6d4a3f6620759c2e902fb084d0fd98 days 3 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000345424
0xcc34f317a2fc8fb318777ea2529dfaf2ad9338907637137c3ec7d614abe7557f98 days 17 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00079684
0x26e0db3546f3e6f8440960a5bab4a5a9af8e494462c41a4577fb5e6ec2d9b0ac98 days 17 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.0013709
0xa4adb34221a6d331b57add401eba77057e077044660d2c6ede488915335a758e108 days 20 hrs ago0x395be1c1eb316f82781462c4c028893e51d8b2a5  IN   EOS-Owner0 Ether0.00171
0x6fc29716688dd30dd908aa1b39b43cb5624cd6ebd07c5770c64df16107d893ba108 days 20 hrs ago0x395be1c1eb316f82781462c4c028893e51d8b2a5  IN   EOS-Owner0 Ether0.00044
0xf39a260f9b36c1ae51541f397025fcbbd9fd5c30272a44e8a765104a6539bfb3109 days 10 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.000949916
0x4ae47f070e6764c4492a7a4507628df2ff3ff4ee9b024694f40b5cceb8c226ce110 days 1 hr ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.001513996
0x16906f844379edfaff9e57907ddaddfbb8975540cdb8768c9755f93ae1c12104110 days 1 hr ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.001780002
0xf2b5bf6d34d8f4d62261e1535e4421c9e6012964bd7b085512386006d3ba4318110 days 4 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00166533
0x5dc203867d92715d99a19b783128e9b4e956de260e91a7b2f3807e9f125cb3ef110 days 4 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.001332264
0xa8824c4bfaca37cbc006ce11be4e733dee5b1535aa6da0144f35a7961eadb742110 days 7 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.00119526
0x7205445d822f812b350960346fb47c2b968e9a21fdca977cb335a0f9002aa9d3110 days 7 hrs ago0x540f38eaa1eeb24aab5655034eea00f1b51cafef  IN   EOS-Owner0 Ether0.001035892
0x5ce60e909012586e318971e402148a4033e0fa1d40e15053c21678db3b2e9166110 days 7 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.001036272
0x1e9c497f5ecf7fa7740af25e63592ed7a0978f63d85ba57dfc440385863d3ee2110 days 7 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.001397869
0xf173d7af97cf46c7130e30eccc0a3c77c98da70783ab804931239dae9aa7ee25110 days 7 hrs ago0x9c2b02c4083d3ab73421ccdf4e681b18ee7f316d  IN   EOS-Owner0 Ether0.001508694
[ 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
0x2e5f5a6c3dfdd46799585f8ad3f13f890fb2ec21c53e73f224747715b58e85b0589283278 days 19 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x052af704cb04d7042507c263908ab2fcc6023709100,645.89049180066 Ether
0x1ffa959dc43adc26f7d7f3d0b5a20741a63c9702da9e40dced4479df4f51f820585683184 days 23 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x052af704cb04d7042507c263908ab2fcc6023709100,000 Ether
0x950b7db68f2f108fb39a7573bf8ffe1976b46ea0391f59f9c32c2415a2aab42f585280385 days 16 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x052af704cb04d7042507c263908ab2fcc6023709128,000 Ether
0x164c8cfeba2f8896f3a739406fb406b2145e11780a627beeeddf33525b3ffe50579353895 days 19 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x052af704cb04d7042507c263908ab2fcc6023709100,000 Ether
0x1ad6d30e4182cdc5fb8d38f80b328628247f26bc9f202688dea49a8f752b8a6c578617497 days 2 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x052af704cb04d7042507c263908ab2fcc6023709150,000 Ether
0x31ac66f80c6bc2b056676cd808930641616b6d4a3f6620759c2e902fb084d0fd578008498 days 3 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf42,881.27648039 Ether
0xcc34f317a2fc8fb318777ea2529dfaf2ad9338907637137c3ec7d614abe7557f577670898 days 17 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x052af704cb04d7042507c263908ab2fcc6023709200,000 Ether
0xf39a260f9b36c1ae51541f397025fcbbd9fd5c30272a44e8a765104a6539bfb35716330109 days 10 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf438,594.293276213795355874 Ether
0x4ae47f070e6764c4492a7a4507628df2ff3ff4ee9b024694f40b5cceb8c226ce5712778110 days 1 hr ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe5107250,000 Ether
0xa8824c4bfaca37cbc006ce11be4e733dee5b1535aa6da0144f35a7961eadb7425711520110 days 7 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x5ddfc011d0888b9da0463bdeec85f4b9faa4740050,000 Ether
0x7205445d822f812b350960346fb47c2b968e9a21fdca977cb335a0f9002aa9d35711515110 days 7 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe5107100,000 Ether
0x5ce60e909012586e318971e402148a4033e0fa1d40e15053c21678db3b2e91665711418110 days 7 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf4100,491.207364631318897667 Ether
0x18c64966dcc00b6b0cf2360101636765a2c14d474cfc33965811cdbc0e657eca5699699112 days 9 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf4270,241.157681752097589124 Ether
0x0b36b89522cb87ff5bd8a458b0520cad48beffa1b2f53ffe5757cc418c1b5acb5696679112 days 22 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x7059372012bc3155b1701dea34e79c01f5470fee50,000 Ether
0xc75c4fce637a8171f60544d5fb542d3ef6a769ad99988318be08095203aa3fd05696660112 days 22 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe5107100,000 Ether
0xaa93832c9d156c9cc87cc4b5d65ce21fc99fbfa41bc00cb687bd77a59e3b614f5666417118 days 7 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x7059372012bc3155b1701dea34e79c01f5470fee50,000 Ether
0x2ed352df670ca69f6f8c0886c15ac047821c5dbcf3ead999cff75773a150ae835666415118 days 7 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe5107160,000 Ether
0x8e52ec176eb1b1d532d56102de1978facc3ba26a8769b4536e00c2489df12f735666267118 days 7 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf4372,225.639145898315454821 Ether
0x51a6c2a53bac1fdb25961e9ddffeaf250b8ab00657dc6835384a764c4a0e5a2c5655721120 days 4 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe5107100,000 Ether
0x01dc4fc397d5582d48ec117f63bd7e8bb219c56518159750c4719ba173fc0f755655717120 days 4 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x5ddfc011d0888b9da0463bdeec85f4b9faa4740080,000 Ether
0x487bcc549712ba8ea8daef302d86fc45d1f5d3d14d118c64240fc10375809dc05627772125 days 3 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe5107100,000 Ether
0x6b81e1d3871d5b3f3f97ede7a39cb3b3c312690f23a6b28105dc412b8ac23f3f5610105128 days 6 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x5ddfc011d0888b9da0463bdeec85f4b9faa4740050,000 Ether
0x0cceb3fde12900a5366b83357e7b6c77c49844f8bb45ae3517abc3d656e865435610097128 days 6 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf4211,853.966469589116919461 Ether
0x780aefde0d04f4f6ddd4a3e8457c8c85f91ee281d4a541d45ba48c987e17c3435610087128 days 6 hrs ago0x9937dbb2128b55c44d8af7bf36fd76796a814cf40x8e5d083fc644a26623545ae39167096a1abe510750,000 Ether
0x6758140627a2ae0a06b9327fb1c81493837c9602204d186e088514c2910f481d5584098132 days 18 hrs ago0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf0x9937dbb2128b55c44d8af7bf36fd76796a814cf498,414.301950383768973251 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 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.