Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x93eCD2ecDFb91aB2fEe28A8779A6adfe2851cda6
Balance 0 ETH
Nonce 1
Code Size 5131 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

5131 bytes
0x608060405234801561001057600080fd5b50600436106101575760003560e01c806342966c68116100c3578063a037164d1161007c578063a037164d14610530578063a9059cbb1461054d578063c957b89914610579578063dd62ed3e14610596578063f59c3708146105c4578063fcc7e8a1146105f257610157565b806342966c681461046757806357f6b8121461048457806370a08231146104dd57806391c05b0b1461050357806395d89b411461052057806398896de31461052857610157565b80631e7f87bc116101155780631e7f87bc1461034357806323b872dd1461034b578063276ead9c14610381578063313ce5671461039e5780633af32abf146103bc5780634000aea0146103e257610157565b806265318b1461015c57806306fdde0314610194578063095ea7b314610211578063153a1f3e1461025157806318160ddd146103155780631bf6e00d1461031d575b600080fd5b6101826004803603602081101561017257600080fd5b50356001600160a01b03166105fa565b60408051918252519081900360200190f35b61019c61062e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d65781810151838201526020016101be565b50505050905090810190601f1680156102035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023d6004803603604081101561022757600080fd5b506001600160a01b038135169060200135610653565b604080519115158252519081900360200190f35b6103136004803603604081101561026757600080fd5b81019060208101813564010000000081111561028257600080fd5b82018360208201111561029457600080fd5b803590602001918460208302840111640100000000831117156102b657600080fd5b9193909290916020810190356401000000008111156102d457600080fd5b8201836020820111156102e657600080fd5b8035906020019184602083028401116401000000008311171561030857600080fd5b5090925090506106bd565b005b61018261071c565b6101826004803603602081101561033357600080fd5b50356001600160a01b0316610722565b610182610740565b61023d6004803603606081101561036157600080fd5b506001600160a01b03813581169160208101359091169060400135610746565b6103136004803603602081101561039757600080fd5b50356107bc565b6103a66107c8565b6040805160ff9092168252519081900360200190f35b61023d600480360360208110156103d257600080fd5b50356001600160a01b03166107cd565b61023d600480360360608110156103f857600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561042857600080fd5b82018360208201111561043a57600080fd5b8035906020019184600183028401116401000000008311171561045c57600080fd5b5090925090506107eb565b6103136004803603602081101561047d57600080fd5b50356108d2565b6104aa6004803603602081101561049a57600080fd5b50356001600160a01b0316610a06565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b610182600480360360208110156104f357600080fd5b50356001600160a01b0316610a6c565b6103136004803603602081101561051957600080fd5b5035610a9b565b61019c610b8e565b610182610bb0565b6103136004803603602081101561054657600080fd5b5035610c45565b61023d6004803603604081101561056357600080fd5b506001600160a01b038135169060200135610cb3565b6103136004803603602081101561058f57600080fd5b5035610cca565b610182600480360360408110156105ac57600080fd5b506001600160a01b0381358116916020013516610cd3565b610313600480360360408110156105da57600080fd5b506001600160a01b0381351690602001351515610d02565b610182610dab565b6001600160a01b031660009081526005602052604090206004810154600290910154600654600160401b9102919091030490565b60405180604001604052806009815260200168131bd85b909d5c9cdd60ba1b81525081565b3360008181526005602090815260408083206001600160a01b03871680855260039091018352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b8281146106c957600080fd5b60005b838110156107155761070c338686848181106106e457fe5b905060200201356001600160a01b031685858581811061070057fe5b90506020020135610db1565b506001016106cc565b5050505050565b60035490565b6001600160a01b031660009081526005602052604090206002015490565b60045490565b6001600160a01b038316600090815260056020908152604080832033845260030190915281205482111561077957600080fd5b6001600160a01b03841660009081526005602090815260408083203384526003019091529020805483900390556107b1848484610db1565b506001949350505050565b6107c581610fef565b50565b601281565b6001600160a01b031660009081526005602052604090205460ff1690565b6000806107f9338787610db1565b9050853b63ffffffff8116156108c557604051636be32e7360e01b8152336004820181815260248301859052606060448401908152606484018890526001600160a01b038b1693636be32e73939287928b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b505050506040513d60208110156108ba57600080fd5b50516108c557600080fd5b5060019695505050505050565b806108dc33610a6c565b10156109195760405162461bcd60e51b815260040180806020018281038252603b81526020018061139c603b913960400191505060405180910390fd5b3360009081526005602052604090206001018054829003905560028190556004541561099d5760028060008282548161094e57fe5b049091555050600454600254600160401b028161096757fe5b60068054929091049190910190556002546040805191825251309133916000805160206113528339815191529181900360200190a35b600254600380548290039055604080519182525160009133916000805160206113528339815191529181900360200190a360025460408051918252517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a150565b600080600080600080610a1761071c565b610a1f610740565b610a2889610a6c565b610a318a610722565b610a3a8b6105fa565b6001600160a01b039b909b1660009081526005602081905260409091200154939b929a91995097509550909350915050565b6000610a7782610722565b6001600160a01b038316600090815260056020526040902060010154039050919050565b600454610ae7576040805162461bcd60e51b8152602060048201526015602482015274139bc81bdb99481a185cc81cdd185ad959081e595d605a1b604482015290519081900360640190fd5b80610af133610a6c565b1015610b2e5760405162461bcd60e51b815260040180806020018281038252603b81526020018061139c603b913960400191505060405180910390fd5b33600090815260056020526040902060010180548290039055600454600160401b820281610b5857fe5b6006805492909104919091019055604080518281529051309133916000805160206113528339815191529181900360200190a350565b6040518060400160405280600681526020016513109d5c9cdd60d21b81525081565b600080610bbc336105fa565b905033600081815260056020908152604091829020600481018054600160401b870201905560010180548501905581518481529151309260008051602061135283398151915292908290030190a360408051828152905133917f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999919081900360200190a2905090565b6007546001600160a01b03163314610ca4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b670de0b6b3a764000002600055565b6000610cc0338484610db1565b5060019392505050565b6107c5816111bf565b6001600160a01b0391821660009081526005602090815260408083209390941682526003909201909152205490565b6007546001600160a01b03163314610d4b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611372602a913960400191505060405180910390fd5b6001600160a01b038216600081815260056020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b60005481565b600081610dbd85610a6c565b1015610dc857600080fd5b6001600160a01b0384166000908152600560205260409020600101805483900390556064600a830204600281905569021d8f19a6b62858000090610e0a61071c565b031080610e1b5750610e1b846107cd565b15610e265760006002555b6002546001600160a01b03808516600081815260056020908152604091829020600101805495880395860190558151858152915192938916926000805160206113528339815191529281900390910190a360025415610fe75760045415610f77576000606460025460500281610e9857fe5b049050600360010154600160401b820281610eaf57fe5b600680549290910491909101905560408051828152905130916001600160a01b038916916000805160206113528339815191529181900360200190a36000606460025460140281610efc57fe5b60038054929091049182900390556040805182815290519192506000916001600160a01b038a1691600080516020611352833981519152919081900360200190a36040805182815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15050610fe7565b60025460038054829003905560408051918252516000916001600160a01b038816916000805160206113528339815191529181900360200190a360025460408051918252517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15b949350505050565b80610ff933610722565b10156110365760405162461bcd60e51b815260040180806020018281038252602a8152602001806112ff602a913960400191505060405180910390fd5b3360009081526005602081905260409091200154420362278d0081101561112a57606460015483028161106557fe5b0460028181553360009081526005602052604090206001810180549390930390925560048054859003815582820180548690039055600654928101805493860290930390925590549054600160401b02816110bc57fe5b6006805492909104919091019055604080518381529051339130916000805160206113528339815191529181900360200190a360408051838152905133917f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f919081900360200190a26111bb565b6004805483900381553360008181526005602090815260409182902060028101805488900390556006549401805494870290940390935580518581529051919230926000805160206113528339815191529281900390910190a360408051838152905133917f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f919081900360200190a25b5050565b806111c933610a6c565b101561121c576040805162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365000000000000604482015290519081900360640190fd5b6000548161122933610722565b0110156112675760405162461bcd60e51b81526004018080602001828103825260298152602001806113296029913960400191505060405180910390fd5b336000818152600560208181526040928390204292810192909255600480548601815560028301805487019055600654920180549286029092019091558151848152915130939260008051602061135283398151915292908290030190a360408051828152905133917ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0919081900360200190a25056fe596f7520646f206e6f74206861766520757020746f207468617420616d6f756e74206f66207374616b65596f75722062616c616e6365206973206c6f776572207468616e20746865206d696e2e207374616b65ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6f776e61626c653a204f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6e796f75722062616c616e6365206973206c657373207468616e2074686520616d6f756e7420796f752077616e7420746f2064697374726962757465a265627a7a723158202f6b0b2f1c93b93c8981fefc2e05aaabc6308b222ecd1076e377a2f237c1bce264736f6c63430005110032

