ETH Price: $2,390.31 (+2.79%)

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:11109 days ago1717224971IN
0x023eBB62...bb5A68e03
0 ETH0.000203234.4019895
Approve155284202022-09-13 18:21:45736 days ago1663093305IN
0x023eBB62...bb5A68e03
0 ETH0.0004462418.43371843
Approve120358892021-03-14 9:28:361284 days ago1615714116IN
0x023eBB62...bb5A68e03
0 ETH0.00621488140
Unfreeze120317812021-03-13 18:06:471285 days ago1615658807IN
0x023eBB62...bb5A68e03
0 ETH0.00824062196
Collect119926412021-03-07 17:18:031291 days ago1615137483IN
0x023eBB62...bb5A68e03
0 ETH0.00698899178
Approve119459692021-02-28 13:01:341298 days ago1614517294IN
0x023eBB62...bb5A68e03
0 ETH0.0010442872.00000145
Approve119001732021-02-21 12:08:521305 days ago1613909332IN
0x023eBB62...bb5A68e03
0 ETH0.0014504100
Collect117850112021-02-03 18:52:351323 days ago1612378355IN
0x023eBB62...bb5A68e03
0 ETH0.00667488170
Approve117441012021-01-28 11:45:271329 days ago1611834327IN
0x023eBB62...bb5A68e03
0 ETH0.0032228572.60000023
Collect117440882021-01-28 11:42:461329 days ago1611834166IN
0x023eBB62...bb5A68e03
0 ETH0.0028505672.60000023
Unfreeze117440832021-01-28 11:42:151329 days ago1611834135IN
0x023eBB62...bb5A68e03
0 ETH0.0027286564.90000023
Approve117235132021-01-25 7:36:041332 days ago1611560164IN
0x023eBB62...bb5A68e03
0 ETH0.0010442872
Approve117056992021-01-22 13:55:191335 days ago1611323719IN
0x023eBB62...bb5A68e03
0 ETH0.0034359577.40037017
Unfreeze117056262021-01-22 13:39:271335 days ago1611322767IN
0x023eBB62...bb5A68e03
0 ETH0.0025436660.5
Collect117056262021-01-22 13:39:271335 days ago1611322767IN
0x023eBB62...bb5A68e03
0 ETH0.0023558460
Unfreeze116697532021-01-17 1:32:271341 days ago1610847147IN
0x023eBB62...bb5A68e03
0 ETH0.0025436660.5
Collect116697502021-01-17 1:32:051341 days ago1610847125IN
0x023eBB62...bb5A68e03
0 ETH0.0023754760.5
Approve115402402020-12-28 4:36:151360 days ago1609130175IN
0x023eBB62...bb5A68e03
0 ETH0.0025594258
Approve115402302020-12-28 4:34:121360 days ago1609130052IN
0x023eBB62...bb5A68e03
0 ETH0.0022462350.6
Unfreeze115402262020-12-28 4:33:381360 days ago1609130018IN
0x023eBB62...bb5A68e03
0 ETH0.0021274250.6
Collect115402222020-12-28 4:32:311360 days ago1609129951IN
0x023eBB62...bb5A68e03
0 ETH0.0019867550.60000023
Collect115283102020-12-26 8:52:511362 days ago1608972771IN
0x023eBB62...bb5A68e03
0 ETH0.0021202554
Unfreeze115283042020-12-26 8:51:151362 days ago1608972675IN
0x023eBB62...bb5A68e03
0 ETH0.0039930870
Approve114264822020-12-10 17:16:481378 days ago1607620608IN
0x023eBB62...bb5A68e03
0 ETH0.00328574
Collect114098292020-12-08 3:58:221380 days ago1607399902IN
0x023eBB62...bb5A68e03
0 ETH0.0017276144
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
199953182024-06-01 6:56:47109 days ago1717225007
0x023eBB62...bb5A68e03
0 ETH
199953182024-06-01 6:56:47109 days ago1717225007
0x023eBB62...bb5A68e03
0 ETH
199953182024-06-01 6:56:47109 days ago1717225007
0x023eBB62...bb5A68e03
0 ETH
138164932021-12-16 13:37:411007 days ago1639661861
0x023eBB62...bb5A68e03
0 ETH
138164932021-12-16 13:37:411007 days ago1639661861
0x023eBB62...bb5A68e03
0 ETH
138164932021-12-16 13:37:411007 days ago1639661861
0x023eBB62...bb5A68e03
0 ETH
131204182021-08-29 12:40:071116 days ago1630240807
0x023eBB62...bb5A68e03
0 ETH
131204182021-08-29 12:40:071116 days ago1630240807
0x023eBB62...bb5A68e03
0 ETH
131204182021-08-29 12:40:071116 days ago1630240807
0x023eBB62...bb5A68e03
0 ETH
131204182021-08-29 12:40:071116 days ago1630240807
0x023eBB62...bb5A68e03
0 ETH
131204182021-08-29 12:40:071116 days ago1630240807
0x023eBB62...bb5A68e03
0 ETH
127632802021-07-04 20:48:431172 days ago1625431723
0x023eBB62...bb5A68e03
0 ETH
127632802021-07-04 20:48:431172 days ago1625431723
0x023eBB62...bb5A68e03
0 ETH
127632802021-07-04 20:48:431172 days ago1625431723
0x023eBB62...bb5A68e03
0 ETH
126218682021-06-12 20:42:491194 days ago1623530569
0x023eBB62...bb5A68e03
0 ETH
126218682021-06-12 20:42:491194 days ago1623530569
0x023eBB62...bb5A68e03
0 ETH
126218682021-06-12 20:42:491194 days ago1623530569
0x023eBB62...bb5A68e03
0 ETH
125807712021-06-06 11:48:231200 days ago1622980103
0x023eBB62...bb5A68e03
0 ETH
125807712021-06-06 11:48:231200 days ago1622980103
0x023eBB62...bb5A68e03
0 ETH
125807712021-06-06 11:48:231200 days ago1622980103
0x023eBB62...bb5A68e03
0 ETH
120359102021-03-14 9:32:191284 days ago1615714339
0x023eBB62...bb5A68e03
0 ETH
120359102021-03-14 9:32:191284 days ago1615714339
0x023eBB62...bb5A68e03
0 ETH
120359102021-03-14 9:32:191284 days ago1615714339
0x023eBB62...bb5A68e03
0 ETH
120055772021-03-09 17:09:461289 days ago1615309786
0x023eBB62...bb5A68e03
0 ETH
120055772021-03-09 17:09:461289 days ago1615309786
0x023eBB62...bb5A68e03
0 ETH
View All Internal Transactions
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.