Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0x53aE8D13434c8Fa5e30c0b3b73bD32DaDaD79255
Balance 0.004085 ETH ($8.03)
Nonce 1
Code Size 10628 bytes
Indexed Transactions 0 (1 on-chain, 1.5% indexed)
External Etherscan · Sourcify

Contract Bytecode

10628 bytes
Copy Bytecode
0x6080604052600436106101e35760003560e01c806369fe0e2d116101025780639ca423b311610095578063d7c8843b11610064578063d7c8843b1461072a578063db66386514610767578063eb24acb514610783578063ec2e0ab3146107ae576101e3565b80639ca423b31461065c578063a3ce0f7e14610699578063a507abee146106c2578063aafa07bb146106ff576101e3565b80637e56fde5116100d15780637e56fde51461055d5780638778f4151461059a5780638a65d874146105d75780638e3163271461061f576101e3565b806369fe0e2d146104b55780636aeb5c26146104de57806370db69d6146105075780637107d7a614610532576101e3565b80632ef6a7431161017a5780633ec862a8116101495780633ec862a8146103fb57806343a46389146104245780634b634b061461044d578063639814e01461048a576101e3565b80632ef6a743146103605780633955f0fe1461039d5780633b0f0f2f146103b45780633c5f07cb146103f1576101e3565b806312065fe0116101b657806312065fe0146102a4578063165b5de7146102cf57806326fd8422146102f857806327ceb49414610335576101e3565b806301f59d16146101e857806306927ad6146102135780630798cb6e1461023e57806310c4f4341461027b575b600080fd5b3480156101f457600080fd5b506101fd6107d9565b60405161020a9190612301565b60405180910390f35b34801561021f57600080fd5b506102286107df565b6040516102359190612301565b60405180910390f35b34801561024a57600080fd5b506102656004803603810190610260919061234d565b6107e5565b6040516102729190612301565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d919061234d565b610804565b005b3480156102b057600080fd5b506102b961088c565b6040516102c69190612301565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f1919061234d565b610894565b005b34801561030457600080fd5b5061031f600480360381019061031a919061237a565b6108e7565b60405161032c9190612301565b60405180910390f35b34801561034157600080fd5b5061034a6108fe565b6040516103579190612301565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190612418565b610904565b6040516103949190612301565b60405180910390f35b3480156103a957600080fd5b506103b2610960565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612418565b610e42565b6040516103e89190612454565b60405180910390f35b6103f9610eab565b005b34801561040757600080fd5b50610422600480360381019061041d9190612418565b610ee3565b005b34801561043057600080fd5b5061044b600480360381019061044691906124a7565b610ef1565b005b34801561045957600080fd5b50610474600480360381019061046f9190612418565b611a92565b6040516104819190612301565b60405180910390f35b34801561049657600080fd5b5061049f611adb565b6040516104ac9190612301565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d7919061234d565b611ae1565b005b3480156104ea57600080fd5b506105056004803603810190610500919061234d565b611b69565b005b34801561051357600080fd5b5061051c611bf1565b6040516105299190612301565b60405180910390f35b34801561053e57600080fd5b50610547611bf7565b6040516105549190612301565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f919061234d565b611bfd565b6040516105919190612301565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc9190612418565b611c10565b6040516105ce9190612301565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f99190612418565b611c59565b6040516106169c9b9a999897969594939291906124e7565b60405180910390f35b34801561062b57600080fd5b506106466004803603810190610641919061234d565b611cb9565b6040516106539190612301565b60405180910390f35b34801561066857600080fd5b50610683600480360381019061067e9190612418565b611ccf565b6040516106909190612454565b60405180910390f35b3480156106a557600080fd5b506106c060048036038101906106bb91906125a1565b611d02565b005b3480156106ce57600080fd5b506106e960048036038101906106e49190612418565b611d5d565b6040516106f69190612301565b60405180910390f35b34801561070b57600080fd5b50610714611d82565b6040516107219190612301565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c9190612418565b611d88565b60405161075e9190612301565b60405180910390f35b610781600480360381019061077c9190612418565b611e36565b005b34801561078f57600080fd5b5061079861222a565b6040516107a59190612301565b60405180910390f35b3480156107ba57600080fd5b506107c3612230565b6040516107d09190612301565b60405180910390f35b60065481565b600b5481565b60006107fd600054836107f89190612623565b611cb9565b9050919050565b600754811115610849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610840906126c2565b60405180910390fd5b806004819055507f08e4ff0275661819500b229f52c0e8eb2f093b9114027c32f531de6fea7c391c81426040516108819291906126e2565b60405180910390a150565b600047905090565b6207e9008111156108a457600080fd5b80600b819055507f187cd2d7a4a85d2d18577dd1b69cc808141f2f8cf54766fdfcae48892ee1699081426040516108dc9291906126e2565b60405180910390a150565b60006108f68383601354612236565b905092915050565b60075481565b600061090f82611d88565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610959919061270b565b9050919050565b600c60009054906101000a900460ff1661097957600080fd5b600061098433610904565b9050600061099182611cb9565b9050600061099e82612297565b90506000819050600b54601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601546109f5919061270b565b421015610a8557610a08836004546122ac565b905060008282610a18919061273f565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a82573d6000803e3d6000fd5b50505b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083601354610b1c919061270b565b60138190555042601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601819055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154610bb8919061270b565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555083601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154610c4c919061270b565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055508083610c9e919061273f565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060090154610ceb919061270b565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060090181905550600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610d99573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc8285610dc0919061273f565b9081150290604051600060405180830381858888f19350505050158015610deb573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167fe8d77dd2570b097a3aacd209b65a523e8a450007057b6d41bf37669be77259e38486604051610e349291906126e2565b60405180910390a250505050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060135414610eba57600080fd5b6001600c60006101000a81548160ff0219169083151502179055506419254d3800601381905550565b610eee816000610ef1565b50565b600c60009054906101000a900460ff16610f0a57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4257600091505b600073ffffffffffffffffffffffffffffffffffffffff16601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561106857503373ffffffffffffffffffffffffffffffffffffffff16601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b801561115e57503373ffffffffffffffffffffffffffffffffffffffff1660116000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156111e25781601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60008073ffffffffffffffffffffffffffffffffffffffff16601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561130a57503373ffffffffffffffffffffffffffffffffffffffff16601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050600061131733610904565b9050600080548261132891906127a2565b9050600081600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611377919061270b565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083801561144d5750845b156117075761145e836005546122ac565b905080600f6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150a919061270b565b600f6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115b581611cb9565b60126000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b0154611661919061270b565b60126000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b01819055505b60058361171491906127a2565b601354611721919061270b565b601381905550841561185b576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461177c919061270b565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555082601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154611810919061270b565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550611a21565b6001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546118aa919061270b565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555082601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461193e919061270b565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555061198d83611cb9565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501546119da919061270b565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055505b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f829c711111753895d1f0692e87b05d6f8f46ccd3b4ab6f7e23a3a8b29612a406848685604051611a82939291906127d3565b60405180910390a3505050505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b600654811115611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90612856565b60405180910390fd5b806003819055507f5fc463da23c1b063e66f9e352006a7fbe8db7223c455dc429e881a2dfe2f94f18142604051611b5e9291906126e2565b60405180910390a150565b600654811115611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590612856565b60405180910390fd5b806005819055507f9727ac6445e29a694e06411abeb4bb0da35c9cacf791ce7532cfbe1dbdfff8968142604051611be69291906126e2565b60405180910390a150565b600a5481565b60095481565b6000611c0982476108e7565b9050919050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601260205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b015490508c565b6000611cc88260135447612236565b9050919050565b60116020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b826008819055508160098190555080600a819055507f22456d468d73d3b914cf66a6630106f3187cdc17d8a99235d058f40d47f172c9600854600954600a54604051611d50939291906127d3565b60405180910390a1505050565b600080611d6983610904565b90506000611d7682611cb9565b90508092505050919050565b60035481565b600080611de1600054601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442611ddc919061273f565b6122cf565b9050600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481611e2e9190612623565b915050919050565b600c60009054906101000a900460ff16611e4f57600080fd5b600034118015611e6157506009543410155b8015611e7c57506000600a541480611e7b5750600a543411155b5b611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb2906128c2565b60405180910390fd5b60006008541480611f1b575060085434601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611f18919061270b565b11155b611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f519061292e565b60405180910390fd5b6000611f71343447611f6c919061273f565b6108e7565b9050611f7c81612297565b81611f87919061273f565b90506000611f9434612297565b9050600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ffe573d6000803e3d6000fd5b5081600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204a919061270b565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01540361211f5742601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01819055505b34601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461216d919061270b565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f3976b994a75bbc4f2e08db6922cf9d4ea95c8cb183606c09b722290a3f26e22d34856040516122129291906126e2565b60405180910390a3612225836001610ef1565b505050565b60045481565b60055481565b600083846002546122479190612623565b846001546122559190612623565b61225f919061270b565b61226991906127a2565b600254612276919061270b565b826001546122849190612623565b61228e91906127a2565b90509392505050565b60006122a5826003546122ac565b9050919050565b60006103e882846122bd9190612623565b6122c791906127a2565b905092915050565b60008183106122de57816122e0565b825b905092915050565b6000819050919050565b6122fb816122e8565b82525050565b600060208201905061231660008301846122f2565b92915050565b600080fd5b61232a816122e8565b811461233557600080fd5b50565b60008135905061234781612321565b92915050565b6000602082840312156123635761236261231c565b5b600061237184828501612338565b91505092915050565b600080604083850312156123915761239061231c565b5b600061239f85828601612338565b92505060206123b085828601612338565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123e5826123ba565b9050919050565b6123f5816123da565b811461240057600080fd5b50565b600081359050612412816123ec565b92915050565b60006020828403121561242e5761242d61231c565b5b600061243c84828501612403565b91505092915050565b61244e816123da565b82525050565b60006020820190506124696000830184612445565b92915050565b60008115159050919050565b6124848161246f565b811461248f57600080fd5b50565b6000813590506124a18161247b565b92915050565b600080604083850312156124be576124bd61231c565b5b60006124cc85828601612403565b92505060206124dd85828601612492565b9150509250929050565b6000610180820190506124fd600083018f6122f2565b61250a602083018e6122f2565b612517604083018d6122f2565b612524606083018c6122f2565b612531608083018b6122f2565b61253e60a083018a6122f2565b61254b60c08301896122f2565b61255860e08301886122f2565b6125666101008301876122f2565b6125746101208301866122f2565b6125826101408301856122f2565b6125906101608301846122f2565b9d9c50505050505050505050505050565b6000806000606084860312156125ba576125b961231c565b5b60006125c886828701612338565b93505060206125d986828701612338565b92505060406125ea86828701612338565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061262e826122e8565b9150612639836122e8565b9250828202612647816122e8565b9150828204841483151761265e5761265d6125f4565b5b5092915050565b600082825260208201905092915050565b7f4665652063617070656420617420343025000000000000000000000000000000600082015250565b60006126ac601183612665565b91506126b782612676565b602082019050919050565b600060208201905081810360008301526126db8161269f565b9050919050565b60006040820190506126f760008301856122f2565b61270460208301846122f2565b9392505050565b6000612716826122e8565b9150612721836122e8565b9250828201905080821115612739576127386125f4565b5b92915050565b600061274a826122e8565b9150612755836122e8565b925082820390508181111561276d5761276c6125f4565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006127ad826122e8565b91506127b8836122e8565b9250826127c8576127c7612773565b5b828204905092915050565b60006060820190506127e860008301866122f2565b6127f560208301856122f2565b61280260408301846122f2565b949350505050565b7f4665652063617070656420617420323025000000000000000000000000000000600082015250565b6000612840601183612665565b915061284b8261280a565b602082019050919050565b6000602082019050818103600083015261286f81612833565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006128ac600e83612665565b91506128b782612876565b602082019050919050565b600060208201905081810360008301526128db8161289f565b9050919050565b7f427579204c696d69742048697400000000000000000000000000000000000000600082015250565b6000612918600d83612665565b9150612923826128e2565b602082019050919050565b600060208201905081810360008301526129478161290b565b905091905056fea2646970667358221220ca42e69d9d68c940851c3abe53f6fbfd48ed9bf0760810809f52b4d43620b6c964736f6c63430008110033

