CELO Price: $0.11 (+1.29%)
Gas: 25 GWei

Contract

0xFe241BD6B8136Ea04Ecd356CDcC954D468B66eB8

Overview

CELO Balance

Celo Mainnet LogoCelo Mainnet LogoCelo Mainnet Logo0 CELO

CELO Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

Transaction Hash
Block
From
To
Transfer538930502025-12-15 10:16:4846 days ago1765793808IN
0xFe241BD6...468B66eB8
0 CELO0.0013696225.001
Transfer538930062025-12-15 10:16:0446 days ago1765793764IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer538929632025-12-15 10:15:2146 days ago1765793721IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer538929132025-12-15 10:14:3146 days ago1765793671IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer538928672025-12-15 10:13:4546 days ago1765793625IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer538928282025-12-15 10:13:0646 days ago1765793586IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer538927482025-12-15 10:11:4646 days ago1765793506IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer538926902025-12-15 10:10:4846 days ago1765793448IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer538925892025-12-15 10:09:0746 days ago1765793347IN
0xFe241BD6...468B66eB8
0 CELO0.0013699225.001
Transfer528534582025-12-03 9:30:1658 days ago1764754216IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer528532632025-12-03 9:27:0158 days ago1764754021IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer528531482025-12-03 9:25:0658 days ago1764753906IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer528529912025-12-03 9:22:2958 days ago1764753749IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer528525182025-12-03 9:14:3658 days ago1764753276IN
0xFe241BD6...468B66eB8
0 CELO0.0009421125.001
Transfer525009102025-11-29 7:34:2862 days ago1764401668IN
0xFe241BD6...468B66eB8
0 CELO0.0009146725.00559819
Transfer525008512025-11-29 7:33:2962 days ago1764401609IN
0xFe241BD6...468B66eB8
0 CELO0.0009145125.001
Transfer525008032025-11-29 7:32:4162 days ago1764401561IN
0xFe241BD6...468B66eB8
0 CELO0.0009175625.08446389
Transfer525007462025-11-29 7:31:4462 days ago1764401504IN
0xFe241BD6...468B66eB8
0 CELO0.0009175125.08305067
Transfer525006932025-11-29 7:30:5162 days ago1764401451IN
0xFe241BD6...468B66eB8
0 CELO0.0009172825.07684021
Transfer525006392025-11-29 7:29:5762 days ago1764401397IN
0xFe241BD6...468B66eB8
0 CELO0.0009211525.18254358
Transfer525005782025-11-29 7:28:5662 days ago1764401336IN
0xFe241BD6...468B66eB8
0 CELO0.0009303625.43444154
Transfer525004542025-11-29 7:26:5262 days ago1764401212IN
0xFe241BD6...468B66eB8
0 CELO0.0009145125.001
Transfer524990572025-11-29 7:03:3562 days ago1764399815IN
0xFe241BD6...468B66eB8
0 CELO0.0009145125.001
Transfer517451212025-11-20 13:37:5971 days ago1763645879IN
0xFe241BD6...468B66eB8
0 CELO0.0009145125.001
Transfer517450432025-11-20 13:36:4171 days ago1763645801IN
0xFe241BD6...468B66eB8
0 CELO0.0009145125.001

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading

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

Contract Name:
GiftableToken

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
Yes with 200 runs

Other Settings:
shanghai EvmVersion, GNU AGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at celoscan.io on 2025-07-02
*/

pragma solidity >=0.8.0;

// SPDX-License-Identifier: AGPL-3.0-or-later
// File-Version: 3

