ETH Price: $2,603.86 (-5.60%)

Token

SURF3d (S3D)
 

Overview

Max Total Supply

895,363.510073580509795595 S3D

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 S3D

Value
$0.00
0x4657fb9e1642fa072107aca6238d234f1751ee3b
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:
SURF3d

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-11-10
*/

pragma solidity ^0.6.12;

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

interface Router {
	function WETH() external pure returns (address);
	function swapExactETHForTokens(uint256 _amountOutMin, address[] calldata _path, address _to, uint256 _deadline) external payable returns (uint256[] memory);
}

interface SURF {
	function balanceOf(address) external view returns (uint256);
	function transfer(address, uint256) external returns (bool);
	function transferFrom(address, address, uint256) external returns (bool);
}

contract WhirlpoolManager {

	uint256 constant private BOARD_DIVIDENDS_PERCENT = 10;

	struct Info {
		address whirlpool;
		address boardDividends;
		SURF surf;
		SURF3d s3d;
	}
	Info private info;

	constructor(address _surf, address _whirlpool, address _boardDividends) public {
		info.whirlpool = _whirlpool;
		info.boardDividends = _boardDividends;
		info.surf = SURF(_surf);
		info.s3d = SURF3d(msg.sender);
	}

	receive() external payable {}

	function deposit() external {
		uint256 _balance = address(this).balance;
		if (_balance > 0) {
			info.s3d.deposit{value: _balance}();
		}
	}

	function release() external {
		if (info.s3d.dividendsOf(address(this)) > 0) {
			info.s3d.withdraw();
		}
		uint256 _balance = info.surf.balanceOf(address(this));
		if (_balance > 0) {
			uint256 _boardDividends = _balance * BOARD_DIVIDENDS_PERCENT / 100;
			info.surf.transfer(info.boardDividends, _boardDividends); // Send 10% of divs to SURF Board holders
			info.surf.transfer(address(info.surf), _boardDividends); // Burn 10% of divs by sending them to the SURF token contract
			info.surf.transfer(info.whirlpool, _balance - _boardDividends - _boardDividends); // Send 80% of divs to the Whirlpool
		}
	}
}

