ERC-20
DeFi
Overview
Max Total Supply
374,678.468054837057681606 x33
Holders
2,045 ( 13.743%)
Market
Price
$0.00 @ 0.000000 S
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.258306971294646487 x33Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
x33
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 1633 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.26;import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {ERC4626} from "@openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol";import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";import {IVoter} from "../interfaces/IVoter.sol";import {IXShadow} from "../interfaces/IXShadow.sol";import {IVoteModule} from "../interfaces/IVoteModule.sol";import {IX33} from "../interfaces/IX33.sol";/// @title Canonical xShadow Wrapper for Shadow Exchange on Sonic/// @dev Autocompounding shares token voting optimally each epochcontract x33 is ERC4626, IX33, ReentrancyGuard {using SafeERC20 for ERC20;/// @inheritdoc IX33address public operator;/// @inheritdoc IX33address public immutable accessHub;IERC20 public immutable shadow;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)pragma solidity ^0.8.20;import {IERC20} from "./IERC20.sol";import {IERC20Metadata} from "./extensions/IERC20Metadata.sol";import {Context} from "../../utils/Context.sol";import {IERC20Errors} from "../../interfaces/draft-IERC6093.sol";/*** @dev Implementation of the {IERC20} interface.** This implementation is agnostic to the way tokens are created. This means* that a supply mechanism has to be added in a derived contract using {_mint}.** TIP: For a detailed writeup see our guide* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How* to implement supply mechanisms].** The default value of {decimals} is 18. To change this, you should override* this function so it returns a different value.** We have followed general OpenZeppelin Contracts guidelines: functions revert* instead returning `false` on failure. This behavior is nonetheless* conventional and does not conflict with the expectations of ERC-20
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC-20 standard as defined in the ERC.*/interface IERC20 {/*** @dev Emitted when `value` tokens are moved from one account (`from`) to* another (`to`).** Note that `value` may be zero.*/event Transfer(address indexed from, address indexed to, uint256 value);/*** @dev Emitted when the allowance of a `spender` for an `owner` is set by* a call to {approve}. `value` is the new allowance.*/event Approval(address indexed owner, address indexed spender, uint256 value);/*** @dev Returns the value of tokens in existence.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/ERC4626.sol)pragma solidity ^0.8.20;import {IERC20, IERC20Metadata, ERC20} from "../ERC20.sol";import {SafeERC20} from "../utils/SafeERC20.sol";import {IERC4626} from "../../../interfaces/IERC4626.sol";import {Math} from "../../../utils/math/Math.sol";/*** @dev Implementation of the ERC-4626 "Tokenized Vault Standard" as defined in* https://eips.ethereum.org/EIPS/eip-4626[ERC-4626].** This extension allows the minting and burning of "shares" (represented using the ERC-20 inheritance) in exchange for* underlying "assets" through standardized {deposit}, {mint}, {redeem} and {burn} workflows. This contract extends* the ERC-20 standard. Any additional extensions included along it would affect the "shares" token represented by this* contract and not the "assets" token which is an independent contract.** [CAUTION]* ====* In empty (or nearly empty) ERC-4626 vaults, deposits are at high risk of being stolen through frontrunning* with a "donation" to the vault that inflates the price of a share. This is variously known as a donation or inflation* attack and is essentially a problem of slippage. Vault deployers can protect against this attack by making an initial* deposit of a non-trivial amount of the asset, such that price manipulation becomes infeasible. Withdrawals may* similarly be affected by slippage. Users can protect against this attack as well as unexpected slippage in general by
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/utils/SafeERC20.sol)pragma solidity ^0.8.20;import {IERC20} from "../IERC20.sol";import {IERC1363} from "../../../interfaces/IERC1363.sol";import {Address} from "../../../utils/Address.sol";/*** @title SafeERC20* @dev Wrappers around ERC-20 operations that throw on failure (when the token* contract returns false). Tokens that return no value (and instead revert or* throw on failure) are also supported, non-reverting calls are assumed to be* successful.* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.*/library SafeERC20 {/*** @dev An operation with an ERC-20 token failed.*/error SafeERC20FailedOperation(address token);/*** @dev Indicates a failed `decreaseAllowance` request.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol)pragma solidity ^0.8.20;/*** @dev Contract module that helps prevent reentrant calls to a function.** Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier* available, which can be applied to functions to make sure there are no nested* (reentrant) calls to them.** Note that because there is a single `nonReentrant` guard, functions marked as* `nonReentrant` may not call one another. This can be worked around by making* those functions `private`, and then adding `external` `nonReentrant` entry* points to them.** TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at,* consider using {ReentrancyGuardTransient} instead.** TIP: If you would like to learn more about reentrancy and alternative ways* to protect against it, check out our blog post* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].*/abstract contract ReentrancyGuard {// Booleans are more expensive than uint256 or any type that takes up a full
1234567891011121314151617181920212223242526// SPDX-License-Identifier: BUSL-1.1pragma solidity ^0.8.26;pragma abicoder v2;interface IVoter {error ACTIVE_GAUGE(address gauge);error GAUGE_INACTIVE(address gauge);error ALREADY_WHITELISTED(address token);error NOT_AUTHORIZED(address caller);error NOT_WHITELISTED();error NOT_POOL();error NOT_INIT();error LENGTH_MISMATCH();error NO_GAUGE();error ALREADY_DISTRIBUTED(address gauge, uint256 period);error ZERO_VOTE(address pool);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-2.0-or-laterpragma solidity ^0.8.24;import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {IVoter} from "./IVoter.sol";interface IXShadow is IERC20 {struct VestPosition {/// @dev amount of xShadowuint256 amount;/// @dev start unix timestampuint256 start;/// @dev start + MAX_VEST (end timestamp)uint256 maxEnd;/// @dev vest identifier (starting from 0)uint256 vestID;}error NOT_WHITELISTED(address);error NOT_MINTER();error ZERO();error NO_VEST();error ALREADY_EXEMPT();error NOT_EXEMPT();error CANT_RESCUE();error NO_CHANGE();
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-2.0-or-laterpragma solidity ^0.8.26;interface IVoteModule {/** Custom Errors *//// @dev == 0error ZERO_AMOUNT();/// @dev if address is not xShadowerror NOT_XSHADOW();/// @dev error for when the cooldown period has not been passed yeterror COOLDOWN_ACTIVE();/// @dev error for when you try to deposit or withdraw for someone who isn't the msg.sendererror NOT_VOTEMODULE();/// @dev error for when the caller is not authorizederror UNAUTHORIZED();/// @dev error for accessHub gated functionserror NOT_ACCESSHUB();/// @dev error for when there is no change of stateerror NO_CHANGE();
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-2.0-or-laterpragma solidity ^0.8.24;import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";interface IX33 is IERC20 {/// @dev parameters passed to the aggregator swapstruct AggregatorParams {address aggregator; // address of the whitelisted aggregatoraddress tokenIn; // token to swap fromuint256 amountIn; // amount of tokenIn to swapuint256 minAmountOut; // minimum amount of tokenOut to receivebytes callData; // encoded swap calldata}/*** Error strings*/error ZERO();error NOT_ENOUGH();error NOT_CONFORMED_TO_SCALE(uint256);error NOT_ACCESSHUB(address);error LOCKED();error REBASE_IN_PROGRESS();error AGGREGATOR_REVERTED(bytes);error AMOUNT_OUT_TOO_LOW(uint256);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)pragma solidity ^0.8.20;import {IERC20} from "../IERC20.sol";/*** @dev Interface for the optional metadata functions from the ERC-20 standard.*/interface IERC20Metadata is IERC20 {/*** @dev Returns the name of the token.*/function name() external view returns (string memory);/*** @dev Returns the symbol of the token.*/function symbol() external view returns (string memory);/*** @dev Returns the decimals places of the token.*/function decimals() external view returns (uint8);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)pragma solidity ^0.8.20;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}function _contextSuffixLength() internal view virtual returns (uint256) {return 0;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)pragma solidity ^0.8.20;/*** @dev Standard ERC-20 Errors* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.*/interface IERC20Errors {/*** @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.* @param balance Current balance for the interacting account.* @param needed Minimum amount required to perform a transfer.*/error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);/*** @dev Indicates a failure with the token `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.*/error ERC20InvalidSender(address sender);/*** @dev Indicates a failure with the token `receiver`. Used in transfers.* @param receiver Address to which tokens are being transferred.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC4626.sol)pragma solidity ^0.8.20;import {IERC20} from "../token/ERC20/IERC20.sol";import {IERC20Metadata} from "../token/ERC20/extensions/IERC20Metadata.sol";/*** @dev Interface of the ERC-4626 "Tokenized Vault Standard", as defined in* https://eips.ethereum.org/EIPS/eip-4626[ERC-4626].*/interface IERC4626 is IERC20, IERC20Metadata {event Deposit(address indexed sender, address indexed owner, uint256 assets, uint256 shares);event Withdraw(address indexed sender,address indexed receiver,address indexed owner,uint256 assets,uint256 shares);/*** @dev Returns the address of the underlying token used for the Vault for accounting, depositing, and withdrawing.*
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/Math.sol)pragma solidity ^0.8.20;import {Panic} from "../Panic.sol";import {SafeCast} from "./SafeCast.sol";/*** @dev Standard math utilities missing in the Solidity language.*/library Math {enum Rounding {Floor, // Toward negative infinityCeil, // Toward positive infinityTrunc, // Toward zeroExpand // Away from zero}/*** @dev Returns the addition of two unsigned integers, with an success flag (no overflow).*/function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {unchecked {uint256 c = a + b;if (c < a) return (false, 0);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC1363.sol)pragma solidity ^0.8.20;import {IERC20} from "./IERC20.sol";import {IERC165} from "./IERC165.sol";/*** @title IERC1363* @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].** Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract* after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.*/interface IERC1363 is IERC20, IERC165 {/** Note: the ERC-165 identifier for this interface is 0xb0202a11.* 0xb0202a11 ===* bytes4(keccak256('transferAndCall(address,uint256)')) ^* bytes4(keccak256('transferAndCall(address,uint256,bytes)')) ^* bytes4(keccak256('transferFromAndCall(address,address,uint256)')) ^* bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) ^* bytes4(keccak256('approveAndCall(address,uint256)')) ^* bytes4(keccak256('approveAndCall(address,uint256,bytes)'))*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/Address.sol)pragma solidity ^0.8.20;import {Errors} from "./Errors.sol";/*** @dev Collection of functions related to the address type*/library Address {/*** @dev There's no code at `target` (it is not a contract).*/error AddressEmptyCode(address target);/*** @dev Replacement for Solidity's `transfer`: sends `amount` wei to* `recipient`, forwarding all available gas and reverting on errors.** https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost* of certain opcodes, possibly making contracts go over the 2300 gas limit* imposed by `transfer`, making them unable to receive funds via* `transfer`. {sendValue} removes this limitation.** https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)pragma solidity ^0.8.20;/*** @dev Helper library for emitting standardized panic codes.** ```solidity* contract Example {* using Panic for uint256;** // Use any of the declared internal constants* function foo() { Panic.GENERIC.panic(); }** // Alternatively* function foo() { Panic.panic(Panic.GENERIC); }* }* ```** Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].** _Available since v5.1._*/// slither-disable-next-line unused-statelibrary Panic {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SafeCast.sol)// This file was procedurally generated from scripts/generate/templates/SafeCast.js.pragma solidity ^0.8.20;/*** @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow* checks.** Downcasting from uint256/int256 in Solidity does not revert on overflow. This can* easily result in undesired exploitation or bugs, since developers usually* assume that overflows raise errors. `SafeCast` restores this intuition by* reverting the transaction when such an operation overflows.** Using this library instead of the unchecked operations eliminates an entire* class of bugs, so it's recommended to use it always.*/library SafeCast {/*** @dev Value doesn't fit in an uint of `bits` size.*/error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);/*** @dev An int value doesn't fit in an uint of `bits` size.
123456// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol)pragma solidity ^0.8.20;import {IERC20} from "../token/ERC20/IERC20.sol";
123456// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)pragma solidity ^0.8.20;import {IERC165} from "../utils/introspection/IERC165.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/Errors.sol)pragma solidity ^0.8.20;/*** @dev Collection of common custom errors used in multiple contracts** IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.* It is recommended to avoid relying on the error API for critical functionality.** _Available since v5.1._*/library Errors {/*** @dev The ETH balance of the account is not enough to perform the operation.*/error InsufficientBalance(uint256 balance, uint256 needed);/*** @dev A call to an address target failed. The target may have reverted.*/error FailedCall();/*** @dev The deployment failed.
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC-165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[ERC].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/interface IERC165 {/*** @dev Returns true if this contract implements the interface defined by* `interfaceId`. See the corresponding* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]* to learn more about how these ids are created.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
1234567891011121314151617181920212223242526{"remappings": ["@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@forge-std-1.9.4/=dependencies/forge-std-1.9.4/","@layerzerolabs/=node_modules/@layerzerolabs/","@layerzerolabs/lz-evm-protocol-v2/=node_modules/@layerzerolabs/lz-evm-protocol-v2/","@openzeppelin-contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@openzeppelin-contracts/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.1.0/","erc4626-tests/=dependencies/erc4626-property-tests-1.0/","forge-std/=dependencies/forge-std-1.9.4/src/","permit2/=lib/permit2/","@openzeppelin-3.4.2/=node_modules/@openzeppelin-3.4.2/","@openzeppelin-contracts-5.1.0/=dependencies/@openzeppelin-contracts-5.1.0/","@openzeppelin-contracts-upgradeable-5.1.0/=dependencies/@openzeppelin-contracts-upgradeable-5.1.0/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","ds-test/=node_modules/ds-test/","erc4626-property-tests-1.0/=dependencies/erc4626-property-tests-1.0/","eth-gas-reporter/=node_modules/eth-gas-reporter/","forge-std-1.9.4/=dependencies/forge-std-1.9.4/src/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/=node_modules/solidity-bytes-utils/","solmate/=node_modules/solmate/"],
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_accessHub","type":"address"},{"internalType":"address","name":"_xShadow","type":"address"},{"internalType":"address","name":"_voter","type":"address"},{"internalType":"address","name":"_voteModule","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"AGGREGATOR_NOT_WHITELISTED","type":"error"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"AGGREGATOR_REVERTED","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"AMOUNT_OUT_TOO_LOW","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxDeposit","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxMint","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxRedeem","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxWithdraw","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"FORBIDDEN_TOKEN","type":"error"},{"inputs":[],"name":"LOCKED","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"NOT_ACCESSHUB","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"NOT_AUTHORIZED","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"NOT_CONFORMED_TO_SCALE","type":"error"},{"inputs":[],"name":"NOT_ENOUGH","type":"error"},{"inputs":[],"name":"REBASE_IN_PROGRESS","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"ZERO","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"aggregator","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AggregatorWhitelistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"feeDistributors","type":"address[]"},{"indexed":false,"internalType":"address[][]","name":"tokens","type":"address[][]"}],"name":"ClaimedIncentives","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldRatio","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newRatio","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Compounded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ratioAtDeposit","type":"uint256"}],"name":"Entered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_outAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ratioAtWithdrawal","type":"uint256"}],"name":"Exited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_oldOperator","type":"address"},{"indexed":false,"internalType":"address","name":"_newOperator","type":"address"}],"name":"NewOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldRatio","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newRatio","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Rebased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"tokenIn","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"}],"name":"SwappedBribe","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_ts","type":"uint256"}],"name":"Unlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_index","type":"uint256"}],"name":"UpdatedIndex","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"accessHub","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_feeDistributors","type":"address[]"},{"internalType":"address[][]","name":"_tokens","type":"address[][]"}],"name":"claimIncentives","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPeriod","outputs":[{"internalType":"uint256","name":"period","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCooldownActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isUnlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"periodUnlockStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ratio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shadow","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_pools","type":"address[]"},{"internalType":"uint256[]","name":"_weights","type":"uint256[]"}],"name":"submitVotes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct IX33.AggregatorParams","name":"_params","type":"tuple"}],"name":"swapIncentiveViaAggregator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOperator","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"voteModule","outputs":[{"internalType":"contract IVoteModule","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voter","outputs":[{"internalType":"contract IVoter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_aggregator","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"whitelistAggregator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedAggregators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xShadow","outputs":[{"internalType":"contract IXShadow","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
61016080604052346103fe5760a081612ec580380380916100208285610611565b8339810103126103fe5761003381610634565b9061004060208201610634565b61004c60408301610634565b90610065608061005e60608601610634565b9401610634565b9160018060a01b031690604094855161007e8782610611565b601b81527f536861646f77204c6971756964205374616b696e6720546f6b656e000000000060208201528651906100b58883610611565b600382526278333360e81b60208301528051906001600160401b0382116105145760035490600182811c92168015610607575b60208310146104f65781601f849311610599575b50602090601f8311600114610533575f92610528575b50508160011b915f199060031b1c1916176003555b8051906001600160401b03821161051457600454600181811c9116801561050a575b60208210146104f657601f8111610493575b50602090601f8311600114610427579180600497969492602096945f9261041c575b50508160011b915f199060031b1c19161786555b61019a83610660565b9015610414575b60a05260808390526001600555600680546001600160a01b0319166001600160a01b039290921691909117905560c0526101008190528551631e49236560e21b815293849182905afa91821561040a575f926103c2575b5060e08290526001600160a01b03908116610120529182166101405262093a80420460075561010051835163095ea7b360e01b815290831660048201525f19602482015291602091839160449183915f91165af1801561039b576103a5575b506101005161012051825163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291602091839160449183915f91165af1801561039b5761036c575b50516127b290816107138239608051816113e1015260a05181611419015260c0518181816106a801528181610f7d015281816112c301526114a9015260e05181818161027101528181610b3d01526115fc0152610100518181816102ad01528181610dd20152818161102c0152818161139e01526125370152610120518181816103210152818161083c01528181610e0101528181610f040152818161119101528181611d9b01528181611e330152612463015261014051818181610479015281816105ac015261135b0152f35b61038d9060203d602011610394575b6103858183610611565b810190610648565b505f61029e565b503d61037b565b82513d5f823e3d90fd5b6103bd9060203d602011610394576103858183610611565b610257565b9091506020813d602011610402575b816103de60209383610611565b810103126103fe5751906001600160a01b03821682036103fe575f6101f8565b5f80fd5b3d91506103d1565b84513d5f823e3d90fd5b5060126101a1565b015190505f8061017d565b90601f1983169160045f52815f20925f5b81811061047b57509260019285926020989660049b9a989610610463575b505050811b018655610191565b01515f1960f88460031b161c191690555f8080610456565b92936020600181928786015181550195019301610438565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c810191602085106104ec575b601f0160051c01905b8181106104e1575061015b565b5f81556001016104d4565b90915081906104cb565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610149565b634e487b7160e01b5f52604160045260245ffd5b015190505f80610112565b60035f9081528281209350601f198516905b8181106105815750908460019594939210610569575b505050811b01600355610127565b01515f1960f88460031b161c191690555f808061055b565b92936020600181928786015181550195019301610545565b60035f529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810191602085106105fd575b90601f859493920160051c01905b8181106105ef57506100fc565b5f81558493506001016105e2565b90915081906105d4565b91607f16916100e8565b601f909101601f19168101906001600160401b0382119082101761051457604052565b51906001600160a01b03821682036103fe57565b908160209103126103fe575180151581036103fe5790565b5f8091604051602081019063313ce56760e01b825260048152610684602482610611565b51916001600160a01b03165afa3d1561070a573d906001600160401b03821161051457604051916106bf601f8201601f191660200184610611565b82523d5f602084013e5b806106fe575b6106db575b505f905f90565b6020818051810103126103fe576020015160ff81116106d4579060ff6001921690565b506020815110156106cf565b6060906106c956fe60806040526004361015610011575f80fd5b5f5f3560e01c806301e1d11414611bce57806306fdde0314611ada57806307a2d13a14611337578063095ea7b314611a005780630a28a477146119e25780630a441f7b146119c557806318160ddd146119a85780631c4c78431461198e5780631ed241951461196e5780631fe834a21461156357806323b872dd1461152b57806329605e7714611460578063313ce5671461140557806338d52e0f146113c2578063402d267d1461077c5780634256f5e71461137f57806346c96aac1461133c5780634cdad50614611337578063570ca735146113115780635898eaef146112685780636e553f651461111e57806370a082311461071a57806371ca337d146111035780637a4e4ecf14610f4d5780638380edb714610f2857806385caf28b14610ee457806394bf804d14610d5f57806395d89b4114610c4e578063a4c2fff614610c1f578063a69df4b514610b93578063a9059cbb14610b61578063ac600a3c14610b1d578063b24c7d2f14610ae0578063b3d7f6b914610ac1578063b460af9414610a49578063b4cd143a1461080a578063ba08765214610781578063c63d75b61461077c578063c6e6f5921461043f578063ce96cb7714610758578063d905777e1461071a578063dd62ed3e146106cc578063e7589b3914610688578063ed1224e514610578578063ee0b5af714610444578063ef8b30f71461043f5763f69e20461461021f575f80fd5b3461043c578060031936011261043c57610246336001600160a01b03600654163314611ec3565b61024e611fb3565b6040516370a0823160e01b81523060048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104315783916103fb575b50826001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156103e2578180916024604051809481937f12e826740000000000000000000000000000000000000000000000000000000083528860048401525af180156103d7576103e6575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156103e257818091600460405180948193631bcbec4d60e31b83525af180156103d7576103be575b50507fb969f0ab9501336670614935773c380be93ea2f2b43a9f7e94f036c299b79afc916103b861039a611fb3565b92604051938493846040919493926060820195825260208201520152565b0390a180f35b816103c891611d56565b6103d357825f61036b565b8280fd5b6040513d84823e3d90fd5b5080fd5b816103f091611d56565b6103d357825f610316565b90506020813d602011610429575b8161041660209383611d56565b8101031261042557515f6102a1565b5f80fd5b3d9150610409565b6040513d85823e3d90fd5b80fd5b611cb5565b503461043c5761045336611d04565b61046e93929193336001600160a01b03600654163314611ec3565b846001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156103e257816104f184928783886105038c604051988997889687957f307f38fa00000000000000000000000000000000000000000000000000000000875230600488015260606024880152606487019161207b565b848103600319016044860152916120c8565b03925af180156103d75761055f575b50507f5bad3c23665e1d2d83945cc9909833d5cbba0e4d8fda2ddc65e02c87d51ebc7d936103b89161055160405195869560408752604087019161207b565b9184830360208601526120c8565b8161056991611d56565b61057457845f610512565b8480fd5b503461043c578061058836611d04565b9091926105a2336001600160a01b03600654163314611ec3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b156106845761061690604051957fe4ff5c2f00000000000000000000000000000000000000000000000000000000875230600488015260606024880152606487019161207b565b848103600319016044860152828152917f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8111610684578560208682968196829560051b809285830137010301925af180156103d7576106735750f35b8161067d91611d56565b61043c5780f35b8580fd5b503461043c578060031936011261043c5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461043c57604036600319011261043c576001600160a01b0360406106f0611c2a565b92826106fa611c40565b9416815260016020522091165f52602052602060405f2054604051908152f35b503461043c57602036600319011261043c576020610750610739611c2a565b6001600160a01b03165f525f60205260405f205490565b604051908152f35b503461043c57602036600319011261043c576020610750610777611c2a565b61205f565b611c56565b503461043c5761079036611c7b565b926107ac846001600160a01b03165f525f60205260405f205490565b8084116107cd5760208561075086866107c48261217f565b938491336123d8565b9150916001600160a01b036064947fb94abeec00000000000000000000000000000000000000000000000000000000855216600452602452604452fd5b503461043c578060031936011261043c57610832336001600160a01b03600654163314611ec3565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166040517febe2b12b000000000000000000000000000000000000000000000000000000008152602081600481855afa908115610431578391610a17575b504211156109ef576108a9611fb3565b9082604051917e8cc262000000000000000000000000000000000000000000000000000000008352306004840152602083602481845afa9283156103d75782936109b8575b50803b156103e2576040517f3d18b912000000000000000000000000000000000000000000000000000000008152828160048183865af19081156104315783916109a3575b5050803b156103e257818091600460405180948193631bcbec4d60e31b83525af180156103d75761098e575b50507fd1a8a452d776b1b6802824ca2e8489c6448e2cb0963f552a9a19ab4ae064ca58916103b861039a611fb3565b8161099891611d56565b6103d357825f61095f565b816109ad91611d56565b6103e257815f610933565b915091506020813d6020116109e7575b816109d560209383611d56565b8101031261042557839051915f6108ee565b3d91506109c8565b6004827f4e2ec0ea000000000000000000000000000000000000000000000000000000008152fd5b90506020813d602011610a41575b81610a3260209383611d56565b8101031261042557515f610899565b3d9150610a25565b503461043c57610a5836611c7b565b9192610a638361205f565b808511610a84576020846107508588610a7b816121ac565b938492336123d8565b60649250846001600160a01b03857ffe9cceec00000000000000000000000000000000000000000000000000000000855216600452602452604452fd5b503461043c57602036600319011261043c576020610750600435612151565b503461043c57602036600319011261043c5760ff60406020926001600160a01b03610b09611c2a565b168152600984522054166040519015158152f35b503461043c578060031936011261043c5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461043c57604036600319011261043c57610b88610b7e611c2a565b6024359033612302565b602060405160018152f35b503461043c578060031936011261043c57610bbb336001600160a01b03600654163314611ec3565b610bc3611dfd565b610c105762093a8042048152600860205260408120600160ff198254161790557ff27b6ce5b2f5e68ddb2fd95a8a909d4ecf1daaac270935fff052feacb24f18426020604051428152a180f35b8063a1422f6960e01b60049252fd5b503461043c57602036600319011261043c5760ff60406020926004358152600884522054166040519015158152f35b503461043c578060031936011261043c576040519080600454908160011c91600181168015610d55575b602084108114610d4157838652908115610d1a5750600114610cbd575b610cb984610ca581860382611d56565b604051918291602083526020830190611be8565b0390f35b600481527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b808210610d0057509091508101602001610ca582610c95565b919260018160209254838588010152019101909291610ce7565b60ff191660208087019190915292151560051b85019092019250610ca59150839050610c95565b602483634e487b7160e01b81526022600452fd5b92607f1692610c78565b503461043c57604036600319011261043c57600435610d7c611c40565b91610d8682612151565b91610d8f61200c565b15610ed557610df76040516323b872dd60e01b602082015233602482015230604482015284606482015260648152610dc8608482611d56565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661270f565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156103d35782809160246040518094819363b6b55f2560e01b83528960048401525af1801561043157908391610ec0575b50506001600160a01b038416918215610ead5750610e7481602095612605565b60405190838252848201527fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d760403392a3604051908152f35b8063ec442f0560e01b6024925280600452fd5b81610eca91611d56565b6103e257815f610e54565b60048263a1422f6960e01b8152fd5b503461043c578060031936011261043c5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461043c578060031936011261043c576020610f4361200c565b6040519015158152f35b503461043c57604036600319011261043c57610f67611c2a565b610f6f612207565b610fa4336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314611f76565b610fac611d78565b60405163a9059cbb60e01b815233600482015260248035908201529190602083604481876001600160a01b0387165af19283156110cb5761105d936110d6575b506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152306024820152927f000000000000000000000000000000000000000000000000000000000000000090921691602090849081906044820190565b0381855afa9283156110cb578493611095575b5061107f8261108d9415611f14565b611087611d78565b14611f14565b600160055580f35b92506020833d6020116110c3575b816110b060209383611d56565b810103126104255791519161107f611070565b3d91506110a3565b6040513d86823e3d90fd5b6110f79060203d6020116110fc575b6110ef8183611d56565b810190611f51565b610fec565b503d6110e5565b503461043c578060031936011261043c576020610750611fb3565b50346104255760403660031901126104255760043561113b611c40565b91611145826121da565b9161114e61200c565b15611259576111876040516323b872dd60e01b602082015233602482015230604482015282606482015260648152610dc8608482611d56565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b15610425575f809160246040518094819363b6b55f2560e01b83528760048401525af1801561124e57611239575b506001600160a01b038416918215610ead575061120083602095612605565b60405190815282848201527fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d760403392a3604051908152f35b6112469192505f90611d56565b5f905f6111e1565b6040513d5f823e3d90fd5b63a1422f6960e01b5f5260045ffd5b3461042557604036600319011261042557611281611c2a565b60243590811515809203610425577f51372928fc73bc5fef2c5bc8324eef22ddcbc66388d34c91e02f1e67b97159bb916001600160a01b036040926112ea33837f0000000000000000000000000000000000000000000000000000000000000000163314611f76565b1690815f526009602052825f2060ff1981541660ff831617905582519182526020820152a1005b34610425575f3660031901126104255760206001600160a01b0360065416604051908152f35b611c0c565b34610425575f3660031901126104255760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610425575f3660031901126104255760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610425575f3660031901126104255760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610425575f3660031901126104255760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161144c57602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b34610425576020366003190112610425577ff1e04d73c4304b5ff164f9d10c7473e2a1593b740674a6107975e2a7001c1e5c6001600160a01b036114a2611c2a565b6114d033837f0000000000000000000000000000000000000000000000000000000000000000163314611f76565b611526826006549216807fffffffffffffffffffffffff000000000000000000000000000000000000000084161760065560405193849316839092916001600160a01b0360209181604085019616845216910152565b0390a1005b3461042557606036600319011261042557610b88611547611c2a565b61154f611c40565b6044359161155e833383612240565b612302565b346104255760203660031901126104255760043567ffffffffffffffff811161042557368190036004820160a0600319830112610425576115a2612207565b6115b9336001600160a01b03600654163314611ec3565b6001600160a01b036115ca82611f00565b165f52600960205260ff60405f2054166115e382611f00565b901561193957506115f2611d78565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916040516370a0823160e01b8152306004820152602081602481875afa90811561124e575f91611907575b50602486019461166b85806001600160a01b036116638a611f00565b161415611f14565b6116e06001600160a01b0361167f88611f00565b1693602061168c82611f00565b60448b01359687915f6040518097819582947f095ea7b300000000000000000000000000000000000000000000000000000000845260048401602090939291936001600160a01b0360408201951681520152565b03925af191821561124e576116fa926118ea575b50611f00565b90608488013590602219018112156104255787019060048201359167ffffffffffffffff83116104255760240190823603821361042557825f80949381946040519384928337810182815203925af13d156118e2573d9067ffffffffffffffff82116118ce5760405191611778601f8201601f191660200184611d56565b82523d5f602084013e5b1561188c5750604051906370a0823160e01b8252306004830152602082602481885afa91821561124e575f92611856575b506117c86064916117c2611d78565b93611f69565b960135861061182a577fab75539fb3c9e26222b41138a9c5f7337991b1b654406bf6723d949ab9ccd03c936040936118009214611f14565b6001600160a01b03611816816006541695611f00565b169482519182526020820152a36001600555005b857f28a4d357000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011611884575b8161187260209383611d56565b810103126104255751906117c86117b3565b3d9150611865565b6118ca906040519182917f34321ebc000000000000000000000000000000000000000000000000000000008352602060048401526024830190611be8565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b606090611782565b6119029060203d6020116110fc576110ef8183611d56565b6116f4565b90506020813d602011611931575b8161192260209383611d56565b81010312610425575186611647565b3d9150611915565b6001600160a01b03907f1d5fcfda000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b34610425575f36600319011261042557602062093a804204604051908152f35b34610425575f366003190112610425576020610f43611dfd565b34610425575f366003190112610425576020600254604051908152f35b34610425575f366003190112610425576020600754604051908152f35b346104255760203660031901126104255760206107506004356121ac565b3461042557604036600319011261042557611a19611c2a565b602435903315611aae576001600160a01b0316908115611a8257335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b34610425575f366003190112610425576040515f6003548060011c90600181168015611bc4575b602083108114611bb057828552908115611b8c5750600114611b2e575b610cb983610ca581850382611d56565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210611b7257509091508101602001610ca5611b1e565b919260018160209254838588010152019101909291611b5a565b60ff191660208086019190915291151560051b84019091019150610ca59050611b1e565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611b01565b34610425575f366003190112610425576020610750611d78565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461042557602036600319011261042557602061075060043561217f565b600435906001600160a01b038216820361042557565b602435906001600160a01b038216820361042557565b3461042557602036600319011261042557611c6f611c2a565b5060206040515f198152f35b606090600319011261042557600435906024356001600160a01b038116810361042557906044356001600160a01b03811681036104255790565b346104255760203660031901126104255760206107506004356121da565b9181601f840112156104255782359167ffffffffffffffff8311610425576020808501948460051b01011161042557565b60406003198201126104255760043567ffffffffffffffff81116104255781611d2f91600401611cd3565b929092916024359067ffffffffffffffff821161042557611d5291600401611cd3565b9091565b90601f8019910116810190811067ffffffffffffffff8211176118ce57604052565b6040516370a0823160e01b81523060048201526020816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561124e575f91611dce575090565b90506020813d602011611df5575b81611de960209383611d56565b81010312610425575190565b3d9150611ddc565b6040517f251c1aa30000000000000000000000000000000000000000000000000000000081526020816004816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561124e575f91611e73575b504210611e6e575f90565b600190565b90506020813d602011611e9d575b81611e8e60209383611d56565b8101031261042557515f611e63565b3d9150611e81565b8115611eaf570490565b634e487b7160e01b5f52601260045260245ffd5b15611ecb5750565b6001600160a01b03907f2bc10c33000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b356001600160a01b03811681036104255790565b15611f1c5750565b6001600160a01b03907fa4c4b52d000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90816020910312610425575180151581036104255790565b9190820391821161144c57565b15611f7e5750565b6001600160a01b03907f08cd4c01000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6002548015611ff257611fc4611d78565b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561144c57611fef91611ea5565b90565b50670de0b6b3a764000090565b9190820180921161144c57565b62093a8042046001810180821161144c5762093a8081029080820462093a80149015171561144c57612042610e10914290611f69565b111561205a575f52600860205260ff60405f20541690565b505f90565b6001600160a01b03165f525f602052611fef60405f205461217f565b916020908281520191905f905b8082106120955750505090565b9091928335906001600160a01b038216820361042557602080916001600160a01b03600194168152019401920190612088565b90602083828152019060208160051b85010193835f915b8383106120ef5750505050505090565b909192939495601f198282030186528635601e1984360301811215610425578301906020823592019167ffffffffffffffff8111610425578060051b3603831361042557612143602092839260019561207b565b9801960194930191906120df565b612159611d78565b906001820180921161144c576002546001810180911161144c57611fef926001926125a7565b612187611d78565b906001820180921161144c576002546001810180911161144c57611fef925f926125a7565b600254906001820180921161144c576121c3611d78565b6001810180911161144c57611fef926001926125a7565b600254906001820180921161144c576121f1611d78565b6001810180911161144c57611fef925f926125a7565b600260055414612218576002600555565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b03909291921691825f52600160205260405f206001600160a01b0382165f5260205260405f2054925f19840361227e575b50505050565b8284106122c5578015611aae576001600160a01b03821615611a82575f5260016020526001600160a01b0360405f2091165f5260205260405f20910390555f808080612278565b506001600160a01b0383917ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b6001600160a01b03169081156123ac576001600160a01b031691821561239957815f525f60205260405f205481811061238057817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b9193906001600160a01b03851694826001600160a01b03851694878603612596575b50505084156123ac57845f525f60205260405f205482811061257b578290865f525f6020520360405f205581600254036002555f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051868152a36001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15610425575f80926024604051809581937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528a60048401525af190811561124e577ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db936040936001600160a01b039361256b575b50835163a9059cbb60e01b60208201526001600160a01b03831660248201526044808201899052815261255c90612534606482611d56565b847f00000000000000000000000000000000000000000000000000000000000000001661270f565b835196875260208701521693a4565b5f61257591611d56565b5f6124fc565b90508463391434e360e21b5f5260045260245260445260645ffd5b61259f92612240565b5f82816123fa565b92916125b4818386612672565b9260048110156125f15760018091161491826125da575b5050611fef9250151590611fff565b9080925015611eaf57611fef930915155f806125cb565b634e487b7160e01b5f52602160045260245ffd5b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206001600160a01b035f9361263e86600254611fff565b60025516938415841461265d5780600254036002555b604051908152a3565b84845283825260408420818154019055612654565b91818302915f198185099383808610950394808603951461270257848311156126ea5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b505090611fef9250611ea5565b905f602091828151910182855af11561124e575f513d61277357506001600160a01b0381163b155b61273e5750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6001141561273756fea264697066735822122064fab6b9dc14264c19753730fd4c3d63cc570acafc484ac33e773afa7273ada964736f6c634300081c00330000000000000000000000005be2e859d0c2453c9aa062860ca27711ff5534320000000000000000000000005e7a9eea6988063a4dbb9ccddb3e04c923e8e37f0000000000000000000000005050bc082ff4a74fb6b0b04385defddb114b24240000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4
Deployed Bytecode
0x60806040526004361015610011575f80fd5b5f5f3560e01c806301e1d11414611bce57806306fdde0314611ada57806307a2d13a14611337578063095ea7b314611a005780630a28a477146119e25780630a441f7b146119c557806318160ddd146119a85780631c4c78431461198e5780631ed241951461196e5780631fe834a21461156357806323b872dd1461152b57806329605e7714611460578063313ce5671461140557806338d52e0f146113c2578063402d267d1461077c5780634256f5e71461137f57806346c96aac1461133c5780634cdad50614611337578063570ca735146113115780635898eaef146112685780636e553f651461111e57806370a082311461071a57806371ca337d146111035780637a4e4ecf14610f4d5780638380edb714610f2857806385caf28b14610ee457806394bf804d14610d5f57806395d89b4114610c4e578063a4c2fff614610c1f578063a69df4b514610b93578063a9059cbb14610b61578063ac600a3c14610b1d578063b24c7d2f14610ae0578063b3d7f6b914610ac1578063b460af9414610a49578063b4cd143a1461080a578063ba08765214610781578063c63d75b61461077c578063c6e6f5921461043f578063ce96cb7714610758578063d905777e1461071a578063dd62ed3e146106cc578063e7589b3914610688578063ed1224e514610578578063ee0b5af714610444578063ef8b30f71461043f5763f69e20461461021f575f80fd5b3461043c578060031936011261043c57610246336001600160a01b03600654163314611ec3565b61024e611fb3565b6040516370a0823160e01b81523060048201526020816024816001600160a01b037f0000000000000000000000003333b97138d4b086720b5ae8a7844b1345a33333165afa9081156104315783916103fb575b50826001600160a01b037f0000000000000000000000005050bc082ff4a74fb6b0b04385defddb114b242416803b156103e2578180916024604051809481937f12e826740000000000000000000000000000000000000000000000000000000083528860048401525af180156103d7576103e6575b506001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b416803b156103e257818091600460405180948193631bcbec4d60e31b83525af180156103d7576103be575b50507fb969f0ab9501336670614935773c380be93ea2f2b43a9f7e94f036c299b79afc916103b861039a611fb3565b92604051938493846040919493926060820195825260208201520152565b0390a180f35b816103c891611d56565b6103d357825f61036b565b8280fd5b6040513d84823e3d90fd5b5080fd5b816103f091611d56565b6103d357825f610316565b90506020813d602011610429575b8161041660209383611d56565b8101031261042557515f6102a1565b5f80fd5b3d9150610409565b6040513d85823e3d90fd5b80fd5b611cb5565b503461043c5761045336611d04565b61046e93929193336001600160a01b03600654163314611ec3565b846001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f16803b156103e257816104f184928783886105038c604051988997889687957f307f38fa00000000000000000000000000000000000000000000000000000000875230600488015260606024880152606487019161207b565b848103600319016044860152916120c8565b03925af180156103d75761055f575b50507f5bad3c23665e1d2d83945cc9909833d5cbba0e4d8fda2ddc65e02c87d51ebc7d936103b89161055160405195869560408752604087019161207b565b9184830360208601526120c8565b8161056991611d56565b61057457845f610512565b8480fd5b503461043c578061058836611d04565b9091926105a2336001600160a01b03600654163314611ec3565b6001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f1690813b156106845761061690604051957fe4ff5c2f00000000000000000000000000000000000000000000000000000000875230600488015260606024880152606487019161207b565b848103600319016044860152828152917f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8111610684578560208682968196829560051b809285830137010301925af180156103d7576106735750f35b8161067d91611d56565b61043c5780f35b8580fd5b503461043c578060031936011261043c5760206040516001600160a01b037f0000000000000000000000005e7a9eea6988063a4dbb9ccddb3e04c923e8e37f168152f35b503461043c57604036600319011261043c576001600160a01b0360406106f0611c2a565b92826106fa611c40565b9416815260016020522091165f52602052602060405f2054604051908152f35b503461043c57602036600319011261043c576020610750610739611c2a565b6001600160a01b03165f525f60205260405f205490565b604051908152f35b503461043c57602036600319011261043c576020610750610777611c2a565b61205f565b611c56565b503461043c5761079036611c7b565b926107ac846001600160a01b03165f525f60205260405f205490565b8084116107cd5760208561075086866107c48261217f565b938491336123d8565b9150916001600160a01b036064947fb94abeec00000000000000000000000000000000000000000000000000000000855216600452602452604452fd5b503461043c578060031936011261043c57610832336001600160a01b03600654163314611ec3565b6001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4166040517febe2b12b000000000000000000000000000000000000000000000000000000008152602081600481855afa908115610431578391610a17575b504211156109ef576108a9611fb3565b9082604051917e8cc262000000000000000000000000000000000000000000000000000000008352306004840152602083602481845afa9283156103d75782936109b8575b50803b156103e2576040517f3d18b912000000000000000000000000000000000000000000000000000000008152828160048183865af19081156104315783916109a3575b5050803b156103e257818091600460405180948193631bcbec4d60e31b83525af180156103d75761098e575b50507fd1a8a452d776b1b6802824ca2e8489c6448e2cb0963f552a9a19ab4ae064ca58916103b861039a611fb3565b8161099891611d56565b6103d357825f61095f565b816109ad91611d56565b6103e257815f610933565b915091506020813d6020116109e7575b816109d560209383611d56565b8101031261042557839051915f6108ee565b3d91506109c8565b6004827f4e2ec0ea000000000000000000000000000000000000000000000000000000008152fd5b90506020813d602011610a41575b81610a3260209383611d56565b8101031261042557515f610899565b3d9150610a25565b503461043c57610a5836611c7b565b9192610a638361205f565b808511610a84576020846107508588610a7b816121ac565b938492336123d8565b60649250846001600160a01b03857ffe9cceec00000000000000000000000000000000000000000000000000000000855216600452602452604452fd5b503461043c57602036600319011261043c576020610750600435612151565b503461043c57602036600319011261043c5760ff60406020926001600160a01b03610b09611c2a565b168152600984522054166040519015158152f35b503461043c578060031936011261043c5760206040516001600160a01b037f0000000000000000000000003333b97138d4b086720b5ae8a7844b1345a33333168152f35b503461043c57604036600319011261043c57610b88610b7e611c2a565b6024359033612302565b602060405160018152f35b503461043c578060031936011261043c57610bbb336001600160a01b03600654163314611ec3565b610bc3611dfd565b610c105762093a8042048152600860205260408120600160ff198254161790557ff27b6ce5b2f5e68ddb2fd95a8a909d4ecf1daaac270935fff052feacb24f18426020604051428152a180f35b8063a1422f6960e01b60049252fd5b503461043c57602036600319011261043c5760ff60406020926004358152600884522054166040519015158152f35b503461043c578060031936011261043c576040519080600454908160011c91600181168015610d55575b602084108114610d4157838652908115610d1a5750600114610cbd575b610cb984610ca581860382611d56565b604051918291602083526020830190611be8565b0390f35b600481527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b808210610d0057509091508101602001610ca582610c95565b919260018160209254838588010152019101909291610ce7565b60ff191660208087019190915292151560051b85019092019250610ca59150839050610c95565b602483634e487b7160e01b81526022600452fd5b92607f1692610c78565b503461043c57604036600319011261043c57600435610d7c611c40565b91610d8682612151565b91610d8f61200c565b15610ed557610df76040516323b872dd60e01b602082015233602482015230604482015284606482015260648152610dc8608482611d56565b6001600160a01b037f0000000000000000000000005050bc082ff4a74fb6b0b04385defddb114b24241661270f565b6001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b416803b156103d35782809160246040518094819363b6b55f2560e01b83528960048401525af1801561043157908391610ec0575b50506001600160a01b038416918215610ead5750610e7481602095612605565b60405190838252848201527fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d760403392a3604051908152f35b8063ec442f0560e01b6024925280600452fd5b81610eca91611d56565b6103e257815f610e54565b60048263a1422f6960e01b8152fd5b503461043c578060031936011261043c5760206040516001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4168152f35b503461043c578060031936011261043c576020610f4361200c565b6040519015158152f35b503461043c57604036600319011261043c57610f67611c2a565b610f6f612207565b610fa4336001600160a01b037f0000000000000000000000005e7a9eea6988063a4dbb9ccddb3e04c923e8e37f163314611f76565b610fac611d78565b60405163a9059cbb60e01b815233600482015260248035908201529190602083604481876001600160a01b0387165af19283156110cb5761105d936110d6575b506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152306024820152927f0000000000000000000000005050bc082ff4a74fb6b0b04385defddb114b242490921691602090849081906044820190565b0381855afa9283156110cb578493611095575b5061107f8261108d9415611f14565b611087611d78565b14611f14565b600160055580f35b92506020833d6020116110c3575b816110b060209383611d56565b810103126104255791519161107f611070565b3d91506110a3565b6040513d86823e3d90fd5b6110f79060203d6020116110fc575b6110ef8183611d56565b810190611f51565b610fec565b503d6110e5565b503461043c578060031936011261043c576020610750611fb3565b50346104255760403660031901126104255760043561113b611c40565b91611145826121da565b9161114e61200c565b15611259576111876040516323b872dd60e01b602082015233602482015230604482015282606482015260648152610dc8608482611d56565b6001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b416803b15610425575f809160246040518094819363b6b55f2560e01b83528760048401525af1801561124e57611239575b506001600160a01b038416918215610ead575061120083602095612605565b60405190815282848201527fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d760403392a3604051908152f35b6112469192505f90611d56565b5f905f6111e1565b6040513d5f823e3d90fd5b63a1422f6960e01b5f5260045ffd5b3461042557604036600319011261042557611281611c2a565b60243590811515809203610425577f51372928fc73bc5fef2c5bc8324eef22ddcbc66388d34c91e02f1e67b97159bb916001600160a01b036040926112ea33837f0000000000000000000000005e7a9eea6988063a4dbb9ccddb3e04c923e8e37f163314611f76565b1690815f526009602052825f2060ff1981541660ff831617905582519182526020820152a1005b34610425575f3660031901126104255760206001600160a01b0360065416604051908152f35b611c0c565b34610425575f3660031901126104255760206040516001600160a01b037f0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f168152f35b34610425575f3660031901126104255760206040516001600160a01b037f0000000000000000000000005050bc082ff4a74fb6b0b04385defddb114b2424168152f35b34610425575f3660031901126104255760206040516001600160a01b037f0000000000000000000000005050bc082ff4a74fb6b0b04385defddb114b2424168152f35b34610425575f3660031901126104255760ff7f00000000000000000000000000000000000000000000000000000000000000121660ff811161144c57602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b34610425576020366003190112610425577ff1e04d73c4304b5ff164f9d10c7473e2a1593b740674a6107975e2a7001c1e5c6001600160a01b036114a2611c2a565b6114d033837f0000000000000000000000005e7a9eea6988063a4dbb9ccddb3e04c923e8e37f163314611f76565b611526826006549216807fffffffffffffffffffffffff000000000000000000000000000000000000000084161760065560405193849316839092916001600160a01b0360209181604085019616845216910152565b0390a1005b3461042557606036600319011261042557610b88611547611c2a565b61154f611c40565b6044359161155e833383612240565b612302565b346104255760203660031901126104255760043567ffffffffffffffff811161042557368190036004820160a0600319830112610425576115a2612207565b6115b9336001600160a01b03600654163314611ec3565b6001600160a01b036115ca82611f00565b165f52600960205260ff60405f2054166115e382611f00565b901561193957506115f2611d78565b6001600160a01b037f0000000000000000000000003333b97138d4b086720b5ae8a7844b1345a3333316916040516370a0823160e01b8152306004820152602081602481875afa90811561124e575f91611907575b50602486019461166b85806001600160a01b036116638a611f00565b161415611f14565b6116e06001600160a01b0361167f88611f00565b1693602061168c82611f00565b60448b01359687915f6040518097819582947f095ea7b300000000000000000000000000000000000000000000000000000000845260048401602090939291936001600160a01b0360408201951681520152565b03925af191821561124e576116fa926118ea575b50611f00565b90608488013590602219018112156104255787019060048201359167ffffffffffffffff83116104255760240190823603821361042557825f80949381946040519384928337810182815203925af13d156118e2573d9067ffffffffffffffff82116118ce5760405191611778601f8201601f191660200184611d56565b82523d5f602084013e5b1561188c5750604051906370a0823160e01b8252306004830152602082602481885afa91821561124e575f92611856575b506117c86064916117c2611d78565b93611f69565b960135861061182a577fab75539fb3c9e26222b41138a9c5f7337991b1b654406bf6723d949ab9ccd03c936040936118009214611f14565b6001600160a01b03611816816006541695611f00565b169482519182526020820152a36001600555005b857f28a4d357000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011611884575b8161187260209383611d56565b810103126104255751906117c86117b3565b3d9150611865565b6118ca906040519182917f34321ebc000000000000000000000000000000000000000000000000000000008352602060048401526024830190611be8565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b606090611782565b6119029060203d6020116110fc576110ef8183611d56565b6116f4565b90506020813d602011611931575b8161192260209383611d56565b81010312610425575186611647565b3d9150611915565b6001600160a01b03907f1d5fcfda000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b34610425575f36600319011261042557602062093a804204604051908152f35b34610425575f366003190112610425576020610f43611dfd565b34610425575f366003190112610425576020600254604051908152f35b34610425575f366003190112610425576020600754604051908152f35b346104255760203660031901126104255760206107506004356121ac565b3461042557604036600319011261042557611a19611c2a565b602435903315611aae576001600160a01b0316908115611a8257335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b34610425575f366003190112610425576040515f6003548060011c90600181168015611bc4575b602083108114611bb057828552908115611b8c5750600114611b2e575b610cb983610ca581850382611d56565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210611b7257509091508101602001610ca5611b1e565b919260018160209254838588010152019101909291611b5a565b60ff191660208086019190915291151560051b84019091019150610ca59050611b1e565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611b01565b34610425575f366003190112610425576020610750611d78565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461042557602036600319011261042557602061075060043561217f565b600435906001600160a01b038216820361042557565b602435906001600160a01b038216820361042557565b3461042557602036600319011261042557611c6f611c2a565b5060206040515f198152f35b606090600319011261042557600435906024356001600160a01b038116810361042557906044356001600160a01b03811681036104255790565b346104255760203660031901126104255760206107506004356121da565b9181601f840112156104255782359167ffffffffffffffff8311610425576020808501948460051b01011161042557565b60406003198201126104255760043567ffffffffffffffff81116104255781611d2f91600401611cd3565b929092916024359067ffffffffffffffff821161042557611d5291600401611cd3565b9091565b90601f8019910116810190811067ffffffffffffffff8211176118ce57604052565b6040516370a0823160e01b81523060048201526020816024816001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4165afa90811561124e575f91611dce575090565b90506020813d602011611df5575b81611de960209383611d56565b81010312610425575190565b3d9150611ddc565b6040517f251c1aa30000000000000000000000000000000000000000000000000000000081526020816004816001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4165afa90811561124e575f91611e73575b504210611e6e575f90565b600190565b90506020813d602011611e9d575b81611e8e60209383611d56565b8101031261042557515f611e63565b3d9150611e81565b8115611eaf570490565b634e487b7160e01b5f52601260045260245ffd5b15611ecb5750565b6001600160a01b03907f2bc10c33000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b356001600160a01b03811681036104255790565b15611f1c5750565b6001600160a01b03907fa4c4b52d000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90816020910312610425575180151581036104255790565b9190820391821161144c57565b15611f7e5750565b6001600160a01b03907f08cd4c01000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6002548015611ff257611fc4611d78565b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561144c57611fef91611ea5565b90565b50670de0b6b3a764000090565b9190820180921161144c57565b62093a8042046001810180821161144c5762093a8081029080820462093a80149015171561144c57612042610e10914290611f69565b111561205a575f52600860205260ff60405f20541690565b505f90565b6001600160a01b03165f525f602052611fef60405f205461217f565b916020908281520191905f905b8082106120955750505090565b9091928335906001600160a01b038216820361042557602080916001600160a01b03600194168152019401920190612088565b90602083828152019060208160051b85010193835f915b8383106120ef5750505050505090565b909192939495601f198282030186528635601e1984360301811215610425578301906020823592019167ffffffffffffffff8111610425578060051b3603831361042557612143602092839260019561207b565b9801960194930191906120df565b612159611d78565b906001820180921161144c576002546001810180911161144c57611fef926001926125a7565b612187611d78565b906001820180921161144c576002546001810180911161144c57611fef925f926125a7565b600254906001820180921161144c576121c3611d78565b6001810180911161144c57611fef926001926125a7565b600254906001820180921161144c576121f1611d78565b6001810180911161144c57611fef925f926125a7565b600260055414612218576002600555565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b03909291921691825f52600160205260405f206001600160a01b0382165f5260205260405f2054925f19840361227e575b50505050565b8284106122c5578015611aae576001600160a01b03821615611a82575f5260016020526001600160a01b0360405f2091165f5260205260405f20910390555f808080612278565b506001600160a01b0383917ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b6001600160a01b03169081156123ac576001600160a01b031691821561239957815f525f60205260405f205481811061238057817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b9193906001600160a01b03851694826001600160a01b03851694878603612596575b50505084156123ac57845f525f60205260405f205482811061257b578290865f525f6020520360405f205581600254036002555f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051868152a36001600160a01b037f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b41690813b15610425575f80926024604051809581937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528a60048401525af190811561124e577ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db936040936001600160a01b039361256b575b50835163a9059cbb60e01b60208201526001600160a01b03831660248201526044808201899052815261255c90612534606482611d56565b847f0000000000000000000000005050bc082ff4a74fb6b0b04385defddb114b24241661270f565b835196875260208701521693a4565b5f61257591611d56565b5f6124fc565b90508463391434e360e21b5f5260045260245260445260645ffd5b61259f92612240565b5f82816123fa565b92916125b4818386612672565b9260048110156125f15760018091161491826125da575b5050611fef9250151590611fff565b9080925015611eaf57611fef930915155f806125cb565b634e487b7160e01b5f52602160045260245ffd5b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206001600160a01b035f9361263e86600254611fff565b60025516938415841461265d5780600254036002555b604051908152a3565b84845283825260408420818154019055612654565b91818302915f198185099383808610950394808603951461270257848311156126ea5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b505090611fef9250611ea5565b905f602091828151910182855af11561124e575f513d61277357506001600160a01b0381163b155b61273e5750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6001141561273756fea264697066735822122064fab6b9dc14264c19753730fd4c3d63cc570acafc484ac33e773afa7273ada964736f6c634300081c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005be2e859d0c2453c9aa062860ca27711ff5534320000000000000000000000005e7a9eea6988063a4dbb9ccddb3e04c923e8e37f0000000000000000000000005050bc082ff4a74fb6b0b04385defddb114b24240000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4
-----Decoded View---------------
Arg [0] : _operator (address): 0x5Be2e859D0c2453C9aA062860cA27711ff553432
Arg [1] : _accessHub (address): 0x5e7A9eea6988063A4dBb9CcDDB3E04C923E8E37f
Arg [2] : _xShadow (address): 0x5050bc082FF4A74Fb6B0B04385dEfdDB114b2424
Arg [3] : _voter (address): 0x3aF1dD7A2755201F8e2D6dCDA1a61d9f54838f4f
Arg [4] : _voteModule (address): 0xDCB5A24ec708cc13cee12bFE6799A78a79b666b4
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000005be2e859d0c2453c9aa062860ca27711ff553432
Arg [1] : 0000000000000000000000005e7a9eea6988063a4dbb9ccddb3e04c923e8e37f
Arg [2] : 0000000000000000000000005050bc082ff4a74fb6b0b04385defddb114b2424
Arg [3] : 0000000000000000000000003af1dd7a2755201f8e2d6dcda1a61d9f54838f4f
Arg [4] : 000000000000000000000000dcb5a24ec708cc13cee12bfe6799a78a79b666b4
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.