ETH Price: $3,115.17 (-1.35%)

Contract

0xa5c603e1C27a96171487aea0649b01c56248d2e8
 
Transaction Hash
Method
Block
From
To
Execute147921202022-05-17 10:54:54917 days ago1652784894IN
0xa5c603e1...56248d2e8
0 ETH0.0017963730
Execute147042012022-05-03 10:49:27931 days ago1651574967IN
0xa5c603e1...56248d2e8
0 ETH0.0035917260
Execute146986422022-05-02 13:52:41932 days ago1651499561IN
0xa5c603e1...56248d2e8
0 ETH0.1099817550
Execute146976612022-05-02 10:00:08932 days ago1651485608IN
0xa5c603e1...56248d2e8
0 ETH0.0030939450.63161
Execute145638062022-04-11 10:12:56953 days ago1649671976IN
0xa5c603e1...56248d2e8
0 ETH0.0282882930
Execute141778182022-02-10 10:29:591013 days ago1644488999IN
0xa5c603e1...56248d2e8
0 ETH0.0026930245
Execute141777402022-02-10 10:12:461013 days ago1644487966IN
0xa5c603e1...56248d2e8
0 ETH0.0908389240
Execute139902322022-01-12 10:38:471042 days ago1641983927IN
0xa5c603e1...56248d2e8
0 ETH0.0059845100
Execute138236472021-12-17 16:17:471068 days ago1639757867IN
0xa5c603e1...56248d2e8
0 ETH0.0881697660
Execute136216652021-11-15 17:39:001100 days ago1636997940IN
0xa5c603e1...56248d2e8
0 ETH0.01333808158.15604026
Execute136214722021-11-15 16:47:411100 days ago1636994861IN
0xa5c603e1...56248d2e8
0 ETH0.01982998235.08607037
Execute135760022021-11-08 13:17:571107 days ago1636377477IN
0xa5c603e1...56248d2e8
0 ETH0.0047889680
Execute135495412021-11-04 9:55:051111 days ago1636019705IN
0xa5c603e1...56248d2e8
0 ETH0.00808366135
Execute134868612021-10-25 13:25:371121 days ago1635168337IN
0xa5c603e1...56248d2e8
0 ETH0.00658163110
Execute134427812021-10-18 16:09:501128 days ago1634573390IN
0xa5c603e1...56248d2e8
0 ETH0.00658482110
Execute134035982021-10-12 12:20:361134 days ago1634041236IN
0xa5c603e1...56248d2e8
0 ETH0.0035917260
Execute133711072021-10-07 9:57:291139 days ago1633600649IN
0xa5c603e1...56248d2e8
0 ETH0.00660411108.07452626
Execute133653522021-10-06 12:12:571140 days ago1633522377IN
0xa5c603e1...56248d2e8
0 ETH0.0050897185
Execute132706982021-09-21 18:12:081155 days ago1632247928IN
0xa5c603e1...56248d2e8
0 ETH0.00748487125
Execute132241642021-09-14 13:37:301162 days ago1631626650IN
0xa5c603e1...56248d2e8
0 ETH0.0045817575
Execute131987992021-09-10 15:24:271166 days ago1631287467IN
0xa5c603e1...56248d2e8
0 ETH0.0059879100
Execute131980862021-09-10 12:46:491166 days ago1631278009IN
0xa5c603e1...56248d2e8
0 ETH0.0315386190
Execute130814082021-08-23 12:00:521184 days ago1629720052IN
0xa5c603e1...56248d2e8
0 ETH0.0026331844
Execute129528002021-08-03 14:24:431204 days ago1628000683IN
0xa5c603e1...56248d2e8
0 ETH0.0032924155
Execute129011562021-07-26 9:51:481212 days ago1627293108IN
0xa5c603e1...56248d2e8
0 ETH0.001527825
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
114709972020-12-17 13:44:581433 days ago1608212698
0xa5c603e1...56248d2e8
0.00384303 ETH
114433582020-12-13 7:44:561437 days ago1607845496
0xa5c603e1...56248d2e8
0.0041661 ETH
114299802020-12-11 6:18:501439 days ago1607667530
0xa5c603e1...56248d2e8
0.00420586 ETH
113891342020-12-04 23:37:161446 days ago1607125036
0xa5c603e1...56248d2e8
0.0012 ETH
113828032020-12-04 0:02:151447 days ago1607040135
0xa5c603e1...56248d2e8
0.00147375 ETH
113784072020-12-03 7:52:301447 days ago1606981950
0xa5c603e1...56248d2e8
0.000123 ETH
113784072020-12-03 7:52:301447 days ago1606981950
0xa5c603e1...56248d2e8
0.00006 ETH
113783822020-12-03 7:46:321447 days ago1606981592
0xa5c603e1...56248d2e8
0.00012 ETH
113783752020-12-03 7:44:331447 days ago1606981473
0xa5c603e1...56248d2e8
0.000015 ETH
113657902020-12-01 9:26:411449 days ago1606814801
0xa5c603e1...56248d2e8
0.04897941 ETH
113629332020-11-30 22:46:121450 days ago1606776372
0xa5c603e1...56248d2e8
0.01033405 ETH
113624022020-11-30 20:48:311450 days ago1606769311
0xa5c603e1...56248d2e8
0.00010865 ETH
113623962020-11-30 20:47:161450 days ago1606769236
0xa5c603e1...56248d2e8
0.00012257 ETH
113623832020-11-30 20:44:391450 days ago1606769079
0xa5c603e1...56248d2e8
0.19688832 ETH
113623772020-11-30 20:43:391450 days ago1606769019
0xa5c603e1...56248d2e8
0.13390585 ETH
113617132020-11-30 18:21:391450 days ago1606760499
0xa5c603e1...56248d2e8
0.0039 ETH
113607642020-11-30 14:46:121450 days ago1606747572
0xa5c603e1...56248d2e8
0.0204836 ETH
113574022020-11-30 2:40:111450 days ago1606704011
0xa5c603e1...56248d2e8
0.00011248 ETH
113573242020-11-30 2:22:481450 days ago1606702968
0xa5c603e1...56248d2e8
0.00011265 ETH
113569632020-11-30 0:59:571450 days ago1606697997
0xa5c603e1...56248d2e8
0.01076142 ETH
113548982020-11-29 17:11:121451 days ago1606669872
0xa5c603e1...56248d2e8
0.0075 ETH
113501512020-11-28 23:48:391452 days ago1606607319
0xa5c603e1...56248d2e8
0.00046719 ETH
113486362020-11-28 18:18:141452 days ago1606587494
0xa5c603e1...56248d2e8
0.0003 ETH
113479742020-11-28 15:55:461452 days ago1606578946
0xa5c603e1...56248d2e8
0.0016115 ETH
113434072020-11-27 23:15:241453 days ago1606518924
0xa5c603e1...56248d2e8
0.00012288 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiSigWallet

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 999 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-02-04
*/