contract SURF3d {

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private BUY_TAX = 15;
	uint256 constant private SELL_TAX = 15;
	uint256 constant private STARTING_PRICE = 1e17;
	uint256 constant private INCREMENT = 1e12;

	string constant public name = "SURF3d";
	string constant public symbol = "S3D";
	uint8 constant public decimals = 18;

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

	struct Info {
		uint256 totalSupply;
		mapping(address => User) users;
		uint256 scaledSurfPerToken;
		uint256 openingBlock;
		address whirlpool;
		address deployer;
		Router router;
		SURF surf;
	}
	Info private info;

	WhirlpoolManager public whirlpoolManager;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);
	event Buy(address indexed buyer, uint256 amountSpent, uint256 tokensReceived);
	event Sell(address indexed seller, uint256 tokensSpent, uint256 amountReceived);
	event Withdraw(address indexed user, uint256 amount);
	event Reinvest(address indexed user, uint256 amount);


	constructor(address _surf, address _whirlpool, address _boardDividends) public {
		info.router = Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
		info.surf = SURF(_surf);
		info.whirlpool = _whirlpool;
		info.deployer = msg.sender;
		whirlpoolManager = new WhirlpoolManager(_surf, _whirlpool, _boardDividends);
	}

	function setOpeningBlock(uint256 _openingBlock, uint256 _firstBuyAmount) external {
		require(info.openingBlock == 0 && msg.sender == info.deployer);
		require(_openingBlock >= block.number + 500);
		if (_firstBuyAmount > 0) {
			buyFor(_firstBuyAmount, address(whirlpoolManager));
		}
		info.openingBlock = _openingBlock;
	}

	receive() external payable {
		if (msg.sender == tx.origin) {
			deposit();
		}
	}

	function deposit() public payable returns (uint256) {
		return depositFor(msg.sender);
	}

	function depositFor(address _user) public payable returns (uint256) {
		require(msg.value > 0);
		return _deposit(msg.value, _user);
	}

	function buy(uint256 _amount) external returns (uint256) {
		return buyFor(_amount, msg.sender);
	}

	function buyFor(uint256 _amount, address _user) public returns (uint256) {
		require(_amount > 0);
		uint256 _balanceBefore = info.surf.balanceOf(address(this));
		info.surf.transferFrom(msg.sender, address(this), _amount);
		uint256 _amountReceived = info.surf.balanceOf(address(this)) - _balanceBefore;
		return _buy(_amountReceived, _user);
	}

	function tokenCallback(address _from, uint256 _tokens, bytes calldata) external returns (bool) {
		require(msg.sender == address(info.surf));
		require(_tokens > 0);
		_buy(_tokens, _from);
		return true;
	}

	function sell(uint256 _tokens) external returns (uint256) {
		require(balanceOf(msg.sender) >= _tokens);
		return _sell(_tokens);
	}

	function withdraw() external returns (uint256) {
		uint256 _dividends = dividendsOf(msg.sender);
		require(_dividends > 0);
		info.users[msg.sender].scaledPayout += int256(_dividends * FLOAT_SCALAR);
		info.surf.transfer(msg.sender, _dividends);
		emit Withdraw(msg.sender, _dividends);
		return _dividends;
	}

	function reinvest() external returns (uint256) {
		uint256 _dividends = dividendsOf(msg.sender);
		require(_dividends > 0);
		info.users[msg.sender].scaledPayout += int256(_dividends * FLOAT_SCALAR);
		emit Reinvest(msg.sender, _dividends);
		return _buy(_dividends, msg.sender);
	}

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

	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;
		return _transfer(_from, _to, _tokens);
	}

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


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

	function currentPrices() public view returns (uint256 truePrice, uint256 buyPrice, uint256 sellPrice) {
		truePrice = STARTING_PRICE + INCREMENT * totalSupply() / 1e18;
		buyPrice = truePrice * 100 / (100 - BUY_TAX);
		sellPrice = truePrice * (100 - SELL_TAX) / 100;
	}

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

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

	function allInfoFor(address _user) external view returns (uint256 contractBalance, uint256 totalTokenSupply, uint256 truePrice, uint256 buyPrice, uint256 sellPrice, uint256 openingBlock, uint256 currentBlock, uint256 userETH, uint256 userSURF, uint256 userBalance, uint256 userDividends, uint256 userLiquidValue) {
		contractBalance = info.surf.balanceOf(address(this));
		totalTokenSupply = totalSupply();
		(truePrice, buyPrice, sellPrice) = currentPrices();
		openingBlock = info.openingBlock;
		currentBlock = block.number;
		userETH = _user.balance;
		userSURF = info.surf.balanceOf(_user);
		userBalance = balanceOf(_user);
		userDividends = dividendsOf(_user);
		userLiquidValue = calculateResult(userBalance, false, false) + userDividends;
	}

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

	function calculateResult(uint256 _amount, bool _buy, bool _inverse) public view returns (uint256) {
		uint256 _buyPrice;
		uint256 _sellPrice;
		( , _buyPrice, _sellPrice) = currentPrices();
		uint256 _rate = (_buy ? _buyPrice : _sellPrice);
		uint256 _increment = INCREMENT * (_buy ? 100 : (100 - SELL_TAX)) / (_buy ? (100 - BUY_TAX) : 100);
		if ((_buy && !_inverse) || (!_buy && _inverse)) {
			if (_inverse) {
				return (2 * _rate - _sqrt(4 * _rate * _rate + _increment * _increment - 4 * _rate * _increment - 8 * _amount * _increment) - _increment) * 1e18 / (2 * _increment);
			} else {
				return (_sqrt((_increment + 2 * _rate) * (_increment + 2 * _rate) + 8 * _amount * _increment) - _increment - 2 * _rate) * 1e18 / (2 * _increment);
			}
		} else {
			if (_inverse) {
				return (_rate * _amount + (_increment * (_amount + 1e18) / 2e18) * _amount) / 1e18;
			} else {
				return (_rate * _amount - (_increment * (_amount + 1e18) / 2e18) * _amount) / 1e18;
			}
		}
	}


	function _transfer(address _from, address _to, uint256 _tokens) internal returns (bool) {
		require(info.users[_from].balance >= _tokens);
		info.users[_from].balance -= _tokens;
		info.users[_from].scaledPayout -= int256(_tokens * info.scaledSurfPerToken);
		info.users[_to].balance += _tokens;
		info.users[_to].scaledPayout += int256(_tokens * info.scaledSurfPerToken);
		emit Transfer(_from, _to, _tokens);
		return true;
	}

	function _deposit(uint256 _value, address _user) internal returns (uint256) {
		uint256 _balanceBefore = info.surf.balanceOf(address(this));
		address[] memory _poolPath = new address[](2);
		_poolPath[0] = info.router.WETH();
		_poolPath[1] = address(info.surf);
		info.router.swapExactETHForTokens{value: _value}(0, _poolPath, address(this), block.timestamp + 5 minutes);
		uint256 _amount = info.surf.balanceOf(address(this)) - _balanceBefore;
		return _buy(_amount, _user);
	}

	function _buy(uint256 _amount, address _user) internal returns (uint256 tokens) {
		require((info.openingBlock == 0 && msg.sender == info.deployer) || (info.openingBlock != 0 && block.number >= info.openingBlock));
		uint256 _tax = _amount * BUY_TAX / 100;
		tokens = calculateResult(_amount, true, false);
		info.totalSupply += tokens;
		info.users[_user].balance += tokens;
		info.users[_user].scaledPayout += int256(tokens * info.scaledSurfPerToken);
		info.scaledSurfPerToken += _tax * FLOAT_SCALAR / info.totalSupply;
		emit Transfer(address(0x0), _user, tokens);
		emit Buy(_user, _amount, tokens);
	}

	function _sell(uint256 _tokens) internal returns (uint256 amount) {
		require(info.users[msg.sender].balance >= _tokens);
		amount = calculateResult(_tokens, false, false);
		uint256 _tax = amount * SELL_TAX / (100 - SELL_TAX);
		info.totalSupply -= _tokens;
		info.users[msg.sender].balance -= _tokens;
		info.users[msg.sender].scaledPayout -= int256(_tokens * info.scaledSurfPerToken);
		info.scaledSurfPerToken += _tax * FLOAT_SCALAR / info.totalSupply;
		info.surf.transfer(msg.sender, amount);
		emit Transfer(msg.sender, address(0x0), _tokens);
		emit Sell(msg.sender, _tokens, amount);
	}

	function _sqrt(uint256 _n) internal pure returns (uint256 result) {
		uint256 _tmp = (_n + 1) / 2;
		result = _n;
		while (_tmp < result) {
			result = _tmp;
			_tmp = (_n / _tmp + _tmp) / 2;
		}
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_surf","type":"address"},{"internalType":"address","name":"_whirlpool","type":"address"},{"internalType":"address","name":"_boardDividends","type":"address"}],"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":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountSpent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensReceived","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensSpent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountReceived","type":"uint256"}],"name":"Sell","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":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"contractBalance","type":"uint256"},{"internalType":"uint256","name":"totalTokenSupply","type":"uint256"},{"internalType":"uint256","name":"truePrice","type":"uint256"},{"internalType":"uint256","name":"buyPrice","type":"uint256"},{"internalType":"uint256","name":"sellPrice","type":"uint256"},{"internalType":"uint256","name":"openingBlock","type":"uint256"},{"internalType":"uint256","name":"currentBlock","type":"uint256"},{"internalType":"uint256","name":"userETH","type":"uint256"},{"internalType":"uint256","name":"userSURF","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userDividends","type":"uint256"},{"internalType":"uint256","name":"userLiquidValue","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"buyFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_buy","type":"bool"},{"internalType":"bool","name":"_inverse","type":"bool"}],"name":"calculateResult","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPrices","outputs":[{"internalType":"uint256","name":"truePrice","type":"uint256"},{"internalType":"uint256","name":"buyPrice","type":"uint256"},{"internalType":"uint256","name":"sellPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"depositFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reinvest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_openingBlock","type":"uint256"},{"internalType":"uint256","name":"_firstBuyAmount","type":"uint256"}],"name":"setOpeningBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"tokenCallback","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whirlpoolManager","outputs":[{"internalType":"contract WhirlpoolManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50604051611e25380380611e258339818101604052606081101561003357600080fd5b5080516020820151604092830151600680546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155600780546001600160a01b03808716918416919091179091556004805491851691831691909117905560058054909116331790559251919290918390839083906100b39061011c565b6001600160a01b03938416815291831660208301529091166040808301919091525190819003606001906000f0801580156100f2573d6000803e3d6000fd5b50600880546001600160a01b0319166001600160a01b039290921691909117905550610129915050565b6104c48061196183390190565b611829806101386000396000f3fe60806040526004361061014e5760003560e01c806370a08231116100b6578063d96a094a1161006f578063d96a094a1461062b578063d993969f14610655578063dd62ed3e14610685578063e4849b32146106c0578063f2de0140146106ea578063fdb5a03e1461071b57610167565b806370a082311461054357806395d89b4114610576578063a3a8573a1461058b578063a9059cbb146105c4578063aa67c919146105fd578063d0e30db01461062357610167565b8063313ce56711610108578063313ce567146103135780633472956c1461033e5780633ccfd60b146103785780634000aea01461038d57806357f6b8121461041f5780636be32e73146104b157610167565b806265318b1461016c57806306fdde03146101b1578063095ea7b31461023b57806318160ddd1461028857806323b872dd1461029d578063259bfdd7146102e057610167565b36610167573332141561016557610163610730565b505b005b600080fd5b34801561017857600080fd5b5061019f6004803603602081101561018f57600080fd5b50356001600160a01b0316610740565b60408051918252519081900360200190f35b3480156101bd57600080fd5b506101c661077e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102005781810151838201526020016101e8565b50505050905090810190601f16801561022d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024757600080fd5b506102746004803603604081101561025e57600080fd5b506001600160a01b0381351690602001356107a0565b604080519115158252519081900360200190f35b34801561029457600080fd5b5061019f610808565b3480156102a957600080fd5b50610274600480360360608110156102c057600080fd5b506001600160a01b0381358116916020810135909116906040013561080e565b3480156102ec57600080fd5b506102f5610881565b60408051938452602084019290925282820152519081900360600190f35b34801561031f57600080fd5b506103286108c9565b6040805160ff9092168252519081900360200190f35b34801561034a57600080fd5b5061019f6004803603606081101561036157600080fd5b5080359060208101351515906040013515156108ce565b34801561038457600080fd5b5061019f610a0f565b34801561039957600080fd5b50610274600480360360608110156103b057600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103e057600080fd5b8201836020820111156103f257600080fd5b8035906020019184600183028401116401000000008311171561041457600080fd5b509092509050610b02565b34801561042b57600080fd5b506104526004803603602081101561044257600080fd5b50356001600160a01b0316610bea565b604080519c8d5260208d019b909b528b8b019990995260608b019790975260808a019590955260a089019390935260c088019190915260e087015261010086015261012085015261014084015261016083015251908190036101800190f35b3480156104bd57600080fd5b50610274600480360360608110156104d457600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561050457600080fd5b82018360208201111561051657600080fd5b8035906020019184600183028401116401000000008311171561053857600080fd5b509092509050610d8d565b34801561054f57600080fd5b5061019f6004803603602081101561056657600080fd5b50356001600160a01b0316610dbe565b34801561058257600080fd5b506101c6610dd9565b34801561059757600080fd5b5061019f600480360360408110156105ae57600080fd5b50803590602001356001600160a01b0316610df8565b3480156105d057600080fd5b50610274600480360360408110156105e757600080fd5b506001600160a01b038135169060200135610f98565b61019f6004803603602081101561061357600080fd5b50356001600160a01b0316610fa5565b61019f610730565b34801561063757600080fd5b5061019f6004803603602081101561064e57600080fd5b5035610fc3565b34801561066157600080fd5b506101656004803603604081101561067857600080fd5b5080359060200135610fcf565b34801561069157600080fd5b5061019f600480360360408110156106a857600080fd5b506001600160a01b0381358116916020013516611028565b3480156106cc57600080fd5b5061019f600480360360208110156106e357600080fd5b5035611054565b3480156106f657600080fd5b506106ff611074565b604080516001600160a01b039092168252519081900360200190f35b34801561072757600080fd5b5061019f611083565b600061073b33610fa5565b905090565b6001600160a01b038116600090815260016020526040812060020154600160401b9061076b84610dbe565b60025402038161077757fe5b0492915050565b6040518060400160405280600681526020016514d554918cd960d21b81525081565b3360008181526001602081815260408084206001600160a01b0388168086529301825280842086905580518681529051939492937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60005490565b6001600160a01b0383166000908152600160208181526040808420338552909201905281205482111561084057600080fd5b6001600160a01b03841660009081526001602081815260408084203385529092019052902080548390039055610877848484611101565b90505b9392505050565b6000806000670de0b6b3a7640000610897610808565b64e8d4a5100002816108a557fe5b0467016345785d8a0000019250605560648402049150606460558402049050909192565b601281565b60008060006108db610881565b909350915060009050856108ef57816108f1565b825b9050600086610901576064610904565b60555b87610910576055610913565b60645b64e8d4a51000028161092157fe5b04905086801561092f575085155b806109405750861580156109405750855b156109c3578515610993578060020281610970838b600802028486600402028586028788600402020103036111b8565b846002020303670de0b6b3a7640000028161098757fe5b0494505050505061087a565b6002808202908302826109b082820180028c8302600802016111b8565b0303670de0b6b3a7640000028161098757fe5b85156109ec57670de0b6b3a7640000828902671bc16d674ec800008a83018402048a0201610987565b670de0b6b3a7640000671bc16d674ec800008982018302048902838a0203610987565b600080610a1b33610740565b905060008111610a2a57600080fd5b3360008181526001602090815260408083206002018054600160401b8702019055600754815163a9059cbb60e01b815260048101959095526024850186905290516001600160a01b039091169363a9059cbb9360448083019493928390030190829087803b158015610a9b57600080fd5b505af1158015610aaf573d6000803e3d6000fd5b505050506040513d6020811015610ac557600080fd5b505060408051828152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a2905090565b6000610b0f338686611101565b50843b63ffffffff811615610bde57856001600160a01b0316636be32e73338787876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b505050506040513d6020811015610bd357600080fd5b5051610bde57600080fd5b50600195945050505050565b600080600080600080600080600080600080600060070160009054906101000a90046001600160a01b03166001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610c6157600080fd5b505afa158015610c75573d6000803e3d6000fd5b505050506040513d6020811015610c8b57600080fd5b50519b50610c97610808565b9a50610ca1610881565b809a50819b50829c5050505060006003015496504395508c6001600160a01b0316319450600060070160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d6020811015610d5457600080fd5b50519350610d618d610dbe565b9250610d6c8d610740565b915081610d7b846000806108ce565b01905091939597999b5091939597999b565b6007546000906001600160a01b03163314610da757600080fd5b60008411610db457600080fd5b610bde84866111ef565b6001600160a01b031660009081526001602052604090205490565b6040518060400160405280600381526020016214ccd160ea1b81525081565b6000808311610e0657600080fd5b600754604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610e5157600080fd5b505afa158015610e65573d6000803e3d6000fd5b505050506040513d6020811015610e7b57600080fd5b5051600754604080516323b872dd60e01b81523360048201523060248201526044810188905290519293506001600160a01b03909116916323b872dd916064808201926020929091908290030181600087803b158015610eda57600080fd5b505af1158015610eee573d6000803e3d6000fd5b505050506040513d6020811015610f0457600080fd5b5050600754604080516370a0823160e01b8152306004820152905160009284926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b158015610f5657600080fd5b505afa158015610f6a573d6000803e3d6000fd5b505050506040513d6020811015610f8057600080fd5b5051039050610f8f81856111ef565b95945050505050565b600061087a338484611101565b6000803411610fb357600080fd5b610fbd3483611320565b92915050565b6000610fbd8233610df8565b600354158015610fe957506005546001600160a01b031633145b610ff257600080fd5b436101f40182101561100357600080fd5b8015611022576008546110209082906001600160a01b0316610df8565b505b50600355565b6001600160a01b0391821660009081526001602081815260408084209490951683529201909152205490565b60008161106033610dbe565b101561106b57600080fd5b610fbd82611680565b6008546001600160a01b031681565b60008061108f33610740565b90506000811161109e57600080fd5b336000818152600160209081526040918290206002018054600160401b8602019055815184815291517fbd654390d0d973e8c8376ed6053be8658870df892687852cc5c914d700291b879281900390910190a26110fb81336111ef565b91505090565b6001600160a01b03831660009081526001602052604081205482111561112657600080fd5b6001600160a01b03848116600081815260016020908152604080832080548890038155600280549181018054928a02909203909155948816808452928190208054880181558554950180549588029095019094558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b80600260018201045b818110156111e9578091506002818285816111d857fe5b0401816111e157fe5b0490506111c1565b50919050565b60035460009015801561120c57506005546001600160a01b031633145b8061122557506003541580159061122557506003544310155b61122e57600080fd5b6064600f84020461124284600160006108ce565b60008054820181556001600160a01b03851681526001602052604081208054830181556002805491018054918402909101905554909250600160401b82028161128757fe5b60028054929091049190910190556040805183815290516001600160a01b038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3604080518581526020810184905281516001600160a01b038616927f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed928290030190a25092915050565b600754604080516370a0823160e01b8152306004820152905160009283926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561137057600080fd5b505afa158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b50516040805160028082526060808301845293945090916020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561140457600080fd5b505afa158015611418573d6000803e3d6000fd5b505050506040513d602081101561142e57600080fd5b50518151829060009061143d57fe5b6001600160a01b03928316602091820292909201015260075482519116908290600190811061146857fe5b6001600160a01b03928316602091820292909201810191909152600654604051637ff36ab560e01b8152600060048201818152306044840181905261012c4201606485018190526080602486019081528951608487015289519690981697637ff36ab5978e9795968b969495939460a49091019187810191028083838b5b838110156114fe5781810151838201526020016114e6565b50505050905001955050505050506000604051808303818588803b15801561152557600080fd5b505af1158015611539573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052602081101561156357600080fd5b810190808051604051939291908464010000000082111561158357600080fd5b90830190602082018581111561159857600080fd5b82518660208202830111640100000000821117156115b557600080fd5b82525081516020918201928201910280838360005b838110156115e25781810151838201526020016115ca565b505050509190910160408181526007546370a0823160e01b83523060048401529051600097508996506001600160a01b0390911694506370a08231935060248083019350602092829003018186803b15801561163d57600080fd5b505afa158015611651573d6000803e3d6000fd5b505050506040513d602081101561166757600080fd5b505103905061167681866111ef565b9695505050505050565b3360009081526001602052604081205482111561169c57600080fd5b6116a8826000806108ce565b6000805484900381553381526001602052604081208054859003815560028054910180549186029091039055549091506055600f83020490600160401b8202816116ee57fe5b600280549290910490910190556007546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561174f57600080fd5b505af1158015611763573d6000803e3d6000fd5b505050506040513d602081101561177957600080fd5b505060408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a36040805184815260208101849052815133927fed7a144fad14804d5c249145e3e0e2b63a9eb455b76aee5bc92d711e9bba3e4a928290030190a25091905056fea2646970667358221220c91bf2d50112d4f7603698d81e731f7c4be93a662647e1cc785055e0c3dbb87a64736f6c634300060c0033608060405234801561001057600080fd5b506040516104c43803806104c48339818101604052606081101561003357600080fd5b5080516020820151604090920151600080546001600160a01b039485166001600160a01b0319918216179091556001805492851692821692909217909155600280549390921692811692909217905560038054909116331790556104288061009c6000396000f3fe60806040526004361061002d5760003560e01c806386d1a69f14610039578063d0e30db01461005057610034565b3661003457005b600080fd5b34801561004557600080fd5b5061004e610065565b005b34801561005c57600080fd5b5061004e610374565b600354604080516265318b60e01b815230600482015290516000926001600160a01b0316916265318b916024808301926020929190829003018186803b1580156100ae57600080fd5b505afa1580156100c2573d6000803e3d6000fd5b505050506040513d60208110156100d857600080fd5b505111156101545760035460408051633ccfd60b60e01b815290516001600160a01b0390921691633ccfd60b916004808201926020929091908290030181600087803b15801561012757600080fd5b505af115801561013b573d6000803e3d6000fd5b505050506040513d602081101561015157600080fd5b50505b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561019f57600080fd5b505afa1580156101b3573d6000803e3d6000fd5b505050506040513d60208110156101c957600080fd5b505190508015610371576002546001546040805163a9059cbb60e01b81526001600160a01b0392831660048201526064600a8602046024820181905291519193929092169163a9059cbb9160448083019260209291908290030181600087803b15801561023557600080fd5b505af1158015610249573d6000803e3d6000fd5b505050506040513d602081101561025f57600080fd5b50506002546040805163a9059cbb60e01b81526001600160a01b0390921660048301819052602483018490529051909163a9059cbb9160448083019260209291908290030181600087803b1580156102b657600080fd5b505af11580156102ca573d6000803e3d6000fd5b505050506040513d60208110156102e057600080fd5b5050600254600080546040805163a9059cbb60e01b81526001600160a01b03928316600482015285870386900360248201529051919093169263a9059cbb9260448083019360209390929083900390910190829087803b15801561034357600080fd5b505af1158015610357573d6000803e3d6000fd5b505050506040513d602081101561036d57600080fd5b5050505b50565b4780156103715760035460408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0918491600480830192602092919082900301818588803b1580156103c257600080fd5b505af11580156103d6573d6000803e3d6000fd5b50505050506040513d60208110156103ed57600080fd5b50505056fea2646970667358221220476d9f014dae398eca49a1422114a65b00d3ae3b861eaba0c8c8ca3e73b8080464736f6c634300060c0033000000000000000000000000ea319e87cf06203dae107dd8e5672175e3ee976c000000000000000000000000999b1e6edcb412b59ecf0c5e14c20948ce81f40b000000000000000000000000c456c79213d0d39fbb2bec1d8ec356c6d3970a2f

