ETH Price: $2,568.15 (-1.43%)
Gas: 4 Gwei

Token

yen.finance (YFN)
 

Overview

Max Total Supply

26,485.408246446236932996 YFN

Holders

1,077

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
staketogheter.eth
Balance
12 YFN

Value
$0.00
0x40a4fce89b26E924A3b5f13A91E78A5dc4944a45
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
yenfinance

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.5.13;

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

contract yenfinance {

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private INITIAL_SUPPLY = 30000e18; //available supply
	uint256 constant private BURN_RATE = 6; //burn every per txn
	uint256 constant private SUPPLY_FLOOR = 50; // % of supply
	uint256 constant private MIN_FREEZE_AMOUNT = 1e18; //Minimum amount for stake

	string constant public name = "yen.finance";
	string constant public symbol = "YFN";
	uint8 constant public decimals = 18;

	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 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 freeze(uint256 _tokens) external {
		_freeze(_tokens);
	}

	function unfreeze(uint256 _tokens) external {
		_unfreeze(_tokens);
	}

	function collect() external returns (uint256) {
		uint256 _dividends = dividendsOf(msg.sender);
		require(_dividends >= 0);
		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);
		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;
	}

	function _freeze(uint256 _amount) internal {
		require(balanceOf(msg.sender) >= _amount);
		require(frozenOf(msg.sender) + _amount >= MIN_FREEZE_AMOUNT);
		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 _unfreeze(uint256 _amount) internal {
		require(frozenOf(msg.sender) >= _amount);
		uint256 _burnedAmount = _amount * BURN_RATE / 100;
		info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalFrozen;
		info.totalFrozen -= _amount;
		info.users[msg.sender].balance -= _burnedAmount;
		info.users[msg.sender].frozen -= _amount;
		info.users[msg.sender].scaledPayout -= int256(_amount * info.scaledPayoutPerToken);
		emit Transfer(address(this), msg.sender, _amount - _burnedAmount);
		emit Unfreeze(msg.sender, _amount);
	}
}

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":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Freeze","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":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Unfreeze","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":false,"inputs":[],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"uint256","name":"_tokens","type":"uint256"}],"name":"unfreeze","outputs":[],"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"}]

