Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xC44C22fbF9386cd90f02FF5418f3E01b2F3086E5
Balance 0 ETH
Nonce 1
Code Size 8927 bytes
Last Active
Indexed Transactions 1729 (10,630,84610,630,932)
Value (indexed) ↓ 1.1000 ETH
Gas Used (indexed) 2,261,055
External Etherscan · Sourcify

Contract Bytecode

8927 bytes
0x6080604052600436106100dd5760003560e01c806393a7e7b01161007f578063a87430ba11610059578063a87430ba1461078b578063d2840073146107eb578063f2fde38b14610824578063f6838a7214610857576100dd565b806393a7e7b01461069c5780639f4216e81461074c578063a4bb170d14610776576100dd565b80634a4baa8f116100bb5780634a4baa8f146105a957806379378e301461062c5780638853b53e146106685780639335dcb714610687576100dd565b80630b8d0a2814610530578063132c8c9b146105615780631a026c9614610594575b6001600090815260086020527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f5434141561011a575060016103e7565b600260005260086020527f6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea904154341415610155575060026103e7565b600360005260086020527f625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d2645554341415610190575060036103e7565b600460005260086020527f9321edea6e3be4df59a344b401fab4f888b556fda1f954244cff9204bad624b8543414156101cb575060046103e7565b600560005260086020527f91238f30f286c9a1c6e901c4eda3b214c381c846e3dbe48df95c21488e8e1fdb54341415610206575060056103e7565b600660005260086020527f13acf3fc7bed94759963f076d5d3443d88732026bffc8253bdf4a6e65f21ecc554341415610241575060066103e7565b600760005260086020527f24cd397636bedc6cf9b490d0edd57c769c19b367fb7d5c2344ae1ddc7d21c1445434141561027c575060076103e7565b600860008190526020527fe4c2e8be66af8dd2d277000f4f830a10546f8b14e45cd850b875c98ba0f0d2cd543414156102b7575060086103e7565b600960005260086020527f82c9e868e45873bb5a4f47c09e14a12f6a6314e13aabd611e4374762bb4e8b36543414156102f2575060096103e7565b600a60005260086020527f586689db7536874b78a6eac0f58556a56a106985743f7c16a699b27bb02f88bd5434141561032d5750600a6103e7565b600b60005260086020527fcb250a1a60f48f70f08c912424f39071fd9a8b7099a72dffd251fce0294f3749543414156103685750600b6103e7565b600c60005260086020527faba08fc86a199da17c4b45fa0fb586714474d27e5e1f0220658b6275561b2e18543414156103a35750600c6103e7565b6040805162461bcd60e51b8152602060048201526014602482015273125b98dbdc9c9958dd0815985b1d59481cd95b9960621b604482015290519081900360640190fd5b3360009081526009602052604090205460ff161561040d5761040881610870565b61052d565b80600114156104f6576000809050600061045d6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b7a92505050565b6001600160a01b03811660009081526009602052604090205490915060ff16156104a4576001600160a01b03811660009081526009602052604090206001015491506104e6565b6040805162461bcd60e51b815260206004820152601260248201527124b731b7b93932b1ba103932b332b93932b960711b604482015290519081900360640190fd5b6104ef82610b81565b505061052d565b60405162461bcd60e51b81526004018080602001828103825260238152602001806122646023913960400191505060405180910390fd5b50005b34801561053c57600080fd5b50610545610ed9565b604080516001600160a01b039092168252519081900360200190f35b34801561056d57600080fd5b506105456004803603602081101561058457600080fd5b50356001600160a01b0316610ee8565b3480156105a057600080fd5b5061054561120e565b3480156105b557600080fd5b506105dc600480360360208110156105cc57600080fd5b50356001600160a01b031661121d565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610618578181015183820152602001610600565b505050509050019250505060405180910390f35b34801561063857600080fd5b506106566004803603602081101561064f57600080fd5b5035611296565b60408051918252519081900360200190f35b6106856004803603602081101561067e57600080fd5b5035610b81565b005b34801561069357600080fd5b506105456112a8565b3480156106a857600080fd5b50610685600480360360208110156106bf57600080fd5b8101906020810181356401000000008111156106da57600080fd5b8201836020820111156106ec57600080fd5b8035906020019184602083028401116401000000008311171561070e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506112b7945050505050565b34801561075857600080fd5b506105456004803603602081101561076f57600080fd5b503561168c565b34801561078257600080fd5b506106566116a7565b34801561079757600080fd5b506107be600480360360208110156107ae57600080fd5b50356001600160a01b03166116ad565b60408051951515865260208601949094528484019290925260608401526080830152519081900360a00190f35b3480156107f757600080fd5b506106566004803603604081101561080e57600080fd5b506001600160a01b0381351690602001356116e0565b34801561083057600080fd5b506106856004803603602081101561084757600080fd5b50356001600160a01b031661170e565b6106856004803603602081101561086d57600080fd5b50355b3360009081526009602052604090205460ff166108c5576040805162461bcd60e51b815260206004820152600e60248201526d155cd95c881b9bdd08195e1a5cdd60921b604482015290519081900360640190fd5b6000811180156108d65750600c8111155b610919576040805162461bcd60e51b815260206004820152600f60248201526e125b98dbdc9c9958dd081b195d995b608a1b604482015290519081900360640190fd5b80600114156109c057600160005260086020527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f543414610993576040805162461bcd60e51b815260206004820152600f60248201526e496e636f72726563742056616c756560881b604482015290519081900360640190fd5b60045433600090815260096020908152604080832060018452600601909152902080549091019055610b0a565b6000818152600860205260409020543414610a14576040805162461bcd60e51b815260206004820152600f60248201526e496e636f72726563742056616c756560881b604482015290519081900360640190fd5b60001981015b8015610a9457336000908152600960209081526040808320848452600601909152902054421115610a8b576040805162461bcd60e51b8152602060048201526016602482015275109d5e481d1a19481c1c995d9a5bdd5cc81b195d995b60521b604482015290519081900360640190fd5b60001901610a1a565b50336000908152600960209081526040808320848452600601909152902054610ae2576004543360009081526009602090815260408083208584526006019091529020429091019055610b0a565b6004543360009081526009602090815260408083208584526006019091529020805490910190555b336000818152600960209081526040808320600401548352600a909152902054610b3e9183916001600160a01b0316611772565b60408051828152426020820152815133927f9ea70f0eb33d898c3336ecf2c0e3cf1c0195c13ad3fbcb34447777dbfd5ff2d0928290030190a250565b6014015190565b3360009081526009602052604090205460ff1615610bd3576040805162461bcd60e51b815260206004820152600a602482015269155cd95c88195e1a5cdd60b21b604482015290519081900360640190fd5b600081118015610be55750600b548111155b610c2e576040805162461bcd60e51b8152602060048201526015602482015274125b98dbdc9c9958dd081c9959995c9c995c881259605a1b604482015290519081900360640190fd5b600160005260086020527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f543414610c9f576040805162461bcd60e51b815260206004820152600f60248201526e496e636f72726563742056616c756560881b604482015290519081900360640190fd5b600380546000838152600a60209081526040808320546001600160a01b031683526009909152902090910154829111610d1e576000828152600a602052604081205460099190610cf7906001600160a01b0316610ee8565b6001600160a01b03166001600160a01b031681526020019081526020016000206001015491505b610d2661217e565b50600b80546001908101918290556040805160c0810182528281526020808201948552818301878152835160008082528184018652606085019182526080850189905260a0850181905233815260098452949094208351815460ff19169015151781559551948601949094559251600285015590518051919384939092610db392600385019201906121b6565b50608082015160048281019190915560a090920151600590910155600b546000908152600a602081815260408084208054336001600160a01b0319918216811790925595548186526009808552838720600180895260069091018652848820429093019092558a875285855283872080546001600160a01b039081168952918652938720600301805480840182559088528588200180549098168317909755948990529290915254610e659316611772565b6000828152600a6020818152604080842080546001600160a01b03908116865260098452828620600501805460010190559487905292825291548251428152925193169233927f788c06d2405ae89dd3f0528d38be7691289474d72176408bc2c2406dc5e342f192908290030190a3505050565b6002546001600160a01b031681565b600380546001600160a01b0383166000908152600960205260408120909201541015610f15575080611209565b604080516103fe808252617fe0820190925260609160208201617fc0803883395050506001600160a01b0384166000908152600960205260408120600301805492935091610f5f57fe5b600091825260208220015482516001600160a01b03909116918391610f8057fe5b6001600160a01b03928316602091820292909201810191909152908416600090815260099091526040902060030180546001908110610fbb57fe5b9060005260206000200160009054906101000a90046001600160a01b031681600181518110610fe657fe5b6001600160a01b039092166020928302919091019091015260006001815b6103fe8110156111bd576003546009600086848151811061102157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060030180549050141561119657603e811015611191576009600085838151811061106f57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206003016000815481106110a657fe5b9060005260206000200160009054906101000a90046001600160a01b03168482600101600202815181106110d657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506009600085838151811061110657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060030160018154811061113d57fe5b9060005260206000200160009054906101000a90046001600160a01b031684826001016002026001018151811061117057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b6111b5565b600091508381815181106111a657fe5b602002602001015192506111bd565b600101611004565b508015611204576040805162461bcd60e51b815260206004820152601060248201526f273790233932b2902932b332b93932b960811b604482015290519081900360640190fd5b509150505b919050565b6001546001600160a01b031681565b6001600160a01b03811660009081526009602090815260409182902060030180548351818402810184019094528084526060939283018282801561128a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161126c575b50505050509050919050565b60086020526000908152604090205481565b6000546001600160a01b031681565b6000546001600160a01b0316331461130f576040805162461bcd60e51b8152602060048201526016602482015275165bdd48185c99481b9bdd08185d5d1a1bdc9a5e995960521b604482015290519081900360640190fd5b6008600b541115611367576040805162461bcd60e51b815260206004820181905260248201527f4e6f206d6f72652061646d696e732063616e2062652072656769737465726564604482015290519081900360640190fd5b61136f61217e565b60005b825181101561168757600b80546001908101909155600380547fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc7546001600160a01b031660009081526009602052604090209091015482911161141b576000828152600a6020526040812054600991906113f4906001600160a01b0316610ee8565b6001600160a01b03166001600160a01b031681526020019081526020016000206001015491505b6040518060c00160405280600115158152602001600b5481526020018381526020016000604051908082528060200260200182016040528015611468578160200160208202803883390190505b50815260200182815260200160008152509350836009600087868151811061148c57fe5b6020908102919091018101516001600160a01b031682528181019290925260409081016000208351815460ff19169015151781558383015160018201559083015160028201556060830151805191926114ed926003850192909101906121b6565b506080820151816004015560a0820151816005015590505084838151811061151157fe5b602090810291909101810151600b546000908152600a909252604090912080546001600160a01b0319166001600160a01b0390921691909117905560015b600c81116115a957640cef5e80e36009600088878151811061156d57fe5b6020908102919091018101516001600160a01b03168252818101929092526040908101600090812085825260060190925290205560010161154f565b506000828152600a60209081526040808320546001600160a01b031683526009909152902085516003909101908690859081106115e257fe5b602090810291909101810151825460018082018555600094855283852090910180546001600160a01b0319166001600160a01b03938416179055848452600a8084526040808620805485168752600986528187206005018054909401909355948690528352548351428152935191169233927f788c06d2405ae89dd3f0528d38be7691289474d72176408bc2c2406dc5e342f192918290030190a35050600101611372565b505050565b600a602052600090815260409020546001600160a01b031681565b600b5481565b6009602052600090815260409020805460018201546002830154600484015460059094015460ff90931693919290919085565b6001600160a01b03821660009081526009602090815260408083208484526006019091529020545b92915050565b6000546001600160a01b03163314611766576040805162461bcd60e51b8152602060048201526016602482015275165bdd48185c99481b9bdd08185d5d1a1bdc9a5e995960521b604482015290519081900360640190fd5b61176f81611f9f565b50565b600080600085600114156117b2576001600160a01b038086166000908152600960209081526040808320600401548352600a909152902054169250611ac4565b85600714156117ed576001600160a01b038086166000908152600960209081526040808320600201548352600a909152902054169250611ac4565b85600214806117fc5750856008145b15611852576001600160a01b0380861660009081526009602081815260408084206002908101548552600a8084528286205487168087529484528286209091015485529091529091205490911693509150611ac4565b85600314806118615750856009145b156118ce575050506001600160a01b0380831660009081526009602081815260408084206002908101548552600a80845282862054871680875285855283872083015487528185528387205488168088529585528387209092015486529092529092205490921691611ac4565b85600414806118dd575085600a145b15611961575050506001600160a01b0380831660009081526009602081815260408084206002908101548552600a808452828620548716865284845282862082015486528084528286205487168087528585528387208301548752818552838720548816808852958552838720909201548652909252909220549092169190611ac4565b8560051480611970575085600b145b15611a09575050506001600160a01b0380831660009081526009602081815260408084206002908101548552600a808452828620548716865284845282862082015486528084528286205487168652848452828620820154865280845282862054871680875285855283872083015487528185528387205488168088529585528387209092015486529092529092205490921691611ac4565b8560061480611a18575085600c145b15611ac4575050506001600160a01b0380831660009081526009602081815260408084206002908101548552600a80845282862054871686528484528286208201548652808452828620548716865284845282862082015486528084528286205487168652848452828620820154865280845282862054871680875285855283872083015487528185528387205488168088529585528387209092015486529092529092205490921691905b6001600160a01b03831660009081526009602052604090205460ff16611b1c576001600052600a6020527fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc7546001600160a01b031692505b60006001871415611c73576001600160a01b03841660009081526009602090815260408083208a84526006019091529020544211611bdb576000878152600860205260408082205490516001600160a01b0387169282156108fc02929190818181858888f1935050505090508015611bd65760408051888152426020820152815133926001600160a01b038816927f7a1e253554d0e91f48feec0d195e1965bbcd28feeddc456f1a8481f71dfd3e11929081900390910190a35b611c6e565b6002546000888152600860205260408082205490516001600160a01b039093169281156108fc0292818181858888f19350505050158015611c20573d6000803e3d6000fd5b5060408051888152426020820152600181830152905133916001600160a01b038716917f42d2b895e7a01667b487e3e39f184c2583eaf835084d248fc5c9591c0a820f739181900360600190a35b611f96565b6001600160a01b03841660009081526009602090815260408083208a84526006019091529020544211611f3a576007546000888152600860205260409020546001600160a01b038616916108fc91611ce391606491611cd79163ffffffff61203f16565b9063ffffffff61209f16565b6040518115909202916000818181858888f1935050505090508015611f3a576001600160a01b03851660009081526009602090815260408083208a84526006019091529020544211611ddb576006546000888152600860205260409020546001600160a01b038716916108fc91611d6691606491611cd79163ffffffff61203f16565b6040518115909202916000818181858888f19350505050158015611d8e573d6000803e3d6000fd5b5060408051888152426020820152815133926001600160a01b038916927f7a1e253554d0e91f48feec0d195e1965bbcd28feeddc456f1a8481f71dfd3e11929081900390910190a3611e8d565b6002546006546000898152600860205260409020546001600160a01b03909216916108fc91611e1791606491611cd7919063ffffffff61203f16565b6040518115909202916000818181858888f19350505050158015611e3f573d6000803e3d6000fd5b5060408051888152426020820152600181830152905133916001600160a01b038816917f42d2b895e7a01667b487e3e39f184c2583eaf835084d248fc5c9591c0a820f739181900360600190a35b6001546005546000898152600860205260409020546001600160a01b03909216916108fc91611ec991606491611cd7919063ffffffff61203f16565b6040518115909202916000818181858888f19350505050158015611ef1573d6000803e3d6000fd5b5060408051888152426020820152815133926001600160a01b038816927fce7dc747411ac40191c5335943fcc79d8c2d8c01ca5ae83d9fed160409fa6120929081900390910190a35b80611f965760408051888152426020820152600281830152905133916001600160a01b038716917f42d2b895e7a01667b487e3e39f184c2583eaf835084d248fc5c9591c0a820f739181900360600190a3611f96878587611772565b50505050505050565b6001600160a01b038116611fe45760405162461bcd60e51b81526004018080602001828103825260248152602001806122876024913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008261204e57506000611708565b8282028284828161205b57fe5b04146120985760405162461bcd60e51b81526004018080602001828103825260218152602001806122436021913960400191505060405180910390fd5b9392505050565b600061209883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836121685760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561212d578181015183820152602001612115565b50505050905090810190601f16801561215a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161217457fe5b0495945050505050565b6040518060c0016040528060001515815260200160008152602001600081526020016060815260200160008152602001600081525090565b82805482825590600052602060002090810192821561220b579160200282015b8281111561220b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906121d6565b5061221792915061221b565b5090565b61223f91905b808211156122175780546001600160a01b0319168155600101612221565b9056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77506c6561736520627579206669727374206c6576656c20666f7220302e3033204554484e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373a265627a7a723158208c54dc2e8e81c0816c1d02a3cd1b2cafd6be5dede2bebf610b3187b6fb43d39d64736f6c634300050b0032

