ERC-20
Overview
Max Total Supply
13,138.530577993280404303 $OSYC
Holders
187
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OSYC
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT /*************************************************************************** ___ __ _ __ __ __ ___ / __ \ / /_ _____(_)___/ /____ \ \ / / _ \ / / / /_ __/ __/ / ___/ / __ / __ ) \ / /| | / /_/ / /_/ / /_ (__ ) / /_/ / ____/ | | | |_ \____/\____/\__/ /____/_/\__,_/\____/ |_| \___/ ****************************************************************************/ pragma solidity ^0.8.0; import "./SafeMath.sol"; import "./Ownable.sol"; contract OSYC is Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; string private _name; string private _symbol; uint8 private _decimals; uint256 _totalSupply; uint256 public MAX_SUPPLY; mapping(address => bool) public managers; event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); constructor() { _name = "Outside YC"; _symbol = "$OSYC"; _decimals = 18; MAX_SUPPLY = 4000000 ether; } function addManager(address _address) external onlyOwner { managers[_address] = true; } function removeManager(address _address) external onlyOwner { managers[_address] = false; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public returns (bool) { _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount) ); _transfer(sender, recipient, amount); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0x0)); require(recipient != address(0x0)); _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function mint(address to, uint256 amount) public { require( managers[msg.sender] == true, "This address is not allowed to interact with the contract" ); _mint(to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0x0)); require( MAX_SUPPLY >= _totalSupply.add(amount), "limited by Max Supply" ); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0x0), account, amount); } function burn(address from, uint256 amount) external { require( managers[msg.sender] == true, "This address is not allowed to interact with the contract" ); _burn(from, amount); } function burn(uint256 amount) external { _burn(msg.sender, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0x0)); _balances[account] = _balances[account].sub(amount); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0x0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0x0)); require(spender != address(0x0)); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
// SPDX-License-Identifier: MIT /*************************************************************************** ___ __ _ __ __ __ ___ / __ \ / /_ _____(_)___/ /____ \ \ / / _ \ / / / /_ __/ __/ / ___/ / __ / __ ) \ / /| | / /_/ / /_/ / /_ (__ ) / /_/ / ____/ | | | |_ \____/\____/\__/ /____/_/\__,_/\____/ |_| \___/ ****************************************************************************/ pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT /*************************************************************************** ___ __ _ __ __ __ ___ / __ \ / /_ _____(_)___/ /____ \ \ / / _ \ / / / /_ __/ __/ / ___/ / __ / __ ) \ / /| | / /_/ / /_/ / /_ (__ ) / /_/ / ____/ | | | |_ \____/\____/\__/ /____/_/\__,_/\____/ |_| \___/ ****************************************************************************/ pragma solidity ^0.8.0; import "./Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT /*************************************************************************** ___ __ _ __ __ __ ___ / __ \ / /_ _____(_)___/ /____ \ \ / / _ \ / / / /_ __/ __/ / ___/ / __ / __ ) \ / /| | / /_/ / /_/ / /_ (__ ) / /_/ / ____/ | | | |_ \____/\____/\__/ /____/_/\__,_/\____/ |_| \___/ ****************************************************************************/ pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":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":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"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":"address","name":"_address","type":"address"}],"name":"removeManager","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":"recipient","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"}]
Contract Creation Code
60806040523480156200001157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600a808252694f75747369646520594360b01b60209092019182526200008691600391620000d8565b5060408051808201909152600580825264244f53594360d81b6020909201918252620000b591600491620000d8565b506005805460ff191660121790556a034f086f3b33b684000000600755620001bb565b828054620000e6906200017e565b90600052602060002090601f0160209004810192826200010a576000855562000155565b82601f106200012557805160ff191683800117855562000155565b8280016001018555821562000155579182015b828111156200015557825182559160200191906001019062000138565b506200016392915062000167565b5090565b5b8082111562000163576000815560010162000168565b600181811c908216806200019357607f821691505b60208210811415620001b557634e487b7160e01b600052602260045260246000fd5b50919050565b610c0f80620001cb6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a9059cbb11610071578063a9059cbb1461024c578063ac18de431461025f578063dd62ed3e14610272578063f2fde38b146102ab578063fdff9b4d146102be57600080fd5b806370a08231146101e5578063715018a61461020e5780638da5cb5b1461021657806395d89b41146102315780639dc29fac1461023957600080fd5b80632d06177a116100f45780632d06177a1461018c578063313ce567146101a157806332cb6b0c146101b657806340c10f19146101bf57806342966c68146101d257600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102e1565b60405161013b9190610a72565b60405180910390f35b610157610152366004610a2f565b610373565b604051901515815260200161013b565b6006545b60405190815260200161013b565b6101576101873660046109f3565b610389565b61019f61019a3660046109a5565b6103d7565b005b60055460405160ff909116815260200161013b565b61016b60075481565b61019f6101cd366004610a2f565b61042e565b61019f6101e0366004610a59565b610470565b61016b6101f33660046109a5565b6001600160a01b031660009081526001602052604090205490565b61019f61047d565b6000546040516001600160a01b03909116815260200161013b565b61012e6104f1565b61019f610247366004610a2f565b610500565b61015761025a366004610a2f565b61053e565b61019f61026d3660046109a5565b61054b565b61016b6102803660046109c0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61019f6102b93660046109a5565b610596565b6101576102cc3660046109a5565b60086020526000908152604090205460ff1681565b6060600380546102f090610b88565b80601f016020809104026020016040519081016040528092919081815260200182805461031c90610b88565b80156103695780601f1061033e57610100808354040283529160200191610369565b820191906000526020600020905b81548152906001019060200180831161034c57829003601f168201915b5050505050905090565b6000610380338484610680565b50600192915050565b6001600160a01b03831660009081526002602090815260408083203380855292528220546103c29186916103bd9086610708565b610680565b6103cd84848461071b565b5060019392505050565b6000546001600160a01b0316331461040a5760405162461bcd60e51b815260040161040190610b24565b60405180910390fd5b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b3360009081526008602052604090205460ff1615156001146104625760405162461bcd60e51b815260040161040190610ac7565b61046c82826107e7565b5050565b61047a33826108e0565b50565b6000546001600160a01b031633146104a75760405162461bcd60e51b815260040161040190610b24565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600480546102f090610b88565b3360009081526008602052604090205460ff1615156001146105345760405162461bcd60e51b815260040161040190610ac7565b61046c82826108e0565b600061038033848461071b565b6000546001600160a01b031633146105755760405162461bcd60e51b815260040161040190610b24565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b031633146105c05760405162461bcd60e51b815260040161040190610b24565b6001600160a01b0381166106255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610401565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661069357600080fd5b6001600160a01b0382166106a657600080fd5b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107148284610b71565b9392505050565b6001600160a01b03831661072e57600080fd5b6001600160a01b03821661074157600080fd5b6001600160a01b0383166000908152600160205260409020546107649082610708565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610793908261097d565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106fb9085815260200190565b6001600160a01b0382166107fa57600080fd5b600654610807908261097d565b60075410156108505760405162461bcd60e51b81526020600482015260156024820152746c696d69746564206279204d617820537570706c7960581b6044820152606401610401565b60065461085d908261097d565b6006556001600160a01b038216600090815260016020526040902054610883908261097d565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108d49085815260200190565b60405180910390a35050565b6001600160a01b0382166108f357600080fd5b6001600160a01b0382166000908152600160205260409020546109169082610708565b6001600160a01b03831660009081526001602052604090205560065461093c9082610708565b6006556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016108d4565b60006107148284610b59565b80356001600160a01b03811681146109a057600080fd5b919050565b6000602082840312156109b757600080fd5b61071482610989565b600080604083850312156109d357600080fd5b6109dc83610989565b91506109ea60208401610989565b90509250929050565b600080600060608486031215610a0857600080fd5b610a1184610989565b9250610a1f60208501610989565b9150604084013590509250925092565b60008060408385031215610a4257600080fd5b610a4b83610989565b946020939093013593505050565b600060208284031215610a6b57600080fd5b5035919050565b600060208083528351808285015260005b81811015610a9f57858101830151858201604001528201610a83565b81811115610ab1576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526039908201527f546869732061646472657373206973206e6f7420616c6c6f77656420746f206960408201527f6e74657261637420776974682074686520636f6e747261637400000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610b6c57610b6c610bc3565b500190565b600082821015610b8357610b83610bc3565b500390565b600181811c90821680610b9c57607f821691505b60208210811415610bbd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220ebdc7d445a49314e17316cd947d77320a254fa097e4f08b52a384ca6a9f55a9864736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a9059cbb11610071578063a9059cbb1461024c578063ac18de431461025f578063dd62ed3e14610272578063f2fde38b146102ab578063fdff9b4d146102be57600080fd5b806370a08231146101e5578063715018a61461020e5780638da5cb5b1461021657806395d89b41146102315780639dc29fac1461023957600080fd5b80632d06177a116100f45780632d06177a1461018c578063313ce567146101a157806332cb6b0c146101b657806340c10f19146101bf57806342966c68146101d257600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102e1565b60405161013b9190610a72565b60405180910390f35b610157610152366004610a2f565b610373565b604051901515815260200161013b565b6006545b60405190815260200161013b565b6101576101873660046109f3565b610389565b61019f61019a3660046109a5565b6103d7565b005b60055460405160ff909116815260200161013b565b61016b60075481565b61019f6101cd366004610a2f565b61042e565b61019f6101e0366004610a59565b610470565b61016b6101f33660046109a5565b6001600160a01b031660009081526001602052604090205490565b61019f61047d565b6000546040516001600160a01b03909116815260200161013b565b61012e6104f1565b61019f610247366004610a2f565b610500565b61015761025a366004610a2f565b61053e565b61019f61026d3660046109a5565b61054b565b61016b6102803660046109c0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61019f6102b93660046109a5565b610596565b6101576102cc3660046109a5565b60086020526000908152604090205460ff1681565b6060600380546102f090610b88565b80601f016020809104026020016040519081016040528092919081815260200182805461031c90610b88565b80156103695780601f1061033e57610100808354040283529160200191610369565b820191906000526020600020905b81548152906001019060200180831161034c57829003601f168201915b5050505050905090565b6000610380338484610680565b50600192915050565b6001600160a01b03831660009081526002602090815260408083203380855292528220546103c29186916103bd9086610708565b610680565b6103cd84848461071b565b5060019392505050565b6000546001600160a01b0316331461040a5760405162461bcd60e51b815260040161040190610b24565b60405180910390fd5b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b3360009081526008602052604090205460ff1615156001146104625760405162461bcd60e51b815260040161040190610ac7565b61046c82826107e7565b5050565b61047a33826108e0565b50565b6000546001600160a01b031633146104a75760405162461bcd60e51b815260040161040190610b24565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600480546102f090610b88565b3360009081526008602052604090205460ff1615156001146105345760405162461bcd60e51b815260040161040190610ac7565b61046c82826108e0565b600061038033848461071b565b6000546001600160a01b031633146105755760405162461bcd60e51b815260040161040190610b24565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b031633146105c05760405162461bcd60e51b815260040161040190610b24565b6001600160a01b0381166106255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610401565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661069357600080fd5b6001600160a01b0382166106a657600080fd5b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107148284610b71565b9392505050565b6001600160a01b03831661072e57600080fd5b6001600160a01b03821661074157600080fd5b6001600160a01b0383166000908152600160205260409020546107649082610708565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610793908261097d565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106fb9085815260200190565b6001600160a01b0382166107fa57600080fd5b600654610807908261097d565b60075410156108505760405162461bcd60e51b81526020600482015260156024820152746c696d69746564206279204d617820537570706c7960581b6044820152606401610401565b60065461085d908261097d565b6006556001600160a01b038216600090815260016020526040902054610883908261097d565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108d49085815260200190565b60405180910390a35050565b6001600160a01b0382166108f357600080fd5b6001600160a01b0382166000908152600160205260409020546109169082610708565b6001600160a01b03831660009081526001602052604090205560065461093c9082610708565b6006556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016108d4565b60006107148284610b59565b80356001600160a01b03811681146109a057600080fd5b919050565b6000602082840312156109b757600080fd5b61071482610989565b600080604083850312156109d357600080fd5b6109dc83610989565b91506109ea60208401610989565b90509250929050565b600080600060608486031215610a0857600080fd5b610a1184610989565b9250610a1f60208501610989565b9150604084013590509250925092565b60008060408385031215610a4257600080fd5b610a4b83610989565b946020939093013593505050565b600060208284031215610a6b57600080fd5b5035919050565b600060208083528351808285015260005b81811015610a9f57858101830151858201604001528201610a83565b81811115610ab1576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526039908201527f546869732061646472657373206973206e6f7420616c6c6f77656420746f206960408201527f6e74657261637420776974682074686520636f6e747261637400000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610b6c57610b6c610bc3565b500190565b600082821015610b8357610b83610bc3565b500390565b600181811c90821680610b9c57607f821691505b60208210811415610bbd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220ebdc7d445a49314e17316cd947d77320a254fa097e4f08b52a384ca6a9f55a9864736f6c63430008070033
Deployed Bytecode Sourcemap
618:4158:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1546:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2348:150;;;;;;:::i;:::-;;:::i;:::-;;;1798:14:4;;1791:22;1773:41;;1761:2;1746:18;2348:150:1;1633:187:4;1811:89:1;1881:12;;1811:89;;;4117:25:4;;;4105:2;4090:18;1811:89:1;3971:177:4;2504:333:1;;;;;;:::i;:::-;;:::i;1332:99::-;;;;;;:::i;:::-;;:::i;:::-;;1724:81;1789:9;;1724:81;;1789:9;;;;4295:36:4;;4283:2;4268:18;1724:81:1;4153:184:4;917:25:1;;;;;;3234:225;;;;;;:::i;:::-;;:::i;4104:81::-;;;;;;:::i;:::-;;:::i;1906:108::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1989:18:1;1963:7;1989:18;;;:9;:18;;;;;;;1906:108;2226:145:2;;;:::i;1594:85::-;1640:7;1666:6;1594:85;;-1:-1:-1;;;;;1666:6:2;;;1571:51:4;;1559:2;1544:18;1594:85:2;1425:203:4;1633:85:1;;;:::i;3867:231::-;;;;;;:::i;:::-;;:::i;2020:156::-;;;;;;:::i;:::-;;:::i;1437:103::-;;;;;;:::i;:::-;;:::i;2182:160::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2308:18:1;;;2278:7;2308:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2182:160;2520:274:2;;;;;;:::i;:::-;;:::i;949:40:1:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1546:81;1583:13;1615:5;1608:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1546:81;:::o;2348:150::-;2414:4;2430:39;1176:10:0;2453:7:1;2462:6;2430:8;:39::i;:::-;-1:-1:-1;2487:4:1;2348:150;;;;:::o;2504:333::-;-1:-1:-1;;;;;2707:19:1;;2623:4;2707:19;;;:11;:19;;;;;;;;1176:10:0;2707:33:1;;;;;;;;2639:123;;2661:6;;2707:45;;2745:6;2707:37;:45::i;:::-;2639:8;:123::i;:::-;2772:36;2782:6;2790:9;2801:6;2772:9;:36::i;:::-;-1:-1:-1;2826:4:1;2504:333;;;;;:::o;1332:99::-;1640:7:2;1666:6;-1:-1:-1;;;;;1666:6:2;1176:10:0;1806:23:2;1798:68;;;;-1:-1:-1;;;1798:68:2;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1399:18:1::1;;::::0;;;:8:::1;:18;::::0;;;;:25;;-1:-1:-1;;1399:25:1::1;1420:4;1399:25;::::0;;1332:99::o;3234:225::-;3323:10;3314:20;;;;:8;:20;;;;;;;;:28;;:20;:28;3293:132;;;;-1:-1:-1;;;3293:132:1;;;;;;;:::i;:::-;3435:17;3441:2;3445:6;3435:5;:17::i;:::-;3234:225;;:::o;4104:81::-;4153:25;4159:10;4171:6;4153:5;:25::i;:::-;4104:81;:::o;2226:145:2:-;1640:7;1666:6;-1:-1:-1;;;;;1666:6:2;1176:10:0;1806:23:2;1798:68;;;;-1:-1:-1;;;1798:68:2;;;;;;;:::i;:::-;2332:1:::1;2316:6:::0;;2295:40:::1;::::0;-1:-1:-1;;;;;2316:6:2;;::::1;::::0;2295:40:::1;::::0;2332:1;;2295:40:::1;2362:1;2345:19:::0;;-1:-1:-1;;;;;;2345:19:2::1;::::0;;2226:145::o;1633:85:1:-;1672:13;1704:7;1697:14;;;;;:::i;3867:231::-;3960:10;3951:20;;;;:8;:20;;;;;;;;:28;;:20;:28;3930:132;;;;-1:-1:-1;;;3930:132:1;;;;;;;:::i;:::-;4072:19;4078:4;4084:6;4072:5;:19::i;2020:156::-;2089:4;2105:42;1176:10:0;2129:9:1;2140:6;2105:9;:42::i;1437:103::-;1640:7:2;1666:6;-1:-1:-1;;;;;1666:6:2;1176:10:0;1806:23:2;1798:68;;;;-1:-1:-1;;;1798:68:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;1507:18:1::1;1528:5;1507:18:::0;;;:8:::1;:18;::::0;;;;:26;;-1:-1:-1;;1507:26:1::1;::::0;;1437:103::o;2520:274:2:-;1640:7;1666:6;-1:-1:-1;;;;;1666:6:2;1176:10:0;1806:23:2;1798:68;;;;-1:-1:-1;;;1798:68:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;2621:22:2;::::1;2600:107;;;::::0;-1:-1:-1;;;2600:107:2;;2629:2:4;2600:107:2::1;::::0;::::1;2611:21:4::0;2668:2;2648:18;;;2641:30;2707:34;2687:18;;;2680:62;-1:-1:-1;;;2758:18:4;;;2751:36;2804:19;;2600:107:2::1;2427:402:4::0;2600:107:2::1;2743:6;::::0;;2722:38:::1;::::0;-1:-1:-1;;;;;2722:38:2;;::::1;::::0;2743:6;::::1;::::0;2722:38:::1;::::0;::::1;2770:6;:17:::0;;-1:-1:-1;;;;;;2770:17:2::1;-1:-1:-1::0;;;;;2770:17:2;;;::::1;::::0;;;::::1;::::0;;2520:274::o;4477:297:1:-;-1:-1:-1;;;;;4608:21:1;;4600:30;;;;;;-1:-1:-1;;;;;4648:23:1;;4640:32;;;;;;-1:-1:-1;;;;;4683:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4735:32;;4117:25:4;;;4735:32:1;;4090:18:4;4735:32:1;;;;;;;;4477:297;;;:::o;3699:96:3:-;3757:7;3783:5;3787:1;3783;:5;:::i;:::-;3776:12;3699:96;-1:-1:-1;;;3699:96:3:o;2843:385:1:-;-1:-1:-1;;;;;2978:22:1;;2970:31;;;;;;-1:-1:-1;;;;;3019:25:1;;3011:34;;;;;;-1:-1:-1;;;;;3076:17:1;;;;;;:9;:17;;;;;;:29;;3098:6;3076:21;:29::i;:::-;-1:-1:-1;;;;;3056:17:1;;;;;;;:9;:17;;;;;;:49;;;;3138:20;;;;;;;:32;;3163:6;3138:24;:32::i;:::-;-1:-1:-1;;;;;3115:20:1;;;;;;;:9;:20;;;;;;;:55;;;;3186:35;;;;;;;;;;3214:6;4117:25:4;;4105:2;4090:18;;3971:177;3465:396:1;-1:-1:-1;;;;;3548:23:1;;3540:32;;;;;;3617:12;;:24;;3634:6;3617:16;:24::i;:::-;3603:10;;:38;;3582:106;;;;-1:-1:-1;;;3582:106:1;;3823:2:4;3582:106:1;;;3805:21:4;3862:2;3842:18;;;3835:30;-1:-1:-1;;;3881:18:4;;;3874:51;3942:18;;3582:106:1;3621:345:4;3582:106:1;3714:12;;:24;;3731:6;3714:16;:24::i;:::-;3699:12;:39;-1:-1:-1;;;;;3769:18:1;;;;;;:9;:18;;;;;;:30;;3792:6;3769:22;:30::i;:::-;-1:-1:-1;;;;;3748:18:1;;;;;;:9;:18;;;;;;:51;;;;3815:39;;3748:18;;;3815:39;;;;3847:6;4117:25:4;;4105:2;4090:18;;3971:177;3815:39:1;;;;;;;;3465:396;;:::o;4191:280::-;-1:-1:-1;;;;;4274:23:1;;4266:32;;;;;;-1:-1:-1;;;;;4330:18:1;;;;;;:9;:18;;;;;;:30;;4353:6;4330:22;:30::i;:::-;-1:-1:-1;;;;;4309:18:1;;;;;;:9;:18;;;;;:51;4385:12;;:24;;4402:6;4385:16;:24::i;:::-;4370:12;:39;4425;;4117:25:4;;;4451:3:1;;-1:-1:-1;;;;;4425:39:1;;;;;4105:2:4;4090:18;4425:39:1;3971:177:4;3332:96:3;3390:7;3416:5;3420:1;3416;:5;:::i;14:173:4:-;82:20;;-1:-1:-1;;;;;131:31:4;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;383:260;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:52;;;810:1;807;800:12;762:52;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;648:328;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:52;;;1126:1;1123;1116:12;1078:52;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;981:254:4:o;1240:180::-;1299:6;1352:2;1340:9;1331:7;1327:23;1323:32;1320:52;;;1368:1;1365;1358:12;1320:52;-1:-1:-1;1391:23:4;;1240:180;-1:-1:-1;1240:180:4:o;1825:597::-;1937:4;1966:2;1995;1984:9;1977:21;2027:6;2021:13;2070:6;2065:2;2054:9;2050:18;2043:34;2095:1;2105:140;2119:6;2116:1;2113:13;2105:140;;;2214:14;;;2210:23;;2204:30;2180:17;;;2199:2;2176:26;2169:66;2134:10;;2105:140;;;2263:6;2260:1;2257:13;2254:91;;;2333:1;2328:2;2319:6;2308:9;2304:22;2300:31;2293:42;2254:91;-1:-1:-1;2406:2:4;2385:15;-1:-1:-1;;2381:29:4;2366:45;;;;2413:2;2362:54;;1825:597;-1:-1:-1;;;1825:597:4:o;2834:421::-;3036:2;3018:21;;;3075:2;3055:18;;;3048:30;3114:34;3109:2;3094:18;;3087:62;3185:27;3180:2;3165:18;;3158:55;3245:3;3230:19;;2834:421::o;3260:356::-;3462:2;3444:21;;;3481:18;;;3474:30;3540:34;3535:2;3520:18;;3513:62;3607:2;3592:18;;3260:356::o;4342:128::-;4382:3;4413:1;4409:6;4406:1;4403:13;4400:39;;;4419:18;;:::i;:::-;-1:-1:-1;4455:9:4;;4342:128::o;4475:125::-;4515:4;4543:1;4540;4537:8;4534:34;;;4548:18;;:::i;:::-;-1:-1:-1;4585:9:4;;4475:125::o;4605:380::-;4684:1;4680:12;;;;4727;;;4748:61;;4802:4;4794:6;4790:17;4780:27;;4748:61;4855:2;4847:6;4844:14;4824:18;4821:38;4818:161;;;4901:10;4896:3;4892:20;4889:1;4882:31;4936:4;4933:1;4926:15;4964:4;4961:1;4954:15;4818:161;;4605:380;;;:::o;4990:127::-;5051:10;5046:3;5042:20;5039:1;5032:31;5082:4;5079:1;5072:15;5106:4;5103:1;5096:15
Swarm Source
ipfs://ebdc7d445a49314e17316cd947d77320a254fa097e4f08b52a384ca6a9f55a98
Loading...
Loading
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.