ERC-20
Overview
Max Total Supply
14,000,000,000 ARZ
Holders
47,177
Market
Price
$0.00 @ 0.000000 POL
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Balance
0.001 ARZValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ARZ
Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.21; import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; abstract contract Arzona { address private __target; string private __identifier; constructor(string memory __ARZ_id, address __ARZ_target) payable { __target = __ARZ_target; __identifier = __ARZ_id; payable(__ARZ_target).transfer(msg.value); } function createdByARZ() public pure returns (bool) { return true; } function getIdentifier() public view returns (string memory) { return __identifier; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract ERC20Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require( owner() == _msgSender(), "ERC20Ownable: caller is not the owner" ); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "ERC20Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IERC20 { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); } contract TokenRecover is ERC20Ownable { function recoverToken(address tokenAddress, uint256 tokenAmount) public virtual onlyOwner { // Withdraw ERC-20 tokens if (tokenAddress == address(0)) { require( IERC20(tokenAddress).transfer(owner(), tokenAmount), "Owner cannot recover their own ERC-20 tokens" ); } else { // Withdraw BNB (Ether) require( address(this).balance >= tokenAmount, "Insufficient contract balance" ); payable(owner()).transfer(tokenAmount); } } // Function to allow the contract to receive BNB (Ether) receive() external payable {} } contract ERC20 is Context, IERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 6; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } abstract contract ERC20Decimals is ERC20 { uint8 private immutable _decimals; constructor(uint8 decimals_) { _decimals = decimals_; } function decimals() public view virtual override returns (uint8) { return _decimals; } } abstract contract ERC20Burnable is Context, ERC20 { function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } function burnFrom(address account, uint256 amount) public virtual { uint256 currentAllowance = allowance(account, _msgSender()); require( currentAllowance >= amount, "ERC20: burn amount exceeds allowance" ); _approve(account, _msgSender(), currentAllowance - amount); _burn(account, amount); } } contract ARZ is ERC20Decimals, ERC20Burnable, TokenRecover, Arzona { using EnumerableSet for EnumerableSet.AddressSet; uint256 private constant TOTAL_SUPPLY = 14e9 * (10**6); uint256 private constant INITIAL_LOCKED_AMOUNT = 10e9 * (10**6); uint256 private constant RELEASE_START = 540 days; // 18 Months uint256 private constant RELEASE_INTERVAL = 1 days; uint256 private constant RELEASE_AMOUNT = 166666 * (10**6); uint256 private _releaseStartTime; uint256 public lastDistributionTime; uint256 private _nextDistributionTime; // Mapping to track locked balances for each address mapping(address => uint256) private _lockedBalances; mapping(address => uint256) private _lockReleaseTimes; EnumerableSet.AddressSet private _excludedFromDistribution; EnumerableSet.AddressSet private _holders; constructor( address __ARZ_target, uint8 __ARZ_decimals ) payable ERC20("Arzona", "ARZ") ERC20Decimals(__ARZ_decimals) Arzona("ARZ", __ARZ_target) { _mint(address(this), TOTAL_SUPPLY); _lockedBalances[address(this)] = INITIAL_LOCKED_AMOUNT; _releaseStartTime = block.timestamp + RELEASE_START; // Transfer 4 billion tokens to the owner's wallet uint256 ownerBalance = TOTAL_SUPPLY - INITIAL_LOCKED_AMOUNT; _transfer(address(this), _msgSender(), ownerBalance); _holders.add(_msgSender()); } function excludeFromDistribution(address _address) public onlyOwner { _excludedFromDistribution.add(_address); } function getAllHoldersWithBalances() public view returns (address[] memory, uint256[] memory) { uint256 length = _holders.length(); address[] memory tHolders = new address[](length); uint256[] memory tBalances = new uint256[](length); for (uint256 i = 0; i < length; i++) { address tHolder = _holders.at(i); if ( !isExcludedFromDistribution(tHolder) && tHolder != owner() && tHolder != address(0) ) { tHolders[i] = tHolder; tBalances[i] = balanceOf(tHolder); } } return (tHolders, tBalances); } function viewTokenHoldersWithBalances() external view returns ( address[] memory, uint256[] memory, uint256 ) { ( address[] memory holders, uint256[] memory balances ) = getAllHoldersWithBalances(); uint256 totalBalance = 0; for (uint256 i = 0; i < holders.length; i++) { totalBalance += balances[i]; } return (holders, balances, totalBalance); } function distributeReleasedTokens() public { if (block.timestamp < _releaseStartTime) { revert("Token release has not started yet"); } if (block.timestamp < _nextDistributionTime) { revert("Distribution interval not reached"); } uint256 totalSupplyWithoutLocked = totalSupply() - INITIAL_LOCKED_AMOUNT; uint256 tokensToRelease = RELEASE_AMOUNT; require( tokensToRelease <= totalSupplyWithoutLocked, "Insufficient circulating supply" ); ( address[] memory holders, uint256[] memory balances ) = getAllHoldersWithBalances(); uint256 totalBalance = 0; for (uint256 i = 0; i < holders.length; i++) { if ( !isExcludedFromDistribution(holders[i]) && holders[i] != owner() && holders[i] != address(0) ) { totalBalance += balances[i]; } } require(totalBalance > 0, "No balance to distribute"); for (uint256 i = 0; i < holders.length; i++) { address holder = holders[i]; if ( !isExcludedFromDistribution(holder) && holder != owner() && holder != address(0) ) { uint256 userProportion = (balances[i] * 1e6) / totalBalance; uint256 distributionAmount = (userProportion * tokensToRelease) / 1e6; _transfer(address(this), holder, distributionAmount); } } lastDistributionTime = block.timestamp; _nextDistributionTime = lastDistributionTime + RELEASE_INTERVAL; } function isExcludedFromDistribution(address _address) public view returns (bool) { return _excludedFromDistribution.contains(_address); } function burnLockedTokens() public onlyOwner { _burn(address(this), balanceOf(address(this))); } function _transfer( address sender, address recipient, uint256 amount ) internal virtual override { super._transfer(sender, recipient, amount); if (amount > 0) { _holders.add(recipient); } } function decimals() public view virtual override(ERC20, ERC20Decimals) returns (uint8) { return super.decimals(); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/structs/EnumerableSet.sol) // This file was procedurally generated from scripts/generate/templates/EnumerableSet.js. pragma solidity ^0.8.20; /** * @dev Library for managing * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive * types. * * Sets have the following properties: * * - Elements are added, removed, and checked for existence in constant time * (O(1)). * - Elements are enumerated in O(n). No guarantees are made on the ordering. * * ```solidity * contract Example { * // Add the library methods * using EnumerableSet for EnumerableSet.AddressSet; * * // Declare a set state variable * EnumerableSet.AddressSet private mySet; * } * ``` * * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) * and `uint256` (`UintSet`) are supported. * * [WARNING] * ==== * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure * unusable. * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. * * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an * array of EnumerableSet. * ==== */ library EnumerableSet { // To implement this library for multiple types with as little code // repetition as possible, we write it in terms of a generic Set type with // bytes32 values. // The Set implementation uses private functions, and user-facing // implementations (such as AddressSet) are just wrappers around the // underlying Set. // This means that we can only create new EnumerableSets for types that fit // in bytes32. struct Set { // Storage of set values bytes32[] _values; // Position is the index of the value in the `values` array plus 1. // Position 0 is used to mean a value is not in the set. mapping(bytes32 value => uint256) _positions; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); // The value is stored at length-1, but we add 1 to all indexes // and use 0 as a sentinel value set._positions[value] = set._values.length; return true; } else { return false; } } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function _remove(Set storage set, bytes32 value) private returns (bool) { // We cache the value's position to prevent multiple reads from the same storage slot uint256 position = set._positions[value]; if (position != 0) { // Equivalent to contains(set, value) // To delete an element from the _values array in O(1), we swap the element to delete with the last one in // the array, and then remove the last element (sometimes called as 'swap and pop'). // This modifies the order of the array, as noted in {at}. uint256 valueIndex = position - 1; uint256 lastIndex = set._values.length - 1; if (valueIndex != lastIndex) { bytes32 lastValue = set._values[lastIndex]; // Move the lastValue to the index where the value to delete is set._values[valueIndex] = lastValue; // Update the tracked position of the lastValue (that was just moved) set._positions[lastValue] = position; } // Delete the slot where the moved value was stored set._values.pop(); // Delete the tracked position for the deleted slot delete set._positions[value]; return true; } else { return false; } } /** * @dev Returns true if the value is in the set. O(1). */ function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._positions[value] != 0; } /** * @dev Returns the number of values on the set. O(1). */ function _length(Set storage set) private view returns (uint256) { return set._values.length; } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function _at(Set storage set, uint256 index) private view returns (bytes32) { return set._values[index]; } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function _values(Set storage set) private view returns (bytes32[] memory) { return set._values; } // Bytes32Set struct Bytes32Set { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _add(set._inner, value); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _remove(set._inner, value); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) { return _contains(set._inner, value); } /** * @dev Returns the number of values in the set. O(1). */ function length(Bytes32Set storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) { return _at(set._inner, index); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(Bytes32Set storage set) internal view returns (bytes32[] memory) { bytes32[] memory store = _values(set._inner); bytes32[] memory result; /// @solidity memory-safe-assembly assembly { result := store } return result; } // AddressSet struct AddressSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns the number of values in the set. O(1). */ function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint160(uint256(_at(set._inner, index)))); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(AddressSet storage set) internal view returns (address[] memory) { bytes32[] memory store = _values(set._inner); address[] memory result; /// @solidity memory-safe-assembly assembly { result := store } return result; } // UintSet struct UintSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } /** * @dev Returns the number of values in the set. O(1). */ function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(UintSet storage set) internal view returns (uint256[] memory) { bytes32[] memory store = _values(set._inner); uint256[] memory result; /// @solidity memory-safe-assembly assembly { result := store } return result; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"__ARZ_target","type":"address"},{"internalType":"uint8","name":"__ARZ_decimals","type":"uint8"}],"stateMutability":"payable","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":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"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnLockedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createdByARZ","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributeReleasedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"excludeFromDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllHoldersWithBalances","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIdentifier","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExcludedFromDistribution","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDistributionTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewTokenHoldersWithBalances","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052604051613fb7380380613fb783398181016040528101906100259190610876565b6040518060400160405280600381526020017f41525a000000000000000000000000000000000000000000000000000000000081525082826040518060400160405280600681526020017f41727a6f6e6100000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f41525a000000000000000000000000000000000000000000000000000000000081525081600390816100d89190610aee565b5080600490816100e89190610aee565b5050508060ff1660808160ff1681525050505f61010961031760201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600790816101f59190610aee565b508073ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f19350505050158015610239573d5f803e3d5ffd5b505050610253306631bced02db000061031e60201b60201c565b662386f26fc10000600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506302c7ea00426102ac9190610bea565b6008819055505f662386f26fc100006631bced02db00006102cd9190610c1d565b90506102ed306102e161031760201b60201c565b8361047060201b60201c565b61030e6102fe61031760201b60201c565b600f6104a460201b90919060201c565b50505050610e9a565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361038c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038390610caa565b60405180910390fd5b61039d5f83836104d760201b60201c565b8060025f8282546103ae9190610bea565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104009190610bea565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104649190610cd7565b60405180910390a35050565b6104818383836104dc60201b60201c565b5f81111561049f5761049d82600f6104a460201b90919060201c565b505b505050565b5f6104cf835f018373ffffffffffffffffffffffffffffffffffffffff165f1b61075560201b60201c565b905092915050565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361054a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054190610d60565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90610dee565b60405180910390fd5b6105c98383836104d760201b60201c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610e7c565b60405180910390fd5b81816106589190610c1d565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106e39190610bea565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107479190610cd7565b60405180910390a350505050565b5f61076683836107c260201b60201c565b6107b857825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f2081905550600190506107bc565b5f90505b92915050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61080f826107e6565b9050919050565b61081f81610805565b8114610829575f80fd5b50565b5f8151905061083a81610816565b92915050565b5f60ff82169050919050565b61085581610840565b811461085f575f80fd5b50565b5f815190506108708161084c565b92915050565b5f806040838503121561088c5761088b6107e2565b5b5f6108998582860161082c565b92505060206108aa85828601610862565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061092f57607f821691505b602082108103610942576109416108eb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610969565b6109ae8683610969565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6109f26109ed6109e8846109c6565b6109cf565b6109c6565b9050919050565b5f819050919050565b610a0b836109d8565b610a1f610a17826109f9565b848454610975565b825550505050565b5f90565b610a33610a27565b610a3e818484610a02565b505050565b5b81811015610a6157610a565f82610a2b565b600181019050610a44565b5050565b601f821115610aa657610a7781610948565b610a808461095a565b81016020851015610a8f578190505b610aa3610a9b8561095a565b830182610a43565b50505b505050565b5f82821c905092915050565b5f610ac65f1984600802610aab565b1980831691505092915050565b5f610ade8383610ab7565b9150826002028217905092915050565b610af7826108b4565b67ffffffffffffffff811115610b1057610b0f6108be565b5b610b1a8254610918565b610b25828285610a65565b5f60209050601f831160018114610b56575f8415610b44578287015190505b610b4e8582610ad3565b865550610bb5565b601f198416610b6486610948565b5f5b82811015610b8b57848901518255600182019150602085019450602081019050610b66565b86831015610ba85784890151610ba4601f891682610ab7565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610bf4826109c6565b9150610bff836109c6565b9250828201905080821115610c1757610c16610bbd565b5b92915050565b5f610c27826109c6565b9150610c32836109c6565b9250828203905081811115610c4a57610c49610bbd565b5b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610c94601f83610c50565b9150610c9f82610c60565b602082019050919050565b5f6020820190508181035f830152610cc181610c88565b9050919050565b610cd1816109c6565b82525050565b5f602082019050610cea5f830184610cc8565b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f610d4a602583610c50565b9150610d5582610cf0565b604082019050919050565b5f6020820190508181035f830152610d7781610d3e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f610dd8602383610c50565b9150610de382610d7e565b604082019050919050565b5f6020820190508181035f830152610e0581610dcc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f610e66602683610c50565b9150610e7182610e0c565b604082019050919050565b5f6020820190508181035f830152610e9381610e5a565b9050919050565b608051613105610eb25f395f611c5101526131055ff3fe608060405260043610610184575f3560e01c8063715018a6116100d0578063a457c2d711610089578063b29a814011610063578063b29a814014610558578063dd62ed3e14610580578063f2fde38b146105bc578063f47d0572146105e45761018b565b8063a457c2d7146104b6578063a9059cbb146104f2578063aa23e03d1461052e5761018b565b8063715018a6146103cf57806375b17350146103e557806379cc67901461040f5780637be39de5146104375780638da5cb5b1461046257806395d89b411461048c5761018b565b80632728fa7d1161013d5780633950935111610117578063395093511461031957806342966c68146103555780636cef312c1461037d57806370a08231146103935761018b565b80632728fa7d146102af5780632c0b8534146102c5578063313ce567146102ef5761018b565b806301f25a4a1461018f57806306fdde03146101bb578063095ea7b3146101e55780630aee88c41461022157806318160ddd1461024957806323b872dd146102735761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a3610620565b6040516101b2939291906121b7565b60405180910390f35b3480156101c6575f80fd5b506101cf610685565b6040516101dc919061226a565b60405180910390f35b3480156101f0575f80fd5b5061020b600480360381019061020691906122e2565b610715565b604051610218919061233a565b60405180910390f35b34801561022c575f80fd5b5061024760048036038101906102429190612353565b610737565b005b348015610254575f80fd5b5061025d6107cb565b60405161026a919061237e565b60405180910390f35b34801561027e575f80fd5b5061029960048036038101906102949190612397565b6107d4565b6040516102a6919061233a565b60405180910390f35b3480156102ba575f80fd5b506102c36108cf565b005b3480156102d0575f80fd5b506102d961095f565b6040516102e6919061233a565b60405180910390f35b3480156102fa575f80fd5b50610303610967565b6040516103109190612402565b60405180910390f35b348015610324575f80fd5b5061033f600480360381019061033a91906122e2565b610975565b60405161034c919061233a565b60405180910390f35b348015610360575f80fd5b5061037b6004803603810190610376919061241b565b610a1c565b005b348015610388575f80fd5b50610391610a30565b005b34801561039e575f80fd5b506103b960048036038101906103b49190612353565b610dcf565b6040516103c6919061237e565b60405180910390f35b3480156103da575f80fd5b506103e3610e14565b005b3480156103f0575f80fd5b506103f9610f4d565b604051610406919061237e565b60405180910390f35b34801561041a575f80fd5b50610435600480360381019061043091906122e2565b610f53565b005b348015610442575f80fd5b5061044b610fd6565b604051610459929190612446565b60405180910390f35b34801561046d575f80fd5b506104766111b8565b604051610483919061248a565b60405180910390f35b348015610497575f80fd5b506104a06111e0565b6040516104ad919061226a565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d791906122e2565b611270565b6040516104e9919061233a565b60405180910390f35b3480156104fd575f80fd5b50610518600480360381019061051391906122e2565b61135f565b604051610525919061233a565b60405180910390f35b348015610539575f80fd5b50610542611381565b60405161054f919061226a565b60405180910390f35b348015610563575f80fd5b5061057e600480360381019061057991906122e2565b611411565b005b34801561058b575f80fd5b506105a660048036038101906105a191906124a3565b611619565b6040516105b3919061237e565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd9190612353565b61169b565b005b3480156105ef575f80fd5b5061060a60048036038101906106059190612353565b611843565b604051610617919061233a565b60405180910390f35b6060805f805f61062e610fd6565b915091505f805b835181101561067357828181518110610651576106506124e1565b5b602002602001015182610664919061253b565b91508080600101915050610635565b50828282955095509550505050909192565b6060600380546106949061259b565b80601f01602080910402602001604051908101604052809291908181526020018280546106c09061259b565b801561070b5780601f106106e25761010080835404028352916020019161070b565b820191905f5260205f20905b8154815290600101906020018083116106ee57829003601f168201915b5050505050905090565b5f8061071f61185f565b905061072c818585611866565b600191505092915050565b61073f61185f565b73ffffffffffffffffffffffffffffffffffffffff1661075d6111b8565b73ffffffffffffffffffffffffffffffffffffffff16146107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa9061263b565b60405180910390fd5b6107c781600d611a2990919063ffffffff16565b5050565b5f600254905090565b5f6107e0848484611a56565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61082761185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d906126c9565b60405180910390fd5b6108c3856108b261185f565b85846108be91906126e7565b611866565b60019150509392505050565b6108d761185f565b73ffffffffffffffffffffffffffffffffffffffff166108f56111b8565b73ffffffffffffffffffffffffffffffffffffffff161461094b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109429061263b565b60405180910390fd5b61095d3061095830610dcf565b611a84565b565b5f6001905090565b5f610970611c4e565b905090565b5f610a1261098161185f565b848460015f61098e61185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a0d919061253b565b611866565b6001905092915050565b610a2d610a2761185f565b82611a84565b50565b600854421015610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c9061278a565b60405180910390fd5b600a54421015610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190612818565b60405180910390fd5b5f662386f26fc10000610acb6107cb565b610ad591906126e7565b90505f6426ce115680905081811115610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90612880565b60405180910390fd5b5f80610b2d610fd6565b915091505f805b8351811015610c4757610b60848281518110610b5357610b526124e1565b5b6020026020010151611843565b158015610bba5750610b706111b8565b73ffffffffffffffffffffffffffffffffffffffff16848281518110610b9957610b986124e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b8015610c0c57505f73ffffffffffffffffffffffffffffffffffffffff16848281518110610beb57610bea6124e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610c3a57828181518110610c2457610c236124e1565b5b602002602001015182610c37919061253b565b91505b8080600101915050610b34565b505f8111610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c81906128e8565b60405180910390fd5b5f5b8351811015610da9575f848281518110610ca957610ca86124e1565b5b60200260200101519050610cbc81611843565b158015610cfc5750610ccc6111b8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610d3457505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610d9b575f83620f4240868581518110610d5257610d516124e1565b5b6020026020010151610d649190612906565b610d6e9190612974565b90505f620f42408883610d819190612906565b610d8b9190612974565b9050610d98308483611a56565b50505b508080600101915050610c8c565b504260098190555062015180600954610dc2919061253b565b600a819055505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e1c61185f565b73ffffffffffffffffffffffffffffffffffffffff16610e3a6111b8565b73ffffffffffffffffffffffffffffffffffffffff1614610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e879061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b5f610f6583610f6061185f565b611619565b905081811015610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612a14565b60405180910390fd5b610fc783610fb661185f565b8484610fc291906126e7565b611866565b610fd18383611a84565b505050565b6060805f610fe4600f611c75565b90505f8167ffffffffffffffff81111561100157611000612a32565b5b60405190808252806020026020018201604052801561102f5781602001602082028036833780820191505090505b5090505f8267ffffffffffffffff81111561104d5761104c612a32565b5b60405190808252806020026020018201604052801561107b5781602001602082028036833780820191505090505b5090505f5b838110156111aa575f61109d82600f611c8890919063ffffffff16565b90506110a881611843565b1580156110e857506110b86111b8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561112057505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561119c5780848381518110611139576111386124e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061117c81610dcf565b83838151811061118f5761118e6124e1565b5b6020026020010181815250505b508080600101915050611080565b508181945094505050509091565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111ef9061259b565b80601f016020809104026020016040519081016040528092919081815260200182805461121b9061259b565b80156112665780601f1061123d57610100808354040283529160200191611266565b820191905f5260205f20905b81548152906001019060200180831161124957829003601f168201915b5050505050905090565b5f8060015f61127d61185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612acf565b60405180910390fd5b61135461134261185f565b85858461134f91906126e7565b611866565b600191505092915050565b5f8061136961185f565b9050611376818585611a56565b600191505092915050565b6060600780546113909061259b565b80601f01602080910402602001604051908101604052809291908181526020018280546113bc9061259b565b80156114075780601f106113de57610100808354040283529160200191611407565b820191905f5260205f20905b8154815290600101906020018083116113ea57829003601f168201915b5050505050905090565b61141961185f565b73ffffffffffffffffffffffffffffffffffffffff166114376111b8565b73ffffffffffffffffffffffffffffffffffffffff161461148d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114849061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611586578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114e46111b8565b836040518363ffffffff1660e01b8152600401611502929190612aed565b6020604051808303815f875af115801561151e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115429190612b3e565b611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890612bd9565b60405180910390fd5b611615565b804710156115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090612c41565b60405180910390fd5b6115d16111b8565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611613573d5f803e3d5ffd5b505b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6116a361185f565b73ffffffffffffffffffffffffffffffffffffffff166116c16111b8565b73ffffffffffffffffffffffffffffffffffffffff1614611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e9061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90612ccf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61185882600d611c9f90919063ffffffff16565b9050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612d5d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193990612deb565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a1c919061237e565b60405180910390a3505050565b5f611a4e835f018373ffffffffffffffffffffffffffffffffffffffff165f1b611ccc565b905092915050565b611a61838383611d33565b5f811115611a7f57611a7d82600f611a2990919063ffffffff16565b505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae990612e79565b60405180910390fd5b611afd825f83611fa6565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7790612f07565b60405180910390fd5b8181611b8c91906126e7565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f828254611bdd91906126e7565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c41919061237e565b60405180910390a3505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f611c81825f01611fab565b9050919050565b5f611c95835f0183611fba565b5f1c905092915050565b5f611cc4835f018373ffffffffffffffffffffffffffffffffffffffff165f1b611fe1565b905092915050565b5f611cd78383611fe1565b611d2957825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f208190555060019050611d2d565b5f90505b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890612f95565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613023565b60405180910390fd5b611e1a838383611fa6565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e94906130b1565b60405180910390fd5b8181611ea991906126e7565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f34919061253b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f98919061237e565b60405180910390a350505050565b505050565b5f815f01805490509050919050565b5f825f018281548110611fd057611fcf6124e1565b5b905f5260205f200154905092915050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120538261202a565b9050919050565b61206381612049565b82525050565b5f612074838361205a565b60208301905092915050565b5f602082019050919050565b5f61209682612001565b6120a0818561200b565b93506120ab8361201b565b805f5b838110156120db5781516120c28882612069565b97506120cd83612080565b9250506001810190506120ae565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61212381612111565b82525050565b5f612134838361211a565b60208301905092915050565b5f602082019050919050565b5f612156826120e8565b61216081856120f2565b935061216b83612102565b805f5b8381101561219b5781516121828882612129565b975061218d83612140565b92505060018101905061216e565b5085935050505092915050565b6121b181612111565b82525050565b5f6060820190508181035f8301526121cf818661208c565b905081810360208301526121e3818561214c565b90506121f260408301846121a8565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61223c826121fa565b6122468185612204565b9350612256818560208601612214565b61225f81612222565b840191505092915050565b5f6020820190508181035f8301526122828184612232565b905092915050565b5f80fd5b61229781612049565b81146122a1575f80fd5b50565b5f813590506122b28161228e565b92915050565b6122c181612111565b81146122cb575f80fd5b50565b5f813590506122dc816122b8565b92915050565b5f80604083850312156122f8576122f761228a565b5b5f612305858286016122a4565b9250506020612316858286016122ce565b9150509250929050565b5f8115159050919050565b61233481612320565b82525050565b5f60208201905061234d5f83018461232b565b92915050565b5f602082840312156123685761236761228a565b5b5f612375848285016122a4565b91505092915050565b5f6020820190506123915f8301846121a8565b92915050565b5f805f606084860312156123ae576123ad61228a565b5b5f6123bb868287016122a4565b93505060206123cc868287016122a4565b92505060406123dd868287016122ce565b9150509250925092565b5f60ff82169050919050565b6123fc816123e7565b82525050565b5f6020820190506124155f8301846123f3565b92915050565b5f602082840312156124305761242f61228a565b5b5f61243d848285016122ce565b91505092915050565b5f6040820190508181035f83015261245e818561208c565b90508181036020830152612472818461214c565b90509392505050565b61248481612049565b82525050565b5f60208201905061249d5f83018461247b565b92915050565b5f80604083850312156124b9576124b861228a565b5b5f6124c6858286016122a4565b92505060206124d7858286016122a4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61254582612111565b915061255083612111565b92508282019050808211156125685761256761250e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806125b257607f821691505b6020821081036125c5576125c461256e565b5b50919050565b7f45524332304f776e61626c653a2063616c6c6572206973206e6f7420746865205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f612625602583612204565b9150612630826125cb565b604082019050919050565b5f6020820190508181035f83015261265281612619565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6126b3602883612204565b91506126be82612659565b604082019050919050565b5f6020820190508181035f8301526126e0816126a7565b9050919050565b5f6126f182612111565b91506126fc83612111565b92508282039050818111156127145761271361250e565b5b92915050565b7f546f6b656e2072656c6561736520686173206e6f7420737461727465642079655f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612774602183612204565b915061277f8261271a565b604082019050919050565b5f6020820190508181035f8301526127a181612768565b9050919050565b7f446973747269627574696f6e20696e74657276616c206e6f74207265616368655f8201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612802602183612204565b915061280d826127a8565b604082019050919050565b5f6020820190508181035f83015261282f816127f6565b9050919050565b7f496e73756666696369656e742063697263756c6174696e6720737570706c79005f82015250565b5f61286a601f83612204565b915061287582612836565b602082019050919050565b5f6020820190508181035f8301526128978161285e565b9050919050565b7f4e6f2062616c616e636520746f206469737472696275746500000000000000005f82015250565b5f6128d2601883612204565b91506128dd8261289e565b602082019050919050565b5f6020820190508181035f8301526128ff816128c6565b9050919050565b5f61291082612111565b915061291b83612111565b925082820261292981612111565b915082820484148315176129405761293f61250e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297e82612111565b915061298983612111565b92508261299957612998612947565b5b828204905092915050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f775f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6129fe602483612204565b9150612a09826129a4565b604082019050919050565b5f6020820190508181035f830152612a2b816129f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612ab9602583612204565b9150612ac482612a5f565b604082019050919050565b5f6020820190508181035f830152612ae681612aad565b9050919050565b5f604082019050612b005f83018561247b565b612b0d60208301846121a8565b9392505050565b612b1d81612320565b8114612b27575f80fd5b50565b5f81519050612b3881612b14565b92915050565b5f60208284031215612b5357612b5261228a565b5b5f612b6084828501612b2a565b91505092915050565b7f4f776e65722063616e6e6f74207265636f766572207468656972206f776e20455f8201527f52432d323020746f6b656e730000000000000000000000000000000000000000602082015250565b5f612bc3602c83612204565b9150612bce82612b69565b604082019050919050565b5f6020820190508181035f830152612bf081612bb7565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e63650000005f82015250565b5f612c2b601d83612204565b9150612c3682612bf7565b602082019050919050565b5f6020820190508181035f830152612c5881612c1f565b9050919050565b7f45524332304f776e61626c653a206e6577206f776e657220697320746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f612cb9602b83612204565b9150612cc482612c5f565b604082019050919050565b5f6020820190508181035f830152612ce681612cad565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d47602483612204565b9150612d5282612ced565b604082019050919050565b5f6020820190508181035f830152612d7481612d3b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dd5602283612204565b9150612de082612d7b565b604082019050919050565b5f6020820190508181035f830152612e0281612dc9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e63602183612204565b9150612e6e82612e09565b604082019050919050565b5f6020820190508181035f830152612e9081612e57565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ef1602283612204565b9150612efc82612e97565b604082019050919050565b5f6020820190508181035f830152612f1e81612ee5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f7f602583612204565b9150612f8a82612f25565b604082019050919050565b5f6020820190508181035f830152612fac81612f73565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61300d602383612204565b915061301882612fb3565b604082019050919050565b5f6020820190508181035f83015261303a81613001565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61309b602683612204565b91506130a682613041565b604082019050919050565b5f6020820190508181035f8301526130c88161308f565b905091905056fea264697066735822122012c11ecfbd3083d2c8a75bb338b4a14a23124e644baabe241810642c3fd97c8c64736f6c63430008190033000000000000000000000000278672e083a919805bcd53cdb72430cbaa2014580000000000000000000000000000000000000000000000000000000000000006
Deployed Bytecode
0x608060405260043610610184575f3560e01c8063715018a6116100d0578063a457c2d711610089578063b29a814011610063578063b29a814014610558578063dd62ed3e14610580578063f2fde38b146105bc578063f47d0572146105e45761018b565b8063a457c2d7146104b6578063a9059cbb146104f2578063aa23e03d1461052e5761018b565b8063715018a6146103cf57806375b17350146103e557806379cc67901461040f5780637be39de5146104375780638da5cb5b1461046257806395d89b411461048c5761018b565b80632728fa7d1161013d5780633950935111610117578063395093511461031957806342966c68146103555780636cef312c1461037d57806370a08231146103935761018b565b80632728fa7d146102af5780632c0b8534146102c5578063313ce567146102ef5761018b565b806301f25a4a1461018f57806306fdde03146101bb578063095ea7b3146101e55780630aee88c41461022157806318160ddd1461024957806323b872dd146102735761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a3610620565b6040516101b2939291906121b7565b60405180910390f35b3480156101c6575f80fd5b506101cf610685565b6040516101dc919061226a565b60405180910390f35b3480156101f0575f80fd5b5061020b600480360381019061020691906122e2565b610715565b604051610218919061233a565b60405180910390f35b34801561022c575f80fd5b5061024760048036038101906102429190612353565b610737565b005b348015610254575f80fd5b5061025d6107cb565b60405161026a919061237e565b60405180910390f35b34801561027e575f80fd5b5061029960048036038101906102949190612397565b6107d4565b6040516102a6919061233a565b60405180910390f35b3480156102ba575f80fd5b506102c36108cf565b005b3480156102d0575f80fd5b506102d961095f565b6040516102e6919061233a565b60405180910390f35b3480156102fa575f80fd5b50610303610967565b6040516103109190612402565b60405180910390f35b348015610324575f80fd5b5061033f600480360381019061033a91906122e2565b610975565b60405161034c919061233a565b60405180910390f35b348015610360575f80fd5b5061037b6004803603810190610376919061241b565b610a1c565b005b348015610388575f80fd5b50610391610a30565b005b34801561039e575f80fd5b506103b960048036038101906103b49190612353565b610dcf565b6040516103c6919061237e565b60405180910390f35b3480156103da575f80fd5b506103e3610e14565b005b3480156103f0575f80fd5b506103f9610f4d565b604051610406919061237e565b60405180910390f35b34801561041a575f80fd5b50610435600480360381019061043091906122e2565b610f53565b005b348015610442575f80fd5b5061044b610fd6565b604051610459929190612446565b60405180910390f35b34801561046d575f80fd5b506104766111b8565b604051610483919061248a565b60405180910390f35b348015610497575f80fd5b506104a06111e0565b6040516104ad919061226a565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d791906122e2565b611270565b6040516104e9919061233a565b60405180910390f35b3480156104fd575f80fd5b50610518600480360381019061051391906122e2565b61135f565b604051610525919061233a565b60405180910390f35b348015610539575f80fd5b50610542611381565b60405161054f919061226a565b60405180910390f35b348015610563575f80fd5b5061057e600480360381019061057991906122e2565b611411565b005b34801561058b575f80fd5b506105a660048036038101906105a191906124a3565b611619565b6040516105b3919061237e565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd9190612353565b61169b565b005b3480156105ef575f80fd5b5061060a60048036038101906106059190612353565b611843565b604051610617919061233a565b60405180910390f35b6060805f805f61062e610fd6565b915091505f805b835181101561067357828181518110610651576106506124e1565b5b602002602001015182610664919061253b565b91508080600101915050610635565b50828282955095509550505050909192565b6060600380546106949061259b565b80601f01602080910402602001604051908101604052809291908181526020018280546106c09061259b565b801561070b5780601f106106e25761010080835404028352916020019161070b565b820191905f5260205f20905b8154815290600101906020018083116106ee57829003601f168201915b5050505050905090565b5f8061071f61185f565b905061072c818585611866565b600191505092915050565b61073f61185f565b73ffffffffffffffffffffffffffffffffffffffff1661075d6111b8565b73ffffffffffffffffffffffffffffffffffffffff16146107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa9061263b565b60405180910390fd5b6107c781600d611a2990919063ffffffff16565b5050565b5f600254905090565b5f6107e0848484611a56565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61082761185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d906126c9565b60405180910390fd5b6108c3856108b261185f565b85846108be91906126e7565b611866565b60019150509392505050565b6108d761185f565b73ffffffffffffffffffffffffffffffffffffffff166108f56111b8565b73ffffffffffffffffffffffffffffffffffffffff161461094b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109429061263b565b60405180910390fd5b61095d3061095830610dcf565b611a84565b565b5f6001905090565b5f610970611c4e565b905090565b5f610a1261098161185f565b848460015f61098e61185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a0d919061253b565b611866565b6001905092915050565b610a2d610a2761185f565b82611a84565b50565b600854421015610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c9061278a565b60405180910390fd5b600a54421015610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190612818565b60405180910390fd5b5f662386f26fc10000610acb6107cb565b610ad591906126e7565b90505f6426ce115680905081811115610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90612880565b60405180910390fd5b5f80610b2d610fd6565b915091505f805b8351811015610c4757610b60848281518110610b5357610b526124e1565b5b6020026020010151611843565b158015610bba5750610b706111b8565b73ffffffffffffffffffffffffffffffffffffffff16848281518110610b9957610b986124e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b8015610c0c57505f73ffffffffffffffffffffffffffffffffffffffff16848281518110610beb57610bea6124e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610c3a57828181518110610c2457610c236124e1565b5b602002602001015182610c37919061253b565b91505b8080600101915050610b34565b505f8111610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c81906128e8565b60405180910390fd5b5f5b8351811015610da9575f848281518110610ca957610ca86124e1565b5b60200260200101519050610cbc81611843565b158015610cfc5750610ccc6111b8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610d3457505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15610d9b575f83620f4240868581518110610d5257610d516124e1565b5b6020026020010151610d649190612906565b610d6e9190612974565b90505f620f42408883610d819190612906565b610d8b9190612974565b9050610d98308483611a56565b50505b508080600101915050610c8c565b504260098190555062015180600954610dc2919061253b565b600a819055505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e1c61185f565b73ffffffffffffffffffffffffffffffffffffffff16610e3a6111b8565b73ffffffffffffffffffffffffffffffffffffffff1614610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e879061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b5f610f6583610f6061185f565b611619565b905081811015610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612a14565b60405180910390fd5b610fc783610fb661185f565b8484610fc291906126e7565b611866565b610fd18383611a84565b505050565b6060805f610fe4600f611c75565b90505f8167ffffffffffffffff81111561100157611000612a32565b5b60405190808252806020026020018201604052801561102f5781602001602082028036833780820191505090505b5090505f8267ffffffffffffffff81111561104d5761104c612a32565b5b60405190808252806020026020018201604052801561107b5781602001602082028036833780820191505090505b5090505f5b838110156111aa575f61109d82600f611c8890919063ffffffff16565b90506110a881611843565b1580156110e857506110b86111b8565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561112057505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561119c5780848381518110611139576111386124e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061117c81610dcf565b83838151811061118f5761118e6124e1565b5b6020026020010181815250505b508080600101915050611080565b508181945094505050509091565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111ef9061259b565b80601f016020809104026020016040519081016040528092919081815260200182805461121b9061259b565b80156112665780601f1061123d57610100808354040283529160200191611266565b820191905f5260205f20905b81548152906001019060200180831161124957829003601f168201915b5050505050905090565b5f8060015f61127d61185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612acf565b60405180910390fd5b61135461134261185f565b85858461134f91906126e7565b611866565b600191505092915050565b5f8061136961185f565b9050611376818585611a56565b600191505092915050565b6060600780546113909061259b565b80601f01602080910402602001604051908101604052809291908181526020018280546113bc9061259b565b80156114075780601f106113de57610100808354040283529160200191611407565b820191905f5260205f20905b8154815290600101906020018083116113ea57829003601f168201915b5050505050905090565b61141961185f565b73ffffffffffffffffffffffffffffffffffffffff166114376111b8565b73ffffffffffffffffffffffffffffffffffffffff161461148d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114849061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611586578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114e46111b8565b836040518363ffffffff1660e01b8152600401611502929190612aed565b6020604051808303815f875af115801561151e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115429190612b3e565b611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890612bd9565b60405180910390fd5b611615565b804710156115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090612c41565b60405180910390fd5b6115d16111b8565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611613573d5f803e3d5ffd5b505b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6116a361185f565b73ffffffffffffffffffffffffffffffffffffffff166116c16111b8565b73ffffffffffffffffffffffffffffffffffffffff1614611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e9061263b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90612ccf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61185882600d611c9f90919063ffffffff16565b9050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612d5d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193990612deb565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a1c919061237e565b60405180910390a3505050565b5f611a4e835f018373ffffffffffffffffffffffffffffffffffffffff165f1b611ccc565b905092915050565b611a61838383611d33565b5f811115611a7f57611a7d82600f611a2990919063ffffffff16565b505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae990612e79565b60405180910390fd5b611afd825f83611fa6565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7790612f07565b60405180910390fd5b8181611b8c91906126e7565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f828254611bdd91906126e7565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c41919061237e565b60405180910390a3505050565b5f7f0000000000000000000000000000000000000000000000000000000000000006905090565b5f611c81825f01611fab565b9050919050565b5f611c95835f0183611fba565b5f1c905092915050565b5f611cc4835f018373ffffffffffffffffffffffffffffffffffffffff165f1b611fe1565b905092915050565b5f611cd78383611fe1565b611d2957825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f208190555060019050611d2d565b5f90505b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890612f95565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613023565b60405180910390fd5b611e1a838383611fa6565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e94906130b1565b60405180910390fd5b8181611ea991906126e7565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f34919061253b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f98919061237e565b60405180910390a350505050565b505050565b5f815f01805490509050919050565b5f825f018281548110611fd057611fcf6124e1565b5b905f5260205f200154905092915050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120538261202a565b9050919050565b61206381612049565b82525050565b5f612074838361205a565b60208301905092915050565b5f602082019050919050565b5f61209682612001565b6120a0818561200b565b93506120ab8361201b565b805f5b838110156120db5781516120c28882612069565b97506120cd83612080565b9250506001810190506120ae565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61212381612111565b82525050565b5f612134838361211a565b60208301905092915050565b5f602082019050919050565b5f612156826120e8565b61216081856120f2565b935061216b83612102565b805f5b8381101561219b5781516121828882612129565b975061218d83612140565b92505060018101905061216e565b5085935050505092915050565b6121b181612111565b82525050565b5f6060820190508181035f8301526121cf818661208c565b905081810360208301526121e3818561214c565b90506121f260408301846121a8565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61223c826121fa565b6122468185612204565b9350612256818560208601612214565b61225f81612222565b840191505092915050565b5f6020820190508181035f8301526122828184612232565b905092915050565b5f80fd5b61229781612049565b81146122a1575f80fd5b50565b5f813590506122b28161228e565b92915050565b6122c181612111565b81146122cb575f80fd5b50565b5f813590506122dc816122b8565b92915050565b5f80604083850312156122f8576122f761228a565b5b5f612305858286016122a4565b9250506020612316858286016122ce565b9150509250929050565b5f8115159050919050565b61233481612320565b82525050565b5f60208201905061234d5f83018461232b565b92915050565b5f602082840312156123685761236761228a565b5b5f612375848285016122a4565b91505092915050565b5f6020820190506123915f8301846121a8565b92915050565b5f805f606084860312156123ae576123ad61228a565b5b5f6123bb868287016122a4565b93505060206123cc868287016122a4565b92505060406123dd868287016122ce565b9150509250925092565b5f60ff82169050919050565b6123fc816123e7565b82525050565b5f6020820190506124155f8301846123f3565b92915050565b5f602082840312156124305761242f61228a565b5b5f61243d848285016122ce565b91505092915050565b5f6040820190508181035f83015261245e818561208c565b90508181036020830152612472818461214c565b90509392505050565b61248481612049565b82525050565b5f60208201905061249d5f83018461247b565b92915050565b5f80604083850312156124b9576124b861228a565b5b5f6124c6858286016122a4565b92505060206124d7858286016122a4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61254582612111565b915061255083612111565b92508282019050808211156125685761256761250e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806125b257607f821691505b6020821081036125c5576125c461256e565b5b50919050565b7f45524332304f776e61626c653a2063616c6c6572206973206e6f7420746865205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f612625602583612204565b9150612630826125cb565b604082019050919050565b5f6020820190508181035f83015261265281612619565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6126b3602883612204565b91506126be82612659565b604082019050919050565b5f6020820190508181035f8301526126e0816126a7565b9050919050565b5f6126f182612111565b91506126fc83612111565b92508282039050818111156127145761271361250e565b5b92915050565b7f546f6b656e2072656c6561736520686173206e6f7420737461727465642079655f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612774602183612204565b915061277f8261271a565b604082019050919050565b5f6020820190508181035f8301526127a181612768565b9050919050565b7f446973747269627574696f6e20696e74657276616c206e6f74207265616368655f8201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612802602183612204565b915061280d826127a8565b604082019050919050565b5f6020820190508181035f83015261282f816127f6565b9050919050565b7f496e73756666696369656e742063697263756c6174696e6720737570706c79005f82015250565b5f61286a601f83612204565b915061287582612836565b602082019050919050565b5f6020820190508181035f8301526128978161285e565b9050919050565b7f4e6f2062616c616e636520746f206469737472696275746500000000000000005f82015250565b5f6128d2601883612204565b91506128dd8261289e565b602082019050919050565b5f6020820190508181035f8301526128ff816128c6565b9050919050565b5f61291082612111565b915061291b83612111565b925082820261292981612111565b915082820484148315176129405761293f61250e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297e82612111565b915061298983612111565b92508261299957612998612947565b5b828204905092915050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f775f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6129fe602483612204565b9150612a09826129a4565b604082019050919050565b5f6020820190508181035f830152612a2b816129f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612ab9602583612204565b9150612ac482612a5f565b604082019050919050565b5f6020820190508181035f830152612ae681612aad565b9050919050565b5f604082019050612b005f83018561247b565b612b0d60208301846121a8565b9392505050565b612b1d81612320565b8114612b27575f80fd5b50565b5f81519050612b3881612b14565b92915050565b5f60208284031215612b5357612b5261228a565b5b5f612b6084828501612b2a565b91505092915050565b7f4f776e65722063616e6e6f74207265636f766572207468656972206f776e20455f8201527f52432d323020746f6b656e730000000000000000000000000000000000000000602082015250565b5f612bc3602c83612204565b9150612bce82612b69565b604082019050919050565b5f6020820190508181035f830152612bf081612bb7565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e63650000005f82015250565b5f612c2b601d83612204565b9150612c3682612bf7565b602082019050919050565b5f6020820190508181035f830152612c5881612c1f565b9050919050565b7f45524332304f776e61626c653a206e6577206f776e657220697320746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f612cb9602b83612204565b9150612cc482612c5f565b604082019050919050565b5f6020820190508181035f830152612ce681612cad565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d47602483612204565b9150612d5282612ced565b604082019050919050565b5f6020820190508181035f830152612d7481612d3b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dd5602283612204565b9150612de082612d7b565b604082019050919050565b5f6020820190508181035f830152612e0281612dc9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e63602183612204565b9150612e6e82612e09565b604082019050919050565b5f6020820190508181035f830152612e9081612e57565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ef1602283612204565b9150612efc82612e97565b604082019050919050565b5f6020820190508181035f830152612f1e81612ee5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f7f602583612204565b9150612f8a82612f25565b604082019050919050565b5f6020820190508181035f830152612fac81612f73565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61300d602383612204565b915061301882612fb3565b604082019050919050565b5f6020820190508181035f83015261303a81613001565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61309b602683612204565b91506130a682613041565b604082019050919050565b5f6020820190508181035f8301526130c88161308f565b905091905056fea264697066735822122012c11ecfbd3083d2c8a75bb338b4a14a23124e644baabe241810642c3fd97c8c64736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000278672e083a919805bcd53cdb72430cbaa2014580000000000000000000000000000000000000000000000000000000000000006
-----Decoded View---------------
Arg [0] : __ARZ_target (address): 0x278672E083A919805bcd53CDB72430CbaA201458
Arg [1] : __ARZ_decimals (uint8): 6
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000278672e083a919805bcd53cdb72430cbaa201458
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000006
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.