Contract 0x3dD88B391fe62a91436181eD2D43E20B86CDE60c 2

 
Txn Hash
Method
Block
From
To
Value
0xa52e3789c89b5ea141122aff427dd7cc34ccb29600a76fb94d5345ac3760d49eConfirm Transact...42727972017-09-14 10:41:501843 days 23 hrs ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0021977521
0x3e6bacd2e083d9f88610341508f8ef9eaa9e2f268f828e057a124fc2aa0cc8ebSubmit Transacti...42727072017-09-14 10:09:341843 days 23 hrs ago0x74d294f690fa041a421bd791016e20fb984c6a32 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030185524
0x4c35d246de4b9b13312025722c70e3a6b16fa58cc20acd360bd110e5258f8751Confirm Transact...42693392017-09-13 11:26:171844 days 22 hrs ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0016727521
0xa7741495a90d47b6cba131a13b1ed6009c0ac0c73894702b775e556263f1c566Submit Transacti...42691832017-09-13 10:30:391844 days 23 hrs ago0x74d294f690fa041a421bd791016e20fb984c6a32 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030200824
0x3fbd8174b467adc4c6f3f9257861e5bc97cad6c7e6870450ce7bc958794f1d5bConfirm Transact...42658252017-09-12 11:46:181845 days 21 hrs ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0021977521
0x0aac1ebccae0785f8aaa14be0b3b52ff0881e0ef73b9d0a76586a364165903f3Confirm Transact...42655652017-09-12 10:00:561845 days 23 hrs ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0016727521
0x4ca2783bf64d4b2c7fb5614cf8f6cdcf1b902f4ffc52f919a408a538b7f499b0Submit Transacti...42654942017-09-12 9:37:151846 days 7 mins ago0x69afbeae1dfeb1beab94a727dea7fecc310e33b7 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030200824
0x26eedf3e430d8e4b623a6f318d8b9ecf0a7e920f76fef70b2875d48027980f38Submit Transacti...42654852017-09-12 9:33:481846 days 11 mins ago0x69afbeae1dfeb1beab94a727dea7fecc310e33b7 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030170124
0x27a4eb166c590d4843515bd86a4028bee58618109a630bbd8bb70e9291d96f8bConfirm Transact...42582662017-09-10 9:13:131848 days 31 mins ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0016727521
0x697901bee8a41818ae1e01ea3f5419003c5ab825a921696704d66c2927a3e760Confirm Transact...42582642017-09-10 9:12:241848 days 32 mins ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0016727521
0x68bc7e3fb3578e5f85563df1db3e3bca81d9fed00f498caa56c853e95dd90be6Submit Transacti...42580592017-09-10 7:42:331848 days 2 hrs ago0x74d294f690fa041a421bd791016e20fb984c6a32 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030216224
0xff001d7634244784bae1f2fb1574e22714d13b0dada370c3af01717d0928feadSubmit Transacti...42580562017-09-10 7:39:041848 days 2 hrs ago0x74d294f690fa041a421bd791016e20fb984c6a32 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030216224
0x7308456352ac53815a2aa1a6d0eca47289b4fce9da981cfa3c9094d184af2329Confirm Transact...42477602017-09-07 10:36:071850 days 23 hrs ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0017042121
0xc5be9846220712b11f26bdfd5f9fc7039e041afb9f7b48e1ddb962e0581939eaSubmit Transacti...42476422017-09-07 9:49:021850 days 23 hrs ago0x74d294f690fa041a421bd791016e20fb984c6a32 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030170124
0xe31aaa5274089ddc317a1c03f5b3cf5355a27d3beeb0d949f570ad3b1adda933Confirm Transact...42472682017-09-07 7:09:431851 days 2 hrs ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0016727521
0xe93949b1c3d7b11d07d6fe32c53a146ee090841c2a29b045aca6804d866337c8Submit Transacti...42471512017-09-07 6:23:241851 days 3 hrs ago0x69afbeae1dfeb1beab94a727dea7fecc310e33b7 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030185524
0x040b2ea2393ac4192251a88623dcfd05f434b7da9771232ac65f03e0ea2b1872Confirm Transact...42441972017-09-06 10:29:571851 days 23 hrs ago0x74d294f690fa041a421bd791016e20fb984c6a32 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0024769224
0xe4187e172e36611af8e3423f419373055a16dbfb9a23fa9e154d96e415d31fc1Submit Transacti...42441912017-09-06 10:26:291851 days 23 hrs ago0x69afbeae1dfeb1beab94a727dea7fecc310e33b7 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030170124
0x6029ebc57db0c62abeb325ffa34513457f297d88ab6855459dc53f46708ae819Submit Transacti...42441862017-09-06 10:22:461851 days 23 hrs ago0x69afbeae1dfeb1beab94a727dea7fecc310e33b7 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030170124
0x7cd8aca2e0c5f5c0d74fab8649c264360167bb63c42914e7978a372ce8372f03Confirm Transact...42439932017-09-06 8:55:441852 days 49 mins ago0x69afbeae1dfeb1beab94a727dea7fecc310e33b7 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0024769224
0x6fd6698d355758a51add224a528a57a9f39f69ef15536b9dc4e5533c85bdf508Submit Transacti...42439842017-09-06 8:54:151852 days 50 mins ago0x74d294f690fa041a421bd791016e20fb984c6a32 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030170124
0x532c013dbc6f027f7ba5e790af6274ba7595e9ca527b064f10a38f69bfe5af53Confirm Transact...42411862017-09-05 13:45:171852 days 19 hrs ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0016727521
0x7dd84d0ec1f9366fe7fd5c4408e06cf3dd2e3a866271e61110e3406eacb19347Submit Transacti...42408852017-09-05 11:41:061852 days 22 hrs ago0x74d294f690fa041a421bd791016e20fb984c6a32 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030216224
0x1ca50321bc85d40d14398ee4512e7531a2a29a11e9b0402600da07a0c15d8378Confirm Transact...42375442017-09-04 12:49:431853 days 20 hrs ago0x0a73d3ba4db7ee17a2f7cf320cd9114c8501cf53 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0016727521
0x4f1627a644b636c9e464a85cedc6822b2889034fb909c3fc6f272c8f3b65ff4fSubmit Transacti...42374402017-09-04 12:15:091853 days 21 hrs ago0x74d294f690fa041a421bd791016e20fb984c6a32 IN  0x3dd88b391fe62a91436181ed2d43e20b86cde60c0 Ether0.0030185524
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xa52e3789c89b5ea141122aff427dd7cc34ccb29600a76fb94d5345ac3760d49e42727972017-09-14 10:41:501843 days 23 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x3bcc0fe3f7ccce4e361691d62a72cf9fc4cb78d1285 Ether
0x4c35d246de4b9b13312025722c70e3a6b16fa58cc20acd360bd110e5258f875142693392017-09-13 11:26:171844 days 22 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x9cfc319b403000523e79cf3ca7b4179b9291a91b502.47524752 Ether
0x3fbd8174b467adc4c6f3f9257861e5bc97cad6c7e6870450ce7bc958794f1d5b42658252017-09-12 11:46:181845 days 21 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x38b7bde0afde135af4df71e3a14914c4db8454a5645.91012935 Ether
0x0aac1ebccae0785f8aaa14be0b3b52ff0881e0ef73b9d0a76586a364165903f342655652017-09-12 10:00:561845 days 23 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x5543007562d8c2e3d8a6fa291142e6247e96f5a33,000 Ether
0x27a4eb166c590d4843515bd86a4028bee58618109a630bbd8bb70e9291d96f8b42582662017-09-10 9:13:131848 days 31 mins ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x4bf3b5ee1773542ff9b83a4a6a322d924262456c6,849.31506849 Ether
0x697901bee8a41818ae1e01ea3f5419003c5ab825a921696704d66c2927a3e76042582642017-09-10 9:12:241848 days 32 mins ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x4bf3b5ee1773542ff9b83a4a6a322d924262456c9,230.76923077 Ether
0x7308456352ac53815a2aa1a6d0eca47289b4fce9da981cfa3c9094d184af232942477602017-09-07 10:36:071850 days 23 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c 0x394d8b3c5de759b8258376fde9b394c8f237d8c49.23 Ether
0xe31aaa5274089ddc317a1c03f5b3cf5355a27d3beeb0d949f570ad3b1adda93342472682017-09-07 7:09:431851 days 2 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x7c0979711ffac0e29ef8d17b60a5c61ceb5934a9282.5 Ether
0x040b2ea2393ac4192251a88623dcfd05f434b7da9771232ac65f03e0ea2b187242441972017-09-06 10:29:571851 days 23 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x7c0979711ffac0e29ef8d17b60a5c61ceb5934a91 Ether
0x7cd8aca2e0c5f5c0d74fab8649c264360167bb63c42914e7978a372ce8372f0342439932017-09-06 8:55:441852 days 49 mins ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0xcfdf733f06c65939f7d772a344743d361048963f14.34 Ether
0x532c013dbc6f027f7ba5e790af6274ba7595e9ca527b064f10a38f69bfe5af5342411862017-09-05 13:45:171852 days 19 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x4bf3b5ee1773542ff9b83a4a6a322d924262456c9,933.77483443 Ether
0x1ca50321bc85d40d14398ee4512e7531a2a29a11e9b0402600da07a0c15d837842375442017-09-04 12:49:431853 days 20 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x9cfc319b403000523e79cf3ca7b4179b9291a91b3,278.688525 Ether
0x52bd5688d544f670a35bb6d8cb2de3d325ace561cec183936dc12da69f6e340142373592017-09-04 11:35:011853 days 22 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x4bf3b5ee1773542ff9b83a4a6a322d924262456c20,338.98305085 Ether
0x3a7561565330703f46035540c4cbb7480ca40ccc0992df0fb27c26569db9927a42370492017-09-04 9:26:121854 days 18 mins ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x4bf3b5ee1773542ff9b83a4a6a322d924262456c8,695.65217391 Ether
0x4c0b84e103c1a8f597acb5f90a811cea4d4bf6b7fc9dda3278f44f23787452dc42370082017-09-04 9:10:231854 days 34 mins ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x4bf3b5ee1773542ff9b83a4a6a322d924262456c8,695.65217391 Ether
0x134ccc2c81cbbf689120ab100f42e290f786cc9756c83c6b991214f85c4eab0842370062017-09-04 9:09:071854 days 36 mins ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x4bf3b5ee1773542ff9b83a4a6a322d924262456c8,823.52941176 Ether
0x06261a9139985d2b7e344cf742caaf4849e6b7060938a17891b10be52e44163642339732017-09-03 12:41:251854 days 21 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0xfaa4e226bbb776c1e9d3002af8bec46d7617280e12.26 Ether
0xbcb8dae7fea0f1c8ef4d086b9fa33bec8a298d66778e19b7c0ee5194b6344c7942339712017-09-03 12:40:121854 days 21 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x75e9e80590b25b3c0b70f425f475ea4c70af7a5122.865 Ether
0x6dcdfa200b1f1142b9fc1679ab57e80d06d0fcaee26f99a5faaccb24165ce15c42169022017-08-29 16:22:171859 days 17 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x4bf3b5ee1773542ff9b83a4a6a322d924262456c16,713.09192201 Ether
0x9507eea33adac093b653c5b9ada4fa974b07a06ff0a901d944e15856870b759642163902017-08-29 12:51:041859 days 20 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0xa79f1e8c75b8f041846240973b751548afcea8b71,000 Ether
0x3458f1b75bbaff4597b2fa8839a9665a26f0d6fc81d81ca3a07f7c5ee15b652e42163872017-08-29 12:49:211859 days 20 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x98777127d5bf527d2632273b99c9a065505892dc50 Ether
0x3bdf39388bbb02ebe26ca1a4cf96662270f03d31afc1577f7b5916765b525c6642127852017-08-28 12:17:261860 days 21 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x40a9c3e67efc5b90c6a39b77f24eb497042949332,967.3590504 Ether
0x943e9c36c924bd8919ed272e4060f00b2f3295d978a9f2fa02e3bf30037b4dea41988282017-08-24 14:32:521864 days 19 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0xd45f8e76102469e778c54727931b53c69f7922bd324.67 Ether
0x37d23f99dba1945f7559165b43731cf216b31de301c56b4fa2471ace87d6e80641787812017-08-19 19:44:081869 days 14 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x3182ed33ee501092ffd1665d14cb661f3f4d2b47191 Ether
0xa63c2c8bafd29e73f11debb01242d34b757dcb274c8d026b550e8b33e0b9ce4f41787802017-08-19 19:43:491869 days 14 hrs ago 0x3dd88b391fe62a91436181ed2d43e20b86cde60c0x6692fbaf6ae25199b581d30b1df1fbaf4ae26fc5963 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiSigWallet

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-08-01
*/

