Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xca84274bC592F234C90aa9731a321f78fc1693Cd
Balance 0 ETH
Nonce 1
Code Size 5111 bytes
Last Active
Indexed Transactions 845 (10,729,00010,729,822)
Value (indexed) ↓ 0.500000 ETH
Gas Used (indexed) 2,497,703
External Etherscan · Sourcify

Contract Bytecode

5111 bytes
0x6080604052600436106100c65760003560e01c806394e8d2841161007f578063b879a7e011610059578063b879a7e0146103a0578063eb3549a3146103e2578063ebf0c7171461041b578063f207564e14610430576100e5565b806394e8d284146102d0578063a87430ba146102f7578063b2596a671461035d576100e5565b8063085bea3c1461012f5780632b546601146101755780636a1d8ce21461018a5780637c78008f146102595780638da5cb5b146102825780638fafac0814610297576100e5565b366100e5576001546100e39033906001600160a01b03163461044d565b005b6100e3336101296000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061060992505050565b3461044d565b34801561013b57600080fd5b506101596004803603602081101561015257600080fd5b5035610610565b604080516001600160a01b039092168252519081900360200190f35b34801561018157600080fd5b506100e361062b565b34801561019657600080fd5b506100e3600480360360408110156101ad57600080fd5b8101906020810181356401000000008111156101c857600080fd5b8201836020820111156101da57600080fd5b803590602001918460208302840111640100000000831117156101fc57600080fd5b91939092909160208101903564010000000081111561021a57600080fd5b82018360208201111561022c57600080fd5b8035906020019184602083028401116401000000008311171561024e57600080fd5b5090925090506106e0565b34801561026557600080fd5b5061026e6107e2565b604080519115158252519081900360200190f35b34801561028e57600080fd5b506101596107f2565b3480156102a357600080fd5b50610159600480360360408110156102ba57600080fd5b506001600160a01b038135169060200135610801565b3480156102dc57600080fd5b506102e5610b89565b60408051918252519081900360200190f35b34801561030357600080fd5b5061032a6004803603602081101561031a57600080fd5b50356001600160a01b0316610b8f565b604080519586526001600160a01b0390941660208601528484019290925260608401526080830152519081900360a00190f35b34801561036957600080fd5b506103876004803603602081101561038057600080fd5b5035610bc9565b6040805192835260208301919091528051918290030190f35b3480156103ac57600080fd5b50610159600480360360608110156103c357600080fd5b5080356001600160a01b0316906020810135906040013560ff16610bf4565b3480156103ee57600080fd5b506101596004803603604081101561040557600080fd5b506001600160a01b038135169060200135610cce565b34801561042757600080fd5b50610159610db2565b6100e36004803603602081101561044657600080fd5b5035610dc1565b6001600160a01b038316600090815260046020526040902054156104b0576040805162461bcd60e51b81526020600482015260156024820152742ab9b2b91030b93632b0b23c903932b3b4b9ba32b960591b604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054610510576040805162461bcd60e51b81526020600482015260136024820152722ab83634b732903737ba103932b3b4b9ba32b960691b604482015290519081900360640190fd5b600360008154811061051e57fe5b9060005260206000209060020201600001548114610570576040805162461bcd60e51b815260206004820152600a60248201526910985908185b5bdd5b9d60b21b604482015290519081900360640190fd5b604080516311f5f58160e31b81526001600160a01b038416600482015260006024820181905291513091638fafac08916044808301926020929190829003018186803b1580156105bf57600080fd5b505afa1580156105d3573d6000803e3d6000fd5b505050506040513d60208110156105e957600080fd5b505190506105f8848483610de8565b610603818584610e88565b50505050565b6014015190565b6005602052600090815260409020546001600160a01b031681565b6000546001600160a01b03163314610677576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015290519081900360640190fd5b600054600160a01b900460ff16156106cb576040805162461bcd60e51b815260206004820152601260248201527153796e6320616c726561647920636c6f736560701b604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461072c576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015290519081900360640190fd5b600054600160a01b900460ff1615610780576040805162461bcd60e51b815260206004820152601260248201527153796e6320616c726561647920636c6f736560701b604482015290519081900360640190fd5b60005b838110156107db576107d385858381811061079a57fe5b905060200201356001600160a01b03168484848181106107b657fe5b905060200201356001600160a01b031666b1a2bc2ec5000061044d565b600101610783565b5050505050565b600054600160a01b900460ff1681565b6000546001600160a01b031681565b6001600160a01b038216600090815260046020908152604080832084845260060190915281205460021115610837575081610b83565b60408051610400808252618020820190925260609160208201618000803683375050506001600160a01b0385166000908152600460209081526040808320878452600601909152812080549293509161088c57fe5b600091825260208220015482516001600160a01b039091169183916108ad57fe5b6001600160a01b03928316602091820292909201810191909152908516600090815260048252604080822086835260060190925220805460019081106108ef57fe5b9060005260206000200160009054906101000a90046001600160a01b03168160018151811061091a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060005b6104008161ffff161015610b4257600260046000848461ffff168151811061096157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060060160008681526020019081526020016000208054905010156109c857818161ffff16815181106109b757fe5b602002602001015192505050610b83565b6101ff8161ffff161015610b3a57600081600101600202905060046000848461ffff16815181106109f557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206006016000868152602001908152602001600020600081548110610a3d57fe5b9060005260206000200160009054906101000a90046001600160a01b0316838261ffff1681518110610a6b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060046000848461ffff1681518110610a9f57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206006016000868152602001908152602001600020600181548110610ae757fe5b9060005260206000200160009054906101000a90046001600160a01b0316838260010161ffff1681518110610b1857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b60010161093d565b506040805162461bcd60e51b815260206004820152601060248201526f273790333932b2903932b332b93932b960811b604482015290519081900360640190fd5b92915050565b60025481565b60046020819052600091825260409091208054600182015460028301546003840154939094015491936001600160a01b0390911692909185565b60038181548110610bd657fe5b60009182526020909120600290910201805460019091015490915082565b6001546000906001600160a01b0385811691161480610c14575060ff8216155b15610c20575082610cc7565b6001600160a01b0384811660009081526004602081815260408084208885526005018252928390205483516305c3cd3f60e51b81529416918401919091526024830186905260ff60001986011660448401529051309263b879a7e0926064808301939192829003018186803b158015610c9857600080fd5b505afa158015610cac573d6000803e3d6000fd5b505050506040513d6020811015610cc257600080fd5b505190505b9392505050565b6001546000906001600160a01b0384811691161480610d0857506001600160a01b0383166000908152600460205260409020600201548211155b15610d14575081610b83565b6001600160a01b03838116600090815260046020818152604080842084805260050182529283902054835163eb3549a360e01b8152941691840191909152602483018590529051309263eb3549a3926044808301939192829003018186803b158015610d7f57600080fd5b505afa158015610d93573d6000803e3d6000fd5b505050506040513d6020811015610da957600080fd5b50519392505050565b6001546001600160a01b031681565b600081815260056020526040902054610de59033906001600160a01b03163461044d565b50565b6002805460019081018083556001600160a01b0380871660008181526004602090815260408083209586559490950180549389166001600160a01b03199485168117909155865482526005865290849020805490931682179092559354825190815291519093927fcc0bec1447060c88cdc5a739cf29cfa26c453574dd3f5b9e4dcc317d6401cb1c928290030190a3610e838382600061126a565b505050565b600380546001600160a01b03851660009081526004602052604090206002015481610eaf57fe5b0681548110610eba57fe5b90600052602060002090600202016001015460046000856001600160a01b03166001600160a01b03168152602001908152602001600020600301541015610f76576001600160a01b0383166000908152600460205260409020600301805482019055610f268382611330565b816001600160a01b0316836001600160a01b03167f927ca72beeafa042127c9b97483d6b6f5ada2790237a7b3310232cab8888ac27836040518082815260200191505060405180910390a3610e83565b6001600160a01b0380841660008181526004602081815260409283902090910180548601905581518581529151938616937fc71fdc08141260a443e043c12977cd79f38a483a5d699fb3cf26d392b6c5538f9281900390910190a36001600160a01b038316600090815260046020526040902060020154600380546001909201918281610fff57fe5b068154811061100a57fe5b600091825260208083206002909202909101546001600160a01b03871683526004918290526040909220015410611232576001600160a01b0380851660008181526004602081905260408220600381018390559081019190915560020183905560015490911614611226576001600160a01b038481166000908152600460208181526040808420848052600501825280842054815163eb3549a360e01b815295169285019290925260248401859052905191923092638fafac0892849263b879a7e092849263eb3549a39260448082019391829003018186803b1580156110f057600080fd5b505afa158015611104573d6000803e3d6000fd5b505050506040513d602081101561111a57600080fd5b505186600281066040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018260ff168152602001935050505060206040518083038186803b15801561116f57600080fd5b505afa158015611183573d6000803e3d6000fd5b505050506040513d602081101561119957600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201869052516044808301926020929190829003018186803b1580156111e757600080fd5b505afa1580156111fb573d6000803e3d6000fd5b505050506040513d602081101561121157600080fd5b5051905061122085828461126a565b50611232565b6112328460008361126a565b6001600160a01b0380851660009081526004602090815260408083206002810154845260050190915290205461060391168484610e88565b6001600160a01b038216156112e0576001600160a01b038084166000818152600460208181526040808420878552600501825280842080549689166001600160a01b0319978816811790915584529181528183208684526006018152908220805460018101825590835291200180549092161790555b816001600160a01b0316836001600160a01b03167fed7c6f00c100d721b62778a73df8df01560fed8f5597b85b62e6e0150bd20d91836040518082815260200191505060405180910390a3505050565b600054600160a01b900460ff16611346576113bd565b6001600160a01b038216158061137e57506040516001600160a01b0383169082156108fc029083906000818181858888f19350505050155b156113bd576001546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e83573d6000803e3d6000fd5b505056fea2646970667358221220afaec4b713073ce2cc52a792588a4b12db8d8ef5e4fc5db19b3425733b07ea7664736f6c634300060c0033