contract GiftableToken {

	// Implements EIP173
	address public owner;

	// Implements Writer
	mapping(address => bool) writer;

	// Implements ERC20
	string public name;
	// Implements ERC20
	string public symbol;
	// Implements ERC20
	uint8 public decimals;
	// Implements ERC20
	mapping (address => uint256) public balanceOf;
	// Implements ERC20
	mapping (address => mapping (address => uint256)) public allowance;

	// Implements Burner
	uint256 public totalMinted;
	// Implements Burner
	uint256 public totalBurned;

	// Implements Expire
	uint256 public expires;
	bool expired;

	// Implements ERC20
	event Transfer(address indexed _from, address indexed _to, uint256 _value);
	// Implements ERC20
	event TransferFrom(address indexed _from, address indexed _to, address indexed _spender, uint256 _value);
	// Implements ERC20
	event Approval(address indexed _owner, address indexed _spender, uint256 _value);

	// Implements Minter
	event Mint(address indexed _minter, address indexed _beneficiary, uint256 _value);

	// Implement Expire
	event Expired(uint256 _timestamp);

	// EIP173
	event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // EIP173	

	// Implements Writer
	event WriterAdded(address _writer);
	// Implements Writer
	event WriterRemoved(address _writer);

	// Implements Burner
	event Burn(uint256 _value);

	constructor(string memory _name, string memory _symbol, uint8 _decimals, uint256 _expireTimestamp) {
		owner = msg.sender;
		name = _name;
		symbol = _symbol;
		decimals = _decimals;
		expires = _expireTimestamp;
	}

	// Implements ERC20
	function totalSupply() public view returns (uint256) {
		return totalMinted - totalBurned;
	}

	mapping(address => bool) writers;

	// Implements Minter
	function mintTo(address _to, uint256 _value) public returns (bool) {
		require(writers[msg.sender] || msg.sender == owner);

		balanceOf[_to] += _value;
		totalMinted += _value;

		emit Mint(msg.sender, _to, _value);

		return true;
	}

	// Implements Minter
	// Implements ERC5679Ext20
	function mint(address _to, uint256 _value, bytes calldata _data) public {
		_data;
		mintTo(_to, _value);
	}

	// Implements Writer
	function addWriter(address _minter) public returns (bool) {
		require(msg.sender == owner);

		writers[_minter] = true;

		return true;
	}

	// Implements Writer
	function deleteWriter(address _minter) public returns (bool) {
		require(msg.sender == owner || msg.sender == _minter);

		writers[_minter] = false;

		return true;
	}

	// Implements Writer
	function isWriter(address _minter) public view returns(bool) {
		return writers[_minter] || _minter == owner;
	}

	// Implements Expire
	function applyExpiry() public returns(uint8) {
		if (expires == 0) {
			return 0;
		}
		if (expired) {
			return 1;
		}
		if (block.timestamp >= expires) {
			expired = true;
			emit Expired(block.timestamp);
			return 2;
		}
		return 0;

	}

	// Implements ERC20
	function transfer(address _to, uint256 _value) public returns (bool) {
		require(applyExpiry() == 0);
		require(balanceOf[msg.sender] >= _value);
		balanceOf[msg.sender] -= _value; 
		balanceOf[_to] += _value;
		emit Transfer(msg.sender, _to, _value);
		return true;
	}

	// Implements Burner
	function burn(uint256 _value) public returns (bool) {
		require(msg.sender == owner, 'ERR_ACCESS');
		require(balanceOf[msg.sender] >= _value, 'ERR_FUNDS');

		balanceOf[msg.sender] -= _value;
		totalBurned += _value;

		emit Burn(_value);
		return true;
	}

	// Implements Burner
	function burn() public returns(bool) {
		return burn(balanceOf[msg.sender]);
	}

	// Implements Burner
	// Implements ERC5679Ext20
	function burn(address _from, uint256 _value, bytes calldata _data) public {
		require(msg.sender == _from, 'ERR_NOT_SELF');
		_data;
		burn(_value);
	}

	// Implements ERC20
	function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
		require(applyExpiry() == 0);
		require(allowance[_from][msg.sender] >= _value);
		require(balanceOf[_from] >= _value);
		allowance[_from][msg.sender] = allowance[_from][msg.sender] - _value;
		balanceOf[_from] -= _value; 
		balanceOf[_to] += _value;
		emit TransferFrom(_from, _to, msg.sender, _value);
		return true;
	}

	// Implements ERC20
	function approve(address _spender, uint256 _value) public returns (bool) {
		require(applyExpiry() == 0);
		if (_value > 0) {
			require(allowance[msg.sender][_spender] == 0);
		}
		allowance[msg.sender][_spender] = _value;
		emit Approval(msg.sender, _spender, _value);
		return true;
	}

	// Implements EIP173
    function transferOwnership(address _newOwner) public returns (bool) {
        address oldOwner;

        require(msg.sender == owner);
        oldOwner = owner;
        owner = _newOwner;

        emit OwnershipTransferred(oldOwner, owner);
        return true;
    }

	// Implements EIP165
	function supportsInterface(bytes4 _sum) public pure returns (bool) {
		if (_sum == 0xb61bc941) { // ERC20
			return true;
		}
		if (_sum == 0x449a52f8) { // Minter
			return true;
		}
		if (_sum == 0x01ffc9a7) { // EIP165
			return true;
		}
		if (_sum == 0x9493f8b2) { // EIP173
			return true;
		}
		if (_sum == 0xabe1f1f5) { // Writer
			return true;
		}
		if (_sum == 0xb1110c1b) { // Burner
			return true;
		}
		if (_sum == 0x841a0e94) { // Expire
			return true;
		}
		return false;
	}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint256","name":"_expireTimestamp","type":"uint256"}],"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":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"Expired","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_minter","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"TransferFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_writer","type":"address"}],"name":"WriterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_writer","type":"address"}],"name":"WriterRemoved","type":"event"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applyExpiry","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"deleteWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expires","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"isWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"mintTo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

