Overview
Max Total Supply
100,000,000 HND
Holders
699
Market
Price
$0.0219 @ 0.000006 ETH (+10.60%)
Onchain Market Cap
$2,190,026.00
Circulating Supply Market Cap
$678,505.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
11.02564469976223493 HNDValue
$0.24 ( ~6.31211649603145E-05 ETH) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Hundred
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.7; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function permit(address target, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; function transferWithPermit(address target, address to, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Interface of the ERC2612 standard as defined in the EIP. * * Adds the {permit} method, which can be used to change one's * {IERC20-allowance} without having to send a transaction, by signing a * message. This allows users to spend tokens without having to hold Ether. * * See https://eips.ethereum.org/EIPS/eip-2612. */ interface IERC2612 { /** * @dev Returns the current ERC2612 nonce for `owner`. This value must be * included whenever a signature is generated for {permit}. * * Every successful call to {permit} increases ``owner``'s nonce by one. This * prevents a signature from being used multiple times. */ function nonces(address owner) external view returns (uint256); } /// @dev Wrapped ERC-20 v10 (AnyswapV3ERC20) is an ERC-20 ERC-20 wrapper. You can `deposit` ERC-20 and obtain an AnyswapV3ERC20 balance which can then be operated as an ERC-20 token. You can /// `withdraw` ERC-20 from AnyswapV3ERC20, which will then burn AnyswapV3ERC20 token in your wallet. The amount of AnyswapV3ERC20 token in any wallet is always identical to the /// balance of ERC-20 deposited minus the ERC-20 withdrawn with that specific wallet. interface IAnyswapV3ERC20 is IERC20, IERC2612 { /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV3ERC20 token, /// after which a call is executed to an ERC677-compliant contract with the `data` parameter. /// Emits {Approval} event. /// Returns boolean value indicating whether operation succeeded. /// For more information on approveAndCall format, see https://github.com/ethereum/EIPs/issues/677. function approveAndCall(address spender, uint256 value, bytes calldata data) external returns (bool); /// @dev Moves `value` AnyswapV3ERC20 token from caller's account to account (`to`), /// after which a call is executed to an ERC677-compliant contract with the `data` parameter. /// A transfer to `address(0)` triggers an ERC-20 withdraw matching the sent AnyswapV3ERC20 token in favor of caller. /// Emits {Transfer} event. /// Returns boolean value indicating whether operation succeeded. /// Requirements: /// - caller account must have at least `value` AnyswapV3ERC20 token. /// For more information on transferAndCall format, see https://github.com/ethereum/EIPs/issues/677. function transferAndCall(address to, uint value, bytes calldata data) external returns (bool); } interface ITransferReceiver { function onTokenTransfer(address, uint, bytes calldata) external returns (bool); } interface IApprovalReceiver { function onTokenApproval(address, uint, bytes calldata) external returns (bool); } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } } library SafeERC20 { using Address for address; function safeTransfer(IERC20 token, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } contract AnyswapV5ERC20 is IAnyswapV3ERC20 { using SafeERC20 for IERC20; string public name; string public symbol; uint8 public immutable override decimals; address public immutable underlying; bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant TRANSFER_TYPEHASH = keccak256("Transfer(address owner,address to,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public immutable DOMAIN_SEPARATOR; /// @dev Records amount of AnyswapV3ERC20 token owned by account. mapping (address => uint256) public override balanceOf; uint256 private _totalSupply; // init flag for setting immediate vault, needed for CREATE2 support bool private _init; // flag to enable/disable swapout vs vault.burn so multiple events are triggered bool private _vaultOnly; // configurable delay for timelock functions uint public delay = 2*24*3600; // set of minters, can be this bridge or other bridges mapping(address => bool) public isMinter; address[] public minters; // primary controller of the token contract address public vault; address public pendingMinter; uint public delayMinter; address public pendingVault; uint public delayVault; uint public pendingDelay; uint public delayDelay; modifier onlyAuth() { require(isMinter[msg.sender], "AnyswapV4ERC20: FORBIDDEN"); _; } modifier onlyVault() { require(msg.sender == mpc(), "AnyswapV3ERC20: FORBIDDEN"); _; } function owner() public view returns (address) { return mpc(); } function mpc() public view returns (address) { if (block.timestamp >= delayVault) { return pendingVault; } return vault; } function setVaultOnly(bool enabled) external onlyVault { _vaultOnly = enabled; } function initVault(address _vault) external onlyVault { require(_init); vault = _vault; pendingVault = _vault; isMinter[_vault] = true; minters.push(_vault); delayVault = block.timestamp; _init = false; } function setMinter(address _auth) external onlyVault { pendingMinter = _auth; delayMinter = block.timestamp + delay; } function setVault(address _vault) external onlyVault { pendingVault = _vault; delayVault = block.timestamp + delay; } function applyVault() external onlyVault { require(block.timestamp >= delayVault); vault = pendingVault; } function applyMinter() external onlyVault { require(block.timestamp >= delayMinter); isMinter[pendingMinter] = true; minters.push(pendingMinter); } // No time delay revoke minter emergency function function revokeMinter(address _auth) external onlyVault { isMinter[_auth] = false; } function getAllMinters() external view returns (address[] memory) { return minters; } function changeVault(address newVault) external onlyVault returns (bool) { require(newVault != address(0), "AnyswapV3ERC20: address(0x0)"); pendingVault = newVault; delayVault = block.timestamp + delay; emit LogChangeVault(vault, pendingVault, delayVault); return true; } function changeMPCOwner(address newVault) public onlyVault returns (bool) { require(newVault != address(0), "AnyswapV3ERC20: address(0x0)"); pendingVault = newVault; delayVault = block.timestamp + delay; emit LogChangeMPCOwner(vault, pendingVault, delayVault); return true; } function mint(address to, uint256 amount) external onlyAuth returns (bool) { _mint(to, amount); return true; } function burn(address from, uint256 amount) external onlyAuth returns (bool) { require(from != address(0), "AnyswapV3ERC20: address(0x0)"); _burn(from, amount); return true; } function Swapin(bytes32 txhash, address account, uint256 amount) public onlyAuth returns (bool) { _mint(account, amount); emit LogSwapin(txhash, account, amount); return true; } function Swapout(uint256 amount, address bindaddr) public returns (bool) { require(!_vaultOnly, "AnyswapV4ERC20: onlyAuth"); require(bindaddr != address(0), "AnyswapV3ERC20: address(0x0)"); _burn(msg.sender, amount); emit LogSwapout(msg.sender, bindaddr, amount); return true; } /// @dev Records current ERC2612 nonce for account. This value must be included whenever signature is generated for {permit}. /// Every successful call to {permit} increases account's nonce by one. This prevents signature from being used multiple times. mapping (address => uint256) public override nonces; /// @dev Records number of AnyswapV3ERC20 token that account (second) will be allowed to spend on behalf of another account (first) through {transferFrom}. mapping (address => mapping (address => uint256)) public override allowance; event LogChangeVault(address indexed oldVault, address indexed newVault, uint indexed effectiveTime); event LogChangeMPCOwner(address indexed oldOwner, address indexed newOwner, uint indexed effectiveHeight); event LogSwapin(bytes32 indexed txhash, address indexed account, uint amount); event LogSwapout(address indexed account, address indexed bindaddr, uint amount); event LogAddAuth(address indexed auth, uint timestamp); constructor(string memory _name, string memory _symbol, uint8 _decimals, address _underlying, address _vault) { name = _name; symbol = _symbol; decimals = _decimals; underlying = _underlying; if (_underlying != address(0x0)) { require(_decimals == IERC20(_underlying).decimals()); } // Use init to allow for CREATE2 accross all chains _init = true; // Disable/Enable swapout for v1 tokens vs mint/burn for v3 tokens _vaultOnly = false; vault = _vault; pendingVault = _vault; delayVault = block.timestamp; uint256 chainId; assembly {chainId := chainid()} DOMAIN_SEPARATOR = keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(name)), keccak256(bytes("1")), chainId, address(this))); } /// @dev Returns the total supply of AnyswapV3ERC20 token as the ETH held in this contract. function totalSupply() external view override returns (uint256) { return _totalSupply; } function depositWithPermit(address target, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s, address to) external returns (uint) { IERC20(underlying).permit(target, address(this), value, deadline, v, r, s); IERC20(underlying).safeTransferFrom(target, address(this), value); return _deposit(value, to); } function depositWithTransferPermit(address target, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s, address to) external returns (uint) { IERC20(underlying).transferWithPermit(target, address(this), value, deadline, v, r, s); return _deposit(value, to); } function deposit() external returns (uint) { uint _amount = IERC20(underlying).balanceOf(msg.sender); IERC20(underlying).safeTransferFrom(msg.sender, address(this), _amount); return _deposit(_amount, msg.sender); } function deposit(uint amount) external returns (uint) { IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount); return _deposit(amount, msg.sender); } function deposit(uint amount, address to) external returns (uint) { IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount); return _deposit(amount, to); } function depositVault(uint amount, address to) external onlyVault returns (uint) { return _deposit(amount, to); } function _deposit(uint amount, address to) internal returns (uint) { require(underlying != address(0x0) && underlying != address(this)); _mint(to, amount); return amount; } function withdraw() external returns (uint) { return _withdraw(msg.sender, balanceOf[msg.sender], msg.sender); } function withdraw(uint amount) external returns (uint) { return _withdraw(msg.sender, amount, msg.sender); } function withdraw(uint amount, address to) external returns (uint) { return _withdraw(msg.sender, amount, to); } function withdrawVault(address from, uint amount, address to) external onlyVault returns (uint) { return _withdraw(from, amount, to); } function _withdraw(address from, uint amount, address to) internal returns (uint) { _burn(from, amount); IERC20(underlying).safeTransfer(to, amount); return amount; } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; balanceOf[account] += amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal { require(account != address(0), "ERC20: burn from the zero address"); balanceOf[account] -= amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV3ERC20 token. /// Emits {Approval} event. /// Returns boolean value indicating whether operation succeeded. function approve(address spender, uint256 value) external override returns (bool) { // _approve(msg.sender, spender, value); allowance[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV3ERC20 token, /// after which a call is executed to an ERC677-compliant contract with the `data` parameter. /// Emits {Approval} event. /// Returns boolean value indicating whether operation succeeded. /// For more information on approveAndCall format, see https://github.com/ethereum/EIPs/issues/677. function approveAndCall(address spender, uint256 value, bytes calldata data) external override returns (bool) { // _approve(msg.sender, spender, value); allowance[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return IApprovalReceiver(spender).onTokenApproval(msg.sender, value, data); } /// @dev Sets `value` as allowance of `spender` account over `owner` account's AnyswapV3ERC20 token, given `owner` account's signed approval. /// Emits {Approval} event. /// Requirements: /// - `deadline` must be timestamp in future. /// - `v`, `r` and `s` must be valid `secp256k1` signature from `owner` account over EIP712-formatted function arguments. /// - the signature must use `owner` account's current nonce (see {nonces}). /// - the signer cannot be zero address and must be `owner` account. /// For more information on signature format, see https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. /// AnyswapV3ERC20 token implementation adapted from https://github.com/albertocuestacanada/ERC20Permit/blob/master/contracts/ERC20Permit.sol. function permit(address target, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external override { require(block.timestamp <= deadline, "AnyswapV3ERC20: Expired permit"); bytes32 hashStruct = keccak256( abi.encode( PERMIT_TYPEHASH, target, spender, value, nonces[target]++, deadline)); require(verifyEIP712(target, hashStruct, v, r, s) || verifyPersonalSign(target, hashStruct, v, r, s)); // _approve(owner, spender, value); allowance[target][spender] = value; emit Approval(target, spender, value); } function transferWithPermit(address target, address to, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external override returns (bool) { require(block.timestamp <= deadline, "AnyswapV3ERC20: Expired permit"); bytes32 hashStruct = keccak256( abi.encode( TRANSFER_TYPEHASH, target, to, value, nonces[target]++, deadline)); require(verifyEIP712(target, hashStruct, v, r, s) || verifyPersonalSign(target, hashStruct, v, r, s)); require(to != address(0) || to != address(this)); uint256 balance = balanceOf[target]; require(balance >= value, "AnyswapV3ERC20: transfer amount exceeds balance"); balanceOf[target] = balance - value; balanceOf[to] += value; emit Transfer(target, to, value); return true; } function verifyEIP712(address target, bytes32 hashStruct, uint8 v, bytes32 r, bytes32 s) internal view returns (bool) { bytes32 hash = keccak256( abi.encodePacked( "\x19\x01", DOMAIN_SEPARATOR, hashStruct)); address signer = ecrecover(hash, v, r, s); return (signer != address(0) && signer == target); } function verifyPersonalSign(address target, bytes32 hashStruct, uint8 v, bytes32 r, bytes32 s) internal view returns (bool) { bytes32 hash = prefixed(hashStruct); address signer = ecrecover(hash, v, r, s); return (signer != address(0) && signer == target); } // Builds a prefixed hash to mimic the behavior of eth_sign. function prefixed(bytes32 hash) internal view returns (bytes32) { return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", DOMAIN_SEPARATOR, hash)); } /// @dev Moves `value` AnyswapV3ERC20 token from caller's account to account (`to`). /// A transfer to `address(0)` triggers an ETH withdraw matching the sent AnyswapV3ERC20 token in favor of caller. /// Emits {Transfer} event. /// Returns boolean value indicating whether operation succeeded. /// Requirements: /// - caller account must have at least `value` AnyswapV3ERC20 token. function transfer(address to, uint256 value) external override returns (bool) { require(to != address(0) || to != address(this)); uint256 balance = balanceOf[msg.sender]; require(balance >= value, "AnyswapV3ERC20: transfer amount exceeds balance"); balanceOf[msg.sender] = balance - value; balanceOf[to] += value; emit Transfer(msg.sender, to, value); return true; } /// @dev Moves `value` AnyswapV3ERC20 token from account (`from`) to account (`to`) using allowance mechanism. /// `value` is then deducted from caller account's allowance, unless set to `type(uint256).max`. /// A transfer to `address(0)` triggers an ETH withdraw matching the sent AnyswapV3ERC20 token in favor of caller. /// Emits {Approval} event to reflect reduced allowance `value` for caller account to spend from account (`from`), /// unless allowance is set to `type(uint256).max` /// Emits {Transfer} event. /// Returns boolean value indicating whether operation succeeded. /// Requirements: /// - `from` account must have at least `value` balance of AnyswapV3ERC20 token. /// - `from` account must have approved caller to spend at least `value` of AnyswapV3ERC20 token, unless `from` and caller are the same account. function transferFrom(address from, address to, uint256 value) external override returns (bool) { require(to != address(0) || to != address(this)); if (from != msg.sender) { // _decreaseAllowance(from, msg.sender, value); uint256 allowed = allowance[from][msg.sender]; if (allowed != type(uint256).max) { require(allowed >= value, "AnyswapV3ERC20: request exceeds allowance"); uint256 reduced = allowed - value; allowance[from][msg.sender] = reduced; emit Approval(from, msg.sender, reduced); } } uint256 balance = balanceOf[from]; require(balance >= value, "AnyswapV3ERC20: transfer amount exceeds balance"); balanceOf[from] = balance - value; balanceOf[to] += value; emit Transfer(from, to, value); return true; } /// @dev Moves `value` AnyswapV3ERC20 token from caller's account to account (`to`), /// after which a call is executed to an ERC677-compliant contract with the `data` parameter. /// A transfer to `address(0)` triggers an ETH withdraw matching the sent AnyswapV3ERC20 token in favor of caller. /// Emits {Transfer} event. /// Returns boolean value indicating whether operation succeeded. /// Requirements: /// - caller account must have at least `value` AnyswapV3ERC20 token. /// For more information on transferAndCall format, see https://github.com/ethereum/EIPs/issues/677. function transferAndCall(address to, uint value, bytes calldata data) external override returns (bool) { require(to != address(0) || to != address(this)); uint256 balance = balanceOf[msg.sender]; require(balance >= value, "AnyswapV3ERC20: transfer amount exceeds balance"); balanceOf[msg.sender] = balance - value; balanceOf[to] += value; emit Transfer(msg.sender, to, value); return ITransferReceiver(to).onTokenTransfer(msg.sender, value, data); } function rescueERC20(address token, uint tokenAmount) external onlyVault { IERC20(token).transfer(vault, tokenAmount); } } contract Hundred is AnyswapV5ERC20 { constructor(address ownerAddress) AnyswapV5ERC20("Hundred Finance", "HND", 18, address(0x0), ownerAddress) { _mint(ownerAddress, 100e24); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"ownerAddress","type":"address"}],"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":"auth","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"LogAddAuth","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveHeight","type":"uint256"}],"name":"LogChangeMPCOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"LogChangeVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"bindaddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapout","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":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bindaddr","type":"address"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TRANSFER_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applyMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applyVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeMPCOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayMinter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"depositVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"address","name":"to","type":"address"}],"name":"depositWithPermit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"address","name":"to","type":"address"}],"name":"depositWithTransferPermit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllMinters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"initVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","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":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"minters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mpc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"revokeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setVaultOnly","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":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"transferWithPermit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e06040526202a3006005553480156200001857600080fd5b50604051620030b1380380620030b18339810160408190526200003b9162000430565b6040518060400160405280600f81526020016e48756e647265642046696e616e636560881b8152506040518060400160405280600381526020016212139160ea1b815250601260008484600090805190602001906200009c9291906200038a565b508351620000b29060019060208701906200038a565b507fff0000000000000000000000000000000000000000000000000000000000000060f884901b166080526001600160601b0319606083901b1660a0526001600160a01b038216156200018657816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200013957600080fd5b505afa1580156200014e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000174919062000462565b60ff168360ff16146200018657600080fd5b6004805461ffff19166001179055600880546001600160a01b0383166001600160a01b03199182168117909255600b8054909116909117905542600c5560405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620001f89060009062000487565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c0016040516020818303038152906040528051906020012060c081815250505050505050506200029b816a52b7d2dcc80cd2e4000000620002a260201b60201c565b506200058f565b6001600160a01b038216620002fd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600360008282546200031191906200052b565b90915550506001600160a01b03821660009081526002602052604081208054839290620003409084906200052b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620003989062000552565b90600052602060002090601f016020900481019282620003bc576000855562000407565b82601f10620003d757805160ff191683800117855562000407565b8280016001018555821562000407579182015b8281111562000407578251825591602001919060010190620003ea565b506200041592915062000419565b5090565b5b808211156200041557600081556001016200041a565b6000602082840312156200044357600080fd5b81516001600160a01b03811681146200045b57600080fd5b9392505050565b6000602082840312156200047557600080fd5b815160ff811681146200045b57600080fd5b600080835481600182811c915080831680620004a457607f831692505b6020808410821415620004c557634e487b7160e01b86526022600452602486fd5b818015620004dc5760018114620004ee576200051d565b60ff198616895284890196506200051d565b60008a81526020902060005b86811015620005155781548b820152908501908301620004fa565b505084890196505b509498975050505050505050565b600082198211156200054d57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200056757607f821691505b602082108114156200058957634e487b7160e01b600052602260045260246000fd5b50919050565b60805160f81c60a05160601c60c051612a9862000619600039600081816104a701528181611ec10152611fd30152600081816105ab01528181611378015281816113c4015281816114440152818161172e01528181611943015281816119cc01528181611c9701528181611db4015281816121a301526121d60152600061046e0152612a986000f3fe608060405234801561001057600080fd5b506004361061035a5760003560e01c80637ecebe00116101d3578063bebbf4d011610104578063d93f2445116100a2578063f75c26641161007c578063f75c2664146107a2578063f954734e146107aa578063fbfa77cf146107bd578063fca3b5aa146107d057600080fd5b8063d93f24451461075c578063dd62ed3e14610764578063ec126c771461078f57600080fd5b8063cae9ca51116100de578063cae9ca511461071b578063cfbd48851461072e578063d0e30db014610741578063d505accf1461074957600080fd5b8063bebbf4d0146106ec578063c3081240146106ff578063c4b740f51461070857600080fd5b806395d89b4111610171578063a29dff721161014b578063a29dff721461069a578063a9059cbb146106a3578063aa271e1a146106b6578063b6b55f25146106d957600080fd5b806395d89b411461066a5780639dc29fac14610672578063a045442c1461068557600080fd5b806387689e28116101ad57806387689e28146106335780638cd4426d1461063c5780638da5cb5b1461064f57806391c5df491461065757600080fd5b80637ecebe00146105ed57806381a37c181461060d5780638623ec7b1461062057600080fd5b80633ccfd60b116102ad57806360e232a91161024b5780636a42b8f8116102255780636a42b8f81461058a5780636e553f65146105935780636f307dc3146105a657806370a08231146105cd57600080fd5b806360e232a914610551578063628d6cba146105645780636817031b1461057757600080fd5b80634ca8f0ed116102875780634ca8f0ed146104f757806352113ba7146105005780635f9b105d1461052b578063605629d61461053e57600080fd5b80633ccfd60b146104c95780634000aea0146104d157806340c10f19146104e457600080fd5b806318160ddd1161031a5780632ebe3fbb116102f45780632ebe3fbb1461042f57806330adf81f14610442578063313ce567146104695780633644e515146104a257600080fd5b806318160ddd1461040157806323b872dd146104095780632e1a7d4d1461041c57600080fd5b806239d6ec1461035f578062bf26f414610385578062f714ce146103ac57806306fdde03146103bf578063095ea7b3146103d45780630d707df8146103f7575b600080fd5b61037261036d366004612550565b6107e3565b6040519081526020015b60405180910390f35b6103727f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd5981565b6103726103ba36600461270e565b610839565b6103c761084d565b60405161037c9190612823565b6103e76103e2366004612526565b6108db565b604051901515815260200161037c565b6103ff610935565b005b600354610372565b6103e7610417366004612480565b6109f1565b61037261042a3660046126dc565b610bdc565b6103ff61043d366004612432565b610bef565b6103727f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6104907f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161037c565b6103727f000000000000000000000000000000000000000000000000000000000000000081565b610372610cc6565b6103e76104df36600461258c565b610ce7565b6103e76104f2366004612526565b610e40565b610372600d5481565b600b54610513906001600160a01b031681565b6040516001600160a01b03909116815260200161037c565b6103e7610539366004612432565b610e82565b6103e761054c3660046124bc565b610f57565b6103e761055f366004612432565b611167565b6103e761057236600461270e565b61123b565b6103ff610585366004612432565b611303565b61037260055481565b6103726105a136600461270e565b611369565b6105137f000000000000000000000000000000000000000000000000000000000000000081565b6103726105db366004612432565b60026020526000908152604090205481565b6103726105fb366004612432565b600f6020526000908152604090205481565b61037261061b366004612613565b6113aa565b61051361062e3660046126dc565b611484565b610372600c5481565b6103ff61064a366004612526565b6114ae565b610513611571565b600954610513906001600160a01b031681565b6103c761157b565b6103e7610680366004612526565b611588565b61068d6115e7565b60405161037c91906127d6565b610372600e5481565b6103e76106b1366004612526565b611649565b6103e76106c4366004612432565b60066020526000908152604090205460ff1681565b6103726106e73660046126dc565b61171f565b6103726106fa36600461270e565b611760565b610372600a5481565b6103ff61071636600461267d565b61179a565b6103e761072936600461258c565b6117ec565b6103ff61073c366004612432565b6118c8565b610372611921565b6103ff6107573660046124bc565b611a04565b6103ff611b72565b61037261077236600461244d565b601060209081526000928352604080842090915290825290205481565b6103e761079d3660046126b7565b611bdd565b610513611c52565b6103726107b8366004612613565b611c7d565b600854610513906001600160a01b031681565b6103ff6107de366004612432565b611d35565b60006107ed611c52565b6001600160a01b0316336001600160a01b0316146108265760405162461bcd60e51b815260040161081d90612856565b60405180910390fd5b610831848484611d9b565b949350505050565b6000610846338484611d9b565b9392505050565b6000805461085a906129a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610886906129a5565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b505050505081565b3360008181526010602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020612a43833981519152906109249086815260200190565b60405180910390a350600192915050565b61093d611c52565b6001600160a01b0316336001600160a01b03161461096d5760405162461bcd60e51b815260040161081d90612856565b600a5442101561097c57600080fd5b600980546001600160a01b039081166000908152600660205260408120805460ff1916600190811790915592546007805494850181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890920180546001600160a01b03191692909116919091179055565b60006001600160a01b038316151580610a1357506001600160a01b0383163014155b610a1c57600080fd5b6001600160a01b0384163314610b16576001600160a01b03841660009081526010602090815260408083203384529091529020546000198114610b145782811015610abb5760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563345524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b606482015260840161081d565b6000610ac78483612962565b6001600160a01b03871660008181526010602090815260408083203380855290835292819020859055518481529394509092600080516020612a43833981519152910160405180910390a3505b505b6001600160a01b03841660009081526002602052604090205482811015610b4f5760405162461bcd60e51b815260040161081d906128c4565b610b598382612962565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610b8f90849061294a565b92505081905550836001600160a01b0316856001600160a01b0316600080516020612a2383398151915285604051610bc991815260200190565b60405180910390a3506001949350505050565b6000610be9338333611d9b565b92915050565b610bf7611c52565b6001600160a01b0316336001600160a01b031614610c275760405162461bcd60e51b815260040161081d90612856565b60045460ff16610c3657600080fd5b600880546001600160a01b039092166001600160a01b03199283168117909155600b80548316821790556000818152600660205260408120805460ff1990811660019081179092556007805492830181559092527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805490931690911790915542600c55600480549091169055565b336000818152600260205260408120549091610ce29181611d9b565b905090565b60006001600160a01b038516151580610d0957506001600160a01b0385163014155b610d1257600080fd5b3360009081526002602052604090205484811015610d425760405162461bcd60e51b815260040161081d906128c4565b610d4c8582612962565b33600090815260026020526040808220929092556001600160a01b03881681529081208054879290610d7f90849061294a565b90915550506040518581526001600160a01b038716903390600080516020612a238339815191529060200160405180910390a3604051635260769b60e11b81526001600160a01b0387169063a4c0ed3690610de490339089908990899060040161278e565b602060405180830381600087803b158015610dfe57600080fd5b505af1158015610e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e36919061269a565b9695505050505050565b3360009081526006602052604081205460ff16610e6f5760405162461bcd60e51b815260040161081d90612913565b610e798383611de3565b50600192915050565b6000610e8c611c52565b6001600160a01b0316336001600160a01b031614610ebc5760405162461bcd60e51b815260040161081d90612856565b6001600160a01b038216610ee25760405162461bcd60e51b815260040161081d9061288d565b600b80546001600160a01b0319166001600160a01b038416179055600554610f0a904261294a565b600c819055600b546008546040516001600160a01b0392831692909116907f1d065115f314fb9bad9557bd5460b9e3c66f7223b1dd04e73e828f0bb5afe89f90600090a45060015b919050565b600084421115610fa95760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d69740000604482015260640161081d565b6001600160a01b0388166000908152600f6020526040812080547f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd59918b918b918b919086610ff6836129e0565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012090506110578982878787611eb1565b8061106a575061106a8982878787611fa1565b61107357600080fd5b6001600160a01b03881615158061109357506001600160a01b0388163014155b61109c57600080fd5b6001600160a01b038916600090815260026020526040902054878110156110d55760405162461bcd60e51b815260040161081d906128c4565b6110df8882612962565b6001600160a01b03808c1660009081526002602052604080822093909355908b16815290812080548a929061111590849061294a565b92505081905550886001600160a01b03168a6001600160a01b0316600080516020612a238339815191528a60405161114f91815260200190565b60405180910390a35060019998505050505050505050565b6000611171611c52565b6001600160a01b0316336001600160a01b0316146111a15760405162461bcd60e51b815260040161081d90612856565b6001600160a01b0382166111c75760405162461bcd60e51b815260040161081d9061288d565b600b80546001600160a01b0319166001600160a01b0384161790556005546111ef904261294a565b600c819055600b546008546040516001600160a01b0392831692909116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a4506001919050565b600454600090610100900460ff16156112965760405162461bcd60e51b815260206004820152601860248201527f416e7973776170563445524332303a206f6e6c79417574680000000000000000604482015260640161081d565b6001600160a01b0382166112bc5760405162461bcd60e51b815260040161081d9061288d565b6112c6338461205c565b6040518381526001600160a01b0383169033907f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c88890602001610924565b61130b611c52565b6001600160a01b0316336001600160a01b03161461133b5760405162461bcd60e51b815260040161081d90612856565b600b80546001600160a01b0319166001600160a01b038316179055600554611363904261294a565b600c5550565b60006113a06001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308661212e565b610846838361219f565b60405163d505accf60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf90611405908b9030908c908c908c908c908c9060040161274d565b600060405180830381600087803b15801561141f57600080fd5b505af1158015611433573d6000803e3d6000fd5b5061146e9250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905089308a61212e565b611478878361219f565b98975050505050505050565b6007818154811061149457600080fd5b6000918252602090912001546001600160a01b0316905081565b6114b6611c52565b6001600160a01b0316336001600160a01b0316146114e65760405162461bcd60e51b815260040161081d90612856565b60085460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156c919061269a565b505050565b6000610ce2611c52565b6001805461085a906129a5565b3360009081526006602052604081205460ff166115b75760405162461bcd60e51b815260040161081d90612913565b6001600160a01b0383166115dd5760405162461bcd60e51b815260040161081d9061288d565b610e79838361205c565b6060600780548060200260200160405190810160405280929190818152602001828054801561163f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611621575b5050505050905090565b60006001600160a01b03831615158061166b57506001600160a01b0383163014155b61167457600080fd5b33600090815260026020526040902054828110156116a45760405162461bcd60e51b815260040161081d906128c4565b6116ae8382612962565b33600090815260026020526040808220929092556001600160a01b038616815290812080548592906116e190849061294a565b90915550506040518381526001600160a01b038516903390600080516020612a23833981519152906020015b60405180910390a35060019392505050565b60006117566001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561212e565b610be9823361219f565b600061176a611c52565b6001600160a01b0316336001600160a01b0316146113a05760405162461bcd60e51b815260040161081d90612856565b6117a2611c52565b6001600160a01b0316336001600160a01b0316146117d25760405162461bcd60e51b815260040161081d90612856565b600480549115156101000261ff0019909216919091179055565b3360008181526010602090815260408083206001600160a01b03891680855292528083208790555191929091600080516020612a43833981519152906118359088815260200190565b60405180910390a360405162ba451f60e01b81526001600160a01b0386169062ba451f9061186d90339088908890889060040161278e565b602060405180830381600087803b15801561188757600080fd5b505af115801561189b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bf919061269a565b95945050505050565b6118d0611c52565b6001600160a01b0316336001600160a01b0316146119005760405162461bcd60e51b815260040161081d90612856565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561198557600080fd5b505afa158015611999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bd91906126f5565b90506119f46001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308461212e565b6119fe813361219f565b91505090565b83421115611a545760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d69740000604482015260640161081d565b6001600160a01b0387166000908152600f6020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a919086611aa1836129e0565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050611b028882868686611eb1565b80611b155750611b158882868686611fa1565b611b1e57600080fd5b6001600160a01b038881166000818152601060209081526040808320948c16808452948252918290208a90559051898152600080516020612a43833981519152910160405180910390a35050505050505050565b611b7a611c52565b6001600160a01b0316336001600160a01b031614611baa5760405162461bcd60e51b815260040161081d90612856565b600c54421015611bb957600080fd5b600b54600880546001600160a01b0319166001600160a01b03909216919091179055565b3360009081526006602052604081205460ff16611c0c5760405162461bcd60e51b815260040161081d90612913565b611c168383611de3565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d618460405161170d91815260200190565b6000600c544210611c6d5750600b546001600160a01b031690565b506008546001600160a01b031690565b60405163302b14eb60e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063605629d690611cd8908b9030908c908c908c908c908c9060040161274d565b602060405180830381600087803b158015611cf257600080fd5b505af1158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a919061269a565b50611478878361219f565b611d3d611c52565b6001600160a01b0316336001600160a01b031614611d6d5760405162461bcd60e51b815260040161081d90612856565b600980546001600160a01b0319166001600160a01b038316179055600554611d95904261294a565b600a5550565b6000611da7848461205c565b611ddb6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016838561221c565b509092915050565b6001600160a01b038216611e395760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161081d565b8060036000828254611e4b919061294a565b90915550506001600160a01b03821660009081526002602052604081208054839290611e7890849061294a565b90915550506040518181526001600160a01b03831690600090600080516020612a23833981519152906020015b60405180910390a35050565b60405161190160f01b60208201527f0000000000000000000000000000000000000000000000000000000000000000602282015260428101859052600090819060620160408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0015b6020604051602081039080840390855afa158015611f60573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906114785750876001600160a01b0316816001600160a01b03161498975050505050505050565b600080612021866040517f19457468657265756d205369676e6564204d6573736167653a0a33320000000060208201527f0000000000000000000000000000000000000000000000000000000000000000603c820152605c8101829052600090607c01604051602081830303815290604052805190602001209050919050565b6040805160008082526020820180845284905260ff89169282019290925260608101879052608081018690529192509060019060a001611f3e565b6001600160a01b0382166120bc5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161081d565b6001600160a01b038216600090815260026020526040812080548392906120e4908490612962565b9250508190555080600360008282546120fd9190612962565b90915550506040518181526000906001600160a01b03841690600080516020612a2383398151915290602001611ea5565b6040516001600160a01b03808516602483015283166044820152606481018290526121999085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261224c565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061220257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61220b57600080fd5b6122158284611de3565b5090919050565b6040516001600160a01b03831660248201526044810182905261156c90849063a9059cbb60e01b90606401612162565b61225e826001600160a01b03166123d3565b6122aa5760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015260640161081d565b600080836001600160a01b0316836040516122c59190612731565b6000604051808303816000865af19150503d8060008114612302576040519150601f19603f3d011682016040523d82523d6000602084013e612307565b606091505b5091509150816123595760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015260640161081d565b8051156121995780806020019051810190612374919061269a565b6121995760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161081d565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906108315750141592915050565b80356001600160a01b0381168114610f5257600080fd5b803560ff81168114610f5257600080fd5b60006020828403121561244457600080fd5b6108468261240a565b6000806040838503121561246057600080fd5b6124698361240a565b91506124776020840161240a565b90509250929050565b60008060006060848603121561249557600080fd5b61249e8461240a565b92506124ac6020850161240a565b9150604084013590509250925092565b600080600080600080600060e0888a0312156124d757600080fd5b6124e08861240a565b96506124ee6020890161240a565b9550604088013594506060880135935061250a60808901612421565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561253957600080fd5b6125428361240a565b946020939093013593505050565b60008060006060848603121561256557600080fd5b61256e8461240a565b9250602084013591506125836040850161240a565b90509250925092565b600080600080606085870312156125a257600080fd5b6125ab8561240a565b935060208501359250604085013567ffffffffffffffff808211156125cf57600080fd5b818701915087601f8301126125e357600080fd5b8135818111156125f257600080fd5b88602082850101111561260457600080fd5b95989497505060200194505050565b600080600080600080600060e0888a03121561262e57600080fd5b6126378861240a565b9650602088013595506040880135945061265360608901612421565b93506080880135925060a0880135915061266f60c0890161240a565b905092959891949750929550565b60006020828403121561268f57600080fd5b813561084681612a11565b6000602082840312156126ac57600080fd5b815161084681612a11565b6000806000606084860312156126cc57600080fd5b833592506124ac6020850161240a565b6000602082840312156126ee57600080fd5b5035919050565b60006020828403121561270757600080fd5b5051919050565b6000806040838503121561272157600080fd5b823591506124776020840161240a565b60008251612743818460208701612979565b9190910192915050565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b6020808252825182820181905260009190848201906040850190845b818110156128175783516001600160a01b0316835292840192918401916001016127f2565b50909695505050505050565b6020815260008251806020840152612842816040850160208701612979565b601f01601f19169190910160400192915050565b60208082526019908201527f416e7973776170563345524332303a20464f5242494444454e00000000000000604082015260600190565b6020808252601c908201527f416e7973776170563345524332303a2061646472657373283078302900000000604082015260600190565b6020808252602f908201527f416e7973776170563345524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b60208082526019908201527f416e7973776170563445524332303a20464f5242494444454e00000000000000604082015260600190565b6000821982111561295d5761295d6129fb565b500190565b600082821015612974576129746129fb565b500390565b60005b8381101561299457818101518382015260200161297c565b838111156121995750506000910152565b600181811c908216806129b957607f821691505b602082108114156129da57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156129f4576129f46129fb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b8015158114612a1f57600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a264697066735822122063dbb12d256e1924222a5249b86d18293ce044face1a0615f02207047a68d64564736f6c634300080700330000000000000000000000001001009911e3fe1d5b45ff8efea7732c33a6c012
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061035a5760003560e01c80637ecebe00116101d3578063bebbf4d011610104578063d93f2445116100a2578063f75c26641161007c578063f75c2664146107a2578063f954734e146107aa578063fbfa77cf146107bd578063fca3b5aa146107d057600080fd5b8063d93f24451461075c578063dd62ed3e14610764578063ec126c771461078f57600080fd5b8063cae9ca51116100de578063cae9ca511461071b578063cfbd48851461072e578063d0e30db014610741578063d505accf1461074957600080fd5b8063bebbf4d0146106ec578063c3081240146106ff578063c4b740f51461070857600080fd5b806395d89b4111610171578063a29dff721161014b578063a29dff721461069a578063a9059cbb146106a3578063aa271e1a146106b6578063b6b55f25146106d957600080fd5b806395d89b411461066a5780639dc29fac14610672578063a045442c1461068557600080fd5b806387689e28116101ad57806387689e28146106335780638cd4426d1461063c5780638da5cb5b1461064f57806391c5df491461065757600080fd5b80637ecebe00146105ed57806381a37c181461060d5780638623ec7b1461062057600080fd5b80633ccfd60b116102ad57806360e232a91161024b5780636a42b8f8116102255780636a42b8f81461058a5780636e553f65146105935780636f307dc3146105a657806370a08231146105cd57600080fd5b806360e232a914610551578063628d6cba146105645780636817031b1461057757600080fd5b80634ca8f0ed116102875780634ca8f0ed146104f757806352113ba7146105005780635f9b105d1461052b578063605629d61461053e57600080fd5b80633ccfd60b146104c95780634000aea0146104d157806340c10f19146104e457600080fd5b806318160ddd1161031a5780632ebe3fbb116102f45780632ebe3fbb1461042f57806330adf81f14610442578063313ce567146104695780633644e515146104a257600080fd5b806318160ddd1461040157806323b872dd146104095780632e1a7d4d1461041c57600080fd5b806239d6ec1461035f578062bf26f414610385578062f714ce146103ac57806306fdde03146103bf578063095ea7b3146103d45780630d707df8146103f7575b600080fd5b61037261036d366004612550565b6107e3565b6040519081526020015b60405180910390f35b6103727f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd5981565b6103726103ba36600461270e565b610839565b6103c761084d565b60405161037c9190612823565b6103e76103e2366004612526565b6108db565b604051901515815260200161037c565b6103ff610935565b005b600354610372565b6103e7610417366004612480565b6109f1565b61037261042a3660046126dc565b610bdc565b6103ff61043d366004612432565b610bef565b6103727f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6104907f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff909116815260200161037c565b6103727fb33dd8b5471a2e9c0130d6104438b7c9f333975aa2d749871cdf88cf1fe1900d81565b610372610cc6565b6103e76104df36600461258c565b610ce7565b6103e76104f2366004612526565b610e40565b610372600d5481565b600b54610513906001600160a01b031681565b6040516001600160a01b03909116815260200161037c565b6103e7610539366004612432565b610e82565b6103e761054c3660046124bc565b610f57565b6103e761055f366004612432565b611167565b6103e761057236600461270e565b61123b565b6103ff610585366004612432565b611303565b61037260055481565b6103726105a136600461270e565b611369565b6105137f000000000000000000000000000000000000000000000000000000000000000081565b6103726105db366004612432565b60026020526000908152604090205481565b6103726105fb366004612432565b600f6020526000908152604090205481565b61037261061b366004612613565b6113aa565b61051361062e3660046126dc565b611484565b610372600c5481565b6103ff61064a366004612526565b6114ae565b610513611571565b600954610513906001600160a01b031681565b6103c761157b565b6103e7610680366004612526565b611588565b61068d6115e7565b60405161037c91906127d6565b610372600e5481565b6103e76106b1366004612526565b611649565b6103e76106c4366004612432565b60066020526000908152604090205460ff1681565b6103726106e73660046126dc565b61171f565b6103726106fa36600461270e565b611760565b610372600a5481565b6103ff61071636600461267d565b61179a565b6103e761072936600461258c565b6117ec565b6103ff61073c366004612432565b6118c8565b610372611921565b6103ff6107573660046124bc565b611a04565b6103ff611b72565b61037261077236600461244d565b601060209081526000928352604080842090915290825290205481565b6103e761079d3660046126b7565b611bdd565b610513611c52565b6103726107b8366004612613565b611c7d565b600854610513906001600160a01b031681565b6103ff6107de366004612432565b611d35565b60006107ed611c52565b6001600160a01b0316336001600160a01b0316146108265760405162461bcd60e51b815260040161081d90612856565b60405180910390fd5b610831848484611d9b565b949350505050565b6000610846338484611d9b565b9392505050565b6000805461085a906129a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610886906129a5565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b505050505081565b3360008181526010602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020612a43833981519152906109249086815260200190565b60405180910390a350600192915050565b61093d611c52565b6001600160a01b0316336001600160a01b03161461096d5760405162461bcd60e51b815260040161081d90612856565b600a5442101561097c57600080fd5b600980546001600160a01b039081166000908152600660205260408120805460ff1916600190811790915592546007805494850181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890920180546001600160a01b03191692909116919091179055565b60006001600160a01b038316151580610a1357506001600160a01b0383163014155b610a1c57600080fd5b6001600160a01b0384163314610b16576001600160a01b03841660009081526010602090815260408083203384529091529020546000198114610b145782811015610abb5760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563345524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b606482015260840161081d565b6000610ac78483612962565b6001600160a01b03871660008181526010602090815260408083203380855290835292819020859055518481529394509092600080516020612a43833981519152910160405180910390a3505b505b6001600160a01b03841660009081526002602052604090205482811015610b4f5760405162461bcd60e51b815260040161081d906128c4565b610b598382612962565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610b8f90849061294a565b92505081905550836001600160a01b0316856001600160a01b0316600080516020612a2383398151915285604051610bc991815260200190565b60405180910390a3506001949350505050565b6000610be9338333611d9b565b92915050565b610bf7611c52565b6001600160a01b0316336001600160a01b031614610c275760405162461bcd60e51b815260040161081d90612856565b60045460ff16610c3657600080fd5b600880546001600160a01b039092166001600160a01b03199283168117909155600b80548316821790556000818152600660205260408120805460ff1990811660019081179092556007805492830181559092527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805490931690911790915542600c55600480549091169055565b336000818152600260205260408120549091610ce29181611d9b565b905090565b60006001600160a01b038516151580610d0957506001600160a01b0385163014155b610d1257600080fd5b3360009081526002602052604090205484811015610d425760405162461bcd60e51b815260040161081d906128c4565b610d4c8582612962565b33600090815260026020526040808220929092556001600160a01b03881681529081208054879290610d7f90849061294a565b90915550506040518581526001600160a01b038716903390600080516020612a238339815191529060200160405180910390a3604051635260769b60e11b81526001600160a01b0387169063a4c0ed3690610de490339089908990899060040161278e565b602060405180830381600087803b158015610dfe57600080fd5b505af1158015610e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e36919061269a565b9695505050505050565b3360009081526006602052604081205460ff16610e6f5760405162461bcd60e51b815260040161081d90612913565b610e798383611de3565b50600192915050565b6000610e8c611c52565b6001600160a01b0316336001600160a01b031614610ebc5760405162461bcd60e51b815260040161081d90612856565b6001600160a01b038216610ee25760405162461bcd60e51b815260040161081d9061288d565b600b80546001600160a01b0319166001600160a01b038416179055600554610f0a904261294a565b600c819055600b546008546040516001600160a01b0392831692909116907f1d065115f314fb9bad9557bd5460b9e3c66f7223b1dd04e73e828f0bb5afe89f90600090a45060015b919050565b600084421115610fa95760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d69740000604482015260640161081d565b6001600160a01b0388166000908152600f6020526040812080547f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd59918b918b918b919086610ff6836129e0565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012090506110578982878787611eb1565b8061106a575061106a8982878787611fa1565b61107357600080fd5b6001600160a01b03881615158061109357506001600160a01b0388163014155b61109c57600080fd5b6001600160a01b038916600090815260026020526040902054878110156110d55760405162461bcd60e51b815260040161081d906128c4565b6110df8882612962565b6001600160a01b03808c1660009081526002602052604080822093909355908b16815290812080548a929061111590849061294a565b92505081905550886001600160a01b03168a6001600160a01b0316600080516020612a238339815191528a60405161114f91815260200190565b60405180910390a35060019998505050505050505050565b6000611171611c52565b6001600160a01b0316336001600160a01b0316146111a15760405162461bcd60e51b815260040161081d90612856565b6001600160a01b0382166111c75760405162461bcd60e51b815260040161081d9061288d565b600b80546001600160a01b0319166001600160a01b0384161790556005546111ef904261294a565b600c819055600b546008546040516001600160a01b0392831692909116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a4506001919050565b600454600090610100900460ff16156112965760405162461bcd60e51b815260206004820152601860248201527f416e7973776170563445524332303a206f6e6c79417574680000000000000000604482015260640161081d565b6001600160a01b0382166112bc5760405162461bcd60e51b815260040161081d9061288d565b6112c6338461205c565b6040518381526001600160a01b0383169033907f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c88890602001610924565b61130b611c52565b6001600160a01b0316336001600160a01b03161461133b5760405162461bcd60e51b815260040161081d90612856565b600b80546001600160a01b0319166001600160a01b038316179055600554611363904261294a565b600c5550565b60006113a06001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308661212e565b610846838361219f565b60405163d505accf60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf90611405908b9030908c908c908c908c908c9060040161274d565b600060405180830381600087803b15801561141f57600080fd5b505af1158015611433573d6000803e3d6000fd5b5061146e9250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905089308a61212e565b611478878361219f565b98975050505050505050565b6007818154811061149457600080fd5b6000918252602090912001546001600160a01b0316905081565b6114b6611c52565b6001600160a01b0316336001600160a01b0316146114e65760405162461bcd60e51b815260040161081d90612856565b60085460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb90604401602060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156c919061269a565b505050565b6000610ce2611c52565b6001805461085a906129a5565b3360009081526006602052604081205460ff166115b75760405162461bcd60e51b815260040161081d90612913565b6001600160a01b0383166115dd5760405162461bcd60e51b815260040161081d9061288d565b610e79838361205c565b6060600780548060200260200160405190810160405280929190818152602001828054801561163f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611621575b5050505050905090565b60006001600160a01b03831615158061166b57506001600160a01b0383163014155b61167457600080fd5b33600090815260026020526040902054828110156116a45760405162461bcd60e51b815260040161081d906128c4565b6116ae8382612962565b33600090815260026020526040808220929092556001600160a01b038616815290812080548592906116e190849061294a565b90915550506040518381526001600160a01b038516903390600080516020612a23833981519152906020015b60405180910390a35060019392505050565b60006117566001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561212e565b610be9823361219f565b600061176a611c52565b6001600160a01b0316336001600160a01b0316146113a05760405162461bcd60e51b815260040161081d90612856565b6117a2611c52565b6001600160a01b0316336001600160a01b0316146117d25760405162461bcd60e51b815260040161081d90612856565b600480549115156101000261ff0019909216919091179055565b3360008181526010602090815260408083206001600160a01b03891680855292528083208790555191929091600080516020612a43833981519152906118359088815260200190565b60405180910390a360405162ba451f60e01b81526001600160a01b0386169062ba451f9061186d90339088908890889060040161278e565b602060405180830381600087803b15801561188757600080fd5b505af115801561189b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bf919061269a565b95945050505050565b6118d0611c52565b6001600160a01b0316336001600160a01b0316146119005760405162461bcd60e51b815260040161081d90612856565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561198557600080fd5b505afa158015611999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bd91906126f5565b90506119f46001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308461212e565b6119fe813361219f565b91505090565b83421115611a545760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d69740000604482015260640161081d565b6001600160a01b0387166000908152600f6020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a919086611aa1836129e0565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050611b028882868686611eb1565b80611b155750611b158882868686611fa1565b611b1e57600080fd5b6001600160a01b038881166000818152601060209081526040808320948c16808452948252918290208a90559051898152600080516020612a43833981519152910160405180910390a35050505050505050565b611b7a611c52565b6001600160a01b0316336001600160a01b031614611baa5760405162461bcd60e51b815260040161081d90612856565b600c54421015611bb957600080fd5b600b54600880546001600160a01b0319166001600160a01b03909216919091179055565b3360009081526006602052604081205460ff16611c0c5760405162461bcd60e51b815260040161081d90612913565b611c168383611de3565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d618460405161170d91815260200190565b6000600c544210611c6d5750600b546001600160a01b031690565b506008546001600160a01b031690565b60405163302b14eb60e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063605629d690611cd8908b9030908c908c908c908c908c9060040161274d565b602060405180830381600087803b158015611cf257600080fd5b505af1158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a919061269a565b50611478878361219f565b611d3d611c52565b6001600160a01b0316336001600160a01b031614611d6d5760405162461bcd60e51b815260040161081d90612856565b600980546001600160a01b0319166001600160a01b038316179055600554611d95904261294a565b600a5550565b6000611da7848461205c565b611ddb6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016838561221c565b509092915050565b6001600160a01b038216611e395760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161081d565b8060036000828254611e4b919061294a565b90915550506001600160a01b03821660009081526002602052604081208054839290611e7890849061294a565b90915550506040518181526001600160a01b03831690600090600080516020612a23833981519152906020015b60405180910390a35050565b60405161190160f01b60208201527fb33dd8b5471a2e9c0130d6104438b7c9f333975aa2d749871cdf88cf1fe1900d602282015260428101859052600090819060620160408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0015b6020604051602081039080840390855afa158015611f60573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906114785750876001600160a01b0316816001600160a01b03161498975050505050505050565b600080612021866040517f19457468657265756d205369676e6564204d6573736167653a0a33320000000060208201527fb33dd8b5471a2e9c0130d6104438b7c9f333975aa2d749871cdf88cf1fe1900d603c820152605c8101829052600090607c01604051602081830303815290604052805190602001209050919050565b6040805160008082526020820180845284905260ff89169282019290925260608101879052608081018690529192509060019060a001611f3e565b6001600160a01b0382166120bc5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161081d565b6001600160a01b038216600090815260026020526040812080548392906120e4908490612962565b9250508190555080600360008282546120fd9190612962565b90915550506040518181526000906001600160a01b03841690600080516020612a2383398151915290602001611ea5565b6040516001600160a01b03808516602483015283166044820152606481018290526121999085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261224c565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061220257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61220b57600080fd5b6122158284611de3565b5090919050565b6040516001600160a01b03831660248201526044810182905261156c90849063a9059cbb60e01b90606401612162565b61225e826001600160a01b03166123d3565b6122aa5760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015260640161081d565b600080836001600160a01b0316836040516122c59190612731565b6000604051808303816000865af19150503d8060008114612302576040519150601f19603f3d011682016040523d82523d6000602084013e612307565b606091505b5091509150816123595760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015260640161081d565b8051156121995780806020019051810190612374919061269a565b6121995760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161081d565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906108315750141592915050565b80356001600160a01b0381168114610f5257600080fd5b803560ff81168114610f5257600080fd5b60006020828403121561244457600080fd5b6108468261240a565b6000806040838503121561246057600080fd5b6124698361240a565b91506124776020840161240a565b90509250929050565b60008060006060848603121561249557600080fd5b61249e8461240a565b92506124ac6020850161240a565b9150604084013590509250925092565b600080600080600080600060e0888a0312156124d757600080fd5b6124e08861240a565b96506124ee6020890161240a565b9550604088013594506060880135935061250a60808901612421565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561253957600080fd5b6125428361240a565b946020939093013593505050565b60008060006060848603121561256557600080fd5b61256e8461240a565b9250602084013591506125836040850161240a565b90509250925092565b600080600080606085870312156125a257600080fd5b6125ab8561240a565b935060208501359250604085013567ffffffffffffffff808211156125cf57600080fd5b818701915087601f8301126125e357600080fd5b8135818111156125f257600080fd5b88602082850101111561260457600080fd5b95989497505060200194505050565b600080600080600080600060e0888a03121561262e57600080fd5b6126378861240a565b9650602088013595506040880135945061265360608901612421565b93506080880135925060a0880135915061266f60c0890161240a565b905092959891949750929550565b60006020828403121561268f57600080fd5b813561084681612a11565b6000602082840312156126ac57600080fd5b815161084681612a11565b6000806000606084860312156126cc57600080fd5b833592506124ac6020850161240a565b6000602082840312156126ee57600080fd5b5035919050565b60006020828403121561270757600080fd5b5051919050565b6000806040838503121561272157600080fd5b823591506124776020840161240a565b60008251612743818460208701612979565b9190910192915050565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b6020808252825182820181905260009190848201906040850190845b818110156128175783516001600160a01b0316835292840192918401916001016127f2565b50909695505050505050565b6020815260008251806020840152612842816040850160208701612979565b601f01601f19169190910160400192915050565b60208082526019908201527f416e7973776170563345524332303a20464f5242494444454e00000000000000604082015260600190565b6020808252601c908201527f416e7973776170563345524332303a2061646472657373283078302900000000604082015260600190565b6020808252602f908201527f416e7973776170563345524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b60208082526019908201527f416e7973776170563445524332303a20464f5242494444454e00000000000000604082015260600190565b6000821982111561295d5761295d6129fb565b500190565b600082821015612974576129746129fb565b500390565b60005b8381101561299457818101518382015260200161297c565b838111156121995750506000910152565b600181811c908216806129b957607f821691505b602082108114156129da57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156129f4576129f46129fb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b8015158114612a1f57600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a264697066735822122063dbb12d256e1924222a5249b86d18293ce044face1a0615f02207047a68d64564736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001001009911e3fe1d5b45ff8efea7732c33a6c012
-----Decoded View---------------
Arg [0] : ownerAddress (address): 0x1001009911e3FE1d5B45FF8Efea7732C33a6C012
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001001009911e3fe1d5b45ff8efea7732c33a6c012
[ 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.