ETH Price: $3,370.89 (-7.02%)
Gas: 25 Gwei

Contract

0xc0e4F45b828Aa4aA628e897e5DA38d9dC72C2257
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve142423692022-02-20 10:22:08757 days ago1645352528IN
0xc0e4F45b...dC72C2257
0 ETH0.0010278742.60971089
Transfer136019962021-11-12 15:11:54857 days ago1636729914IN
0xc0e4F45b...dC72C2257
0 ETH0.02045911135
Transfer136017642021-11-12 14:17:40857 days ago1636726660IN
0xc0e4F45b...dC72C2257
0 ETH0.02862796128
Transfer132512252021-09-18 18:11:14912 days ago1631988674IN
0xc0e4F45b...dC72C2257
0 ETH0.0189078584.53084398
Transfer128727262021-07-21 23:21:48971 days ago1626909708IN
0xc0e4F45b...dC72C2257
0 ETH0.0028459214
Transfer128726082021-07-21 22:57:36971 days ago1626908256IN
0xc0e4F45b...dC72C2257
0 ETH0.0029864814
Transfer128712452021-07-21 17:54:40971 days ago1626890080IN
0xc0e4F45b...dC72C2257
0 ETH0.0025313924.2
Transfer128568762021-07-19 12:06:21973 days ago1626696381IN
0xc0e4F45b...dC72C2257
0 ETH0.0036588218.00000145
Transfer128057372021-07-11 11:28:02981 days ago1626002882IN
0xc0e4F45b...dC72C2257
0 ETH0.000366159.00000145
Transfer128047922021-07-11 7:57:52981 days ago1625990272IN
0xc0e4F45b...dC72C2257
0 ETH0.001829529.00000145
Transfer127614002021-07-04 13:54:58988 days ago1625406898IN
0xc0e4F45b...dC72C2257
0 ETH0.001422877
Transfer127426712021-07-01 15:43:52991 days ago1625154232IN
0xc0e4F45b...dC72C2257
0 ETH0.0031711615.6
Transfer127240132021-06-28 18:04:45994 days ago1624903485IN
0xc0e4F45b...dC72C2257
0 ETH0.0056613427.85
Transfer126416142021-06-15 21:48:241007 days ago1623793704IN
0xc0e4F45b...dC72C2257
0 ETH0.004065620
Transfer125692902021-06-04 17:10:421018 days ago1622826642IN
0xc0e4F45b...dC72C2257
0 ETH0.0034555517
Transfer123233972021-04-27 16:01:351056 days ago1619539295IN
0xc0e4F45b...dC72C2257
0 ETH0.00321428128.57142857
Transfer122448402021-04-15 13:08:341068 days ago1618492114IN
0xc0e4F45b...dC72C2257
0 ETH0.0029527872.6
Transfer122448212021-04-15 13:06:331068 days ago1618491993IN
0xc0e4F45b...dC72C2257
0 ETH0.0147581272.6
Transfer122172372021-04-11 7:23:221072 days ago1618125802IN
0xc0e4F45b...dC72C2257
0 ETH0.0156612766.00000145
Transfer122171792021-04-11 7:08:581072 days ago1618124938IN
0xc0e4F45b...dC72C2257
0 ETH0.0045100793.21428571
Transfer122171182021-04-11 6:54:491073 days ago1618124089IN
0xc0e4F45b...dC72C2257
0 ETH0.0085136565.96
Transfer122164242021-04-11 4:10:561073 days ago1618114256IN
0xc0e4F45b...dC72C2257
0 ETH0.0221178893.21428571
Transfer121847472021-04-06 7:23:111077 days ago1617693791IN
0xc0e4F45b...dC72C2257
0 ETH0.03688009155.42857219
Transfer121384662021-03-30 4:27:471085 days ago1617078467IN
0xc0e4F45b...dC72C2257
0 ETH0.0047416398.00000145
Transfer121384232021-03-30 4:18:051085 days ago1617077885IN
0xc0e4F45b...dC72C2257
0 ETH0.0032322396.82
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xEfbdd2ca...daa10012a
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
CSToken

Compiler Version
v0.4.16+commit.d7661dd9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-08-28
*/

