ETH Price: $3,715.99 (+3.46%)

Contract

0x63ea74816e1cF1590DCD24Ee4aC053852C23dAE3
 

Overview

ETH Balance

0.001828134593769906 ETH

Eth Value

$6.79 (@ $3,715.99/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer97541062020-03-27 15:05:471709 days ago1585321547IN
0x63ea7481...52C23dAE3
0 ETH0.000094821.1
Transfer96804642020-03-16 4:27:141720 days ago1584332834IN
0x63ea7481...52C23dAE3
0 ETH0.000094841.1
Transfer96122722020-03-05 16:26:071731 days ago1583425567IN
0x63ea7481...52C23dAE3
0 ETH0.000094871.1
Transfer96070042020-03-04 20:58:411732 days ago1583355521IN
0x63ea7481...52C23dAE3
0 ETH0.000094871.1
Transfer95911262020-03-02 10:32:321734 days ago1583145152IN
0x63ea7481...52C23dAE3
0 ETH0.000094841.1
Transfer95796722020-02-29 16:13:421736 days ago1582992822IN
0x63ea7481...52C23dAE3
0 ETH0.000094871.1
Transfer95792442020-02-29 14:41:401736 days ago1582987300IN
0x63ea7481...52C23dAE3
0 ETH0.000094851.1
Transfer95501322020-02-25 3:16:051740 days ago1582600565IN
0x63ea7481...52C23dAE3
0 ETH0.000094841.1
Transfer95224372020-02-20 21:03:351745 days ago1582232615IN
0x63ea7481...52C23dAE3
0.01857933 ETH0.000023141.1
Transfer94894602020-02-15 19:13:341750 days ago1581794014IN
0x63ea7481...52C23dAE3
0 ETH0.000094851.1
Transfer94712452020-02-12 23:47:141753 days ago1581551234IN
0x63ea7481...52C23dAE3
0.02260063 ETH0.000023141.1
Transfer94453862020-02-09 0:39:101756 days ago1581208750IN
0x63ea7481...52C23dAE3
0.0151217 ETH0.000023141.1
Transfer94116972020-02-03 20:13:141762 days ago1580760794IN
0x63ea7481...52C23dAE3
0.0474118 ETH0.000023141.1
Transfer93844222020-01-30 15:50:541766 days ago1580399454IN
0x63ea7481...52C23dAE3
0.01362205 ETH0.000023141.1
Transfer93823802020-01-30 8:06:061766 days ago1580371566IN
0x63ea7481...52C23dAE3
0.0293384 ETH0.000023141.1
Transfer93789532020-01-29 19:23:171767 days ago1580325797IN
0x63ea7481...52C23dAE3
1.23722056 ETH0.000023141.1
Transfer93770892020-01-29 12:41:241767 days ago1580301684IN
0x63ea7481...52C23dAE3
0 ETH0.000094851.1
Transfer93633512020-01-27 10:00:321769 days ago1580119232IN
0x63ea7481...52C23dAE3
0 ETH0.000094851.1
Transfer93602912020-01-26 22:56:351770 days ago1580079395IN
0x63ea7481...52C23dAE3
0.03091269 ETH0.000023141.1
Transfer93597322020-01-26 20:43:131770 days ago1580071393IN
0x63ea7481...52C23dAE3
0.02864406 ETH0.000023141.1
Transfer93542292020-01-26 0:28:381770 days ago1579998518IN
0x63ea7481...52C23dAE3
0.05050538 ETH0.000023141.1
Transfer93523802020-01-25 17:47:341771 days ago1579974454IN
0x63ea7481...52C23dAE3
0.01490417 ETH0.000023141.1
Transfer93512772020-01-25 13:40:021771 days ago1579959602IN
0x63ea7481...52C23dAE3
0.03091269 ETH0.000023141.1
Transfer93504512020-01-25 10:27:211771 days ago1579948041IN
0x63ea7481...52C23dAE3
0.05690758 ETH0.000023141.1
Transfer93478322020-01-25 0:47:291771 days ago1579913249IN
0x63ea7481...52C23dAE3
0.02678791 ETH0.000023141.1
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
97541062020-03-27 15:05:471709 days ago1585321547
0x63ea7481...52C23dAE3
0.01483 ETH
96804642020-03-16 4:27:141720 days ago1584332834
0x63ea7481...52C23dAE3
0.0067267 ETH
96122722020-03-05 16:26:071731 days ago1583425567
0x63ea7481...52C23dAE3
0.03382 ETH
96070042020-03-04 20:58:411732 days ago1583355521
0x63ea7481...52C23dAE3
0.02550207 ETH
95911262020-03-02 10:32:321734 days ago1583145152
0x63ea7481...52C23dAE3
0.01629789 ETH
95796722020-02-29 16:13:421736 days ago1582992822
0x63ea7481...52C23dAE3
0.02584072 ETH
95792442020-02-29 14:41:401736 days ago1582987300
0x63ea7481...52C23dAE3
0.02076 ETH
95501322020-02-25 3:16:051740 days ago1582600565
0x63ea7481...52C23dAE3
0.08 ETH
94894602020-02-15 19:13:341750 days ago1581794014
0x63ea7481...52C23dAE3
2.7 ETH
93770892020-01-29 12:41:241767 days ago1580301684
0x63ea7481...52C23dAE3
0.00369997 ETH
93633512020-01-27 10:00:321769 days ago1580119232
0x63ea7481...52C23dAE3
0.05 ETH
93418392020-01-24 2:43:021772 days ago1579833782
0x63ea7481...52C23dAE3
0.1 ETH
93412702020-01-24 0:38:081772 days ago1579826288
0x63ea7481...52C23dAE3
0.02579776 ETH
92671972020-01-12 16:26:031784 days ago1578846363
0x63ea7481...52C23dAE3
0.01022897 ETH
91892922019-12-31 4:55:041796 days ago1577768104
0x63ea7481...52C23dAE3
0.01004811 ETH
91520592019-12-23 18:55:221804 days ago1577127322
0x63ea7481...52C23dAE3
0.00761099 ETH
91406202019-12-21 12:15:051806 days ago1576930505
0x63ea7481...52C23dAE3
0.0167683 ETH
91219192019-12-17 18:44:101810 days ago1576608250
0x63ea7481...52C23dAE3
0.00292942 ETH
90609052019-12-06 14:16:171821 days ago1575641777
0x63ea7481...52C23dAE3
0.02855163 ETH
87986622019-10-23 19:58:381865 days ago1571860718
0x63ea7481...52C23dAE3
0.00455765 ETH
87588192019-10-17 13:32:351871 days ago1571319155
0x63ea7481...52C23dAE3
0.00784191 ETH
87146222019-10-10 14:38:421878 days ago1570718322
0x63ea7481...52C23dAE3
0.00738625 ETH
86803142019-10-05 5:55:341883 days ago1570254934
0x63ea7481...52C23dAE3
0.03010056 ETH
86492532019-09-30 9:23:481888 days ago1569835428
0x63ea7481...52C23dAE3
0.01288097 ETH
86403092019-09-28 23:43:251890 days ago1569714205
0x63ea7481...52C23dAE3
0.01820888 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x44852FAE...A732Df298
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
TeambrellaWallet

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-07-30
*/

pragma solidity ^0.4.19;

contract TeambrellaWallet {
    
    uint public m_opNum;
    uint public m_teamId;
    address public m_owner;
    address[] public m_cosigners;
    address[] public m_cosignersApprovedDisband;    
    
    modifier orderedOps(uint opNum) {
        require(opNum >= m_opNum);
        _; 
    }

    modifier onlyOwner {
        require(msg.sender == m_owner);
        _; 
    }
    
    function() public payable { }


    // Duplicate Solidity's ecrecover, but catching the CALL return value
    function safer_ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal returns (bool, address) {
        // We do our own memory management here. Solidity uses memory offset
        // 0x40 to store the current end of memory. We write past it (as
        // writes are memory extensions), but don't update the offset so
        // Solidity will reuse it. The memory used here is only needed for
        // this context.

        bool ret;
        address addr;

        assembly {
            let size := mload(0x40)
            mstore(size, hash)
            mstore(add(size, 32), v)
            mstore(add(size, 64), r)
            mstore(add(size, 96), s)

            // NOTE: we can reuse the request memory because we deal with
            //       the return code
            ret := call(3000, 1, 0, size, 128, size, 32)
            addr := mload(size)
        }

        return (ret, addr);
    }

    function ecrecovery(bytes32 hash, bytes sig) private returns (bool, address) {
        bytes32 r;
        bytes32 s;
        uint8 v;

        // The signature format is a compact form of:
        //   {bytes32 r}{bytes32 s}{uint8 v}
        // Compact means, uint8 is not padded to 32 bytes.
        assembly {
            r := mload(add(sig, 32))
            s := mload(add(sig, 64))

            // Here we are loading the last 32 bytes. We exploit the fact that
            // 'mload' will pad with zeroes if we overread.
            // There is no 'mload8' to do this, but that would be nicer.
            v := byte(0, mload(add(sig, 96)))

            // Alternative solution:
            // 'byte' is not working due to the Solidity parser, so lets
            // use the second best option, 'and'
            // v := and(mload(add(sig, 65)), 255)
        }

        return safer_ecrecover(hash, v, r, s);
    }

    function ecverify(bytes32 hash, bytes sig, address signer) private returns (bool) {
        bool ret;
        address addr;

        (ret, addr) = ecrecovery(hash, sig);

        return ret == true && addr == signer;
    }

    function checkSignatures(
        bytes32 hash,
        uint[3] cosignersPos,
        bytes sigCosigner0,
        bytes sigCosigner1,
        bytes sigCosigner2
        ) private returns(bool) {

        uint cosignersNum = m_cosigners.length;
        bool signed = ecverify(hash, sigCosigner0, m_cosigners[cosignersPos[0]]);
        if (cosignersNum > 3) {
            signed = signed && ecverify(hash, sigCosigner1, m_cosigners[cosignersPos[1]]);
        }
        if (cosignersNum > 6) {
            signed = signed && ecverify(hash, sigCosigner2, m_cosigners[cosignersPos[2]]);
        }

        return signed;
    }
    
    function checkSignatures2(
        bytes32 hash,
        bytes sigCosigner0,
        bytes sigCosigner1,
        bytes sigCosigner2
        ) private returns(bool) {

        uint cosignersNum = m_cosigners.length;
        uint pos = uint(sigCosigner0[65]);
        bool signed = ecverify(hash, sigCosigner0, m_cosigners[pos]);
        if (cosignersNum > 3) {
            pos = uint(sigCosigner1[65]);
            signed = signed && ecverify(hash, sigCosigner1, m_cosigners[pos]);
        }
        if (cosignersNum > 6) {
            pos = uint(sigCosigner2[65]);
            signed = signed && ecverify(hash, sigCosigner2, m_cosigners[pos]);
        }
        return signed;
    }

    function toBytes(uint256[] x) private pure returns (bytes b) {
        b = new bytes(32 * x.length);
        for (uint j = 0; j < x.length; j++) {
            for (uint i = 0; i < 32; i++) {
                b[j*32 + i] = byte(uint8(x[j] / (2**(8*(31 - i))))); 
            }
        }
    }

    function toBytes(address[] x) private pure returns (bytes b) {

        b = new bytes(20 * x.length);
        for (uint j = 0; j < x.length; j++) {
            for (uint i = 0; i < 20; i++) {
                b[j*20 + i] = byte(uint8(uint160(x[j]) / (2**(8*(19 - i))))); 
            }
        }
    }

    function TeambrellaWallet() public payable {
        m_opNum = 1;
		m_owner = msg.sender;
    }
    
     function assignOwner(address[] cosigners, uint teamId, address newOwner) onlyOwner external {
		if (m_cosigners.length == 0)
		{
			m_cosigners = cosigners;
			m_teamId = teamId;
			m_owner = newOwner;
		}
    }
       
    function changeAllCosigners(
        uint opNum,
        address[] newCosigners,
        uint[3] cosignersPos,
        bytes sigCosigner0, 
        bytes sigCosigner1,
        bytes sigCosigner2 
        ) onlyOwner orderedOps(opNum) external {

        bytes32 hash = keccak256("NS", m_teamId, opNum, toBytes(newCosigners));
        require(checkSignatures(hash, cosignersPos, sigCosigner0, sigCosigner1, sigCosigner2));
        m_opNum = opNum + 1;
        m_cosignersApprovedDisband.length = 0;
        m_cosigners = newCosigners;
    }

    function changeAllCosigners2(
        uint opNum,
        address[] newCosigners,
        bytes sigCosigner0, 
        bytes sigCosigner1,
        bytes sigCosigner2,
        bytes sigOwner 
        ) onlyOwner orderedOps(opNum) external {

        bytes32 hash = keccak256("NS", m_teamId, opNum, toBytes(newCosigners));
        require(checkSignatures2(hash, sigCosigner0, sigCosigner1, sigCosigner2));
        require(ecverify(hash, sigOwner, m_owner));
        m_opNum = opNum + 1;
        m_cosignersApprovedDisband.length = 0;
        m_cosigners = newCosigners;
    }
        
    function getsum(uint[] values) private pure returns (uint s) {
        s = 0;

        for (uint j = 0; j < values.length; j++) {
            s += values[j];
        }

        return s;    
    }
        
    function transfer(
        uint opNum,
        address[] tos, 
        uint[] values,
        uint[3] cosignersPos,
        bytes sigCosigner0, 
        bytes sigCosigner1, 
        bytes sigCosigner2
        ) onlyOwner orderedOps(opNum) external {

        require (getsum(values) <= this.balance);
        bytes32 hash = keccak256("TR", m_teamId, opNum, toBytes(tos), toBytes(values));
        require (checkSignatures(hash, cosignersPos, sigCosigner0, sigCosigner1, sigCosigner2));
        m_opNum = opNum + 1;
        realtransfer(tos, values);
    }

    function transfer2(
        uint opNum,
        address[] tos, 
        uint[] values,
        bytes sigCosigner0,
        bytes sigCosigner1,
        bytes sigCosigner2,
        bytes sigOwner
        ) external {
        require(opNum >= m_opNum);
        require (getsum(values) <= this.balance);
        bytes32 hash = keccak256("TR", m_teamId, opNum, toBytes(tos), toBytes(values));
        require(checkSignatures2(hash, sigCosigner0, sigCosigner1, sigCosigner2));
        require(ecverify(hash, sigOwner, m_owner));
        m_opNum = opNum + 1;
        realtransfer(tos, values);
    }    

    function realtransfer(address[] tos, uint[] values) private {

        for (uint i = 0; i < values.length; i++) {
            tos[i].transfer(values[i]);
        }
    }

    function approveDisband() external {

        for (uint pos=0; pos<m_cosignersApprovedDisband.length; pos++) {
            if (m_cosignersApprovedDisband[pos] == msg.sender) {
                return;
            }
        }
        for (pos=0; pos<m_cosigners.length; pos++) {
            if (m_cosigners[pos] == msg.sender) {
                m_cosignersApprovedDisband.push(msg.sender);
            }
        }
    }

    function disbandTo(address to) onlyOwner external {

        uint cosignersNum = m_cosigners.length;
        uint approved = m_cosignersApprovedDisband.length;
        if (cosignersNum > 6) {
            require(approved > 2);
        }
        if (cosignersNum > 3) {
            require(approved > 1);
        }
        require(approved > 0);

        to.transfer(this.balance);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"m_cosignersApprovedDisband","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"opNum","type":"uint256"},{"name":"newCosigners","type":"address[]"},{"name":"sigCosigner0","type":"bytes"},{"name":"sigCosigner1","type":"bytes"},{"name":"sigCosigner2","type":"bytes"},{"name":"sigOwner","type":"bytes"}],"name":"changeAllCosigners2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"m_cosigners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"approveDisband","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"m_teamId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"opNum","type":"uint256"},{"name":"tos","type":"address[]"},{"name":"values","type":"uint256[]"},{"name":"sigCosigner0","type":"bytes"},{"name":"sigCosigner1","type":"bytes"},{"name":"sigCosigner2","type":"bytes"},{"name":"sigOwner","type":"bytes"}],"name":"transfer2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"opNum","type":"uint256"},{"name":"tos","type":"address[]"},{"name":"values","type":"uint256[]"},{"name":"cosignersPos","type":"uint256[3]"},{"name":"sigCosigner0","type":"bytes"},{"name":"sigCosigner1","type":"bytes"},{"name":"sigCosigner2","type":"bytes"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"opNum","type":"uint256"},{"name":"newCosigners","type":"address[]"},{"name":"cosignersPos","type":"uint256[3]"},{"name":"sigCosigner0","type":"bytes"},{"name":"sigCosigner1","type":"bytes"},{"name":"sigCosigner2","type":"bytes"}],"name":"changeAllCosigners","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"}],"name":"disbandTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cosigners","type":"address[]"},{"name":"teamId","type":"uint256"},{"name":"newOwner","type":"address"}],"name":"assignOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"m_owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m_opNum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