Verified Source Code Partial Match

Compiler: v0.5.11+commit.c082d0b4 EVM: petersburg Optimization: Yes (200 runs)
Crowdsharing.sol 474 lines
pragma solidity 0.5.11;


library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/contracts@next`.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/contracts@next`.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

contract Crowdsharing {
    
    using SafeMath for *;
    
    address public ownerWallet;
    address public wallet1; //3%
    address public wallet2; //15%


    
   struct UserStruct {
        bool isExist;
        uint id;
        uint referrerID;
        address[] referral;
        uint directSponsor;
        uint referralCounter;
        mapping(uint => uint) levelExpired;
    }

    uint REFERRER_1_LEVEL_LIMIT = 2;
    uint PERIOD_LENGTH = 60 days;
    uint private adminFees = 3;
    uint private directSponsorFees = 15;
    uint private earnings = 82;

    mapping(uint => uint) public LEVEL_PRICE;

    mapping (address => UserStruct) public users;
    mapping (uint => address) public userList;
    uint public currUserID = 0;

    event regLevelEvent(address indexed _user, address indexed _referrer, uint _time);
    event buyLevelEvent(address indexed _user, uint _level, uint _time);
    event getMoneyForLevelEvent(address indexed _user, address indexed _referral, uint _level, uint _time);
    event getSponsorBonusEvent(address indexed _sponsor, address indexed _user, uint _level, uint _time);
    event lostMoneyForLevelEvent(address indexed _user, address indexed _referral, uint _level, uint _time, uint number);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor(address _owner, address _wallet1, address _wallet2) public {
        ownerWallet = msg.sender;
        wallet1 = _wallet1;
        wallet2 = _wallet2;

        LEVEL_PRICE[1] = 0.1 ether;
        LEVEL_PRICE[2] = 0.2 ether;
        LEVEL_PRICE[3] = 0.5 ether;
        LEVEL_PRICE[4] = 3 ether;
        LEVEL_PRICE[5] = 10 ether;
        LEVEL_PRICE[6] = 30 ether;
        LEVEL_PRICE[7] = 15 ether;
        LEVEL_PRICE[8] = 35 ether;
        LEVEL_PRICE[9] = 100 ether;
        LEVEL_PRICE[10] = 250 ether;
        LEVEL_PRICE[11] = 500 ether;
        LEVEL_PRICE[12] = 1000 ether;

        UserStruct memory userStruct;
        currUserID++;

        userStruct = UserStruct({
            isExist: true,
            id: currUserID,
            referrerID: 0,
            referral: new address[](0),
            directSponsor: 0,
            referralCounter: 0
        });
        users[_owner] = userStruct;
        userList[currUserID] = _owner;

        for(uint i = 1; i <= 12; i++) {
            users[_owner].levelExpired[i] = 55555555555;
        }
    }

    function () external payable {
        uint level;

        if(msg.value == LEVEL_PRICE[1]) level = 1;
        else if(msg.value == LEVEL_PRICE[2]) level = 2;
        else if(msg.value == LEVEL_PRICE[3]) level = 3;
        else if(msg.value == LEVEL_PRICE[4]) level = 4;
        else if(msg.value == LEVEL_PRICE[5]) level = 5;
        else if(msg.value == LEVEL_PRICE[6]) level = 6;
        else if(msg.value == LEVEL_PRICE[7]) level = 7;
        else if(msg.value == LEVEL_PRICE[8]) level = 8;
        else if(msg.value == LEVEL_PRICE[9]) level = 9;
        else if(msg.value == LEVEL_PRICE[10]) level = 10;
        else if(msg.value == LEVEL_PRICE[11]) level = 11;
        else if(msg.value == LEVEL_PRICE[12]) level = 12;
        
        else revert('Incorrect Value send');

        if(users[msg.sender].isExist) buyLevel(level);
        else if(level == 1) {
            uint refId = 0;
            address referrer = bytesToAddress(msg.data);

            if(users[referrer].isExist) refId = users[referrer].id;
            else revert('Incorrect referrer');

            regUser(refId);
        }
        else revert('Please buy first level for 0.03 ETH');
    }

    function regUser(uint _referrerID) public payable {
       
        require(!users[msg.sender].isExist, 'User exist');
        require(_referrerID > 0 && _referrerID <= currUserID, 'Incorrect referrer Id');
        require(msg.value == LEVEL_PRICE[1], 'Incorrect Value');

        uint tempReferrerID = _referrerID;

        if(users[userList[_referrerID]].referral.length >= REFERRER_1_LEVEL_LIMIT) 
            _referrerID = users[findFreeReferrer(userList[_referrerID])].id;

        UserStruct memory userStruct;
        currUserID++;

        userStruct = UserStruct({
            isExist: true,
            id: currUserID,
            referrerID: _referrerID,
            referral: new address[](0),
            directSponsor: tempReferrerID,
            referralCounter: 0
        });

        users[msg.sender] = userStruct;
        userList[currUserID] = msg.sender;

        users[msg.sender].levelExpired[1] = now + PERIOD_LENGTH;

        users[userList[_referrerID]].referral.push(msg.sender);

        payForLevel(1, msg.sender,userList[_referrerID]);
        
        //increase the referral counter;
        users[userList[tempReferrerID]].referralCounter++;

        emit regLevelEvent(msg.sender, userList[tempReferrerID], now);
    }
    
    function regAdmins(address [] memory _adminAddress) public  {
        
        require(msg.sender == ownerWallet,"You are not authorized");
        require(currUserID <= 8, "No more admins can be registered");
        
        UserStruct memory userStruct;
        
        for(uint i = 0; i < _adminAddress.length; i++){
            
            currUserID++;

            uint _referrerID = 1;
            uint tempReferrerID = _referrerID;
    
            if(users[userList[_referrerID]].referral.length >= REFERRER_1_LEVEL_LIMIT) 
                _referrerID = users[findFreeReferrer(userList[_referrerID])].id;
    
            userStruct = UserStruct({
                isExist: true,
                id: currUserID,
                referrerID: _referrerID,
                referral: new address[](0),
                directSponsor: tempReferrerID,
                referralCounter: 0
            });
    
            users[_adminAddress[i]] = userStruct;
            userList[currUserID] = _adminAddress[i];
            
            for(uint j = 1; j <= 12; j++) {
                users[_adminAddress[i]].levelExpired[j] = 55555555555;
            }
    
            users[userList[_referrerID]].referral.push(_adminAddress[i]);
    
            //increase the referral counter;
            users[userList[tempReferrerID]].referralCounter++;
    
            emit regLevelEvent(msg.sender, userList[tempReferrerID], now);
        }
    }
    
    

    function buyLevel(uint _level) public payable {
        require(users[msg.sender].isExist, 'User not exist'); 
        require(_level > 0 && _level <= 12, 'Incorrect level');

        if(_level == 1) {
            require(msg.value == LEVEL_PRICE[1], 'Incorrect Value');
            users[msg.sender].levelExpired[1] += PERIOD_LENGTH;
        }
        else {
            require(msg.value == LEVEL_PRICE[_level], 'Incorrect Value');

            for(uint l =_level - 1; l > 0; l--) require(users[msg.sender].levelExpired[l] >= now, 'Buy the previous level');

            if(users[msg.sender].levelExpired[_level] == 0) users[msg.sender].levelExpired[_level] = now + PERIOD_LENGTH;
            else users[msg.sender].levelExpired[_level] += PERIOD_LENGTH;
        }

        payForLevel(_level, msg.sender, userList[users[msg.sender].directSponsor]);

        emit buyLevelEvent(msg.sender, _level, now);
    }
    
   
    function payForLevel(uint _level, address _user, address _sponsor) internal {
        address actualReferer;
        address referer1;
        address referer2;
        

        if(_level == 1)
            actualReferer = userList[users[_user].directSponsor];
        
        else if(_level == 7) {
            actualReferer = userList[users[_user].referrerID];
        }
        else if(_level == 2 || _level == 8) {
            referer1 = userList[users[_user].referrerID];
            actualReferer = userList[users[referer1].referrerID];
        }
        else if(_level == 3 || _level == 9) {
            referer1 = userList[users[_user].referrerID];
            referer2 = userList[users[referer1].referrerID];
            actualReferer = userList[users[referer2].referrerID];
        }
        else if(_level == 4 || _level == 10) {
            referer1 = userList[users[_user].referrerID];
            referer2 = userList[users[referer1].referrerID];
            referer1 = userList[users[referer2].referrerID];
            actualReferer = userList[users[referer1].referrerID];
        }
        else if(_level == 5 || _level == 11) {
            referer1 = userList[users[_user].referrerID];
            referer2 = userList[users[referer1].referrerID];
            referer1 = userList[users[referer2].referrerID];
            referer2 = userList[users[referer1].referrerID];
            actualReferer = userList[users[referer2].referrerID];
        }
        else if(_level == 6 || _level == 12) {
            referer1 = userList[users[_user].referrerID];
            referer2 = userList[users[referer1].referrerID];
            referer1 = userList[users[referer2].referrerID];
            referer2 = userList[users[referer1].referrerID];
            referer1 = userList[users[referer2].referrerID];
            actualReferer = userList[users[referer1].referrerID];
        }

        if(!users[actualReferer].isExist) actualReferer = userList[1];

        bool sent = false;
        
        if(_level == 1) {
            if(users[actualReferer].levelExpired[_level] >= now) {
                sent = address(uint160(actualReferer)).send(LEVEL_PRICE[_level]);
                if (sent) {
                    emit getSponsorBonusEvent(actualReferer, msg.sender, _level, now);
                }
            }
            else {
                address(uint160(wallet2)).transfer(LEVEL_PRICE[_level]);
                emit lostMoneyForLevelEvent(actualReferer, msg.sender, _level, now,1);
            }
        }
        else {
            if(users[actualReferer].levelExpired[_level] >= now) {
                sent = address(uint160(actualReferer)).send(LEVEL_PRICE[_level].mul(earnings).div(100));

                if (sent) {
                    
                    if(users[_sponsor].levelExpired[_level] >= now) {
                        address(uint160(_sponsor)).transfer(LEVEL_PRICE [_level].mul(directSponsorFees).div(100));
                        emit getSponsorBonusEvent(_sponsor, msg.sender, _level, now);
                    }
                    else{
                        address(uint160(wallet2)).transfer(LEVEL_PRICE [_level].mul(directSponsorFees).div(100));
                        emit lostMoneyForLevelEvent(_sponsor, msg.sender, _level, now, 1);
                    }   
                    address(uint160(wallet1)).transfer(LEVEL_PRICE[_level].mul(adminFees).div(100));
                    emit getMoneyForLevelEvent(actualReferer, msg.sender, _level, now);
                    
                }
            }
            
            if(!sent) {
                emit lostMoneyForLevelEvent(actualReferer, msg.sender, _level, now, 2);
    
                payForLevel(_level, actualReferer, _sponsor);
            }
        }
    }

    function findFreeReferrer(address _user) public view returns(address) {
        if(users[_user].referral.length < REFERRER_1_LEVEL_LIMIT) return _user;

        address[] memory referrals = new address[](1022);
        referrals[0] = users[_user].referral[0];
        referrals[1] = users[_user].referral[1];

        address freeReferrer;
        bool noFreeReferrer = true;

        for(uint i = 0; i < 1022; i++) {
            if(users[referrals[i]].referral.length == REFERRER_1_LEVEL_LIMIT) {
                if(i < 62) {
                    referrals[(i+1)*2] = users[referrals[i]].referral[0];
                    referrals[(i+1)*2+1] = users[referrals[i]].referral[1];
                }
            }
            else {
                noFreeReferrer = false;
                freeReferrer = referrals[i];
                break;
            }
        }

        require(!noFreeReferrer, 'No Free Referrer');

        return freeReferrer;
    }

    function viewUserReferral(address _user) public view returns(address[] memory) {
        return users[_user].referral;
    }

    function viewUserLevelExpired(address _user, uint _level) public view returns(uint) {
        return users[_user].levelExpired[_level];
    }

    function bytesToAddress(bytes memory bys) private pure returns (address addr) {
        assembly {
            addr := mload(add(bys, 20))
        }
    }
    
     /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) external {
        
        require(msg.sender == ownerWallet,"You are not authorized");
        _transferOwnership(newOwner);
    }

     /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "New owner cannot be the zero address");
        emit OwnershipTransferred(ownerWallet, newOwner);
        ownerWallet = newOwner;
    }
}

