Sponsored:   Ubex.com - Additional 17% of tokens are available for purchase! Trading on exchanges already started.
 Latest 25 txns from a total Of 527 transactions

TxHash Age From To Value [TxFee]
0xf599888e1880c58332b16d5c1e9e8a6c4102f65dc3f0f87809f2095ff6dd4de459 days 14 hrs ago0xcc6667503aed0c27ac9f5ac78131710ba79b09e9  IN   TheDaoCurator0 Ether0.000067353
0xa07bc4f8b10f662ea5fc72e60af60ca65c0a2902257b9b413d55e49a8d0a093c60 days 53 mins ago0x87d51d44d7df04ae0f75b43b4661408e5293f646  IN   TheDaoCurator0 Ether0.00012565
0xdd72a20c0a9f888d46353c9bb593776fe02f7e6bb15f48cb56faf7f8b20a8ba676 days 4 hrs ago0x979260baab708fbb2d810fdbaf0e8f0ad04f9127  IN   TheDaoCurator0 Ether0.001211
0x308b4b6d67eee7813b2412a675a8ec0c84421d0a9c11e3ab4545667e760df66376 days 4 hrs ago0x979260baab708fbb2d810fdbaf0e8f0ad04f9127  IN   TheDaoCurator0 Ether0.00117025
0xc48ac4d7f4962529764450e54ff18736daa4449adae20c5656a00308412cb5f0110 days 1 hr ago0x80113f7bb9ddc6693585e103fb675ba17b6a9c06  IN   TheDaoCurator0 Ether0.000042148
0x226ebfd5cf4bf3b58f455992d8ad4e0174046b51cf85266bd6a1419fac804638159 days 2 hrs ago0x768d4f1cd8594701be8b906462b73c9040e392df  IN   TheDaoCurator0 Ether0.00100614
0x59a9428360bb55e02d98dee15fdd94a84d120286390944ba0a77c593aca1f805159 days 2 hrs ago0x768d4f1cd8594701be8b906462b73c9040e392df  IN   TheDaoCurator0 Ether0.000916432
0x08fecf142be21ac979508e813eb7be07b91d1ca4cf5df93977618356856a9970257 days 20 hrs ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.00041195
0x670be2d8a2488dcac01131bebe81f6bd4ce39c4875075c11de0074b4f8f15195257 days 20 hrs ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.000411598
0x70292edf2e1cff353e0d674e452bc2879e04c4d51c78947e269e4475a57d89f8257 days 20 hrs ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.00041195
0xe1549a73b7b2276f7843e9671bcb39606aa1889488315cddf06b1a17dbbadb2f257 days 20 hrs ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.00041195
0xf1afc6f517a78128cccf4c784222f90559374580a6070973e5ce2e69784dbae6257 days 20 hrs ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.000678711
0xc6eca3ae7f6f3fd982cb5bdf502e9d677bfcb0e2a7057f8ae4b5e1becfac5518287 days 8 hrs ago0x18788edabbabc203bc7c157518dc4b2d4529f884  IN   TheDaoCurator0 Ether0.0000024412
0xf1daa07e61ca8e3615fbfcbc589a9f09827c7ae55e4440a32c7fe3b161e291e1289 days 21 hrs ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184585
0xa392e3a8190db318f679896f44ecaad0ad21115327484e34a7f20e49790bdd91289 days 21 hrs ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184265
0xb7ff7f95c107fdb8c2d494556a76e329522f6fdb15c5314b0e289176052184c1289 days 21 hrs ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184585
0x95f57d4aa2780e2b6dfe5e9f62c663a1d38c4bfa42e91c3208d4b58f3c7f0f4a289 days 21 hrs ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184585
0xb9e09efa2c1a472b4868da5ad634dcb6da2f6533dc71143d25864d35402ee86b289 days 21 hrs ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184585
0x6c4ebfad46b3672fd5a6dcb7998fac7ec7f4eb58af52512de00a9cf035bf6734292 days 3 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.000174051
0x472f4dcde253a9388a2f3ed4a08b98be23c10b77e09610e550e33ebe3a58c893292 days 3 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.000174051
0xa5d67a6613d4ae23853024ec9ec9902883b001b2709dc458defa702e6c5c476e292 days 3 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.000174243
0x8ee4094137866585b8979fc18cb5a00a76e17876a00718a6fb28e0a249e551f8292 days 3 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.000184097
0x4c8b68bd9faa94a48f972c87872a76361d9b3de326f25cc2d2ea00e177a82662314 days 15 mins ago0x2ff4d83d13fb20b88614fbe38aaceaadad9d53fc  IN   TheDaoCurator0 Ether0.00019632
0xba6e9559730e405ac33691f432ae3d435dcdffe8dc8c21680634440abd854efc314 days 25 mins ago0x2ff4d83d13fb20b88614fbe38aaceaadad9d53fc  IN   TheDaoCurator0 Ether0.000189408
0x91dd86913ea4879b38101d70ea958ea565cb3655a098a094b83de5bd41e6f7ff314 days 30 mins ago0x2ff4d83d13fb20b88614fbe38aaceaadad9d53fc  IN   TheDaoCurator0 Ether0.00019604
[ 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
0xe08b00cd3b9ce8532efd4c56cd1bafdf8dd8eecb9839ea526e924d3e50cdbc4e582470254 days 20 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.2702 Ether
0x68a6f311ef79eef12af4928ebc6c39fa4a67e34950f5580ef8521fafb0be4c895507181110 days 13 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965261.299285362192307692 Ether
0x2eb806e801f344e850c8db68d5c161700bc7be4d9491f337fb4e06f50ffd5cb14985629198 days 14 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965263.90697347 Ether
0xfaadafe7f14681d156c4d17dc534c23213b594ac4c9c05e269b05562aba2b0cb4838781224 days 17 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.0001 Ether
0x1fce5143eea84c56e4d1ffffd5147cfe00f53fd5cb4f7fe7d28591f40950198d4837580224 days 22 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.033333 Ether
0x3d374c0d3e4480a053f723fb27cb29c57120ddc4f776ea11e9a94b1a3e08bc5e4795242232 days 2 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.160016607433487229 Ether
0x08fecf142be21ac979508e813eb7be07b91d1ca4cf5df93977618356856a99704646004257 days 20 hrs ago0xda4a4626d3e16e094de3225a751aab7128e965260x215832200f0e6ddac1fb9fa359d468691a3f1a1b4.2 Ether
0x670be2d8a2488dcac01131bebe81f6bd4ce39c4875075c11de0074b4f8f151954646003257 days 20 hrs ago0xda4a4626d3e16e094de3225a751aab7128e965260x2320191986e10b57b06a9bcc9e1ba7649282a55e11.9 Ether
0x70292edf2e1cff353e0d674e452bc2879e04c4d51c78947e269e4475a57d89f84646001257 days 20 hrs ago0xda4a4626d3e16e094de3225a751aab7128e965260x59b2347a21e94601e0fe74cac5105dee46c8731837.6826086956522 Ether
0xe1549a73b7b2276f7843e9671bcb39606aa1889488315cddf06b1a17dbbadb2f4646001257 days 20 hrs ago0xda4a4626d3e16e094de3225a751aab7128e965260x8c6a6fccf74e8e47a2687eb03d3b201bf3d9361c17.5 Ether
0xb0e623abd59df40e28919aa730e223cbba11ed9eef07341a884f91f519848aef4227814346 days 23 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.0015 Ether
0x1e7f25df7512cb013ed351513a3945142ef3e153fb65b64e42bb7ac29f90e8394142000368 days 19 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.1 Ether
0xc831449f727d5205b3345841286007cc0e47317aea50929a3b69eeb68b5a82ec4045352390 days 21 hrs ago0xd1c37dffd4ef36867c5bd7e59566358ea3d21e630xda4a4626d3e16e094de3225a751aab7128e965260.002 Ether
0x930624fc58552443354f4d942e28908de50f9353b3a2828d5311fd42f1ddc69b4045269390 days 22 hrs ago0xd1c37dffd4ef36867c5bd7e59566358ea3d21e630xda4a4626d3e16e094de3225a751aab7128e965260.01 Ether
0x96baefa11e18cfdd94fae186ff00aab3860f559200f523ee2a880471f4fafa753944700411 days 19 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e9652612.93 Ether
0x90cd121e01b9d77491459da14323ffd2d6ab3f5bc00904a5803ee62e3906e9013878346424 days 22 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.9500000001 Ether
0x3cd5b2ea487b4dd3323f17ff3f3bd16d98bb4ce9f4b5141cbc330f04effc77813854241429 days 11 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965261 Ether
0xe256ca729f0f2e5dd151ea05647b89447cdfce65dae5cc38eab071e1e2d39fe63841933431 days 20 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.99 Ether
0xe982bc80aea02a662a4a6d273d34bdd7e6b451c1f88237d7072301a06cfc792e3829257434 days 6 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.2 Ether
0x172763ebb9e6f7d2cc2ea99f841c28b35629e8edec7f986df575e2ede76635233741941450 days 11 hrs ago0xda4a4626d3e16e094de3225a751aab7128e965260xf90104ca5d09e641af4bc32bcf7993fbc13cacfe5.0880228909 Ether
0x337586c95ab5bdf0631f89c0537800c0a6decf5bde447567f8f9ffcd5ca70a2b3734676451 days 19 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.000333333333333333 Ether
0xdbd18134c8c7c41ff1ebb357d9cfb0bc126043c8ff481122a9b184de1dd1d1ed3709874456 days 9 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.1001 Ether
0x46d4661ca3ec9f560dd7fc04c8c649ad6d458bd47805f709b9a0a621ecb2239d3607060474 days 15 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965266.08802289090909091 Ether
0x1f75a5ab098a19ffac7f7017a9d9a7d3d33b046dd9ab22e830b9e5ce2ac605f93599397475 days 23 hrs ago0xda4a4626d3e16e094de3225a751aab7128e965260xe77febabdf080f0f5dca1d3f5766f2a79c0ffa7c385.046 Ether
0xbec7bfce2967b3cd114c1c5b12a76d50993d0ae7016473f3a64b3b05a00334df3577258479 days 19 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e96526385.056 Ether
[ Download CSV Export  ] 



  Contract Source Code   Find Similiar Contracts

//sol Wallet
// Multi-sig, daily-limited account proxy/wallet.
// @authors:
// Gav Wood <[email protected]>
// inheritable "property" contract that enables methods to be protected by requiring the acquiescence of either a
// single, or, crucially, each of a number of, designated owners.
// usage:
// use modifiers onlyowner (just own owned) or onlymanyowners(hash), whereby the same hash must be provided by
// some number (specified in constructor) of the set of owners (specified in the constructor, modifiable) before the
// interior is executed.
contract multiowned {

	// TYPES

    // struct for the status of a pending operation.
    struct PendingState {
        uint yetNeeded;
        uint ownersDone;
        uint index;
    }

	// EVENTS

    // this contract only has five types of events: it can accept a confirmation, in which case
    // we record owner and operation (hash) alongside it.
    event Confirmation(address owner, bytes32 operation);
    event Revoke(address owner, bytes32 operation);
    // some others are in the case of an owner changing.
    event OwnerChanged(address oldOwner, address newOwner);
    event OwnerAdded(address newOwner);
    event OwnerRemoved(address oldOwner);
    // the last one is emitted if the required signatures change
    event RequirementChanged(uint newRequirement);

	// MODIFIERS

    // simple single-sig function modifier.
    modifier onlyowner {
        if (isOwner(msg.sender))
            _
    }
    // multi-sig function modifier: the operation must have an intrinsic hash in order
    // that later attempts can be realised as the same underlying operation and
    // thus count as confirmations.
    modifier onlymanyowners(bytes32 _operation) {
        if (confirmAndCheck(_operation))
            _
    }

	// METHODS

    // constructor is given number of sigs required to do protected "onlymanyowners" transactions
    // as well as the selection of addresses capable of confirming them.
    function multiowned(address[] _owners, uint _required) {
        m_numOwners = _owners.length + 1;
        m_owners[1] = uint(msg.sender);
        m_ownerIndex[uint(msg.sender)] = 1;
        for (uint i = 0; i < _owners.length; ++i)
        {
            m_owners[2 + i] = uint(_owners[i]);
            m_ownerIndex[uint(_owners[i])] = 2 + i;
        }
        m_required = _required;
    }
    
    // Revokes a prior confirmation of the given operation
    function revoke(bytes32 _operation) external {
        uint ownerIndex = m_ownerIndex[uint(msg.sender)];
        // make sure they're an owner
        if (ownerIndex == 0) return;
        uint ownerIndexBit = 2**ownerIndex;
        var pending = m_pending[_operation];
        if (pending.ownersDone & ownerIndexBit > 0) {
            pending.yetNeeded++;
            pending.ownersDone -= ownerIndexBit;
            Revoke(msg.sender, _operation);
        }
    }
    
    // Replaces an owner `_from` with another `_to`.
    function changeOwner(address _from, address _to) onlymanyowners(sha3(msg.data)) external {
        if (isOwner(_to)) return;
        uint ownerIndex = m_ownerIndex[uint(_from)];
        if (ownerIndex == 0) return;

        clearPending();
        m_owners[ownerIndex] = uint(_to);
        m_ownerIndex[uint(_from)] = 0;
        m_ownerIndex[uint(_to)] = ownerIndex;
        OwnerChanged(_from, _to);
    }
    
    function addOwner(address _owner) onlymanyowners(sha3(msg.data)) external {
        if (isOwner(_owner)) return;

        clearPending();
        if (m_numOwners >= c_maxOwners)
            reorganizeOwners();
        if (m_numOwners >= c_maxOwners)
            return;
        m_numOwners++;
        m_owners[m_numOwners] = uint(_owner);
        m_ownerIndex[uint(_owner)] = m_numOwners;
        OwnerAdded(_owner);
    }
    
    function removeOwner(address _owner) onlymanyowners(sha3(msg.data)) external {
        uint ownerIndex = m_ownerIndex[uint(_owner)];
        if (ownerIndex == 0) return;
        if (m_required > m_numOwners - 1) return;

        m_owners[ownerIndex] = 0;
        m_ownerIndex[uint(_owner)] = 0;
        clearPending();
        reorganizeOwners(); //make sure m_numOwner is equal to the number of owners and always points to the optimal free slot
        OwnerRemoved(_owner);
    }
    
    function changeRequirement(uint _newRequired) onlymanyowners(sha3(msg.data)) external {
        if (_newRequired > m_numOwners) return;
        m_required = _newRequired;
        clearPending();
        RequirementChanged(_newRequired);
    }
    
    function isOwner(address _addr) returns (bool) {
        return m_ownerIndex[uint(_addr)] > 0;
    }
    
    function hasConfirmed(bytes32 _operation, address _owner) constant returns (bool) {
        var pending = m_pending[_operation];
        uint ownerIndex = m_ownerIndex[uint(_owner)];

        // make sure they're an owner
        if (ownerIndex == 0) return false;

        // determine the bit to set for this owner.
        uint ownerIndexBit = 2**ownerIndex;
        if (pending.ownersDone & ownerIndexBit == 0) {
            return false;
        } else {
            return true;
        }
    }
    
    // INTERNAL METHODS

    function confirmAndCheck(bytes32 _operation) internal returns (bool) {
        // determine what index the present sender is:
        uint ownerIndex = m_ownerIndex[uint(msg.sender)];
        // make sure they're an owner
        if (ownerIndex == 0) return;

        var pending = m_pending[_operation];
        // if we're not yet working on this operation, switch over and reset the confirmation status.
        if (pending.yetNeeded == 0) {
            // reset count of confirmations needed.
            pending.yetNeeded = m_required;
            // reset which owners have confirmed (none) - set our bitmap to 0.
            pending.ownersDone = 0;
            pending.index = m_pendingIndex.length++;
            m_pendingIndex[pending.index] = _operation;
        }
        // determine the bit to set for this owner.
        uint ownerIndexBit = 2**ownerIndex;
        // make sure we (the message sender) haven't confirmed this operation previously.
        if (pending.ownersDone & ownerIndexBit == 0) {
            Confirmation(msg.sender, _operation);
            // ok - check if count is enough to go ahead.
            if (pending.yetNeeded <= 1) {
                // enough confirmations: reset and run interior.
                delete m_pendingIndex[m_pending[_operation].index];
                delete m_pending[_operation];
                return true;
            }
            else
            {
                // not enough: record that this owner in particular confirmed.
                pending.yetNeeded--;
                pending.ownersDone |= ownerIndexBit;
            }
        }
    }

    function reorganizeOwners() private returns (bool) {
        uint free = 1;
        while (free < m_numOwners)
        {
            while (free < m_numOwners && m_owners[free] != 0) free++;
            while (m_numOwners > 1 && m_owners[m_numOwners] == 0) m_numOwners--;
            if (free < m_numOwners && m_owners[m_numOwners] != 0 && m_owners[free] == 0)
            {
                m_owners[free] = m_owners[m_numOwners];
                m_ownerIndex[m_owners[free]] = free;
                m_owners[m_numOwners] = 0;
            }
        }
    }
    
    function clearPending() internal {
        uint length = m_pendingIndex.length;
        for (uint i = 0; i < length; ++i)
            if (m_pendingIndex[i] != 0)
                delete m_pending[m_pendingIndex[i]];
        delete m_pendingIndex;
    }
        
   	// FIELDS

    // the number of owners that must confirm the same operation before it is run.
    uint public m_required;
    // pointer used to find a free slot in m_owners
    uint public m_numOwners;
    
    // list of owners
    uint[256] m_owners;
    uint constant c_maxOwners = 250;
    // index on the list of owners to allow reverse lookup
    mapping(uint => uint) m_ownerIndex;
    // the ongoing operations.
    mapping(bytes32 => PendingState) m_pending;
    bytes32[] m_pendingIndex;
}

// inheritable "property" contract that enables methods to be protected by placing a linear limit (specifiable)
// on a particular resource per calendar day. is multiowned to allow the limit to be altered. resource that method
// uses is specified in the modifier.
contract daylimit is multiowned {

	// MODIFIERS

    // simple modifier for daily limit.
    modifier limitedDaily(uint _value) {
        if (underLimit(_value))
            _
    }

	// METHODS

    // constructor - stores initial daily limit and records the present day's index.
    function daylimit(uint _limit) {
        m_dailyLimit = _limit;
        m_lastDay = today();
    }
    // (re)sets the daily limit. needs many of the owners to confirm. doesn't alter the amount already spent today.
    function setDailyLimit(uint _newLimit) onlymanyowners(sha3(msg.data)) external {
        m_dailyLimit = _newLimit;
    }
    // (re)sets the daily limit. needs many of the owners to confirm. doesn't alter the amount already spent today.
    function resetSpentToday() onlymanyowners(sha3(msg.data)) external {
        m_spentToday = 0;
    }
    
    // INTERNAL METHODS
    
    // checks to see if there is at least `_value` left from the daily limit today. if there is, subtracts it and
    // returns true. otherwise just returns false.
    function underLimit(uint _value) internal onlyowner returns (bool) {
        // reset the spend limit if we're on a different day to last time.
        if (today() > m_lastDay) {
            m_spentToday = 0;
            m_lastDay = today();
        }
        // check to see if there's enough left - if so, subtract and return true.
        if (m_spentToday + _value >= m_spentToday && m_spentToday + _value < m_dailyLimit) {
            m_spentToday += _value;
            return true;
        }
        return false;
    }
    // determines today's index.
    function today() private constant returns (uint) { return now / 1 days; }

	// FIELDS

    uint public m_dailyLimit;
    uint m_spentToday;
    uint m_lastDay;
}

// interface contract for multisig proxy contracts; see below for docs.
contract multisig {

	// EVENTS

    // logged events:
    // Funds has arrived into the wallet (record how much).
    event Deposit(address from, uint value);
    // Single transaction going out of the wallet (record who signed for it, how much, and to whom it's going).
    event SingleTransact(address owner, uint value, address to, bytes data);
    // Multi-sig transaction going out of the wallet (record who signed for it last, the operation hash, how much, and to whom it's going).
    event MultiTransact(address owner, bytes32 operation, uint value, address to, bytes data);
    // Confirmation still needed for a transaction.
    event ConfirmationNeeded(bytes32 operation, address initiator, uint value, address to, bytes data);
    
    // FUNCTIONS
    
    // TODO: document
    function changeOwner(address _from, address _to) external;
    function execute(address _to, uint _value, bytes _data) external returns (bytes32);
    function confirm(bytes32 _h) returns (bool);
}

// usage:
// bytes32 h = Wallet(w).from(oneOwner).transact(to, value, data);
// Wallet(w).from(anotherOwner).confirm(h);
contract Wallet is multisig, multiowned, daylimit {

	// TYPES

    // Transaction structure to remember details of transaction lest it need be saved for a later call.
    struct Transaction {
        address to;
        uint value;
        bytes data;
    }

    // METHODS

    // constructor - just pass on the owner array to the multiowned and
    // the limit to daylimit
    function Wallet(address[] _owners, uint _required, uint _daylimit)
            multiowned(_owners, _required) daylimit(_daylimit) {
    }
    
    // kills the contract sending everything to `_to`.
    function kill(address _to) onlymanyowners(sha3(msg.data)) external {
        suicide(_to);
    }
    
    // gets called when no other function matches
    function() {
        // just being sent some cash?
        if (msg.value > 0)
            Deposit(msg.sender, msg.value);
    }
    
    // Outside-visible transact entry point. Executes transacion immediately if below daily spend limit.
    // If not, goes into multisig process. We provide a hash on return to allow the sender to provide
    // shortcuts for the other confirmations (allowing them to avoid replicating the _to, _value
    // and _data arguments). They still get the option of using them if they want, anyways.
    function execute(address _to, uint _value, bytes _data) external onlyowner returns (bytes32 _r) {
        // first, take the opportunity to check that we're under the daily limit.
        if (underLimit(_value)) {
            SingleTransact(msg.sender, _value, _to, _data);
            // yes - just execute the call.
            _to.call.value(_value)(_data);
            return 0;
        }
        // determine our operation hash.
        _r = sha3(msg.data, block.number);
        if (!confirm(_r) && m_txs[_r].to == 0) {
            m_txs[_r].to = _to;
            m_txs[_r].value = _value;
            m_txs[_r].data = _data;
            ConfirmationNeeded(_r, msg.sender, _value, _to, _data);
        }
    }
    
    // confirm a transaction through just the hash. we use the previous transactions map, m_txs, in order
    // to determine the body of the transaction from the hash provided.
    function confirm(bytes32 _h) onlymanyowners(_h) returns (bool) {
        if (m_txs[_h].to != 0) {
            m_txs[_h].to.call.value(m_txs[_h].value)(m_txs[_h].data);
            MultiTransact(msg.sender, _h, m_txs[_h].value, m_txs[_h].to, m_txs[_h].data);
            delete m_txs[_h];
            return true;
        }
    }
    
    // INTERNAL METHODS
    
    function clearPending() internal {
        uint length = m_pendingIndex.length;
        for (uint i = 0; i < length; ++i)
            delete m_txs[m_pendingIndex[i]];
        super.clearPending();
    }

	// FIELDS

    // pending transactions we have at present.
    mapping (bytes32 => Transaction) m_txs;
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"removeOwner","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"m_numOwners","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"resetSpentToday","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"addOwner","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"m_required","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_h","type":"bytes32"}],"name":"confirm","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_newLimit","type":"uint256"}],"name":"setDailyLimit","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"execute","outputs":[{"name":"_r","type":"bytes32"}],"type":"function"},{"constant":false,"inputs":[{"name":"_operation","type":"bytes32"}],"name":"revoke","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_newRequired","type":"uint256"}],"name":"changeRequirement","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_operation","type":"bytes32"},{"name":"_owner","type":"address"}],"name":"hasConfirmed","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"kill","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"name":"changeOwner","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"m_dailyLimit","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_daylimit","type":"uint256"}],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"}],"name":"Revoke","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"}],"name":"OwnerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newRequirement","type":"uint256"}],"name":"RequirementChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"SingleTransact","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"MultiTransact","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"initiator","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"ConfirmationNeeded","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052604051611120380380611120833981016040908152815160805160a0519190930180516001908101815533600160a060020a0316600381905560009081526101026020529384205592918190849084905b82518110156100db57828181518110156100025790602001906020020151600160a060020a0316600260005082600201610100811015610002570160009190558351600283019161010291869085908110156100025790602001906020020151600160a060020a0316815260200190815260200160002060005081905550600101610055565b8160006000508190555050505080610105600050819055506100ff62015180420490565b610107555050505061100b806101156000396000f3606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e1461015f5780634123cb6b146101875780635c52c2f5146101905780637065cb48146101ba578063746c9171146101e7578063797af627146101f0578063b20d30a914610203578063b61d27f614610230578063b75c7dc614610251578063ba51a6df14610280578063c2cf7326146102ad578063cbf0b0c0146102eb578063f00d4b5d14610318578063f1736d861461034a575b61035460003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610354600435600060003660405180838380828437820191505092505050604051809103902061064e815b600160a060020a03331660009081526101026020526040812054818082811415610c7a57610dd3565b6103566004355b600160a060020a03811660009081526101026020526040812054115b919050565b61035660015481565b61035460003660405180838380828437820191505092505050604051809103902061079f81610136565b6103546004356000366040518083838082843782019150509250505060405180910390206105c681610136565b61035660005481565b6103566004355b600081610a3b81610136565b61035460043560003660405180838380828437820191505092505050604051809103902061079381610136565b6103566004803590602480359160443591820191013560006107be33610166565b610354600435600160a060020a03331660009081526101026020526040812054908082811415610368576103e7565b61035460043560003660405180838380828437820191505092505050604051809103902061070d81610136565b610356600435602435600082815261010360209081526040808320600160a060020a038516845261010290925282205482818114156107665761078a565b6103546004356000366040518083838082843782019150509250505060405180910390206107ad81610136565b610354600435602435600060003660405180838380828437820191505092505050604051809103902061047281610136565b6103566101055481565b005b60408051918252519081900360200190f35b50506000828152610103602052604081206001810154600284900a9290831611156103e75780546001828101805492909101835590839003905560408051600160a060020a03331681526020810186905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b50505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a1505b505050565b156103e75761048083610166565b1561048b575061046d565b600160a060020a0384166000908152610102602052604081205492508214156104b4575061046d565b6103ed5b6101045460005b81811015610f1e57610104805461010891600091849081101561000257600080516020610feb8339815191520154825250602091909152604081208054600160a060020a0319168155600181810183905560028281018054858255939493909281161561010002600019011604601f819010610fa357505b5050506001016104bf565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005055600154600160a060020a03831660008181526101026020908152604091829020939093558051918252517f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3929181900390910190a15b505b50565b156105c1576105d482610166565b156105df57506105c3565b6105e76104b8565b60015460fa90106105fc576105fa610611565b505b60015460fa901061054257506105c3565b6106cb5b600060015b600154811015610a37575b600154811080156106415750600281610100811015610002570154600014155b15610ddb57600101610621565b1561046d57600160a060020a03831660009081526101026020526040812054925082141561067c57506105c1565b600160016000505403600060005054111561069757506105c1565b600060028361010081101561000257508301819055600160a060020a0384168152610102602052604081205561060d6104b8565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b156105c15760015482111561072257506105c3565b600082905561072f6104b8565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001820154600282900a90811660001415610785576000935061078a565b600193505b50505092915050565b156105c1575061010555565b156105c35760006101065550565b156105c15781600160a060020a0316ff5b156109ff576107d2846000610eb533610166565b15610891577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843782019150509250505060006040518083038185876185025a03f150600093506109ff92505050565b6000364360405180848480828437820191505082815260200193505050506040518091039020905080506108c4816101f7565b1580156108e7575060008181526101086020526040812054600160a060020a0316145b156109ff5760008181526101086020908152604082208054600160a060020a0319168817815560018181018890556002918201805481865294849020909491821615610100026000190190911691909104601f908101929092048101918591908790839010610a075760ff198135168380011785555b506109799291505b80821115610a375760008155600101610965565b50507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b8280016001018555821561095d579182015b8281111561095d578235826000505591602001919060010190610a19565b5090565b15610abe5760008381526101086020526040812054600160a060020a031614610abe5760408051600091909120805460018281015460029384018054600160a060020a0394909416959194909391928392859291811615610100026000190116048015610aef5780601f10610ac457610100808354040283529160200191610aef565b50919050565b820191906000526020600020905b815481529060010190602001808311610ad257829003601f168201915b505091505060006040518083038185876185025a03f1505050600084815261010860209081526040918290208054600180830154855133600160a060020a0381811683529682018c9052968101829052929094166060830181905260a06080840181815260029586018054948516156101000260001901909416959095049084018190527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a97508a95949193919060c083019084908015610bf15780601f10610bc657610100808354040283529160200191610bf1565b820191906000526020600020905b815481529060010190602001808311610bd457829003601f168201915b5050965050505050505060405180910390a16000838152610108602052604081208054600160a060020a0319168155600181810183905560028281018054858255939493909281161561010002600019011604601f819010610c5c57505b5050506001915050610182565b601f016020900490600052602060002090810190610c4f9190610965565b60008581526101036020526040812080549093501415610d02576000805483556001838101919091556101048054918201808255828015829011610cd157818360005260206000209182019101610cd19190610965565b50505060028301819055610104805487929081101561000257600091909152600080516020610feb83398151915201555b506001810154600283900a90811660001415610dd35760408051600160a060020a03331681526020810187905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1815460019011610dc0576000858152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610feb833981519152929092018190558082556001828101829055600292909201559450610dd39050565b8154600019018255600182018054821790555b505050919050565b5b60018054118015610dfe57506001546002906101008110156100025701546000145b15610e125760018054600019019055610ddc565b60015481108015610e355750600154600290610100811015610002570154600014155b8015610e4f57506002816101008110156100025701546000145b15610eb057600154600290610100811015610002578101549082610100811015610002579090016000505580610102600060028361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b610616565b156101825761010754610ecb5b62015180420490565b1115610ee457600061010655610edf610ec2565b610107555b6101065480830110801590610f00575061010554610106548301105b15610f1657506101068054820190556001610182565b506000610182565b6105c16101045460005b81811015610fc15761010480548290811015610002576000918252600080516020610feb833981519152015414610f9b57610104805461010391600091849081101561000257600080516020610feb83398151915201548252506020919091526040812081815560018101829055600201555b600101610f28565b601f0160209004906000526020600020908101906105379190610965565b610104805460008083559190915261046d90600080516020610feb83398151915290810190610965564c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe

    Constructor Arguments (ABI-encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000001db3439a222c519ab44bb1144fc28167b4fa6ee6000000000000000000000000b2c1b92f4bed7a173547cc601fb73a1254d10d260000000000000000000000000029218e1dab069656bfb8a75947825e7989b987000000000000000000000000cee96fd34ec793b05ee5b232b0110eac0cc3327e000000000000000000000000b274363d5971b60b6aca27d6f030355e9aa2cf23000000000000000000000000c947faed052820f1ad6f4dda435e684a2cd06bb4000000000000000000000000ae90d602778ed98478888fa2756339dd013e34c1000000000000000000000000e578fb92640393b95b53197914bd560b7bc2aac8000000000000000000000000a1e9989b4ef5d7fa12235dc9c7524895d68ba662000000000000000000000000127ac03acfad15f7a49dd037e52d5507260e14250000000000000000000000000037a6b811ffeb6e072da21179d11b1406371c63

-----Decoded View---------------
Found 15 constructor arguments :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [4] : 0000000000000000000000001db3439a222c519ab44bb1144fc28167b4fa6ee6
Arg [5] : 000000000000000000000000b2c1b92f4bed7a173547cc601fb73a1254d10d26
Arg [6] : 0000000000000000000000000029218e1dab069656bfb8a75947825e7989b987
Arg [7] : 000000000000000000000000cee96fd34ec793b05ee5b232b0110eac0cc3327e
Arg [8] : 000000000000000000000000b274363d5971b60b6aca27d6f030355e9aa2cf23
Arg [9] : 000000000000000000000000c947faed052820f1ad6f4dda435e684a2cd06bb4
Arg [10] : 000000000000000000000000ae90d602778ed98478888fa2756339dd013e34c1
Arg [11] : 000000000000000000000000e578fb92640393b95b53197914bd560b7bc2aac8
Arg [12] : 000000000000000000000000a1e9989b4ef5d7fa12235dc9c7524895d68ba662
Arg [13] : 000000000000000000000000127ac03acfad15f7a49dd037e52d5507260e1425
Arg [14] : 0000000000000000000000000037a6b811ffeb6e072da21179d11b1406371c63


 

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.