ETH Price: $2,288.06 (-3.57%)

Contract

0x023eBB622F461a15A344Edc45e6a5eabb5A68e03
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve199953152024-06-01 6:56:11107 days ago1717224971IN
0x023eBB62...bb5A68e03
0 ETH0.000203234.4019895
Approve155284202022-09-13 18:21:45734 days ago1663093305IN
0x023eBB62...bb5A68e03
0 ETH0.0004462418.43371843
Approve120358892021-03-14 9:28:361282 days ago1615714116IN
0x023eBB62...bb5A68e03
0 ETH0.00621488140
Unfreeze120317812021-03-13 18:06:471283 days ago1615658807IN
0x023eBB62...bb5A68e03
0 ETH0.00824062196
Collect119926412021-03-07 17:18:031289 days ago1615137483IN
0x023eBB62...bb5A68e03
0 ETH0.00698899178
Approve119459692021-02-28 13:01:341296 days ago1614517294IN
0x023eBB62...bb5A68e03
0 ETH0.0010442872.00000145
Approve119001732021-02-21 12:08:521303 days ago1613909332IN
0x023eBB62...bb5A68e03
0 ETH0.0014504100
Collect117850112021-02-03 18:52:351321 days ago1612378355IN
0x023eBB62...bb5A68e03
0 ETH0.00667488170
Approve117441012021-01-28 11:45:271327 days ago1611834327IN
0x023eBB62...bb5A68e03
0 ETH0.0032228572.60000023
Collect117440882021-01-28 11:42:461327 days ago1611834166IN
0x023eBB62...bb5A68e03
0 ETH0.0028505672.60000023
Unfreeze117440832021-01-28 11:42:151327 days ago1611834135IN
0x023eBB62...bb5A68e03
0 ETH0.0027286564.90000023
Approve117235132021-01-25 7:36:041330 days ago1611560164IN
0x023eBB62...bb5A68e03
0 ETH0.0010442872
Approve117056992021-01-22 13:55:191333 days ago1611323719IN
0x023eBB62...bb5A68e03
0 ETH0.0034359577.40037017
Unfreeze117056262021-01-22 13:39:271333 days ago1611322767IN
0x023eBB62...bb5A68e03
0 ETH0.0025436660.5
Collect117056262021-01-22 13:39:271333 days ago1611322767IN
0x023eBB62...bb5A68e03
0 ETH0.0023558460
Unfreeze116697532021-01-17 1:32:271338 days ago1610847147IN
0x023eBB62...bb5A68e03
0 ETH0.0025436660.5
Collect116697502021-01-17 1:32:051338 days ago1610847125IN
0x023eBB62...bb5A68e03
0 ETH0.0023754760.5
Approve115402402020-12-28 4:36:151358 days ago1609130175IN
0x023eBB62...bb5A68e03
0 ETH0.0025594258
Approve115402302020-12-28 4:34:121358 days ago1609130052IN
0x023eBB62...bb5A68e03
0 ETH0.0022462350.6
Unfreeze115402262020-12-28 4:33:381358 days ago1609130018IN
0x023eBB62...bb5A68e03
0 ETH0.0021274250.6
Collect115402222020-12-28 4:32:311358 days ago1609129951IN
0x023eBB62...bb5A68e03
0 ETH0.0019867550.60000023
Collect115283102020-12-26 8:52:511360 days ago1608972771IN
0x023eBB62...bb5A68e03
0 ETH0.0021202554
Unfreeze115283042020-12-26 8:51:151360 days ago1608972675IN
0x023eBB62...bb5A68e03
0 ETH0.0039930870
Approve114264822020-12-10 17:16:481376 days ago1607620608IN
0x023eBB62...bb5A68e03
0 ETH0.00328574
Collect114098292020-12-08 3:58:221378 days ago1607399902IN
0x023eBB62...bb5A68e03
0 ETH0.0017276144
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DYX

Compiler Version
v0.5.13+commit.5b0b510c

Optimization Enabled:
No with 200 runs

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

/**
 * 
 * fuck Spydr. karma will find them                                                             
 * 
*/

pragma solidity ^0.5.13;

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