Deployed Bytecode

0x6060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630b7b3eb781146100bb5780631305d2de146100ed57806322c5ec0f1461013f5780633bf2b4cd146101555780638d475461146101685780638f08a60a1461018d57806391f34dbd146101eb578063a0175b9614610241578063d41097e31461028a578063de41e1a1146102a9578063deff41c1146102d7578063df98ba00146102ea575b005b34156100c657600080fd5b6100d16004356102fd565b604051600160a060020a03909116815260200160405180910390f35b34156100f857600080fd5b6100b960048035906024803580820192908101359160443580820192908101359160643580820192908101359160843580820192908101359160a435908101910135610325565b341561014a57600080fd5b6100d160043561054b565b341561016057600080fd5b6100b9610559565b341561017357600080fd5b61017b610639565b60405190815260200160405180910390f35b341561019857600080fd5b6100b960048035906024803580820192908101359160443580820192908101359160643580820192908101359160843580820192908101359160a43580820192908101359160c43590810191013561063f565b34156101f657600080fd5b6100b960048035906024803580820192908101359160443580820192908101359160649160c43580830192908201359160e43580830192908201359161010435918201910135610950565b341561024c57600080fd5b6100b960048035906024803580820192908101359160449160a43580830192908201359160c43580830192908201359160e435918201910135610bd9565b341561029557600080fd5b6100b9600160a060020a0360043516610dce565b34156102b457600080fd5b6100b9602460048035828101929101359035600160a060020a0360443516610e71565b34156102e257600080fd5b6100d1610ed6565b34156102f557600080fd5b61017b610ee5565b600480548290811061030b57fe5b600091825260209091200154600160a060020a0316905081565b60025460009033600160a060020a0390811691161461034357600080fd5b6000548c9081101561035457600080fd5b6001548d61038e8e8e8080602002602001604051908101604052809392919081815260200183836020028082843750610eeb945050505050565b60405180807f4e5300000000000000000000000000000000000000000000000000000000000081525060020184815260200183815260200182805190602001908083835b602083106103f15780518252601f1990920191602091820191016103d2565b6001836020036101000a03801982511681845116179092525050509190910194506040935050505051809103902091506104be828b8b8080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508a8a8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505089898080601f016020809104026020016040519081016040528181529291906020840183838082843750610fce945050505050565b15156104c957600080fd5b61050f8285858080601f01602080910402602001604051908101604052818152929190602084018383808284375050600254600160a060020a031693506110d992505050565b151561051a57600080fd5b60018d01600090815561052e600482611375565b5061053b60038d8d611399565b5050505050505050505050505050565b600380548290811061030b57fe5b60005b6004548110156105a75733600160a060020a031660048281548110151561057f57fe5b600091825260209091200154600160a060020a0316141561059f57610636565b60010161055c565b5060005b6003548110156106365733600160a060020a03166003828154811015156105ce57fe5b600091825260209091200154600160a060020a0316141561062e5760048054600181016105fb8382611375565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03161790555b6001016105ab565b50565b60015481565b600080548e101561064f57600080fd5b30600160a060020a0316316106908c8c808060200260200160405190810160405280939291908181526020018383602002808284375061111a945050505050565b111561069b57600080fd5b6001548e6106d58f8f8080602002602001604051908101604052809392919081815260200183836020028082843750610eeb945050505050565b61070b8e8e808060200260200160405190810160405280939291908181526020018383602002808284375061114f945050505050565b60405180807f545200000000000000000000000000000000000000000000000000000000000081525060020185815260200184815260200183805190602001908083835b6020831061076e5780518252601f19909201916020918201910161074f565b6001836020036101000a038019825116818451161790925250505091909101905082805190602001908083835b602083106107ba5780518252601f19909201916020918201910161079b565b6001836020036101000a038019825116818451161790925250505091909101955060409450505050505180910390209050610888818a8a8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505089898080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505088888080601f016020809104026020016040519081016040528181529291906020840183838082843750610fce945050505050565b151561089357600080fd5b6108d98184848080601f01602080910402602001604051908101604052818152929190602084018383808284375050600254600160a060020a031693506110d992505050565b15156108e457600080fd5b60018e0160005561053b8d8d8060208082020160405190810160405280939291908181526020018383602002808284378201915050505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750611222945050505050565b60025460009033600160a060020a0390811691161461096e57600080fd5b6000548d9081101561097f57600080fd5b30600160a060020a0316316109c08c8c808060200260200160405190810160405280939291908181526020018383602002808284375061111a945050505050565b11156109cb57600080fd5b6001548e610a058f8f8080602002602001604051908101604052809392919081815260200183836020028082843750610eeb945050505050565b610a3b8e8e808060200260200160405190810160405280939291908181526020018383602002808284375061114f945050505050565b60405180807f545200000000000000000000000000000000000000000000000000000000000081525060020185815260200184815260200183805190602001908083835b60208310610a9e5780518252601f199092019160209182019101610a7f565b6001836020036101000a038019825116818451161790925250505091909101905082805190602001908083835b60208310610aea5780518252601f199092019160209182019101610acb565b6001836020036101000a038019825116818451161790925250505091909101955060409450505050505190819003902091506108d9828a600360606040519081016040529190828260608082843782019150505050508a8a8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505089898080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505088888080601f016020809104026020016040519081016040528181529291906020840183838082843750611293945050505050565b60025460009033600160a060020a03908116911614610bf757600080fd5b6000548b90811015610c0857600080fd5b6001548c610c428d8d8080602002602001604051908101604052809392919081815260200183836020028082843750610eeb945050505050565b60405180807f4e5300000000000000000000000000000000000000000000000000000000000081525060020184815260200183815260200182805190602001908083835b60208310610ca55780518252601f199092019160209182019101610c86565b6001836020036101000a038019825116818451161790925250505091909101945060409350505050519081900390209150610d93828a600360606040519081016040529190828260608082843782019150505050508a8a8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505089898080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505088888080601f016020809104026020016040519081016040528181529291906020840183838082843750611293945050505050565b1515610d9e57600080fd5b60018c016000908155610db2600482611375565b50610dbf60038c8c611399565b50505050505050505050505050565b600254600090819033600160a060020a03908116911614610dee57600080fd5b50506003546004546006821115610e0c5760028111610e0c57600080fd5b6003821115610e225760018111610e2257600080fd5b60008111610e2f57600080fd5b82600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501515610e6c57600080fd5b505050565b60025433600160a060020a03908116911614610e8c57600080fd5b6003541515610ed057610ea160038585611399565b5060018290556002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50505050565b600254600160a060020a031681565b60005481565b610ef3611409565b6000808351601402604051805910610f085750595b818152601f19601f830116810160200160405290509250600091505b8351821015610fc7575060005b6014811015610fbc578060130360080260020a848381518110610f5057fe5b90602001906020020151600160a060020a0316811515610f6c57fe5b0460f860020a028382846014020181518110610f8457fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101610f31565b600190910190610f24565b5050919050565b600354600090818086604181518110610fe357fe5b016020015160f860020a900460f860020a0260f860020a9004915061102c888860038581548110151561101257fe5b600091825260209091200154600160a060020a03166110d9565b9050600383111561107e578560418151811061104457fe5b016020015160f860020a900460f860020a0260f860020a9004915080801561107b575061107b888760038581548110151561101257fe5b90505b60068311156110ce578460418151811061109457fe5b016020015160f860020a900460f860020a0260f860020a900491508080156110cb57506110cb888660038581548110151561101257fe5b90505b979650505050505050565b60008060006110e886866112fb565b90925090506001821515148015611110575083600160a060020a031681600160a060020a0316145b9695505050505050565b6000805b82518110156111495782818151811061113357fe5b906020019060200201519091019060010161111e565b50919050565b611157611409565b600080835160200260405180591061116c5750595b818152601f19601f830116810160200160405290509250600091505b8351821015610fc7575060005b60208110156112175780601f0360080260020a8483815181106111b457fe5b906020019060200201518115156111c757fe5b0460f860020a0283828460200201815181106111df57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611195565b600190910190611188565b60005b8151811015610e6c5782818151811061123a57fe5b90602001906020020151600160a060020a03166108fc83838151811061125c57fe5b906020019060200201519081150290604051600060405180830381858888f19350505050151561128b57600080fd5b600101611225565b6003805460009182906112b690899088908a855b60200201518154811061101257fe5b905060038211156112db578080156112d857506112d8888660038a60016112a7565b90505b60068211156110ce578080156110cb57506110cb888560038a60026112a7565b60008060008060006020860151925060408601519150606086015160001a905061132787828585611335565b945094505050509250929050565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1925080519299929850919650505050505050565b815481835581811511610e6c57600083815260209020610e6c91810190830161141b565b8280548282559060005260206000209081019282156113f9579160200282015b828111156113f957815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038435161782556020909201916001909101906113b9565b50611405929150611438565b5090565b60206040519081016040526000815290565b61143591905b808211156114055760008155600101611421565b90565b61143591905b8082111561140557805473ffffffffffffffffffffffffffffffffffffffff1916815560010161143e5600a165627a7a72305820f804d644fb80a7cd5cfe5cba3c2e743b0aebf990a32cea9576355e63600b51240029

Swarm Source

bzzr://f804d644fb80a7cd5cfe5cba3c2e743b0aebf990a32cea9576355e63600b5124

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.