Token BurnDrop

 

Overview [ERC-20]

Max Total Supply:
483,241.61621406 BD

Holders:
61

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BurnDrop

Compiler Version
v0.5.13+commit.5b0b510c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-06-16
*/

//BurnDrop by bbobboy 6/16/2020

pragma solidity ^0.5.13;

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

contract BurnDrop {

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private INITIAL_SUPPLY = 1e14; // 1M
	uint256 constant private BURN_RATE = 5; // 5% per tx
	uint256 constant private SUPPLY_FLOOR = 1; // 1% of 1M = 10K

	string constant public name = "BurnDrop";
	string constant public symbol = "BD";
	uint8 constant public decimals = 8;

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

	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 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 burn(uint256 _tokens) external {
		require(balanceOf(msg.sender) >= _tokens);
		info.users[msg.sender].balance -= _tokens;
		uint256 _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);
		require(balanceOf(msg.sender) >= _tokens);
		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);
		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) {
		return (totalSupply(), totalFrozen(), balanceOf(_user), frozenOf(_user), dividendsOf(_user));
	}


	function _transfer(address _from, address _to, uint256 _tokens) internal returns (uint256) {
		require(balanceOf(_from) >= _tokens);
		info.users[_from].balance -= _tokens;
		uint256 _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;
		emit Transfer(_from, _to, _transferred);
		if (_burnedAmount > 0) {
			if (info.totalFrozen > 0) {
				_burnedAmount /= 2;
				info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalFrozen;
				emit Transfer(_from, address(this), _burnedAmount);
			}
			info.totalSupply -= _burnedAmount;
			emit Transfer(_from, address(0x0), _burnedAmount);
			emit Burn(_burnedAmount);
		}
		return _transferred;
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"Whitelist","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokenSupply","type":"uint256"},{"internalType":"uint256","name":"totalTokensFrozen","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userFrozen","type":"uint256"},{"internalType":"uint256","name":"userDividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_receivers","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"bulkTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"distribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"frozenOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFrozen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"whitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5033600060040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550655af3107a40006000800181905550655af3107a4000600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef655af3107a40006040518082815260200191505060405180910390a361013133600161013660201b60201c565b610246565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461019357600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b61166f806102556000396000f3fe608060405234801561001057600080fd5b50600436106101205760003560e01c80633af32abf116100ad57806391c05b0b1161007157806391c05b0b1461068357806395d89b41146106b1578063a9059cbb14610734578063dd62ed3e1461079a578063f59c37081461081257610120565b80633af32abf146104725780634000aea0146104ce57806342966c681461058957806357f6b812146105b757806370a082311461062b57610120565b806318160ddd116100f457806318160ddd146103345780631bf6e00d146103525780631e7f87bc146103aa57806323b872dd146103c8578063313ce5671461044e57610120565b806265318b1461012557806306fdde031461017d578063095ea7b314610200578063153a1f3e14610266575b600080fd5b6101676004803603602081101561013b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610862565b6040518082815260200191505060405180910390f35b610185610911565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c55780820151818401526020810190506101aa565b50505050905090810190601f1680156101f25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024c6004803603604081101561021657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061094a565b604051808215151515815260200191505060405180910390f35b6103326004803603604081101561027c57600080fd5b810190808035906020019064010000000081111561029957600080fd5b8201836020820111156102ab57600080fd5b803590602001918460208302840111640100000000831117156102cd57600080fd5b9091929391929390803590602001906401000000008111156102ee57600080fd5b82018360208201111561030057600080fd5b8035906020019184602083028401116401000000008311171561032257600080fd5b9091929391929390505050610a42565b005b61033c610abf565b6040518082815260200191505060405180910390f35b6103946004803603602081101561036857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610acb565b6040518082815260200191505060405180910390f35b6103b2610b19565b6040518082815260200191505060405180910390f35b610434600480360360608110156103de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b25565b604051808215151515815260200191505060405180910390f35b610456610c5d565b604051808260ff1660ff16815260200191505060405180910390f35b6104b46004803603602081101561048857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c62565b604051808215151515815260200191505060405180910390f35b61056f600480360360608110156104e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561052b57600080fd5b82018360208201111561053d57600080fd5b8035906020019184600183028401116401000000008311171561055f57600080fd5b9091929391929390505050610cbd565b604051808215151515815260200191505060405180910390f35b6105b56004803603602081101561059f57600080fd5b8101908080359060200190929190505050610df0565b005b6105f9600480360360208110156105cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fbc565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b61066d6004803603602081101561064157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611002565b6040518082815260200191505060405180910390f35b6106af6004803603602081101561069957600080fd5b810190808035906020019092919050505061105b565b005b6106b9611168565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f95780820151818401526020810190506106de565b50505050905090810190601f1680156107265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107806004803603604081101561074a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111a1565b604051808215151515815260200191505060405180910390f35b6107fc600480360360408110156107b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111b9565b6040518082815260200191505060405180910390f35b6108606004803603604081101561082857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611245565b005b600068010000000000000000600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015460006003015402038161090957fe5b049050919050565b6040518060400160405280600881526020017f4275726e44726f7000000000000000000000000000000000000000000000000081525081565b600081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610a5457600080fd5b60008090505b84849050811015610ab857610aaa33868684818110610a7557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610a9e57fe5b90506020020135611355565b508080600101915050610a5a565b5050505050565b60008060000154905090565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60008060010154905090565b600081600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610bb657600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610c51848484611355565b50600190509392505050565b600881565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600080610ccb338787611355565b90506000863b905060008163ffffffff161115610de2578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610d9d57600080fd5b505af1158015610db1573d6000803e3d6000fd5b505050506040513d6020811015610dc757600080fd5b8101908080519060200190929190505050610de157600080fd5b5b600192505050949350505050565b80610dfa33611002565b1015610e0557600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000819050600080600101541115610f095760028181610e7457fe5b04905060006001015468010000000000000000820281610e9057fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b806000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050565b6000806000806000610fcc610abf565b610fd4610b19565b610fdd88611002565b610fe689610acb565b610fef8a610862565b9450945094509450945091939590929450565b600061100d82610acb565b600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b600080600101541161106c57600080fd5b8061107633611002565b101561108157600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540392505081905550600060010154680100000000000000008202816110ed57fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600281526020017f424400000000000000000000000000000000000000000000000000000000000081525081565b60006111ae338484611355565b506001905092915050565b60008060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a257600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b60008161136185611002565b101561136c57600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000606460058402816113ce57fe5b04905060646001655af3107a400002816113e457fe5b04816113ee610abf565b03108061140057506113ff85610c62565b5b1561140a57600090505b6000818403905080600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600082111561162e5760008060010154111561157e57600282816114e957fe5b0491506000600101546801000000000000000083028161150557fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b816000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a15b8092505050939250505056fea265627a7a7231582004bf9e784a711d4c060f3a75ab335793294f03b383f60e60a45de2e849abc9d264736f6c634300050d0032

Deployed ByteCode Sourcemap

194:5480:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;194:5480:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4042:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4042:200:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;443:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;443:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2339:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2339:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3174:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3174:259:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3174:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3174:259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3174:259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3174:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3174:259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3174:259:0;;;;;;;;;;;;:::i;:::-;;3622:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3933:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3933:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3713:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2547:266;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2547:266:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;527:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4388:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4388:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2818:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2818:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2818:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2818:351:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2818:351:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1383:502;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1383:502:0;;;;;;;;;;;;;;;;;:::i;:::-;;4504:275;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4504:275:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3804:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3804:124:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1890:306;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1890:306:0;;;;;;;;;;;;;;;;;:::i;:::-;;487:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;487:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2201:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2201:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4247:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4247:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3438:177;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3438:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4042:200;4099:7;258:5;4191:4;:10;;:17;4202:5;4191:17;;;;;;;;;;;;;;;:30;;;4163:4;:10;;:17;4174:5;4163:17;;;;;;;;;;;;;;;:24;;;4135:4;:25;;;:52;4128:93;4120:117;;;;;;4113:124;;4042:200;;;:::o;443:40::-;;;;;;;;;;;;;;;;;;;:::o;2339:203::-;2409:4;2465:7;2420:4;:10;;:22;2431:10;2420:22;;;;;;;;;;;;;;;:32;;:42;2453:8;2420:42;;;;;;;;;;;;;;;:52;;;;2503:8;2482:39;;2491:10;2482:39;;;2513:7;2482:39;;;;;;;;;;;;;;;;;;2533:4;2526:11;;2339:203;;;;:::o;3174:259::-;3299:8;;:15;;3278:10;;:17;;:36;3270:45;;;;;;3325:9;3337:1;3325:13;;3320:109;3344:10;;:17;;3340:1;:21;3320:109;;;3374:49;3384:10;3396;;3407:1;3396:13;;;;;;;;;;;;;;;3411:8;;3420:1;3411:11;;;;;;;;;;;;;3374:9;:49::i;:::-;;3363:3;;;;;;;3320:109;;;;3174:259;;;;:::o;3622:86::-;3666:7;3687:4;:16;;;3680:23;;3622:86;:::o;3933:104::-;3987:7;4008:4;:10;;:17;4019:5;4008:17;;;;;;;;;;;;;;;:24;;;4001:31;;3933:104;;;:::o;3713:86::-;3757:7;3778:4;:16;;;3771:23;;3713:86;:::o;2547:266::-;2632:4;2694:7;2651:4;:10;;:17;2662:5;2651:17;;;;;;;;;;;;;;;:27;;:39;2679:10;2651:39;;;;;;;;;;;;;;;;:50;;2643:59;;;;;;2750:7;2707:4;:10;;:17;2718:5;2707:17;;;;;;;;;;;;;;;:27;;:39;2735:10;2707:39;;;;;;;;;;;;;;;;:50;;;;;;;;;;;2762:30;2772:5;2779:3;2784:7;2762:9;:30::i;:::-;;2804:4;2797:11;;2547:266;;;;;:::o;527:34::-;560:1;527:34;:::o;4388:111::-;4447:4;4465;:10;;:17;4476:5;4465:17;;;;;;;;;;;;;;;:29;;;;;;;;;;;;4458:36;;4388:111;;;:::o;2818:351::-;2913:4;2924:20;2947:35;2957:10;2969:3;2974:7;2947:9;:35::i;:::-;2924:58;;2987:12;3040:3;3028:16;3019:25;;3065:1;3057:5;:9;;;3053:96;;;3091:3;3082:27;;;3110:10;3122:12;3136:5;;3082:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3082:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3082:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3082:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3082:60:0;;;;;;;;;;;;;;;;3074:69;;;;;;3053:96;3160:4;3153:11;;;;2818:351;;;;;;:::o;1383:502::-;1461:7;1436:21;1446:10;1436:9;:21::i;:::-;:32;;1428:41;;;;;;1508:7;1474:4;:10;;:22;1485:10;1474:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;1520:21;1544:7;1520:31;;1579:1;1560:4;:16;;;:20;1556:199;;;1605:1;1588:18;;;;;;;;;1672:4;:16;;;258:5;1641:13;:28;:47;;;;;;1612:4;:25;;;:76;;;;;;;;;;;1728:4;1699:50;;1708:10;1699:50;;;1735:13;1699:50;;;;;;;;;;;;;;;;;;1556:199;1779:13;1759:4;:16;;;:33;;;;;;;;;;;1831:3;1802:49;;1811:10;1802:49;;;1837:13;1802:49;;;;;;;;;;;;;;;;;;1861:19;1866:13;1861:19;;;;;;;;;;;;;;;;;;1383:502;;:::o;4504:275::-;4560:24;4586:25;4613:19;4634:18;4654:21;4690:13;:11;:13::i;:::-;4705;:11;:13::i;:::-;4720:16;4730:5;4720:9;:16::i;:::-;4738:15;4747:5;4738:8;:15::i;:::-;4755:18;4767:5;4755:11;:18::i;:::-;4682:92;;;;;;;;;;4504:275;;;;;;;:::o;3804:124::-;3859:7;3908:15;3917:5;3908:8;:15::i;:::-;3880:4;:10;;:17;3891:5;3880:17;;;;;;;;;;;;;;;:25;;;:43;3873:50;;3804:124;;;:::o;1890:306::-;1968:1;1949:4;:16;;;:20;1941:29;;;;;;2008:7;1983:21;1993:10;1983:9;:21::i;:::-;:32;;1975:41;;;;;;2055:7;2021:4;:10;;:22;2032:10;2021:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;2121:4;:16;;;258:5;2096:7;:22;:41;;;;;;2067:4;:25;;;:70;;;;;;;;;;;2176:4;2147:44;;2156:10;2147:44;;;2183:7;2147:44;;;;;;;;;;;;;;;;;;1890:306;:::o;487:36::-;;;;;;;;;;;;;;;;;;;:::o;2201:133::-;2267:4;2278:35;2288:10;2300:3;2305:7;2278:9;:35::i;:::-;;2325:4;2318:11;;2201:133;;;;:::o;4247:136::-;4320:7;4341:4;:10;;:17;4352:5;4341:17;;;;;;;;;;;;;;;:27;;:37;4369:8;4341:37;;;;;;;;;;;;;;;;4334:44;;4247:136;;;;:::o;3438:177::-;3520:4;:10;;;;;;;;;;;;3506:24;;:10;:24;;;3498:33;;;;;;3568:7;3536:4;:10;;:17;3547:5;3536:17;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;;;;;;;;3595:5;3585:25;;;3602:7;3585:25;;;;;;;;;;;;;;;;;;;;;;3438:177;;:::o;4786:885::-;4868:7;4910;4890:16;4900:5;4890:9;:16::i;:::-;:27;;4882:36;;;;;;4952:7;4923:4;:10;;:17;4934:5;4923:17;;;;;;;;;;;;;;;:25;;;:36;;;;;;;;;;;4964:21;5010:3;360:1;4988:7;:19;:25;;;;;;4964:49;;5086:3;418:1;309:4;5054:29;:35;;;;;;5038:13;5022;:11;:13::i;:::-;:29;:67;:91;;;;5093:20;5107:5;5093:13;:20::i;:::-;5022:91;5018:126;;;5137:1;5121:17;;5018:126;5148:20;5181:13;5171:7;:23;5148:46;;5226:12;5199:4;:10;;:15;5210:3;5199:15;;;;;;;;;;;;;;;:23;;;:39;;;;;;;;;;;5264:3;5248:34;;5257:5;5248:34;;;5269:12;5248:34;;;;;;;;;;;;;;;;;;5307:1;5291:13;:17;5287:356;;;5339:1;5320:4;:16;;;:20;5316:198;;;5366:1;5349:18;;;;;;;;;5434:4;:16;;;258:5;5403:13;:28;:47;;;;;;5374:4;:25;;;:76;;;;;;;;;;;5486:4;5462:45;;5471:5;5462:45;;;5493:13;5462:45;;;;;;;;;;;;;;;;;;5316:198;5539:13;5519:4;:16;;;:33;;;;;;;;;;;5587:3;5563:44;;5572:5;5563:44;;;5593:13;5563:44;;;;;;;;;;;;;;;;;;5618:19;5623:13;5618:19;;;;;;;;;;;;;;;;;;5287:356;5654:12;5647:19;;;;4786:885;;;;;:::o

Swarm Source

bzzr://04bf9e784a711d4c060f3a75ab335793294f03b383f60e60a45de2e849abc9d2

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.