Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xc0A86bDDb6cf1930FF05B6B153F501704a90373C
Balance 0 ETH
Nonce 1
Code Size 4244 bytes
Last Active
Indexed Transactions 109 (10,632,35710,652,782)
Value (indexed) ↓ 0.500000 ETH
Gas Used (indexed) 3,716,236
External Etherscan · Sourcify

Contract Bytecode

4244 bytes
0x60806040526004361061008a5760003560e01c8063b2596a6711610059578063b2596a67146101ff578063b879a7e014610242578063eb3549a314610284578063ebf0c717146102bd578063f207564e146102d2576100a9565b8063085bea3c146100f35780638fafac081461013957806394e8d28414610172578063a87430ba14610199576100a9565b366100a9576000546100a79033906001600160a01b0316346102ef565b005b6100a7336100ed6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104ab92505050565b346102ef565b3480156100ff57600080fd5b5061011d6004803603602081101561011657600080fd5b50356104b2565b604080516001600160a01b039092168252519081900360200190f35b34801561014557600080fd5b5061011d6004803603604081101561015c57600080fd5b506001600160a01b0381351690602001356104cd565b34801561017e57600080fd5b50610187610855565b60408051918252519081900360200190f35b3480156101a557600080fd5b506101cc600480360360208110156101bc57600080fd5b50356001600160a01b031661085b565b604080519586526001600160a01b0390941660208601528484019290925260608401526080830152519081900360a00190f35b34801561020b57600080fd5b506102296004803603602081101561022257600080fd5b5035610895565b6040805192835260208301919091528051918290030190f35b34801561024e57600080fd5b5061011d6004803603606081101561026557600080fd5b5080356001600160a01b0316906020810135906040013560ff166108c0565b34801561029057600080fd5b5061011d600480360360408110156102a757600080fd5b506001600160a01b038135169060200135610996565b3480156102c957600080fd5b5061011d610a76565b6100a7600480360360208110156102e857600080fd5b5035610a85565b6001600160a01b03831660009081526003602052604090205415610352576040805162461bcd60e51b81526020600482015260156024820152742ab9b2b91030b93632b0b23c903932b3b4b9ba32b960591b604482015290519081900360640190fd5b6001600160a01b0382166000908152600360205260409020546103b2576040805162461bcd60e51b81526020600482015260136024820152722ab83634b732903737ba103932b3b4b9ba32b960691b604482015290519081900360640190fd5b60026000815481106103c057fe5b9060005260206000209060020201600001548114610412576040805162461bcd60e51b815260206004820152600a60248201526910985908185b5bdd5b9d60b21b604482015290519081900360640190fd5b604080516311f5f58160e31b81526001600160a01b038416600482015260006024820181905291513091638fafac08916044808301926020929190829003018186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d602081101561048b57600080fd5b5051905061049a848483610aac565b6104a5818584610b48565b50505050565b6014015190565b6004602052600090815260409020546001600160a01b031681565b6001600160a01b03821660009081526003602090815260408083208484526006019091528120546002111561050357508161084f565b60408051610400808252618020820190925260609160208201618000803683375050506001600160a01b0385166000908152600360209081526040808320878452600601909152812080549293509161055857fe5b600091825260208220015482516001600160a01b0390911691839161057957fe5b6001600160a01b03928316602091820292909201810191909152908516600090815260038252604080822086835260060190925220805460019081106105bb57fe5b9060005260206000200160009054906101000a90046001600160a01b0316816001815181106105e657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060005b6104008161ffff16101561080e57600260036000848461ffff168151811061062d57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600601600086815260200190815260200160002080549050101561069457818161ffff168151811061068357fe5b60200260200101519250505061084f565b6101ff8161ffff16101561080657600081600101600202905060036000848461ffff16815181106106c157fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600601600086815260200190815260200160002060008154811061070957fe5b9060005260206000200160009054906101000a90046001600160a01b0316838261ffff168151811061073757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060036000848461ffff168151811061076b57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060060160008681526020019081526020016000206001815481106107b357fe5b9060005260206000200160009054906101000a90046001600160a01b0316838260010161ffff16815181106107e457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b600101610609565b506040805162461bcd60e51b815260206004820152601060248201526f273790333932b2903932b332b93932b960811b604482015290519081900360640190fd5b92915050565b60015481565b60036020819052600091825260409091208054600182015460028301549383015460049093015491936001600160a01b0390911692909185565b600281815481106108a257fe5b60009182526020909120600290910201805460019091015490915082565b600080546001600160a01b03858116911614806108de575060ff8216155b156108ea57508261098f565b6001600160a01b0384811660009081526003602090815260408083208784526005018252918290205482516305c3cd3f60e51b8152931660048401526024830186905260ff60001986011660448401529051309263b879a7e0926064808301939192829003018186803b15801561096057600080fd5b505afa158015610974573d6000803e3d6000fd5b505050506040513d602081101561098a57600080fd5b505190505b9392505050565b600080546001600160a01b03848116911614806109ce57506001600160a01b0383166000908152600360205260409020600201548211155b156109da57508161084f565b6001600160a01b03838116600090815260036020908152604080832083805260050182529182902054825163eb3549a360e01b815293166004840152602483018590529051309263eb3549a3926044808301939192829003018186803b158015610a4357600080fd5b505afa158015610a57573d6000803e3d6000fd5b505050506040513d6020811015610a6d57600080fd5b50519392505050565b6000546001600160a01b031681565b600081815260046020526040902054610aa99033906001600160a01b0316346102ef565b50565b6001805481018082556001600160a01b03808616600081815260036020908152604080832095865594860180549489166001600160a01b031995861681179091558654835260048252918590208054909416831790935593548351908152925190927fcc0bec1447060c88cdc5a739cf29cfa26c453574dd3f5b9e4dcc317d6401cb1c92908290030190a3610b4383826000610f1e565b505050565b600280546001600160a01b038516600090815260036020526040902082015481610b6e57fe5b0681548110610b7957fe5b90600052602060002090600202016001015460036000856001600160a01b03166001600160a01b03168152602001908152602001600020600301541015610c36576001600160a01b038316600090815260036020819052604090912001805482019055610be68382610fe4565b816001600160a01b0316836001600160a01b03167f927ca72beeafa042127c9b97483d6b6f5ada2790237a7b3310232cab8888ac27836040518082815260200191505060405180910390a3610b43565b6001600160a01b0380841660008181526003602090815260409182902060040180548601905581518581529151938616937fc71fdc08141260a443e043c12977cd79f38a483a5d699fb3cf26d392b6c5538f9281900390910190a36001600160a01b03831660009081526003602052604090206002908101548154600190910191908281610cc057fe5b0681548110610ccb57fe5b600091825260208083206002909202909101546001600160a01b0387168352600390915260409091206004015410610ee6576001600160a01b038085166000818152600360205260408120600481018290556002018490555490911614610eda576001600160a01b038481166000908152600360209081526040808320838052600501825280832054815163eb3549a360e01b815294166004850152602484018590525191923092638fafac0892849263b879a7e092849263eb3549a39260448082019391829003018186803b158015610da457600080fd5b505afa158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b505186600281066040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018260ff168152602001935050505060206040518083038186803b158015610e2357600080fd5b505afa158015610e37573d6000803e3d6000fd5b505050506040513d6020811015610e4d57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201869052516044808301926020929190829003018186803b158015610e9b57600080fd5b505afa158015610eaf573d6000803e3d6000fd5b505050506040513d6020811015610ec557600080fd5b50519050610ed4858284610f1e565b50610ee6565b610ee684600083610f1e565b6001600160a01b038085166000908152600360209081526040808320600281015484526005019091529020546104a591168484610b48565b6001600160a01b03821615610f94576001600160a01b038084166000818152600360208181526040808420878552600501825280842080549689166001600160a01b0319978816811790915584529181528183208684526006018152908220805460018101825590835291200180549092161790555b816001600160a01b0316836001600160a01b03167fed7c6f00c100d721b62778a73df8df01560fed8f5597b85b62e6e0150bd20d91836040518082815260200191505060405180910390a3505050565b6001600160a01b038216158061101c57506040516001600160a01b0383169082156108fc029083906000818181858888f19350505050155b1561105a57600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610b43573d6000803e3d6000fd5b505056fea26469706673582212201a61edf078ea26e1d2be2368331b1a515afdb97a7eded59e34b0899dd172e29864736f6c634300060c0033