Deployed Bytecode

0x60806040526004361061014e5760003560e01c806370a08231116100b6578063d96a094a1161006f578063d96a094a1461062b578063d993969f14610655578063dd62ed3e14610685578063e4849b32146106c0578063f2de0140146106ea578063fdb5a03e1461071b57610167565b806370a082311461054357806395d89b4114610576578063a3a8573a1461058b578063a9059cbb146105c4578063aa67c919146105fd578063d0e30db01461062357610167565b8063313ce56711610108578063313ce567146103135780633472956c1461033e5780633ccfd60b146103785780634000aea01461038d57806357f6b8121461041f5780636be32e73146104b157610167565b806265318b1461016c57806306fdde03146101b1578063095ea7b31461023b57806318160ddd1461028857806323b872dd1461029d578063259bfdd7146102e057610167565b36610167573332141561016557610163610730565b505b005b600080fd5b34801561017857600080fd5b5061019f6004803603602081101561018f57600080fd5b50356001600160a01b0316610740565b60408051918252519081900360200190f35b3480156101bd57600080fd5b506101c661077e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102005781810151838201526020016101e8565b50505050905090810190601f16801561022d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024757600080fd5b506102746004803603604081101561025e57600080fd5b506001600160a01b0381351690602001356107a0565b604080519115158252519081900360200190f35b34801561029457600080fd5b5061019f610808565b3480156102a957600080fd5b50610274600480360360608110156102c057600080fd5b506001600160a01b0381358116916020810135909116906040013561080e565b3480156102ec57600080fd5b506102f5610881565b60408051938452602084019290925282820152519081900360600190f35b34801561031f57600080fd5b506103286108c9565b6040805160ff9092168252519081900360200190f35b34801561034a57600080fd5b5061019f6004803603606081101561036157600080fd5b5080359060208101351515906040013515156108ce565b34801561038457600080fd5b5061019f610a0f565b34801561039957600080fd5b50610274600480360360608110156103b057600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103e057600080fd5b8201836020820111156103f257600080fd5b8035906020019184600183028401116401000000008311171561041457600080fd5b509092509050610b02565b34801561042b57600080fd5b506104526004803603602081101561044257600080fd5b50356001600160a01b0316610bea565b604080519c8d5260208d019b909b528b8b019990995260608b019790975260808a019590955260a089019390935260c088019190915260e087015261010086015261012085015261014084015261016083015251908190036101800190f35b3480156104bd57600080fd5b50610274600480360360608110156104d457600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561050457600080fd5b82018360208201111561051657600080fd5b8035906020019184600183028401116401000000008311171561053857600080fd5b509092509050610d8d565b34801561054f57600080fd5b5061019f6004803603602081101561056657600080fd5b50356001600160a01b0316610dbe565b34801561058257600080fd5b506101c6610dd9565b34801561059757600080fd5b5061019f600480360360408110156105ae57600080fd5b50803590602001356001600160a01b0316610df8565b3480156105d057600080fd5b50610274600480360360408110156105e757600080fd5b506001600160a01b038135169060200135610f98565b61019f6004803603602081101561061357600080fd5b50356001600160a01b0316610fa5565b61019f610730565b34801561063757600080fd5b5061019f6004803603602081101561064e57600080fd5b5035610fc3565b34801561066157600080fd5b506101656004803603604081101561067857600080fd5b5080359060200135610fcf565b34801561069157600080fd5b5061019f600480360360408110156106a857600080fd5b506001600160a01b0381358116916020013516611028565b3480156106cc57600080fd5b5061019f600480360360208110156106e357600080fd5b5035611054565b3480156106f657600080fd5b506106ff611074565b604080516001600160a01b039092168252519081900360200190f35b34801561072757600080fd5b5061019f611083565b600061073b33610fa5565b905090565b6001600160a01b038116600090815260016020526040812060020154600160401b9061076b84610dbe565b60025402038161077757fe5b0492915050565b6040518060400160405280600681526020016514d554918cd960d21b81525081565b3360008181526001602081815260408084206001600160a01b0388168086529301825280842086905580518681529051939492937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60005490565b6001600160a01b0383166000908152600160208181526040808420338552909201905281205482111561084057600080fd5b6001600160a01b03841660009081526001602081815260408084203385529092019052902080548390039055610877848484611101565b90505b9392505050565b6000806000670de0b6b3a7640000610897610808565b64e8d4a5100002816108a557fe5b0467016345785d8a0000019250605560648402049150606460558402049050909192565b601281565b60008060006108db610881565b909350915060009050856108ef57816108f1565b825b9050600086610901576064610904565b60555b87610910576055610913565b60645b64e8d4a51000028161092157fe5b04905086801561092f575085155b806109405750861580156109405750855b156109c3578515610993578060020281610970838b600802028486600402028586028788600402020103036111b8565b846002020303670de0b6b3a7640000028161098757fe5b0494505050505061087a565b6002808202908302826109b082820180028c8302600802016111b8565b0303670de0b6b3a7640000028161098757fe5b85156109ec57670de0b6b3a7640000828902671bc16d674ec800008a83018402048a0201610987565b670de0b6b3a7640000671bc16d674ec800008982018302048902838a0203610987565b600080610a1b33610740565b905060008111610a2a57600080fd5b3360008181526001602090815260408083206002018054600160401b8702019055600754815163a9059cbb60e01b815260048101959095526024850186905290516001600160a01b039091169363a9059cbb9360448083019493928390030190829087803b158015610a9b57600080fd5b505af1158015610aaf573d6000803e3d6000fd5b505050506040513d6020811015610ac557600080fd5b505060408051828152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a2905090565b6000610b0f338686611101565b50843b63ffffffff811615610bde57856001600160a01b0316636be32e73338787876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b505050506040513d6020811015610bd357600080fd5b5051610bde57600080fd5b50600195945050505050565b600080600080600080600080600080600080600060070160009054906101000a90046001600160a01b03166001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610c6157600080fd5b505afa158015610c75573d6000803e3d6000fd5b505050506040513d6020811015610c8b57600080fd5b50519b50610c97610808565b9a50610ca1610881565b809a50819b50829c5050505060006003015496504395508c6001600160a01b0316319450600060070160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d6020811015610d5457600080fd5b50519350610d618d610dbe565b9250610d6c8d610740565b915081610d7b846000806108ce565b01905091939597999b5091939597999b565b6007546000906001600160a01b03163314610da757600080fd5b60008411610db457600080fd5b610bde84866111ef565b6001600160a01b031660009081526001602052604090205490565b6040518060400160405280600381526020016214ccd160ea1b81525081565b6000808311610e0657600080fd5b600754604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610e5157600080fd5b505afa158015610e65573d6000803e3d6000fd5b505050506040513d6020811015610e7b57600080fd5b5051600754604080516323b872dd60e01b81523360048201523060248201526044810188905290519293506001600160a01b03909116916323b872dd916064808201926020929091908290030181600087803b158015610eda57600080fd5b505af1158015610eee573d6000803e3d6000fd5b505050506040513d6020811015610f0457600080fd5b5050600754604080516370a0823160e01b8152306004820152905160009284926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b158015610f5657600080fd5b505afa158015610f6a573d6000803e3d6000fd5b505050506040513d6020811015610f8057600080fd5b5051039050610f8f81856111ef565b95945050505050565b600061087a338484611101565b6000803411610fb357600080fd5b610fbd3483611320565b92915050565b6000610fbd8233610df8565b600354158015610fe957506005546001600160a01b031633145b610ff257600080fd5b436101f40182101561100357600080fd5b8015611022576008546110209082906001600160a01b0316610df8565b505b50600355565b6001600160a01b0391821660009081526001602081815260408084209490951683529201909152205490565b60008161106033610dbe565b101561106b57600080fd5b610fbd82611680565b6008546001600160a01b031681565b60008061108f33610740565b90506000811161109e57600080fd5b336000818152600160209081526040918290206002018054600160401b8602019055815184815291517fbd654390d0d973e8c8376ed6053be8658870df892687852cc5c914d700291b879281900390910190a26110fb81336111ef565b91505090565b6001600160a01b03831660009081526001602052604081205482111561112657600080fd5b6001600160a01b03848116600081815260016020908152604080832080548890038155600280549181018054928a02909203909155948816808452928190208054880181558554950180549588029095019094558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b80600260018201045b818110156111e9578091506002818285816111d857fe5b0401816111e157fe5b0490506111c1565b50919050565b60035460009015801561120c57506005546001600160a01b031633145b8061122557506003541580159061122557506003544310155b61122e57600080fd5b6064600f84020461124284600160006108ce565b60008054820181556001600160a01b03851681526001602052604081208054830181556002805491018054918402909101905554909250600160401b82028161128757fe5b60028054929091049190910190556040805183815290516001600160a01b038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3604080518581526020810184905281516001600160a01b038616927f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed928290030190a25092915050565b600754604080516370a0823160e01b8152306004820152905160009283926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561137057600080fd5b505afa158015611384573d6000803e3d6000fd5b505050506040513d602081101561139a57600080fd5b50516040805160028082526060808301845293945090916020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561140457600080fd5b505afa158015611418573d6000803e3d6000fd5b505050506040513d602081101561142e57600080fd5b50518151829060009061143d57fe5b6001600160a01b03928316602091820292909201015260075482519116908290600190811061146857fe5b6001600160a01b03928316602091820292909201810191909152600654604051637ff36ab560e01b8152600060048201818152306044840181905261012c4201606485018190526080602486019081528951608487015289519690981697637ff36ab5978e9795968b969495939460a49091019187810191028083838b5b838110156114fe5781810151838201526020016114e6565b50505050905001955050505050506000604051808303818588803b15801561152557600080fd5b505af1158015611539573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052602081101561156357600080fd5b810190808051604051939291908464010000000082111561158357600080fd5b90830190602082018581111561159857600080fd5b82518660208202830111640100000000821117156115b557600080fd5b82525081516020918201928201910280838360005b838110156115e25781810151838201526020016115ca565b505050509190910160408181526007546370a0823160e01b83523060048401529051600097508996506001600160a01b0390911694506370a08231935060248083019350602092829003018186803b15801561163d57600080fd5b505afa158015611651573d6000803e3d6000fd5b505050506040513d602081101561166757600080fd5b505103905061167681866111ef565b9695505050505050565b3360009081526001602052604081205482111561169c57600080fd5b6116a8826000806108ce565b6000805484900381553381526001602052604081208054859003815560028054910180549186029091039055549091506055600f83020490600160401b8202816116ee57fe5b600280549290910490910190556007546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561174f57600080fd5b505af1158015611763573d6000803e3d6000fd5b505050506040513d602081101561177957600080fd5b505060408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a36040805184815260208101849052815133927fed7a144fad14804d5c249145e3e0e2b63a9eb455b76aee5bc92d711e9bba3e4a928290030190a25091905056fea2646970667358221220c91bf2d50112d4f7603698d81e731f7c4be93a662647e1cc785055e0c3dbb87a64736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000ea319e87cf06203dae107dd8e5672175e3ee976c000000000000000000000000999b1e6edcb412b59ecf0c5e14c20948ce81f40b000000000000000000000000c456c79213d0d39fbb2bec1d8ec356c6d3970a2f