Read Contract

LEVEL_PRICE 0x79378e30 → uint256
currUserID 0xa4bb170d → uint256
findFreeReferrer 0x132c8c9b → address
ownerWallet 0x9335dcb7 → address
userList 0x9f4216e8 → address
users 0xa87430ba → bool, uint256, uint256, uint256, uint256
viewUserLevelExpired 0xd2840073 → uint256
viewUserReferral 0x4a4baa8f → address[]
wallet1 0x1a026c96 → address
wallet2 0x0b8d0a28 → address

Write Contract 4 functions

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

buyLevel 0xf6838a72
uint256 _level
regAdmins 0x93a7e7b0
address[] _adminAddress
regUser 0x8853b53e
uint256 _referrerID
transferOwnership 0xf2fde38b
address newOwner

Recent Transactions

CSV View All 1729 Transactions →
|
Hash Method Block Age From/To Value Txn Fee Type
0x344eb30c...f6f46d 0xf6838a72 10,630,932 IN 0xc766347f...2d1d 0.200000 ETH 0.00746544 ETH Legacy
0x1fdf2e17...eb2148 0x8853b53e 10,630,932 IN 0xd0E49Aa3...E277 0.100000 ETH 0.02121110 ETH Legacy
0xe9d2ed58...9373c5 0x8853b53e 10,630,912 IN 0xA4bF4F41...c556 0.100000 ETH 0.02413820 ETH Legacy
0x596ffca9...c0c3e5 0x8853b53e 10,630,894 IN 0x79E4CA80...5b12 0.100000 ETH 0.01413839 ETH Legacy
0x14f79098...aa6f1b 0x8853b53e 10,630,894 IN 0xA9aB6412...ecf3 0.100000 ETH 0.01236854 ETH Legacy
0x25959cb1...4ce762 0x8853b53e 10,630,893 IN 0x80Ac0A68...0687 0.100000 ETH 0.01381844 ETH Legacy
0xe7cb54d7...fb1b8c 0x8853b53e 10,630,893 IN 0x9882bA21...47F2 0.100000 ETH 0.01236854 ETH Legacy
0x969ced3f...316720 0x8853b53e 10,630,867 IN 0x09fBe59c...840c 0.100000 ETH 0.01351739 ETH Legacy
0x7773d12b...56aabe 0x8853b53e 10,630,866 IN 0x737D4dD6...7770 0.100000 ETH 0.01183739 ETH Legacy
0x073de8b1...02e1df 0x8853b53e 10,630,846 IN 0xBc079914...bA8B 0.100000 ETH 0.02172438 ETH Legacy