contract DYX {

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private INITIAL_SUPPLY = 6.9e25; // 69M
	uint256 constant private BURN_RATE = 10; // 10% per tx
	uint256 constant private SUPPLY_FLOOR = 1; // 1% of 69M
	uint256 constant private MIN_FREEZE_AMOUNT = 1e20; // 100 minimum

	string constant public name = "DYX Network";
	string constant public symbol = "DYX";
	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"}]

608060405234801561001057600080fd5b5033600060040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a3913517ebd3c0c6500000060008001819055506a3913517ebd3c0c65000000600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a3913517ebd3c0c650000006040518082815260200191505060405180910390a361014033600161014560201b60201c565b610255565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101a257600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b611c78806102646000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610700578063a9059cbb14610783578063d7a78db8146107e9578063dd62ed3e14610817578063e52253811461088f578063f59c3708146108ad57610141565b806342966c68146105aa57806357f6b812146105d85780636623fc461461064c57806370a082311461067a57806391c05b0b146106d257610141565b80631bf6e00d1161010a5780631bf6e00d146103735780631e7f87bc146103cb57806323b872dd146103e9578063313ce5671461046f5780633af32abf146104935780634000aea0146104ef57610141565b806265318b1461014657806306fdde031461019e578063095ea7b314610221578063153a1f3e1461028757806318160ddd14610355575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fd565b6040518082815260200191505060405180910390f35b6101a66109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e65780820151818401526020810190506101cb565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026d6004803603604081101561023757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e5565b604051808215151515815260200191505060405180910390f35b6103536004803603604081101561029d57600080fd5b81019080803590602001906401000000008111156102ba57600080fd5b8201836020820111156102cc57600080fd5b803590602001918460208302840111640100000000831117156102ee57600080fd5b90919293919293908035906020019064010000000081111561030f57600080fd5b82018360208201111561032157600080fd5b8035906020019184602083028401116401000000008311171561034357600080fd5b9091929391929390505050610add565b005b61035d610b5a565b6040518082815260200191505060405180910390f35b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b66565b6040518082815260200191505060405180910390f35b6103d3610bb4565b6040518082815260200191505060405180910390f35b610455600480360360608110156103ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc0565b604051808215151515815260200191505060405180910390f35b610477610cf8565b604051808260ff1660ff16815260200191505060405180910390f35b6104d5600480360360208110156104a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfd565b604051808215151515815260200191505060405180910390f35b6105906004803603606081101561050557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561054c57600080fd5b82018360208201111561055e57600080fd5b8035906020019184600183028401116401000000008311171561058057600080fd5b9091929391929390505050610d58565b604051808215151515815260200191505060405180910390f35b6105d6600480360360208110156105c057600080fd5b8101908080359060200190929190505050610e8b565b005b61061a600480360360208110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611057565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106786004803603602081101561066257600080fd5b810190808035906020019092919050505061109d565b005b6106bc6004803603602081101561069057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a9565b6040518082815260200191505060405180910390f35b6106fe600480360360208110156106e857600080fd5b8101908080359060200190929190505050611102565b005b61070861120f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074857808201518184015260208101905061072d565b50505050905090810190601f1680156107755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107cf6004803603604081101561079957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611248565b604051808215151515815260200191505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611260565b005b6108796004803603604081101561082d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061126c565b6040518082815260200191505060405180910390f35b6108976112f8565b6040518082815260200191505060405180910390f35b6108fb600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061147f565b005b600068010000000000000000600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000600301540203816109a457fe5b049050919050565b6040518060400160405280600b81526020017f445958204e6574776f726b00000000000000000000000000000000000000000081525081565b600081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610aef57600080fd5b60008090505b84849050811015610b5357610b4533868684818110610b1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610b3957fe5b9050602002013561158f565b508080600101915050610af5565b5050505050565b60008060000154905090565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60008060010154905090565b600081600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c5157600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610cec84848461158f565b50600190509392505050565b601281565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600080610d6633878761158f565b90506000863b905060008163ffffffff161115610e7d578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b8101908080519060200190929190505050610e7c57600080fd5b5b600192505050949350505050565b80610e95336110a9565b1015610ea057600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000819050600080600101541115610fa45760028181610f0f57fe5b04905060006001015468010000000000000000820281610f2b57fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b806000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050565b6000806000806000611067610b5a565b61106f610bb4565b611078886110a9565b61108189610b66565b61108a8a6108fd565b9450945094509450945091939590929450565b6110a681611879565b50565b60006110b482610b66565b600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b600080600101541161111357600080fd5b8061111d336110a9565b101561112857600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000600101546801000000000000000082028161119457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600381526020017f445958000000000000000000000000000000000000000000000000000000000081525081565b600061125533848461158f565b506001905092915050565b61126981611a98565b50565b60008060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611304336108fd565b9050600081101561131457600080fd5b680100000000000000008102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc57600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b60008161159b856110a9565b10156115a657600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060006064600a84028161160857fe5b049050606460016a3913517ebd3c0c65000000028161162357fe5b048161162d610b5a565b03108061163f575061163e85610cfd565b5b1561164957600090505b6000818403905080600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600082111561186d576000806001015411156117bd576002828161172857fe5b0491506000600101546801000000000000000083028161174457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b816000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a15b80925050509392505050565b8061188333610b66565b101561188e57600080fd5b60006064600a83028161189d57fe5b049050600060010154680100000000000000008202816118b957fe5b046000600301600082825401925050819055508160006001016000828254039250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506000600301548202600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f836040518082815260200191505060405180910390a25050565b80611aa2336110a9565b1015611aad57600080fd5b68056bc75e2d6310000081611ac133610b66565b011015611acd57600080fd5b8060006001016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506000600301548102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a25056fea265627a7a72315820e60236fa8040285ebaac5cbc129d21f84aeb68d12f795fcf004f03a88a8fe9e364736f6c634300050d0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610700578063a9059cbb14610783578063d7a78db8146107e9578063dd62ed3e14610817578063e52253811461088f578063f59c3708146108ad57610141565b806342966c68146105aa57806357f6b812146105d85780636623fc461461064c57806370a082311461067a57806391c05b0b146106d257610141565b80631bf6e00d1161010a5780631bf6e00d146103735780631e7f87bc146103cb57806323b872dd146103e9578063313ce5671461046f5780633af32abf146104935780634000aea0146104ef57610141565b806265318b1461014657806306fdde031461019e578063095ea7b314610221578063153a1f3e1461028757806318160ddd14610355575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fd565b6040518082815260200191505060405180910390f35b6101a66109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e65780820151818401526020810190506101cb565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026d6004803603604081101561023757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e5565b604051808215151515815260200191505060405180910390f35b6103536004803603604081101561029d57600080fd5b81019080803590602001906401000000008111156102ba57600080fd5b8201836020820111156102cc57600080fd5b803590602001918460208302840111640100000000831117156102ee57600080fd5b90919293919293908035906020019064010000000081111561030f57600080fd5b82018360208201111561032157600080fd5b8035906020019184602083028401116401000000008311171561034357600080fd5b9091929391929390505050610add565b005b61035d610b5a565b6040518082815260200191505060405180910390f35b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b66565b6040518082815260200191505060405180910390f35b6103d3610bb4565b6040518082815260200191505060405180910390f35b610455600480360360608110156103ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc0565b604051808215151515815260200191505060405180910390f35b610477610cf8565b604051808260ff1660ff16815260200191505060405180910390f35b6104d5600480360360208110156104a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfd565b604051808215151515815260200191505060405180910390f35b6105906004803603606081101561050557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561054c57600080fd5b82018360208201111561055e57600080fd5b8035906020019184600183028401116401000000008311171561058057600080fd5b9091929391929390505050610d58565b604051808215151515815260200191505060405180910390f35b6105d6600480360360208110156105c057600080fd5b8101908080359060200190929190505050610e8b565b005b61061a600480360360208110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611057565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106786004803603602081101561066257600080fd5b810190808035906020019092919050505061109d565b005b6106bc6004803603602081101561069057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a9565b6040518082815260200191505060405180910390f35b6106fe600480360360208110156106e857600080fd5b8101908080359060200190929190505050611102565b005b61070861120f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074857808201518184015260208101905061072d565b50505050905090810190601f1680156107755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107cf6004803603604081101561079957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611248565b604051808215151515815260200191505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611260565b005b6108796004803603604081101561082d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061126c565b6040518082815260200191505060405180910390f35b6108976112f8565b6040518082815260200191505060405180910390f35b6108fb600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061147f565b005b600068010000000000000000600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000600301540203816109a457fe5b049050919050565b6040518060400160405280600b81526020017f445958204e6574776f726b00000000000000000000000000000000000000000081525081565b600081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610aef57600080fd5b60008090505b84849050811015610b5357610b4533868684818110610b1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610b3957fe5b9050602002013561158f565b508080600101915050610af5565b5050505050565b60008060000154905090565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60008060010154905090565b600081600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c5157600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610cec84848461158f565b50600190509392505050565b601281565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600080610d6633878761158f565b90506000863b905060008163ffffffff161115610e7d578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b8101908080519060200190929190505050610e7c57600080fd5b5b600192505050949350505050565b80610e95336110a9565b1015610ea057600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000819050600080600101541115610fa45760028181610f0f57fe5b04905060006001015468010000000000000000820281610f2b57fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b806000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050565b6000806000806000611067610b5a565b61106f610bb4565b611078886110a9565b61108189610b66565b61108a8a6108fd565b9450945094509450945091939590929450565b6110a681611879565b50565b60006110b482610b66565b600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b600080600101541161111357600080fd5b8061111d336110a9565b101561112857600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000600101546801000000000000000082028161119457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600381526020017f445958000000000000000000000000000000000000000000000000000000000081525081565b600061125533848461158f565b506001905092915050565b61126981611a98565b50565b60008060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611304336108fd565b9050600081101561131457600080fd5b680100000000000000008102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc57600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b60008161159b856110a9565b10156115a657600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060006064600a84028161160857fe5b049050606460016a3913517ebd3c0c65000000028161162357fe5b048161162d610b5a565b03108061163f575061163e85610cfd565b5b1561164957600090505b6000818403905080600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600082111561186d576000806001015411156117bd576002828161172857fe5b0491506000600101546801000000000000000083028161174457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b816000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a15b80925050509392505050565b8061188333610b66565b101561188e57600080fd5b60006064600a83028161189d57fe5b049050600060010154680100000000000000008202816118b957fe5b046000600301600082825401925050819055508160006001016000828254039250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506000600301548202600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f836040518082815260200191505060405180910390a25050565b80611aa2336110a9565b1015611aad57600080fd5b68056bc75e2d6310000081611ac133610b66565b011015611acd57600080fd5b8060006001016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506000600301548102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a25056fea265627a7a72315820e60236fa8040285ebaac5cbc129d21f84aeb68d12f795fcf004f03a88a8fe9e364736f6c634300050d0032

Deployed Bytecode Sourcemap

278:7223:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;278:7223:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4890:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4890:200:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;590:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;590:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3187:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3187:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4022:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4022:259:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4022:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4022: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;4022:259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4022:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4022: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;4022:259:0;;;;;;;;;;;;:::i;:::-;;4470:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4781:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4781:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4561:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3395:266;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3395:266:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;678:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5236:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5236:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3666:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3666:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3666:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3666: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;3666:351:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2231:502;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2231:502:0;;;;;;;;;;;;;;;;;:::i;:::-;;5352:275;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5352:275:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1774:72;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1774:72:0;;;;;;;;;;;;;;;;;:::i;:::-;;4652:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4652:124:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2738:306;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2738:306:0;;;;;;;;;;;;;;;;;:::i;:::-;;637:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;637:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3049:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3049:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1701:68;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1701:68:0;;;;;;;;;;;;;;;;;:::i;:::-;;5095:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5095:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1851:375;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4286:177;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4286:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4890:200;4947:7;337:5;5039:4;:10;;:17;5050:5;5039:17;;;;;;;;;;;;;;;:30;;;5011:4;:10;;:17;5022:5;5011:17;;;;;;;;;;;;;;;:24;;;4983:4;:25;;;:52;4976:93;4968:117;;;;;;4961:124;;4890:200;;;:::o;590:43::-;;;;;;;;;;;;;;;;;;;:::o;3187:203::-;3257:4;3313:7;3268:4;:10;;:22;3279:10;3268:22;;;;;;;;;;;;;;;:32;;:42;3301:8;3268:42;;;;;;;;;;;;;;;:52;;;;3351:8;3330:39;;3339:10;3330:39;;;3361:7;3330:39;;;;;;;;;;;;;;;;;;3381:4;3374:11;;3187:203;;;;:::o;4022:259::-;4147:8;;:15;;4126:10;;:17;;:36;4118:45;;;;;;4173:9;4185:1;4173:13;;4168:109;4192:10;;:17;;4188:1;:21;4168:109;;;4222:49;4232:10;4244;;4255:1;4244:13;;;;;;;;;;;;;;;4259:8;;4268:1;4259:11;;;;;;;;;;;;;4222:9;:49::i;:::-;;4211:3;;;;;;;4168:109;;;;4022:259;;;;:::o;4470:86::-;4514:7;4535:4;:16;;;4528:23;;4470:86;:::o;4781:104::-;4835:7;4856:4;:10;;:17;4867:5;4856:17;;;;;;;;;;;;;;;:24;;;4849:31;;4781:104;;;:::o;4561:86::-;4605:7;4626:4;:16;;;4619:23;;4561:86;:::o;3395:266::-;3480:4;3542:7;3499:4;:10;;:17;3510:5;3499:17;;;;;;;;;;;;;;;:27;;:39;3527:10;3499:39;;;;;;;;;;;;;;;;:50;;3491:59;;;;;;3598:7;3555:4;:10;;:17;3566:5;3555:17;;;;;;;;;;;;;;;:27;;:39;3583:10;3555:39;;;;;;;;;;;;;;;;:50;;;;;;;;;;;3610:30;3620:5;3627:3;3632:7;3610:9;:30::i;:::-;;3652:4;3645:11;;3395:266;;;;;:::o;678:35::-;711:2;678:35;:::o;5236:111::-;5295:4;5313;:10;;:17;5324:5;5313:17;;;;;;;;;;;;;;;:29;;;;;;;;;;;;5306:36;;5236:111;;;:::o;3666:351::-;3761:4;3772:20;3795:35;3805:10;3817:3;3822:7;3795:9;:35::i;:::-;3772:58;;3835:12;3888:3;3876:16;3867:25;;3913:1;3905:5;:9;;;3901:96;;;3939:3;3930:27;;;3958:10;3970:12;3984:5;;3930:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3930:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3930:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3930:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3930:60:0;;;;;;;;;;;;;;;;3922:69;;;;;;3901:96;4008:4;4001:11;;;;3666:351;;;;;;:::o;2231:502::-;2309:7;2284:21;2294:10;2284:9;:21::i;:::-;:32;;2276:41;;;;;;2356:7;2322:4;:10;;:22;2333:10;2322:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;2368:21;2392:7;2368:31;;2427:1;2408:4;:16;;;:20;2404:199;;;2453:1;2436:18;;;;;;;;;2520:4;:16;;;337:5;2489:13;:28;:47;;;;;;2460:4;:25;;;:76;;;;;;;;;;;2576:4;2547:50;;2556:10;2547:50;;;2583:13;2547:50;;;;;;;;;;;;;;;;;;2404:199;2627:13;2607:4;:16;;;:33;;;;;;;;;;;2679:3;2650:49;;2659:10;2650:49;;;2685:13;2650:49;;;;;;;;;;;;;;;;;;2709:19;2714:13;2709:19;;;;;;;;;;;;;;;;;;2231:502;;:::o;5352:275::-;5408:24;5434:25;5461:19;5482:18;5502:21;5538:13;:11;:13::i;:::-;5553;:11;:13::i;:::-;5568:16;5578:5;5568:9;:16::i;:::-;5586:15;5595:5;5586:8;:15::i;:::-;5603:18;5615:5;5603:11;:18::i;:::-;5530:92;;;;;;;;;;5352:275;;;;;;;:::o;1774:72::-;1823:18;1833:7;1823:9;:18::i;:::-;1774:72;:::o;4652:124::-;4707:7;4756:15;4765:5;4756:8;:15::i;:::-;4728:4;:10;;:17;4739:5;4728:17;;;;;;;;;;;;;;;:25;;;:43;4721:50;;4652:124;;;:::o;2738:306::-;2816:1;2797:4;:16;;;:20;2789:29;;;;;;2856:7;2831:21;2841:10;2831:9;:21::i;:::-;:32;;2823:41;;;;;;2903:7;2869:4;:10;;:22;2880:10;2869:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;2969:4;:16;;;337:5;2944:7;:22;:41;;;;;;2915:4;:25;;;:70;;;;;;;;;;;3024:4;2995:44;;3004:10;2995:44;;;3031:7;2995:44;;;;;;;;;;;;;;;;;;2738:306;:::o;637:37::-;;;;;;;;;;;;;;;;;;;:::o;3049:133::-;3115:4;3126:35;3136:10;3148:3;3153:7;3126:9;:35::i;:::-;;3173:4;3166:11;;3049:133;;;;:::o;1701:68::-;1748:16;1756:7;1748;:16::i;:::-;1701:68;:::o;5095:136::-;5168:7;5189:4;:10;;:17;5200:5;5189:17;;;;;;;;;;;;;;;:27;;:37;5217:8;5189:37;;;;;;;;;;;;;;;;5182:44;;5095:136;;;;:::o;1851:375::-;1888:7;1902:18;1923:23;1935:10;1923:11;:23::i;:::-;1902:44;;1973:1;1959:10;:15;;1951:24;;;;;;337:5;2026:10;:25;1980:4;:10;;:22;1991:10;1980:22;;;;;;;;;;;;;;;:35;;;:72;;;;;;;;;;;2091:10;2057:4;:10;;:22;2068:10;2057:22;;;;;;;;;;;;;;;:30;;;:44;;;;;;;;;;;2135:10;2111:47;;2128:4;2111:47;;;2147:10;2111:47;;;;;;;;;;;;;;;;;;2176:10;2168:31;;;2188:10;2168:31;;;;;;;;;;;;;;;;;;2211:10;2204:17;;;1851:375;:::o;4286:177::-;4368:4;:10;;;;;;;;;;;;4354:24;;:10;:24;;;4346:33;;;;;;4416:7;4384:4;:10;;:17;4395:5;4384:17;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;;;;;;;;4443:5;4433:25;;;4450:7;4433:25;;;;;;;;;;;;;;;;;;;;;;4286:177;;:::o;5634:885::-;5716:7;5758;5738:16;5748:5;5738:9;:16::i;:::-;:27;;5730:36;;;;;;5800:7;5771:4;:10;;:17;5782:5;5771:17;;;;;;;;;;;;;;;:25;;;:36;;;;;;;;;;;5812:21;5858:3;442:2;5836:7;:19;:25;;;;;;5812:49;;5934:3;502:1;388:6;5902:29;:35;;;;;;5886:13;5870;:11;:13::i;:::-;:29;:67;:91;;;;5941:20;5955:5;5941:13;:20::i;:::-;5870:91;5866:126;;;5985:1;5969:17;;5866:126;5996:20;6029:13;6019:7;:23;5996:46;;6074:12;6047:4;:10;;:15;6058:3;6047:15;;;;;;;;;;;;;;;:23;;;:39;;;;;;;;;;;6112:3;6096:34;;6105:5;6096:34;;;6117:12;6096:34;;;;;;;;;;;;;;;;;;6155:1;6139:13;:17;6135:356;;;6187:1;6168:4;:16;;;:20;6164:198;;;6214:1;6197:18;;;;;;;;;6282:4;:16;;;337:5;6251:13;:28;:47;;;;;;6222:4;:25;;;:76;;;;;;;;;;;6334:4;6310:45;;6319:5;6310:45;;;6341:13;6310:45;;;;;;;;;;;;;;;;;;6164:198;6387:13;6367:4;:16;;;:33;;;;;;;;;;;6435:3;6411:44;;6420:5;6411:44;;;6441:13;6411:44;;;;;;;;;;;;;;;;;;6466:19;6471:13;6466:19;;;;;;;;;;;;;;;;;;6135:356;6502:12;6495:19;;;;5634:885;;;;;:::o;6943:555::-;7025:7;7001:20;7010:10;7001:8;:20::i;:::-;:31;;6993:40;;;;;;7038:21;7084:3;442:2;7062:7;:19;:25;;;;;;7038:49;;7152:4;:16;;;337:5;7121:13;:28;:47;;;;;;7092:4;:25;;;:76;;;;;;;;;;;7193:7;7173:4;:16;;;:27;;;;;;;;;;;7239:13;7205:4;:10;;:22;7216:10;7205:22;;;;;;;;;;;;;;;:30;;;:47;;;;;;;;;;;7290:7;7257:4;:10;;:22;7268:10;7257:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;7358:4;:25;;;7348:7;:35;7302:4;:10;;:22;7313:10;7302:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;7418:10;7394:60;;7411:4;7394:60;;;7440:13;7430:7;:23;7394:60;;;;;;;;;;;;;;;;;;7473:10;7464:29;;;7485:7;7464:29;;;;;;;;;;;;;;;;;;6943:555;;:::o;6524:414::-;6605:7;6580:21;6590:10;6580:9;:21::i;:::-;:32;;6572:41;;;;;;565:4;6649:7;6626:20;6635:10;6626:8;:20::i;:::-;:30;:51;;6618:60;;;;;;6703:7;6683:4;:16;;;:27;;;;;;;;;;;6748:7;6715:4;:10;;:22;6726:10;6715:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;6816:4;:25;;;6806:7;:35;6760:4;:10;;:22;6771:10;6760:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;6881:4;6852:44;;6861:10;6852:44;;;6888:7;6852:44;;;;;;;;;;;;;;;;;;6913:10;6906:27;;;6925:7;6906:27;;;;;;;;;;;;;;;;;;6524:414;:::o

Swarm Source

bzzr://e60236fa8040285ebaac5cbc129d21f84aeb68d12f795fcf004f03a88a8fe9e3

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.