0x608060405234801561000f575f5ffd5b506040516110ec3803806110ec83398101604081905261002e9161012b565b5f80546001600160a01b03191633179055600261004b8582610232565b5060036100588482610232565b506004805460ff191660ff9390931692909217909155600955506102ec9050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261009c575f5ffd5b81516001600160401b038111156100b5576100b5610079565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100e3576100e3610079565b6040528181528382016020018510156100fa575f5ffd5b5f5b82811015610118576020818601810151838301820152016100fc565b505f918101602001919091529392505050565b5f5f5f5f6080858703121561013e575f5ffd5b84516001600160401b03811115610153575f5ffd5b61015f8782880161008d565b602087015190955090506001600160401b0381111561017c575f5ffd5b6101888782880161008d565b935050604085015160ff8116811461019e575f5ffd5b6060959095015193969295505050565b600181811c908216806101c257607f821691505b6020821081036101e057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561022d57805f5260205f20601f840160051c8101602085101561020b5750805b601f840160051c820191505b8181101561022a575f8155600101610217565b50505b505050565b81516001600160401b0381111561024b5761024b610079565b61025f8161025984546101ae565b846101e6565b6020601f821160018114610291575f831561027a5750848201515b5f19600385901b1c1916600184901b17845561022a565b5f84815260208120601f198516915b828110156102c057878501518255602094850194600190920191016102a0565b50848210156102dd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610df3806102f95f395ff3fe608060405234801561000f575f5ffd5b5060043610610153575f3560e01c80635f408c04116100bf578063a9059cbb11610079578063a9059cbb146102cd578063b1cb0db3146102e0578063d89135cd146102e9578063da2824a8146102f2578063dd62ed3e14610305578063f2fde38b1461032f575f5ffd5b80635f408c041461025857806370a08231146102605780638da5cb5b1461027f57806394d008ef146102a957806395d89b41146102bc578063a2309ff8146102c4575f5ffd5b8063313ce56711610110578063313ce567146101e357806342966c6814610202578063449a52f81461021557806344d171871461022857806344df8e701461023d5780635ae06f7e14610245575f5ffd5b806301ffc9a71461015757806306fdde031461017f578063095ea7b31461019457806318160ddd146101a757806323b872dd146101bd5780632b29ba23146101d0575b5f5ffd5b61016a610165366004610b71565b610342565b60405190151581526020015b60405180910390f35b61018761042a565b6040516101769190610b9f565b61016a6101a2366004610c05565b6104b6565b6101af610562565b604051908152602001610176565b61016a6101cb366004610c2d565b610578565b61016a6101de366004610c67565b6106cd565b6004546101f09060ff1681565b60405160ff9091168152602001610176565b61016a610210366004610c80565b610702565b61016a610223366004610c05565b61080e565b61023b610236366004610c97565b6108bd565b005b61016a610914565b61016a610253366004610c67565b61092c565b6101f0610979565b6101af61026e366004610c67565b60056020525f908152604090205481565b5f54610291906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61023b6102b7366004610c97565b6109f4565b6101876109fe565b6101af60075481565b61016a6102db366004610c05565b610a0b565b6101af60095481565b6101af60085481565b61016a610300366004610c67565b610ac6565b6101af610313366004610d1a565b600660209081525f928352604080842090915290825290205481565b61016a61033d366004610c67565b610b04565b5f6001600160e01b0319821663b61bc94160e01b0361036357506001919050565b6001600160e01b031982166308934a5f60e31b0361038357506001919050565b6001600160e01b031982166301ffc9a760e01b036103a357506001919050565b6001600160e01b03198216634a49fc5960e11b036103c357506001919050565b6001600160e01b0319821663abe1f1f560e01b036103e357506001919050565b6001600160e01b0319821663b1110c1b60e01b0361040357506001919050565b6001600160e01b0319821663210683a560e21b0361042357506001919050565b505f919050565b6002805461043790610d4b565b80601f016020809104026020016040519081016040528092919081815260200182805461046390610d4b565b80156104ae5780601f10610485576101008083540402835291602001916104ae565b820191905f5260205f20905b81548152906001019060200180831161049157829003601f168201915b505050505081565b5f6104bf610979565b60ff16156104cb575f5ffd5b81156104fd57335f9081526006602090815260408083206001600160a01b0387168452909152902054156104fd575f5ffd5b335f8181526006602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b5f6008546007546105739190610d97565b905090565b5f610581610979565b60ff161561058d575f5ffd5b6001600160a01b0384165f9081526006602090815260408083203384529091529020548211156105bb575f5ffd5b6001600160a01b0384165f908152600560205260409020548211156105de575f5ffd5b6001600160a01b0384165f90815260066020908152604080832033845290915290205461060c908390610d97565b6001600160a01b0385165f8181526006602090815260408083203384528252808320949094559181526005909152908120805484929061064d908490610d97565b90915550506001600160a01b0383165f9081526005602052604081208054849290610679908490610daa565b909155505060405182815233906001600160a01b0385811691908716907f5f7542858008eeb041631f30e6109ae94b83a58e9a58261dd2c42c508850f9399060200160405180910390a45060019392505050565b6001600160a01b0381165f908152600b602052604081205460ff168061055c5750505f546001600160a01b0390811691161490565b5f80546001600160a01b0316331461074e5760405162461bcd60e51b815260206004820152600a6024820152694552525f41434345535360b01b60448201526064015b60405180910390fd5b335f908152600560205260409020548211156107985760405162461bcd60e51b81526020600482015260096024820152684552525f46554e445360b81b6044820152606401610745565b335f90815260056020526040812080548492906107b6908490610d97565b925050819055508160085f8282546107ce9190610daa565b90915550506040518281527fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9060200160405180910390a1506001919050565b335f908152600b602052604081205460ff168061083457505f546001600160a01b031633145b61083c575f5ffd5b6001600160a01b0383165f9081526005602052604081208054849290610863908490610daa565b925050819055508160075f82825461087b9190610daa565b90915550506040518281526001600160a01b0384169033907fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f890602001610550565b336001600160a01b038516146109045760405162461bcd60e51b815260206004820152600c60248201526b22a9292fa727aa2fa9a2a62360a11b6044820152606401610745565b61090d83610702565b5050505050565b335f9081526005602052604081205461057390610702565b5f80546001600160a01b031633148061094d5750336001600160a01b038316145b610955575f5ffd5b506001600160a01b03165f908152600b60205260409020805460ff19169055600190565b5f6009545f0361098857505f90565b600a5460ff16156109995750600190565b60095442106109ef57600a805460ff191660011790556040517ff80dbaea4785589e52984ca36a31de106adc77759539a5c7d92883bf49692fe9906109e19042815260200190565b60405180910390a150600290565b505f90565b61090d848461080e565b6003805461043790610d4b565b5f610a14610979565b60ff1615610a20575f5ffd5b335f90815260056020526040902054821115610a3a575f5ffd5b335f9081526005602052604081208054849290610a58908490610d97565b90915550506001600160a01b0383165f9081526005602052604081208054849290610a84908490610daa565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610550565b5f80546001600160a01b03163314610adc575f5ffd5b506001600160a01b03165f908152600b60205260409020805460ff1916600190811790915590565b5f805481906001600160a01b03163314610b1c575f5ffd5b505f80546001600160a01b038481166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350600192915050565b5f60208284031215610b81575f5ffd5b81356001600160e01b031981168114610b98575f5ffd5b9392505050565b602081525f82518060208401525f5b81811015610bcb5760208186018101516040868401015201610bae565b505f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610c00575f5ffd5b919050565b5f5f60408385031215610c16575f5ffd5b610c1f83610bea565b946020939093013593505050565b5f5f5f60608486031215610c3f575f5ffd5b610c4884610bea565b9250610c5660208501610bea565b929592945050506040919091013590565b5f60208284031215610c77575f5ffd5b610b9882610bea565b5f60208284031215610c90575f5ffd5b5035919050565b5f5f5f5f60608587031215610caa575f5ffd5b610cb385610bea565b935060208501359250604085013567ffffffffffffffff811115610cd5575f5ffd5b8501601f81018713610ce5575f5ffd5b803567ffffffffffffffff811115610cfb575f5ffd5b876020828401011115610d0c575f5ffd5b949793965060200194505050565b5f5f60408385031215610d2b575f5ffd5b610d3483610bea565b9150610d4260208401610bea565b90509250929050565b600181811c90821680610d5f57607f821691505b602082108103610d7d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561055c5761055c610d83565b8082018082111561055c5761055c610d8356fea26469706673582212208cfe9650d4224347e313bf7a1d6b14bbdf38178a52a5437914f7da607bba820464736f6c634300081e0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c436f627765622067726f757000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005434f574542000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f5ffd5b5060043610610153575f3560e01c80635f408c04116100bf578063a9059cbb11610079578063a9059cbb146102cd578063b1cb0db3146102e0578063d89135cd146102e9578063da2824a8146102f2578063dd62ed3e14610305578063f2fde38b1461032f575f5ffd5b80635f408c041461025857806370a08231146102605780638da5cb5b1461027f57806394d008ef146102a957806395d89b41146102bc578063a2309ff8146102c4575f5ffd5b8063313ce56711610110578063313ce567146101e357806342966c6814610202578063449a52f81461021557806344d171871461022857806344df8e701461023d5780635ae06f7e14610245575f5ffd5b806301ffc9a71461015757806306fdde031461017f578063095ea7b31461019457806318160ddd146101a757806323b872dd146101bd5780632b29ba23146101d0575b5f5ffd5b61016a610165366004610b71565b610342565b60405190151581526020015b60405180910390f35b61018761042a565b6040516101769190610b9f565b61016a6101a2366004610c05565b6104b6565b6101af610562565b604051908152602001610176565b61016a6101cb366004610c2d565b610578565b61016a6101de366004610c67565b6106cd565b6004546101f09060ff1681565b60405160ff9091168152602001610176565b61016a610210366004610c80565b610702565b61016a610223366004610c05565b61080e565b61023b610236366004610c97565b6108bd565b005b61016a610914565b61016a610253366004610c67565b61092c565b6101f0610979565b6101af61026e366004610c67565b60056020525f908152604090205481565b5f54610291906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61023b6102b7366004610c97565b6109f4565b6101876109fe565b6101af60075481565b61016a6102db366004610c05565b610a0b565b6101af60095481565b6101af60085481565b61016a610300366004610c67565b610ac6565b6101af610313366004610d1a565b600660209081525f928352604080842090915290825290205481565b61016a61033d366004610c67565b610b04565b5f6001600160e01b0319821663b61bc94160e01b0361036357506001919050565b6001600160e01b031982166308934a5f60e31b0361038357506001919050565b6001600160e01b031982166301ffc9a760e01b036103a357506001919050565b6001600160e01b03198216634a49fc5960e11b036103c357506001919050565b6001600160e01b0319821663abe1f1f560e01b036103e357506001919050565b6001600160e01b0319821663b1110c1b60e01b0361040357506001919050565b6001600160e01b0319821663210683a560e21b0361042357506001919050565b505f919050565b6002805461043790610d4b565b80601f016020809104026020016040519081016040528092919081815260200182805461046390610d4b565b80156104ae5780601f10610485576101008083540402835291602001916104ae565b820191905f5260205f20905b81548152906001019060200180831161049157829003601f168201915b505050505081565b5f6104bf610979565b60ff16156104cb575f5ffd5b81156104fd57335f9081526006602090815260408083206001600160a01b0387168452909152902054156104fd575f5ffd5b335f8181526006602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b5f6008546007546105739190610d97565b905090565b5f610581610979565b60ff161561058d575f5ffd5b6001600160a01b0384165f9081526006602090815260408083203384529091529020548211156105bb575f5ffd5b6001600160a01b0384165f908152600560205260409020548211156105de575f5ffd5b6001600160a01b0384165f90815260066020908152604080832033845290915290205461060c908390610d97565b6001600160a01b0385165f8181526006602090815260408083203384528252808320949094559181526005909152908120805484929061064d908490610d97565b90915550506001600160a01b0383165f9081526005602052604081208054849290610679908490610daa565b909155505060405182815233906001600160a01b0385811691908716907f5f7542858008eeb041631f30e6109ae94b83a58e9a58261dd2c42c508850f9399060200160405180910390a45060019392505050565b6001600160a01b0381165f908152600b602052604081205460ff168061055c5750505f546001600160a01b0390811691161490565b5f80546001600160a01b0316331461074e5760405162461bcd60e51b815260206004820152600a6024820152694552525f41434345535360b01b60448201526064015b60405180910390fd5b335f908152600560205260409020548211156107985760405162461bcd60e51b81526020600482015260096024820152684552525f46554e445360b81b6044820152606401610745565b335f90815260056020526040812080548492906107b6908490610d97565b925050819055508160085f8282546107ce9190610daa565b90915550506040518281527fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9060200160405180910390a1506001919050565b335f908152600b602052604081205460ff168061083457505f546001600160a01b031633145b61083c575f5ffd5b6001600160a01b0383165f9081526005602052604081208054849290610863908490610daa565b925050819055508160075f82825461087b9190610daa565b90915550506040518281526001600160a01b0384169033907fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f890602001610550565b336001600160a01b038516146109045760405162461bcd60e51b815260206004820152600c60248201526b22a9292fa727aa2fa9a2a62360a11b6044820152606401610745565b61090d83610702565b5050505050565b335f9081526005602052604081205461057390610702565b5f80546001600160a01b031633148061094d5750336001600160a01b038316145b610955575f5ffd5b506001600160a01b03165f908152600b60205260409020805460ff19169055600190565b5f6009545f0361098857505f90565b600a5460ff16156109995750600190565b60095442106109ef57600a805460ff191660011790556040517ff80dbaea4785589e52984ca36a31de106adc77759539a5c7d92883bf49692fe9906109e19042815260200190565b60405180910390a150600290565b505f90565b61090d848461080e565b6003805461043790610d4b565b5f610a14610979565b60ff1615610a20575f5ffd5b335f90815260056020526040902054821115610a3a575f5ffd5b335f9081526005602052604081208054849290610a58908490610d97565b90915550506001600160a01b0383165f9081526005602052604081208054849290610a84908490610daa565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610550565b5f80546001600160a01b03163314610adc575f5ffd5b506001600160a01b03165f908152600b60205260409020805460ff1916600190811790915590565b5f805481906001600160a01b03163314610b1c575f5ffd5b505f80546001600160a01b038481166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350600192915050565b5f60208284031215610b81575f5ffd5b81356001600160e01b031981168114610b98575f5ffd5b9392505050565b602081525f82518060208401525f5b81811015610bcb5760208186018101516040868401015201610bae565b505f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610c00575f5ffd5b919050565b5f5f60408385031215610c16575f5ffd5b610c1f83610bea565b946020939093013593505050565b5f5f5f60608486031215610c3f575f5ffd5b610c4884610bea565b9250610c5660208501610bea565b929592945050506040919091013590565b5f60208284031215610c77575f5ffd5b610b9882610bea565b5f60208284031215610c90575f5ffd5b5035919050565b5f5f5f5f60608587031215610caa575f5ffd5b610cb385610bea565b935060208501359250604085013567ffffffffffffffff811115610cd5575f5ffd5b8501601f81018713610ce5575f5ffd5b803567ffffffffffffffff811115610cfb575f5ffd5b876020828401011115610d0c575f5ffd5b949793965060200194505050565b5f5f60408385031215610d2b575f5ffd5b610d3483610bea565b9150610d4260208401610bea565b90509250929050565b600181811c90821680610d5f57607f821691505b602082108103610d7d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561055c5761055c610d83565b8082018082111561055c5761055c610d8356fea26469706673582212208cfe9650d4224347e313bf7a1d6b14bbdf38178a52a5437914f7da607bba820464736f6c634300081e0033