pragma solidity ^0.4.24;

/**
 * @title MultiSig
 * @dev Simple MultiSig using off-chain signing.
 * @author Julien Niset - <[email protected]>
 */
contract MultiSigWallet {

    uint constant public MAX_OWNER_COUNT = 10;

    // Incrementing counter to prevent replay attacks
    uint256 public nonce;   
    // The threshold           
    uint256 public threshold; 
    // The number of owners
    uint256 public ownersCount;
    // Mapping to check if an address is an owner
    mapping (address => bool) public isOwner; 

    // Events
    event OwnerAdded(address indexed owner);
    event OwnerRemoved(address indexed owner);
    event ThresholdChanged(uint256 indexed newThreshold);
    event Executed(address indexed destination, uint256 indexed value, bytes data);
    event Received(uint256 indexed value, address indexed from);

    /**
     * @dev Throws is the calling account is not the multisig.
     */
    modifier onlyWallet() {
        require(msg.sender == address(this), "MSW: Calling account is not wallet");
        _;
    }

    /**
     * @dev Constructor.
     * @param _threshold The threshold of the multisig.
     * @param _owners The owners of the multisig.
     */
    constructor(uint256 _threshold, address[] _owners) public {
        require(_owners.length > 0 && _owners.length <= MAX_OWNER_COUNT, "MSW: Not enough or too many owners");
        require(_threshold > 0 && _threshold <= _owners.length, "MSW: Invalid threshold");
        ownersCount = _owners.length;
        threshold = _threshold;
        for(uint256 i = 0; i < _owners.length; i++) {
            isOwner[_owners[i]] = true;
            emit OwnerAdded(_owners[i]);
        }
        emit ThresholdChanged(_threshold);
    }

    /**
     * @dev Only entry point of the multisig. The method will execute any transaction provided that it 
     * receieved enough signatures from the wallet owners.  
     * @param _to The destination address for the transaction to execute.
     * @param _value The value parameter for the transaction to execute.
     * @param _data The data parameter for the transaction to execute.
     * @param _signatures Concatenated signatures ordered based on increasing signer's address.
     */
    function execute(address _to, uint _value, bytes _data, bytes _signatures) public {
        uint8 v;
        bytes32 r;
        bytes32 s;
        uint256 count = _signatures.length / 65;
        require(count >= threshold, "MSW: Not enough signatures");
        bytes32 txHash = keccak256(abi.encodePacked(byte(0x19), byte(0), address(this), _to, _value, _data, nonce));
        nonce += 1;
        uint256 valid;
        address lastSigner = 0;
        for(uint256 i = 0; i < count; i++) {
            (v,r,s) = splitSignature(_signatures, i);
            address recovered = ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32",txHash)), v, r, s);
            require(recovered > lastSigner, "MSW: Badly ordered signatures"); // make sure signers are different
            lastSigner = recovered;
            if(isOwner[recovered]) {
                valid += 1;
                if(valid >= threshold) {
                    require(_to.call.value(_value)(_data), "MSW: External call failed");
                    emit Executed(_to, _value, _data);
                    return;
                }
            }
        }
        // If we reach that point then the transaction is not executed
        revert("MSW: Not enough valid signatures");
    }

    /**
     * @dev Adds an owner to the multisig. This method can only be called by the multisig itself 
     * (i.e. it must go through the execute method and be confirmed by the owners).
     * @param _owner The address of the new owner.
     */
    function addOwner(address _owner) public onlyWallet {
        require(ownersCount < MAX_OWNER_COUNT, "MSW: MAX_OWNER_COUNT reached");
        require(isOwner[_owner] == false, "MSW: Already owner");
        ownersCount += 1;
        isOwner[_owner] = true;
        emit OwnerAdded(_owner);
    }

    /**
     * @dev Removes an owner from the multisig. This method can only be called by the multisig itself 
     * (i.e. it must go through the execute method and be confirmed by the owners).
     * @param _owner The address of the removed owner.
     */
    function removeOwner(address _owner) public onlyWallet {
        require(ownersCount > threshold, "MSW: Too few owners left");
        require(isOwner[_owner] == true, "MSW: Not an owner");
        ownersCount -= 1;
        delete isOwner[_owner];
        emit OwnerRemoved(_owner);
    }

    /**
     * @dev Changes the threshold of the multisig. This method can only be called by the multisig itself 
     * (i.e. it must go through the execute method and be confirmed by the owners).
     * @param _newThreshold The new threshold.
     */
    function changeThreshold(uint256 _newThreshold) public onlyWallet {
        require(_newThreshold > 0 && _newThreshold <= ownersCount, "MSW: Invalid new threshold");
        threshold = _newThreshold;
        emit ThresholdChanged(_newThreshold);
    }

    /**
     * @dev Makes it possible for the multisig to receive ETH.
     */
    function () external payable {
        emit Received(msg.value, msg.sender);        
    }

        /**
     * @dev Parses the signatures and extract (r, s, v) for a signature at a given index.
     * A signature is {bytes32 r}{bytes32 s}{uint8 v} in compact form and signatures are concatenated.
     * @param _signatures concatenated signatures
     * @param _index which signature to read (0, 1, 2, ...)
     */
    function splitSignature(bytes _signatures, uint256 _index) internal pure returns (uint8 v, bytes32 r, bytes32 s) {
        // we jump 32 (0x20) as the first slot of bytes contains the length
        // we jump 65 (0x41) per signature
        // for v we load 32 bytes ending with v (the first 31 come from s) tehn apply a mask
        assembly {
            r := mload(add(_signatures, add(0x20,mul(0x41,_index))))
            s := mload(add(_signatures, add(0x40,mul(0x41,_index))))
            v := and(mload(add(_signatures, add(0x41,mul(0x41,_index)))), 0xff)
        }
        require(v == 27 || v == 28, "MSW: Invalid v"); 
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"threshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newThreshold","type":"uint256"}],"name":"changeThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nonce","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownersCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"},{"name":"_signatures","type":"bytes"}],"name":"execute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_threshold","type":"uint256"},{"name":"_owners","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newThreshold","type":"uint256"}],"name":"ThresholdChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"destination","type":"address"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Executed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"value","type":"uint256"},{"indexed":true,"name":"from","type":"address"}],"name":"Received","type":"event"}]