608060405234801561001057600080fd5b50600480546001600160a01b0319163390811790915569065a4da25d3016c00000600081815582815260026020908152604080832060010184905580519384525191927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a36100923360016001600160e01b0361009716565b61010e565b6004546001600160a01b031633146100ae57600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b610f708061011d6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610502578063a9059cbb1461050a578063d7a78db814610536578063dd62ed3e14610553578063e522538114610581578063f59c37081461058957610141565b806342966c681461043457806357f6b812146104515780636623fc46146104a257806370a08231146104bf57806391c05b0b146104e557610141565b80631bf6e00d1161010a5780631bf6e00d146103075780631e7f87bc1461032d57806323b872dd14610335578063313ce5671461036b5780633af32abf146103895780634000aea0146103af57610141565b806265318b1461014657806306fdde031461017e578063095ea7b3146101fb578063153a1f3e1461023b57806318160ddd146102ff575b600080fd5b61016c6004803603602081101561015c57600080fd5b50356001600160a01b03166105b7565b60408051918252519081900360200190f35b6101866105eb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102276004803603604081101561021157600080fd5b506001600160a01b038135169060200135610612565b604080519115158252519081900360200190f35b6102fd6004803603604081101561025157600080fd5b81019060208101813564010000000081111561026c57600080fd5b82018360208201111561027e57600080fd5b803590602001918460208302840111640100000000831117156102a057600080fd5b9193909290916020810190356401000000008111156102be57600080fd5b8201836020820111156102d057600080fd5b803590602001918460208302840111640100000000831117156102f257600080fd5b50909250905061067c565b005b61016c6106db565b61016c6004803603602081101561031d57600080fd5b50356001600160a01b03166106e1565b61016c610700565b6102276004803603606081101561034b57600080fd5b506001600160a01b03813581169160208101359091169060400135610706565b61037361077c565b6040805160ff9092168252519081900360200190f35b6102276004803603602081101561039f57600080fd5b50356001600160a01b0316610781565b610227600480360360608110156103c557600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f557600080fd5b82018360208201111561040757600080fd5b8035906020019184600183028401116401000000008311171561042957600080fd5b50909250905061079f565b6102fd6004803603602081101561044a57600080fd5b5035610886565b6104776004803603602081101561046757600080fd5b50356001600160a01b031661096d565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6102fd600480360360208110156104b857600080fd5b50356109b2565b61016c600480360360208110156104d557600080fd5b50356001600160a01b03166109be565b6102fd600480360360208110156104fb57600080fd5b50356109ed565b610186610a6e565b6102276004803603604081101561052057600080fd5b506001600160a01b038135169060200135610a8d565b6102fd6004803603602081101561054c57600080fd5b5035610aa4565b61016c6004803603604081101561056957600080fd5b506001600160a01b0381358116916020013516610aad565b61016c610adc565b6102fd6004803603604081101561059f57600080fd5b506001600160a01b0381351690602001351515610b71565b6001600160a01b031660009081526002602081905260409091206004810154910154600354600160401b9102919091030490565b6040518060400160405280600b81526020016a79656e2e66696e616e636560a81b81525081565b3360008181526002602090815260408083206001600160a01b03871680855260039091018352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b82811461068857600080fd5b60005b838110156106d4576106cb338686848181106106a357fe5b905060200201356001600160a01b03168585858181106106bf57fe5b90506020020135610be8565b5060010161068b565b5050505050565b60005490565b6001600160a01b03166000908152600260208190526040909120015490565b60015490565b6001600160a01b038316600090815260026020908152604080832033845260030190915281205482111561073957600080fd5b6001600160a01b0384166000908152600260209081526040808320338452600301909152902080548390039055610771848484610be8565b506001949350505050565b601281565b6001600160a01b031660009081526002602052604090205460ff1690565b6000806107ad338787610be8565b9050853b63ffffffff81161561087957604051636be32e7360e01b8152336004820181815260248301859052606060448401908152606484018890526001600160a01b038b1693636be32e73939287928b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561084457600080fd5b505af1158015610858573d6000803e3d6000fd5b505050506040513d602081101561086e57600080fd5b505161087957600080fd5b5060019695505050505050565b80610890336109be565b101561089b57600080fd5b3360009081526002602052604090206001908101805483900390555481901561090957600154600290910490600160401b8202816108d557fe5b600380549290910491909101905560408051828152905130913391600080516020610f1c8339815191529181900360200190a35b6000805482900381556040805183815290513391600080516020610f1c833981519152919081900360200190a36040805182815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15050565b600080600080600061097d6106db565b610985610700565b61098e886109be565b610997896106e1565b6109a08a6105b7565b939a9299509097509550909350915050565b6109bb81610d79565b50565b60006109c9826106e1565b6001600160a01b038316600090815260026020526040902060010154039050919050565b6001546109f957600080fd5b80610a03336109be565b1015610a0e57600080fd5b33600090815260026020526040902060019081018054839003905554600160401b820281610a3857fe5b600380549290910491909101905560408051828152905130913391600080516020610f1c8339815191529181900360200190a350565b604051806040016040528060038152602001622ca32760e91b81525081565b6000610a9a338484610be8565b5060019392505050565b6109bb81610e56565b6001600160a01b0391821660009081526002602090815260408083209390941682526003909201909152205490565b600080610ae8336105b7565b905033600081815260026020908152604091829020600481018054600160401b8702019055600101805485019055815184815291513092600080516020610f1c83398151915292908290030190a360408051828152905133917f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999919081900360200190a2905090565b6004546001600160a01b03163314610b8857600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b600081610bf4856109be565b1015610bff57600080fd5b6001600160a01b0384166000908152600260205260409020600101805483900390556064600683020469032d26d12e980b60000081610c3c6106db565b031080610c4d5750610c4d85610781565b15610c56575060005b6001600160a01b0380851660008181526002602090815260409182902060010180548689039081019091558251818152925190948a1692600080516020610f1c83398151915292908290030190a38115610d705760015415610d0657600154600290920491600160401b830281610cc957fe5b600380549290910491909101905560408051838152905130916001600160a01b03891691600080516020610f1c8339815191529181900360200190a35b6000805483900381556040805184815290516001600160a01b03891691600080516020610f1c833981519152919081900360200190a36040805183815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15b95945050505050565b80610d83336106e1565b1015610d8e57600080fd5b6001546064600683020490600160401b820281610da757fe5b6003805492909104909101815560018054849003815533600081815260026020818152604092839020948501805488900390559084018054889003905593546004909301805493870290930390925581518486038152915190923092600080516020610f1c833981519152929081900390910190a360408051838152905133917f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f919081900360200190a25050565b80610e60336109be565b1015610e6b57600080fd5b670de0b6b3a764000081610e7e336106e1565b011015610e8a57600080fd5b6001805482019055336000818152600260208181526040928390209182018054860190556003546004909201805492860290920190915581518481529151309392600080516020610f1c83398151915292908290030190a360408051828152905133917ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0919081900360200190a25056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a7231582047074ff64af78c32d954a92ff5bebf4764359dadfe070911a2f387703bba927c64736f6c63430005110032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610502578063a9059cbb1461050a578063d7a78db814610536578063dd62ed3e14610553578063e522538114610581578063f59c37081461058957610141565b806342966c681461043457806357f6b812146104515780636623fc46146104a257806370a08231146104bf57806391c05b0b146104e557610141565b80631bf6e00d1161010a5780631bf6e00d146103075780631e7f87bc1461032d57806323b872dd14610335578063313ce5671461036b5780633af32abf146103895780634000aea0146103af57610141565b806265318b1461014657806306fdde031461017e578063095ea7b3146101fb578063153a1f3e1461023b57806318160ddd146102ff575b600080fd5b61016c6004803603602081101561015c57600080fd5b50356001600160a01b03166105b7565b60408051918252519081900360200190f35b6101866105eb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102276004803603604081101561021157600080fd5b506001600160a01b038135169060200135610612565b604080519115158252519081900360200190f35b6102fd6004803603604081101561025157600080fd5b81019060208101813564010000000081111561026c57600080fd5b82018360208201111561027e57600080fd5b803590602001918460208302840111640100000000831117156102a057600080fd5b9193909290916020810190356401000000008111156102be57600080fd5b8201836020820111156102d057600080fd5b803590602001918460208302840111640100000000831117156102f257600080fd5b50909250905061067c565b005b61016c6106db565b61016c6004803603602081101561031d57600080fd5b50356001600160a01b03166106e1565b61016c610700565b6102276004803603606081101561034b57600080fd5b506001600160a01b03813581169160208101359091169060400135610706565b61037361077c565b6040805160ff9092168252519081900360200190f35b6102276004803603602081101561039f57600080fd5b50356001600160a01b0316610781565b610227600480360360608110156103c557600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103f557600080fd5b82018360208201111561040757600080fd5b8035906020019184600183028401116401000000008311171561042957600080fd5b50909250905061079f565b6102fd6004803603602081101561044a57600080fd5b5035610886565b6104776004803603602081101561046757600080fd5b50356001600160a01b031661096d565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6102fd600480360360208110156104b857600080fd5b50356109b2565b61016c600480360360208110156104d557600080fd5b50356001600160a01b03166109be565b6102fd600480360360208110156104fb57600080fd5b50356109ed565b610186610a6e565b6102276004803603604081101561052057600080fd5b506001600160a01b038135169060200135610a8d565b6102fd6004803603602081101561054c57600080fd5b5035610aa4565b61016c6004803603604081101561056957600080fd5b506001600160a01b0381358116916020013516610aad565b61016c610adc565b6102fd6004803603604081101561059f57600080fd5b506001600160a01b0381351690602001351515610b71565b6001600160a01b031660009081526002602081905260409091206004810154910154600354600160401b9102919091030490565b6040518060400160405280600b81526020016a79656e2e66696e616e636560a81b81525081565b3360008181526002602090815260408083206001600160a01b03871680855260039091018352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b82811461068857600080fd5b60005b838110156106d4576106cb338686848181106106a357fe5b905060200201356001600160a01b03168585858181106106bf57fe5b90506020020135610be8565b5060010161068b565b5050505050565b60005490565b6001600160a01b03166000908152600260208190526040909120015490565b60015490565b6001600160a01b038316600090815260026020908152604080832033845260030190915281205482111561073957600080fd5b6001600160a01b0384166000908152600260209081526040808320338452600301909152902080548390039055610771848484610be8565b506001949350505050565b601281565b6001600160a01b031660009081526002602052604090205460ff1690565b6000806107ad338787610be8565b9050853b63ffffffff81161561087957604051636be32e7360e01b8152336004820181815260248301859052606060448401908152606484018890526001600160a01b038b1693636be32e73939287928b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561084457600080fd5b505af1158015610858573d6000803e3d6000fd5b505050506040513d602081101561086e57600080fd5b505161087957600080fd5b5060019695505050505050565b80610890336109be565b101561089b57600080fd5b3360009081526002602052604090206001908101805483900390555481901561090957600154600290910490600160401b8202816108d557fe5b600380549290910491909101905560408051828152905130913391600080516020610f1c8339815191529181900360200190a35b6000805482900381556040805183815290513391600080516020610f1c833981519152919081900360200190a36040805182815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15050565b600080600080600061097d6106db565b610985610700565b61098e886109be565b610997896106e1565b6109a08a6105b7565b939a9299509097509550909350915050565b6109bb81610d79565b50565b60006109c9826106e1565b6001600160a01b038316600090815260026020526040902060010154039050919050565b6001546109f957600080fd5b80610a03336109be565b1015610a0e57600080fd5b33600090815260026020526040902060019081018054839003905554600160401b820281610a3857fe5b600380549290910491909101905560408051828152905130913391600080516020610f1c8339815191529181900360200190a350565b604051806040016040528060038152602001622ca32760e91b81525081565b6000610a9a338484610be8565b5060019392505050565b6109bb81610e56565b6001600160a01b0391821660009081526002602090815260408083209390941682526003909201909152205490565b600080610ae8336105b7565b905033600081815260026020908152604091829020600481018054600160401b8702019055600101805485019055815184815291513092600080516020610f1c83398151915292908290030190a360408051828152905133917f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999919081900360200190a2905090565b6004546001600160a01b03163314610b8857600080fd5b6001600160a01b038216600081815260026020908152604091829020805460ff1916851515908117909155825190815291517f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d9281900390910190a25050565b600081610bf4856109be565b1015610bff57600080fd5b6001600160a01b0384166000908152600260205260409020600101805483900390556064600683020469032d26d12e980b60000081610c3c6106db565b031080610c4d5750610c4d85610781565b15610c56575060005b6001600160a01b0380851660008181526002602090815260409182902060010180548689039081019091558251818152925190948a1692600080516020610f1c83398151915292908290030190a38115610d705760015415610d0657600154600290920491600160401b830281610cc957fe5b600380549290910491909101905560408051838152905130916001600160a01b03891691600080516020610f1c8339815191529181900360200190a35b6000805483900381556040805184815290516001600160a01b03891691600080516020610f1c833981519152919081900360200190a36040805183815290517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9181900360200190a15b95945050505050565b80610d83336106e1565b1015610d8e57600080fd5b6001546064600683020490600160401b820281610da757fe5b6003805492909104909101815560018054849003815533600081815260026020818152604092839020948501805488900390559084018054889003905593546004909301805493870290930390925581518486038152915190923092600080516020610f1c833981519152929081900390910190a360408051838152905133917f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f919081900360200190a25050565b80610e60336109be565b1015610e6b57600080fd5b670de0b6b3a764000081610e7e336106e1565b011015610e8a57600080fd5b6001805482019055336000818152600260208181526040928390209182018054860190556003546004909201805492860290920190915581518481529151309392600080516020610f1c83398151915292908290030190a360408051828152905133917ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0919081900360200190a25056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a7231582047074ff64af78c32d954a92ff5bebf4764359dadfe070911a2f387703bba927c64736f6c63430005110032