Verified Source Code Partial Match

Compiler: v0.6.12+commit.27d51765 EVM: istanbul Optimization: Yes (200 runs)
AbsGoldenMatrix.sol 190 lines
/*! absgoldenmatrix.sol | (c) 2020 Develop by BelovITLab LLC (smartcontract.ru), author @stupidlovejoy | SPDX-License-Identifier: MIT License */

pragma solidity 0.6.12;

contract AbsGoldenMatrix {
    struct Level {
        uint256 price;
        uint256 profit;
    }

    struct User {
        uint256 id;
        address inviter;
        uint256 level;
        uint256 profit;
        uint256 hold;
        mapping(uint256 => address) uplines;
        mapping(uint256 => address[]) referrals;
    }

    address payable public root;
    uint256 public last_id;

    Level[] public levels;
    mapping(address => User) public users;
    mapping(uint256 => address) public users_ids;

    event Register(address indexed addr, address indexed inviter, uint256 id);
    event LevelUp(address indexed addr, address indexed upline, uint256 level);
    event Profit(address indexed addr, address indexed referral, uint256 value);
    event Hold(address indexed addr, address indexed referral, uint256 value);

    constructor() public {
        levels.push(Level(0.05 ether, 0.05 ether));
        levels.push(Level(0.05 ether, 0.05 ether));

        levels.push(Level(0.15 ether, 0.15 ether));
        levels.push(Level(0.15 ether, 0.15 ether));

        levels.push(Level(0.45 ether, 0.45 ether));
        levels.push(Level(0.45 ether, 0.45 ether));
        
        levels.push(Level(1.35 ether, 1.35 ether));
        levels.push(Level(1.35 ether, 1.35 ether));
        
        levels.push(Level(4.05 ether, 4.05 ether));
        levels.push(Level(4.05 ether, 4.05 ether));
        
        levels.push(Level(12.15 ether, 12.15 ether));
        levels.push(Level(12.15 ether, 12.15 ether));
        
        levels.push(Level(36.45 ether, 36.45 ether));
        levels.push(Level(36.45 ether, 145.75 ether));

        root = 0xcC16f3dcE95cC295741c2f638c22a43C23a8e009;

        _newUser(root, address(0), address(0));
    }

    receive() payable external {
        _register(msg.sender, root, msg.value);
    }

    fallback() payable external {
        _register(msg.sender, _bytesToAddress(msg.data), msg.value);
    }

    function _send(address _addr, uint256 _value) private {
        if(_addr == address(0) || !payable(_addr).send(_value)) {
            root.transfer(_value);
        }
    }

    function _newUser(address _addr, address _inviter, address _upline) private {
        users[_addr].id = ++last_id;
        users[_addr].inviter = _inviter;
        users_ids[last_id] = _addr;

        emit Register(_addr, _inviter, last_id);

        _levelUp(_addr, _upline, 0);
    }

    function _levelUp(address _addr, address _upline, uint256 _level) private {
        if(_upline != address(0)) {
            users[_addr].uplines[_level] = _upline;
            users[_upline].referrals[_level].push(_addr);
        }

        emit LevelUp(_addr, _upline, _level);
    }

    function _transferFunds(address _user, address _from, uint256 _amount) private {
        if(users[_user].profit < levels[users[_user].level % levels.length].profit) {
            users[_user].profit += _amount;
            
            _send(_user, _amount);
            
            emit Profit(_user, _from, _amount);
        }
        else {
            users[_user].hold += _amount;
            
            emit Hold(_user, _from, _amount);

            uint256 next_level = users[_user].level + 1;

            if(users[_user].hold >= levels[next_level % levels.length].price) {
                users[_user].hold = 0;
                users[_user].level = next_level;

                if(_user != root) {
                    address upline = this.findFreeReferrer(
                        this.findUplineOffset(
                            this.findUplineHasLevel(
                                users[_user].uplines[0],
                                next_level
                            ),
                            next_level,
                            uint8(next_level % 2)
                        ),
                        next_level
                    );
                    
                    _levelUp(_user, upline, next_level);
                }
                else _levelUp(_user, address(0), next_level);
            }

            _transferFunds(users[_user].uplines[users[_user].level], _from, _amount);
        }
    }

    function _register(address _user, address _inviter, uint256 _value) private {
        require(users[_user].id == 0, "User arleady register");
        require(users[_inviter].id != 0, "Upline not register");
        require(_value == levels[0].price, "Bad amount");

        address upline = this.findFreeReferrer(_inviter, 0);
        
        _newUser(_user, _inviter, upline);
        _transferFunds(upline, _user, _value);
    }

    function register(uint256 _upline_id) payable external {
        _register(msg.sender, users_ids[_upline_id], msg.value);
    }

    function findUplineHasLevel(address _user, uint256 _level) external view returns(address) {
        if(_user == root || users[_user].level >= _level) return _user;

        return this.findUplineHasLevel(users[_user].uplines[0], _level);
    }

    function findUplineOffset(address _user, uint256 _level, uint8 _offset) external view returns(address) {
        if(_user == root || _offset == 0) return _user;

        return this.findUplineOffset(users[_user].uplines[_level], _level, _offset - 1);
    }

    function findFreeReferrer(address _user, uint256 _level) external view returns(address) {
        if(users[_user].referrals[_level].length < 2) return _user;

        address[] memory refs = new address[](1024);
        
        refs[0] = users[_user].referrals[_level][0];
        refs[1] = users[_user].referrals[_level][1];

        for(uint16 i = 0; i < 1024; i++) {
            if(users[refs[i]].referrals[_level].length < 2) {
                return refs[i];
            }

            if(i < 511) {
                uint16 n = (i + 1) * 2;

                refs[n] = users[refs[i]].referrals[_level][0];
                refs[n + 1] = users[refs[i]].referrals[_level][1];
            }
        }

        revert("No free referrer");
    }

    function _bytesToAddress(bytes memory _data) private pure returns(address addr) {
        assembly {
            addr := mload(add(_data, 20))
        }
    }
}