608060405234801561001057600080fd5b5060405161115938038061115983398101604052805160208201519091018051600090811080156100435750600a825111155b15156100d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4d53573a204e6f7420656e6f756768206f7220746f6f206d616e79206f776e6560448201527f7273000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000831180156100e7575081518311155b151561015457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d53573a20496e76616c6964207468726573686f6c6400000000000000000000604482015290519081900360640190fd5b508051600255600182905560005b815181101561020657600160036000848481518110151561017f57fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905581518290829081106101bf57fe5b90602001906020020151600160a060020a03167f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c360405160405180910390a2600101610162565b60405183907f6c4ce60fd690e1216286a10b875c5662555f10774484e58142cedd7a90781baa90600090a2505050610f16806102436000396000f3006080604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663173825d981146100c75780632f54bf6e146100f757806342cde4e814610139578063694e80c3146101605780637065cb4814610178578063affed0e0146101a6578063b9488546146101bb578063d74f8edd146101d0578063da0980c7146101e5575b604051339034907f8863e458255c600ae3e61be347822f3ee57088c8538b68b5dd2357e682e59e1990600090a3005b3480156100d357600080fd5b506100f573ffffffffffffffffffffffffffffffffffffffff60043516610299565b005b34801561010357600080fd5b5061012573ffffffffffffffffffffffffffffffffffffffff60043516610462565b604080519115158252519081900360200190f35b34801561014557600080fd5b5061014e610477565b60408051918252519081900360200190f35b34801561016c57600080fd5b506100f560043561047d565b34801561018457600080fd5b506100f573ffffffffffffffffffffffffffffffffffffffff6004351661059f565b3480156101b257600080fd5b5061014e61076b565b3480156101c757600080fd5b5061014e610771565b3480156101dc57600080fd5b5061014e610777565b3480156101f157600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526100f594823573ffffffffffffffffffffffffffffffffffffffff1694602480359536959460649492019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061077c9650505050505050565b33301461031b5760408051600080516020610ecb833981519152815260206004820152602260248201527f4d53573a2043616c6c696e67206163636f756e74206973206e6f742077616c6c60448201527f6574000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6001546002541161037b5760408051600080516020610ecb833981519152815260206004820152601860248201527f4d53573a20546f6f20666577206f776e657273206c6566740000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff1615156001146104025760408051600080516020610ecb833981519152815260206004820152601160248201527f4d53573a204e6f7420616e206f776e6572000000000000000000000000000000604482015290519081900360640190fd5b6002805460001901905573ffffffffffffffffffffffffffffffffffffffff8116600081815260036020526040808220805460ff19169055517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9190a250565b60036020526000908152604090205460ff1681565b60015481565b3330146104ff5760408051600080516020610ecb833981519152815260206004820152602260248201527f4d53573a2043616c6c696e67206163636f756e74206973206e6f742077616c6c60448201527f6574000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111801561051157506002548111155b151561056c5760408051600080516020610ecb833981519152815260206004820152601a60248201527f4d53573a20496e76616c6964206e6577207468726573686f6c64000000000000604482015290519081900360640190fd5b600181905560405181907f6c4ce60fd690e1216286a10b875c5662555f10774484e58142cedd7a90781baa90600090a250565b3330146106215760408051600080516020610ecb833981519152815260206004820152602260248201527f4d53573a2043616c6c696e67206163636f756e74206973206e6f742077616c6c60448201527f6574000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600a116106805760408051600080516020610ecb833981519152815260206004820152601c60248201527f4d53573a204d41585f4f574e45525f434f554e54207265616368656400000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff16156107035760408051600080516020610ecb833981519152815260206004820152601260248201527f4d53573a20416c7265616479206f776e65720000000000000000000000000000604482015290519081900360640190fd5b60028054600190810190915573ffffffffffffffffffffffffffffffffffffffff8216600081815260036020526040808220805460ff1916909417909355915190917f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c391a250565b60005481565b60025481565b600a81565b600080600080600080600080600060418a5181151561079757fe5b04955060015486101515156107fb5760408051600080516020610ecb833981519152815260206004820152601a60248201527f4d53573a204e6f7420656e6f756768207369676e617475726573000000000000604482015290519081900360640190fd5b60197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308f8f8f60005460405160200180887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101877effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183805190602001908083835b602083106109985780518252601f199092019160209182019101610979565b51815160209384036101000a6000190180199092169116179052920193845250604080518085038152938201908190528351939950975087965088019450909250829150849050835b60208310610a005780518252601f1990920191602091820191016109e1565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912060008054600101815590985095508594505050505b85821015610dd757610a508a83610e3b565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083018c905283518084039091018152605c909201928390528151959e50939c50919a506001939192909182918401908083835b60208310610ad35780518252601f199092019160209182019101610ab4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208a8a8a604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610b74573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff80841690821611610bf65760408051600080516020610ecb833981519152815260206004820152601d60248201527f4d53573a204261646c79206f726465726564207369676e617475726573000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902054909250829060ff1615610dcc57600180549401938410610dcc578c73ffffffffffffffffffffffffffffffffffffffff168c8c60405180828051906020019080838360005b83811015610c79578181015183820152602001610c61565b50505050905090810190601f168015610ca65780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515610d165760408051600080516020610ecb833981519152815260206004820152601960248201527f4d53573a2045787465726e616c2063616c6c206661696c656400000000000000604482015290519081900360640190fd5b8b8d73ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f8d6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d8d578181015183820152602001610d75565b50505050905090810190601f168015610dba5780820380516001836020036101000a031916815260200191505b509250505060405180910390a3610e2c565b600190910190610a3e565b60408051600080516020610ecb833981519152815260206004820181905260248201527f4d53573a204e6f7420656e6f7567682076616c6964207369676e617475726573604482015290519081900360640190fd5b50505050505050505050505050565b6041808202830160208101516040820151919092015160ff169190601b831480610e6857508260ff16601c145b1515610ec35760408051600080516020610ecb833981519152815260206004820152600e60248201527f4d53573a20496e76616c69642076000000000000000000000000000000000000604482015290519081900360640190fd5b9250925092560008c379a000000000000000000000000000000000000000000000000000000000a165627a7a72305820d9d09d499f1c3ba7cb8c04c07a292c5ca1b87c12de2120045d0d35a6f86db91900290000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000001c385bbb6bd2edb66fb5b752532b3e9ef705d25d00000000000000000000000036b300079b70822dfcd73911fc7d932f45cfb9160000000000000000000000004a804ddb1a75de64d0101d8c53f75cdcf654ff24

