Sponsored Link:   Qravity - the only blockchain entertainment production studio and distributor. Learn more.
Contract Overview | RaidenMultiSigWallet
Balance: 24,956.609992664836911821 Ether
Ether Value: $13,094,234.13 (@ $524.68/ETH)
Transactions: 68 txns
Misc
Address Watch: Add To Watch List
Contract Creator: 0xed5a90efa30637606ddaf4f4b3d42bb49d79bd4eat txn 0xbd11d38952852d7ff928f8e5986dd4ee397548d5ad13d6c6c4d357a75fb17e67
Token Balances:
 Latest 25 txns from a total Of 68 transactions
View All

TxHash Age From To Value [TxFee]
0x05f882e018b8dd533e62cc8b3226ba5d498438f9a7452443cc30a19d15c718d348 days 4 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.00206355
0x783edbef9b9cd12658979228c1425bdae5436217f7efcdcf81edf4aee2948afc48 days 5 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.00247195
0x12c3df0839f556780e361974ac6024a91c47515507e91cb38059d509d2f7193d50 days 5 hrs ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.18849552
0x5634c3847af5f5d7c8eba901d11e4584c257d106816ef627c7553f18068028d850 days 5 hrs ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.00320052
0x2036159ee9b441f147b3c19433ea2332c6ee77b44adf12b84ea6ccb5539a28be50 days 5 hrs ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.00325662
0xb29c423901a98c9c97400cf7a23aec10a53296f49edc8cc72814507b32efaad750 days 6 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.0041979
0xf36f471454c59dcbf83490cee49d06432ff7234993e10c7696563c685881d72050 days 6 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.0053049
0x3081dfabd8944ec95ce5ffb90799b610965a5812c8f547f3dc6c503914b948fe112 days 5 hrs ago0x2a7077399b3e90f5392d55a1dc7046ad8d152348  IN   RaidenMultiSigWallet3,000 Ether0.00135528
0xd593bbd6274bde0808ebebc9aed732557d85e01913fc1ea1d5eb3525f3491e5b122 days 8 hrs ago0x18c266260cf222bb364bde080d2a16ff647ea4c6  IN   RaidenMultiSigWallet0 Ether0.000211308
0x8b84516d778322fedd27b209656676166f911ba31210d971f49e407fde1701e6126 days 4 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.00133355
0x6e066bfee4c4d72bac7a2997007fb931b7fc6cdb4f823aca4bf69a65beea22c4126 days 4 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.0052857
0x09b5401f805c9b64bd0392847e07ea12fca82a646a56522ca386995ace49b2bb162 days 5 hrs ago0x18c266260cf222bb364bde080d2a16ff647ea4c6  IN   RaidenMultiSigWallet0 Ether0.002641344
0xea2d7ed93bf19ec298cdfd64b51ef3a4ed59fb06b61372e193d7cd15c3c9727e162 days 6 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.001356925
0x6e0119b1549036d126b7a93806415dc37e2d3116b7e859cc2475afcfea62f956162 days 6 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00419982
0xb16c97de5f4755d6dad02bb8c38b1e19e8e168bdb1fb3acacbeb6ed1db37e964167 days 3 hrs ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.00495252
0x6c59e467da53f48f837c971176aa48664d551481199a84e34a4e531c6a6ff953167 days 4 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.001356925
0x1ebc1f2e48fbebac5017c5b98d6bd8bd59cd5da8d68bbb40b23efeff9de67ce6167 days 5 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00419982
0x207c1c834d583f45e02af961291478a1156f346e34cfb783be1516d2971270a6168 days 5 hrs ago0x18c266260cf222bb364bde080d2a16ff647ea4c6  IN   RaidenMultiSigWallet0 Ether0.002558802
0xac0562762cd00038924a9f5b60fdcae2b2192cfa01f236a3a7cde6ec258d12e3168 days 10 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.001356925
0xdf48fc36b759cdd0c1267a06f5143dab07b523f1656c5ecdea8ee823506b1c5b168 days 10 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00419982
0xb8531f0eb64b59d4776acbf3f2ef489fbfcc449d21231607aa18f28efe01b31b184 days 8 hrs ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.001485756
0xd62685c27c64bbb7474209db3119518d9fd42bd5f290474dd55c781a39fee71a184 days 9 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.001356925
0xa828d07dde872b148ca717b0e2537a2ce4a4f448640172de69dc5c340b319e8e184 days 10 hrs ago0xd5dbdbc38428cc17ac7dfdf1ed431d6ea1e2b32b  IN   RaidenMultiSigWallet0 Ether0.00419982
0xc4318c728127224e2d13d86357e1cf58764705ec63f78bf6eca046cb3d5c5b50192 days 5 hrs ago0x2b234afca974ce48acca667b12853f264c06faa9  IN   RaidenMultiSigWallet0 Ether0.001485756
0x1d89685981eebfe583a846ccacbd6a07940a516bbd62a8689c6daac42802b32c192 days 5 hrs ago0xf477144c36d92fe589d7e04c8fec52aa02e1b7d8  IN   RaidenMultiSigWallet0 Ether0.001356925
[ 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
0x05f882e018b8dd533e62cc8b3226ba5d498438f9a7452443cc30a19d15c718d3555537148 days 4 hrs ago0x00c7122633a4ef0bc72f7d02456ee2b11e97561e0xe4abc54f5a6288b60c18b361442a151fc4911da61,700 Ether
0x09b5401f805c9b64bd0392847e07ea12fca82a646a56522ca386995ace49b2bb4885587162 days 5 hrs ago0x00c7122633a4ef0bc72f7d02456ee2b11e97561e0xb31c9a67d46bc1b3c64642fb5ecf21ee20cf619e20,000 Ether
0xb16c97de5f4755d6dad02bb8c38b1e19e8e168bdb1fb3acacbeb6ed1db37e9644858934167 days 3 hrs ago0x00c7122633a4ef0bc72f7d02456ee2b11e97561e0xb31c9a67d46bc1b3c64642fb5ecf21ee20cf619e20,000 Ether
0x207c1c834d583f45e02af961291478a1156f346e34cfb783be1516d2971270a64853177168 days 5 hrs ago0x00c7122633a4ef0bc72f7d02456ee2b11e97561e0xb31c9a67d46bc1b3c64642fb5ecf21ee20cf619e20,000 Ether
0xb8531f0eb64b59d4776acbf3f2ef489fbfcc449d21231607aa18f28efe01b31b4759721184 days 8 hrs ago0x00c7122633a4ef0bc72f7d02456ee2b11e97561e0xb31c9a67d46bc1b3c64642fb5ecf21ee20cf619e20,000 Ether
0xc4318c728127224e2d13d86357e1cf58764705ec63f78bf6eca046cb3d5c5b504714604192 days 5 hrs ago0x00c7122633a4ef0bc72f7d02456ee2b11e97561e0xb31c9a67d46bc1b3c64642fb5ecf21ee20cf619e5,865 Ether
0xa17c34318008f7799913c98ee22d9219bcda01fd1b21e7db2a993cdf93b1d0a44644436204 days 5 hrs ago0x00c7122633a4ef0bc72f7d02456ee2b11e97561e0xb31c9a67d46bc1b3c64642fb5ecf21ee20cf619e10 Ether
0x9843ff49104ca314e6a79af857730a392ac0a99050fa3fcf7a21588944d41cb64470238232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2 Ether
0xa5c7e3f49870d094ae4111c1c711c76f984adc1b04ee06faba5017806e5afcf54470238232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x899873c4c1020b362d81d5ab7c861364eda6c3b700cd59eaae5f17695e0c93f94470237232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e0.5 Ether
0x4c64c7776dacec4e6de1fa080e7a4b5b3d7ec66de0cac4e8c8e2482a39371e294470236232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1 Ether
0x87c3d4a3260989c7b08c4f9d62b91a4194cba4be964106cbea53a583a8515e2b4470230232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1.5 Ether
0x0d6223fb64a749e8100498591181a20bd93bdf7a5f4c3fa818e0e8c28d40ebf84470226232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e50 Ether
0x10089c79582e29139939d706499936ffcec98fd26b731e5d4deabbf68d849f754470223232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x172ccfa54612f54d2e3209a4ae873ea8d0fee40c0527e2d736fd3fe9e7bc32f34470221232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e0.8 Ether
0xe334ca3e9067fb8967df27e40eca45746c1c8434e8e4123f11b5555e17d5787d4470217232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1 Ether
0x0a11c6e5c9363a7d4f7e6aca0d4166da20eb8d30c2f032d1b237563a03c16a384470217232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1.86 Ether
0x01b965f5fb858a71b0ee6c28b3debb14a9fe06504577678bcbda7a44d2c8ff564470215232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e12.25363375 Ether
0x8312be188008bb69c3303e3bb644df889970c7616a1bd173a36338fadea11d7a4470211232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0xecbea99d83fd41bc837bc377450fb0ecd0d7743308047297996f153c1fefa0434470210232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.6 Ether
0xeca16608a31d5db64e91664220fed0759e064cb53f7e8e1ee20b7f8c38b0b2564470207232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e84 Ether
0xa1643b01abec91f8f6e51a767307b0c66fe0f3f6b121132016d07e9cccd711434470206232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x454ae79b2a1cf2795a30033dec8af37f55c856c36732ce83ffbff3fae1f477c64470198232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e3 Ether
0x037e7cd631d7c1112925caf25846d335be8813575a47ec7b4ce642e10400f5b34470197232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e0.25 Ether
0xa68314a319e64c7121b49483ccd42206d22a06806531cd500795d574be70cf494470196232 days 7 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity), IdentityPrecompileReturnIgnored (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Similar match)
Note: Displaying similar matching verified source code at contract 0x0c9a023dc047bc3140ece933dd285c50379a9d4a(excluding Constructor Arguments if any)
Contract Name: MultiSigWalletWithDailyLimit
Compiler Version: v0.4.4+commit.4633f3de
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.4;


/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <stefan.george@consensys.net>
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 - <stefan.george@consensys.net>
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 txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.