/// This code was taken from: https://github.com/ConsenSys. Please do not change or refactor.

pragma solidity 0.4.11;

/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <[email protected]>
contract MultiSigWallet {

    uint constant public MAX_OWNER_COUNT = 50;

    event Confirmation(address indexed sender, uint indexed transactionId);
    event Revocation(address indexed sender, uint indexed transactionId);
    event Submission(uint indexed transactionId);
    event Execution(uint indexed transactionId);
    event ExecutionFailure(uint indexed transactionId);
    event Deposit(address indexed sender, uint value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint required);

    mapping (uint => Transaction) public transactions;
    mapping (uint => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    address[] public owners;
    uint public required;
    uint public transactionCount;

    struct Transaction {
        address destination;
        uint value;
        bytes data;
        bool executed;
    }

    modifier onlyWallet() {
        if (msg.sender != address(this))
            throw;
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        if (isOwner[owner])
            throw;
        _;
    }

    modifier ownerExists(address owner) {
        if (!isOwner[owner])
            throw;
        _;
    }

    modifier transactionExists(uint transactionId) {
        if (transactions[transactionId].destination == 0)
            throw;
        _;
    }

    modifier confirmed(uint transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notConfirmed(uint transactionId, address owner) {
        if (confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notExecuted(uint transactionId) {
        if (transactions[transactionId].executed)
            throw;
        _;
    }

    modifier notNull(address _address) {
        if (_address == 0)
            throw;
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        if (   ownerCount > MAX_OWNER_COUNT
            || _required > ownerCount
            || _required == 0
            || ownerCount == 0)
            throw;
        _;
    }

    /// @dev Fallback function allows to deposit ether.
    function()
        payable
    {
        if (msg.value > 0)
            Deposit(msg.sender, msg.value);
    }

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners and required number of confirmations.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    function MultiSigWallet(address[] _owners, uint _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint i=0; i<_owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == 0)
                throw;
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }

    /// @dev Allows to add a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of new owner.
    function addOwner(address owner)
        public
        onlyWallet
        ownerDoesNotExist(owner)
        notNull(owner)
        validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        OwnerAddition(owner);
    }

    /// @dev Allows to remove an owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner.
    function removeOwner(address owner)
        public
        onlyWallet
        ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint i=0; i<owners.length - 1; i++)
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        owners.length -= 1;
        if (required > owners.length)
            changeRequirement(owners.length);
        OwnerRemoval(owner);
    }

    /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner to be replaced.
    /// @param owner Address of new owner.
    function replaceOwner(address owner, address newOwner)
        public
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
    {
        for (uint i=0; i<owners.length; i++)
            if (owners[i] == owner) {
                owners[i] = newOwner;
                break;
            }
        isOwner[owner] = false;
        isOwner[newOwner] = true;
        OwnerRemoval(owner);
        OwnerAddition(newOwner);
    }

    /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
    /// @param _required Number of required confirmations.
    function changeRequirement(uint _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        RequirementChange(_required);
    }

    /// @dev Allows an owner to submit and confirm a transaction.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function submitTransaction(address destination, uint value, bytes data)
        public
        returns (uint transactionId)
    {
        transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
    }

    /// @dev Allows an owner to confirm a transaction.
    /// @param transactionId Transaction ID.
    function confirmTransaction(uint transactionId)
        public
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        Confirmation(msg.sender, transactionId);
        executeTransaction(transactionId);
    }

    /// @dev Allows an owner to revoke a confirmation for a transaction.
    /// @param transactionId Transaction ID.
    function revokeConfirmation(uint transactionId)
        public
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        Revocation(msg.sender, transactionId);
    }

    /// @dev Allows anyone to execute a confirmed transaction.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction tx = transactions[transactionId];
            tx.executed = true;
            if (tx.destination.call.value(tx.value)(tx.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                tx.executed = false;
            }
        }
    }

    /// @dev Returns the confirmation status of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Confirmation status.
    function isConfirmed(uint transactionId)
        public
        constant
        returns (bool)
    {
        uint count = 0;
        for (uint i=0; i<owners.length; i++) {
            if (confirmations[transactionId][owners[i]])
                count += 1;
            if (count == required)
                return true;
        }
    }

    /*
     * Internal functions
     */
    /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function addTransaction(address destination, uint value, bytes data)
        internal
        notNull(destination)
        returns (uint transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        Submission(transactionId);
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns number of confirmations of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Number of confirmations.
    function getConfirmationCount(uint transactionId)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]])
                count += 1;
    }

    /// @dev Returns total number of transactions after filers are applied.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Total number of transactions after filters are applied.
    function getTransactionCount(bool pending, bool executed)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
                count += 1;
    }

    /// @dev Returns list of owners.
    /// @return List of owner addresses.
    function getOwners()
        public
        constant
        returns (address[])
    {
        return owners;
    }

    /// @dev Returns array with owner addresses, which confirmed transaction.
    /// @param transactionId Transaction ID.
    /// @return Returns array of owner addresses.
    function getConfirmations(uint transactionId)
        public
        constant
        returns (address[] _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint count = 0;
        uint i;
        for (i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]]) {
                confirmationsTemp[count] = owners[i];
                count += 1;
            }
        _confirmations = new address[](count);
        for (i=0; i<count; i++)
            _confirmations[i] = confirmationsTemp[i];
    }

    /// @dev Returns list of transaction IDs in defined range.
    /// @param from Index start position of transaction array.
    /// @param to Index end position of transaction array.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Returns array of transaction IDs.
    function getTransactionIds(uint from, uint to, bool pending, bool executed)
        public
        constant
        returns (uint[] _transactionIds)
    {
        uint[] memory transactionIdsTemp = new uint[](transactionCount);
        uint count = 0;
        uint i;
        for (i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
            {
                transactionIdsTemp[count] = i;
                count += 1;
            }
        _transactionIds = new uint[](to - from);
        for (i=from; i<to; i++)
            _transactionIds[i - from] = transactionIdsTemp[i];
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"name":"_transactionIds","type":"uint256[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"}]