Verified Source Code Partial Match

Compiler: v0.8.17+commit.8df45f5f EVM: london Optimization: No
ETHMACHINE.sol 286 lines
// SPDX-License-Identifier: MIT

pragma solidity >=0.8.17;


contract ETHMACHINE {

    uint256 private EGGS_TO_HATCH_1MINERS = 1080000;//for final version should be seconds in a day
    uint256 private PSN = 10000;
    uint256 private PSNH = 5000;

    // divide by 1000 4.2
    uint256 public devFeeVal = 42;

    // 20%
    uint256 public devPenaltyFeeVal = 400;

    // 9% ref fee
    uint256 public refFee = 90;

    // hard cap of 20% max fee
    uint256 public maxFee = 200;
    
    // hard cap of 40% max Penalty fee
    uint256 public maxPenaltyFee = 350;

    // max life time buy per address
    uint256 public maxPerAddress = 0;

    // min required to buy
    uint256 public minBuy = 0;

    // max buy per tx
    uint256 public maxBuy = 0;

    // time between sells
    uint256 public sellDuration = 6 days;

    bool private initialized = false;
    address payable private devAddress;
    address payable private treasuryAddress;
    

    struct UserStats {
        uint256 purchases; // how many times they bought shares
        uint256 purchaseAmount; // total amount they have purchased
        uint256 purchaseValue; // total value they have purchased 
        uint256 compounds; // how many times they have compounded
        uint256 compoundAmount; // total amount they have compounded
        uint256 compoundValue; // total value they have compounded (at time of compound) 
        uint256 lastSell; // timestamp of last sell
        uint256 sells; // how many times they sold shares
        uint256 sellAmount; // total amount they have sold
        uint256 sellValue; // total value they have sold
        uint256 firstBuy; //when they made their first buy
        uint256 refRewards; // total value of ref rewards (at time of purchase) 
    }

    mapping (address => uint256) private hatcheryMiners;
    mapping (address => uint256) private claimedEggs;
    mapping (address => uint256) private lastHatch;
    mapping (address => address) public referrals;

    mapping(address => UserStats) public userStats;
    uint256 private marketEggs;
    
    
    constructor(address payable _devAddress, address payable _treasuryAddress) {
        treasuryAddress = payable(_treasuryAddress);
        devAddress = payable(_devAddress);
    }
    
    function hatchEggs(address ref) public  {
        _hatchEggs(ref, false);
    }

    event HatchEggs(address indexed user, address indexed ref, uint256 newMiners, uint256 eggsUsed, uint256 refEggs);
    function _hatchEggs(address ref, bool isBuy) public {
        require(initialized);
        
        if(ref == msg.sender) {
            ref = address(0);
        }
        
        if(referrals[msg.sender] == address(0) && referrals[msg.sender] != msg.sender && referrals[referrals[msg.sender]] != msg.sender) {
            referrals[msg.sender] = ref;
        }
        
        bool hasRef = referrals[msg.sender] != address(0) && referrals[msg.sender] != msg.sender;

        uint256 eggsUsed = getMyEggs(msg.sender);
        uint256 newMiners = eggsUsed/EGGS_TO_HATCH_1MINERS;
        uint256 refEggs;
        hatcheryMiners[msg.sender] = hatcheryMiners[msg.sender] + newMiners;
        claimedEggs[msg.sender] = 0;
        lastHatch[msg.sender] = block.timestamp;

        if(hasRef && isBuy) {
            refEggs = getFee(eggsUsed,refFee);

            claimedEggs[referrals[msg.sender]] = claimedEggs[referrals[msg.sender]] + refEggs;
            userStats[referrals[msg.sender]].refRewards = userStats[referrals[msg.sender]].refRewards + calculateEggSell(refEggs);

        }    
 
        //boost market to nerf miners hoarding
        marketEggs = marketEggs + (eggsUsed/5);

        // set stats
        if(isBuy){
            userStats[msg.sender].purchases = userStats[msg.sender].purchases + 1;
            userStats[msg.sender].purchaseAmount = userStats[msg.sender].purchaseAmount + eggsUsed; 
        } else {
            userStats[msg.sender].compounds = userStats[msg.sender].compounds + 1;
            userStats[msg.sender].compoundAmount = userStats[msg.sender].compoundAmount + eggsUsed; 
            userStats[msg.sender].compoundValue = userStats[msg.sender].compoundValue + calculateEggSell(eggsUsed); 
        }

         emit HatchEggs(msg.sender, ref, newMiners, eggsUsed, refEggs);

    }
    
    event EggsSold(address indexed user,  uint256 amount, uint256 eggsSold );
    function sellEggs() public  {
        require(initialized);

        uint256 hasEggs = getMyEggs(msg.sender);
        uint256 eggValue = calculateEggSell(hasEggs);
        uint256 _devFee = devFee(eggValue);
        uint256 fee = _devFee;

        if(block.timestamp < (userStats[msg.sender].lastSell + sellDuration)){
            fee = getFee(eggValue, devPenaltyFeeVal);
            uint256 earlyFee = fee - _devFee;
            treasuryAddress.transfer(earlyFee);
        }

        claimedEggs[msg.sender] = 0;
        lastHatch[msg.sender] = block.timestamp;
        marketEggs = marketEggs + hasEggs;

        userStats[msg.sender].lastSell = block.timestamp; 
        userStats[msg.sender].sells = userStats[msg.sender].sells + 1; 
        userStats[msg.sender].sellAmount = userStats[msg.sender].sellAmount + hasEggs;
        userStats[msg.sender].sellValue = userStats[msg.sender].sellValue + (eggValue-fee);

        devAddress.transfer(_devFee);
        payable (msg.sender).transfer(eggValue - fee);

        emit EggsSold(msg.sender, eggValue, hasEggs );
    }
    
    function beanRewards(address adr) public view returns(uint256) {
        uint256 hasEggs = getMyEggs(adr);
        uint256 eggValue = calculateEggSell(hasEggs);
        return eggValue;
    }

    event EggsBought(address indexed user, address indexed ref, uint256 amount, uint256 eggsBought);
    function buyEggs(address ref) public payable  {
        require(initialized);
        require(msg.value > 0 && msg.value >= minBuy && (maxBuy == 0 || msg.value <= maxBuy), 'Invalid Amount');
        require(maxPerAddress == 0 || (userStats[msg.sender].purchaseValue + msg.value) <= maxPerAddress, 'Buy Limit Hit');
       
        uint256 eggsBought = calculateEggBuy(msg.value,(address(this).balance - msg.value));
        eggsBought = eggsBought - devFee(eggsBought);
        uint256 fee = devFee(msg.value);
        devAddress.transfer(fee);
        claimedEggs[msg.sender] = claimedEggs[msg.sender] + eggsBought;

        if(userStats[msg.sender].firstBuy == 0){
            userStats[msg.sender].firstBuy = block.timestamp;
        }

        userStats[msg.sender].purchaseValue = userStats[msg.sender].purchaseValue + msg.value; 

        emit EggsBought(msg.sender, ref, msg.value, eggsBought );
        _hatchEggs(ref, true);
    }
    
    function calculateTrade(uint256 rt,uint256 rs, uint256 bs) private view returns(uint256) {
        return (PSN * bs)/(PSNH + ( ((PSN * rs) + (PSNH * rt))/rt) );
    }
    
    function calculateEggSell(uint256 eggs) public view returns(uint256) {
        return calculateTrade(eggs,marketEggs,address(this).balance);
    }
    
    function calculateEggBuy(uint256 eth,uint256 contractBalance) public view returns(uint256) {
        return calculateTrade(eth,contractBalance,marketEggs);
    }
    
    function calculateEggBuySimple(uint256 eth) public view returns(uint256) {
        return calculateEggBuy(eth,address(this).balance);
    }
    
    function devFee(uint256 amount) private view returns(uint256) {
        return getFee(amount, devFeeVal);
    }

    function getFee(uint256 amount, uint256 fee) internal pure returns(uint256) {
        return (amount * fee)/1000;
    }
    
    function seedMarket() public payable {
        require(marketEggs == 0);
        initialized = true;
        marketEggs = 108000000000;
    }


    event FeeChanged(uint256 fee, uint256 timestamp);
    function setFee(uint256 _fee) public {
        require(_fee <= maxFee, "Fee capped at 20%");
        devFeeVal = _fee;
        emit FeeChanged(_fee, block.timestamp);
    }

    event RefFeeChanged(uint256 fee, uint256 timestamp);
    function setRefFee(uint256 _fee) public {
        require(_fee <= maxFee, "Fee capped at 20%");
        refFee = _fee;
        emit RefFeeChanged(_fee, block.timestamp);
    }

    event PenaltyFeeChanged(uint256 fee, uint256 timestamp);
    function setPenaltyFee(uint256 _fee) public {
        require(_fee <= maxPenaltyFee, "Fee capped at 40%");
        devPenaltyFeeVal = _fee;
        emit PenaltyFeeChanged(_fee, block.timestamp);
    }

    event SellDurationChanged(uint256 duration, uint256 timestamp);
    function setSellDuration(uint256 _duration) public  {
        require(_duration <= 6 days);
        sellDuration = _duration;
        emit SellDurationChanged(_duration, block.timestamp);
    }

    event SettingsChanged(uint256 maxPerAddress, uint256 minBuy, uint256 maxBuy);
    function setMinerSettings(
        uint256 _maxPerAddress, 
        uint256 _minBuy, 
        uint256 _maxBuy
    ) public  {
        
        maxPerAddress = _maxPerAddress;
        minBuy = _minBuy;
        maxBuy = _maxBuy;

        emit SettingsChanged(maxPerAddress, minBuy, maxBuy);
    }
    
    function getBalance() public view returns(uint256) {
        return address(this).balance;
    }
    
    function getMyMiners(address adr) public view returns(uint256) {
        return hatcheryMiners[adr];
    }
    
    function getMyEggs(address adr) public view returns(uint256) {
        return claimedEggs[adr] + getEggsSinceLastHatch(adr);
    }
    
    function getEggsSinceLastHatch(address adr) public view returns(uint256) {
        uint256 secondsPassed=min(EGGS_TO_HATCH_1MINERS,(block.timestamp - lastHatch[adr]));
        return secondsPassed * hatcheryMiners[adr];
    }
    
    function getReferral(address adr) public view returns(address) {
        return referrals[adr];
    }

    function getLastClaim(address adr) public view returns(uint256) {
        return lastHatch[adr];
    }

    function getEggsValue(uint256 eggs) public view returns(uint256) {
        return calculateEggSell(eggs * EGGS_TO_HATCH_1MINERS);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return a < b ? a : b;
    }
}