Verified Source Code Partial Match

Compiler: v0.6.12+commit.27d51765 EVM: istanbul Optimization: Yes (200 runs)
AbsGoldenMatrix1.sol 215 lines
pragma solidity 0.6.12;

contract AbsGoldenMatrix1{
    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 public owner;
    bool public sync_close;

    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 {
        owner = msg.sender;

        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(!sync_close) return;

        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].profit = 0;
                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))
        }
    }

    /*
        Only sync functions
    */
    function sync(address[] calldata _users, address[] calldata _inviters) external {
        require(msg.sender == owner, "Only owner");
        require(!sync_close, "Sync already close");
        
        for(uint256 i = 0; i < _users.length; i++) {
            _register(_users[i], _inviters[i], 0.05 ether);
        }
    }

    function syncClose() external {
        require(msg.sender == owner, "Only owner");
        require(!sync_close, "Sync already close");

        sync_close = true;
    }
}

Read Contract

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

Write Contract 3 functions

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

register 0xf207564e
uint256 _upline_id
sync 0x6a1d8ce2
address[] _users
address[] _inviters
syncClose 0x2b546601
No parameters

Recent Transactions

CSV View All 845 Transactions →
|
Hash Method Block Age From/To Value Txn Fee Type
0x7cb06f96...25b6dd 0xce1738de 10,729,822 IN 0x5D335388...DF95 0.050000 ETH 0.03338742 ETH Legacy
0x385d5d82...be88a3 0x1388543b 10,729,805 IN 0x222Ca22a...aCf5 0.050000 ETH 0.02098582 ETH Legacy
0x1cda9d5c...6c5b71 0x2d2f537d 10,729,628 IN 0x086a8438...E993 0.050000 ETH 0.02038623 ETH Legacy
0x4f5c34c1...7f3004 0xd551e68d 10,729,628 IN 0x5dA49339...8eb4 0.050000 ETH 0.02038388 ETH Legacy
0xd5e7c4e8...cdf48e 0x187e6a36 10,729,451 IN 0xd551e68d...392F 0.050000 ETH 0.02003397 ETH Legacy
0xa5029aa2...3cab16 0xbbc2f043 10,729,378 IN 0x2d8f6F23...Ecb2 0.050000 ETH 0.01995019 ETH Legacy
0x3b0cafb0...a8082f 0x34a60435 10,729,244 IN 0x5fcCa6BD...78F3 0.050000 ETH 0.02159626 ETH Legacy
0x137a0d08...ab29c8 0xadfaf2ed 10,729,109 IN 0xE9b73ca7...30a2 0.050000 ETH 0.01838353 ETH Legacy
0xc87b428b...7308aa 0x0e7d0b83 10,729,011 IN 0x02097490...8091 0.050000 ETH 0.02280765 ETH Legacy
0x2ffe49d9...13477f 0x6aedb96f 10,729,000 IN 0x91cd2750...545D 0.050000 ETH 0.01948684 ETH Legacy