-----Decoded View---------------
Arg [0] : _surf (address): 0xEa319e87Cf06203DAe107Dd8E5672175e3Ee976c
Arg [1] : _whirlpool (address): 0x999b1e6EDCb412b59ECF0C5e14c20948Ce81F40b
Arg [2] : _boardDividends (address): 0xc456c79213D0d39Fbb2bec1d8Ec356c6d3970A2f

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000ea319e87cf06203dae107dd8e5672175e3ee976c
Arg [1] : 000000000000000000000000999b1e6edcb412b59ecf0c5e14c20948ce81f40b
Arg [2] : 000000000000000000000000c456c79213d0d39fbb2bec1d8ec356c6d3970a2f


Deployed Bytecode Sourcemap

1871:9526:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3775:10;3789:9;3775:23;3771:50;;;3806:9;:7;:9::i;:::-;;3771:50;1871:9526;;;;;6913:190;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6913:190:0;-1:-1:-1;;;;;6913:190:0;;:::i;:::-;;;;;;;;;;;;;;;;2122:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5633:203;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5633:203:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6433:86;;;;;;;;;;;;;:::i;5841:257::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5841:257:0;;;;;;;;;;;;;;;;;:::i;6524:273::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2205:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8017:998;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8017:998:0;;;;;;;;;;;;;;;;:::i;4889:317::-;;;;;;;;;;;;;:::i;6103:323::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6103:323:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6103:323:0;;-1:-1:-1;6103:323:0;-1:-1:-1;6103:323:0;:::i;7108:761::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7108:761:0;-1:-1:-1;;;;;7108:761:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4532:212;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4532:212:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4532:212:0;;-1:-1:-1;4532:212:0;-1:-1:-1;4532:212:0;:::i;6802:106::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6802:106:0;-1:-1:-1;;;;;6802:106:0;;:::i;2164:37::-;;;;;;;;;;;;;:::i;4175:352::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4175:352:0;;;;;;-1:-1:-1;;;;;4175:352:0;;:::i;5504:124::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5504:124:0;;;;;;;;:::i;3926:138::-;;;;;;;;;;;;;;;;-1:-1:-1;3926:138:0;-1:-1:-1;;;;;3926:138:0;;:::i;3830:91::-;;;:::i;4069:101::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4069:101:0;;:::i;3402:332::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3402:332:0;;;;;;;:::i;7874:138::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7874:138:0;;;;;;;;;;:::i;4749:135::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4749:135:0;;:::i;2587:40::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2587:40:0;;;;;;;;;;;;;;5211:288;;;;;;;;;;;;;:::i;3830:91::-;3873:7;3894:22;3905:10;3894;:22::i;:::-;3887:29;;3830:91;:::o;6913:190::-;-1:-1:-1;;;;;7052:17:0;;6970:7;7052:17;;;:10;:17;;;;;:30;;;-1:-1:-1;;;1933:5:0;7032:16;7063:5;7032:9;:16::i;:::-;7006:23;;:42;6999:83;6991:107;;;;;;;6913:190;-1:-1:-1;;6913:190:0:o;2122:38::-;;;;;;;;;;;;;;-1:-1:-1;;;2122:38:0;;;;:::o;5633:203::-;5725:10;5703:4;5714:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;5714:42:0;;;;;:32;;:42;;;;;:52;;;5776:39;;;;;;;5703:4;;5714:42;;5776:39;;;;;;;;;;;-1:-1:-1;5827:4:0;5633:203;;;;:::o;6433:86::-;6477:7;6498:16;6433:86;:::o;5841:257::-;-1:-1:-1;;;;;5945:17:0;;5926:4;5945:17;;;:10;:17;;;;;;;;5973:10;5945:39;;:27;;;:39;;;;;:50;-1:-1:-1;5945:50:0;5937:59;;;;;;-1:-1:-1;;;;;6001:17:0;;:4;:17;;;:10;:17;;;;;;;;6029:10;6001:39;;:27;;;:39;;;;:50;;;;;;;6063:30;6012:5;6080:3;6044:7;6063:9;:30::i;:::-;6056:37;;5841:257;;;;;;:::o;6524:273::-;6570:17;6589:16;6607:17;6688:4;6672:13;:11;:13::i;:::-;2112:4;6660:25;:32;;;;;;2067:4;6643:49;;-1:-1:-1;6727:13:0;:3;6708:15;;:33;;-1:-1:-1;6789:3:0;6771:14;6758:28;;:34;6746:46;;6524:273;;;:::o;2205:35::-;2238:2;2205:35;:::o;8017:998::-;8106:7;8120:17;8142:18;8194:15;:13;:15::i;:::-;8165:44;;-1:-1:-1;8165:44:0;-1:-1:-1;8214:13:0;;-1:-1:-1;8231:4:0;:29;;8250:10;8231:29;;;8238:9;8231:29;8214:47;;8266:18;8334:4;:28;;8359:3;8334:28;;;8342:13;8334:28;8300:4;:29;;8314:14;8300:29;;;8307:3;8300:29;2112:4;8287:43;:76;;;;;;8266:97;;8373:4;:17;;;;;8382:8;8381:9;8373:17;8372:42;;;;8397:4;8396:5;:17;;;;;8405:8;8396:17;8368:643;;;8426:8;8422:355;;;8594:10;8590:1;:14;8568:10;8463:102;8554:10;8544:7;8540:1;:11;:24;8527:10;8519:5;8515:1;:9;:22;8502:10;8489;:23;8481:5;8473;8469:1;:9;:17;:43;:68;:95;8463:5;:102::i;:::-;8455:5;8451:1;:9;:114;:127;8582:4;8450:136;:155;;;;;;8443:162;;;;;;;;8422:355;8755:1;:14;;;;8734:9;;8759:10;8633:85;8667:22;;;8639:51;;8693:24;;;:1;:24;8639:78;8633:5;:85::i;:::-;:98;:110;8747:4;8632:119;:138;;;;8368:643;8798:8;8794:212;;;8893:4;8823:15;;;8874:4;8856:14;;;8842:29;;:36;8841:48;;8823:66;8822:75;;8794:212;8995:4;8976;8958:14;;;8944:29;;:36;8943:48;;8925:15;;;:66;8924:75;;4889:317;4927:7;4941:18;4962:23;4974:10;4962:11;:23::i;:::-;4941:44;;5011:1;4998:10;:14;4990:23;;;;;;5029:10;5018:4;:22;;;:10;:22;;;;;;;;:35;;:72;;-1:-1:-1;;;5064:25:0;;5018:72;;;5095:9;;:42;;-1:-1:-1;;;5095:42:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5095:9:0;;;;:18;;:42;;;;;5018:22;5095:42;;;;;;;;:9;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5147:32:0;;;;;;;;5156:10;;5147:32;;;;;;5095:42;5147:32;;;5191:10;-1:-1:-1;4889:317:0;:::o;6103:323::-;6198:4;6209:35;6219:10;6231:3;6236:7;6209:9;:35::i;:::-;-1:-1:-1;6290:16:0;;6319:9;;;;6315:91;;6353:3;-1:-1:-1;;;;;6344:27:0;;6372:10;6384:7;6393:5;;6344:55;;;;;;;;;;;;;-1:-1:-1;;;;;6344:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6344:55:0;6336:64;;;;;;-1:-1:-1;6417:4:0;;6103:323;-1:-1:-1;;;;;6103:323:0:o;7108:761::-;7166:23;7191:24;7217:17;7236:16;7254:17;7273:20;7295;7317:15;7334:16;7352:19;7373:21;7396:23;7444:4;:9;;;;;;;;;;-1:-1:-1;;;;;7444:9:0;-1:-1:-1;;;;;7444:19:0;;7472:4;7444:34;;;;;;;;;;;;;-1:-1:-1;;;;;7444:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7444:34:0;;-1:-1:-1;7502:13:0;:11;:13::i;:::-;7483:32;;7555:15;:13;:15::i;:::-;7520:50;;;;;;;;;;;;7590:4;:17;;;7575:32;;7627:12;7612:27;;7654:5;-1:-1:-1;;;;;7654:13:0;;7644:23;;7683:4;:9;;;;;;;;;;-1:-1:-1;;;;;7683:9:0;-1:-1:-1;;;;;7683:19:0;;7703:5;7683:26;;;;;;;;;;;;;-1:-1:-1;;;;;7683:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7683:26:0;;-1:-1:-1;7728:16:0;7738:5;7728:9;:16::i;:::-;7714:30;;7765:18;7777:5;7765:11;:18::i;:::-;7749:34;;7851:13;7806:42;7822:11;7835:5;7842;7806:15;:42::i;:::-;:58;7788:76;;7108:761;;;;;;;;;;;;;:::o;4532:212::-;4662:9;;4621:4;;-1:-1:-1;;;;;4662:9:0;4640:10;:32;4632:41;;;;;;4696:1;4686:7;:11;4678:20;;;;;;4703;4708:7;4717:5;4703:4;:20::i;6802:106::-;-1:-1:-1;;;;;6878:17:0;6857:7;6878:17;;;:10;:17;;;;;:25;;6802:106::o;2164:37::-;;;;;;;;;;;;;;-1:-1:-1;;;2164:37:0;;;;:::o;4175:352::-;4239:7;4271:1;4261:7;:11;4253:20;;;;;;4303:9;;:34;;;-1:-1:-1;;;4303:34:0;;4331:4;4303:34;;;;;;4278:22;;-1:-1:-1;;;;;4303:9:0;;:19;;:34;;;;;;;;;;;;;;:9;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4303:34:0;4342:9;;:58;;;-1:-1:-1;;;4342:58:0;;4365:10;4342:58;;;;4385:4;4342:58;;;;;;;;;;;;4303:34;;-1:-1:-1;;;;;;4342:9:0;;;;:22;;:58;;;;;4303:34;;4342:58;;;;;;;;:4;:9;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4431:9:0;;:34;;;-1:-1:-1;;;4431:34:0;;4459:4;4431:34;;;;;;4405:23;;4468:14;;-1:-1:-1;;;;;4431:9:0;;;;:19;;:34;;;;;4342:58;;4431:34;;;;;;;;:9;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4431:34:0;:51;;-1:-1:-1;4494:28:0;4431:51;4516:5;4494:4;:28::i;:::-;4487:35;4175:352;-1:-1:-1;;;;;4175:352:0:o;5504:124::-;5570:4;5588:35;5598:10;5610:3;5615:7;5588:9;:35::i;3926:138::-;3985:7;4019:1;4007:9;:13;3999:22;;;;;;4033:26;4042:9;4053:5;4033:8;:26::i;:::-;4026:33;3926:138;-1:-1:-1;;3926:138:0:o;4069:101::-;4117:7;4138:27;4145:7;4154:10;4138:6;:27::i;3402:332::-;3497:17;;:22;:53;;;;-1:-1:-1;3537:13:0;;-1:-1:-1;;;;;3537:13:0;3523:10;:27;3497:53;3489:62;;;;;;3581:12;3596:3;3581:18;3564:13;:35;;3556:44;;;;;;3609:19;;3605:87;;3668:16;;3636:50;;3643:15;;-1:-1:-1;;;;;3668:16:0;3636:6;:50::i;:::-;;3605:87;-1:-1:-1;3696:17:0;:33;3402:332::o;7874:138::-;-1:-1:-1;;;;;7970:17:0;;;7949:7;7970:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;:37;;;;;;7874:138::o;4749:135::-;4798:7;4845;4820:21;4830:10;4820:9;:21::i;:::-;:32;;4812:41;;;;;;4865:14;4871:7;4865:5;:14::i;2587:40::-;;;-1:-1:-1;;;;;2587:40:0;;:::o;5211:288::-;5249:7;5263:18;5284:23;5296:10;5284:11;:23::i;:::-;5263:44;;5333:1;5320:10;:14;5312:23;;;;;;5351:10;5340:4;:22;;;:10;:22;;;;;;;;;:35;;:72;;-1:-1:-1;;;5386:25:0;;5340:72;;;5422:32;;;;;;;;;;;;;;;;;5466:28;5471:10;5483;5466:4;:28::i;:::-;5459:35;;;5211:288;:::o;9022:436::-;-1:-1:-1;;;;;9123:17:0;;9104:4;9123:17;;;:10;:17;;;;;:25;:36;-1:-1:-1;9123:36:0;9115:45;;;;;;-1:-1:-1;;;;;9165:17:0;;;:4;:17;;;:10;:17;;;;;;;;:36;;;;;;;9257:23;;;9206:30;;;:75;;9247:33;;;9206:75;;;;;;9286:15;;;;;;;;;;:34;;;;;;9374:23;;9325:28;;:73;;9364:33;;;9325:73;;;;;;9408:29;;;;;;;9286:15;;9408:29;;;;;;;;;;;-1:-1:-1;9449:4:0;9022:436;;;;;:::o;11189:205::-;11276:6;11286:1;11281;11276:6;;11275:12;11308:82;11322:6;11315:4;:13;11308:82;;;11345:4;11336:13;;11383:1;11375:4;11368;11363:2;:9;;;;;;:16;11362:22;;;;;;11355:29;;11308:82;;;11189:205;;;;:::o;9956:617::-;10050:17;;10020:14;;10050:22;:53;;;;-1:-1:-1;10090:13:0;;-1:-1:-1;;;;;10090:13:0;10076:10;:27;10050:53;10049:120;;;-1:-1:-1;10109:17:0;;:22;;;;:59;;-1:-1:-1;10151:17:0;;10135:12;:33;;10109:59;10041:129;;;;;;10210:3;1977:2;10190:17;;:23;10227:37;10190:17;10252:4;10175:12;10227:15;:37::i;:::-;10269:4;:26;;;;;;-1:-1:-1;;;;;10300:17:0;;;;-1:-1:-1;10300:17:0;;;;;:35;;;;;;10390:23;;;10340:30;;:74;;10381:32;;;10340:74;;;;;10468:16;10269:26;;-1:-1:-1;;;;10446:19:0;;10468:16;10446:38;;;;10419:23;:65;;10446:38;;;;10419:65;;;;;;10494:37;;;;;;;;-1:-1:-1;;;;;10494:37:0;;;10419:4;;10494:37;;;;;;;;;10541:27;;;;;;;;;;;;;;-1:-1:-1;;;;;10541:27:0;;;;;;;;;;;9956:617;;;;;:::o;9463:488::-;9569:9;;:34;;;-1:-1:-1;;;9569:34:0;;9597:4;9569:34;;;;;;9530:7;;;;-1:-1:-1;;;;;9569:9:0;;;;:19;;:34;;;;;;;;;;;;;;;:9;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9569:34:0;9637:16;;;9651:1;9637:16;;;9608:26;9637:16;;;;;9569:34;;-1:-1:-1;9637:16:0;;;;;;;;;;-1:-1:-1;;9673:11:0;;:18;;;-1:-1:-1;;;9673:18:0;;;;9608:45;;-1:-1:-1;;;;;;9673:11:0;;;;:16;;-1:-1:-1;9673:18:0;;;;;;;;;;;;;;:11;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9673:18:0;9658:12;;:9;;9668:1;;9658:12;;;;-1:-1:-1;;;;;9658:33:0;;;:12;;;;;;;;;:33;9719:9;;9696:12;;9719:9;;;9696;;9719;;9696:12;;;;;;-1:-1:-1;;;;;9696:33:0;;;:12;;;;;;;;;;:33;;;;9734:11;;:106;;-1:-1:-1;;;9734:106:0;;:4;:106;;;;;;9805:4;9734:106;;;;;;9830:9;9812:15;:27;9734:106;;;;;;;;;;;;;;;;;;;;;:11;;;;;:33;;9775:6;;9734:4;;9786:9;;9805:4;;9812:27;;9734:106;;;;;;;;;;;;;:4;:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9734:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9734:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;9734:106:0;;;;;;;;9863:9;;-1:-1:-1;;;9863:34:0;;9891:4;9863:34;;;;;;9845:15;;-1:-1:-1;9900:14:0;;-1:-1:-1;;;;;;9863:9:0;;;;-1:-1:-1;9863:19:0;;-1:-1:-1;9863:34:0;;;;;-1:-1:-1;9863:34:0;;;;;;;:9;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9863:34:0;:51;;-1:-1:-1;9926:20:0;9863:51;9940:5;9926:4;:20::i;:::-;9919:27;9463:488;-1:-1:-1;;;;;;9463:488:0:o;10578:606::-;10668:10;10628:14;10657:22;;;:10;:22;;;;;:30;:41;-1:-1:-1;10657:41:0;10649:50;;;;;;10713:38;10729:7;10738:5;10745;10713:15;:38::i;:::-;10756:12;10812:27;;;;;;;10855:10;10844:22;;-1:-1:-1;10844:22:0;;;;;:41;;;;;;;10946:23;;;10890:35;;:80;;10936:33;;;10890:80;;;;;11024:16;10704:47;;-1:-1:-1;10792:14:0;2019:2;10771:17;;:36;;-1:-1:-1;;;11002:19:0;;11024:16;11002:38;;;;10975:23;:65;;11002:38;;;;10975:65;;;;;11045:9;;:38;;;-1:-1:-1;;;11045:38:0;;11064:10;11045:38;;;;;;;;;;;;-1:-1:-1;;;;;11045:9:0;;;;:18;;:38;;;;;;;;;;;;;;;-1:-1:-1;11045:9:0;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11093:43:0;;;;;;;;11122:3;;11102:10;;11093:43;;;;;11045:38;11093:43;;;11146:33;;;;;;;;;;;;;;11151:10;;11146:33;;;;;;;;10578:606;;;;:::o

Swarm Source

ipfs://476d9f014dae398eca49a1422114a65b00d3ae3b861eaba0c8c8ca3e73b80804
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.