Deployed Bytecode

0x6080604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663173825d981146100c75780632f54bf6e146100f757806342cde4e814610139578063694e80c3146101605780637065cb4814610178578063affed0e0146101a6578063b9488546146101bb578063d74f8edd146101d0578063da0980c7146101e5575b604051339034907f8863e458255c600ae3e61be347822f3ee57088c8538b68b5dd2357e682e59e1990600090a3005b3480156100d357600080fd5b506100f573ffffffffffffffffffffffffffffffffffffffff60043516610299565b005b34801561010357600080fd5b5061012573ffffffffffffffffffffffffffffffffffffffff60043516610462565b604080519115158252519081900360200190f35b34801561014557600080fd5b5061014e610477565b60408051918252519081900360200190f35b34801561016c57600080fd5b506100f560043561047d565b34801561018457600080fd5b506100f573ffffffffffffffffffffffffffffffffffffffff6004351661059f565b3480156101b257600080fd5b5061014e61076b565b3480156101c757600080fd5b5061014e610771565b3480156101dc57600080fd5b5061014e610777565b3480156101f157600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526100f594823573ffffffffffffffffffffffffffffffffffffffff1694602480359536959460649492019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061077c9650505050505050565b33301461031b5760408051600080516020610ecb833981519152815260206004820152602260248201527f4d53573a2043616c6c696e67206163636f756e74206973206e6f742077616c6c60448201527f6574000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6001546002541161037b5760408051600080516020610ecb833981519152815260206004820152601860248201527f4d53573a20546f6f20666577206f776e657273206c6566740000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff1615156001146104025760408051600080516020610ecb833981519152815260206004820152601160248201527f4d53573a204e6f7420616e206f776e6572000000000000000000000000000000604482015290519081900360640190fd5b6002805460001901905573ffffffffffffffffffffffffffffffffffffffff8116600081815260036020526040808220805460ff19169055517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9190a250565b60036020526000908152604090205460ff1681565b60015481565b3330146104ff5760408051600080516020610ecb833981519152815260206004820152602260248201527f4d53573a2043616c6c696e67206163636f756e74206973206e6f742077616c6c60448201527f6574000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008111801561051157506002548111155b151561056c5760408051600080516020610ecb833981519152815260206004820152601a60248201527f4d53573a20496e76616c6964206e6577207468726573686f6c64000000000000604482015290519081900360640190fd5b600181905560405181907f6c4ce60fd690e1216286a10b875c5662555f10774484e58142cedd7a90781baa90600090a250565b3330146106215760408051600080516020610ecb833981519152815260206004820152602260248201527f4d53573a2043616c6c696e67206163636f756e74206973206e6f742077616c6c60448201527f6574000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254600a116106805760408051600080516020610ecb833981519152815260206004820152601c60248201527f4d53573a204d41585f4f574e45525f434f554e54207265616368656400000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff16156107035760408051600080516020610ecb833981519152815260206004820152601260248201527f4d53573a20416c7265616479206f776e65720000000000000000000000000000604482015290519081900360640190fd5b60028054600190810190915573ffffffffffffffffffffffffffffffffffffffff8216600081815260036020526040808220805460ff1916909417909355915190917f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c391a250565b60005481565b60025481565b600a81565b600080600080600080600080600060418a5181151561079757fe5b04955060015486101515156107fb5760408051600080516020610ecb833981519152815260206004820152601a60248201527f4d53573a204e6f7420656e6f756768207369676e617475726573000000000000604482015290519081900360640190fd5b60197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308f8f8f60005460405160200180887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101877effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183805190602001908083835b602083106109985780518252601f199092019160209182019101610979565b51815160209384036101000a6000190180199092169116179052920193845250604080518085038152938201908190528351939950975087965088019450909250829150849050835b60208310610a005780518252601f1990920191602091820191016109e1565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912060008054600101815590985095508594505050505b85821015610dd757610a508a83610e3b565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083018c905283518084039091018152605c909201928390528151959e50939c50919a506001939192909182918401908083835b60208310610ad35780518252601f199092019160209182019101610ab4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208a8a8a604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610b74573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff80841690821611610bf65760408051600080516020610ecb833981519152815260206004820152601d60248201527f4d53573a204261646c79206f726465726564207369676e617475726573000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040902054909250829060ff1615610dcc57600180549401938410610dcc578c73ffffffffffffffffffffffffffffffffffffffff168c8c60405180828051906020019080838360005b83811015610c79578181015183820152602001610c61565b50505050905090810190601f168015610ca65780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515610d165760408051600080516020610ecb833981519152815260206004820152601960248201527f4d53573a2045787465726e616c2063616c6c206661696c656400000000000000604482015290519081900360640190fd5b8b8d73ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f8d6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d8d578181015183820152602001610d75565b50505050905090810190601f168015610dba5780820380516001836020036101000a031916815260200191505b509250505060405180910390a3610e2c565b600190910190610a3e565b60408051600080516020610ecb833981519152815260206004820181905260248201527f4d53573a204e6f7420656e6f7567682076616c6964207369676e617475726573604482015290519081900360640190fd5b50505050505050505050505050565b6041808202830160208101516040820151919092015160ff169190601b831480610e6857508260ff16601c145b1515610ec35760408051600080516020610ecb833981519152815260206004820152600e60248201527f4d53573a20496e76616c69642076000000000000000000000000000000000000604482015290519081900360640190fd5b9250925092560008c379a000000000000000000000000000000000000000000000000000000000a165627a7a72305820d9d09d499f1c3ba7cb8c04c07a292c5ca1b87c12de2120045d0d35a6f86db9190029

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

0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000001c385bbb6bd2edb66fb5b752532b3e9ef705d25d00000000000000000000000036b300079b70822dfcd73911fc7d932f45cfb9160000000000000000000000004a804ddb1a75de64d0101d8c53f75cdcf654ff24

-----Decoded View---------------
Arg [0] : _threshold (uint256): 2
Arg [1] : _owners (address[]): 0x1C385BBB6bd2EDB66fb5B752532b3E9ef705d25D,0x36b300079b70822dfCD73911fC7d932F45cfB916,0x4a804dDb1a75De64d0101d8C53F75cdCf654FF24

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 0000000000000000000000001c385bbb6bd2edb66fb5b752532b3e9ef705d25d
Arg [4] : 00000000000000000000000036b300079b70822dfcd73911fc7d932f45cfb916
Arg [5] : 0000000000000000000000004a804ddb1a75de64d0101d8c53f75cdcf654ff24


Swarm Source

bzzr://d9d09d499f1c3ba7cb8c04c07a292c5ca1b87c12de2120045d0d35a6f86db919

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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.