Deployed Bytecode Sourcemap

159:7265:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:7265:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4813:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4813:200:0;-1:-1:-1;;;;;4813:200:0;;:::i;:::-;;;;;;;;;;;;;;;;513:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;513:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3110:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3110:203:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3945:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3945:259:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3945:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3945: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;3945:259:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3945:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3945: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;-1:-1;3945:259:0;;-1:-1:-1;3945:259:0;-1:-1:-1;3945:259:0;:::i;:::-;;4393:86;;;:::i;4704:104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4704:104:0;-1:-1:-1;;;;;4704:104:0;;:::i;4484:86::-;;;:::i;3318:266::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3318:266:0;;;;;;;;;;;;;;;;;:::i;601:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5159:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5159:111:0;-1:-1:-1;;;;;5159:111:0;;:::i;3589:351::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3589:351:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3589:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3589: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;-1:-1;3589:351:0;;-1:-1:-1;3589:351:0;-1:-1:-1;3589:351:0;:::i;2154:502::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2154:502:0;;:::i;5275:275::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5275:275:0;-1:-1:-1;;;;;5275:275:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:72;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1697:72:0;;:::i;4575:124::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4575:124:0;-1:-1:-1;;;;;4575:124:0;;:::i;2661:306::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2661:306:0;;:::i;560:37::-;;;:::i;2972:133::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2972:133:0;;;;;;;;:::i;1624:68::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1624:68:0;;:::i;5018:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5018:136:0;;;;;;;;;;:::i;1774:375::-;;;:::i;4209:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4209:177:0;;;;;;;;;;:::i;4813:200::-;-1:-1:-1;;;;;4962:17:0;4870:7;4962:17;;;:10;:17;;;;;;;;:30;;;;4934:24;;;4906:25;;-1:-1:-1;;;4906:52:0;;4899:93;;;;4891:117;;4813:200::o;513:43::-;;;;;;;;;;;;;;-1:-1:-1;;;513:43:0;;;;:::o;3110:203::-;3202:10;3180:4;3191:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3191:42:0;;;;;:32;;;;:42;;;;;:52;;;3253:39;;;;;;;3180:4;;3191:42;;3202:10;;3253:39;;;;;;;;-1:-1:-1;3304:4:0;3110:203;;;;:::o;3945:259::-;4049:36;;;4041:45;;;;;;4096:9;4091:109;4111:21;;;4091:109;;;4145:49;4155:10;4167;;4178:1;4167:13;;;;;;;;;;;;;-1:-1:-1;;;;;4167:13:0;4182:8;;4191:1;4182:11;;;;;;;;;;;;;4145:9;:49::i;:::-;-1:-1:-1;4134:3:0;;4091:109;;;;3945:259;;;;:::o;4393:86::-;4437:7;4458:16;4393:86;:::o;4704:104::-;-1:-1:-1;;;;;4779:17:0;4758:7;4779:17;;;:10;:17;;;;;;;;:24;;;4704:104::o;4484:86::-;4549:16;;4484:86;:::o;3318:266::-;-1:-1:-1;;;;;3422:17:0;;3403:4;3422:17;;;:10;:17;;;;;;;;3450:10;3422:39;;:27;;:39;;;;;;:50;-1:-1:-1;3422:50:0;3414:59;;;;;;-1:-1:-1;;;;;3478:17:0;;:4;:17;;;:10;:17;;;;;;;;3506:10;3478:39;;:27;;:39;;;;;:50;;;;;;;3533:30;3489:5;3550:3;3521:7;3533:9;:30::i;:::-;-1:-1:-1;3575:4:0;;3318:266;-1:-1:-1;;;;3318:266:0:o;601:35::-;634:2;601:35;:::o;5159:111::-;-1:-1:-1;;;;;5236:17:0;5218:4;5236:17;;;:10;:17;;;;;:29;;;;5159:111::o;3589:351::-;3684:4;3695:20;3718:35;3728:10;3740:3;3745:7;3718:9;:35::i;:::-;3695:58;-1:-1:-1;3799:16:0;;3828:9;;;;3824:96;;3853:60;;-1:-1:-1;;;3853:60:0;;3881:10;3853:60;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3853:27:0;;;;;3881:10;3893:12;;3907:5;;;;3853:60;;;;3907:5;;;;3853:60;1:33:-1;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;;3853:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3853:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3853:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3853:60:0;3845:69;;;;;;-1:-1:-1;3931:4:0;;3589:351;-1:-1:-1;;;;;;3589:351:0:o;2154:502::-;2232:7;2207:21;2217:10;2207:9;:21::i;:::-;:32;;2199:41;;;;;;2256:10;2245:4;:22;;;:10;:22;;;;;:30;;;;:41;;;;;;;2331:16;2279:7;;2331:20;2327:199;;2443:16;;2376:1;2359:18;;;;-1:-1:-1;;;2412:28:0;;2443:16;2412:47;;;;2383:25;:76;;2412:47;;;;2383:76;;;;;;2470:50;;;;;;;;2499:4;;2479:10;;-1:-1:-1;;;;;;;;;;;2470:50:0;;;;;;;;2327:199;2530:4;:33;;;;;;;2573:49;;;;;;;;2582:10;;-1:-1:-1;;;;;;;;;;;2573:49:0;;;;;;;;;2632:19;;;;;;;;;;;;;;;;;2154:502;;:::o;5275:275::-;5331:24;5357:25;5384:19;5405:18;5425:21;5461:13;:11;:13::i;:::-;5476;:11;:13::i;:::-;5491:16;5501:5;5491:9;:16::i;:::-;5509:15;5518:5;5509:8;:15::i;:::-;5526:18;5538:5;5526:11;:18::i;:::-;5453:92;;;;-1:-1:-1;5453:92:0;;-1:-1:-1;5453:92:0;-1:-1:-1;5453:92:0;;-1:-1:-1;5275:275:0;-1:-1:-1;;5275:275:0:o;1697:72::-;1746:18;1756:7;1746:9;:18::i;:::-;1697:72;:::o;4575:124::-;4630:7;4679:15;4688:5;4679:8;:15::i;:::-;-1:-1:-1;;;;;4651:17:0;;:4;:17;;;:10;:17;;;;;:25;;;:43;;-1:-1:-1;4575:124:0;;;:::o;2661:306::-;2720:16;;2712:29;;;;;;2779:7;2754:21;2764:10;2754:9;:21::i;:::-;:32;;2746:41;;;;;;2803:10;2792:4;:22;;;:10;:22;;;;;:30;;;;:41;;;;;;;2892:16;-1:-1:-1;;;2867:22:0;;2892:16;2867:41;;;;2838:25;:70;;2867:41;;;;2838:70;;;;;;2918:44;;;;;;;;2947:4;;2927:10;;-1:-1:-1;;;;;;;;;;;2918:44:0;;;;;;;;2661:306;:::o;560:37::-;;;;;;;;;;;;;;-1:-1:-1;;;560:37:0;;;;:::o;2972:133::-;3038:4;3049:35;3059:10;3071:3;3076:7;3049:9;:35::i;:::-;-1:-1:-1;3096:4:0;;2972:133;-1:-1:-1;;;2972:133:0:o;1624:68::-;1671:16;1679:7;1671;:16::i;5018:136::-;-1:-1:-1;;;;;5112:17:0;;;5091:7;5112:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;;;:37;;;;;;5018:136::o;1774:375::-;1811:7;1825:18;1846:23;1858:10;1846:11;:23::i;:::-;1825:44;-1:-1:-1;1914:10:0;1903:4;:22;;;:10;:22;;;;;;;;;:35;;;:72;;-1:-1:-1;;;1949:25:0;;1903:72;;;-1:-1:-1;1980:30:0;:44;;;;;;2034:47;;;;;;;2051:4;;-1:-1:-1;;;;;;;;;;;2034:47:0;;;;;;;;2091:31;;;;;;;;2099:10;;2091:31;;;;;;;;;;2134:10;-1:-1:-1;1774:375:0;:::o;4209:177::-;4291:10;;-1:-1:-1;;;;;4291:10:0;4277;:24;4269:33;;;;;;-1:-1:-1;;;;;4307:17:0;;:4;:17;;;:10;:17;;;;;;;;;:39;;-1:-1:-1;;4307:39:0;;;;;;;;;;4356:25;;;;;;;;;;;;;;;;;4209:177;;:::o;5557:885::-;5639:7;5681;5661:16;5671:5;5661:9;:16::i;:::-;:27;;5653:36;;;;;;-1:-1:-1;;;;;5694:17:0;;:4;:17;;;:10;:17;;;;;:25;;:36;;;;;;;5781:3;344:1;5759:19;;:25;5825:35;5759:25;5793:13;:11;:13::i;:::-;:29;:67;:91;;;;5864:20;5878:5;5864:13;:20::i;:::-;5789:126;;;-1:-1:-1;5908:1:0;5789:126;-1:-1:-1;;;;;5970:15:0;;;5919:20;5970:15;;;:10;:15;;;;;;;;;:23;;:39;;5942:23;;;5970:39;;;;;;6019:34;;;;;;;5942:23;;6019:34;;;-1:-1:-1;;;;;;;;;;;6019:34:0;;;;;;;;6062:17;;6058:356;;6091:16;;:20;6087:198;;6205:16;;6137:1;6120:18;;;;-1:-1:-1;;;6174:28:0;;6205:16;6174:47;;;;6145:25;:76;;6174:47;;;;6145:76;;;;;;6233:45;;;;;;;;6257:4;;-1:-1:-1;;;;;6233:45:0;;;-1:-1:-1;;;;;;;;;;;6233:45:0;;;;;;;;6087:198;6290:4;:33;;;;;;;6334:44;;;;;;;;-1:-1:-1;;;;;6334:44:0;;;-1:-1:-1;;;;;;;;;;;6334:44:0;;;;;;;;;6389:19;;;;;;;;;;;;;;;;;6058:356;6425:12;5557:885;-1:-1:-1;;;;;5557:885:0:o;6866:555::-;6948:7;6924:20;6933:10;6924:8;:20::i;:::-;:31;;6916:40;;;;;;7075:16;;7007:3;344:1;6985:19;;:25;;-1:-1:-1;;;7044:28:0;;7075:16;7044:47;;;;7015:25;:76;;7044:47;;;;7015:76;;;;;-1:-1:-1;7096:27:0;;;;;;;7139:10;-1:-1:-1;7128:22:0;;;-1:-1:-1;7128:22:0;;;;;;;;;:30;;;:47;;;;;;;7180:29;;;:40;;;;;;;7281:25;;7225:35;;;;:82;;7271:35;;;7225:82;;;;;;7317:60;;7353:23;;;7317:60;;;;7139:10;;7334:4;;-1:-1:-1;;;;;;;;;;;7317:60:0;;;;;;;;;;7387:29;;;;;;;;7396:10;;7387:29;;;;;;;;;;6866:555;;:::o;6447:414::-;6528:7;6503:21;6513:10;6503:9;:21::i;:::-;:32;;6495:41;;;;;;476:4;6572:7;6549:20;6558:10;6549:8;:20::i;:::-;:30;:51;;6541:60;;;;;;6606:16;:27;;;;;;6649:10;-1:-1:-1;6638:22:0;;;:10;:22;;;;;;;;;:29;;;:40;;;;;;6739:25;;6683:35;;;;:82;;6729:35;;;6683:82;;;;;;6775:44;;;;;;;6804:4;;6649:10;-1:-1:-1;;;;;;;;;;;6775:44:0;;;;;;;;6829:27;;;;;;;;6836:10;;6829:27;;;;;;;;;;6447:414;:::o

Swarm Source

bzzr://47074ff64af78c32d954a92ff5bebf4764359dadfe070911a2f387703bba927c
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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.