Spend less on fees, more on crypto. Buy crypto easily with MoonPay Balance. 20M+ users trust MoonPay worldwide.
Don’t invest unless you’re prepared to lose all the money you invest.
3000+ Slots, 20+ Cryptos, 75K Raffle, Sports Promos - World's largest Crypto Casino & Sportsbook - Provably Fair!
Play in crypto to make deposits and withdrawals easy! Register and get a free daily shot at a 100 000 $ jackpot.
Monthly Wagering Contest - $500,000+ rewards. Provably Fair, Low House Edge and best VIP Program!
Daily free Spin 50000 Matic ,760% Deposit Bonus, 20%Rakeback, And Get 1000000 Matic free bonus on BC.Game
Deposit BONUS 300% and Cashbacks. without verification!
Holidays are coming soon! Start betting on 1xBit and get a secret gift from Santa!
Overview
POL Balance
POL Value
$0.00Token Holdings
Could not find any matches!
- ERC-20 Tokens (85)15,000 WPOL [ POL-MAT.COM ]ERC-20: ! (WPOL [...)15,000 WPOL [ POL-MAT.COM ]ERC-20: ! (WPOL [...)900,000,000 POL-MAT.COM - Visit to claim RewardERC-20: ! (USD) (POL-MA...)43,767 AAVE [ACCESS AAVE.ASIA]ERC-20: ! AAVE.as... (AAVE [...)9,650 Access Airdrop Link [zksyon.one]ERC-20: ! Airdrop... (Access...)8 ACCESS [ETH-BONK.VIP] TO FARM YOUR COINSERC-20: ! BONK (ACCESS...)900,000,000 3 eth at www.ethfi.pwERC-20: ! ETHFI (3 eth ...)9,860 ACCESS [ ETHNA.VERCEL.APP ] AIRDROPERC-20: ! ETHNA (ACCESS...)9,000,000,000 pol-mat.com -Visit to claim Reward BonusERC-20: ! POL-MAT... (pol-ma...)345,870 ACCESS [TURBO-AI.APP] TO RECEIVE YOUR COINSERC-20: ! TURBO [... (ACCESS...)1 https://t.ly/ethersERC-20: deBridge ... (https:...)1 https://t.ly/ethersERC-20: deBridge ... (https:...)1 https://t.ly/ethersERC-20: deBridge ... (https:...)1 deBridge Airdrop https://t.ly/ethersERC-20: deBridge ... (deBrid...)1 deBridge Airdrop https://t.ly/ethersERC-20: deBridge ... (deBrid...)1 deBridge Airdrop https://t.ly/ethersERC-20: deBridge ... (deBrid...)1 deBridge Airdrop https://t.ly/ethersERC-20: deBridge ... (deBrid...)1 deBridge Airdrop https://t.ly/ethersERC-20: deBridge ... (deBrid...)1 Debridge Voucher https://t.ly/ethersERC-20: Debridge ... (Debrid...)0.00000001 deUnibox Airdrop https://t.ly/UNIBOXERC-20: deUnibox ... (deUnib...)3,763 EigenLayer airdrop on platform ( Gemradar.site )ERC-20: Gemradar.... (EigenL...)0.00000001 Join our X https://t.ly/CATSPACEERC-20: Join our ... (Join o...)300,000 MNEPMinereum Polygon10,000 web3-chess.com Airdrop $1,000,000 STNERC-20: STN (web3-c...)724,900 TokenERC-20 TOKEN*[Suspicious]745,000 TokenERC-20 TOKEN*[Suspicious]745,900 TokenERC-20 TOKEN*[Suspicious]724,900 TokenERC-20 TOKEN*[Suspicious]8,726 TokenERC-20 TOKEN*[Suspicious]9,543 TokenERC-20 TOKEN*[Suspicious]7,680 TokenERC-20 TOKEN*[Suspicious]9,543 TokenERC-20 TOKEN*[Suspicious]110,000 TokenERC-20 TOKEN*[Suspicious]8,750 TokenERC-20 TOKEN*[Suspicious]8,750 TokenERC-20 TOKEN*[Suspicious]7,800 TokenERC-20 TOKEN*[Suspicious]7,800 TokenERC-20 TOKEN*[Suspicious]900,000,000 TokenERC-20 TOKEN*[Suspicious]900,000,000 TokenERC-20 TOKEN*[Suspicious]90,000,000,000 TokenERC-20 TOKEN*[Suspicious]1 TokenERC-20 TOKEN*[Suspicious]1 TokenERC-20 TOKEN*[Suspicious]1 TokenERC-20 TOKEN*[Suspicious]1 TokenERC-20 TOKEN*[Suspicious]1 TokenERC-20 TOKEN*[Suspicious]10,000 TokenERC-20 TOKEN*[Suspicious]10,000 TokenERC-20 TOKEN*[Unsafe]10,000 TokenERC-20 TOKEN*[Unsafe]10,000 TokenERC-20 TOKEN*[Unsafe]10,000 TokenERC-20 TOKEN*[Unsafe]10,000 TokenERC-20 TOKEN*[Unsafe]90,000,000 TokenERC-20 TOKEN*[Spam]90,000,000 TokenERC-20 TOKEN*[Spam]90,000,000 TokenERC-20 TOKEN*[Spam]90,000,000 TokenERC-20 TOKEN*[Spam]2,985 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]8 TokenERC-20 TOKEN*[Spam]27,500 TokenERC-20 TOKEN*[Spam]550,000 TokenERC-20 TOKEN*[Spam]550,000 TokenERC-20 TOKEN*[Spam]8,726 TokenERC-20 TOKEN*[Spam]22,400 TokenERC-20 TOKEN*[Spam]775 TokenERC-20 TOKEN*[Spam]8 TokenERC-20 TOKEN*[Spam]8,273 TokenERC-20 TOKEN*[Spam]4,376 TokenERC-20 TOKEN*[Spam]85,600 TokenERC-20 TOKEN*[Spam]900,000,000 TokenERC-20 TOKEN*[Spam]956 TokenERC-20 TOKEN*[Spam]78,530 TokenERC-20 TOKEN*[Spam]9,000,000,000 TokenERC-20 TOKEN*[Spam]9,000,000 TokenERC-20 TOKEN*[Spam]9,000,000 TokenERC-20 TOKEN*[Spam]10,000 TokenERC-20 TOKEN*[Spam]5,000 TokenERC-20 TOKEN*[Spam]9,000,000,000 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]4,649 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]8,750 TokenERC-20 TOKEN*[Spam]956 TokenERC-20 TOKEN*[Spam]10,000 TokenERC-20 TOKEN*[Spam]NFT Tokens (91)GIVEAWAY$100,000,000ERC-1155drops-usdc.com$1000 drops-usdc.comERC-115510,000 USDТ (Claim at tetherex.xyz)10,000 USDТ (Claim at tetherex.xyz)ERC-721drop-usdc.com1000 USDCERC-1155drop-usdc.com10000$USDCERC-1155coin-drop.xyz2000$ Drop RewardERC-1155coin-drop.xyz2000$ Drop RewardERC-1155drops-usdt.xyz2000$ RewardERC-1155drop-usdt.xyz2000$ RewardERC-1155Vouchers5 stETH EventERC-1155Vouchers50M $SHIB VoucherERC-1155Vouchers50M $SHIB VoucherERC-1155drop-dai.xyz999$ RewardERC-1155AAVE-V3-POSAave Positions AirdropERC-1155AAVE-V3-POSAave Positions AirdropERC-1155APE COINAPE NFT TICKETSERC-1155ARBITDROP.COMARBITDROP.COM COUPONSERC-1155ARBITDROP.INFOARBITDROP.INFO COUPONERC-1155ARBITDROP.INFOARBITDROP.INFO COUPONERC-1155FREESPINBitCase FREESPINERC-1155BitCase.OrgBitCase FreeSpin VouchersERC-1155https://t.ly/ethersdeBridge AirdropERC-721deBridge Airdrop https://t.ly/ethersdeBridge AirdropERC-721deBridge Airdrop https://t.ly/ethersdeBridge AirdropERC-721deBridge Airdrop https://t.ly/ethersdeBridge AirdropERC-721deBridge Airdrop https://t.ly/ethersdeBridge AirdropERC-721https://t.ly/ethersdeBridge AirdropERC-721https://t.ly/ethersdeBridge AirdropERC-721deBridge Airdrop https://t.ly/ethersdeBridge Airdrop https://t.ly/ethersERC-721deBridge Airdrop https://t.ly/ethersdeBridge Airdrop https://t.ly/ethersERC-721deBridge Airdrop https://t.ly/ethersdeBridge Airdrop https://t.ly/ethersx2ERC-721dYdXEvent.comdYdX EventERC-1155dYdXEvent.comdYdX EventERC-1155dYdX EventdYdX Exchange EventERC-1155dYdX EventdYdX Exchange EventERC-1155UniEvent.PlusEvent by UniswapERC-1155STAXLedger Stax: GiveawayERC-1155STAXLedger Stax: GiveawayERC-1155STAXLedger Stax: GiveawayERC-1155STAXLedger Stax: GiveawayERC-1155STAXLedger Stax: GiveawayERC-1155STAXLedger Stax: GiveawayERC-1155STAXLedger Stax: GiveawayERC-1155OPTIMISMOPTIMISM NFT TICKETSERC-1155OPTIMISMOPTIMISM NFT TICKETSERC-1155OPTIMISMOPTIMISM NFT TICKETSERC-1155PolyEvent.PlusPolygon EventERC-1155REVOLUTIONREVOLUTIONERC-1155UNIUNI EVENTERC-1155UniEvent.PlusUNI EVENTERC-1155UniEvent.PlusUni NFT EventERC-1155UniEvent.PlusUniswap NFT EventERC-1155UniEvent.PlusUniswap Summer EventERC-1155UNI-V3-PoSUniswap V3 Positions NFT-V1ERC-1155UNI-V3-PoSUniswap V3 Positions NFT-V1ERC-1155UNI-V3-PoSUniswap V3 Positions NFT-V1ERC-1155ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Suspicious]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]
More Info
Private Name Tags
ContractCreator
TokenTracker
Multichain Info
2 addresses found viaLatest 25 from a total of 60 transactions
Transaction Hash MethodBlockFromToApprove 61094113 2024-08-27 8:17:18 106 days ago 1724746638 IN 0 POL$0.00 0.00138897 30.00000134 Approve 56515030 2024-05-03 2:15:48 222 days ago 1714702548 IN 0 POL$0.00 0.00279666 60.00000031 Approve 53462374 2024-02-13 6:42:06 302 days ago 1707806526 IN 0 POL$0.00 0.00489939 105.82080749 Approve 53111835 2024-02-04 11:14:12 311 days ago 1707045252 IN 0 POL$0.00 0.0052877 113.44329328 Approve 52929210 2024-01-30 15:48:23 316 days ago 1706629703 IN 0 POL$0.00 0.00367839 151.35566497 Approve 52407986 2024-01-16 22:08:05 330 days ago 1705442885 IN 0 POL$0.00 0.00072981 30.00000006 Transfer 50785986 2023-12-05 22:08:05 372 days ago 1701814085 IN 0 POL$0.00 0.00333091 64.59522918 Approve 47193441 2023-09-05 23:56:22 462 days ago 1693958182 IN 0 POL$0.00 0.00540687 116 Approve 45845405 2023-08-03 4:21:25 496 days ago 1691036485 IN 0 POL$0.00 0.00410656 88.7427102 Approve 45845377 2023-08-03 4:20:25 496 days ago 1691036425 IN 0 POL$0.00 0.0042233 91.2179614 Approve 45845346 2023-08-03 4:19:19 496 days ago 1691036359 IN 0 POL$0.00 0.00345746 74.67681122 Approve 45845117 2023-08-03 4:11:11 496 days ago 1691035871 IN 0 POL$0.00 0.00358315 77.39155939 Transfer 45802612 2023-08-02 2:19:50 497 days ago 1690942790 IN 0 POL$0.00 0.00490505 104.88514718 Approve 45526717 2023-07-26 4:23:29 504 days ago 1690345409 IN 0 POL$0.00 0.0019419 73.76082473 Approve 44936854 2023-07-11 4:39:38 519 days ago 1689050378 IN 0 POL$0.00 0.00294098 111.4053128 Approve 44936838 2023-07-11 4:39:04 519 days ago 1689050344 IN 0 POL$0.00 0.00321058 121.61772959 Approve 44936795 2023-07-11 4:37:32 519 days ago 1689050252 IN 0 POL$0.00 0.00516565 111.57168362 Permit 44770767 2023-07-07 0:17:25 523 days ago 1688689045 IN 0 POL$0.00 0.00611065 111.81035489 Approve 44053057 2023-06-18 13:30:04 542 days ago 1687095004 IN 0 POL$0.00 0.01313767 283.75723463 Transfer 43941858 2023-06-15 14:40:58 545 days ago 1686840058 IN 0 POL$0.00 0.02515066 537.79810784 Transfer From 43337407 2023-05-30 18:21:46 561 days ago 1685470906 IN 0 POL$0.00 0.00984772 197.56691744 Transfer From 43337405 2023-05-30 18:21:42 561 days ago 1685470902 IN 0 POL$0.00 0.01138035 191.4434059 Approve 43337393 2023-05-30 18:21:18 561 days ago 1685470878 IN 0 POL$0.00 0.00713004 154 Approve 43100013 2023-05-24 18:04:50 567 days ago 1684951490 IN 0 POL$0.00 0.00655996 140.73851912 Approve 43092968 2023-05-24 13:51:05 567 days ago 1684936265 IN 0 POL$0.00 0.02571235 555.35437106 Loading...LoadingContract Name:AnyswapV5ERC20
Compiler Versionv0.8.2+commit.661d1103
Contract Source Code (Solidity)
- interface IERC20
- - function totalSupply()
- - function decimals()
- - function balanceOf(address account)
- - function transfer(address recipient, ...
- - function allowance(address owner, add ...
- - function approve(address spender, uin ...
- - function transferFrom(address sender, ...
- - function permit(address target, addre ...
- - function transferWithPermit(address t ...
- interface IERC2612
- - function nonces(address owner)
- interface IAnyswapV3ERC20 is IERC20, ...
- - function approveAndCall(address spend ...
- - function transferAndCall(address to, ...
- interface ITransferReceiver
- - function onTokenTransfer(address, uin ...
- interface IApprovalReceiver
- - function onTokenApproval(address, uin ...
- library Address
- - function isContract(address account)
- library SafeERC20
- - function safeTransfer(IERC20 token, a ...
- - function safeTransferFrom(IERC20 toke ...
- - function safeApprove(IERC20 token, ad ...
- - function callOptionalReturn(IERC20 to ...
- contract AnyswapV5ERC20 is IAnyswa ... *
- - function owner()
- - function mpc()
- - function setVaultOnly(bool enabled)
- - function initVault(address _vault)
- - function setMinter(address _auth)
- - function setVault(address _vault)
- - function applyVault()
- - function applyMinter()
- - function revokeMinter(address _auth)
- - function getAllMinters()
- - function changeVault(address newVault ...
- - function changeMPCOwner(address newVa ...
- - function mint(address to, uint256 amo ...
- - function burn(address from, uint256 a ...
- - function Swapin(bytes32 txhash, addre ...
- - function Swapout(uint256 amount, addr ...
- - function totalSupply()
- - function depositWithPermit(address ta ...
- - function depositWithTransferPermit(ad ...
- - function deposit()
- - function deposit(uint amount)
- - function deposit(uint amount, address ...
- - function depositVault(uint amount, ad ...
- - function _deposit(uint amount, addres ...
- - function withdraw()
- - function withdraw(uint amount)
- - function withdraw(uint amount, addres ...
- - function withdrawVault(address from, ...
- - function _withdraw(address from, uint ...
- - function _mint(address account, uint2 ...
- - function _burn(address account, uint2 ...
- - function approve(address spender, uin ...
- - function approveAndCall(address spend ...
- - function permit(address target, addre ...
- - function transferWithPermit(address t ...
- - function verifyEIP712(address target, ...
- - function verifyPersonalSign(address t ...
- - function prefixed(bytes32 hash)
- - function transfer(address to, uint256 ...
- - function transferFrom(address from, a ...
- - function transferAndCall(address to, ...
/** *Submitted for verification at polygonscan.com on 2021-12-15 */ /** *Submitted for verification at BscScan.com on 2021-12-10 */ /** *Submitted for verification at BscScan.com on 2021-06-15 */ /** *Submitted for verification at BscScan.com on 2021-06-11 */ /** *Submitted for verification at polygonscan.com on 2021-06-11 */ /** *Submitted for verification at Etherscan.io on 2021-06-08 */ /** *Submitted for verification at Etherscan.io on 2021-06-07 */ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.2; /** * @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); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"address","name":"_vault","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":"_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
60e06040526202a3006005553480156200001857600080fd5b5060405162002fac38038062002fac8339810160408190526200003b91620003c5565b8451620000509060009060208801906200023d565b508351620000669060019060208701906200023d565b507fff0000000000000000000000000000000000000000000000000000000000000060f884901b166080526001600160601b0319606083901b1660a0526001600160a01b038216156200013a57816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015620000ed57600080fd5b505afa15801562000102573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000128919062000464565b60ff168360ff16146200013a57600080fd5b6004805461ff001960ff19909116600117169055600880546001600160a01b0383166001600160a01b03199182168117909255600b8054909116909117905542600c5560405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620001b29060009062000488565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051601f19818403018152919052805160209091012060c052506200057e945050505050565b8280546200024b906200052b565b90600052602060002090601f0160209004810192826200026f5760008555620002ba565b82601f106200028a57805160ff1916838001178555620002ba565b82800160010185558215620002ba579182015b82811115620002ba5782518255916020019190600101906200029d565b50620002c8929150620002cc565b5090565b5b80821115620002c85760008155600101620002cd565b80516001600160a01b0381168114620002fb57600080fd5b919050565b600082601f83011262000311578081fd5b81516001600160401b03808211156200032e576200032e62000568565b604051601f8301601f19908116603f0116810190828211818310171562000359576200035962000568565b8160405283815260209250868385880101111562000375578485fd5b8491505b8382101562000398578582018301518183018401529082019062000379565b83821115620003a957848385830101525b9695505050505050565b805160ff81168114620002fb57600080fd5b600080600080600060a08688031215620003dd578081fd5b85516001600160401b0380821115620003f4578283fd5b6200040289838a0162000300565b9650602088015191508082111562000418578283fd5b50620004278882890162000300565b9450506200043860408701620003b3565b92506200044860608701620002e3565b91506200045860808701620002e3565b90509295509295909350565b60006020828403121562000476578081fd5b6200048182620003b3565b9392505050565b8154600090819060028104600180831680620004a557607f831692505b6020808410821415620004c657634e487b7160e01b87526022600452602487fd5b818015620004dd5760018114620004ef576200051d565b60ff198616895284890196506200051d565b60008a815260209020885b86811015620005155781548b820152908501908301620004fa565b505084890196505b509498975050505050505050565b6002810460018216806200054057607f821691505b602082108114156200056257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160f81c60a05160601c60c0516129a4620006086000396000818161048c01528181611dda0152611eec015260008181610590015281816113520152818161139e0152818161141e015281816116450152818161185a015281816118e301528181611bb001528181611ccd015281816120bc01526120ef0152600061045301526129a46000f3fe608060405234801561001057600080fd5b506004361061033f5760003560e01c80637ecebe00116101b8578063bebbf4d011610104578063d93f2445116100a2578063f75c26641161007c578063f75c266414610774578063f954734e1461077c578063fbfa77cf1461078f578063fca3b5aa146107a25761033f565b8063d93f24451461072e578063dd62ed3e14610736578063ec126c77146107615761033f565b8063cae9ca51116100de578063cae9ca51146106ed578063cfbd488514610700578063d0e30db014610713578063d505accf1461071b5761033f565b8063bebbf4d0146106be578063c3081240146106d1578063c4b740f5146106da5761033f565b806395d89b4111610171578063a29dff721161014b578063a29dff721461066c578063a9059cbb14610675578063aa271e1a14610688578063b6b55f25146106ab5761033f565b806395d89b411461063c5780639dc29fac14610644578063a045442c146106575761033f565b80637ecebe00146105d257806381a37c18146105f25780638623ec7b1461060557806387689e28146106185780638da5cb5b1461062157806391c5df49146106295761033f565b80633ccfd60b1161029257806360e232a9116102305780636a42b8f81161020a5780636a42b8f81461056f5780636e553f65146105785780636f307dc31461058b57806370a08231146105b25761033f565b806360e232a914610536578063628d6cba146105495780636817031b1461055c5761033f565b80634ca8f0ed1161026c5780634ca8f0ed146104dc57806352113ba7146104e55780635f9b105d14610510578063605629d6146105235761033f565b80633ccfd60b146104ae5780634000aea0146104b657806340c10f19146104c95761033f565b806318160ddd116102ff5780632ebe3fbb116102d95780632ebe3fbb1461041457806330adf81f14610427578063313ce5671461044e5780633644e515146104875761033f565b806318160ddd146103e657806323b872dd146103ee5780632e1a7d4d146104015761033f565b806239d6ec14610344578062bf26f41461036a578062f714ce1461039157806306fdde03146103a4578063095ea7b3146103b95780630d707df8146103dc575b600080fd5b610357610352366004612469565b6107b5565b6040519081526020015b60405180910390f35b6103577f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd5981565b61035761039f36600461261b565b61080b565b6103ac61081f565b604051610361919061272f565b6103cc6103c7366004612440565b6108ad565b6040519015158152602001610361565b6103e4610907565b005b6103576109c3565b6103cc6103fc36600461239c565b6109ca565b61035761040f3660046125eb565b610bb5565b6103e4610422366004612350565b610bca565b6103577f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6104757f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610361565b6103577f000000000000000000000000000000000000000000000000000000000000000081565b610357610ca1565b6103cc6104c43660046124a4565b610cc2565b6103cc6104d7366004612440565b610e1b565b610357600d5481565b600b546104f8906001600160a01b031681565b6040516001600160a01b039091168152602001610361565b6103cc61051e366004612350565b610e5d565b6103cc6105313660046123d7565b610f31565b6103cc610544366004612350565b611141565b6103cc61055736600461261b565b611215565b6103e461056a366004612350565b6112dd565b61035760055481565b61035761058636600461261b565b611343565b6104f87f000000000000000000000000000000000000000000000000000000000000000081565b6103576105c0366004612350565b60026020526000908152604090205481565b6103576105e0366004612350565b600f6020526000908152604090205481565b610357610600366004612526565b611384565b6104f86106133660046125eb565b61145e565b610357600c5481565b6104f8611488565b6009546104f8906001600160a01b031681565b6103ac611492565b6103cc610652366004612440565b61149f565b61065f6114fe565b60405161036191906126e2565b610357600e5481565b6103cc610683366004612440565b611560565b6103cc610696366004612350565b60066020526000908152604090205460ff1681565b6103576106b93660046125eb565b611636565b6103576106cc36600461261b565b611677565b610357600a5481565b6103e46106e836600461258f565b6116b1565b6103cc6106fb3660046124a4565b611703565b6103e461070e366004612350565b6117df565b610357611838565b6103e46107293660046123d7565b61191b565b6103e4611a89565b61035761074436600461236a565b601060209081526000928352604080842090915290825290205481565b6103cc61076f3660046125c7565b611af4565b6104f8611b69565b61035761078a366004612526565b611b96565b6008546104f8906001600160a01b031681565b6103e46107b0366004612350565b611c4e565b60006107bf611b69565b6001600160a01b0316336001600160a01b0316146107f85760405162461bcd60e51b81526004016107ef90612762565b60405180910390fd5b610803848484611cb4565b949350505050565b6000610818338484611cb4565b9392505050565b6000805461082c906128b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610858906128b1565b80156108a55780601f1061087a576101008083540402835291602001916108a5565b820191906000526020600020905b81548152906001019060200180831161088857829003601f168201915b505050505081565b3360008181526010602090815260408083206001600160a01b0387168085529252808320859055519192909160008051602061294f833981519152906108f69086815260200190565b60405180910390a350600192915050565b61090f611b69565b6001600160a01b0316336001600160a01b03161461093f5760405162461bcd60e51b81526004016107ef90612762565b600a5442101561094e57600080fd5b600980546001600160a01b039081166000908152600660205260408120805460ff1916600190811790915592546007805494850181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890920180546001600160a01b03191692909116919091179055565b6003545b90565b60006001600160a01b0383161515806109ec57506001600160a01b0383163014155b6109f557600080fd5b6001600160a01b0384163314610aef576001600160a01b03841660009081526010602090815260408083203384529091529020546000198114610aed5782811015610a945760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563345524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016107ef565b6000610aa0848361286e565b6001600160a01b0387166000818152601060209081526040808320338085529083529281902085905551848152939450909260008051602061294f833981519152910160405180910390a3505b505b6001600160a01b03841660009081526002602052604090205482811015610b285760405162461bcd60e51b81526004016107ef906127d0565b610b32838261286e565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610b68908490612856565b92505081905550836001600160a01b0316856001600160a01b031660008051602061292f83398151915285604051610ba291815260200190565b60405180910390a3506001949350505050565b6000610bc2338333611cb4565b90505b919050565b610bd2611b69565b6001600160a01b0316336001600160a01b031614610c025760405162461bcd60e51b81526004016107ef90612762565b60045460ff16610c1157600080fd5b600880546001600160a01b039092166001600160a01b03199283168117909155600b80548316821790556000818152600660205260408120805460ff1990811660019081179092556007805492830181559092527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805490931690911790915542600c55600480549091169055565b336000818152600260205260408120549091610cbd9181611cb4565b905090565b60006001600160a01b038516151580610ce457506001600160a01b0385163014155b610ced57600080fd5b3360009081526002602052604090205484811015610d1d5760405162461bcd60e51b81526004016107ef906127d0565b610d27858261286e565b33600090815260026020526040808220929092556001600160a01b03881681529081208054879290610d5a908490612856565b90915550506040518581526001600160a01b03871690339060008051602061292f8339815191529060200160405180910390a3604051635260769b60e11b81526001600160a01b0387169063a4c0ed3690610dbf90339089908990899060040161269a565b602060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1191906125ab565b9695505050505050565b3360009081526006602052604081205460ff16610e4a5760405162461bcd60e51b81526004016107ef9061281f565b610e548383611cfc565b50600192915050565b6000610e67611b69565b6001600160a01b0316336001600160a01b031614610e975760405162461bcd60e51b81526004016107ef90612762565b6001600160a01b038216610ebd5760405162461bcd60e51b81526004016107ef90612799565b600b80546001600160a01b0319166001600160a01b038416179055600554610ee59042612856565b600c819055600b546008546040516001600160a01b0392831692909116907f1d065115f314fb9bad9557bd5460b9e3c66f7223b1dd04e73e828f0bb5afe89f90600090a4506001919050565b600084421115610f835760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d6974000060448201526064016107ef565b6001600160a01b0388166000908152600f6020526040812080547f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd59918b918b918b919086610fd0836128ec565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012090506110318982878787611dca565b8061104457506110448982878787611eba565b61104d57600080fd5b6001600160a01b03881615158061106d57506001600160a01b0388163014155b61107657600080fd5b6001600160a01b038916600090815260026020526040902054878110156110af5760405162461bcd60e51b81526004016107ef906127d0565b6110b9888261286e565b6001600160a01b03808c1660009081526002602052604080822093909355908b16815290812080548a92906110ef908490612856565b92505081905550886001600160a01b03168a6001600160a01b031660008051602061292f8339815191528a60405161112991815260200190565b60405180910390a35060019998505050505050505050565b600061114b611b69565b6001600160a01b0316336001600160a01b03161461117b5760405162461bcd60e51b81526004016107ef90612762565b6001600160a01b0382166111a15760405162461bcd60e51b81526004016107ef90612799565b600b80546001600160a01b0319166001600160a01b0384161790556005546111c99042612856565b600c819055600b546008546040516001600160a01b0392831692909116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a4506001919050565b600454600090610100900460ff16156112705760405162461bcd60e51b815260206004820152601860248201527f416e7973776170563445524332303a206f6e6c7941757468000000000000000060448201526064016107ef565b6001600160a01b0382166112965760405162461bcd60e51b81526004016107ef90612799565b6112a03384611f75565b6040518381526001600160a01b0383169033907f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888906020016108f6565b6112e5611b69565b6001600160a01b0316336001600160a01b0316146113155760405162461bcd60e51b81526004016107ef90612762565b600b80546001600160a01b0319166001600160a01b03831617905560055461133d9042612856565b600c5550565b600061137a6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612047565b61081883836120b8565b60405163d505accf60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf906113df908b9030908c908c908c908c908c90600401612659565b600060405180830381600087803b1580156113f957600080fd5b505af115801561140d573d6000803e3d6000fd5b506114489250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905089308a612047565b61145287836120b8565b98975050505050505050565b6007818154811061146e57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000610cbd611b69565b6001805461082c906128b1565b3360009081526006602052604081205460ff166114ce5760405162461bcd60e51b81526004016107ef9061281f565b6001600160a01b0383166114f45760405162461bcd60e51b81526004016107ef90612799565b610e548383611f75565b6060600780548060200260200160405190810160405280929190818152602001828054801561155657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611538575b5050505050905090565b60006001600160a01b03831615158061158257506001600160a01b0383163014155b61158b57600080fd5b33600090815260026020526040902054828110156115bb5760405162461bcd60e51b81526004016107ef906127d0565b6115c5838261286e565b33600090815260026020526040808220929092556001600160a01b038616815290812080548592906115f8908490612856565b90915550506040518381526001600160a01b03851690339060008051602061292f833981519152906020015b60405180910390a35060019392505050565b600061166d6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085612047565b610bc282336120b8565b6000611681611b69565b6001600160a01b0316336001600160a01b03161461137a5760405162461bcd60e51b81526004016107ef90612762565b6116b9611b69565b6001600160a01b0316336001600160a01b0316146116e95760405162461bcd60e51b81526004016107ef90612762565b600480549115156101000261ff0019909216919091179055565b3360008181526010602090815260408083206001600160a01b0389168085529252808320879055519192909160008051602061294f8339815191529061174c9088815260200190565b60405180910390a360405162ba451f60e01b81526001600160a01b0386169062ba451f9061178490339088908890889060040161269a565b602060405180830381600087803b15801561179e57600080fd5b505af11580156117b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d691906125ab565b95945050505050565b6117e7611b69565b6001600160a01b0316336001600160a01b0316146118175760405162461bcd60e51b81526004016107ef90612762565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561189c57600080fd5b505afa1580156118b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d49190612603565b905061190b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612047565b61191581336120b8565b91505090565b8342111561196b5760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d6974000060448201526064016107ef565b6001600160a01b0387166000908152600f6020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866119b8836128ec565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050611a198882868686611dca565b80611a2c5750611a2c8882868686611eba565b611a3557600080fd5b6001600160a01b038881166000818152601060209081526040808320948c16808452948252918290208a9055905189815260008051602061294f833981519152910160405180910390a35050505050505050565b611a91611b69565b6001600160a01b0316336001600160a01b031614611ac15760405162461bcd60e51b81526004016107ef90612762565b600c54421015611ad057600080fd5b600b54600880546001600160a01b0319166001600160a01b03909216919091179055565b3360009081526006602052604081205460ff16611b235760405162461bcd60e51b81526004016107ef9061281f565b611b2d8383611cfc565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d618460405161162491815260200190565b6000600c544210611b865750600b546001600160a01b03166109c7565b506008546001600160a01b031690565b60405163302b14eb60e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063605629d690611bf1908b9030908c908c908c908c908c90600401612659565b602060405180830381600087803b158015611c0b57600080fd5b505af1158015611c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4391906125ab565b5061145287836120b8565b611c56611b69565b6001600160a01b0316336001600160a01b031614611c865760405162461bcd60e51b81526004016107ef90612762565b600980546001600160a01b0319166001600160a01b038316179055600554611cae9042612856565b600a5550565b6000611cc08484611f75565b611cf46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168385612135565b509092915050565b6001600160a01b038216611d525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107ef565b8060036000828254611d649190612856565b90915550506001600160a01b03821660009081526002602052604081208054839290611d91908490612856565b90915550506040518181526001600160a01b0383169060009060008051602061292f833981519152906020015b60405180910390a35050565b60405161190160f01b60208201527f0000000000000000000000000000000000000000000000000000000000000000602282015260428101859052600090819060620160408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0015b6020604051602081039080840390855afa158015611e79573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906114525750876001600160a01b0316816001600160a01b03161498975050505050505050565b600080611f3a866040517f19457468657265756d205369676e6564204d6573736167653a0a33320000000060208201527f0000000000000000000000000000000000000000000000000000000000000000603c820152605c8101829052600090607c01604051602081830303815290604052805190602001209050919050565b6040805160008082526020820180845284905260ff89169282019290925260608101879052608081018690529192509060019060a001611e57565b6001600160a01b038216611fd55760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107ef565b6001600160a01b03821660009081526002602052604081208054839290611ffd90849061286e565b925050819055508060036000828254612016919061286e565b90915550506040518181526000906001600160a01b0384169060008051602061292f83398151915290602001611dbe565b6040516001600160a01b03808516602483015283166044820152606481018290526120b29085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261216a565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061211b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61212457600080fd5b61212e8284611cfc565b5090919050565b6040516001600160a01b03831660248201526044810182905261216590849063a9059cbb60e01b9060640161207b565b505050565b61217c826001600160a01b03166122f1565b6121c85760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064016107ef565b600080836001600160a01b0316836040516121e3919061263d565b6000604051808303816000865af19150503d8060008114612220576040519150601f19603f3d011682016040523d82523d6000602084013e612225565b606091505b5091509150816122775760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016107ef565b8051156120b2578080602001905181019061229291906125ab565b6120b25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107ef565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906108035750141592915050565b80356001600160a01b0381168114610bc557600080fd5b803560ff81168114610bc557600080fd5b600060208284031215612361578081fd5b61081882612328565b6000806040838503121561237c578081fd5b61238583612328565b915061239360208401612328565b90509250929050565b6000806000606084860312156123b0578081fd5b6123b984612328565b92506123c760208501612328565b9150604084013590509250925092565b600080600080600080600060e0888a0312156123f1578283fd5b6123fa88612328565b965061240860208901612328565b955060408801359450606088013593506124246080890161233f565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215612452578182fd5b61245b83612328565b946020939093013593505050565b60008060006060848603121561247d578283fd5b61248684612328565b92506020840135915061249b60408501612328565b90509250925092565b600080600080606085870312156124b9578384fd5b6124c285612328565b935060208501359250604085013567ffffffffffffffff808211156124e5578384fd5b818701915087601f8301126124f8578384fd5b813581811115612506578485fd5b886020828501011115612517578485fd5b95989497505060200194505050565b600080600080600080600060e0888a031215612540578283fd5b61254988612328565b965060208801359550604088013594506125656060890161233f565b93506080880135925060a0880135915061258160c08901612328565b905092959891949750929550565b6000602082840312156125a0578081fd5b81356108188161291d565b6000602082840312156125bc578081fd5b81516108188161291d565b6000806000606084860312156125db578283fd5b833592506123c760208501612328565b6000602082840312156125fc578081fd5b5035919050565b600060208284031215612614578081fd5b5051919050565b6000806040838503121561262d578182fd5b8235915061239360208401612328565b6000825161264f818460208701612885565b9190910192915050565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6020808252825182820181905260009190848201906040850190845b818110156127235783516001600160a01b0316835292840192918401916001016126fe565b50909695505050505050565b600060208252825180602084015261274e816040850160208701612885565b601f01601f19169190910160400192915050565b60208082526019908201527f416e7973776170563345524332303a20464f5242494444454e00000000000000604082015260600190565b6020808252601c908201527f416e7973776170563345524332303a2061646472657373283078302900000000604082015260600190565b6020808252602f908201527f416e7973776170563345524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b60208082526019908201527f416e7973776170563445524332303a20464f5242494444454e00000000000000604082015260600190565b6000821982111561286957612869612907565b500190565b60008282101561288057612880612907565b500390565b60005b838110156128a0578181015183820152602001612888565b838111156120b25750506000910152565b6002810460018216806128c557607f821691505b602082108114156128e657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561290057612900612907565b5060010190565b634e487b7160e01b600052601160045260246000fd5b801515811461292b57600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a264697066735822122009f133a1a7b82a84f7eb4d540d9b7632a2fb97e06b30fd18edb4988cdb70ae8164736f6c6343000802003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000a4d756c7469636861696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054d554c5449000000000000000000000000000000000000000000000000000000Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061033f5760003560e01c80637ecebe00116101b8578063bebbf4d011610104578063d93f2445116100a2578063f75c26641161007c578063f75c266414610774578063f954734e1461077c578063fbfa77cf1461078f578063fca3b5aa146107a25761033f565b8063d93f24451461072e578063dd62ed3e14610736578063ec126c77146107615761033f565b8063cae9ca51116100de578063cae9ca51146106ed578063cfbd488514610700578063d0e30db014610713578063d505accf1461071b5761033f565b8063bebbf4d0146106be578063c3081240146106d1578063c4b740f5146106da5761033f565b806395d89b4111610171578063a29dff721161014b578063a29dff721461066c578063a9059cbb14610675578063aa271e1a14610688578063b6b55f25146106ab5761033f565b806395d89b411461063c5780639dc29fac14610644578063a045442c146106575761033f565b80637ecebe00146105d257806381a37c18146105f25780638623ec7b1461060557806387689e28146106185780638da5cb5b1461062157806391c5df49146106295761033f565b80633ccfd60b1161029257806360e232a9116102305780636a42b8f81161020a5780636a42b8f81461056f5780636e553f65146105785780636f307dc31461058b57806370a08231146105b25761033f565b806360e232a914610536578063628d6cba146105495780636817031b1461055c5761033f565b80634ca8f0ed1161026c5780634ca8f0ed146104dc57806352113ba7146104e55780635f9b105d14610510578063605629d6146105235761033f565b80633ccfd60b146104ae5780634000aea0146104b657806340c10f19146104c95761033f565b806318160ddd116102ff5780632ebe3fbb116102d95780632ebe3fbb1461041457806330adf81f14610427578063313ce5671461044e5780633644e515146104875761033f565b806318160ddd146103e657806323b872dd146103ee5780632e1a7d4d146104015761033f565b806239d6ec14610344578062bf26f41461036a578062f714ce1461039157806306fdde03146103a4578063095ea7b3146103b95780630d707df8146103dc575b600080fd5b610357610352366004612469565b6107b5565b6040519081526020015b60405180910390f35b6103577f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd5981565b61035761039f36600461261b565b61080b565b6103ac61081f565b604051610361919061272f565b6103cc6103c7366004612440565b6108ad565b6040519015158152602001610361565b6103e4610907565b005b6103576109c3565b6103cc6103fc36600461239c565b6109ca565b61035761040f3660046125eb565b610bb5565b6103e4610422366004612350565b610bca565b6103577f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6104757f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff9091168152602001610361565b6103577fa9e45afebd8a491f9e5314b48cb26302913125f3a314484e6542b15aa24c7ae681565b610357610ca1565b6103cc6104c43660046124a4565b610cc2565b6103cc6104d7366004612440565b610e1b565b610357600d5481565b600b546104f8906001600160a01b031681565b6040516001600160a01b039091168152602001610361565b6103cc61051e366004612350565b610e5d565b6103cc6105313660046123d7565b610f31565b6103cc610544366004612350565b611141565b6103cc61055736600461261b565b611215565b6103e461056a366004612350565b6112dd565b61035760055481565b61035761058636600461261b565b611343565b6104f87f000000000000000000000000000000000000000000000000000000000000000081565b6103576105c0366004612350565b60026020526000908152604090205481565b6103576105e0366004612350565b600f6020526000908152604090205481565b610357610600366004612526565b611384565b6104f86106133660046125eb565b61145e565b610357600c5481565b6104f8611488565b6009546104f8906001600160a01b031681565b6103ac611492565b6103cc610652366004612440565b61149f565b61065f6114fe565b60405161036191906126e2565b610357600e5481565b6103cc610683366004612440565b611560565b6103cc610696366004612350565b60066020526000908152604090205460ff1681565b6103576106b93660046125eb565b611636565b6103576106cc36600461261b565b611677565b610357600a5481565b6103e46106e836600461258f565b6116b1565b6103cc6106fb3660046124a4565b611703565b6103e461070e366004612350565b6117df565b610357611838565b6103e46107293660046123d7565b61191b565b6103e4611a89565b61035761074436600461236a565b601060209081526000928352604080842090915290825290205481565b6103cc61076f3660046125c7565b611af4565b6104f8611b69565b61035761078a366004612526565b611b96565b6008546104f8906001600160a01b031681565b6103e46107b0366004612350565b611c4e565b60006107bf611b69565b6001600160a01b0316336001600160a01b0316146107f85760405162461bcd60e51b81526004016107ef90612762565b60405180910390fd5b610803848484611cb4565b949350505050565b6000610818338484611cb4565b9392505050565b6000805461082c906128b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610858906128b1565b80156108a55780601f1061087a576101008083540402835291602001916108a5565b820191906000526020600020905b81548152906001019060200180831161088857829003601f168201915b505050505081565b3360008181526010602090815260408083206001600160a01b0387168085529252808320859055519192909160008051602061294f833981519152906108f69086815260200190565b60405180910390a350600192915050565b61090f611b69565b6001600160a01b0316336001600160a01b03161461093f5760405162461bcd60e51b81526004016107ef90612762565b600a5442101561094e57600080fd5b600980546001600160a01b039081166000908152600660205260408120805460ff1916600190811790915592546007805494850181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890920180546001600160a01b03191692909116919091179055565b6003545b90565b60006001600160a01b0383161515806109ec57506001600160a01b0383163014155b6109f557600080fd5b6001600160a01b0384163314610aef576001600160a01b03841660009081526010602090815260408083203384529091529020546000198114610aed5782811015610a945760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563345524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016107ef565b6000610aa0848361286e565b6001600160a01b0387166000818152601060209081526040808320338085529083529281902085905551848152939450909260008051602061294f833981519152910160405180910390a3505b505b6001600160a01b03841660009081526002602052604090205482811015610b285760405162461bcd60e51b81526004016107ef906127d0565b610b32838261286e565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610b68908490612856565b92505081905550836001600160a01b0316856001600160a01b031660008051602061292f83398151915285604051610ba291815260200190565b60405180910390a3506001949350505050565b6000610bc2338333611cb4565b90505b919050565b610bd2611b69565b6001600160a01b0316336001600160a01b031614610c025760405162461bcd60e51b81526004016107ef90612762565b60045460ff16610c1157600080fd5b600880546001600160a01b039092166001600160a01b03199283168117909155600b80548316821790556000818152600660205260408120805460ff1990811660019081179092556007805492830181559092527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805490931690911790915542600c55600480549091169055565b336000818152600260205260408120549091610cbd9181611cb4565b905090565b60006001600160a01b038516151580610ce457506001600160a01b0385163014155b610ced57600080fd5b3360009081526002602052604090205484811015610d1d5760405162461bcd60e51b81526004016107ef906127d0565b610d27858261286e565b33600090815260026020526040808220929092556001600160a01b03881681529081208054879290610d5a908490612856565b90915550506040518581526001600160a01b03871690339060008051602061292f8339815191529060200160405180910390a3604051635260769b60e11b81526001600160a01b0387169063a4c0ed3690610dbf90339089908990899060040161269a565b602060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1191906125ab565b9695505050505050565b3360009081526006602052604081205460ff16610e4a5760405162461bcd60e51b81526004016107ef9061281f565b610e548383611cfc565b50600192915050565b6000610e67611b69565b6001600160a01b0316336001600160a01b031614610e975760405162461bcd60e51b81526004016107ef90612762565b6001600160a01b038216610ebd5760405162461bcd60e51b81526004016107ef90612799565b600b80546001600160a01b0319166001600160a01b038416179055600554610ee59042612856565b600c819055600b546008546040516001600160a01b0392831692909116907f1d065115f314fb9bad9557bd5460b9e3c66f7223b1dd04e73e828f0bb5afe89f90600090a4506001919050565b600084421115610f835760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d6974000060448201526064016107ef565b6001600160a01b0388166000908152600f6020526040812080547f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd59918b918b918b919086610fd0836128ec565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e0016040516020818303038152906040528051906020012090506110318982878787611dca565b8061104457506110448982878787611eba565b61104d57600080fd5b6001600160a01b03881615158061106d57506001600160a01b0388163014155b61107657600080fd5b6001600160a01b038916600090815260026020526040902054878110156110af5760405162461bcd60e51b81526004016107ef906127d0565b6110b9888261286e565b6001600160a01b03808c1660009081526002602052604080822093909355908b16815290812080548a92906110ef908490612856565b92505081905550886001600160a01b03168a6001600160a01b031660008051602061292f8339815191528a60405161112991815260200190565b60405180910390a35060019998505050505050505050565b600061114b611b69565b6001600160a01b0316336001600160a01b03161461117b5760405162461bcd60e51b81526004016107ef90612762565b6001600160a01b0382166111a15760405162461bcd60e51b81526004016107ef90612799565b600b80546001600160a01b0319166001600160a01b0384161790556005546111c99042612856565b600c819055600b546008546040516001600160a01b0392831692909116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a4506001919050565b600454600090610100900460ff16156112705760405162461bcd60e51b815260206004820152601860248201527f416e7973776170563445524332303a206f6e6c7941757468000000000000000060448201526064016107ef565b6001600160a01b0382166112965760405162461bcd60e51b81526004016107ef90612799565b6112a03384611f75565b6040518381526001600160a01b0383169033907f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888906020016108f6565b6112e5611b69565b6001600160a01b0316336001600160a01b0316146113155760405162461bcd60e51b81526004016107ef90612762565b600b80546001600160a01b0319166001600160a01b03831617905560055461133d9042612856565b600c5550565b600061137a6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612047565b61081883836120b8565b60405163d505accf60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf906113df908b9030908c908c908c908c908c90600401612659565b600060405180830381600087803b1580156113f957600080fd5b505af115801561140d573d6000803e3d6000fd5b506114489250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905089308a612047565b61145287836120b8565b98975050505050505050565b6007818154811061146e57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000610cbd611b69565b6001805461082c906128b1565b3360009081526006602052604081205460ff166114ce5760405162461bcd60e51b81526004016107ef9061281f565b6001600160a01b0383166114f45760405162461bcd60e51b81526004016107ef90612799565b610e548383611f75565b6060600780548060200260200160405190810160405280929190818152602001828054801561155657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611538575b5050505050905090565b60006001600160a01b03831615158061158257506001600160a01b0383163014155b61158b57600080fd5b33600090815260026020526040902054828110156115bb5760405162461bcd60e51b81526004016107ef906127d0565b6115c5838261286e565b33600090815260026020526040808220929092556001600160a01b038616815290812080548592906115f8908490612856565b90915550506040518381526001600160a01b03851690339060008051602061292f833981519152906020015b60405180910390a35060019392505050565b600061166d6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085612047565b610bc282336120b8565b6000611681611b69565b6001600160a01b0316336001600160a01b03161461137a5760405162461bcd60e51b81526004016107ef90612762565b6116b9611b69565b6001600160a01b0316336001600160a01b0316146116e95760405162461bcd60e51b81526004016107ef90612762565b600480549115156101000261ff0019909216919091179055565b3360008181526010602090815260408083206001600160a01b0389168085529252808320879055519192909160008051602061294f8339815191529061174c9088815260200190565b60405180910390a360405162ba451f60e01b81526001600160a01b0386169062ba451f9061178490339088908890889060040161269a565b602060405180830381600087803b15801561179e57600080fd5b505af11580156117b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d691906125ab565b95945050505050565b6117e7611b69565b6001600160a01b0316336001600160a01b0316146118175760405162461bcd60e51b81526004016107ef90612762565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561189c57600080fd5b505afa1580156118b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d49190612603565b905061190b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612047565b61191581336120b8565b91505090565b8342111561196b5760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d6974000060448201526064016107ef565b6001600160a01b0387166000908152600f6020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866119b8836128ec565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050611a198882868686611dca565b80611a2c5750611a2c8882868686611eba565b611a3557600080fd5b6001600160a01b038881166000818152601060209081526040808320948c16808452948252918290208a9055905189815260008051602061294f833981519152910160405180910390a35050505050505050565b611a91611b69565b6001600160a01b0316336001600160a01b031614611ac15760405162461bcd60e51b81526004016107ef90612762565b600c54421015611ad057600080fd5b600b54600880546001600160a01b0319166001600160a01b03909216919091179055565b3360009081526006602052604081205460ff16611b235760405162461bcd60e51b81526004016107ef9061281f565b611b2d8383611cfc565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d618460405161162491815260200190565b6000600c544210611b865750600b546001600160a01b03166109c7565b506008546001600160a01b031690565b60405163302b14eb60e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063605629d690611bf1908b9030908c908c908c908c908c90600401612659565b602060405180830381600087803b158015611c0b57600080fd5b505af1158015611c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4391906125ab565b5061145287836120b8565b611c56611b69565b6001600160a01b0316336001600160a01b031614611c865760405162461bcd60e51b81526004016107ef90612762565b600980546001600160a01b0319166001600160a01b038316179055600554611cae9042612856565b600a5550565b6000611cc08484611f75565b611cf46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168385612135565b509092915050565b6001600160a01b038216611d525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107ef565b8060036000828254611d649190612856565b90915550506001600160a01b03821660009081526002602052604081208054839290611d91908490612856565b90915550506040518181526001600160a01b0383169060009060008051602061292f833981519152906020015b60405180910390a35050565b60405161190160f01b60208201527fa9e45afebd8a491f9e5314b48cb26302913125f3a314484e6542b15aa24c7ae6602282015260428101859052600090819060620160408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0015b6020604051602081039080840390855afa158015611e79573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906114525750876001600160a01b0316816001600160a01b03161498975050505050505050565b600080611f3a866040517f19457468657265756d205369676e6564204d6573736167653a0a33320000000060208201527fa9e45afebd8a491f9e5314b48cb26302913125f3a314484e6542b15aa24c7ae6603c820152605c8101829052600090607c01604051602081830303815290604052805190602001209050919050565b6040805160008082526020820180845284905260ff89169282019290925260608101879052608081018690529192509060019060a001611e57565b6001600160a01b038216611fd55760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107ef565b6001600160a01b03821660009081526002602052604081208054839290611ffd90849061286e565b925050819055508060036000828254612016919061286e565b90915550506040518181526000906001600160a01b0384169060008051602061292f83398151915290602001611dbe565b6040516001600160a01b03808516602483015283166044820152606481018290526120b29085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261216a565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061211b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61212457600080fd5b61212e8284611cfc565b5090919050565b6040516001600160a01b03831660248201526044810182905261216590849063a9059cbb60e01b9060640161207b565b505050565b61217c826001600160a01b03166122f1565b6121c85760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064016107ef565b600080836001600160a01b0316836040516121e3919061263d565b6000604051808303816000865af19150503d8060008114612220576040519150601f19603f3d011682016040523d82523d6000602084013e612225565b606091505b5091509150816122775760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016107ef565b8051156120b2578080602001905181019061229291906125ab565b6120b25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107ef565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906108035750141592915050565b80356001600160a01b0381168114610bc557600080fd5b803560ff81168114610bc557600080fd5b600060208284031215612361578081fd5b61081882612328565b6000806040838503121561237c578081fd5b61238583612328565b915061239360208401612328565b90509250929050565b6000806000606084860312156123b0578081fd5b6123b984612328565b92506123c760208501612328565b9150604084013590509250925092565b600080600080600080600060e0888a0312156123f1578283fd5b6123fa88612328565b965061240860208901612328565b955060408801359450606088013593506124246080890161233f565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215612452578182fd5b61245b83612328565b946020939093013593505050565b60008060006060848603121561247d578283fd5b61248684612328565b92506020840135915061249b60408501612328565b90509250925092565b600080600080606085870312156124b9578384fd5b6124c285612328565b935060208501359250604085013567ffffffffffffffff808211156124e5578384fd5b818701915087601f8301126124f8578384fd5b813581811115612506578485fd5b886020828501011115612517578485fd5b95989497505060200194505050565b600080600080600080600060e0888a031215612540578283fd5b61254988612328565b965060208801359550604088013594506125656060890161233f565b93506080880135925060a0880135915061258160c08901612328565b905092959891949750929550565b6000602082840312156125a0578081fd5b81356108188161291d565b6000602082840312156125bc578081fd5b81516108188161291d565b6000806000606084860312156125db578283fd5b833592506123c760208501612328565b6000602082840312156125fc578081fd5b5035919050565b600060208284031215612614578081fd5b5051919050565b6000806040838503121561262d578182fd5b8235915061239360208401612328565b6000825161264f818460208701612885565b9190910192915050565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6020808252825182820181905260009190848201906040850190845b818110156127235783516001600160a01b0316835292840192918401916001016126fe565b50909695505050505050565b600060208252825180602084015261274e816040850160208701612885565b601f01601f19169190910160400192915050565b60208082526019908201527f416e7973776170563345524332303a20464f5242494444454e00000000000000604082015260600190565b6020808252601c908201527f416e7973776170563345524332303a2061646472657373283078302900000000604082015260600190565b6020808252602f908201527f416e7973776170563345524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b60208082526019908201527f416e7973776170563445524332303a20464f5242494444454e00000000000000604082015260600190565b6000821982111561286957612869612907565b500190565b60008282101561288057612880612907565b500390565b60005b838110156128a0578181015183820152602001612888565b838111156120b25750506000910152565b6002810460018216806128c557607f821691505b602082108114156128e657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561290057612900612907565b5060010190565b634e487b7160e01b600052601160045260246000fd5b801515811461292b57600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a264697066735822122009f133a1a7b82a84f7eb4d540d9b7632a2fb97e06b30fd18edb4988cdb70ae8164736f6c63430008020033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000a4d756c7469636861696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054d554c5449000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Multichain
Arg [1] : _symbol (string): MULTI
Arg [2] : _decimals (uint8): 18
Arg [3] : _underlying (address): 0x0000000000000000000000000000000000000000
Arg [4] : _vault (address): 0xfA9dA51631268A30Ec3DDd1CcBf46c65FAD99251
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [6] : 4d756c7469636861696e00000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [8] : 4d554c5449000000000000000000000000000000000000000000000000000000Deployed Bytecode Sourcemap
6154:19168:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15278:149;;;;;;:::i;:::-;;:::i;:::-;;;9569:25:1;;;9557:2;9542:18;15278:149:0;;;;;;;;6527:136;;6571:92;6527:136;;15144:126;;;;;;:::i;:::-;;:::i;6237:18::-;;;:::i;:::-;;;;;;;:::i;17001:265::-;;;;;;:::i;:::-;;:::i;:::-;;;9396:14:1;;9389:22;9371:41;;9359:2;9344:18;17001:265:0;9326:92:1;8923:179:0;;;:::i;:::-;;13113:102;;;:::i;23242:927::-;;;;;;:::i;:::-;;:::i;15014:122::-;;;;;;:::i;:::-;;:::i;8209:272::-;;;;;;:::i;:::-;;:::i;6383:137::-;;6425:95;6383:137;;6289:41;;;;;;;;15843:4:1;15831:17;;;15813:36;;15801:2;15786:18;6289:41:0;15768:87:1;6670:41:0;;;;;14880:126;;;:::i;24796:523::-;;;;;;:::i;:::-;;:::i;10042:133::-;;;;;;:::i;:::-;;:::i;7548:24::-;;;;;;7483:27;;;;;-1:-1:-1;;;;;7483:27:0;;;;;;-1:-1:-1;;;;;6620:32:1;;;6602:51;;6590:2;6575:18;7483:27:0;6557:102:1;9709:325:0;;;;;;:::i;:::-;;:::i;19599:938::-;;;;;;:::i;:::-;;:::i;9380:321::-;;;;;;:::i;:::-;;:::i;10615:328::-;;;;;;:::i;:::-;;:::i;8638:140::-;;;;;;:::i;:::-;;:::i;7158:29::-;;;;;;14332:193;;;;;;:::i;:::-;;:::i;6339:35::-;;;;;6791:54;;;;;;:::i;:::-;;;;;;;;;;;;;;11215:51;;;;;;:::i;:::-;;;;;;;;;;;;;;13223:349;;;;;;:::i;:::-;;:::i;7305:24::-;;;;;;:::i;:::-;;:::i;7517:22::-;;;;;;7846:78;;;:::i;7416:28::-;;;;;-1:-1:-1;;;;;7416:28:0;;;6262:20;;;:::i;10183:207::-;;;;;;:::i;:::-;;:::i;9271:99::-;;;:::i;:::-;;;;;;;:::i;7579:22::-;;;;;;21915:438;;;;;;:::i;:::-;;:::i;7258:40::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;14135:189;;;;;;:::i;:::-;;:::i;14533:127::-;;;;;;:::i;:::-;;:::i;7451:23::-;;;;;;8107:94;;;;;;:::i;:::-;;:::i;17687:356::-;;;;;;:::i;:::-;;:::i;9165:98::-;;;;;;:::i;:::-;;:::i;13881:246::-;;;:::i;18876:715::-;;;;;;:::i;:::-;;:::i;8786:129::-;;;:::i;11436:75::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;10398:209;;;;;;:::i;:::-;;:::i;7932:167::-;;;:::i;13580:293::-;;;;;;:::i;:::-;;:::i;7387:20::-;;;;;-1:-1:-1;;;;;7387:20:0;;;8489:141;;;;;;:::i;:::-;;:::i;15278:149::-;15368:4;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;;;;;;;;;15392:27:::1;15402:4;15408:6;15416:2;15392:9;:27::i;:::-;15385:34:::0;15278:149;-1:-1:-1;;;;15278:149:0:o;15144:126::-;15205:4;15229:33;15239:10;15251:6;15259:2;15229:9;:33::i;:::-;15222:40;15144:126;-1:-1:-1;;;15144:126:0:o;6237:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17001:265::-;17154:10;17077:4;17144:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;17144:30:0;;;;;;;;;;:38;;;17198:36;17077:4;;17144:30;;-1:-1:-1;;;;;;;;;;;17198:36:0;;;17177:5;9569:25:1;;9557:2;9542:18;;9524:76;17198:36:0;;;;;;;;-1:-1:-1;17254:4:0;17001:265;;;;:::o;8923:179::-;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;9003:11:::1;;8984:15;:30;;8976:39;;;::::0;::::1;;9035:13;::::0;;-1:-1:-1;;;;;9035:13:0;;::::1;9026:23;::::0;;;:8:::1;:23;::::0;;;;:30;;-1:-1:-1;;9026:30:0::1;9052:4;9026:30:::0;;::::1;::::0;;;9080:13;;9067:7:::1;:27:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9067:27:0::1;9080:13:::0;;;::::1;9067:27:::0;;;::::1;::::0;;8923:179::o;13113:102::-;13195:12;;13113:102;;:::o;23242:927::-;23332:4;-1:-1:-1;;;;;23357:16:0;;;;;:39;;-1:-1:-1;;;;;;23377:19:0;;23391:4;23377:19;;23357:39;23349:48;;;;;;-1:-1:-1;;;;;23412:18:0;;23420:10;23412:18;23408:477;;-1:-1:-1;;;;;23526:15:0;;23508;23526;;;:9;:15;;;;;;;;23542:10;23526:27;;;;;;;;-1:-1:-1;;23572:28:0;;23568:306;;23640:5;23629:7;:16;;23621:70;;;;-1:-1:-1;;;23621:70:0;;14150:2:1;23621:70:0;;;14132:21:1;14189:2;14169:18;;;14162:30;14228:34;14208:18;;;14201:62;-1:-1:-1;;;14279:18:1;;;14272:39;14328:19;;23621:70:0;14122:231:1;23621:70:0;23710:15;23728;23738:5;23728:7;:15;:::i;:::-;-1:-1:-1;;;;;23762:15:0;;;;;;:9;:15;;;;;;;;23778:10;23762:27;;;;;;;;;;:37;;;23823:35;9569:25:1;;;23762:37:0;;-1:-1:-1;23778:10:0;;-1:-1:-1;;;;;;;;;;;23823:35:0;9542:18:1;23823:35:0;;;;;;;23568:306;;23408:477;;-1:-1:-1;;;;;23915:15:0;;23897;23915;;;:9;:15;;;;;;23949:16;;;;23941:76;;;;-1:-1:-1;;;23941:76:0;;;;;;;:::i;:::-;24048:15;24058:5;24048:7;:15;:::i;:::-;-1:-1:-1;;;;;24030:15:0;;;;;;;:9;:15;;;;;;:33;;;;24074:13;;;;;;;;:22;;24091:5;;24030:15;24074:22;;24091:5;;24074:22;:::i;:::-;;;;;;;;24127:2;-1:-1:-1;;;;;24112:25:0;24121:4;-1:-1:-1;;;;;24112:25:0;-1:-1:-1;;;;;;;;;;;24131:5:0;24112:25;;;;9569::1;;9557:2;9542:18;;9524:76;24112:25:0;;;;;;;;-1:-1:-1;24157:4:0;;23242:927;-1:-1:-1;;;;23242:927:0:o;15014:122::-;15063:4;15087:41;15097:10;15109:6;15117:10;15087:9;:41::i;:::-;15080:48;;15014:122;;;;:::o;8209:272::-;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;8282:5:::1;::::0;::::1;;8274:14;;;::::0;::::1;;8299:5;:14:::0;;-1:-1:-1;;;;;8299:14:0;;::::1;-1:-1:-1::0;;;;;;8299:14:0;;::::1;::::0;::::1;::::0;;;8324:12:::1;:21:::0;;;::::1;::::0;::::1;::::0;;8299:5:::1;8356:16:::0;;;:8:::1;:16;::::0;;;;:23;;-1:-1:-1;;8356:23:0;;::::1;8299:14:::0;8356:23;;::::1;::::0;;;8390:7:::1;:20:::0;;;;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;8434:15:::1;8421:10;:28:::0;8460:5:::1;:13:::0;;;;::::1;::::0;;8209:272::o;14880:126::-;14952:10;14918:4;14964:21;;;:9;:21;;;;;;14918:4;;14942:56;;14952:10;14942:9;:56::i;:::-;14935:63;;14880:126;:::o;24796:523::-;24893:4;-1:-1:-1;;;;;24918:16:0;;;;;:39;;-1:-1:-1;;;;;;24938:19:0;;24952:4;24938:19;;24918:39;24910:48;;;;;;24999:10;24971:15;24989:21;;;:9;:21;;;;;;25029:16;;;;25021:76;;;;-1:-1:-1;;;25021:76:0;;;;;;;:::i;:::-;25134:15;25144:5;25134:7;:15;:::i;:::-;25120:10;25110:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;25160:13:0;;;;;;;:22;;25177:5;;25110:21;25160:22;;25177:5;;25160:22;:::i;:::-;;;;-1:-1:-1;;25198:31:0;;9569:25:1;;;-1:-1:-1;;;;;25198:31:0;;;25207:10;;-1:-1:-1;;;;;;;;;;;25198:31:0;9557:2:1;9542:18;25198:31:0;;;;;;;25249:62;;-1:-1:-1;;;25249:62:0;;-1:-1:-1;;;;;25249:37:0;;;;;:62;;25287:10;;25299:5;;25306:4;;;;25249:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25242:69;24796:523;-1:-1:-1;;;;;;24796:523:0:o;10042:133::-;7660:10;10111:4;7651:20;;;:8;:20;;;;;;;;7643:58;;;;-1:-1:-1;;;7643:58:0;;;;;;;:::i;:::-;10128:17:::1;10134:2;10138:6;10128:5;:17::i;:::-;-1:-1:-1::0;10163:4:0::1;10042:133:::0;;;;:::o;9709:325::-;9777:4;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9802:22:0;::::1;9794:63;;;;-1:-1:-1::0;;;9794:63:0::1;;;;;;;:::i;:::-;9868:12;:23:::0;;-1:-1:-1;;;;;;9868:23:0::1;-1:-1:-1::0;;;;;9868:23:0;::::1;;::::0;;9933:5:::1;::::0;9915:23:::1;::::0;:15:::1;:23;:::i;:::-;9902:10;:36:::0;;;9979:12:::1;::::0;9972:5:::1;::::0;9954:50:::1;::::0;-1:-1:-1;;;;;9979:12:0;;::::1;::::0;9972:5;;::::1;::::0;9954:50:::1;::::0;9979:12:::1;::::0;9954:50:::1;-1:-1:-1::0;10022:4:0::1;9709:325:::0;;;:::o;19599:938::-;19746:4;19790:8;19771:15;:27;;19763:70;;;;-1:-1:-1;;;19763:70:0;;12682:2:1;19763:70:0;;;12664:21:1;12721:2;12701:18;;;12694:30;12760:32;12740:18;;;12733:60;12810:18;;19763:70:0;12654:180:1;19763:70:0;-1:-1:-1;;;;;20026:14:0;;19846:18;20026:14;;;:6;:14;;;;;:16;;6571:92;;19956:6;;19981:2;;20002:5;;20026:16;19846:18;20026:16;;;:::i;:::-;;;;-1:-1:-1;19891:179:0;;;;;;9892:25:1;;;;-1:-1:-1;;;;;9991:15:1;;;9971:18;;;9964:43;10043:15;;;;10023:18;;;10016:43;10075:18;;;10068:34;10118:19;;;10111:35;10162:19;;;10155:35;;;9864:19;;19891:179:0;;;;;;;;;;;;19867:204;;;;;;19846:225;;20092:41;20105:6;20113:10;20125:1;20128;20131;20092:12;:41::i;:::-;:92;;;;20137:47;20156:6;20164:10;20176:1;20179;20182;20137:18;:47::i;:::-;20084:101;;;;;;-1:-1:-1;;;;;20206:16:0;;;;;:39;;-1:-1:-1;;;;;;20226:19:0;;20240:4;20226:19;;20206:39;20198:48;;;;;;-1:-1:-1;;;;;20277:17:0;;20259:15;20277:17;;;:9;:17;;;;;;20313:16;;;;20305:76;;;;-1:-1:-1;;;20305:76:0;;;;;;;:::i;:::-;20414:15;20424:5;20414:7;:15;:::i;:::-;-1:-1:-1;;;;;20394:17:0;;;;;;;:9;:17;;;;;;:35;;;;20440:13;;;;;;;;:22;;20457:5;;20394:17;20440:22;;20457:5;;20440:22;:::i;:::-;;;;;;;;20495:2;-1:-1:-1;;;;;20478:27:0;20487:6;-1:-1:-1;;;;;20478:27:0;-1:-1:-1;;;;;;;;;;;20499:5:0;20478:27;;;;9569:25:1;;9557:2;9542:18;;9524:76;20478:27:0;;;;;;;;-1:-1:-1;20525:4:0;;19599:938;-1:-1:-1;;;;;;;;;19599:938:0:o;9380:321::-;9447:4;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9472:22:0;::::1;9464:63;;;;-1:-1:-1::0;;;9464:63:0::1;;;;;;;:::i;:::-;9538:12;:23:::0;;-1:-1:-1;;;;;;9538:23:0::1;-1:-1:-1::0;;;;;9538:23:0;::::1;;::::0;;9603:5:::1;::::0;9585:23:::1;::::0;:15:::1;:23;:::i;:::-;9572:10;:36:::0;;;9646:12:::1;::::0;9639:5:::1;::::0;9624:47:::1;::::0;-1:-1:-1;;;;;9646:12:0;;::::1;::::0;9639:5;;::::1;::::0;9624:47:::1;::::0;9646:12:::1;::::0;9624:47:::1;-1:-1:-1::0;9689:4:0::1;9380:321:::0;;;:::o;10615:328::-;10708:10;;10682:4;;10708:10;;;;;10707:11;10699:48;;;;-1:-1:-1;;;10699:48:0;;13041:2:1;10699:48:0;;;13023:21:1;13080:2;13060:18;;;13053:30;13119:26;13099:18;;;13092:54;13163:18;;10699:48:0;13013:174:1;10699:48:0;-1:-1:-1;;;;;10766:22:0;;10758:63;;;;-1:-1:-1;;;10758:63:0;;;;;;;:::i;:::-;10832:25;10838:10;10850:6;10832:5;:25::i;:::-;10873:40;;9569:25:1;;;-1:-1:-1;;;;;10873:40:0;;;10884:10;;10873:40;;9557:2:1;9542:18;10873:40:0;9524:76:1;8638:140:0;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;8702:12:::1;:21:::0;;-1:-1:-1;;;;;;8702:21:0::1;-1:-1:-1::0;;;;;8702:21:0;::::1;;::::0;;8765:5:::1;::::0;8747:23:::1;::::0;:15:::1;:23;:::i;:::-;8734:10;:36:::0;-1:-1:-1;8638:140:0:o;14332:193::-;14392:4;14409:70;-1:-1:-1;;;;;14416:10:0;14409:35;14445:10;14465:4;14472:6;14409:35;:70::i;:::-;14497:20;14506:6;14514:2;14497:8;:20::i;13223:349::-;13377:74;;-1:-1:-1;;;13377:74:0;;13360:4;;-1:-1:-1;;;;;13384:10:0;13377:25;;;;:74;;13403:6;;13419:4;;13426:5;;13433:8;;13443:1;;13446;;13449;;13377:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13462:65:0;;-1:-1:-1;;;;;;;13469:10:0;13462:35;;-1:-1:-1;13498:6:0;13514:4;13521:5;13462:35;:65::i;:::-;13545:19;13554:5;13561:2;13545:8;:19::i;:::-;13538:26;13223:349;-1:-1:-1;;;;;;;;13223:349:0:o;7305:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7305:24:0;;-1:-1:-1;7305:24:0;:::o;7846:78::-;7884:7;7911:5;:3;:5::i;6262:20::-;;;;;;;:::i;10183:207::-;7660:10;10254:4;7651:20;;;:8;:20;;;;;;;;7643:58;;;;-1:-1:-1;;;7643:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10279:18:0;::::1;10271:59;;;;-1:-1:-1::0;;;10271:59:0::1;;;;;;;:::i;:::-;10341:19;10347:4;10353:6;10341:5;:19::i;9271:99::-:0;9319:16;9355:7;9348:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9348:14:0;;;;;;;;;;;;;;;;;;;;;;;9271:99;:::o;21915:438::-;21987:4;-1:-1:-1;;;;;22012:16:0;;;;;:39;;-1:-1:-1;;;;;;22032:19:0;;22046:4;22032:19;;22012:39;22004:48;;;;;;22091:10;22063:15;22081:21;;;:9;:21;;;;;;22121:16;;;;22113:76;;;;-1:-1:-1;;;22113:76:0;;;;;;;:::i;:::-;22226:15;22236:5;22226:7;:15;:::i;:::-;22212:10;22202:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;22252:13:0;;;;;;;:22;;22269:5;;22202:21;22252:22;;22269:5;;22252:22;:::i;:::-;;;;-1:-1:-1;;22290:31:0;;9569:25:1;;;-1:-1:-1;;;;;22290:31:0;;;22299:10;;-1:-1:-1;;;;;;;;;;;22290:31:0;9557:2:1;9542:18;22290:31:0;;;;;;;;-1:-1:-1;22341:4:0;;21915:438;-1:-1:-1;;;21915:438:0:o;14135:189::-;14183:4;14200:70;-1:-1:-1;;;;;14207:10:0;14200:35;14236:10;14256:4;14263:6;14200:35;:70::i;:::-;14288:28;14297:6;14305:10;14288:8;:28::i;14533:127::-;14608:4;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;8107:94::-;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;8173:10:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;8173:20:0;;::::1;::::0;;;::::1;::::0;;8107:94::o;17687:356::-;17868:10;17791:4;17858:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;17858:30:0;;;;;;;;;;:38;;;17912:36;17791:4;;17858:30;;-1:-1:-1;;;;;;;;;;;17912:36:0;;;17891:5;9569:25:1;;9557:2;9542:18;;9524:76;17912:36:0;;;;;;;;17968:67;;-1:-1:-1;;;17968:67:0;;-1:-1:-1;;;;;17968:42:0;;;;;:67;;18011:10;;18023:5;;18030:4;;;;17968:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17961:74;17687:356;-1:-1:-1;;;;;17687:356:0:o;9165:98::-;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9232:15:0::1;9250:5;9232:15:::0;;;:8:::1;:15;::::0;;;;:23;;-1:-1:-1;;9232:23:0::1;::::0;;9165:98::o;13881:246::-;13950:40;;-1:-1:-1;;;13950:40:0;;13979:10;13950:40;;;6602:51:1;13918:4:0;;;;-1:-1:-1;;;;;13957:10:0;13950:28;;;;6575:18:1;;13950:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13935:55;-1:-1:-1;14001:71:0;-1:-1:-1;;;;;14008:10:0;14001:35;14037:10;14057:4;13935:55;14001:35;:71::i;:::-;14090:29;14099:7;14108:10;14090:8;:29::i;:::-;14083:36;;;13881:246;:::o;18876:715::-;19045:8;19026:15;:27;;19018:70;;;;-1:-1:-1;;;19018:70:0;;12682:2:1;19018:70:0;;;12664:21:1;12721:2;12701:18;;;12694:30;12760:32;12740:18;;;12733:60;12810:18;;19018:70:0;12654:180:1;19018:70:0;-1:-1:-1;;;;;19284:14:0;;19101:18;19284:14;;;:6;:14;;;;;:16;;6425:95;;19209:6;;19234:7;;19260:5;;19284:16;19101:18;19284:16;;;:::i;:::-;;;;-1:-1:-1;19146:182:0;;;;;;9892:25:1;;;;-1:-1:-1;;;;;9991:15:1;;;9971:18;;;9964:43;10043:15;;;;10023:18;;;10016:43;10075:18;;;10068:34;10118:19;;;10111:35;10162:19;;;10155:35;;;9864:19;;19146:182:0;;;;;;;;;;;;19122:207;;;;;;19101:228;;19350:41;19363:6;19371:10;19383:1;19386;19389;19350:12;:41::i;:::-;:92;;;;19395:47;19414:6;19422:10;19434:1;19437;19440;19395:18;:47::i;:::-;19342:101;;;;;;-1:-1:-1;;;;;19501:17:0;;;;;;;:9;:17;;;;;;;;:26;;;;;;;;;;;;;:34;;;19551:32;;9569:25:1;;;-1:-1:-1;;;;;;;;;;;19551:32:0;9542:18:1;19551:32:0;;;;;;;18876:715;;;;;;;;:::o;8786:129::-;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;8865:10:::1;;8846:15;:29;;8838:38;;;::::0;::::1;;8895:12;::::0;8887:5:::1;:20:::0;;-1:-1:-1;;;;;;8887:20:0::1;-1:-1:-1::0;;;;;8895:12:0;;::::1;8887:20:::0;;;::::1;::::0;;8786:129::o;10398:209::-;7660:10;10488:4;7651:20;;;:8;:20;;;;;;;;7643:58;;;;-1:-1:-1;;;7643:58:0;;;;;;;:::i;:::-;10505:22:::1;10511:7;10520:6;10505:5;:22::i;:::-;10561:7;-1:-1:-1::0;;;;;10543:34:0::1;10553:6;10543:34;10570:6;10543:34;;;;9569:25:1::0;;9557:2;9542:18;;9524:76;7932:167:0;7968:7;8011:10;;7992:15;:29;7988:81;;-1:-1:-1;8045:12:0;;-1:-1:-1;;;;;8045:12:0;8038:19;;7988:81;-1:-1:-1;8086:5:0;;-1:-1:-1;;;;;8086:5:0;7932:167;:::o;13580:293::-;13742:86;;-1:-1:-1;;;13742:86:0;;13725:4;;-1:-1:-1;;;;;13749:10:0;13742:37;;;;:86;;13780:6;;13796:4;;13803:5;;13810:8;;13820:1;;13823;;13826;;13742:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13846:19;13855:5;13862:2;13846:8;:19::i;8489:141::-;7783:5;:3;:5::i;:::-;-1:-1:-1;;;;;7769:19:0;:10;-1:-1:-1;;;;;7769:19:0;;7761:57;;;;-1:-1:-1;;;7761:57:0;;;;;;;:::i;:::-;8553:13:::1;:21:::0;;-1:-1:-1;;;;;;8553:21:0::1;-1:-1:-1::0;;;;;8553:21:0;::::1;;::::0;;8617:5:::1;::::0;8599:23:::1;::::0;:15:::1;:23;:::i;:::-;8585:11;:37:::0;-1:-1:-1;8489:141:0:o;15435:198::-;15511:4;15528:19;15534:4;15540:6;15528:5;:19::i;:::-;15558:43;-1:-1:-1;;;;;15565:10:0;15558:31;15590:2;15594:6;15558:31;:43::i;:::-;-1:-1:-1;15619:6:0;;15435:198;-1:-1:-1;;15435:198:0:o;15914:268::-;-1:-1:-1;;;;;15990:21:0;;15982:65;;;;-1:-1:-1;;;15982:65:0;;15331:2:1;15982:65:0;;;15313:21:1;15370:2;15350:18;;;15343:30;15409:33;15389:18;;;15382:61;15460:18;;15982:65:0;15303:181:1;15982:65:0;16076:6;16060:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;16093:18:0;;;;;;:9;:18;;;;;:28;;16115:6;;16093:18;:28;;16115:6;;16093:28;:::i;:::-;;;;-1:-1:-1;;16137:37:0;;9569:25:1;;;-1:-1:-1;;;;;16137:37:0;;;16154:1;;-1:-1:-1;;;;;;;;;;;16137:37:0;9557:2:1;9542:18;16137:37:0;;;;;;;;15914:268;;:::o;20545:399::-;20713:110;;-1:-1:-1;;;20713:110:0;;;6317:27:1;20777:16:0;6360:11:1;;;6353:27;6396:12;;;6389:28;;;20657:4:0;;;;6433:12:1;;20713:110:0;;;-1:-1:-1;;20713:110:0;;;;;;;;;20689:135;;20713:110;20689:135;;;;20835:14;20852:24;;;;;;;;;10428:25:1;;;10501:4;10489:17;;10469:18;;;10462:45;;;;10523:18;;;10516:34;;;10566:18;;;10559:34;;;20689:135:0;;-1:-1:-1;20835:14:0;20852:24;;10400:19:1;;20852:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20852:24:0;;-1:-1:-1;;20852:24:0;;;-1:-1:-1;;;;;;;20895:20:0;;;;;;:40;;;20929:6;-1:-1:-1;;;;;20919:16:0;:6;-1:-1:-1;;;;;20919:16:0;;20887:49;20545:399;-1:-1:-1;;;;;;;;20545:399:0:o;20952:290::-;21070:4;21087:12;21102:20;21111:10;21408:76;;5879:66:1;21408:76:0;;;5867:79:1;21461:16:0;5962:12:1;;;5955:28;5999:12;;;5992:28;;;21371:7:0;;6036:12:1;;21408:76:0;;;;;;;;;;;;21398:87;;;;;;21391:94;;21316:177;;;;21102:20;21150:24;;;21133:14;21150:24;;;;;;;;;10428:25:1;;;10501:4;10489:17;;10469:18;;;10462:45;;;;10523:18;;;10516:34;;;10566:18;;;10559:34;;;21087:35:0;;-1:-1:-1;21133:14:0;21150:24;;10400:19:1;;21150:24:0;10382:217:1;16514:270:0;-1:-1:-1;;;;;16590:21:0;;16582:67;;;;-1:-1:-1;;;16582:67:0;;13748:2:1;16582:67:0;;;13730:21:1;13787:2;13767:18;;;13760:30;13826:34;13806:18;;;13799:62;-1:-1:-1;;;13877:18:1;;;13870:31;13918:19;;16582:67:0;13720:223:1;16582:67:0;-1:-1:-1;;;;;16662:18:0;;;;;;:9;:18;;;;;:28;;16684:6;;16662:18;:28;;16684:6;;16662:28;:::i;:::-;;;;;;;;16717:6;16701:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;16739:37:0;;9569:25:1;;;16765:1:0;;-1:-1:-1;;;;;16739:37:0;;;-1:-1:-1;;;;;;;;;;;16739:37:0;9557:2:1;9542:18;16739:37:0;9524:76:1;4990:201:0;5114:68;;-1:-1:-1;;;;;6922:15:1;;;5114:68:0;;;6904:34:1;6974:15;;6954:18;;;6947:43;7006:18;;;6999:34;;;5088:95:0;;5107:5;;-1:-1:-1;;;5137:27:0;6839:18:1;;5114:68:0;;;;-1:-1:-1;;5114:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;5114:68:0;-1:-1:-1;;;;;;5114:68:0;;;;;;;;;;5088:18;:95::i;:::-;4990:201;;;;:::o;14668:204::-;14729:4;14754:10;-1:-1:-1;;;;;14754:26:0;;;;;:57;;-1:-1:-1;14784:10:0;-1:-1:-1;;;;;14784:27:0;14806:4;14784:27;;14754:57;14746:66;;;;;;14823:17;14829:2;14833:6;14823:5;:17::i;:::-;-1:-1:-1;14858:6:0;;14668:204;-1:-1:-1;14668:204:0:o;4809:173::-;4915:58;;-1:-1:-1;;;;;7911:32:1;;4915:58:0;;;7893:51:1;7960:18;;;7953:34;;;4889:85:0;;4908:5;;-1:-1:-1;;;4938:23:0;7866:18:1;;4915:58:0;7848:145:1;4889:85:0;4809:173;;;:::o;5549:598::-;5637:27;5645:5;-1:-1:-1;;;;;5637:25:0;;:27::i;:::-;5629:71;;;;-1:-1:-1;;;5629:71:0;;14971:2:1;5629:71:0;;;14953:21:1;15010:2;14990:18;;;14983:30;15049:33;15029:18;;;15022:61;15100:18;;5629:71:0;14943:181:1;5629:71:0;5774:12;5788:23;5823:5;-1:-1:-1;;;;;5815:19:0;5835:4;5815:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5773:67;;;;5859:7;5851:52;;;;-1:-1:-1;;;5851:52:0;;11905:2:1;5851:52:0;;;11887:21:1;;;11924:18;;;11917:30;11983:34;11963:18;;;11956:62;12035:18;;5851:52:0;11877:182:1;5851:52:0;5920:17;;:21;5916:224;;6062:10;6051:30;;;;;;;;;;;;:::i;:::-;6043:85;;;;-1:-1:-1;;;6043:85:0;;14560:2:1;6043:85:0;;;14542:21:1;14599:2;14579:18;;;14572:30;14638:34;14618:18;;;14611:62;-1:-1:-1;;;14689:18:1;;;14682:40;14739:19;;6043:85:0;14532:232:1;4369:374:0;4429:4;4652:20;;4495:66;4692:15;;;;;:42;;-1:-1:-1;4711:23:0;;;4684:51;-1:-1:-1;;4369:374:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:156;258:20;;318:4;307:16;;297:27;;287:2;;338:1;335;328:12;353:196;;465:2;453:9;444:7;440:23;436:32;433:2;;;486:6;478;471:22;433:2;514:29;533:9;514:29;:::i;554:270::-;;;683:2;671:9;662:7;658:23;654:32;651:2;;;704:6;696;689:22;651:2;732:29;751:9;732:29;:::i;:::-;722:39;;780:38;814:2;803:9;799:18;780:38;:::i;:::-;770:48;;641:183;;;;;:::o;829:338::-;;;;975:2;963:9;954:7;950:23;946:32;943:2;;;996:6;988;981:22;943:2;1024:29;1043:9;1024:29;:::i;:::-;1014:39;;1072:38;1106:2;1095:9;1091:18;1072:38;:::i;:::-;1062:48;;1157:2;1146:9;1142:18;1129:32;1119:42;;933:234;;;;;:::o;1172:616::-;;;;;;;;1384:3;1372:9;1363:7;1359:23;1355:33;1352:2;;;1406:6;1398;1391:22;1352:2;1434:29;1453:9;1434:29;:::i;:::-;1424:39;;1482:38;1516:2;1505:9;1501:18;1482:38;:::i;:::-;1472:48;;1567:2;1556:9;1552:18;1539:32;1529:42;;1618:2;1607:9;1603:18;1590:32;1580:42;;1641:37;1673:3;1662:9;1658:19;1641:37;:::i;:::-;1631:47;;1725:3;1714:9;1710:19;1697:33;1687:43;;1777:3;1766:9;1762:19;1749:33;1739:43;;1342:446;;;;;;;;;;:::o;1793:264::-;;;1922:2;1910:9;1901:7;1897:23;1893:32;1890:2;;;1943:6;1935;1928:22;1890:2;1971:29;1990:9;1971:29;:::i;:::-;1961:39;2047:2;2032:18;;;;2019:32;;-1:-1:-1;;;1880:177:1:o;2062:338::-;;;;2208:2;2196:9;2187:7;2183:23;2179:32;2176:2;;;2229:6;2221;2214:22;2176:2;2257:29;2276:9;2257:29;:::i;:::-;2247:39;;2333:2;2322:9;2318:18;2305:32;2295:42;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2166:234;;;;;:::o;2405:783::-;;;;;2570:2;2558:9;2549:7;2545:23;2541:32;2538:2;;;2591:6;2583;2576:22;2538:2;2619:29;2638:9;2619:29;:::i;:::-;2609:39;;2695:2;2684:9;2680:18;2667:32;2657:42;;2750:2;2739:9;2735:18;2722:32;2773:18;2814:2;2806:6;2803:14;2800:2;;;2835:6;2827;2820:22;2800:2;2878:6;2867:9;2863:22;2853:32;;2923:7;2916:4;2912:2;2908:13;2904:27;2894:2;;2950:6;2942;2935:22;2894:2;2995;2982:16;3021:2;3013:6;3010:14;3007:2;;;3042:6;3034;3027:22;3007:2;3092:7;3087:2;3078:6;3074:2;3070:15;3066:24;3063:37;3060:2;;;3118:6;3110;3103:22;3060:2;2528:660;;;;-1:-1:-1;;3154:2:1;3146:11;;-1:-1:-1;;;2528:660:1:o;3193:616::-;;;;;;;;3405:3;3393:9;3384:7;3380:23;3376:33;3373:2;;;3427:6;3419;3412:22;3373:2;3455:29;3474:9;3455:29;:::i;:::-;3445:39;;3531:2;3520:9;3516:18;3503:32;3493:42;;3582:2;3571:9;3567:18;3554:32;3544:42;;3605:36;3637:2;3626:9;3622:18;3605:36;:::i;:::-;3595:46;;3688:3;3677:9;3673:19;3660:33;3650:43;;3740:3;3729:9;3725:19;3712:33;3702:43;;3764:39;3798:3;3787:9;3783:19;3764:39;:::i;:::-;3754:49;;3363:446;;;;;;;;;;:::o;3814:251::-;;3923:2;3911:9;3902:7;3898:23;3894:32;3891:2;;;3944:6;3936;3929:22;3891:2;3988:9;3975:23;4007:28;4029:5;4007:28;:::i;4070:255::-;;4190:2;4178:9;4169:7;4165:23;4161:32;4158:2;;;4211:6;4203;4196:22;4158:2;4248:9;4242:16;4267:28;4289:5;4267:28;:::i;4330:332::-;;;;4476:2;4464:9;4455:7;4451:23;4447:32;4444:2;;;4497:6;4489;4482:22;4444:2;4538:9;4525:23;4515:33;;4567:38;4601:2;4590:9;4586:18;4567:38;:::i;4667:190::-;;4779:2;4767:9;4758:7;4754:23;4750:32;4747:2;;;4800:6;4792;4785:22;4747:2;-1:-1:-1;4828:23:1;;4737:120;-1:-1:-1;4737:120:1:o;4862:194::-;;4985:2;4973:9;4964:7;4960:23;4956:32;4953:2;;;5006:6;4998;4991:22;4953:2;-1:-1:-1;5034:16:1;;4943:113;-1:-1:-1;4943:113:1:o;5061:264::-;;;5190:2;5178:9;5169:7;5165:23;5161:32;5158:2;;;5211:6;5203;5196:22;5158:2;5252:9;5239:23;5229:33;;5281:38;5315:2;5304:9;5300:18;5281:38;:::i;5330:274::-;;5497:6;5491:13;5513:53;5559:6;5554:3;5547:4;5539:6;5535:17;5513:53;:::i;:::-;5582:16;;;;;5467:137;-1:-1:-1;;5467:137:1:o;7044:670::-;-1:-1:-1;;;;;7411:15:1;;;7393:34;;7463:15;;;;7458:2;7443:18;;7436:43;7510:2;7495:18;;7488:34;;;;7553:2;7538:18;;7531:34;;;;7614:4;7602:17;7596:3;7581:19;;7574:46;7373:3;7636:19;;7629:35;7695:3;7680:19;;7673:35;;;;7342:3;7327:19;;7309:405::o;7998:562::-;-1:-1:-1;;;;;8211:32:1;;8193:51;;8275:2;8260:18;;8253:34;;;8323:2;8318;8303:18;;8296:30;;;8342:18;;8335:34;;;7998:562;8362:6;8412;8406:3;8391:19;;8378:49;8447:22;;;8471:3;8443:32;;;8436:46;;;;8543:2;8522:15;;;-1:-1:-1;;8518:29:1;8503:45;8499:55;;8183:377;-1:-1:-1;;;8183:377:1:o;8565:661::-;8736:2;8788:21;;;8858:13;;8761:18;;;8880:22;;;8565:661;;8736:2;8959:15;;;;8933:2;8918:18;;;8565:661;9005:195;9019:6;9016:1;9013:13;9005:195;;;9084:13;;-1:-1:-1;;;;;9080:39:1;9068:52;;9175:15;;;;9140:12;;;;9116:1;9034:9;9005:195;;;-1:-1:-1;9217:3:1;;8716:510;-1:-1:-1;;;;;;8716:510:1:o;10604:383::-;;10753:2;10742:9;10735:21;10785:6;10779:13;10828:6;10823:2;10812:9;10808:18;10801:34;10844:66;10903:6;10898:2;10887:9;10883:18;10878:2;10870:6;10866:15;10844:66;:::i;:::-;10971:2;10950:15;-1:-1:-1;;10946:29:1;10931:45;;;;10978:2;10927:54;;10725:262;-1:-1:-1;;10725:262:1:o;10992:349::-;11194:2;11176:21;;;11233:2;11213:18;;;11206:30;11272:27;11267:2;11252:18;;11245:55;11332:2;11317:18;;11166:175::o;11346:352::-;11548:2;11530:21;;;11587:2;11567:18;;;11560:30;11626;11621:2;11606:18;;11599:58;11689:2;11674:18;;11520:178::o;12064:411::-;12266:2;12248:21;;;12305:2;12285:18;;;12278:30;12344:34;12339:2;12324:18;;12317:62;-1:-1:-1;;;12410:2:1;12395:18;;12388:45;12465:3;12450:19;;12238:237::o;13192:349::-;13394:2;13376:21;;;13433:2;13413:18;;;13406:30;13472:27;13467:2;13452:18;;13445:55;13532:2;13517:18;;13366:175::o;15860:128::-;;15931:1;15927:6;15924:1;15921:13;15918:2;;;15937:18;;:::i;:::-;-1:-1:-1;15973:9:1;;15908:80::o;15993:125::-;;16061:1;16058;16055:8;16052:2;;;16066:18;;:::i;:::-;-1:-1:-1;16103:9:1;;16042:76::o;16123:258::-;16195:1;16205:113;16219:6;16216:1;16213:13;16205:113;;;16295:11;;;16289:18;16276:11;;;16269:39;16241:2;16234:10;16205:113;;;16336:6;16333:1;16330:13;16327:2;;;-1:-1:-1;;16371:1:1;16353:16;;16346:27;16176:205::o;16386:380::-;16471:1;16461:12;;16518:1;16508:12;;;16529:2;;16583:4;16575:6;16571:17;16561:27;;16529:2;16636;16628:6;16625:14;16605:18;16602:38;16599:2;;;16682:10;16677:3;16673:20;16670:1;16663:31;16717:4;16714:1;16707:15;16745:4;16742:1;16735:15;16599:2;;16441:325;;;:::o;16771:135::-;;-1:-1:-1;;16831:17:1;;16828:2;;;16851:18;;:::i;:::-;-1:-1:-1;16898:1:1;16887:13;;16818:88::o;16911:127::-;16972:10;16967:3;16963:20;16960:1;16953:31;17003:4;17000:1;16993:15;17027:4;17024:1;17017:15;17043:118;17129:5;17122:13;17115:21;17108:5;17105:32;17095:2;;17151:1;17148;17141:12;17095:2;17085:76;:::o
Swarm Source
ipfs://09f133a1a7b82a84f7eb4d540d9b7632a2fb97e06b30fd18edb4988cdb70ae81
Loading...LoadingLoading...Loading
Loading...Loading
Loading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...Loading[ Download: CSV Export ]A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.
Address QR Code
My Address - Private Name Tag or Note
My Name Tag:
Private Name Tags (up to 35 characters) can be used for easy identification of addressesPrivate Note:
A private note (up to 500 characters) can be attached to this address.
Please DO NOT store any passwords or private keys here.Compiler specific version warnings:
The compiled contract might be susceptible to FullInlinerNonExpressionSplitArgumentEvaluationOrder (low-severity), MissingSideEffectsOnSelectorAccess (low-severity), AbiReencodingHeadOverflowWithStaticArrayCleanup (medium-severity), DirtyBytesArrayToStorage (low-severity), DataLocationChangeInInternalOverride (very low-severity), NestedCalldataArrayAbiReencodingSizeValidation (very low-severity), SignedImmutables (very low-severity), ABIDecodeTwoDimensionalArrayMemory (very low-severity), KeccakCaching (medium-severity) Solidity Compiler Bugs.
Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Before You Copy
Transaction Private Note
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.