Sponsored Link:   SHIFT.cash - smart-contract based car title lending platform, 30 billion market, 35+ employees. Join NOW.
  Latest 25 txns from a total Of 520 transactions View All

TxHash Age From To Value [TxFee]
0x08fecf142be21ac979508e813eb7be07b91d1ca4cf5df93977618356856a997083 days 49 mins ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.00041195
0x670be2d8a2488dcac01131bebe81f6bd4ce39c4875075c11de0074b4f8f1519583 days 49 mins ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.000411598
0x70292edf2e1cff353e0d674e452bc2879e04c4d51c78947e269e4475a57d89f883 days 50 mins ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.00041195
0xe1549a73b7b2276f7843e9671bcb39606aa1889488315cddf06b1a17dbbadb2f83 days 50 mins ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.00041195
0xf1afc6f517a78128cccf4c784222f90559374580a6070973e5ce2e69784dbae683 days 51 mins ago0xf9ffba430e290c7fa4be61e3a2f905f6c99dd616  IN   TheDaoCurator0 Ether0.000678711
0xc6eca3ae7f6f3fd982cb5bdf502e9d677bfcb0e2a7057f8ae4b5e1becfac5518112 days 12 hrs ago0x18788edabbabc203bc7c157518dc4b2d4529f884  IN   TheDaoCurator0 Ether0.0000024412
0xf1daa07e61ca8e3615fbfcbc589a9f09827c7ae55e4440a32c7fe3b161e291e1115 days 1 hr ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184585
0xa392e3a8190db318f679896f44ecaad0ad21115327484e34a7f20e49790bdd91115 days 1 hr ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184265
0xb7ff7f95c107fdb8c2d494556a76e329522f6fdb15c5314b0e289176052184c1115 days 1 hr ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184585
0x95f57d4aa2780e2b6dfe5e9f62c663a1d38c4bfa42e91c3208d4b58f3c7f0f4a115 days 1 hr ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184585
0xb9e09efa2c1a472b4868da5ad634dcb6da2f6533dc71143d25864d35402ee86b115 days 1 hr ago0x8e8a24cba9f2702243ad65bada9b0e8cbc62fd96  IN   TheDaoCurator0 Ether0.000184585
0x6c4ebfad46b3672fd5a6dcb7998fac7ec7f4eb58af52512de00a9cf035bf6734117 days 7 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.000174051
0x472f4dcde253a9388a2f3ed4a08b98be23c10b77e09610e550e33ebe3a58c893117 days 7 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.000174051
0xa5d67a6613d4ae23853024ec9ec9902883b001b2709dc458defa702e6c5c476e117 days 7 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.000174243
0x8ee4094137866585b8979fc18cb5a00a76e17876a00718a6fb28e0a249e551f8117 days 7 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.000184097
0x4c8b68bd9faa94a48f972c87872a76361d9b3de326f25cc2d2ea00e177a82662139 days 4 hrs ago0x2ff4d83d13fb20b88614fbe38aaceaadad9d53fc  IN   TheDaoCurator0 Ether0.00019632
0xba6e9559730e405ac33691f432ae3d435dcdffe8dc8c21680634440abd854efc139 days 4 hrs ago0x2ff4d83d13fb20b88614fbe38aaceaadad9d53fc  IN   TheDaoCurator0 Ether0.000189408
0x91dd86913ea4879b38101d70ea958ea565cb3655a098a094b83de5bd41e6f7ff139 days 4 hrs ago0x2ff4d83d13fb20b88614fbe38aaceaadad9d53fc  IN   TheDaoCurator0 Ether0.00019604
0xa6e30e58a903d4cfadad28a8cdb3527ad651feaffb9f44e3ed6c7e2450c9cc2f139 days 4 hrs ago0x2ff4d83d13fb20b88614fbe38aaceaadad9d53fc  IN   TheDaoCurator0 Ether0.000189896
0x97a4efdd78f251901183f030fff2c8051431b0bb3b01a7f99329a3c354608e18156 days 20 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.0010774068
0xffaa61af56e61e4015fed20e8e7d251ced175202184901c40e5365e8446e6a62215 days 10 hrs ago0xca0a9abc107f146ff41e92e5f8e29656cc6c98a6  IN   TheDaoCurator0 Ether0.000498477
0xbcbc596237de84322cbd67f03bc1feddc703282343b217c0b680864c855156cb215 days 11 hrs ago0xca0a9abc107f146ff41e92e5f8e29656cc6c98a6  IN   TheDaoCurator0 Ether0.00050862
0x702b3ad62683f662fee5c064cfe48d9360e57947c078d2f31a80a0dc6814e959215 days 11 hrs ago0xca0a9abc107f146ff41e92e5f8e29656cc6c98a6  IN   TheDaoCurator0 Ether0.000501165
0x4231c1481968027b02f04d84868a2a5a59126a272db552bfbe62bf1ea136c450220 days 2 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.005153904
0xa96d0790cc70a79e3c62e74bf5fdabe9256aef69d35e572f8401f30840024241225 days 21 hrs ago0x839395e20bbb182fa440d08f850e6c7a8f6f0780  IN   TheDaoCurator0 Ether0.007546788
[ 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
0x2eb806e801f344e850c8db68d5c161700bc7be4d9491f337fb4e06f50ffd5cb1498562923 days 18 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965263.90697347 Ether
0xfaadafe7f14681d156c4d17dc534c23213b594ac4c9c05e269b05562aba2b0cb483878149 days 21 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.0001 Ether
0x1fce5143eea84c56e4d1ffffd5147cfe00f53fd5cb4f7fe7d28591f40950198d483758050 days 2 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.033333 Ether
0x3d374c0d3e4480a053f723fb27cb29c57120ddc4f776ea11e9a94b1a3e08bc5e479524257 days 6 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.160016607433487229 Ether
0x08fecf142be21ac979508e813eb7be07b91d1ca4cf5df93977618356856a9970464600483 days 49 mins ago0xda4a4626d3e16e094de3225a751aab7128e965260x215832200f0e6ddac1fb9fa359d468691a3f1a1b4.2 Ether
0x670be2d8a2488dcac01131bebe81f6bd4ce39c4875075c11de0074b4f8f15195464600383 days 49 mins ago0xda4a4626d3e16e094de3225a751aab7128e965260x2320191986e10b57b06a9bcc9e1ba7649282a55e11.9 Ether
0x70292edf2e1cff353e0d674e452bc2879e04c4d51c78947e269e4475a57d89f8464600183 days 50 mins ago0xda4a4626d3e16e094de3225a751aab7128e965260x59b2347a21e94601e0fe74cac5105dee46c8731837.6826086956522 Ether
0xe1549a73b7b2276f7843e9671bcb39606aa1889488315cddf06b1a17dbbadb2f464600183 days 50 mins ago0xda4a4626d3e16e094de3225a751aab7128e965260x8c6a6fccf74e8e47a2687eb03d3b201bf3d9361c17.5 Ether
0xb0e623abd59df40e28919aa730e223cbba11ed9eef07341a884f91f519848aef4227814172 days 3 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.0015 Ether
0x1e7f25df7512cb013ed351513a3945142ef3e153fb65b64e42bb7ac29f90e8394142000193 days 23 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.1 Ether
0xc831449f727d5205b3345841286007cc0e47317aea50929a3b69eeb68b5a82ec4045352216 days 1 hr ago0xd1c37dffd4ef36867c5bd7e59566358ea3d21e630xda4a4626d3e16e094de3225a751aab7128e965260.002 Ether
0x930624fc58552443354f4d942e28908de50f9353b3a2828d5311fd42f1ddc69b4045269216 days 2 hrs ago0xd1c37dffd4ef36867c5bd7e59566358ea3d21e630xda4a4626d3e16e094de3225a751aab7128e965260.01 Ether
0x96baefa11e18cfdd94fae186ff00aab3860f559200f523ee2a880471f4fafa753944700236 days 23 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e9652612.93 Ether
0x90cd121e01b9d77491459da14323ffd2d6ab3f5bc00904a5803ee62e3906e9013878346250 days 2 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.9500000001 Ether
0x3cd5b2ea487b4dd3323f17ff3f3bd16d98bb4ce9f4b5141cbc330f04effc77813854241254 days 15 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965261 Ether
0xe256ca729f0f2e5dd151ea05647b89447cdfce65dae5cc38eab071e1e2d39fe63841933257 days 1 min ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.99 Ether
0xe982bc80aea02a662a4a6d273d34bdd7e6b451c1f88237d7072301a06cfc792e3829257259 days 10 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.2 Ether
0x172763ebb9e6f7d2cc2ea99f841c28b35629e8edec7f986df575e2ede76635233741941275 days 15 hrs ago0xda4a4626d3e16e094de3225a751aab7128e965260xf90104ca5d09e641af4bc32bcf7993fbc13cacfe5.0880228909 Ether
0x337586c95ab5bdf0631f89c0537800c0a6decf5bde447567f8f9ffcd5ca70a2b3734676276 days 23 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.000333333333333333 Ether
0xdbd18134c8c7c41ff1ebb357d9cfb0bc126043c8ff481122a9b184de1dd1d1ed3709874281 days 13 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965260.1001 Ether
0x46d4661ca3ec9f560dd7fc04c8c649ad6d458bd47805f709b9a0a621ecb2239d3607060299 days 19 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965266.08802289090909091 Ether
0x1f75a5ab098a19ffac7f7017a9d9a7d3d33b046dd9ab22e830b9e5ce2ac605f93599397301 days 3 hrs ago0xda4a4626d3e16e094de3225a751aab7128e965260xe77febabdf080f0f5dca1d3f5766f2a79c0ffa7c385.046 Ether
0xbec7bfce2967b3cd114c1c5b12a76d50993d0ae7016473f3a64b3b05a00334df3577258304 days 23 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e96526385.056 Ether
0xd87affd8c547939a2349389a62afb9eab9a2db816d4ef2c160ec83532112f6f53577041304 days 23 hrs ago0xda4a4626d3e16e094de3225a751aab7128e965260xe54e1456f591642bbc3f2b8c158f51a62e70c1b325 Ether
0x4415445259faeaf7df8b67e88d586937c712c3f26a293044a0a0c5ccb1a7ee083554504308 days 20 hrs ago0xbf4ed7b27f1d666546e30d74d50d173d20bca7540xda4a4626d3e16e094de3225a751aab7128e965261.401229508196721311 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.