Read Contract

findFreeReferrer 0x8fafac08 → address
findUplineHasLevel 0xeb3549a3 → address
findUplineOffset 0xb879a7e0 → address
last_id 0x94e8d284 → uint256
levels 0xb2596a67 → uint256, uint256
root 0xebf0c717 → address
users 0xa87430ba → uint256, address, uint256, uint256, uint256
users_ids 0x085bea3c → address

Write Contract 1 functions

These functions modify contract state and require a wallet transaction to execute.

register 0xf207564e
uint256 _upline_id

Recent Transactions

CSV View All 109 Transactions →
|
Hash Method Block Age From/To Value Txn Fee Type
0x0e5920f3...54f7f3 Fail 0x99c6ab95 10,652,782 IN 0x40D0C8d4...5876 0.050000 ETH 0.00290714 ETH Legacy
0x7b006019...2b56bb Fail 0x99c6ab95 10,652,782 IN 0x40D0C8d4...5876 0.050000 ETH 0.00290714 ETH Legacy
0xc7d5401b...87dc94 Fail Transfer 10,634,846 IN 0x40D0C8d4...5876 0.050000 ETH 0.01971055 ETH Legacy
0x7a51ef06...ed63f3 Transfer 10,634,846 IN 0x40D0C8d4...5876 0.050000 ETH 0.04440462 ETH Legacy
0xcbe5743d...862d5a 0x9a6e5f0f 10,634,340 IN 0xFAD78524...dc03 0.050000 ETH 0.01403274 ETH Legacy
0xea4b7df4...a1f53d 0xd87bd55d 10,634,080 IN 0x48F2B27d...10C2 0.050000 ETH 0.04105402 ETH Legacy
0x73fe0eda...e48fae Fail 0x8ac16244 10,632,525 IN 0xB2933d5b...C14D 0.050000 ETH 0.02160000 ETH Legacy
0x00dfbf1d...92334c Fail 0xcc16f3dc 10,632,512 IN 0x5291832b...F34c 0.050000 ETH 0.04831352 ETH Legacy
0x0b970bc0...0b05dd Fail 0x0b9e24ef 10,632,362 IN 0xeA5b1165...a711 0.050000 ETH 0.03996557 ETH Legacy
0xcd2c65de...d2bc7f 0x3c81d03e 10,632,357 IN 0x3d153938...A8F9 0.050000 ETH 0.04203475 ETH Legacy