Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
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:
Treasury
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 1000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: UNLICENSEDpragma solidity 0.8.21;import { Initializable } from "openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol";import { UUPSUpgradeable } from "openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol";import { AccessControlUpgradeable} from "openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol";import { ReentrancyGuardUpgradeable } from"openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol";import { PausableUpgradeable } from "openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol";import { ITreasury } from "./interfaces/ITreasury.sol";import { ISemVer } from "./interfaces/ISemVer.sol";/// @title Treasury/// @dev Stores ether from the ether bridge or the owner and allows for emergency withdraws by the owner.contract Treasury isITreasury,ISemVer,Initializable,AccessControlUpgradeable,PausableUpgradeable,ReentrancyGuardUpgradeable,UUPSUpgradeable{struct OwnableStorage {address _owner;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)pragma solidity ^0.8.20;/*** @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed* behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an* external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer* function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.** The initialization functions use a version number. Once a version number is used, it is consumed and cannot be* reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in* case an upgrade adds a module that needs to be initialized.** For example:** [.hljs-theme-light.nopadding]* ```solidity* contract MyToken is ERC20Upgradeable {* function initialize() initializer public {* __ERC20_init("MyToken", "MTK");* }* }** contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/UUPSUpgradeable.sol)pragma solidity ^0.8.20;import {IERC1822Proxiable} from "@openzeppelin/contracts/interfaces/draft-IERC1822.sol";import {ERC1967Utils} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol";import {Initializable} from "./Initializable.sol";/*** @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an* {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy.** A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is* reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing* `UUPSUpgradeable` with a custom implementation of upgrades.** The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism.*/abstract contract UUPSUpgradeable is Initializable, IERC1822Proxiable {/// @custom:oz-upgrades-unsafe-allow state-variable-immutableaddress private immutable __self = address(this);/*** @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgradeTo(address)`* and `upgradeToAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)pragma solidity ^0.8.20;import {IAccessControl} from "@openzeppelin/contracts/access/IAccessControl.sol";import {ContextUpgradeable} from "../utils/ContextUpgradeable.sol";import {ERC165Upgradeable} from "../utils/introspection/ERC165Upgradeable.sol";import {Initializable} from "../proxy/utils/Initializable.sol";/*** @dev Contract module that allows children to implement role-based access* control mechanisms. This is a lightweight version that doesn't allow enumerating role* members except through off-chain means by accessing the contract event logs. Some* applications may benefit from on-chain enumerability, for those cases see* {AccessControlEnumerable}.** Roles are referred to by their `bytes32` identifier. These should be exposed* in the external API and be unique. The best way to achieve this is by* using `public constant` hash digests:** ```solidity* bytes32 public constant MY_ROLE = keccak256("MY_ROLE");* ```** Roles can be used to represent a set of permissions. To restrict access to a
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/ReentrancyGuard.sol)pragma solidity ^0.8.20;import {Initializable} from "../proxy/utils/Initializable.sol";/*** @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 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 ReentrancyGuardUpgradeable is Initializable {// Booleans are more expensive than uint256 or any type that takes up a full// word because each write operation emits an extra SLOAD to first read the// slot's contents, replace the bits taken up by the boolean, and then write
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/Pausable.sol)pragma solidity ^0.8.20;import {ContextUpgradeable} from "../utils/ContextUpgradeable.sol";import {Initializable} from "../proxy/utils/Initializable.sol";/*** @dev Contract module which allows children to implement an emergency stop* mechanism that can be triggered by an authorized account.** This module is used through inheritance. It will make available the* modifiers `whenNotPaused` and `whenPaused`, which can be applied to* the functions of your contract. Note that they will not be pausable by* simply including this module, only once the modifiers are put in place.*/abstract contract PausableUpgradeable is Initializable, ContextUpgradeable {/// @custom:storage-location erc7201:openzeppelin.storage.Pausablestruct PausableStorage {bool _paused;}// keccak256(abi.encode(uint256(keccak256("openzeppelin.storage.Pausable")) - 1)) & ~bytes32(uint256(0xff))bytes32 private constant PausableStorageLocation = 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: UNLICENSEDpragma solidity 0.8.21;/// @title ITreasury/// @notice Interface for a treasury contract stores ether./// @dev This interface assumes the implementation will provide a fallback function to receive ether.interface ITreasury {/// @notice Emitted when the treasury is re-initialized./// @param admin Address that initiated the re-initialization./// @param oldOwner Address that was granted various permissions.event TreasuryReinitialized(address admin, address oldOwner);/// @notice Emitted when ether is deposited into the treasury./// @param from The address of the sender who deposited ether./// @param amountWei The amount of ether deposited.event TreasuryDeposit(address indexed from, uint256 amountWei);/// @notice Emitted when ether is withdrawn from the treasury./// @param authority The sender of the withdraw instruction./// @param to The address of the sender who received ether./// @param amountWei The amount of ether withdrawn.event TreasuryWithdraw(address authority,address indexed to,uint256 amountWei);
1234567891011121314151617181920212223// SPDX-License-Identifier: UNLICENSEDpragma solidity 0.8.21;/*** @title ISemVer* @dev Interface for SemVer versioning within smart contracts.*/interface ISemVer {/// @dev Struct to hold the version components./// @param major The major version component, incremented for incompatible API changes./// @param minor The minor version component, incremented for added functionality in a backwards-compatible manner./// @param patch The patch version component, incremented for backwards-compatible bug fixes.struct Version {uint8 major;uint8 minor;uint8 patch;}/// @dev Returns the major, minor, and patch components of the version as a struct./// @return Version memory Returns the version details encapsulated in a Version struct.function getVersionComponents() external pure returns (Version memory);}
1234567891011121314151617181920// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC1822.sol)pragma solidity ^0.8.20;/*** @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);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Utils.sol)pragma solidity ^0.8.20;import {IBeacon} from "../beacon/IBeacon.sol";import {Address} from "../../utils/Address.sol";import {StorageSlot} from "../../utils/StorageSlot.sol";/*** @dev This abstract contract provides getters and event emitting update functions for* https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.*/library ERC1967Utils {// We re-declare ERC-1967 events here because they can't be used directly from IERC1967.// This will be fixed in Solidity 0.8.21. At that point we should remove these events./*** @dev Emitted when the implementation is upgraded.*/event Upgraded(address indexed implementation);/*** @dev Emitted when the admin account has changed.*/event AdminChanged(address previousAdmin, address newAdmin);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)pragma solidity ^0.8.20;/*** @dev External interface of AccessControl declared to support ERC165 detection.*/interface IAccessControl {/*** @dev The `account` is missing a role.*/error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);/*** @dev The caller of a function is not the expected one.** NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.*/error AccessControlBadConfirmation();/*** @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`** `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite* {RoleAdminChanged} not being emitted signaling this.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)pragma solidity ^0.8.20;import {Initializable} from "../proxy/utils/Initializable.sol";/*** @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 ContextUpgradeable is Initializable {function __Context_init() internal onlyInitializing {}function __Context_init_unchained() internal onlyInitializing {}function _msgSender() internal view virtual returns (address) {return msg.sender;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)pragma solidity ^0.8.20;import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";import {Initializable} from "../../proxy/utils/Initializable.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check* for the additional interface id that will be supported. For example:** ```solidity* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);* }* ```*/abstract contract ERC165Upgradeable is Initializable, IERC165 {function __ERC165_init() internal onlyInitializing {}function __ERC165_init_unchained() internal onlyInitializing {}
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol)pragma solidity ^0.8.20;/*** @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.** {UpgradeableBeacon} will check that this address is a contract.*/function implementation() external view returns (address);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)pragma solidity ^0.8.20;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev The ETH balance of the account is not enough to perform the operation.*/error AddressInsufficientBalance(address account);/*** @dev There's no code at `target` (it is not a contract).*/error AddressEmptyCode(address target);/*** @dev A call to an address target failed. The target may have reverted.*/error FailedInnerCall();/*** @dev Replacement for Solidity's `transfer`: sends `amount` wei to
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.pragma solidity ^0.8.20;/*** @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:* ```solidity* 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(newImplementation.code.length > 0);* StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** 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[EIP 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": ["ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","lib/forge-std:ds-test/=lib/forge-std/lib/ds-test/src/","lib/openzeppelin-contracts:@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","lib/openzeppelin-contracts:ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","lib/openzeppelin-contracts:erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","lib/openzeppelin-contracts:forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/","lib/openzeppelin-contracts-upgradeable:@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","lib/openzeppelin-contracts-upgradeable:@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","lib/openzeppelin-contracts-upgradeable:ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","lib/openzeppelin-contracts-upgradeable:erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","lib/openzeppelin-contracts-upgradeable:forge-std/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/","lib/openzeppelin-contracts-upgradeable:openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/","@openzeppelin/=lib/openzeppelin-contracts/contracts/","@openzeppelin-upgradeable/=lib/@penzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[],"name":"TreasuryTransferFailed","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountWei","type":"uint256"}],"name":"EmergencyTreasuryWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountWei","type":"uint256"}],"name":"TreasuryDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"},{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"}],"name":"TreasuryReinitialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"authority","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountWei","type":"uint256"}],"name":"TreasuryWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSITOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EMERGENCY_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STARTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_AUTHORITY_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountWei","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVersionComponents","outputs":[{"components":[{"internalType":"uint8","name":"major","type":"uint8"},{"internalType":"uint8","name":"minor","type":"uint8"},{"internalType":"uint8","name":"patch","type":"uint8"}],"internalType":"struct ISemVer.Version","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reinitialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","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"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amountWei","type":"uint256"}],"name":"withdrawEth","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a080604052346100cc57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100bd57506001600160401b036002600160401b031982821601610078575b60405161169d90816100d282396080518181816106c1015261079d0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610059565b63f92ee8a960e01b8152600490fd5b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714610efd5750816303cb849914610ec25781631b9a91a414610d2c5781631be9995314610cf157816320df435914610cb6578163248a9ca314610c7e5781632f2ff15d14610c5457816336568abe14610bf55781633f4ba83a14610b0e578163439370b114610a7f5781634442eab214610a1b5781634f1ef2861461072057816352d1902d146106a45781635312ea8e146105da5781635c975abb146105975781636c2eb3501461042b5781638456cb591461035257816391d14854146102ff578163a217fddf146102e4578163a3b0b5a3146102a9578163ad3cb1cc146101f5578163d547741f146101a457508063e63ab1e91461016a5763f72c0d8b1461012d57600080fd5b34610166578160031936011261016657602090517f0fb7166d9f681d2bd296a45a1a2e81365c392be30b6156d73b45df44e85cdb9f8152f35b5080fd5b5034610166578160031936011261016657602090517f39935d86204acf3d77da26425d7a46606d2550568c6b1876f3a2e76c804c76268152f35b919050346101f157806003193601126101f1576101ed91356101e860016101c9610fb6565b938387526000805160206116488339815191526020528620015461103c565b6114ab565b5080f35b8280fd5b9050346101f157826003193601126101f1578151908282019082821067ffffffffffffffff83111761029657508252600581526020907f352e302e300000000000000000000000000000000000000000000000000000008282015282519382859384528251928382860152825b84811061028057505050828201840152601f01601f19168101030190f35b8181018301518882018801528795508201610262565b846041602492634e487b7160e01b835252fd5b505034610166578160031936011261016657602090517fd50fd8c1b5fa5213a5974932fcc33d2992a99225bc9319caf7cf652d0d2b9acf8152f35b50503461016657816003193601126101665751908152602090f35b9050346101f157816003193601126101f1578160209360ff92610320610fb6565b9035825260008051602061164883398151915286526001600160a01b0383832091168252855220541690519015158152f35b9050346101f157826003193601126101f1577f39935d86204acf3d77da26425d7a46606d2550568c6b1876f3a2e76c804c762680845260008051602061164883398151915260205282842033855260205260ff83852054161561041057837f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020856103dc6115f2565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff1916600117905551338152a180f35b604492519163e2517d3f60e01b835233908301526024820152fd5b9050346101f157826003193601126101f1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090815460ff81851c168015610582575b6105735768ffffffffffffffffff1916680100000000000000021782557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03169081156105655750916020916105417fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2947fea56cfeef65597111833653b9053542ffbcb86637a9920cc21664295169040fd8480513381528388820152a161051d8161108d565b506105278161112d565b50610531816111ef565b5061053b816112ab565b50611367565b5061054b3361108d565b50805468ff0000000000000000191690555160028152a180f35b835163f92ee8a960e01b8152fd5b50825163f92ee8a960e01b8152fd5b50600267ffffffffffffffff8216101561046e565b50503461016657816003193601126101665760209060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300541690519015158152f35b919050346101f15760203660031901126101f1578135917f9e97963c33348a1cae64c3216747be51682ee42f36d1ed282cb81018cdb30e3d80855260008051602061164883398151915260205282852033865260205260ff8386205416156104105750824710610696578380808086335af161065461152f565b50156106885750519081527f8bc1e000092be4d2cfc113dc7fd97b390d3459e1491c422f8ac30e572f364f4760203392a280f35b90516301c6e79f60e31b8152fd5b905163356680b760e01b8152fd5b82843461071d578060031936011261071d57506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361071057602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b80fd5b918091506003193601126101f157610736610f9b565b90602493843567ffffffffffffffff8111610166573660238201121561016657808501359361076485611020565b61077085519182610ffe565b85815260209586820193368a83830101116109b7578186928b8a93018737830101526001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000168030149081156109ed575b506109de577f0fb7166d9f681d2bd296a45a1a2e81365c392be30b6156d73b45df44e85cdb9f8086526000805160206116488339815191528852868620338752885260ff8787205416156109c257508216958551907f52d1902d00000000000000000000000000000000000000000000000000000000825280828a818b5afa918291879361098e575b505061086d5750505050505191634c9c8ce360e01b8352820152fd5b86899689927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908181036109605750853b1561094b5780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168317905551869392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a28251156109165750506101ed9382915190845af461091061152f565b9161155f565b9350935050503461092657505080f35b7fb398979f000000000000000000000000000000000000000000000000000000008152fd5b508793505191634c9c8ce360e01b8352820152fd5b848a918451917faa1d49a4000000000000000000000000000000000000000000000000000000008352820152fd5b9080929350813d83116109bb575b6109a68183610ffe565b810103126109b75751903880610851565b8580fd5b503d61099c565b886044918b89519263e2517d3f60e01b84523390840152820152fd5b87865163703e46dd60e11b8152fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415386107c8565b5050346101665781600319360112610166579081818160609451610a3e81610fcc565b828152826020820152015260ff815192610a5784610fcc565b6002845282602085019482865201908152818351946002865251166020850152511690820152f35b9050826003193601126101f157610a946115f2565b7fd50fd8c1b5fa5213a5974932fcc33d2992a99225bc9319caf7cf652d0d2b9acf80845260008051602061164883398151915260205282842033855260205260ff838520541615610410575050513481527fe3407208b14fa025330ca187030f118a1c0cdb604aba93ba45c862e6095aee2760203392a280f35b9050346101f157826003193601126101f1577fac6a94bcd1ac2877eda181de9748e5972fc07f76d4864cecf836b3fca185e53c80845260008051602061164883398151915260205282842033855260205260ff83852054161561041057507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009081549060ff821615610bce575060ff19169055513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b83517f8dfc202b000000000000000000000000000000000000000000000000000000008152fd5b838334610166578060031936011261016657610c0f610fb6565b90336001600160a01b03831603610c2c57506101ed9192356114ab565b8390517f6697b232000000000000000000000000000000000000000000000000000000008152fd5b919050346101f157806003193601126101f1576101ed9135610c7960016101c9610fb6565b611423565b9050346101f15760203660031901126101f1578160209360019235815260008051602061164883398151915285522001549051908152f35b505034610166578160031936011261016657602090517f9e97963c33348a1cae64c3216747be51682ee42f36d1ed282cb81018cdb30e3d8152f35b505034610166578160031936011261016657602090517fac6a94bcd1ac2877eda181de9748e5972fc07f76d4864cecf836b3fca185e53c8152f35b82843461071d578160031936011261071d57610d46610f9b565b92602435907f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00946002865414610e9a576001600160a01b039060028755610d8b6115f2565b16928315610e72577ffe482b7b16acc2ea6eda181934b481a09d50ed8e3579b43c531bc57b84336c5380825260008051602061164883398151915260205285822033835260205260ff868320541615610e555750824710610e465780808085875af1610df561152f565b5015610e385750926001917fa9186eec1c1f118aa187d90aecd4ff2bf3d2e5412f3750362412ac6f7f5721478460209681519033825288820152a2555160018152f35b83516301c6e79f60e31b8152fd5b50835163356680b760e01b8152fd5b8260449187519163e2517d3f60e01b835233908301526024820152fd5b5083517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b5083517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b505034610166578160031936011261016657602090517ffe482b7b16acc2ea6eda181934b481a09d50ed8e3579b43c531bc57b84336c538152f35b8491346101f15760203660031901126101f157357fffffffff0000000000000000000000000000000000000000000000000000000081168091036101f157602092507f7965db0b000000000000000000000000000000000000000000000000000000008114908115610f71575b5015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483610f6a565b600435906001600160a01b0382168203610fb157565b600080fd5b602435906001600160a01b0382168203610fb157565b6060810190811067ffffffffffffffff821117610fe857604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610fe857604052565b67ffffffffffffffff8111610fe857601f01601f191660200190565b8060005260008051602061164883398151915260205260406000203360005260205260ff604060002054161561106f5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120549091906000805160206116488339815191529060ff16611128578280526020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505090565b6001600160a01b031660008181527fe0f9959cce911b05a02b0433a842226f1a4c34a56deea85cd75fa55de707163460205260408120549091907f39935d86204acf3d77da26425d7a46606d2550568c6b1876f3a2e76c804c7626906000805160206116488339815191529060ff166111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b50505090565b6001600160a01b031660008181527f9d787a8ef967941e2ac1ec14a98f40d3cbad7674d14133e0435fee7b34ae8bdd60205260408120549091907fac6a94bcd1ac2877eda181de9748e5972fc07f76d4864cecf836b3fca185e53c906000805160206116488339815191529060ff166111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b6001600160a01b031660008181527fdc84749acaefa4f441da0300f9bbd06b8e40bf3c5a4edaefcb0c80a52b77881960205260408120549091907f0fb7166d9f681d2bd296a45a1a2e81365c392be30b6156d73b45df44e85cdb9f906000805160206116488339815191529060ff166111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b6001600160a01b031660008181527f39cde51a7e084cb6184b2841b8e1fbae3fd3a3c6cda71063ac67f5974ff1e17860205260408120549091907f9e97963c33348a1cae64c3216747be51682ee42f36d1ed282cb81018cdb30e3d906000805160206116488339815191529060ff166111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b90600091808352600080516020611648833981519152806020526001600160a01b036040852093169283855260205260ff604085205416156000146111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b90600091808352600080516020611648833981519152806020526001600160a01b036040852093169283855260205260ff6040852054166000146111e957818452602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b3d1561155a573d9061154082611020565b9161154e6040519384610ffe565b82523d6000602084013e565b606090565b9061159e575080511561157457805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b815115806115e9575b6115af575090565b6024906001600160a01b03604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b156115a7565b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300541661161d57565b60046040517fd93c0665000000000000000000000000000000000000000000000000000000008152fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220bc11d6ff728a40948dbf33bbf95b911e54b54fca63c48ec1e045a7521601c57a64736f6c63430008150033
Deployed Bytecode
0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714610efd5750816303cb849914610ec25781631b9a91a414610d2c5781631be9995314610cf157816320df435914610cb6578163248a9ca314610c7e5781632f2ff15d14610c5457816336568abe14610bf55781633f4ba83a14610b0e578163439370b114610a7f5781634442eab214610a1b5781634f1ef2861461072057816352d1902d146106a45781635312ea8e146105da5781635c975abb146105975781636c2eb3501461042b5781638456cb591461035257816391d14854146102ff578163a217fddf146102e4578163a3b0b5a3146102a9578163ad3cb1cc146101f5578163d547741f146101a457508063e63ab1e91461016a5763f72c0d8b1461012d57600080fd5b34610166578160031936011261016657602090517f0fb7166d9f681d2bd296a45a1a2e81365c392be30b6156d73b45df44e85cdb9f8152f35b5080fd5b5034610166578160031936011261016657602090517f39935d86204acf3d77da26425d7a46606d2550568c6b1876f3a2e76c804c76268152f35b919050346101f157806003193601126101f1576101ed91356101e860016101c9610fb6565b938387526000805160206116488339815191526020528620015461103c565b6114ab565b5080f35b8280fd5b9050346101f157826003193601126101f1578151908282019082821067ffffffffffffffff83111761029657508252600581526020907f352e302e300000000000000000000000000000000000000000000000000000008282015282519382859384528251928382860152825b84811061028057505050828201840152601f01601f19168101030190f35b8181018301518882018801528795508201610262565b846041602492634e487b7160e01b835252fd5b505034610166578160031936011261016657602090517fd50fd8c1b5fa5213a5974932fcc33d2992a99225bc9319caf7cf652d0d2b9acf8152f35b50503461016657816003193601126101665751908152602090f35b9050346101f157816003193601126101f1578160209360ff92610320610fb6565b9035825260008051602061164883398151915286526001600160a01b0383832091168252855220541690519015158152f35b9050346101f157826003193601126101f1577f39935d86204acf3d77da26425d7a46606d2550568c6b1876f3a2e76c804c762680845260008051602061164883398151915260205282842033855260205260ff83852054161561041057837f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020856103dc6115f2565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff1916600117905551338152a180f35b604492519163e2517d3f60e01b835233908301526024820152fd5b9050346101f157826003193601126101f1577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090815460ff81851c168015610582575b6105735768ffffffffffffffffff1916680100000000000000021782557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03169081156105655750916020916105417fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2947fea56cfeef65597111833653b9053542ffbcb86637a9920cc21664295169040fd8480513381528388820152a161051d8161108d565b506105278161112d565b50610531816111ef565b5061053b816112ab565b50611367565b5061054b3361108d565b50805468ff0000000000000000191690555160028152a180f35b835163f92ee8a960e01b8152fd5b50825163f92ee8a960e01b8152fd5b50600267ffffffffffffffff8216101561046e565b50503461016657816003193601126101665760209060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300541690519015158152f35b919050346101f15760203660031901126101f1578135917f9e97963c33348a1cae64c3216747be51682ee42f36d1ed282cb81018cdb30e3d80855260008051602061164883398151915260205282852033865260205260ff8386205416156104105750824710610696578380808086335af161065461152f565b50156106885750519081527f8bc1e000092be4d2cfc113dc7fd97b390d3459e1491c422f8ac30e572f364f4760203392a280f35b90516301c6e79f60e31b8152fd5b905163356680b760e01b8152fd5b82843461071d578060031936011261071d57506001600160a01b037f000000000000000000000000f1f7a359c3f33ee8a66bdcbf4c897d25caf9097816300361071057602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b80fd5b918091506003193601126101f157610736610f9b565b90602493843567ffffffffffffffff8111610166573660238201121561016657808501359361076485611020565b61077085519182610ffe565b85815260209586820193368a83830101116109b7578186928b8a93018737830101526001600160a01b03807f000000000000000000000000f1f7a359c3f33ee8a66bdcbf4c897d25caf90978168030149081156109ed575b506109de577f0fb7166d9f681d2bd296a45a1a2e81365c392be30b6156d73b45df44e85cdb9f8086526000805160206116488339815191528852868620338752885260ff8787205416156109c257508216958551907f52d1902d00000000000000000000000000000000000000000000000000000000825280828a818b5afa918291879361098e575b505061086d5750505050505191634c9c8ce360e01b8352820152fd5b86899689927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908181036109605750853b1561094b5780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168317905551869392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a28251156109165750506101ed9382915190845af461091061152f565b9161155f565b9350935050503461092657505080f35b7fb398979f000000000000000000000000000000000000000000000000000000008152fd5b508793505191634c9c8ce360e01b8352820152fd5b848a918451917faa1d49a4000000000000000000000000000000000000000000000000000000008352820152fd5b9080929350813d83116109bb575b6109a68183610ffe565b810103126109b75751903880610851565b8580fd5b503d61099c565b886044918b89519263e2517d3f60e01b84523390840152820152fd5b87865163703e46dd60e11b8152fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415386107c8565b5050346101665781600319360112610166579081818160609451610a3e81610fcc565b828152826020820152015260ff815192610a5784610fcc565b6002845282602085019482865201908152818351946002865251166020850152511690820152f35b9050826003193601126101f157610a946115f2565b7fd50fd8c1b5fa5213a5974932fcc33d2992a99225bc9319caf7cf652d0d2b9acf80845260008051602061164883398151915260205282842033855260205260ff838520541615610410575050513481527fe3407208b14fa025330ca187030f118a1c0cdb604aba93ba45c862e6095aee2760203392a280f35b9050346101f157826003193601126101f1577fac6a94bcd1ac2877eda181de9748e5972fc07f76d4864cecf836b3fca185e53c80845260008051602061164883398151915260205282842033855260205260ff83852054161561041057507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009081549060ff821615610bce575060ff19169055513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b83517f8dfc202b000000000000000000000000000000000000000000000000000000008152fd5b838334610166578060031936011261016657610c0f610fb6565b90336001600160a01b03831603610c2c57506101ed9192356114ab565b8390517f6697b232000000000000000000000000000000000000000000000000000000008152fd5b919050346101f157806003193601126101f1576101ed9135610c7960016101c9610fb6565b611423565b9050346101f15760203660031901126101f1578160209360019235815260008051602061164883398151915285522001549051908152f35b505034610166578160031936011261016657602090517f9e97963c33348a1cae64c3216747be51682ee42f36d1ed282cb81018cdb30e3d8152f35b505034610166578160031936011261016657602090517fac6a94bcd1ac2877eda181de9748e5972fc07f76d4864cecf836b3fca185e53c8152f35b82843461071d578160031936011261071d57610d46610f9b565b92602435907f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00946002865414610e9a576001600160a01b039060028755610d8b6115f2565b16928315610e72577ffe482b7b16acc2ea6eda181934b481a09d50ed8e3579b43c531bc57b84336c5380825260008051602061164883398151915260205285822033835260205260ff868320541615610e555750824710610e465780808085875af1610df561152f565b5015610e385750926001917fa9186eec1c1f118aa187d90aecd4ff2bf3d2e5412f3750362412ac6f7f5721478460209681519033825288820152a2555160018152f35b83516301c6e79f60e31b8152fd5b50835163356680b760e01b8152fd5b8260449187519163e2517d3f60e01b835233908301526024820152fd5b5083517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b5083517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b505034610166578160031936011261016657602090517ffe482b7b16acc2ea6eda181934b481a09d50ed8e3579b43c531bc57b84336c538152f35b8491346101f15760203660031901126101f157357fffffffff0000000000000000000000000000000000000000000000000000000081168091036101f157602092507f7965db0b000000000000000000000000000000000000000000000000000000008114908115610f71575b5015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483610f6a565b600435906001600160a01b0382168203610fb157565b600080fd5b602435906001600160a01b0382168203610fb157565b6060810190811067ffffffffffffffff821117610fe857604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610fe857604052565b67ffffffffffffffff8111610fe857601f01601f191660200190565b8060005260008051602061164883398151915260205260406000203360005260205260ff604060002054161561106f5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120549091906000805160206116488339815191529060ff16611128578280526020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505090565b6001600160a01b031660008181527fe0f9959cce911b05a02b0433a842226f1a4c34a56deea85cd75fa55de707163460205260408120549091907f39935d86204acf3d77da26425d7a46606d2550568c6b1876f3a2e76c804c7626906000805160206116488339815191529060ff166111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b50505090565b6001600160a01b031660008181527f9d787a8ef967941e2ac1ec14a98f40d3cbad7674d14133e0435fee7b34ae8bdd60205260408120549091907fac6a94bcd1ac2877eda181de9748e5972fc07f76d4864cecf836b3fca185e53c906000805160206116488339815191529060ff166111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b6001600160a01b031660008181527fdc84749acaefa4f441da0300f9bbd06b8e40bf3c5a4edaefcb0c80a52b77881960205260408120549091907f0fb7166d9f681d2bd296a45a1a2e81365c392be30b6156d73b45df44e85cdb9f906000805160206116488339815191529060ff166111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b6001600160a01b031660008181527f39cde51a7e084cb6184b2841b8e1fbae3fd3a3c6cda71063ac67f5974ff1e17860205260408120549091907f9e97963c33348a1cae64c3216747be51682ee42f36d1ed282cb81018cdb30e3d906000805160206116488339815191529060ff166111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b90600091808352600080516020611648833981519152806020526001600160a01b036040852093169283855260205260ff604085205416156000146111e9578184526020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b90600091808352600080516020611648833981519152806020526001600160a01b036040852093169283855260205260ff6040852054166000146111e957818452602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b3d1561155a573d9061154082611020565b9161154e6040519384610ffe565b82523d6000602084013e565b606090565b9061159e575080511561157457805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b815115806115e9575b6115af575090565b6024906001600160a01b03604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b156115a7565b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300541661161d57565b60046040517fd93c0665000000000000000000000000000000000000000000000000000000008152fdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220bc11d6ff728a40948dbf33bbf95b911e54b54fca63c48ec1e045a7521601c57a64736f6c63430008150033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.