606060405234156200000d57fe5b6040516200182f3803806200182f83398101604052805160208201519101905b600082518260328211806200004157508181115b806200004b575080155b8062000055575081155b15620000615760006000fd5b600092505b845183101562000136576002600086858151811015156200008357fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff1680620000d657508483815181101515620000bf57fe5b90602001906020020151600160a060020a03166000145b15620000e25760006000fd5b6001600260008786815181101515620000f757fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff19169115159190911790555b60019092019162000066565b84516200014b9060039060208801906200015e565b5060048490555b5b5050505050620001f7565b828054828255906000526020600020908101928215620001b6579160200282015b82811115620001b65782518254600160a060020a031916600160a060020a039091161782556020909201916001909101906200017f565b5b50620001c5929150620001c9565b5090565b620001f491905b80821115620001c5578054600160a060020a0319168155600101620001d0565b5090565b90565b61162880620002076000396000f3006060604052361561011a5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c27811461016c578063173825d91461019b57806320ea8d86146101b95780632f54bf6e146101ce5780633411c81c146101fe57806354741525146102315780637065cb481461025d578063784547a71461027b5780638b51d13f146102a25780639ace38c2146102c7578063a0e67e2b14610384578063a8abe69a146103ef578063b5dc40c31461046a578063b77bf600146104d8578063ba51a6df146104fa578063c01a8c841461050f578063c642747414610524578063d74f8edd14610599578063dc8452cd146105bb578063e20056e6146105dd578063ee22610b14610601575b61016a5b600034111561016757604080513481529051600160a060020a033316917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b5b565b005b341561017457fe5b61017f600435610616565b60408051600160a060020a039092168252519081900360200190f35b34156101a357fe5b61016a600160a060020a0360043516610648565b005b34156101c157fe5b61016a6004356107f9565b005b34156101d657fe5b6101ea600160a060020a03600435166108d6565b604080519115158252519081900360200190f35b341561020657fe5b6101ea600435600160a060020a03602435166108eb565b604080519115158252519081900360200190f35b341561023957fe5b61024b6004351515602435151561090b565b60408051918252519081900360200190f35b341561026557fe5b61016a600160a060020a036004351661097a565b005b341561028357fe5b6101ea600435610ab1565b604080519115158252519081900360200190f35b34156102aa57fe5b61024b600435610b45565b60408051918252519081900360200190f35b34156102cf57fe5b6102da600435610bc4565b60408051600160a060020a03861681526020810185905282151560608201526080918101828152845460026000196101006001841615020190911604928201839052909160a0830190859080156103725780601f1061034757610100808354040283529160200191610372565b820191906000526020600020905b81548152906001019060200180831161035557829003601f168201915b50509550505050505060405180910390f35b341561038c57fe5b610394610bf8565b60408051602080825283518183015283519192839290830191858101910280838382156103dc575b8051825260208311156103dc57601f1990920191602091820191016103bc565b5050509050019250505060405180910390f35b34156103f757fe5b61039460043560243560443515156064351515610c61565b60408051602080825283518183015283519192839290830191858101910280838382156103dc575b8051825260208311156103dc57601f1990920191602091820191016103bc565b5050509050019250505060405180910390f35b341561047257fe5b610394600435610d96565b60408051602080825283518183015283519192839290830191858101910280838382156103dc575b8051825260208311156103dc57601f1990920191602091820191016103bc565b5050509050019250505060405180910390f35b34156104e057fe5b61024b610f1e565b60408051918252519081900360200190f35b341561050257fe5b61016a600435610f24565b005b341561051757fe5b61016a600435610fb4565b005b341561052c57fe5b604080516020600460443581810135601f810184900484028501840190955284845261024b948235600160a060020a03169460248035956064949293919092019181908401838280828437509496506110a295505050505050565b60408051918252519081900360200190f35b34156105a157fe5b61024b6110c2565b60408051918252519081900360200190f35b34156105c357fe5b61024b6110c7565b60408051918252519081900360200190f35b34156105e557fe5b61016a600160a060020a03600435811690602435166110cd565b005b341561060957fe5b61016a600435611289565b005b600380548290811061062457fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b600030600160a060020a031633600160a060020a031614151561066b5760006000fd5b600160a060020a038216600090815260026020526040902054829060ff1615156106955760006000fd5b600160a060020a0383166000908152600260205260408120805460ff1916905591505b600354600019018210156107905782600160a060020a03166003838154811015156106df57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031614156107845760038054600019810190811061072057fe5b906000526020600020900160005b9054906101000a9004600160a060020a031660038381548110151561074f57fe5b906000526020600020900160005b6101000a815481600160a060020a030219169083600160a060020a03160217905550610790565b5b6001909101906106b8565b6003805460001901906107a390826114e4565b5060035460045411156107bc576003546107bc90610f24565b5b604051600160a060020a038416907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25b5b505b5050565b33600160a060020a03811660009081526002602052604090205460ff1615156108225760006000fd5b600082815260016020908152604080832033600160a060020a038116855292529091205483919060ff1615156108585760006000fd5b600084815260208190526040902060030154849060ff161561087a5760006000fd5b6000858152600160209081526040808320600160a060020a0333168085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35b5b505b50505b5050565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b6000805b60055481101561097257838015610938575060008181526020819052604090206003015460ff16155b8061095c575082801561095c575060008181526020819052604090206003015460ff165b5b15610969576001820191505b5b60010161090f565b5b5092915050565b30600160a060020a031633600160a060020a031614151561099b5760006000fd5b600160a060020a038116600090815260026020526040902054819060ff16156109c45760006000fd5b81600160a060020a03811615156109db5760006000fd5b60038054905060010160045460328211806109f557508181115b806109fe575080155b80610a07575081155b15610a125760006000fd5b600160a060020a0385166000908152600260205260409020805460ff191660019081179091556003805490918101610a4a83826114e4565b916000526020600020900160005b8154600160a060020a03808a166101009390930a838102910219909116179091556040519091507ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25b5b50505b505b505b50565b600080805b600354811015610b3d5760008481526001602052604081206003805491929184908110610adf57fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff1615610b21576001820191505b600454821415610b345760019250610b3d565b5b600101610ab6565b5b5050919050565b6000805b600354811015610bbd5760008381526001602052604081206003805491929184908110610b7257fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff1615610bb4576001820191505b5b600101610b49565b5b50919050565b6000602081905290815260409020805460018201546003830154600160a060020a0390921692909160029091019060ff1684565b610c00611538565b6003805480602002602001604051908101604052809291908181526020018280548015610c5657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610c38575b505050505090505b90565b610c69611538565b610c71611538565b60006000600554604051805910610c855750595b908082528060200260200182016040525b50925060009150600090505b600554811015610d1f57858015610ccb575060008181526020819052604090206003015460ff16155b80610cef5750848015610cef575060008181526020819052604090206003015460ff165b5b15610d1657808383815181101515610d0457fe5b60209081029091010152600191909101905b5b600101610ca2565b878703604051805910610d2f5750595b908082528060200260200182016040525b5093508790505b86811015610d8a578281815181101515610d5d57fe5b9060200190602002015184898303815181101515610d7757fe5b602090810290910101525b600101610d47565b5b505050949350505050565b610d9e611538565b610da6611538565b6003546040516000918291805910610dbb5750595b908082528060200260200182016040525b50925060009150600090505b600354811015610ea05760008581526001602052604081206003805491929184908110610e0157fe5b906000526020600020900160005b9054600160a060020a036101009290920a900416815260208101919091526040016000205460ff1615610e97576003805482908110610e4a57fe5b906000526020600020900160005b9054906101000a9004600160a060020a03168383815181101515610e7857fe5b600160a060020a03909216602092830290910190910152600191909101905b5b600101610dd8565b81604051805910610eae5750595b908082528060200260200182016040525b509350600090505b81811015610f15578281815181101515610edd57fe5b906020019060200201518482815181101515610ef557fe5b600160a060020a039092166020928302909101909101525b600101610ec7565b5b505050919050565b60055481565b30600160a060020a031633600160a060020a0316141515610f455760006000fd5b600354816032821180610f5757508181115b80610f60575080155b80610f69575081155b15610f745760006000fd5b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a15b5b50505b50565b33600160a060020a03811660009081526002602052604090205460ff161515610fdd5760006000fd5b6000828152602081905260409020548290600160a060020a031615156110035760006000fd5b600083815260016020908152604080832033600160a060020a038116855292529091205484919060ff16156110385760006000fd5b6000858152600160208181526040808420600160a060020a0333168086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a36108cc85611289565b5b5b50505b505b5050565b60006110af8484846113f1565b90506110ba81610fb4565b5b9392505050565b603281565b60045481565b600030600160a060020a031633600160a060020a03161415156110f05760006000fd5b600160a060020a038316600090815260026020526040902054839060ff16151561111a5760006000fd5b600160a060020a038316600090815260026020526040902054839060ff16156111435760006000fd5b600092505b6003548310156111eb5784600160a060020a031660038481548110151561116b57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316600160a060020a031614156111df57836003848154811015156111aa57fe5b906000526020600020900160005b6101000a815481600160a060020a030219169083600160a060020a031602179055506111eb565b5b600190920191611148565b600160a060020a03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25b5b505b505b505050565b600081815260208190526040812060030154829060ff16156112ab5760006000fd5b6112b483610ab1565b156107f2576000838152602081905260409081902060038101805460ff19166001908117909155815481830154935160028085018054959850600160a060020a03909316959492939192839285926000199183161561010002919091019091160480156113625780601f1061133757610100808354040283529160200191611362565b820191906000526020600020905b81548152906001019060200180831161134557829003601f168201915b505091505060006040518083038185876187965a03f192505050156113b15760405183907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a26107f2565b60405183907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038201805460ff191690555b5b5b5b505050565b600083600160a060020a038116151561140a5760006000fd5b60055460408051608081018252600160a060020a0388811682526020808301898152838501898152600060608601819052878152808452959095208451815473ffffffffffffffffffffffffffffffffffffffff19169416939093178355516001830155925180519496509193909261148a92600285019291019061155c565b50606091909101516003909101805460ff191691151591909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a25b5b509392505050565b8154818355818115116107f2576000838152602090206107f29181019083016115db565b5b505050565b8154818355818115116107f2576000838152602090206107f29181019083016115db565b5b505050565b60408051602081019091526000815290565b60408051602081019091526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061159d57805160ff19168380011785556115ca565b828001600101855582156115ca579182015b828111156115ca5782518255916020019190600101906115af565b5b506115d79291506115db565b5090565b610c5e91905b808211156115d757600081556001016115e1565b5090565b905600a165627a7a72305820446c768625a2876fcae4dade2a947e952d123b788cc469be08ecf33411c2f68c002900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000074d294f690fa041a421bd791016e20fb984c6a3200000000000000000000000069afbeae1dfeb1beab94a727dea7fecc310e33b70000000000000000000000000a73d3ba4db7ee17a2f7cf320cd9114c8501cf53

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

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000074d294f690fa041a421bd791016e20fb984c6a3200000000000000000000000069afbeae1dfeb1beab94a727dea7fecc310e33b70000000000000000000000000a73d3ba4db7ee17a2f7cf320cd9114c8501cf53

-----Decoded View---------------
Arg [0] : _owners (address[]): 0x74d294f690fa041A421BD791016e20fB984c6a32,0x69aFBeAe1DfeB1BEAB94a727DeA7FecC310E33b7,0x0A73d3ba4DB7eE17a2f7cf320cD9114C8501cF53
Arg [1] : _required (uint256): 2

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 00000000000000000000000074d294f690fa041a421bd791016e20fb984c6a32
Arg [4] : 00000000000000000000000069afbeae1dfeb1beab94a727dea7fecc310e33b7
Arg [5] : 0000000000000000000000000a73d3ba4db7ee17a2f7cf320cd9114c8501cf53


Swarm Source

bzzr://446c768625a2876fcae4dade2a947e952d123b788cc469be08ecf33411c2f68c
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.