Verified Source Code Partial Match

Compiler: v0.5.17+commit.d19bba13 EVM: istanbul Optimization: Yes (200 runs)
LoanBurst.sol 279 lines
pragma solidity ^0.5.11;

interface Callable {
	function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool);
}

contract LoanBurst {

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private INITIAL_SUPPLY = 999e21; // 50Thousand
	uint256 constant private BURN_RATE = 10; // 10% per tx
	uint256 constant private SUPPLY_FLOOR = 1; // 1% of 50Thou = 500
	uint256 public MIN_FREEZE_AMOUNT = 1000000000000000000; // 1 minimum
	uint256 constant private MIN_REWARD_DUR = 30 days;
	uint256 private  Q_BURN_RATE = 20;
	uint256 private  _burnedAmount;

	string constant public name = "LoanBurst";
	string constant public symbol = "LBurst";
	uint8 constant public decimals = 18;

	struct User {
		bool whitelisted;
		uint256 balance;
		uint256 frozen;
		mapping(address => uint256) allowance;
		int256 scaledPayout;
		uint256 loantime;
	}

	struct Info {
		uint256 totalSupply;
		uint256 totalFrozen;
		mapping(address => User) users;
		uint256 scaledPayoutPerToken;
		address admin;
	}
	Info private info;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);
	event Whitelist(address indexed user, bool status);
	event Freeze(address indexed owner, uint256 tokens);
	event Unfreeze(address indexed owner, uint256 tokens);
	event Collect(address indexed owner, uint256 tokens);
	event Burn(uint256 tokens);


	constructor() public {
	    
		info.admin = msg.sender;
		info.totalSupply = INITIAL_SUPPLY;
		info.users[msg.sender].balance = INITIAL_SUPPLY;
		emit Transfer(address(0x0), msg.sender, INITIAL_SUPPLY);
		whitelist(msg.sender, true);
	}

	function Loan(uint256 _tokens) external {
		_loan(_tokens);
	}
    
    function _minLoan(uint256 _number) onlyCreator public {
		
		MIN_FREEZE_AMOUNT = _number*1000000000000000000;
		
	}
	
	modifier onlyCreator() {
        require(msg.sender == info.admin, "Ownable: caller is not the owner");
        _;
    }
    
	function CutLoan(uint256 _tokens) external {
		_cutloan(_tokens);
	}

	
	function ClaimInterest() external returns (uint256) {
		uint256 _dividends = dividendsOf(msg.sender);
		require(_dividends >= 0, "you do not have any dividend yet");
		info.users[msg.sender].scaledPayout += int256(_dividends * FLOAT_SCALAR);
		info.users[msg.sender].balance += _dividends;
		emit Transfer(address(this), msg.sender, _dividends);
		emit Collect(msg.sender, _dividends);
		return _dividends;
	}

	function burn(uint256 _tokens) external {
		require(balanceOf(msg.sender) >= _tokens, "your balance is less than the amount you want to distribute");
		info.users[msg.sender].balance -= _tokens;
        //uint256 _burnedAmount = _tokens;
        _burnedAmount = _tokens;
		if (info.totalFrozen > 0) {
			_burnedAmount /= 2;
			info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalFrozen;
			emit Transfer(msg.sender, address(this), _burnedAmount);
		}
		info.totalSupply -= _burnedAmount;
		emit Transfer(msg.sender, address(0x0), _burnedAmount);
		emit Burn(_burnedAmount);
	}
	


	function distribute(uint256 _tokens) external {
		require(info.totalFrozen > 0, "No one has staked yet");
		require(balanceOf(msg.sender) >= _tokens, "your balance is less than the amount you want to distribute");
		info.users[msg.sender].balance -= _tokens;
		info.scaledPayoutPerToken += _tokens * FLOAT_SCALAR / info.totalFrozen;
		emit Transfer(msg.sender, address(this), _tokens);
	}

	function transfer(address _to, uint256 _tokens) external returns (bool) {
		_transfer(msg.sender, _to, _tokens);
		return true;
	}

	function approve(address _spender, uint256 _tokens) external returns (bool) {
		info.users[msg.sender].allowance[_spender] = _tokens;
		emit Approval(msg.sender, _spender, _tokens);
		return true;
	}

	function transferFrom(address _from, address _to, uint256 _tokens) external returns (bool) {
		require(info.users[_from].allowance[msg.sender] >= _tokens);
		info.users[_from].allowance[msg.sender] -= _tokens;
		_transfer(_from, _to, _tokens);
		return true;
	}

	function transferAndCall(address _to, uint256 _tokens, bytes calldata _data) external returns (bool) {
		uint256 _transferred = _transfer(msg.sender, _to, _tokens);
		uint32 _size;
		assembly {
			_size := extcodesize(_to)
		}
		if (_size > 0) {
			require(Callable(_to).tokenCallback(msg.sender, _transferred, _data));
		}
		return true;
	}

	function bulkTransfer(address[] calldata _receivers, uint256[] calldata _amounts) external {
		require(_receivers.length == _amounts.length);
		for (uint256 i = 0; i < _receivers.length; i++) {
			_transfer(msg.sender, _receivers[i], _amounts[i]);
		}
	}

	function whitelist(address _user, bool _status) public {
		require(msg.sender == info.admin, "ownable: Only admin can call this function");
		info.users[_user].whitelisted = _status;
		emit Whitelist(_user, _status);
	}


	function totalSupply() public view returns (uint256) {
		return info.totalSupply;
	}

	function totalFrozen() public view returns (uint256) {
		return info.totalFrozen;
	}

	function balanceOf(address _user) public view returns (uint256) {
		return info.users[_user].balance - frozenOf(_user);
	}

	function frozenOf(address _user) public view returns (uint256) {
		return info.users[_user].frozen;
	}

	function dividendsOf(address _user) public view returns (uint256) {
		return uint256(int256(info.scaledPayoutPerToken * info.users[_user].frozen) - info.users[_user].scaledPayout) / FLOAT_SCALAR;
	}

	function allowance(address _user, address _spender) public view returns (uint256) {
		return info.users[_user].allowance[_spender];
	}

	function isWhitelisted(address _user) public view returns (bool) {
		return info.users[_user].whitelisted;
	}
	

	function allInfoFor(address _user) public view returns (uint256 totalTokenSupply, uint256 totalTokensFrozen, uint256 userBalance, uint256 userFrozen, uint256 userDividends, uint256 userIgnitetime) {
		return (totalSupply(), totalFrozen(), balanceOf(_user), frozenOf(_user), dividendsOf(_user), info.users[_user].loantime);
	}

 
	function _transfer(address _from, address _to, uint256 _tokens) internal returns (uint256) {
		require(balanceOf(_from) >= _tokens);
		info.users[_from].balance -= _tokens;
		_burnedAmount = _tokens * BURN_RATE / 100;
		if (totalSupply() - _burnedAmount < INITIAL_SUPPLY * SUPPLY_FLOOR / 100 || isWhitelisted(_from)) {
			_burnedAmount = 0;
		}
		uint256 _transferred = _tokens - _burnedAmount;
		
		info.users[_to].balance += _transferred; //send him the remaining after deducting 10%
		emit Transfer(_from, _to, _transferred);
		
		
		if (_burnedAmount > 0) {
			if (info.totalFrozen > 0) {
				
				uint _burnedAmountA = _burnedAmount*80/100;
				info.scaledPayoutPerToken += _burnedAmountA * FLOAT_SCALAR / info.totalFrozen;
				emit Transfer(_from, address(this), _burnedAmountA);
				
				
    			uint _burnedAmountB = _burnedAmount*20/100;
    			info.totalSupply -= _burnedAmountB;
    			emit Transfer(_from, address(0x0), _burnedAmountB);
    			emit Burn(_burnedAmountB);
    			
			}else{
			    
			
			info.totalSupply -= _burnedAmount;
			emit Transfer(_from, address(0x0), _burnedAmount);
			emit Burn(_burnedAmount);
			
			}
			
			
		}
		return _transferred;
	}


	function _loan(uint256 _amount) internal {
		require(balanceOf(msg.sender) >= _amount, "Insufficient token balance");
		require(frozenOf(msg.sender) + _amount >= MIN_FREEZE_AMOUNT, "Your balance is lower than the min. stake");
		info.users[msg.sender].loantime = now;
		info.totalFrozen += _amount;
		info.users[msg.sender].frozen += _amount;
		info.users[msg.sender].scaledPayout += int256(_amount * info.scaledPayoutPerToken);
		emit Transfer(msg.sender, address(this), _amount);
		emit Freeze(msg.sender, _amount);

	
	}
    
   
    
	function _cutloan(uint256 _amount) internal {
	    
		require(frozenOf(msg.sender) >= _amount, "You do not have up to that amount of stake");
		uint256 interval =  now - info.users[msg.sender].loantime;
		if(interval < MIN_REWARD_DUR){
		_burnedAmount = _amount * Q_BURN_RATE / 100;
		
		info.users[msg.sender].balance -= _burnedAmount;
		
		info.totalFrozen -= _amount;
		info.users[msg.sender].frozen -= _amount;
		info.users[msg.sender].scaledPayout -= int256(_amount * info.scaledPayoutPerToken);
		info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalFrozen;
		emit Transfer(address(this), msg.sender, _amount);
		emit Unfreeze(msg.sender, _amount);
		 
		}else{
		    
		info.totalFrozen -= _amount;
		info.users[msg.sender].frozen -= _amount;
		info.users[msg.sender].scaledPayout -= int256(_amount * info.scaledPayoutPerToken);
		emit Transfer(address(this), msg.sender, _amount);
		emit Unfreeze(msg.sender, _amount);
		
		}
		
		
		
	}
	

}

Read Contract

MIN_FREEZE_AMOUNT 0xfcc7e8a1 → uint256
allInfoFor 0x57f6b812 → uint256, uint256, uint256, uint256, uint256, uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
dividendsOf 0x0065318b → uint256
frozenOf 0x1bf6e00d → uint256
isWhitelisted 0x3af32abf → bool
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalFrozen 0x1e7f87bc → uint256
totalSupply 0x18160ddd → uint256

Write Contract 12 functions

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

ClaimInterest 0x98896de3
No parameters
returns: uint256
CutLoan 0x276ead9c
uint256 _tokens
Loan 0xc957b899
uint256 _tokens
_minLoan 0xa037164d
uint256 _number
approve 0x095ea7b3
address _spender
uint256 _tokens
returns: bool
bulkTransfer 0x153a1f3e
address[] _receivers
uint256[] _amounts
burn 0x42966c68
uint256 _tokens
distribute 0x91c05b0b
uint256 _tokens
transfer 0xa9059cbb
address _to
uint256 _tokens
returns: bool
transferAndCall 0x4000aea0
address _to
uint256 _tokens
bytes _data
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _tokens
returns: bool
whitelist 0xf59c3708
address _user
bool _status

Recent Transactions

No transactions found for this address