Sponsored Link:   Ambrosus Main-Net Launching: Stake AMB in Masternodes and get regular rewards for maintaining network integrity.
Contract Overview
Balance: 0.094064412788638664 Ether
Ether Value: $45.11 (@ $479.53/ETH)
Transactions: 112 txns
 Latest 25 txns from a total Of 112 transactions

TxHash Age From To Value [TxFee]
0x1cbb11d2a2eef5ab0b352ce0e32a2529eef6643484451d74214a85c15546d6795 days 19 hrs ago0xa2b06657ac429196c321c4756967c79a213e955d  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.00045432
0xad861d7fd0cc7a1146014c7e7ffd6dc52aa221331fe129d1988c21fef91543bb6 days 21 hrs ago0xb2556a76da6e5b99e82fc156f8faad2778225161  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000145578
0xea03a9e8cd4c29457dd426dd35a6f739ad003782c099b1484e9cd3a4d963cbea7 days 9 hrs ago0x736af44d9c3cad2996dfb1a476da18225eeb1945  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.00036931
0xc4d223a421432ca9225fc9f808fd66516f9bbd99a29b77e98e323fb6dd5f18577 days 10 hrs ago0xf6a7131693901fc8bd64fe73a31d5e23c310dc31  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.002796556
0x39e8f48dc48d7203cf540beeafd6da4f7061c34066156cbe466bb916ba9fd73917 days 6 hrs ago0x736af44d9c3cad2996dfb1a476da18225eeb1945  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000037461
0xfd464687cf1aaaa034730f5cd7d877ff86ffe02ff18a921fa31c096563f763d317 days 11 hrs ago0xf6a7131693901fc8bd64fe73a31d5e23c310dc31  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000110793
0x4ddfc0d227768b551fcbff7f23929ed51e464363c5f2cb94b9fa861535848e9a17 days 16 hrs ago0xa2b06657ac429196c321c4756967c79a213e955d  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.00174148
0xfd46f59bdc3c99671e2b46cbf5707c802b3a8954a114d58bd24a3e2abe9c91eb17 days 16 hrs ago0xa2b06657ac429196c321c4756967c79a213e955d  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.00184195
0xe7300fec369088285eabec24e942bc67f39db9573558729ee58c476ddf6fcb6470 days 12 hrs ago0xf6a7131693901fc8bd64fe73a31d5e23c310dc31  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000074922
0x8bed9f10aeb9a8d433176c19669f12bba824ba028cd23ebb0d9d41df1c918a2c70 days 12 hrs ago0x736af44d9c3cad2996dfb1a476da18225eeb1945  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000110793
0x06077328bf76e72de9b7c3b673b780f0fe78a0dd9a2d79b7123c5a11fe50de8e70 days 17 hrs ago0xa2b06657ac429196c321c4756967c79a213e955d  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.00184259
0x25cb85c9c37387f81f8d7f28eb915ab723ae93244eb961159074c2cba65ab2f9101 days 8 hrs ago0xf6a7131693901fc8bd64fe73a31d5e23c310dc31  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000037461
0x435ea48332c70d9e218dea23b4cf8e77eecacf0ef0a7d86dd8d6d65f0a6dba63101 days 19 hrs ago0x736af44d9c3cad2996dfb1a476da18225eeb1945  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000036931
0xa3e2888f1e2f993c298f41dfac7eccd9d41f837d34d22872f3c76a8c8b82fc14102 days 8 hrs ago0xa2b06657ac429196c321c4756967c79a213e955d  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.00184195
0x3eb23be2ce98c72ac24398dc8f57665c2a50c5557094136826a10889daba8d47118 days 7 hrs ago0x0fb0c3599c9877a5ba1d1796a4bdd735dcd393af  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000037461
0x85b45a709551a3bd9d4ae9b6349a133c5b6c746b840c2b1766272169d0ebfb5d118 days 8 hrs ago0xf6a7131693901fc8bd64fe73a31d5e23c310dc31  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000036931
0xea41826d7b6df578c4badfbabff4ef24bcd877dc274cd7ae8fc6581276353ed8118 days 10 hrs ago0xa2b06657ac429196c321c4756967c79a213e955d  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.00184259
0x30e43c01fc4e4f671f02f12db52650d709a9081aaf2c620df2db36b460f30423136 days 15 hrs ago0x736af44d9c3cad2996dfb1a476da18225eeb1945  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000074858
0xd4966922820be27deb29916e3c51b4947d98618ec1b0046574d2122cb303c547136 days 16 hrs ago0xf6a7131693901fc8bd64fe73a31d5e23c310dc31  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000073734
0xa60b87cadd3064ded7d5d9eb69f8da6fcfc694e66c8c7c6a8978c8b4da288bd4136 days 17 hrs ago0xa2b06657ac429196c321c4756967c79a213e955d  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.00184259
0xe69f576c3c26525d5d9eebf775ad728ebf7f5668e9250bac3a35b2310f21adc1138 days 21 hrs ago0x736af44d9c3cad2996dfb1a476da18225eeb1945  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000074922
0x2c20c028152674a4bdf50d22e0c7cce556a5c43e1f91981ce702381edf009d26139 days 5 hrs ago0xf6a7131693901fc8bd64fe73a31d5e23c310dc31  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.000073862
0xe7e926e344a3989b10b3b9665b8706a95eccadc9026e2d2da562da55b59ecbcc139 days 5 hrs ago0xf6a7131693901fc8bd64fe73a31d5e23c310dc31  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.0002
0xfd68540155852516e4c9d200363e9f0f2a6671499abcd4c031135f0d9fff71e8139 days 7 hrs ago0x736af44d9c3cad2996dfb1a476da18225eeb1945  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.0002
0xef24d54606560913448011f238e68fc2e1e64cb48a62d834ddaffe1650b4074a139 days 8 hrs ago0xa2b06657ac429196c321c4756967c79a213e955d  IN   0xf4702b0918a8a89dfc38459ce42198834818f26b0 Ether0.001474072
[ 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
0x1cbb11d2a2eef5ab0b352ce0e32a2529eef6643484451d74214a85c15546d67959437855 days 19 hrs ago0xf4702b0918a8a89dfc38459ce42198834818f26b0xb2556a76da6e5b99e82fc156f8faad27782251611 Ether
0x39e8f48dc48d7203cf540beeafd6da4f7061c34066156cbe466bb916ba9fd739587705117 days 6 hrs ago0xf4702b0918a8a89dfc38459ce42198834818f26b0xcb2e793d3400ba7f34884b9b62212269c5171d1b5.8 Ether
0x87c1dd56c43527370da9d8940bb6777f4a8962259cf99461e8db074cd49810eb586927718 days 14 hrs ago0x37e3efe76ee6cec50559bc07565eaf36ddc054670xf4702b0918a8a89dfc38459ce42198834818f26b6.88 Ether
0xe7300fec369088285eabec24e942bc67f39db9573558729ee58c476ddf6fcb64557268670 days 12 hrs ago0xf4702b0918a8a89dfc38459ce42198834818f26b0xa54389e9d1044ba88dab9a8c8fa43e2fbfae63592.18 Ether
0x5e6471bd6ae166eba8be554b6777f2852496c1a8afef7c2e1f5ff4783a8a5ac1554065176 days 3 hrs ago0x37e3efe76ee6cec50559bc07565eaf36ddc054670xf4702b0918a8a89dfc38459ce42198834818f26b0.001 Ether
0x25cb85c9c37387f81f8d7f28eb915ab723ae93244eb961159074c2cba65ab2f95392879101 days 8 hrs ago0xf4702b0918a8a89dfc38459ce42198834818f26b0x33f200eec1a4aea5184ea54b7d4c12570e9794b33.67 Ether
0x820dfe6dc156a13d514258f8443151e80c7fc97ff9c247dad794b9a393bc90875391792101 days 12 hrs ago0x37e3efe76ee6cec50559bc07565eaf36ddc054670xf4702b0918a8a89dfc38459ce42198834818f26b0.2 Ether
0x3eb23be2ce98c72ac24398dc8f57665c2a50c5557094136826a10889daba8d475291271118 days 7 hrs ago0xf4702b0918a8a89dfc38459ce42198834818f26b0xa54389e9d1044ba88dab9a8c8fa43e2fbfae63594 Ether
0xa6484403a8d1e60a461a3465e6776c1a8d760a618c5f3b026319fef2828c35f05285018119 days 8 hrs ago0x37e3efe76ee6cec50559bc07565eaf36ddc054670xf4702b0918a8a89dfc38459ce42198834818f26b0.007 Ether
0x7dfcafca7814ea867d526b85921044a383edae00aefdbed14f128306069394025284969119 days 8 hrs ago0x37e3efe76ee6cec50559bc07565eaf36ddc054670xf4702b0918a8a89dfc38459ce42198834818f26b0.009 Ether
0x76db8ee6c522032b621e3912d1731b3de7d23f83c90298253dd87223ae44a15a5284919119 days 8 hrs ago0x37e3efe76ee6cec50559bc07565eaf36ddc054670xf4702b0918a8a89dfc38459ce42198834818f26b0.009 Ether
0xa6dc2612195d64a5e2e7e24a60d309331fa21af9a533ab861be8345d24f242735212655131 days 15 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.0591 Ether
0xcf12edfe1c56a99dd0d4a43eac3d315cf528138acef98ef914c8ff26905c1a2a5184959136 days 7 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.001117 Ether
0x30e43c01fc4e4f671f02f12db52650d709a9081aaf2c620df2db36b460f304235182942136 days 15 hrs ago0xf4702b0918a8a89dfc38459ce42198834818f26b0x6cc54052082604263926ff0de0d780162c6d1f486 Ether
0x69e90e03944edd2b60cc85fc5f259dcfc05cc5d873f6840af2c83e5ed66b06585175643137 days 21 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.016 Ether
0xe69f576c3c26525d5d9eebf775ad728ebf7f5668e9250bac3a35b2310f21adc15169772138 days 21 hrs ago0xf4702b0918a8a89dfc38459ce42198834818f26b0x6cc54052082604263926ff0de0d780162c6d1f4816 Ether
0x7c02f4d2060c6a3f15994cb23f8c57d89da6c653f1a103c283e9f3ca497b422d5159325140 days 16 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.02 Ether
0x403e62e2c10a8cd72a88e19c311efae543f9e7d1c66c759d173a40235c2cef085094053151 days 17 hrs ago0xf4702b0918a8a89dfc38459ce42198834818f26b0xa54389e9d1044ba88dab9a8c8fa43e2fbfae63594.3 Ether
0x9e7064fb1c9ac3c44119536d83d9eb4f209b85958181a9dc3efe3dd91cf8d1b65076350154 days 17 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.0497210768857628 Ether
0xaea2cfe2f64adc63524d78ce3666be426eb6759bd596d0535a9019f5693748505039109160 days 23 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.042414 Ether
0x537f84f1d6cb1e87e274cab297f63eb13ee5ad45e172fe0a08bf4975812731ad5036571161 days 9 hrs ago0xf4702b0918a8a89dfc38459ce42198834818f26b0xa54389e9d1044ba88dab9a8c8fa43e2fbfae63597.932 Ether
0x98d0e81d87c6f5fe2ac4c2e02162148ac85f4bdaa3f7951eaf816a700e81fa555023455163 days 14 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.05 Ether
0x64a29fcb0f39d7f772d142bb59ce235d7dfda8baf7e5b3c74757863451161fd94999642167 days 15 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.199 Ether
0xb5de2f34eaeeb36d374dbef10b34d8c07edeffec3271b55c36da1267f41d3a364987255169 days 17 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.250721986461013 Ether
0x467124d377edac837c8f35a6a4af9c9dafefb279bdbeb3392f8252905b186faf4971892172 days 7 hrs ago0x28c0034afb0723c298ec0aec277c8f2418098f240xf4702b0918a8a89dfc38459ce42198834818f26b0.075 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: Wallet
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.11;
//sol Wallet
// Multi-sig, daily-limited account proxy/wallet.
// @authors:
// Gav Wood <g@ethdev.com>
// 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 six 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);
    }

    // Gets an owner by 0-indexed position (using numOwners as the count)
    function getOwner(uint ownerIndex) external constant returns (address) {
        return address(m_owners[ownerIndex + 1]);
    }

    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;
        return !(pending.ownersDone & ownerIndexBit == 0);
    }

    // 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 {
        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;
    }
    // resets the amount already spent today. needs many of the owners to confirm.
    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.
        // overflow protection                    // dailyLimit check
        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 public m_spentToday;
    uint public 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

    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).execute(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() payable {
        // just being sent some cash?
        if (msg.value > 0)
            Deposit(msg.sender, msg.value);
    }

    // Outside-visible transact entry point. Executes transaction 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":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"m_numOwners","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m_lastDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resetSpentToday","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"m_spentToday","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"m_required","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_h","type":"bytes32"}],"name":"confirm","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newLimit","type":"uint256"}],"name":"setDailyLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"execute","outputs":[{"name":"_r","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operation","type":"bytes32"}],"name":"revoke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newRequired","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_operation","type":"bytes32"},{"name":"_owner","type":"address"}],"name":"hasConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ownerIndex","type":"uint256"}],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"m_dailyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_daylimit","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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
6060604052341561000f57600080fd5b60405161132e38038061132e833981016040528080518201919060200180519190602001805191508190508383600082516001908101815533600160a060020a031660038190556000908152610102602052604081209190915590505b82518110156100e75782818151811061008157fe5b90602001906020020151600160a060020a0316600282810161010081106100a457fe5b01556002810161010260008584815181106100bb57fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205560010161006c565b50600055506101058190556101076401000000006110b161011582021704565b610107555061011e92505050565b62015180420490565b6112018061012d6000396000f3006060604052600436106100fb5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663173825d9811461014b5780632f54bf6e1461016a5780634123cb6b1461019d57806352375093146101c25780635c52c2f5146101d5578063659010e7146101e85780637065cb48146101fb578063746c91711461021a578063797af6271461022d578063b20d30a914610243578063b61d27f614610259578063b75c7dc614610288578063ba51a6df1461029e578063c2cf7326146102b4578063c41a360a146102d6578063cbf0b0c014610308578063f00d4b5d14610327578063f1736d861461034c575b6000341115610149577fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3334604051600160a060020a03909216825260208201526040908101905180910390a15b005b341561015657600080fd5b610149600160a060020a036004351661035f565b341561017557600080fd5b610189600160a060020a0360043516610446565b604051901515815260200160405180910390f35b34156101a857600080fd5b6101b0610467565b60405190815260200160405180910390f35b34156101cd57600080fd5b6101b061046d565b34156101e057600080fd5b610149610474565b34156101f357600080fd5b6101b06104aa565b341561020657600080fd5b610149600160a060020a03600435166104b1565b341561022557600080fd5b6101b06105a4565b341561023857600080fd5b6101896004356105aa565b341561024e57600080fd5b6101496004356107c8565b341561026457600080fd5b6101b060048035600160a060020a03169060248035916044359182019101356107fb565b341561029357600080fd5b6101496004356109f0565b34156102a957600080fd5b610149600435610a9a565b34156102bf57600080fd5b610189600435600160a060020a0360243516610b19565b34156102e157600080fd5b6102ec600435610b6e565b604051600160a060020a03909116815260200160405180910390f35b341561031357600080fd5b610149600160a060020a0360043516610b89565b341561033257600080fd5b610149600160a060020a0360043581169060243516610bc1565b341561035757600080fd5b6101b0610cc1565b6000803660405180838380828437820191505092505050604051809103902061038781610cc8565b1561044157600160a060020a0383166000908152610102602052604090205491508115156103b457610441565b600180540360005411156103c757610441565b600060028361010081106103d757fe5b0155600160a060020a038316600090815261010260205260408120556103fb610e27565b610403610ea8565b7f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da83604051600160a060020a03909116815260200160405180910390a15b505050565b600160a060020a03811660009081526101026020526040812054115b919050565b60015481565b6101075481565b60003660405180838380828437820191505092505050604051809103902061049b81610cc8565b156104a7576000610106555b50565b6101065481565b6000366040518083838082843782019150509250505060405180910390206104d881610cc8565b156105a0576104e682610446565b156104f0576105a0565b6104f8610e27565b60015460fa901061050b5761050b610ea8565b60015460fa901061051b576105a0565b60018054810190819055600160a060020a03831690600290610100811061053e57fe5b0155600154600160a060020a0383166000908152610102602052604090819020919091557f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c390839051600160a060020a03909116815260200160405180910390a15b5050565b60005481565b6000816105b681610cc8565b156107c25760008381526101086020526040902054600160a060020a0316156107c257600083815261010860205260409081902080546001820154600160a060020a03909116929091600201905180828054600181600116156101000203166002900480156106665780601f1061063b57610100808354040283529160200191610666565b820191906000526020600020905b81548152906001019060200180831161064957829003601f168201915b505091505060006040518083038185876187965a03f15050506000848152610108602052604090819020600181015481547fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a945033938893600160a060020a03909216916002019051600160a060020a03808716825260208201869052604082018590528316606082015260a0608082018181528354600261010060018316150260001901909116049183018290529060c08301908490801561076a5780601f1061073f5761010080835404028352916020019161076a565b820191906000526020600020905b81548152906001019060200180831161074d57829003601f168201915b5050965050505050505060405180910390a1600083815261010860205260408120805473ffffffffffffffffffffffffffffffffffffffff1916815560018101829055906107bb60028301826110bb565b5050600191505b50919050565b6000366040518083838082843782019150509250505060405180910390206107ef81610cc8565b156105a0575061010555565b600061080633610446565b156109e85761081484610fbe565b156108ca577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd0043385878686604051600160a060020a038087168252602082018690528416604082015260806060820181815290820183905260a082018484808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843782019150509250505060006040518083038185876187965a03f150600093506109e892505050565b6000364360405180848480828437909101928352505060200191506040905051809103902090506108fa816105aa565b15801561091d575060008181526101086020526040902054600160a060020a0316155b156109e857600081815261010860205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387161781556001810185905561096c9060020184846110ff565b507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32813386888787604051868152600160a060020a038087166020830152604082018690528416606082015260a06080820181815290820183905260c08201848480828437820191505097505050505050505060405180910390a15b949350505050565b600160a060020a033316600090815261010260205260408120549080821515610a1857610a94565b50506000828152610103602052604081206001810154600284900a929083161115610a94578054600190810182558101805483900390557fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b3385604051600160a060020a03909216825260208201526040908101905180910390a15b50505050565b600036604051808383808284378201915050925050506040518091039020610ac181610cc8565b156105a057600154821115610ad5576105a0565b6000829055610ae2610e27565b7facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da8260405190815260200160405180910390a15050565b600082815261010360209081526040808320600160a060020a038516845261010290925282205482811515610b515760009350610b65565b8160020a9050808360010154166000141593505b50505092915050565b60006002600183016101008110610b8157fe5b015492915050565b600036604051808383808284378201915050925050506040518091039020610bb081610cc8565b156105a05781600160a060020a0316ff5b60008036604051808383808284378201915050925050506040518091039020610be981610cc8565b15610a9457610bf783610446565b15610c0157610a94565b600160a060020a038416600090815261010260205260409020549150811515610c2957610a94565b610c31610e27565b600160a060020a0383166002836101008110610c4957fe5b0155600160a060020a038085166000908152610102602052604080822082905591851681528190208390557fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c908590859051600160a060020a039283168152911660208201526040908101905180910390a150505050565b6101055481565b600160a060020a033316600090815261010260205260408120548180821515610cf057610e1f565b60008581526101036020526040902080549092501515610d4f57600080548355600180840191909155610104805491610d2b9190830161117d565b6002830181905561010480548792908110610d4257fe5b6000918252602090912001555b8260020a90508082600101541660001415610e1f577fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda3386604051600160a060020a03909216825260208201526040908101905180910390a1815460019011610e0c576000858152610103602052604090206002015461010480549091908110610dd557fe5b6000918252602080832090910182905586825261010390526040812081815560018082018390556002909101919091559350610e1f565b8154600019018255600182018054821790555b505050919050565b6101045460005b81811015610ea057610108600061010483815481101515610e4b57fe5b600091825260208083209091015483528201929092526040018120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590610e9660028301826110bb565b5050600101610e2e565b6105a061102e565b60015b6001548110156104a7575b60015481108015610ed557506002816101008110610ed057fe5b015415155b15610ee257600101610eb6565b60018054118015610f0357506001546002906101008110610eff57fe5b0154155b15610f175760018054600019019055610ee2565b60015481108015610f3957506001546002906101008110610f3457fe5b015415155b8015610f5257506002816101008110610f4e57fe5b0154155b15610fb9576001546002906101008110610f6857fe5b01546002826101008110610f7857fe5b01558061010260006002836101008110610f8e57fe5b01548152602001908152602001600020819055506000600260015461010081101515610fb657fe5b01555b610eab565b6000610fc933610446565b156104625761010754610fda6110b1565b1115610ff357600061010655610fee6110b1565b610107555b610106548281011080159061101057506101055482610106540111155b1561102657506101068054820190556001610462565b506000919050565b6101045460005b818110156110a45761010480548290811061104c57fe5b6000918252602090912001541561109c5761010360006101048381548110151561107257fe5b60009182526020808320909101548352820192909252604001812081815560018101829055600201555b600101611035565b6105a061010460006111a1565b6201518042045b90565b50805460018160011615610100020316600290046000825580601f106110e157506104a7565b601f0160209004906000526020600020908101906104a791906111bb565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111405782800160ff1982351617855561116d565b8280016001018555821561116d579182015b8281111561116d578235825591602001919060010190611152565b506111799291506111bb565b5090565b815481835581811511610441576000838152602090206104419181019083016111bb565b50805460008255906000526020600020908101906104a791905b6110b891905b8082111561117957600081556001016111c15600a165627a7a7230582013013903c3aea90ef86fc7872eb7b71e0b19a3e7d524d694e9bd94b90ff7020600290000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000736af44d9c3cad2996dfb1a476da18225eeb19450000000000000000000000000fb0c3599c9877a5ba1d1796a4bdd735dcd393af0000000000000000000000003754cfb6970ef98742e38acc21de028cf53bc362000000000000000000000000a2b06657ac429196c321c4756967c79a213e955d

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

-----Decoded View---------------
Found 8 constructor arguments :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 000000000000000000000000736af44d9c3cad2996dfb1a476da18225eeb1945
Arg [5] : 0000000000000000000000000fb0c3599c9877a5ba1d1796a4bdd735dcd393af
Arg [6] : 0000000000000000000000003754cfb6970ef98742e38acc21de028cf53bc362
Arg [7] : 000000000000000000000000a2b06657ac429196c321c4756967c79a213e955d


   Swarm Source:
bzzr://13013903c3aea90ef86fc7872eb7b71e0b19a3e7d524d694e9bd94b90ff70206

 

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.