ETH Price: $2,483.68 (-1.19%)

Contract

0xb40F4DaAFA3c3a2657F4f47B4D05537B8978B1aE
 

Overview

ETH Balance

0.00001501 ETH

Eth Value

$0.04 (@ $2,483.68/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer91512352019-12-23 14:57:371891 days ago1577113057IN
0xb40F4DaA...B8978B1aE
0 ETH0.000095691.1
Transfer91438232019-12-22 3:36:261892 days ago1576985786IN
0xb40F4DaA...B8978B1aE
0 ETH0.000095691.1
Transfer91270582019-12-18 19:32:231896 days ago1576697543IN
0xb40F4DaA...B8978B1aE
0 ETH0.000095691.1
Transfer90637092019-12-07 2:01:271908 days ago1575684087IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102741.1
Transfer88036322019-10-24 15:02:041951 days ago1571929324IN
0xb40F4DaA...B8978B1aE
0 ETH0.00010261.1
Transfer87624102019-10-18 3:01:371957 days ago1571367697IN
0xb40F4DaA...B8978B1aE
0 ETH0.00010261.1
Transfer86827672019-10-05 15:02:251970 days ago1570287745IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102741.1
Transfer86774242019-10-04 19:01:541971 days ago1570215714IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102671.1
Transfer86534402019-10-01 1:01:241975 days ago1569891684IN
0xb40F4DaA...B8978B1aE
0 ETH0.000663167.1
Transfer86403092019-09-28 23:43:251977 days ago1569714205IN
0xb40F4DaA...B8978B1aE
0 ETH0.000196142.1
Transfer86235842019-09-26 9:00:321979 days ago1569488432IN
0xb40F4DaA...B8978B1aE
0 ETH0.000196012.1
Transfer85828292019-09-19 23:55:441986 days ago1568937344IN
0xb40F4DaA...B8978B1aE
0 ETH0.000476035.1
Transfer85750512019-09-18 18:28:021987 days ago1568831282IN
0xb40F4DaA...B8978B1aE
0 ETH0.000476035.1
Transfer85569792019-09-15 23:19:381990 days ago1568589578IN
0xb40F4DaA...B8978B1aE
0 ETH0.00047575.1
Transfer84291842019-08-27 1:04:382010 days ago1566867878IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102741.1
Transfer84215012019-08-25 20:22:502011 days ago1566764570IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102671.1
Transfer83853362019-08-20 5:17:442016 days ago1566278264IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102741.1
Transfer83718892019-08-18 3:06:282018 days ago1566097588IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102671.1
Transfer83616822019-08-16 13:04:442020 days ago1565960684IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102741.1
Transfer83374792019-08-12 19:01:542024 days ago1565636514IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102671.1
Transfer82093302019-07-23 21:22:272044 days ago1563916947IN
0xb40F4DaA...B8978B1aE
0 ETH0.00010261.1
Transfer81847592019-07-20 2:14:172048 days ago1563588857IN
0xb40F4DaA...B8978B1aE
0 ETH0.00010261.1
Transfer81433182019-07-13 14:53:392054 days ago1563029619IN
0xb40F4DaA...B8978B1aE
0 ETH0.000102531.1
Transfer80909342019-07-05 11:01:462062 days ago1562324506IN
0xb40F4DaA...B8978B1aE
0 ETH0.000476365.1
Change All Cosig...80874492019-07-04 22:15:472063 days ago1562278547IN
0xb40F4DaA...B8978B1aE
0 ETH0.001017685.1
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
91512352019-12-23 14:57:371891 days ago1577113057
0xb40F4DaA...B8978B1aE
0.00002546 ETH
91438232019-12-22 3:36:261892 days ago1576985786
0xb40F4DaA...B8978B1aE
0.00011534 ETH
91270582019-12-18 19:32:231896 days ago1576697543
0xb40F4DaA...B8978B1aE
0.00038458 ETH
90637092019-12-07 2:01:271908 days ago1575684087
0xb40F4DaA...B8978B1aE
0.0010216 ETH
88036322019-10-24 15:02:041951 days ago1571929324
0xb40F4DaA...B8978B1aE
0.00354489 ETH
87624102019-10-18 3:01:371957 days ago1571367697
0xb40F4DaA...B8978B1aE
0.0090095 ETH
86827672019-10-05 15:02:251970 days ago1570287745
0xb40F4DaA...B8978B1aE
0.02514549 ETH
86774242019-10-04 19:01:541971 days ago1570215714
0xb40F4DaA...B8978B1aE
0.02185066 ETH
86534402019-10-01 1:01:241975 days ago1569891684
0xb40F4DaA...B8978B1aE
0.01545717 ETH
86403092019-09-28 23:43:251977 days ago1569714205
0xb40F4DaA...B8978B1aE
0.0088635 ETH
86235842019-09-26 9:00:321979 days ago1569488432
0xb40F4DaA...B8978B1aE
0.06372334 ETH
85828292019-09-19 23:55:441986 days ago1568937344
0xb40F4DaA...B8978B1aE
0.00910127 ETH
85750512019-09-18 18:28:021987 days ago1568831282
0xb40F4DaA...B8978B1aE
0.01099503 ETH
85569792019-09-15 23:19:381990 days ago1568589578
0xb40F4DaA...B8978B1aE
0.02349477 ETH
84291842019-08-27 1:04:382010 days ago1566867878
0xb40F4DaA...B8978B1aE
0.00674 ETH
84215012019-08-25 20:22:502011 days ago1566764570
0xb40F4DaA...B8978B1aE
0.02692216 ETH
83853362019-08-20 5:17:442016 days ago1566278264
0xb40F4DaA...B8978B1aE
0.0042165 ETH
83718892019-08-18 3:06:282018 days ago1566097588
0xb40F4DaA...B8978B1aE
0.00705679 ETH
83616822019-08-16 13:04:442020 days ago1565960684
0xb40F4DaA...B8978B1aE
0.01118719 ETH
83374792019-08-12 19:01:542024 days ago1565636514
0xb40F4DaA...B8978B1aE
0.00962228 ETH
82093302019-07-23 21:22:272044 days ago1563916947
0xb40F4DaA...B8978B1aE
0.00724768 ETH
81847592019-07-20 2:14:172048 days ago1563588857
0xb40F4DaA...B8978B1aE
0.00625317 ETH
81433182019-07-13 14:53:392054 days ago1563029619
0xb40F4DaA...B8978B1aE
0.00390571 ETH
80909342019-07-05 11:01:462062 days ago1562324506
0xb40F4DaA...B8978B1aE
0.04583272 ETH
80700832019-07-02 5:01:262065 days ago1562043686
0xb40F4DaA...B8978B1aE
0.00055232 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xA46d6689...A10CbBce7
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.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.24;

interface IRescue {
    function canRescue(address _addr) external returns (bool);
}

contract TeambrellaWallet {
    
    uint public m_opNum;
    uint public m_teamId;
    address public m_owner;
    address[] public m_cosigners;
    address[] public m_cosignersApprovedDisband;    

    address m_rescuer;
    
    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))))); 
            }
        }
    }

    constructor() public payable {
        m_opNum = 1;
		m_owner = msg.sender;
		m_rescuer = 0x127c4605cFe96C4649A58ff6db7B216440C9EFa2; // mainnet
    }
    
     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 
        ) 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) <= address(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) <= address(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(address(this).balance);
    }
    
    function rescue(
        address _to 
        ) onlyOwner external {

        IRescue rescuer = IRescue(m_rescuer);
        require(rescuer.canRescue(msg.sender));
        
        _to.transfer(address(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":false,"inputs":[{"name":"_to","type":"address"}],"name":"rescue","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

0x6080604052600436106100c45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630b7b3eb781146100c65780631305d2de146100fa57806322c5ec0f1461014e5780633bf2b4cd14610166578063839006f21461017b5780638d4754611461019c5780638f08a60a146101c357806391f34dbd14610223578063a0175b961461027b578063d41097e3146102c6578063de41e1a1146102e7578063deff41c114610317578063df98ba001461032c575b005b3480156100d257600080fd5b506100de600435610341565b60408051600160a060020a039092168252519081900360200190f35b34801561010657600080fd5b506100c460048035906024803580820192908101359160443580820192908101359160643580820192908101359160843580820192908101359160a435908101910135610369565b34801561015a57600080fd5b506100de600435610577565b34801561017257600080fd5b506100c4610585565b34801561018757600080fd5b506100c4600160a060020a0360043516610660565b3480156101a857600080fd5b506101b1610754565b60408051918252519081900360200190f35b3480156101cf57600080fd5b506100c460048035906024803580820192908101359160443580820192908101359160643580820192908101359160843580820192908101359160a43580820192908101359160c43590810191013561075a565b34801561022f57600080fd5b506100c460048035906024803580820192908101359160443580820192908101359160649160c43580830192908201359160e43580830192908201359161010435918201910135610a6b565b34801561028757600080fd5b506100c460048035906024803580820192908101359160449160a43580830192908201359160c43580830192908201359160e435918201910135610cf0565b3480156102d257600080fd5b506100c4600160a060020a0360043516610ee5565b3480156102f357600080fd5b506100c4602460048035828101929101359035600160a060020a0360443516610f7e565b34801561032357600080fd5b506100de610fe0565b34801561033857600080fd5b506101b1610fef565b600480548290811061034f57fe5b600091825260209091200154600160a060020a0316905081565b600080548c9081101561037b57600080fd5b6001548d6103b58e8e8080602002602001604051908101604052809392919081815260200183836020028082843750610ff5945050505050565b60405180807f4e5300000000000000000000000000000000000000000000000000000000000081525060020184815260200183815260200182805190602001908083835b602083106104185780518252601f1990920191602091820191016103f9565b6001836020036101000a0380198251168184511680821785525050505050509050019350505050604051809103902091506104e9828b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505089898080601f016020809104026020016040519081016040528093929190818152602001838380828437506110e2945050505050565b15156104f457600080fd5b61053b8285858080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600254600160a060020a031693506111e792505050565b151561054657600080fd5b60018d01600090815561055a60048261148d565b5061056760038d8d6114b1565b5050505050505050505050505050565b600380548290811061034f57fe5b60005b6004548110156105cb5760048054339190839081106105a357fe5b600091825260209091200154600160a060020a031614156105c35761065d565b600101610588565b5060005b60035481101561065d5760038054339190839081106105ea57fe5b600091825260209091200154600160a060020a0316141561065557600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916331790555b6001016105cf565b50565b600254600090600160a060020a0316331461067a57600080fd5b50600554604080517f90a6267a0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169182916390a6267a9160248083019260209291908290030181600087803b1580156106e257600080fd5b505af11580156106f6573d6000803e3d6000fd5b505050506040513d602081101561070c57600080fd5b5051151561071957600080fd5b604051600160a060020a03831690303180156108fc02916000818181858888f1935050505015801561074f573d6000803e3d6000fd5b505050565b60015481565b600080548e101561076a57600080fd5b30600160a060020a0316316107ab8c8c8080602002602001604051908101604052809392919081815260200183836020028082843750611228945050505050565b11156107b657600080fd5b6001548e6107f08f8f8080602002602001604051908101604052809392919081815260200183836020028082843750610ff5945050505050565b6108268e8e8080602002602001604051908101604052809392919081815260200183836020028082843750611260945050505050565b60405180807f545200000000000000000000000000000000000000000000000000000000000081525060020185815260200184815260200183805190602001908083835b602083106108895780518252601f19909201916020918201910161086a565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106108d15780518252601f1990920191602091820191016108b2565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040518091039020905061099e818a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505089898080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8f018190048102820181019092528d815294508d93508c92508291508401838280828437506110e2945050505050565b15156109a957600080fd5b6109f08184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375050600254600160a060020a031693506111e792505050565b15156109fb57600080fd5b8d6001016000819055506105678d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284375061133d945050505050565b600254600090600160a060020a03163314610a8557600080fd5b6000548d90811015610a9657600080fd5b30600160a060020a031631610ad78c8c8080602002602001604051908101604052809392919081815260200183836020028082843750611228945050505050565b1115610ae257600080fd5b6001548e610b1c8f8f8080602002602001604051908101604052809392919081815260200183836020028082843750610ff5945050505050565b610b528e8e8080602002602001604051908101604052809392919081815260200183836020028082843750611260945050505050565b60405180807f545200000000000000000000000000000000000000000000000000000000000081525060020185815260200184815260200183805190602001908083835b60208310610bb55780518252601f199092019160209182019101610b96565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310610bfd5780518252601f199092019160209182019101610bde565b6001836020036101000a038019825116818451168082178552505050505050905001945050505050604051809103902091506109f0828a600380602002604051908101604052809291908260036020028082843782019150505050508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505089898080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8f018190048102820181019092528d815294508d93508c92508291508401838280828437506113b6945050505050565b600254600090600160a060020a03163314610d0a57600080fd5b6000548b90811015610d1b57600080fd5b6001548c610d558d8d8080602002602001604051908101604052809392919081815260200183836020028082843750610ff5945050505050565b60405180807f4e5300000000000000000000000000000000000000000000000000000000000081525060020184815260200183815260200182805190602001908083835b60208310610db85780518252601f199092019160209182019101610d99565b6001836020036101000a038019825116818451168082178552505050505050905001935050505060405180910390209150610eaa828a600380602002604051908101604052809291908260036020028082843782019150505050508a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505089898080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8f018190048102820181019092528d815294508d93508c92508291508401838280828437506113b6945050505050565b1515610eb557600080fd5b60018c016000908155610ec960048261148d565b50610ed660038c8c6114b1565b50505050505050505050505050565b6002546000908190600160a060020a03163314610f0157600080fd5b50506003546004546006821115610f1f5760028111610f1f57600080fd5b6003821115610f355760018111610f3557600080fd5b60008111610f4257600080fd5b604051600160a060020a03841690303180156108fc02916000818181858888f19350505050158015610f78573d6000803e3d6000fd5b50505050565b600254600160a060020a03163314610f9557600080fd5b6003541515610f7857610faa600385856114b1565b50600182905560028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550505050565b600254600160a060020a031681565b60005481565b606060008083516014026040519080825280601f01601f19166020018201604052801561102c578160200160208202803883390190505b509250600091505b83518210156110db575060005b60148110156110d0578060130360080260020a848381518110151561106257fe5b90602001906020020151600160a060020a031681151561107e57fe5b0460f860020a028382846014020181518110151561109857fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611041565b600190910190611034565b5050919050565b60035483516000919082908190879060419081106110fc57fe5b90602001015160f860020a900460f860020a0260f860020a90049150611146888860038581548110151561112c57fe5b600091825260209091200154600160a060020a03166111e7565b905060038311156111925785604181518110151561116057fe5b016020015160f860020a90819004810204915080801561118f575061118f888760038581548110151561112c57fe5b90505b60068311156111dc578460418151811015156111aa57fe5b016020015160f860020a9081900481020491508080156111d957506111d9888660038581548110151561112c57fe5b90505b979650505050505050565b60008060006111f6868661141e565b9092509050600182151514801561121e575083600160a060020a031681600160a060020a0316145b9695505050505050565b6000805b825181101561125a57828181518110151561124357fe5b60209081029091010151919091019060010161122c565b50919050565b606060008083516020026040519080825280601f01601f191660200182016040528015611297578160200160208202803883390190505b509250600091505b83518210156110db575060005b60208110156113325780601f0360080260020a84838151811015156112cd57fe5b906020019060200201518115156112e057fe5b0460f860020a02838284602002018151811015156112fa57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016112ac565b60019091019061129f565b60005b815181101561074f57828181518110151561135757fe5b90602001906020020151600160a060020a03166108fc838381518110151561137b57fe5b602090810290910101516040518115909202916000818181858888f193505050501580156113ad573d6000803e3d6000fd5b50600101611340565b6003805460009182906113d990899088908a855b60200201518154811061112c57fe5b905060038211156113fe578080156113fb57506113fb888660038a60016113ca565b90505b60068211156111dc578080156111d957506111d9888560038a60026113ca565b60208101516040820151606083015160009283929091831a61144287828585611450565b945094505050509250929050565b60008060008060405188815287602082015286604082015285606082015260208160808360006001610bb8f1905190999098509650505050505050565b81548183558181111561074f5760008381526020902061074f918101908301611521565b828054828255906000526020600020908101928215611511579160200282015b8281111561151157815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038435161782556020909201916001909101906114d1565b5061151d92915061153e565b5090565b61153b91905b8082111561151d5760008155600101611527565b90565b61153b91905b8082111561151d57805473ffffffffffffffffffffffffffffffffffffffff191681556001016115445600a165627a7a723058206e4e4e3318778c8638fd37f03a5de2b524b8873f0bcaaf9585dfa57ff4cabbe30029

Swarm Source

bzzr://6e4e4e3318778c8638fd37f03a5de2b524b8873f0bcaaf9585dfa57ff4cabbe3

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.