More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 27,492 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Batch Claim Rank | 60468252 | 2 hrs ago | IN | 0 AVAX | 0.00131208 | ||||
Batch Claim Rank | 60468240 | 2 hrs ago | IN | 0 AVAX | 0.00137113 | ||||
Batch Claim Rank | 60468229 | 2 hrs ago | IN | 0 AVAX | 0.00139171 | ||||
Batch Claim Rank | 60468219 | 2 hrs ago | IN | 0 AVAX | 0.0013307 | ||||
Batch Claim Rank | 60468211 | 2 hrs ago | IN | 0 AVAX | 0.00137911 | ||||
Batch Claim Rank | 60468204 | 2 hrs ago | IN | 0 AVAX | 0.00135488 | ||||
Batch Claim Rank | 60468195 | 2 hrs ago | IN | 0 AVAX | 0.00138699 | ||||
Batch Claim Rank | 60468182 | 2 hrs ago | IN | 0 AVAX | 0.00135571 | ||||
Batch Claim Rank | 60468172 | 2 hrs ago | IN | 0 AVAX | 0.0013303 | ||||
Batch Claim Rank | 60468156 | 2 hrs ago | IN | 0 AVAX | 0.0012828 | ||||
Batch Claim Rank | 60468148 | 2 hrs ago | IN | 0 AVAX | 0.00128949 | ||||
Batch Claim Rank | 60468136 | 2 hrs ago | IN | 0 AVAX | 0.00134918 | ||||
Batch Claim Rank | 60468124 | 2 hrs ago | IN | 0 AVAX | 0.00127997 | ||||
Batch Claim Rank | 60468115 | 2 hrs ago | IN | 0 AVAX | 0.00132032 | ||||
Batch Claim Rank | 60466397 | 3 hrs ago | IN | 0 AVAX | 0.00116048 | ||||
Batch Claim Rank | 60466379 | 3 hrs ago | IN | 0 AVAX | 0.00116048 | ||||
Batch Claim Rank | 60465659 | 3 hrs ago | IN | 0 AVAX | 0.00136083 | ||||
Batch Claim Rank | 60465653 | 3 hrs ago | IN | 0 AVAX | 0.00134874 | ||||
Batch Claim Rank | 60465639 | 3 hrs ago | IN | 0 AVAX | 0.00139097 | ||||
Batch Claim Rank | 60465629 | 3 hrs ago | IN | 0 AVAX | 0.00140629 | ||||
Batch Claim Rank | 60465617 | 3 hrs ago | IN | 0 AVAX | 0.00143376 | ||||
Batch Claim Rank | 60465613 | 3 hrs ago | IN | 0 AVAX | 0.00137642 | ||||
Batch Claim Rank | 60465591 | 3 hrs ago | IN | 0 AVAX | 0.00139513 | ||||
Batch Claim Rank | 60465579 | 3 hrs ago | IN | 0 AVAX | 0.00136395 | ||||
Batch Claim Rank | 60465568 | 3 hrs ago | IN | 0 AVAX | 0.00140244 |
Latest 25 internal transactions (View All)
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
XenProxy
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at snowscan.xyz on 2022-10-14 */ // SPDX-License-Identifier: MIT /** * https://mct.xyz - The all-in-one toolbox for your crypto adventure // __ __ _____ _______ __ ____ __ ______ // | \/ | / ____||__ __| \ \ / /\ \ / /|___ / // | \ / || | | | \ V / \ \_/ / / / // | |\/| || | | | > < \ / / / // | | | || |____ | | _ / . \ | | / /__ // |_| |_| \_____| |_| (_) /_/ \_\ |_| /_____| */ pragma solidity ^0.8.16; // OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol) /** * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to * be specified by overriding the virtual {_implementation} function. * * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a * different contract through the {_delegate} function. * * The success and return data of the delegated call will be returned back to the caller of the proxy. */ abstract contract Proxy { /** * @dev Delegates the current call to `implementation`. * * This function does not return to its internal call site, it will return directly to the external caller. */ function _delegate(address implementation) internal virtual { assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize()) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall( gas(), implementation, 0, calldatasize(), 0, 0 ) // Copy the returned data. returndatacopy(0, 0, returndatasize()) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function * and {_fallback} should delegate. */ function _implementation() internal view virtual returns (address); /** * @dev Delegates the current call to the address returned by `_implementation()`. * * This function does not return to its internal call site, it will return directly to the external caller. */ function _fallback() internal virtual { _beforeFallback(); _delegate(_implementation()); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other * function in the contract matches the call data. */ fallback() external payable virtual { _fallback(); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data * is empty. */ receive() external payable virtual { _fallback(); } /** * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` * call, or as part of the Solidity `fallback` or `receive` functions. * * If overridden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual {} } // OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol) /** * @dev This is the interface that {BeaconProxy} expects of its beacon. */ interface IBeacon { /** * @dev Must return an address that can be used as a delegate call target. * * {BeaconProxy} will check that this address is a contract. */ function implementation() external view returns (address); } // OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol) /** * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified * proxy whose upgrades are fully controlled by the current implementation. */ interface IERC1822Proxiable { /** * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation * address. * * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this * function revert if invoked through a proxy. */ function proxiableUUID() external view returns (bytes32); } // OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol) /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @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://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // OpenZeppelin Contracts (last updated v4.7.0) (utils/StorageSlot.sol) /** * @dev Library for reading and writing primitive types to specific storage slots. * * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. * This library helps with reading and writing to such slots without the need for inline assembly. * * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. * * Example usage to set ERC1967 implementation slot: * ``` * contract ERC1967 { * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; * * function _getImplementation() internal view returns (address) { * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; * } * * function _setImplementation(address newImplementation) internal { * require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; * } * } * ``` * * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._ */ library StorageSlot { struct AddressSlot { address value; } struct BooleanSlot { bool value; } struct Bytes32Slot { bytes32 value; } struct Uint256Slot { uint256 value; } /** * @dev Returns an `AddressSlot` with member `value` located at `slot`. */ function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `BooleanSlot` with member `value` located at `slot`. */ function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. */ function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `Uint256Slot` with member `value` located at `slot`. */ function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } } // OpenZeppelin Contracts (last updated v4.5.0) (proxy/ERC1967/ERC1967Upgrade.sol) /** * @dev This abstract contract provides getters and event emitting update functions for * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. * * _Available since v4.1._ * * @custom:oz-upgrades-unsafe-allow delegatecall */ abstract contract ERC1967Upgrade { // This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1 bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143; /** * @dev Storage slot with the address of the current implementation. * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is * validated in the constructor. */ bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /** * @dev Emitted when the implementation is upgraded. */ event Upgraded(address indexed implementation); /** * @dev Returns the current implementation address. */ function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } /** * @dev Stores a new address in the EIP1967 implementation slot. */ function _setImplementation(address newImplementation) private { require( Address.isContract(newImplementation), "ERC1967: new implementation is not a contract" ); StorageSlot .getAddressSlot(_IMPLEMENTATION_SLOT) .value = newImplementation; } /** * @dev Perform implementation upgrade * * Emits an {Upgraded} event. */ function _upgradeTo(address newImplementation) internal { _setImplementation(newImplementation); emit Upgraded(newImplementation); } /** * @dev Perform implementation upgrade with additional setup call. * * Emits an {Upgraded} event. */ function _upgradeToAndCall( address newImplementation, bytes memory data, bool forceCall ) internal { _upgradeTo(newImplementation); if (data.length > 0 || forceCall) { Address.functionDelegateCall(newImplementation, data); } } /** * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call. * * Emits an {Upgraded} event. */ function _upgradeToAndCallUUPS( address newImplementation, bytes memory data, bool forceCall ) internal { // Upgrades from old implementations will perform a rollback test. This test requires the new // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing // this special case will break upgrade paths from old UUPS implementation to new ones. if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) { _setImplementation(newImplementation); } else { try IERC1822Proxiable(newImplementation).proxiableUUID() returns ( bytes32 slot ) { require( slot == _IMPLEMENTATION_SLOT, "ERC1967Upgrade: unsupported proxiableUUID" ); } catch { revert("ERC1967Upgrade: new implementation is not UUPS"); } _upgradeToAndCall(newImplementation, data, forceCall); } } /** * @dev Storage slot with the admin of the contract. * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is * validated in the constructor. */ bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; /** * @dev Emitted when the admin account has changed. */ event AdminChanged(address previousAdmin, address newAdmin); /** * @dev Returns the current admin. */ function _getAdmin() internal view returns (address) { return StorageSlot.getAddressSlot(_ADMIN_SLOT).value; } /** * @dev Stores a new address in the EIP1967 admin slot. */ function _setAdmin(address newAdmin) private { require( newAdmin != address(0), "ERC1967: new admin is the zero address" ); StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin; } /** * @dev Changes the admin of the proxy. * * Emits an {AdminChanged} event. */ function _changeAdmin(address newAdmin) internal { emit AdminChanged(_getAdmin(), newAdmin); _setAdmin(newAdmin); } /** * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor. */ bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; /** * @dev Emitted when the beacon is upgraded. */ event BeaconUpgraded(address indexed beacon); /** * @dev Returns the current beacon. */ function _getBeacon() internal view returns (address) { return StorageSlot.getAddressSlot(_BEACON_SLOT).value; } /** * @dev Stores a new beacon in the EIP1967 beacon slot. */ function _setBeacon(address newBeacon) private { require( Address.isContract(newBeacon), "ERC1967: new beacon is not a contract" ); require( Address.isContract(IBeacon(newBeacon).implementation()), "ERC1967: beacon implementation is not a contract" ); StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon; } /** * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that). * * Emits a {BeaconUpgraded} event. */ function _upgradeBeaconToAndCall( address newBeacon, bytes memory data, bool forceCall ) internal { _setBeacon(newBeacon); emit BeaconUpgraded(newBeacon); if (data.length > 0 || forceCall) { Address.functionDelegateCall( IBeacon(newBeacon).implementation(), data ); } } } // OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol) /** * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an * implementation address that can be changed. This address is stored in storage in the location specified by * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the * implementation behind the proxy. */ contract ERC1967Proxy is Proxy, ERC1967Upgrade { /** * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`. * * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded * function call, and allows initializing the storage of the proxy like a Solidity constructor. */ constructor(address _logic, bytes memory _data) payable { _upgradeToAndCall(_logic, _data, false); } /** * @dev Returns the current implementation address. */ function _implementation() internal view virtual override returns (address impl) { return ERC1967Upgrade._getImplementation(); } } // OpenZeppelin Contracts (last updated v4.7.0) (proxy/transparent/TransparentUpgradeableProxy.sol) /** * @dev This contract implements a proxy that is upgradeable by an admin. * * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector * clashing], which can potentially be used in an attack, this contract uses the * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two * things that go hand in hand: * * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if * that call matches one of the admin functions exposed by the proxy itself. * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the * implementation. If the admin tries to call a function on the implementation it will fail with an error that says * "admin cannot fallback to proxy target". * * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due * to sudden errors when trying to call a function from the proxy implementation. * * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy. */ contract TransparentUpgradeableProxy is ERC1967Proxy { /** * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}. */ constructor( address _logic, address admin_, bytes memory _data ) payable ERC1967Proxy(_logic, _data) { _changeAdmin(admin_); } /** * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin. */ modifier ifAdmin() { if (msg.sender == _getAdmin()) { _; } else { _fallback(); } } /** * @dev Returns the current admin. * * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. * * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103` */ function admin() external ifAdmin returns (address admin_) { admin_ = _getAdmin(); } /** * @dev Returns the current implementation. * * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. * * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc` */ function implementation() external ifAdmin returns (address implementation_) { implementation_ = _implementation(); } /** * @dev Changes the admin of the proxy. * * Emits an {AdminChanged} event. * * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}. */ function changeAdmin(address newAdmin) external virtual ifAdmin { _changeAdmin(newAdmin); } /** * @dev Upgrade the implementation of the proxy. * * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}. */ function upgradeTo(address newImplementation) external ifAdmin { _upgradeToAndCall(newImplementation, bytes(""), false); } /** * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the * proxied contract. * * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}. */ function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin { _upgradeToAndCall(newImplementation, data, true); } /** * @dev Returns the current admin. */ function _admin() internal view virtual returns (address) { return _getAdmin(); } /** * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}. */ function _beforeFallback() internal virtual override { require( msg.sender != _getAdmin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target" ); super._beforeFallback(); } } /** * @dev TransparentUpgradeableProxy where admin is allowed to call implementation methods. */ contract XenProxy is TransparentUpgradeableProxy { /** * @dev Initializes an upgradeable proxy backed by the implementation at `_logic`. */ constructor(address _logic, bytes memory _x) TransparentUpgradeableProxy(_logic, tx.origin, _x) {} /** * @dev Override to allow admin access the fallback function. */ function _beforeFallback() internal override {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_x","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620017b2380380620017b283398181016040528101906200003791906200073b565b813282828162000050828260006200006e60201b60201c565b50506200006382620000b160201b60201c565b505050505062000a8e565b6200007f836200010f60201b60201c565b6000825111806200008d5750805b15620000ac57620000aa83836200016660201b6200034a1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000e26200019c60201b60201c565b82604051620000f3929190620007b2565b60405180910390a16200010c816200020060201b60201c565b50565b6200012081620002f060201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606200019483836040518060600160405280602781526020016200178b60279139620003c660201b60201c565b905092915050565b6000620001d77fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b620004aa60201b620003771760201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002699062000866565b60405180910390fd5b80620002ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b620004aa60201b620003771760201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6200030681620004b460201b620003811760201c565b62000348576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200033f90620008fe565b60405180910390fd5b80620003827f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620004aa60201b620003771760201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060620003d984620004b460201b60201c565b6200041b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004129062000996565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405162000445919062000a05565b600060405180830381855af49150503d806000811462000482576040519150601f19603f3d011682016040523d82523d6000602084013e62000487565b606091505b50915091506200049f828286620004d760201b60201c565b925050509392505050565b6000819050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315620004e9578290506200053c565b600083511115620004fd5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000533919062000a6a565b60405180910390fd5b9392505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005848262000557565b9050919050565b620005968162000577565b8114620005a257600080fd5b50565b600081519050620005b6816200058b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200061182620005c6565b810181811067ffffffffffffffff82111715620006335762000632620005d7565b5b80604052505050565b60006200064862000543565b905062000656828262000606565b919050565b600067ffffffffffffffff821115620006795762000678620005d7565b5b6200068482620005c6565b9050602081019050919050565b60005b83811015620006b157808201518184015260208101905062000694565b60008484015250505050565b6000620006d4620006ce846200065b565b6200063c565b905082815260208101848484011115620006f357620006f2620005c1565b5b6200070084828562000691565b509392505050565b600082601f83011262000720576200071f620005bc565b5b815162000732848260208601620006bd565b91505092915050565b600080604083850312156200075557620007546200054d565b5b60006200076585828601620005a5565b925050602083015167ffffffffffffffff81111562000789576200078862000552565b5b620007978582860162000708565b9150509250929050565b620007ac8162000577565b82525050565b6000604082019050620007c96000830185620007a1565b620007d86020830184620007a1565b9392505050565b600082825260208201905092915050565b7f455243313936373a206e65772061646d696e20697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200084e602683620007df565b91506200085b82620007f0565b604082019050919050565b6000602082019050818103600083015262000881816200083f565b9050919050565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b6000620008e6602d83620007df565b9150620008f38262000888565b604082019050919050565b600060208201905081810360008301526200091981620008d7565b9050919050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006200097e602683620007df565b91506200098b8262000920565b604082019050919050565b60006020820190508181036000830152620009b1816200096f565b9050919050565b600081519050919050565b600081905092915050565b6000620009db82620009b8565b620009e78185620009c3565b9350620009f981856020860162000691565b80840191505092915050565b600062000a138284620009ce565b915081905092915050565b600081519050919050565b600062000a368262000a1e565b62000a428185620007df565b935062000a5481856020860162000691565b62000a5f81620005c6565b840191505092915050565b6000602082019050818103600083015262000a86818462000a29565b905092915050565b610ced8062000a9e6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100675780634f1ef286146100905780635c60da1b146100ac5780638f283970146100d7578063f851a440146101005761005d565b3661005d5761005b61012b565b005b61006561012b565b005b34801561007357600080fd5b5061008e60048036038101906100899190610885565b610145565b005b6100aa60048036038101906100a59190610917565b6101ab565b005b3480156100b857600080fd5b506100c1610248565b6040516100ce9190610986565b60405180910390f35b3480156100e357600080fd5b506100fe60048036038101906100f99190610885565b61029f565b005b34801561010c57600080fd5b506101156102f3565b6040516101229190610986565b60405180910390f35b6101336103a4565b61014361013e6103a6565b6103b5565b565b61014d6103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361019f5761019a81604051806020016040528060008152506000610432565b6101a8565b6101a761012b565b5b50565b6101b36103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361023a576102358383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001610432565b610243565b61024261012b565b5b505050565b60006102526103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036102935761028c6103a6565b905061029c565b61029b61012b565b5b90565b6102a76103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036102e7576102e28161045e565b6102f0565b6102ef61012b565b5b50565b60006102fd6103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361033e576103376103db565b9050610347565b61034661012b565b5b90565b606061036f8383604051806060016040528060278152602001610c91602791396104aa565b905092915050565b6000819050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b565b60006103b0610577565b905090565b3660008037600080366000845af43d6000803e80600081146103d6573d6000f35b3d6000fd5b60006104097fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b610377565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61043b836105ce565b6000825111806104485750805b1561045957610457838361034a565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104876103db565b826040516104969291906109a1565b60405180910390a16104a78161061d565b50565b60606104b584610381565b6104f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104eb90610a4d565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405161051c9190610ade565b600060405180830381855af49150503d8060008114610557576040519150601f19603f3d011682016040523d82523d6000602084013e61055c565b606091505b509150915061056c8282866106fd565b925050509392505050565b60006105a57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b610377565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6105d781610764565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361068c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068390610b67565b60405180910390fd5b806106b97fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b610377565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060831561070d5782905061075d565b6000835111156107205782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107549190610bdc565b60405180910390fd5b9392505050565b61076d81610381565b6107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390610c70565b60405180910390fd5b806107d97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b610377565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061085282610827565b9050919050565b61086281610847565b811461086d57600080fd5b50565b60008135905061087f81610859565b92915050565b60006020828403121561089b5761089a61081d565b5b60006108a984828501610870565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126108d7576108d66108b2565b5b8235905067ffffffffffffffff8111156108f4576108f36108b7565b5b6020830191508360018202830111156109105761090f6108bc565b5b9250929050565b6000806000604084860312156109305761092f61081d565b5b600061093e86828701610870565b935050602084013567ffffffffffffffff81111561095f5761095e610822565b5b61096b868287016108c1565b92509250509250925092565b61098081610847565b82525050565b600060208201905061099b6000830184610977565b92915050565b60006040820190506109b66000830185610977565b6109c36020830184610977565b9392505050565b600082825260208201905092915050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b6000610a376026836109ca565b9150610a42826109db565b604082019050919050565b60006020820190508181036000830152610a6681610a2a565b9050919050565b600081519050919050565b600081905092915050565b60005b83811015610aa1578082015181840152602081019050610a86565b60008484015250505050565b6000610ab882610a6d565b610ac28185610a78565b9350610ad2818560208601610a83565b80840191505092915050565b6000610aea8284610aad565b915081905092915050565b7f455243313936373a206e65772061646d696e20697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610b516026836109ca565b9150610b5c82610af5565b604082019050919050565b60006020820190508181036000830152610b8081610b44565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b6000610bae82610b87565b610bb881856109ca565b9350610bc8818560208601610a83565b610bd181610b92565b840191505092915050565b60006020820190508181036000830152610bf68184610ba3565b905092915050565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b6000610c5a602d836109ca565b9150610c6582610bfe565b604082019050919050565b60006020820190508181036000830152610c8981610c4d565b905091905056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122034a12dd5ac2c472a8603cb149b23c9d597e1a2fc2cb4ff9315d75398980246fd64736f6c63430008110033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000e8e411b43ec0e08762f5e05a6f48a46742c2edbb00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061004e5760003560e01c80633659cfe6146100675780634f1ef286146100905780635c60da1b146100ac5780638f283970146100d7578063f851a440146101005761005d565b3661005d5761005b61012b565b005b61006561012b565b005b34801561007357600080fd5b5061008e60048036038101906100899190610885565b610145565b005b6100aa60048036038101906100a59190610917565b6101ab565b005b3480156100b857600080fd5b506100c1610248565b6040516100ce9190610986565b60405180910390f35b3480156100e357600080fd5b506100fe60048036038101906100f99190610885565b61029f565b005b34801561010c57600080fd5b506101156102f3565b6040516101229190610986565b60405180910390f35b6101336103a4565b61014361013e6103a6565b6103b5565b565b61014d6103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361019f5761019a81604051806020016040528060008152506000610432565b6101a8565b6101a761012b565b5b50565b6101b36103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361023a576102358383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001610432565b610243565b61024261012b565b5b505050565b60006102526103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036102935761028c6103a6565b905061029c565b61029b61012b565b5b90565b6102a76103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036102e7576102e28161045e565b6102f0565b6102ef61012b565b5b50565b60006102fd6103db565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361033e576103376103db565b9050610347565b61034661012b565b5b90565b606061036f8383604051806060016040528060278152602001610c91602791396104aa565b905092915050565b6000819050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b565b60006103b0610577565b905090565b3660008037600080366000845af43d6000803e80600081146103d6573d6000f35b3d6000fd5b60006104097fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b610377565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61043b836105ce565b6000825111806104485750805b1561045957610457838361034a565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104876103db565b826040516104969291906109a1565b60405180910390a16104a78161061d565b50565b60606104b584610381565b6104f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104eb90610a4d565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405161051c9190610ade565b600060405180830381855af49150503d8060008114610557576040519150601f19603f3d011682016040523d82523d6000602084013e61055c565b606091505b509150915061056c8282866106fd565b925050509392505050565b60006105a57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b610377565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6105d781610764565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361068c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068390610b67565b60405180910390fd5b806106b97fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b610377565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060831561070d5782905061075d565b6000835111156107205782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107549190610bdc565b60405180910390fd5b9392505050565b61076d81610381565b6107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390610c70565b60405180910390fd5b806107d97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b610377565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061085282610827565b9050919050565b61086281610847565b811461086d57600080fd5b50565b60008135905061087f81610859565b92915050565b60006020828403121561089b5761089a61081d565b5b60006108a984828501610870565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126108d7576108d66108b2565b5b8235905067ffffffffffffffff8111156108f4576108f36108b7565b5b6020830191508360018202830111156109105761090f6108bc565b5b9250929050565b6000806000604084860312156109305761092f61081d565b5b600061093e86828701610870565b935050602084013567ffffffffffffffff81111561095f5761095e610822565b5b61096b868287016108c1565b92509250509250925092565b61098081610847565b82525050565b600060208201905061099b6000830184610977565b92915050565b60006040820190506109b66000830185610977565b6109c36020830184610977565b9392505050565b600082825260208201905092915050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b6000610a376026836109ca565b9150610a42826109db565b604082019050919050565b60006020820190508181036000830152610a6681610a2a565b9050919050565b600081519050919050565b600081905092915050565b60005b83811015610aa1578082015181840152602081019050610a86565b60008484015250505050565b6000610ab882610a6d565b610ac28185610a78565b9350610ad2818560208601610a83565b80840191505092915050565b6000610aea8284610aad565b915081905092915050565b7f455243313936373a206e65772061646d696e20697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610b516026836109ca565b9150610b5c82610af5565b604082019050919050565b60006020820190508181036000830152610b8081610b44565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b6000610bae82610b87565b610bb881856109ca565b9350610bc8818560208601610a83565b610bd181610b92565b840191505092915050565b60006020820190508181036000830152610bf68184610ba3565b905092915050565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b6000610c5a602d836109ca565b9150610c6582610bfe565b604082019050919050565b60006020820190508181036000830152610c8981610c4d565b905091905056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122034a12dd5ac2c472a8603cb149b23c9d597e1a2fc2cb4ff9315d75398980246fd64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e8e411b43ec0e08762f5e05a6f48a46742c2edbb00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _logic (address): 0xe8e411B43ec0E08762f5E05A6f48a46742c2eDBB
Arg [1] : _x (bytes): 0x
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000e8e411b43ec0e08762f5e05a6f48a46742c2edbb
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
30288:417:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3519:11;:9;:11::i;:::-;30288:417;;3288:11;:9;:11::i;:::-;30288:417;28926:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29447:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28277:163;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28654:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27708:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2925:113;2974:17;:15;:17::i;:::-;3002:28;3012:17;:15;:17::i;:::-;3002:9;:28::i;:::-;2925:113::o;28926:136::-;27163:11;:9;:11::i;:::-;27149:25;;:10;:25;;;27145:103;;29000:54:::1;29018:17;29037:9;;;;;;;;;;;::::0;29048:5:::1;29000:17;:54::i;:::-;27145:103:::0;;;27225:11;:9;:11::i;:::-;27145:103;28926:136;:::o;29447:198::-;27163:11;:9;:11::i;:::-;27149:25;;:10;:25;;;27145:103;;29589:48:::1;29607:17;29626:4;;29589:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29632:4;29589:17;:48::i;:::-;27145:103:::0;;;27225:11;:9;:11::i;:::-;27145:103;29447:198;;;:::o;28277:163::-;28356:23;27163:11;:9;:11::i;:::-;27149:25;;:10;:25;;;27145:103;;28415:17:::1;:15;:17::i;:::-;28397:35;;27145:103:::0;;;27225:11;:9;:11::i;:::-;27145:103;28277:163;:::o;28654:105::-;27163:11;:9;:11::i;:::-;27149:25;;:10;:25;;;27145:103;;28729:22:::1;28742:8;28729:12;:22::i;:::-;27145:103:::0;;;27225:11;:9;:11::i;:::-;27145:103;28654:105;:::o;27708:98::-;27751:14;27163:11;:9;:11::i;:::-;27149:25;;:10;:25;;;27145:103;;27787:11:::1;:9;:11::i;:::-;27778:20;;27145:103:::0;;;27225:11;:9;:11::i;:::-;27145:103;27708:98;:::o;12172:302::-;12273:12;12323:143;12362:6;12387:4;12323:143;;;;;;;;;;;;;;;;;:20;:143::i;:::-;12303:163;;12172:302;;;;:::o;15664:227::-;15752:21;15869:4;15859:14;;15664:227;;;:::o;6274:326::-;6334:4;6591:1;6569:7;:19;;;:23;6562:30;;6274:326;;;:::o;30655:47::-;:::o;24744:192::-;24856:12;24893:35;:33;:35::i;:::-;24886:42;;24744:192;:::o;1398:1035::-;1741:14;1738:1;1735;1722:34;2062:1;2042;2009:14;1989:1;1956:14;1932:5;1901:177;2155:16;2152:1;2149;2134:38;2195:6;2269:1;2264:68;;;;2383:16;2380:1;2373:27;2264:68;2300:16;2297:1;2290:27;21078:124;21122:7;21149:39;20802:66;21176:11;;21149:26;:39::i;:::-;:45;;;;;;;;;;;;21142:52;;21078:124;:::o;19000:304::-;19143:29;19154:17;19143:10;:29::i;:::-;19201:1;19187:4;:11;:15;:28;;;;19206:9;19187:28;19183:114;;;19232:53;19261:17;19280:4;19232:28;:53::i;:::-;;19183:114;19000:304;;;:::o;21648:138::-;21713:35;21726:11;:9;:11::i;:::-;21739:8;21713:35;;;;;;;:::i;:::-;;;;;;;;21759:19;21769:8;21759:9;:19::i;:::-;21648:138;:::o;12668:396::-;12813:12;12846:18;12857:6;12846:10;:18::i;:::-;12838:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12921:12;12935:23;12962:6;:19;;12982:4;12962:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12920:67;;;;13005:51;13022:7;13031:10;13043:12;13005:16;:51::i;:::-;12998:58;;;;12668:396;;;;;:::o;18026:142::-;18079:7;18106:48;17745:66;18133:20;;18106:26;:48::i;:::-;:54;;;;;;;;;;;;18099:61;;18026:142;:::o;18704:155::-;18771:37;18790:17;18771:18;:37::i;:::-;18833:17;18824:27;;;;;;;;;;;;18704:155;:::o;21289:241::-;21387:1;21367:22;;:8;:22;;;21345:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;21514:8;21466:39;20802:66;21493:11;;21466:26;:39::i;:::-;:45;;;:56;;;;;;;;;;;;;;;;;;21289:241;:::o;13292:762::-;13442:12;13471:7;13467:580;;;13502:10;13495:17;;;;13467:580;13636:1;13616:10;:17;:21;13612:424;;;13864:10;13858:17;13925:15;13912:10;13908:2;13904:19;13897:44;13612:424;14007:12;14000:20;;;;;;;;;;;:::i;:::-;;;;;;;;13292:762;;;;;;:::o;18264:327::-;18360:37;18379:17;18360:18;:37::i;:::-;18338:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;18566:17;18481:62;17745:66;18522:20;;18481:40;:62::i;:::-;:82;;;:102;;;;;;;;;;;;;;;;;;18264:327;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:117::-;1285:1;1282;1275:12;1299:117;1408:1;1405;1398:12;1422:117;1531:1;1528;1521:12;1558:552;1615:8;1625:6;1675:3;1668:4;1660:6;1656:17;1652:27;1642:122;;1683:79;;:::i;:::-;1642:122;1796:6;1783:20;1773:30;;1826:18;1818:6;1815:30;1812:117;;;1848:79;;:::i;:::-;1812:117;1962:4;1954:6;1950:17;1938:29;;2016:3;2008:4;2000:6;1996:17;1986:8;1982:32;1979:41;1976:128;;;2023:79;;:::i;:::-;1976:128;1558:552;;;;;:::o;2116:672::-;2195:6;2203;2211;2260:2;2248:9;2239:7;2235:23;2231:32;2228:119;;;2266:79;;:::i;:::-;2228:119;2386:1;2411:53;2456:7;2447:6;2436:9;2432:22;2411:53;:::i;:::-;2401:63;;2357:117;2541:2;2530:9;2526:18;2513:32;2572:18;2564:6;2561:30;2558:117;;;2594:79;;:::i;:::-;2558:117;2707:64;2763:7;2754:6;2743:9;2739:22;2707:64;:::i;:::-;2689:82;;;;2484:297;2116:672;;;;;:::o;2794:118::-;2881:24;2899:5;2881:24;:::i;:::-;2876:3;2869:37;2794:118;;:::o;2918:222::-;3011:4;3049:2;3038:9;3034:18;3026:26;;3062:71;3130:1;3119:9;3115:17;3106:6;3062:71;:::i;:::-;2918:222;;;;:::o;3146:332::-;3267:4;3305:2;3294:9;3290:18;3282:26;;3318:71;3386:1;3375:9;3371:17;3362:6;3318:71;:::i;:::-;3399:72;3467:2;3456:9;3452:18;3443:6;3399:72;:::i;:::-;3146:332;;;;;:::o;3484:169::-;3568:11;3602:6;3597:3;3590:19;3642:4;3637:3;3633:14;3618:29;;3484:169;;;;:::o;3659:225::-;3799:34;3795:1;3787:6;3783:14;3776:58;3868:8;3863:2;3855:6;3851:15;3844:33;3659:225;:::o;3890:366::-;4032:3;4053:67;4117:2;4112:3;4053:67;:::i;:::-;4046:74;;4129:93;4218:3;4129:93;:::i;:::-;4247:2;4242:3;4238:12;4231:19;;3890:366;;;:::o;4262:419::-;4428:4;4466:2;4455:9;4451:18;4443:26;;4515:9;4509:4;4505:20;4501:1;4490:9;4486:17;4479:47;4543:131;4669:4;4543:131;:::i;:::-;4535:139;;4262:419;;;:::o;4687:98::-;4738:6;4772:5;4766:12;4756:22;;4687:98;;;:::o;4791:147::-;4892:11;4929:3;4914:18;;4791:147;;;;:::o;4944:246::-;5025:1;5035:113;5049:6;5046:1;5043:13;5035:113;;;5134:1;5129:3;5125:11;5119:18;5115:1;5110:3;5106:11;5099:39;5071:2;5068:1;5064:10;5059:15;;5035:113;;;5182:1;5173:6;5168:3;5164:16;5157:27;5006:184;4944:246;;;:::o;5196:386::-;5300:3;5328:38;5360:5;5328:38;:::i;:::-;5382:88;5463:6;5458:3;5382:88;:::i;:::-;5375:95;;5479:65;5537:6;5532:3;5525:4;5518:5;5514:16;5479:65;:::i;:::-;5569:6;5564:3;5560:16;5553:23;;5304:278;5196:386;;;;:::o;5588:271::-;5718:3;5740:93;5829:3;5820:6;5740:93;:::i;:::-;5733:100;;5850:3;5843:10;;5588:271;;;;:::o;5865:225::-;6005:34;6001:1;5993:6;5989:14;5982:58;6074:8;6069:2;6061:6;6057:15;6050:33;5865:225;:::o;6096:366::-;6238:3;6259:67;6323:2;6318:3;6259:67;:::i;:::-;6252:74;;6335:93;6424:3;6335:93;:::i;:::-;6453:2;6448:3;6444:12;6437:19;;6096:366;;;:::o;6468:419::-;6634:4;6672:2;6661:9;6657:18;6649:26;;6721:9;6715:4;6711:20;6707:1;6696:9;6692:17;6685:47;6749:131;6875:4;6749:131;:::i;:::-;6741:139;;6468:419;;;:::o;6893:99::-;6945:6;6979:5;6973:12;6963:22;;6893:99;;;:::o;6998:102::-;7039:6;7090:2;7086:7;7081:2;7074:5;7070:14;7066:28;7056:38;;6998:102;;;:::o;7106:377::-;7194:3;7222:39;7255:5;7222:39;:::i;:::-;7277:71;7341:6;7336:3;7277:71;:::i;:::-;7270:78;;7357:65;7415:6;7410:3;7403:4;7396:5;7392:16;7357:65;:::i;:::-;7447:29;7469:6;7447:29;:::i;:::-;7442:3;7438:39;7431:46;;7198:285;7106:377;;;;:::o;7489:313::-;7602:4;7640:2;7629:9;7625:18;7617:26;;7689:9;7683:4;7679:20;7675:1;7664:9;7660:17;7653:47;7717:78;7790:4;7781:6;7717:78;:::i;:::-;7709:86;;7489:313;;;;:::o;7808:232::-;7948:34;7944:1;7936:6;7932:14;7925:58;8017:15;8012:2;8004:6;8000:15;7993:40;7808:232;:::o;8046:366::-;8188:3;8209:67;8273:2;8268:3;8209:67;:::i;:::-;8202:74;;8285:93;8374:3;8285:93;:::i;:::-;8403:2;8398:3;8394:12;8387:19;;8046:366;;;:::o;8418:419::-;8584:4;8622:2;8611:9;8607:18;8599:26;;8671:9;8665:4;8661:20;8657:1;8646:9;8642:17;8635:47;8699:131;8825:4;8699:131;:::i;:::-;8691:139;;8418:419;;;:::o
Swarm Source
ipfs://34a12dd5ac2c472a8603cb149b23c9d597e1a2fc2cb4ff9315d75398980246fd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
AVAX | 100.00% | $18.95 | 3.05 | $57.81 |
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.