ETH Price: $3,642.22 (+8.30%)

Contract

0xaa9C38fE6B0373268e3371730dc463B67E3a1056
 

Overview

ETH Balance

0.00056977 ETH

Eth Value

$2.08 (@ $3,642.22/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer202954782024-07-13 5:24:23137 days ago1720848263IN
0xaa9C38fE...67E3a1056
0 ETH0.000031881
Transfer103098302020-06-21 15:09:561620 days ago1592752196IN
0xaa9C38fE...67E3a1056
0 ETH0.0008621210
Transfer97040302020-03-19 19:37:501714 days ago1584646670IN
0xaa9C38fE...67E3a1056
0 ETH0.000094851.1
Transfer97005002020-03-19 6:28:461714 days ago1584599326IN
0xaa9C38fE...67E3a1056
0 ETH0.000086231
Transfer96072702020-03-04 22:00:061729 days ago1583359206IN
0xaa9C38fE...67E3a1056
0 ETH0.000094831.1
Transfer96029742020-03-04 6:03:461729 days ago1583301826IN
0xaa9C38fE...67E3a1056
0 ETH0.000094841.1
Transfer95769182020-02-29 6:04:351733 days ago1582956275IN
0xaa9C38fE...67E3a1056
0 ETH0.000094871.1
Change All Cosig...94413962020-02-08 10:02:101754 days ago1581156130IN
0xaa9C38fE...67E3a1056
0 ETH0.000199021.1
Transfer94403522020-02-08 6:00:361754 days ago1581141636IN
0xaa9C38fE...67E3a1056
0 ETH0.000094871.1
Transfer94399332020-02-08 4:30:051754 days ago1581136205IN
0xaa9C38fE...67E3a1056
0 ETH0.000094871.1
Transfer93828242020-01-30 9:46:041763 days ago1580377564IN
0xaa9C38fE...67E3a1056
0 ETH0.000094871.1
Transfer93427492020-01-24 6:03:321769 days ago1579845812IN
0xaa9C38fE...67E3a1056
0 ETH0.000094871.1
Transfer92929642020-01-16 15:19:421777 days ago1579187982IN
0xaa9C38fE...67E3a1056
0 ETH0.000256531.1
Transfer91940672020-01-01 4:02:391792 days ago1577851359IN
0xaa9C38fE...67E3a1056
0 ETH0.000094871.1
Transfer91451352019-12-22 10:01:051802 days ago1577008865IN
0xaa9C38fE...67E3a1056
0 ETH0.000094831.1
Transfer91413302019-12-21 15:35:211803 days ago1576942521IN
0xaa9C38fE...67E3a1056
0.055 ETH0.001893690
Transfer91218022019-12-17 18:07:111807 days ago1576606031IN
0xaa9C38fE...67E3a1056
0 ETH0.000094831.1
Transfer90726272019-12-08 16:01:091816 days ago1575820869IN
0xaa9C38fE...67E3a1056
0 ETH0.000094841.1
Transfer88007792019-10-24 4:08:091861 days ago1571890089IN
0xaa9C38fE...67E3a1056
0 ETH0.000044811.1
Transfer88007162019-10-24 3:54:291861 days ago1571889269IN
0xaa9C38fE...67E3a1056
0 ETH0.000044811.1
Transfer88005902019-10-24 3:21:071861 days ago1571887267IN
0xaa9C38fE...67E3a1056
0 ETH0.000044811.1
Transfer88005252019-10-24 3:05:161861 days ago1571886316IN
0xaa9C38fE...67E3a1056
0 ETH0.000101821.1
Transfer87591812019-10-17 15:01:011868 days ago1571324461IN
0xaa9C38fE...67E3a1056
0 ETH0.000101751.1
Transfer87028362019-10-08 18:10:251877 days ago1570558225IN
0xaa9C38fE...67E3a1056
0 ETH0.000101681.1
Transfer86546242019-10-01 5:25:391884 days ago1569907539IN
0xaa9C38fE...67E3a1056
0 ETH0.000101821.1
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
103098302020-06-21 15:09:561620 days ago1592752196
0xaa9C38fE...67E3a1056
0.00053074 ETH
97040302020-03-19 19:37:501714 days ago1584646670
0xaa9C38fE...67E3a1056
0.00236565 ETH
97005002020-03-19 6:28:461714 days ago1584599326
0xaa9C38fE...67E3a1056
0.00046144 ETH
96072702020-03-04 22:00:061729 days ago1583359206
0xaa9C38fE...67E3a1056
0.00150648 ETH
96029742020-03-04 6:03:461729 days ago1583301826
0xaa9C38fE...67E3a1056
0.00054331 ETH
95769182020-02-29 6:04:351733 days ago1582956275
0xaa9C38fE...67E3a1056
0.00148512 ETH
94403522020-02-08 6:00:361754 days ago1581141636
0xaa9C38fE...67E3a1056
0.00509399 ETH
94399332020-02-08 4:30:051754 days ago1581136205
0xaa9C38fE...67E3a1056
0.00195496 ETH
93828242020-01-30 9:46:041763 days ago1580377564
0xaa9C38fE...67E3a1056
0.00300692 ETH
93427492020-01-24 6:03:321769 days ago1579845812
0xaa9C38fE...67E3a1056
0.02262378 ETH
92929642020-01-16 15:19:421777 days ago1579187982
0xaa9C38fE...67E3a1056
0.00132171 ETH
92929642020-01-16 15:19:421777 days ago1579187982
0xaa9C38fE...67E3a1056
0.00120412 ETH
92929642020-01-16 15:19:421777 days ago1579187982
0xaa9C38fE...67E3a1056
0.00068154 ETH
92929642020-01-16 15:19:421777 days ago1579187982
0xaa9C38fE...67E3a1056
0.00259271 ETH
92929642020-01-16 15:19:421777 days ago1579187982
0xaa9C38fE...67E3a1056
0.00166303 ETH
92929642020-01-16 15:19:421777 days ago1579187982
0xaa9C38fE...67E3a1056
0.00003814 ETH
91940672020-01-01 4:02:391792 days ago1577851359
0xaa9C38fE...67E3a1056
0.00736861 ETH
91451352019-12-22 10:01:051802 days ago1577008865
0xaa9C38fE...67E3a1056
0.0000117 ETH
91218022019-12-17 18:07:111807 days ago1576606031
0xaa9C38fE...67E3a1056
0.00005848 ETH
90726272019-12-08 16:01:091816 days ago1575820869
0xaa9C38fE...67E3a1056
0.00012294 ETH
88005252019-10-24 3:05:161861 days ago1571886316
0xaa9C38fE...67E3a1056
0.00046473 ETH
87591812019-10-17 15:01:011868 days ago1571324461
0xaa9C38fE...67E3a1056
0.00058612 ETH
87028362019-10-08 18:10:251877 days ago1570558225
0xaa9C38fE...67E3a1056
0.00257621 ETH
86546242019-10-01 5:25:391884 days ago1569907539
0xaa9C38fE...67E3a1056
0.01311553 ETH
86492522019-09-30 9:23:311885 days ago1569835411
0xaa9C38fE...67E3a1056
0.0061473 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.