Deployed Bytecode Sourcemap

97:5578:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5157:515;;;;;;:::i;:::-;;:::i;:::-;;;470:14:1;;463:22;445:41;;433:2;418:18;5157:515:0;;;;;;;;257:18;;;:::i;:::-;;;;;;;:::i;4526:296::-;;;;;;:::i;:::-;;:::i;1762:95::-;;;:::i;:::-;;;1658:25:1;;;1646:2;1631:18;1762:95:0;1512:177:1;4078:421:0;;;;;;:::i;:::-;;:::i;2736:114::-;;;;;;:::i;:::-;;:::i;347:21::-;;;;;;;;;;;;2436:4:1;2424:17;;;2406:36;;2394:2;2379:18;347:21:0;2264:184:1;3464:266:0;;;;;;:::i;:::-;;:::i;1923:244::-;;;;;;:::i;:::-;;:::i;3896:155::-;;;;;;:::i;:::-;;:::i;:::-;;3758:81;;;:::i;2535:173::-;;;;;;:::i;:::-;;:::i;2878:255::-;;;:::i;394:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;149:20;;;;;-1:-1:-1;;;;;149:20:0;;;;;;-1:-1:-1;;;;;3627:32:1;;;3609:51;;3597:2;3582:18;149:20:0;3463:203:1;2224:111:0;;;;;;:::i;:::-;;:::i;301:20::-;;;:::i;560:26::-;;;;;;3160:276;;;;;;:::i;:::-;;:::i;668:22::-;;;;;;613:26;;;;;;2363:144;;;;;;:::i;:::-;;:::i;465:66::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;4853:276;;;;;;:::i;:::-;;:::i;5157:515::-;5218:4;-1:-1:-1;;;;;;5233:18:0;;-1:-1:-1;;;5233:18:0;5229:56;;-1:-1:-1;5275:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5229:56::-;-1:-1:-1;;;;;;5293:18:0;;-1:-1:-1;;;5293:18:0;5289:57;;-1:-1:-1;5336:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5289:57::-;-1:-1:-1;;;;;;5354:18:0;;-1:-1:-1;;;5354:18:0;5350:57;;-1:-1:-1;5397:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5350:57::-;-1:-1:-1;;;;;;5415:18:0;;-1:-1:-1;;;5415:18:0;5411:57;;-1:-1:-1;5458:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5411:57::-;-1:-1:-1;;;;;;5476:18:0;;-1:-1:-1;;;5476:18:0;5472:57;;-1:-1:-1;5519:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5472:57::-;-1:-1:-1;;;;;;5537:18:0;;-1:-1:-1;;;5537:18:0;5533:57;;-1:-1:-1;5580:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5533:57::-;-1:-1:-1;;;;;;5598:18:0;;-1:-1:-1;;;5598:18:0;5594:57;;-1:-1:-1;5641:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5594:57::-;-1:-1:-1;5662:5:0;;5157:515;-1:-1:-1;5157:515:0:o;257:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4526:296::-;4593:4;4612:13;:11;:13::i;:::-;:18;;;4604:27;;;;;;4640:10;;4636:73;;4676:10;4666:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4666:31:0;;;;;;;;;;:36;4658:45;;;;;;4723:10;4713:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4713:31:0;;;;;;;;;;;;:40;;;4763:38;1658:25:1;;;4713:31:0;;4723:10;4763:38;;1631:18:1;4763:38:0;;;;;;;;-1:-1:-1;4813:4:0;4526:296;;;;;:::o;1762:95::-;1806:7;1841:11;;1827;;:25;;;;:::i;:::-;1820:32;;1762:95;:::o;4078:421::-;4160:4;4179:13;:11;:13::i;:::-;:18;;;4171:27;;;;;;-1:-1:-1;;;;;4211:16:0;;;;;;:9;:16;;;;;;;;4228:10;4211:28;;;;;;;;:38;-1:-1:-1;4211:38:0;4203:47;;;;;;-1:-1:-1;;;;;4263:16:0;;;;;;:9;:16;;;;;;:26;-1:-1:-1;4263:26:0;4255:35;;;;;;-1:-1:-1;;;;;4326:16:0;;;;;;:9;:16;;;;;;;;4343:10;4326:28;;;;;;;;:37;;4357:6;;4326:37;:::i;:::-;-1:-1:-1;;;;;4295:16:0;;;;;;:9;:16;;;;;;;;4312:10;4295:28;;;;;;;:68;;;;4368:16;;;:9;:16;;;;;;:26;;4388:6;;4295:16;4368:26;;4388:6;;4368:26;:::i;:::-;;;;-1:-1:-1;;;;;;;4400:14:0;;;;;;:9;:14;;;;;:24;;4418:6;;4400:14;:24;;4418:6;;4400:24;:::i;:::-;;;;-1:-1:-1;;4434:44:0;;1658:25:1;;;4459:10:0;;-1:-1:-1;;;;;4434:44:0;;;;;;;;;;1646:2:1;1631:18;4434:44:0;;;;;;;-1:-1:-1;4490:4:0;4078:421;;;;;:::o;2736:114::-;-1:-1:-1;;;;;2809:16:0;;2791:4;2809:16;;;:7;:16;;;;;;;;;:36;;-1:-1:-1;;2840:5:0;;-1:-1:-1;;;;;2840:5:0;;;2829:16;;;;2736:114::o;3464:266::-;3510:4;3543:5;;-1:-1:-1;;;;;3543:5:0;3529:10;:19;3521:42;;;;-1:-1:-1;;;3521:42:0;;4918:2:1;3521:42:0;;;4900:21:1;4957:2;4937:18;;;4930:30;-1:-1:-1;;;4976:18:1;;;4969:40;5026:18;;3521:42:0;;;;;;;;;3586:10;3576:21;;;;:9;:21;;;;;;:31;-1:-1:-1;3576:31:0;3568:53;;;;-1:-1:-1;;;3568:53:0;;5257:2:1;3568:53:0;;;5239:21:1;5296:1;5276:18;;;5269:29;-1:-1:-1;;;5314:18:1;;;5307:39;5363:18;;3568:53:0;5055:332:1;3568:53:0;3638:10;3628:21;;;;:9;:21;;;;;:31;;3653:6;;3628:21;:31;;3653:6;;3628:31;:::i;:::-;;;;;;;;3679:6;3664:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;3697:12:0;;1658:25:1;;;3697:12:0;;1646:2:1;1631:18;3697:12:0;;;;;;;-1:-1:-1;3721:4:0;;3464:266;-1:-1:-1;3464:266:0:o;1923:244::-;2011:10;1984:4;2003:19;;;:7;:19;;;;;;;;;:42;;-1:-1:-1;2040:5:0;;-1:-1:-1;;;;;2040:5:0;2026:10;:19;2003:42;1995:51;;;;;;-1:-1:-1;;;;;2053:14:0;;;;;;:9;:14;;;;;:24;;2071:6;;2053:14;:24;;2071:6;;2053:24;:::i;:::-;;;;;;;;2097:6;2082:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;2115:29:0;;1658:25:1;;;-1:-1:-1;;;;;2115:29:0;;;2120:10;;2115:29;;1646:2:1;1631:18;2115:29:0;1512:177:1;3896:155:0;3983:10;-1:-1:-1;;;;;3983:19:0;;;3975:44;;;;-1:-1:-1;;;3975:44:0;;5594:2:1;3975:44:0;;;5576:21:1;5633:2;5613:18;;;5606:30;-1:-1:-1;;;5652:18:1;;;5645:42;5704:18;;3975:44:0;5392:336:1;3975:44:0;4034:12;4039:6;4034:4;:12::i;:::-;;3896:155;;;;:::o;3758:81::-;3822:10;3789:4;3812:21;;;:9;:21;;;;;;3807:27;;:4;:27::i;2535:173::-;2590:4;2623:5;;-1:-1:-1;;;;;2623:5:0;2609:10;:19;;:44;;-1:-1:-1;2632:10:0;-1:-1:-1;;;;;2632:21:0;;;2609:44;2601:53;;;;;;-1:-1:-1;;;;;;2661:16:0;2680:5;2661:16;;;:7;:16;;;;;:24;;-1:-1:-1;;2661:24:0;;;;;2535:173::o;2878:255::-;2916:5;2932:7;;2943:1;2932:12;2928:38;;-1:-1:-1;2959:1:0;;2878:255::o;2928:38::-;2974:7;;;;2970:33;;;-1:-1:-1;2996:1:0;;2878:255::o;2970:33::-;3030:7;;3011:15;:26;3007:107;;3045:7;:14;;-1:-1:-1;;3045:14:0;3055:4;3045:14;;;3070:24;;;;;;3078:15;1658:25:1;;1646:2;1631:18;;1512:177;3070:24:0;;;;;;;;-1:-1:-1;3107:1:0;;2878:255::o;3007:107::-;-1:-1:-1;3125:1:0;;2878:255::o;2224:111::-;2311:19;2318:3;2323:6;2311;:19::i;301:20::-;;;;;;;:::i;3160:276::-;3223:4;3242:13;:11;:13::i;:::-;:18;;;3234:27;;;;;;3284:10;3274:21;;;;:9;:21;;;;;;:31;-1:-1:-1;3274:31:0;3266:40;;;;;;3321:10;3311:21;;;;:9;:21;;;;;:31;;3336:6;;3311:21;:31;;3336:6;;3311:31;:::i;:::-;;;;-1:-1:-1;;;;;;;3348:14:0;;;;;;:9;:14;;;;;:24;;3366:6;;3348:14;:24;;3366:6;;3348:24;:::i;:::-;;;;-1:-1:-1;;3382:33:0;;1658:25:1;;;-1:-1:-1;;;;;3382:33:0;;;3391:10;;3382:33;;1646:2:1;1631:18;3382:33:0;1512:177:1;2363:144:0;2415:4;2448:5;;-1:-1:-1;;;;;2448:5:0;2434:10;:19;2426:28;;;;;;-1:-1:-1;;;;;;2461:16:0;;;;;:7;:16;;;;;:23;;-1:-1:-1;;2461:23:0;2480:4;2461:23;;;;;;2480:4;2363:144::o;4853:276::-;4915:4;4983:5;;4915:4;;-1:-1:-1;;;;;4983:5:0;4969:10;:19;4961:28;;;;;;-1:-1:-1;5011:5:0;;;-1:-1:-1;;;;;5027:17:0;;;-1:-1:-1;;;;;;5027:17:0;;;;;;5062:37;;5011:5;;;;;;;5062:37;;5011:5;5062:37;-1:-1:-1;5117:4:0;;4853:276;-1:-1:-1;;4853:276:0:o;14:286:1:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:1;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:1:o;497:527::-;646:2;635:9;628:21;609:4;678:6;672:13;721:6;716:2;705:9;701:18;694:34;746:1;756:140;770:6;767:1;764:13;756:140;;;881:2;865:14;;;861:23;;855:30;850:2;831:17;;;827:26;820:66;785:10;756:140;;;760:3;945:1;940:2;931:6;920:9;916:22;912:31;905:42;1015:2;1008;1004:7;999:2;991:6;987:15;983:29;972:9;968:45;964:54;956:62;;;497:527;;;;:::o;1029:173::-;1097:20;;-1:-1:-1;;;;;1146:31:1;;1136:42;;1126:70;;1192:1;1189;1182:12;1126:70;1029:173;;;:::o;1207:300::-;1275:6;1283;1336:2;1324:9;1315:7;1311:23;1307:32;1304:52;;;1352:1;1349;1342:12;1304:52;1375:29;1394:9;1375:29;:::i;:::-;1365:39;1473:2;1458:18;;;;1445:32;;-1:-1:-1;;;1207:300:1:o;1694:374::-;1771:6;1779;1787;1840:2;1828:9;1819:7;1815:23;1811:32;1808:52;;;1856:1;1853;1846:12;1808:52;1879:29;1898:9;1879:29;:::i;:::-;1869:39;;1927:38;1961:2;1950:9;1946:18;1927:38;:::i;:::-;1694:374;;1917:48;;-1:-1:-1;;;2034:2:1;2019:18;;;;2006:32;;1694:374::o;2073:186::-;2132:6;2185:2;2173:9;2164:7;2160:23;2156:32;2153:52;;;2201:1;2198;2191:12;2153:52;2224:29;2243:9;2224:29;:::i;2453:226::-;2512:6;2565:2;2553:9;2544:7;2540:23;2536:32;2533:52;;;2581:1;2578;2571:12;2533:52;-1:-1:-1;2626:23:1;;2453:226;-1:-1:-1;2453:226:1:o;2684:774::-;2772:6;2780;2788;2796;2849:2;2837:9;2828:7;2824:23;2820:32;2817:52;;;2865:1;2862;2855:12;2817:52;2888:29;2907:9;2888:29;:::i;:::-;2878:39;-1:-1:-1;2986:2:1;2971:18;;2958:32;;-1:-1:-1;3065:2:1;3050:18;;3037:32;3092:18;3081:30;;3078:50;;;3124:1;3121;3114:12;3078:50;3147:22;;3200:4;3192:13;;3188:27;-1:-1:-1;3178:55:1;;3229:1;3226;3219:12;3178:55;3269:2;3256:16;3295:18;3287:6;3284:30;3281:50;;;3327:1;3324;3317:12;3281:50;3372:7;3367:2;3358:6;3354:2;3350:15;3346:24;3343:37;3340:57;;;3393:1;3390;3383:12;3340:57;2684:774;;;;-1:-1:-1;3424:2:1;3416:11;;-1:-1:-1;;;2684:774:1:o;3671:260::-;3739:6;3747;3800:2;3788:9;3779:7;3775:23;3771:32;3768:52;;;3816:1;3813;3806:12;3768:52;3839:29;3858:9;3839:29;:::i;:::-;3829:39;;3887:38;3921:2;3910:9;3906:18;3887:38;:::i;:::-;3877:48;;3671:260;;;;;:::o;3936:380::-;4015:1;4011:12;;;;4058;;;4079:61;;4133:4;4125:6;4121:17;4111:27;;4079:61;4186:2;4178:6;4175:14;4155:18;4152:38;4149:161;;4232:10;4227:3;4223:20;4220:1;4213:31;4267:4;4264:1;4257:15;4295:4;4292:1;4285:15;4149:161;;3936:380;;;:::o;4321:127::-;4382:10;4377:3;4373:20;4370:1;4363:31;4413:4;4410:1;4403:15;4437:4;4434:1;4427:15;4453:128;4520:9;;;4541:11;;;4538:37;;;4555:18;;:::i;4586:125::-;4651:9;;;4672:10;;;4669:36;;;4685:18;;:::i

Swarm Source

ipfs://8cfe9650d4224347e313bf7a1d6b14bbdf38178a52a5437914f7da607bba8204

Block Transaction Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0xFe241BD6B8136Ea04Ecd356CDcC954D468B66eB8
Loading...
Loading
Loading...
Loading
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.