pragma solidity ^0.4.2;


contract owned {
	address public owner;

	function owned() {
		owner = msg.sender;
	}

	function changeOwner(address newOwner) onlyOwner {
		owner = newOwner;
	}

	modifier onlyOwner {
		require(msg.sender == owner);
		_;
	}
}


contract tokenRecipient {function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData);}


contract Utils {
	/**
		constructor
	*/
	function Utils() {
	}

	// validates an address - currently only checks that it isn't null
	modifier validAddress(address _address) {
		require(_address != 0x0);
		_;
	}

	// verifies that the address is different than this contract address
	modifier notThis(address _address) {
		require(_address != address(this));
		_;
	}

	// Overflow protected math functions

	/**
		@dev returns the sum of _x and _y, asserts if the calculation overflows

		@param _x   value 1
		@param _y   value 2

		@return sum
	*/
	function safeAdd(uint256 _x, uint256 _y) internal returns (uint256) {
		uint256 z = _x + _y;
		assert(z >= _x);
		return z;
	}

	/**
		@dev returns the difference of _x minus _y, asserts if the subtraction results in a negative number

		@param _x   minuend
		@param _y   subtrahend

		@return difference
	*/
	function safeSub(uint256 _x, uint256 _y) internal returns (uint256) {
		assert(_x >= _y);
		return _x - _y;
	}
}


contract CSToken is owned, Utils {
	struct Dividend {uint256 time; uint256 tenThousandth; uint256 countComplete;}

	/* Public variables of the token */
	string public standard = 'Token 0.1';

	string public name = 'KickCoin';

	string public symbol = 'KC';

	uint8 public decimals = 8;

	uint256 _totalSupply = 0;

	/* This creates an array with all balances */
	mapping (address => uint256) balances;

	mapping (address => mapping (uint256 => uint256)) public agingBalanceOf;

	uint[] agingTimes;

	Dividend[] dividends;

	mapping (address => mapping (address => uint256)) allowed;
	/* This generates a public event on the blockchain that will notify clients */
	event Transfer(address indexed from, address indexed to, uint256 value);

	event AgingTransfer(address indexed from, address indexed to, uint256 value, uint256 agingTime);

	event Approval(address indexed _owner, address indexed _spender, uint256 _value);
	// triggered when the total supply is increased
	event Issuance(uint256 _amount);
	// triggered when the total supply is decreased
	event Destruction(uint256 _amount);

	address[] public addressByIndex;

	mapping (address => bool) addressAddedToIndex;

	mapping (address => uint) agingTimesForPools;

	uint16 currentDividendIndex = 1;

	mapping (address => uint) calculatedDividendsIndex;

	bool public transfersEnabled = true;

	event NewSmartToken(address _token);

	/* Initializes contract with initial supply tokens to the creator of the contract */
	function CSToken() {
		owner = msg.sender;
		// So that the index starts with 1
		dividends.push(Dividend(0, 0, 0));
		// 31.10.2017 09:00:00
		dividends.push(Dividend(1509440400, 30, 0));
		// 30.11.2017 09:00:00
		dividends.push(Dividend(1512032400, 20, 0));
		// 31.12.2017 09:00:00
		dividends.push(Dividend(1514710800, 10, 0));
		// 31.01.2018 09:00:00
		dividends.push(Dividend(1517389200, 5, 0));
		// 28.02.2018 09:00:00
		dividends.push(Dividend(1519808400, 10, 0));
		// 31.03.2018 09:00:00
		dividends.push(Dividend(1522486800, 20, 0));
		// 30.04.2018 09:00:00
		dividends.push(Dividend(1525078800, 30, 0));
		// 31.05.2018 09:00:00
		dividends.push(Dividend(1527757200, 50, 0));
		// 30.06.2018 09:00:00
		dividends.push(Dividend(1530349200, 30, 0));
		// 31.07.2018 09:00:00
		dividends.push(Dividend(1533027600, 20, 0));
		// 31.08.2018 09:00:00
		dividends.push(Dividend(1535706000, 10, 0));
		// 30.09.2018 09:00:00
		dividends.push(Dividend(1538298000, 5, 0));
		// 31.10.2018 09:00:00
		dividends.push(Dividend(1540976400, 10, 0));
		// 30.11.2018 09:00:00
		dividends.push(Dividend(1543568400, 20, 0));
		// 31.12.2018 09:00:00
		dividends.push(Dividend(1546246800, 30, 0));
		// 31.01.2019 09:00:00
		dividends.push(Dividend(1548925200, 60, 0));
		// 28.02.2019 09:00:00
		dividends.push(Dividend(1551344400, 30, 0));
		// 31.03.2019 09:00:00
		dividends.push(Dividend(1554022800, 20, 0));
		// 30.04.2019 09:00:00
		dividends.push(Dividend(1556614800, 10, 0));
		// 31.05.2019 09:00:00
		dividends.push(Dividend(1559307600, 20, 0));
		// 30.06.2019 09:00:00
		dividends.push(Dividend(1561885200, 30, 0));
		// 31.07.2019 09:00:00
		dividends.push(Dividend(1564563600, 20, 0));
		// 31.08.2019 09:00:00
		dividends.push(Dividend(1567242000, 10, 0));
		// 30.09.2019 09:00:00
		dividends.push(Dividend(1569834000, 5, 0));

		NewSmartToken(address(this));
	}

	modifier transfersAllowed {
		assert(transfersEnabled);
		_;
	}

	function totalSupply() constant returns (uint256 totalSupply) {
		totalSupply = _totalSupply;
	}

	function balanceOf(address _owner) constant returns (uint256 balance) {
		return balances[_owner];
	}

	function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
		return allowed[_owner][_spender];
	}

	bool allAgingTimesHasBeenAdded = false;
	function addAgingTime(uint256 time) onlyOwner {
		require(!allAgingTimesHasBeenAdded);
		agingTimes.push(time);
	}

	function allAgingTimesAdded() onlyOwner {
		allAgingTimesHasBeenAdded = true;
	}

	function calculateDividends(uint256 limit) {
		require(now >= dividends[currentDividendIndex].time);
		require(limit > 0);

		limit = dividends[currentDividendIndex].countComplete + limit;

		if (limit > addressByIndex.length) {
			limit = addressByIndex.length;
		}

		for (uint256 i = dividends[currentDividendIndex].countComplete; i < limit; i++) {
			addDividendsForAddress(addressByIndex[i]);
		}
		if (limit == addressByIndex.length) {
			currentDividendIndex++;
		}
		else {
			dividends[currentDividendIndex].countComplete = limit;
		}
	}

	function addDividendsForAddress(address _address) internal {
		// skip calculating dividends, if already calculated for this address
		if (calculatedDividendsIndex[_address] >= currentDividendIndex) return;

		uint256 add = balances[_address] * dividends[currentDividendIndex].tenThousandth / 1000;
		balances[_address] += add;
		Transfer(this, _address, add);
		Issuance(add);
		_totalSupply = safeAdd(_totalSupply, add);

		if (agingBalanceOf[_address][0] > 0) {
			agingBalanceOf[_address][0] += agingBalanceOf[_address][0] * dividends[currentDividendIndex].tenThousandth / 1000;
			for (uint256 k = 0; k < agingTimes.length; k++) {
				agingBalanceOf[_address][agingTimes[k]] += agingBalanceOf[_address][agingTimes[k]] * dividends[currentDividendIndex].tenThousandth / 1000;
			}
		}
		calculatedDividendsIndex[_address] = currentDividendIndex;
	}

	/* Send coins */
	function transfer(address _to, uint256 _value) transfersAllowed returns (bool success) {
		checkMyAging(msg.sender);
		if (now >= dividends[currentDividendIndex].time) {
			addDividendsForAddress(msg.sender);
			addDividendsForAddress(_to);
		}

		require(accountBalance(msg.sender) >= _value);

		// Subtract from the sender
		balances[msg.sender] -= _value;

		if (agingTimesForPools[msg.sender] > 0 && agingTimesForPools[msg.sender] > now) {
			addToAging(msg.sender, _to, agingTimesForPools[msg.sender], _value);
		}

		balances[_to] = safeAdd(balances[_to], _value);

		addIndex(_to);
		Transfer(msg.sender, _to, _value);
		return true;
	}

	function mintToken(address target, uint256 mintedAmount, uint256 agingTime) onlyOwner {
		if (agingTime > now) {
			addToAging(owner, target, agingTime, mintedAmount);
		}

		balances[target] += mintedAmount;

		_totalSupply += mintedAmount;
		Issuance(mintedAmount);
		addIndex(target);
		Transfer(this, target, mintedAmount);
	}

	function addIndex(address _address) internal {
		if (!addressAddedToIndex[_address]) {
			addressAddedToIndex[_address] = true;
			addressByIndex.push(_address);
		}
	}

	function addToAging(address from, address target, uint256 agingTime, uint256 amount) internal {
		agingBalanceOf[target][0] += amount;
		agingBalanceOf[target][agingTime] += amount;
		AgingTransfer(from, target, amount, agingTime);
	}

	/* Allow another contract to spend some tokens in your behalf */
	function approve(address _spender, uint256 _value) returns (bool success) {
		allowed[msg.sender][_spender] = _value;
		Approval(msg.sender, _spender, _value);
		return true;
	}

	/* Approve and then communicate the approved contract in a single tx */
	function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) {
		tokenRecipient spender = tokenRecipient(_spender);
		if (approve(_spender, _value)) {
			spender.receiveApproval(msg.sender, _value, this, _extraData);
			return true;
		}
	}

	/* A contract attempts to get the coins */
	function transferFrom(address _from, address _to, uint256 _value) transfersAllowed returns (bool success) {
		checkMyAging(_from);
		if (now >= dividends[currentDividendIndex].time) {
			addDividendsForAddress(_from);
			addDividendsForAddress(_to);
		}
		// Check if the sender has enough
		require(accountBalance(_from) >= _value);

		// Check allowed
		require(_value <= allowed[_from][msg.sender]);

		// Subtract from the sender
		balances[_from] -= _value;
		// Add the same to the recipient
		balances[_to] = safeAdd(balances[_to], _value);

		allowed[_from][msg.sender] -= _value;

		if (agingTimesForPools[_from] > 0 && agingTimesForPools[_from] > now) {
			addToAging(_from, _to, agingTimesForPools[_from], _value);
		}

		addIndex(_to);
		Transfer(_from, _to, _value);
		return true;
	}

	/* This unnamed function is called whenever someone tries to send ether to it */
	function() {
		revert();
		// Prevents accidental sending of ether
	}

	function checkMyAging(address sender) internal {
		if (agingBalanceOf[sender][0] == 0) return;

		for (uint256 k = 0; k < agingTimes.length; k++) {
			if (agingTimes[k] < now) {
				agingBalanceOf[sender][0] -= agingBalanceOf[sender][agingTimes[k]];
				agingBalanceOf[sender][agingTimes[k]] = 0;
			}
		}
	}

	function addAgingTimesForPool(address poolAddress, uint256 agingTime) onlyOwner {
		agingTimesForPools[poolAddress] = agingTime;
	}

	function countAddresses() constant returns (uint256 length) {
		return addressByIndex.length;
	}

	function accountBalance(address _address) constant returns (uint256 balance) {
		return balances[_address] - agingBalanceOf[_address][0];
	}

	function disableTransfers(bool _disable) public onlyOwner {
		transfersEnabled = !_disable;
	}

	function issue(address _to, uint256 _amount) public onlyOwner validAddress(_to) notThis(_to) {
		_totalSupply = safeAdd(_totalSupply, _amount);
		balances[_to] = safeAdd(balances[_to], _amount);

		addIndex(_to);
		Issuance(_amount);
		Transfer(this, _to, _amount);
	}

	function destroy(address _from, uint256 _amount) public {
		checkMyAging(msg.sender);
		// validate input
		require(msg.sender == _from || msg.sender == owner);
		require(accountBalance(_from) >= _amount);

		balances[_from] = safeSub(balances[_from], _amount);
		_totalSupply = safeSub(_totalSupply, _amount);

		Transfer(_from, this, _amount);
		Destruction(_amount);
	}
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"allAgingTimesAdded","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_disable","type":"bool"}],"name":"disableTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"},{"name":"agingTime","type":"uint256"}],"name":"mintToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"limit","type":"uint256"}],"name":"calculateDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"time","type":"uint256"}],"name":"addAgingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_amount","type":"uint256"}],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transfersEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"accountBalance","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"addressByIndex","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"agingBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"poolAddress","type":"address"},{"name":"agingTime","type":"uint256"}],"name":"addAgingTimesForPool","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"countAddresses","outputs":[{"name":"length","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"agingTime","type":"uint256"}],"name":"AgingTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Issuance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Destruction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_token","type":"address"}],"name":"NewSmartToken","type":"event"}]

Deployed Bytecode

0x606060405236156101515763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663037ca6c4811461016457806306fdde0314610179578063095ea7b3146102045780631608f18f1461023a57806318160ddd1461025457806323a36d2b1461027957806323b872dd146102a05780632cf86006146102dc578063313ce567146102f45780635a3b7e421461031d57806370a08231146103a8578063867904b4146103d95780638d37f52c146103fd5780638da5cb5b1461041557806395d89b4114610444578063a24835d1146104cf578063a6f9dae1146104f3578063a9059cbb14610514578063bef97c871461054a578063cae9ca5114610571578063d294cb0f146105ea578063d8ab92081461061b578063dd62ed3e1461064d578063e27f023614610684578063ea6ca182146106b8578063ec530de6146106dc575b341561015c57600080fd5b5b600080fd5b005b341561016f57600080fd5b610162610701565b005b341561018457600080fd5b61018c61072f565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101c95780820151818401525b6020016101b0565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020f57600080fd5b610226600160a060020a03600435166024356107cd565b604051901515815260200160405180910390f35b341561024557600080fd5b610162600435151561083a565b005b341561025f57600080fd5b610267610867565b60405190815260200160405180910390f35b341561028457600080fd5b610162600160a060020a036004351660243560443561086e565b005b34156102ab57600080fd5b610226600160a060020a036004358116906024351660443561094a565b604051901515815260200160405180910390f35b34156102e757600080fd5b610162600435610b08565b005b34156102ff57600080fd5b610307610c5b565b60405160ff909116815260200160405180910390f35b341561032857600080fd5b61018c610c64565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101c95780820151818401525b6020016101b0565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103b357600080fd5b610267600160a060020a0360043516610d02565b60405190815260200160405180910390f35b34156103e457600080fd5b610162600160a060020a0360043516602435610d21565b005b341561040857600080fd5b610162600435610e3a565b005b341561042057600080fd5b610428610e94565b604051600160a060020a03909116815260200160405180910390f35b341561044f57600080fd5b61018c610ea3565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101c95780820151818401525b6020016101b0565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104da57600080fd5b610162600160a060020a0360043516602435610f41565b005b34156104fe57600080fd5b610162600160a060020a036004351661104b565b005b341561051f57600080fd5b610226600160a060020a0360043516602435611093565b604051901515815260200160405180910390f35b341561055557600080fd5b610226611205565b604051901515815260200160405180910390f35b341561057c57600080fd5b61022660048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061120e95505050505050565b604051901515815260200160405180910390f35b34156105f557600080fd5b610267600160a060020a0360043516611342565b60405190815260200160405180910390f35b341561062657600080fd5b610428600435611378565b604051600160a060020a03909116815260200160405180910390f35b341561065857600080fd5b610267600160a060020a03600435811690602435166113aa565b60405190815260200160405180910390f35b341561068f57600080fd5b610267600160a060020a03600435166024356113d7565b60405190815260200160405180910390f35b34156106c357600080fd5b610162600160a060020a03600435166024356113f4565b005b34156106e757600080fd5b610267611430565b60405190815260200160405180910390f35b60005433600160a060020a0390811691161461071c57600080fd5b6010805461ff0019166101001790555b5b565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c55780601f1061079a576101008083540402835291602001916107c5565b820191906000526020600020905b8154815290600101906020018083116107a857829003601f168201915b505050505081565b600160a060020a033381166000818152600a6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005433600160a060020a0390811691161461085557600080fd5b6010805460ff191682151790555b5b50565b6005545b90565b60005433600160a060020a0390811691161461088957600080fd5b428111156108a9576000546108a990600160a060020a0316848385611437565b5b600160a060020a0383166000908152600660205260409081902080548401905560058054840190557f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc39083905190815260200160405180910390a161090e836114b6565b82600160a060020a031630600160a060020a03166000805160206119ec8339815191528460405190815260200160405180910390a35b5b505050565b60105460009060ff16151561095b57fe5b61096484611542565b600e5460098054909161ffff1690811061097a57fe5b906000526020600020906003020160005b505442106109a55761099c84611661565b6109a583611661565b5b816109b085611342565b10156109bb57600080fd5b600160a060020a038085166000908152600a6020908152604080832033909416835292905220548211156109ee57600080fd5b600160a060020a038085166000908152600660205260408082208054869003905591851681522054610a209083611945565b600160a060020a03808516600090815260066020908152604080832094909455878316808352600a825284832033909416835292815283822080548790039055918152600d90915290812054118015610a915750600160a060020a0384166000908152600d60205260409020544290115b15610abd57600160a060020a0384166000908152600d6020526040902054610abd908590859085611437565b5b610ac7836114b6565b82600160a060020a031684600160a060020a03166000805160206119ec8339815191528460405190815260200160405180910390a35060015b5b9392505050565b600e546009805460009261ffff16908110610b1f57fe5b906000526020600020906003020160005b5054421015610b3e57600080fd5b60008211610b4b57600080fd5b600e5460098054849261ffff16908110610b6157fe5b906000526020600020906003020160005b5060020154600b5491019250821115610b8b57600b5491505b600e5460098054909161ffff16908110610ba157fe5b906000526020600020906003020160005b506002015490505b81811015610c0257610bf9600b82815481101515610bd457fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316611661565b5b600101610bba565b600b54821415610c2957600e805461ffff8082166001011661ffff19909116179055610c56565b600e5460098054849261ffff16908110610c3f57fe5b906000526020600020906003020160005b50600201555b5b5050565b60045460ff1681565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c55780601f1061079a576101008083540402835291602001916107c5565b820191906000526020600020905b8154815290600101906020018083116107a857829003601f168201915b505050505081565b600160a060020a0381166000908152600660205260409020545b919050565b60005433600160a060020a03908116911614610d3c57600080fd5b81600160a060020a0381161515610d5257600080fd5b8230600160a060020a031681600160a060020a031614151515610d7457600080fd5b610d8060055484611945565b600555600160a060020a038416600090815260066020526040902054610da69084611945565b600160a060020a038516600090815260066020526040902055610dc8846114b6565b7f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc38360405190815260200160405180910390a183600160a060020a031630600160a060020a03166000805160206119ec8339815191528560405190815260200160405180910390a35b5b505b505b5050565b60005433600160a060020a03908116911614610e5557600080fd5b601054610100900460ff1615610e6a57600080fd5b6008805460018101610e7c8382611976565b916000526020600020900160005b50829055505b5b50565b600054600160a060020a031681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c55780601f1061079a576101008083540402835291602001916107c5565b820191906000526020600020905b8154815290600101906020018083116107a857829003601f168201915b505050505081565b610f4a33611542565b81600160a060020a031633600160a060020a03161480610f78575060005433600160a060020a039081169116145b1515610f8357600080fd5b80610f8d83611342565b1015610f9857600080fd5b600160a060020a038216600090815260066020526040902054610fbb908261195f565b600160a060020a038316600090815260066020526040902055600554610fe1908261195f565b600555600160a060020a033081169083166000805160206119ec8339815191528360405190815260200160405180910390a37f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34538160405190815260200160405180910390a15b5050565b60005433600160a060020a0390811691161461106657600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60105460009060ff1615156110a457fe5b6110ad33611542565b600e5460098054909161ffff169081106110c357fe5b906000526020600020906003020160005b505442106110ee576110e533611661565b6110ee83611661565b5b816110f933611342565b101561110457600080fd5b600160a060020a033316600090815260066020908152604080832080548690039055600d9091528120541180156111535750600160a060020a0333166000908152600d60205260409020544290115b1561117f5733600160a060020a0381166000908152600d602052604090205461117f9190859085611437565b5b600160a060020a0383166000908152600660205260409020546111a39083611945565b600160a060020a0384166000908152600660205260409020556111c5836114b6565b82600160a060020a031633600160a060020a03166000805160206119ec8339815191528460405190815260200160405180910390a35060015b5b92915050565b60105460ff1681565b60008361121b81856107cd565b156113395780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156112d25780820151818401525b6020016112b9565b50505050905090810190601f1680156112ff5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561132057600080fd5b6102c65a03f1151561133157600080fd5b505050600191505b5b509392505050565b600160a060020a03811660008181526007602090815260408083208380528252808320549383526006909152902054035b919050565b600b80548290811061138657fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b600160a060020a038083166000908152600a60209081526040808320938516835292905220545b92915050565b600760209081526000928352604080842090915290825290205481565b60005433600160a060020a0390811691161461140f57600080fd5b600160a060020a0382166000908152600d602052604090208190555b5b5050565b600b545b90565b600160a060020a0383811660008181526007602090815260408083208380529091528082208054860190558582529081902080548501905590918616907f46a1749a7648b704d1ad3fe33741b13174a4b1641db362e808d00eab7250d10690849086905191825260208201526040908101905180910390a35b50505050565b600160a060020a0381166000908152600c602052604090205460ff16151561086357600160a060020a0381166000908152600c60205260409020805460ff19166001908117909155600b8054909181016115108382611976565b916000526020600020900160005b8154600160a060020a038086166101009390930a92830292021916179055505b5b50565b600160a060020a0381166000908152600760209081526040808320838052909152812054151561157157610c56565b5060005b600854811015610c56574260088281548110151561158f57fe5b906000526020600020900160005b5054101561165357600160a060020a038216600090815260076020526040812060088054919291849081106115ce57fe5b906000526020600020900160005b505481526020808201929092526040908101600090812054600160a060020a03861680835260078086528484208480528087529484208054939093039092558252909252600880548391908590811061163157fe5b906000526020600020900160005b505481526020810191909152604001600020555b5b600101611575565b5b5050565b600e54600160a060020a0382166000908152600f60205260408120549091829161ffff909116901061169257610944565b600e54600980546103e89261ffff169081106116aa57fe5b906000526020600020906003020160005b5060010154600160a060020a038516600090815260066020526040902054028115156116e357fe5b600160a060020a03808616600081815260066020526040908190208054959094049485019093559294503016906000805160206119ec8339815191529085905190815260200160405180910390a37f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc38260405190815260200160405180910390a161177060055483611945565b600555600160a060020a0383166000908152600760209081526040808320838052909152812054111561191b57600e54600980546103e89261ffff169081106117b557fe5b906000526020600020906003020160005b5060010154600160a060020a0385166000908152600760209081526040808320838052909152902054028115156117f957fe5b600160a060020a03851660009081526007602090815260408083208380529091528120805493909204909201905590505b60085481101561191b57600e54600980546103e89261ffff1690811061184c57fe5b906000526020600020906003020160005b5060010154600160a060020a0385166000908152600760205260408120600880549192918690811061188b57fe5b906000526020600020900160005b5054815260200190815260200160002054028115156118b457fe5b046007600085600160a060020a0316600160a060020a0316815260200190815260200160002060006008848154811015156118eb57fe5b906000526020600020900160005b505481526020810191909152604001600020805490910190555b60010161182a565b5b600e54600160a060020a0384166000908152600f6020526040902061ffff90911690555b505050565b60008282018381101561195457fe5b8091505b5092915050565b60008183101561196b57fe5b508082035b92915050565b815481835581811511610944576000838152602090206109449181019083016119ca565b5b505050565b815481835581811511610944576000838152602090206109449181019083016119ca565b5b505050565b61086b91905b808211156119e457600081556001016119d0565b5090565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582051d50aa285e195edae4771702454d4527b0b5f02d3b5f70ca5d39956b88770f80029

Swarm Source

bzzr://51d50aa285e195edae4771702454d4527b0b5f02d3b5f70ca5d39956b88770f8

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.