Read Contract

beanRewards 0xa507abee → uint256
calculateEggBuy 0x26fd8422 → uint256
calculateEggBuySimple 0x7e56fde5 → uint256
calculateEggSell 0x8e316327 → uint256
devFeeVal 0xaafa07bb → uint256
devPenaltyFeeVal 0xeb24acb5 → uint256
getBalance 0x12065fe0 → uint256
getEggsSinceLastHatch 0xd7c8843b → uint256
getEggsValue 0x0798cb6e → uint256
getLastClaim 0x8778f415 → uint256
getMyEggs 0x2ef6a743 → uint256
getMyMiners 0x4b634b06 → uint256
getReferral 0x3b0f0f2f → address
maxBuy 0x70db69d6 → uint256
maxFee 0x01f59d16 → uint256
maxPenaltyFee 0x27ceb494 → uint256
maxPerAddress 0x639814e0 → uint256
minBuy 0x7107d7a6 → uint256
refFee 0xec2e0ab3 → uint256
referrals 0x9ca423b3 → address
sellDuration 0x06927ad6 → uint256
userStats 0x8a65d874 → uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256

Write Contract 10 functions

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

_hatchEggs 0x43a46389
address ref
bool isBuy
buyEggs 0xdb663865
address ref
hatchEggs 0x3ec862a8
address ref
seedMarket 0x3c5f07cb
No parameters
sellEggs 0x3955f0fe
No parameters
setFee 0x69fe0e2d
uint256 _fee
setMinerSettings 0xa3ce0f7e
uint256 _maxPerAddress
uint256 _minBuy
uint256 _maxBuy
setPenaltyFee 0x10c4f434
uint256 _fee
setRefFee 0x6aeb5c26
uint256 _fee
setSellDuration 0x165b5de7
uint256 _duration

Recent Transactions

This address has 1 on-chain transactions, but only 1.5% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →