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 Source Code Verified (Exact Match)
Contract Name:
Emitter
Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
12345678910111213141516171819202122232425// SPDX-License-Identifier: MITpragma solidity 0.8.25;import "../common/Base.sol";contract Emitter is Base {event EventFired(address indexed source,bytes32 indexed eventType,bytes data,uint256 timestamp);function __Emitter_init() internal {}function initialize(address _registry) public initializer {// init by deployer// after setup, multisig will be changed to governance__Base_init(_registry);}function fireEvent(bytes32 eventType, bytes memory data) public onlyRole(this.fireEvent.selector) {emit EventFired(msg.sender, eventType, data, block.timestamp);}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.25;import "@openzeppelin-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol";import "@openzeppelin-upgradeable/contracts/access/OwnableUpgradeable.sol";import "./Constants.sol";import "../interfaces/IRegistry.sol";import "../interfaces/IAccessControl.sol";import "../interfaces/IEmitter.sol";abstract contract Base is Initializable, UUPSUpgradeable, OwnableUpgradeable {error InvalidSender(address sender);error InvalidRegistry(address registry);error InvalidUpgrader(address upgrader);address public registry;modifier onlyRole(bytes4 _selector) {if (_msgSender() == owner()) {_;return;}address accessControl = IRegistry(registry).getLatestServiceInstace(Constants.ACCESS_CONTROL_ID);
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/Ownable.sol)pragma solidity ^0.8.20;import {ContextUpgradeable} from "../utils/ContextUpgradeable.sol";import {Initializable} from "../proxy/utils/Initializable.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** The initial owner is set to the address provided by the deployer. This can* later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {/// @custom:storage-location erc7201:openzeppelin.storage.Ownablestruct OwnableStorage {address _owner;}
1234567891011121314151617181920// SPDX-License-Identifier: MITpragma solidity 0.8.25;library Constants {enum TokenType {Native,ERC20,ERC721,ERC1155}uint256 public constant PERCENTAGE_BASE = 10000;// instance idsstring public constant UPGRADER_ID = "Upgrader";string public constant ACCESS_CONTROL_ID = "AccessControl";string public constant REGISTRY_ID = "Registry";string public constant EVENT_EMITTER_ID = "EventEmitter";string public constant FACTORY_ID = "Factory";}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.25;interface IRegistry {function getPlatformFeeReceiver() external view returns (address);function getVerifier() external view returns (address);function getPlatformFee() external view returns (uint96);function feeDenominator() external view returns (uint96);function getFeeAmount(uint256 amount) external view returns (uint256 fee, uint256 received);function getRootURI() external view returns (string memory);function getServiceInstance(string calldata _id,uint256 _version) external view returns (address);function getLatestServiceInstace(string calldata _id) external view returns (address);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.25;interface IAccessControl {function getSelector(string memory _methodInfo) external pure returns (bytes4);function encodeRole(address _contract,string memory _methodInfo) external pure returns (bytes32);function encodeRole(address _contract,bytes4 _selector) external pure returns (bytes32);function hasRole(address _account,address _contract,bytes4 _selector) external view returns (bool);function hasRole(address _account,
12345678// SPDX-License-Identifier: MITpragma solidity 0.8.25;import "../common/Base.sol";interface IEmitter {function fireEvent(bytes32 eventType, bytes memory data) external;}
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) (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.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;}
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;
1234567891011121314151617181920212223242526{"remappings": ["@openzeppelin/=lib/openzeppelin-contracts/","@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/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/"],"optimizer": {"enabled": true,"runs": 1000000},"metadata": {"useLiteralContent": false,"bytecodeHash": "none","appendCBOR": true},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode",
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"FailedInnerCall","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"InvalidRegistry","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"upgrader","type":"address"}],"name":"InvalidUpgrader","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"source","type":"address"},{"indexed":true,"internalType":"bytes32","name":"eventType","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"EventFired","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"eventType","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"fireEvent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getEmitter","outputs":[{"internalType":"contract IEmitter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"name":"setRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","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"}]
Contract Creation Code
60a060405230608052348015601357600080fd5b5060805161154c61003d60003960008181610a7001528181610a990152610dc9015261154c6000f3fe6080604052600436106100bc5760003560e01c80638da5cb5b11610074578063b0c3dae61161004e578063b0c3dae61461023a578063c4d66de81461025a578063f2fde38b1461027a57600080fd5b80638da5cb5b1461017a578063a91ee0dc146101c4578063ad3cb1cc146101e457600080fd5b8063715018a6116100a5578063715018a6146100fe57806379aaef55146101135780637b1039991461014d57600080fd5b80634f1ef286146100c157806352d1902d146100d6575b600080fd5b6100d46100cf36600461138a565b61029a565b005b3480156100e257600080fd5b506100eb6102b9565b6040519081526020015b60405180910390f35b34801561010a57600080fd5b506100d46102e8565b34801561011f57600080fd5b506101286102fc565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f5565b34801561015957600080fd5b506000546101289073ffffffffffffffffffffffffffffffffffffffff1681565b34801561018657600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff16610128565b3480156101d057600080fd5b506100d46101df3660046113da565b6103c9565b3480156101f057600080fd5b5061022d6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f59190611465565b34801561024657600080fd5b506100d4610255366004611478565b610591565b34801561026657600080fd5b506100d46102753660046113da565b610874565b34801561028657600080fd5b506100d46102953660046113da565b6109f4565b6102a2610a58565b6102ab82610b5c565b6102b58282610c73565b5050565b60006102c3610db1565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6102f0610e20565b6102fa6000610eae565b565b60008054604080518082018252600c81527f4576656e74456d69747465720000000000000000000000000000000000000000602082015290517f0205febe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691630205febe9161038391600401611465565b602060405180830381865afa1580156103a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c491906114a9565b905090565b600054604080518082018252600881527f5570677261646572000000000000000000000000000000000000000000000000602082015290517f0205febe000000000000000000000000000000000000000000000000000000008152339273ffffffffffffffffffffffffffffffffffffffff1691630205febe916104509190600401611465565b602060405180830381865afa15801561046d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049191906114a9565b73ffffffffffffffffffffffffffffffffffffffff16146104e5576040517f34c67d490000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661054a576040517f540b960100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016104dc565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7fb0c3dae6000000000000000000000000000000000000000000000000000000006105f07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16330361066257823373ffffffffffffffffffffffffffffffffffffffff167f178bd242f5ef08054a2098c2cf01cb80f0bcacd7cb473fc482ecd1019a59717c84426040516106559291906114c6565b60405180910390a3505050565b60008054604080518082018252600d81527f416363657373436f6e74726f6c00000000000000000000000000000000000000602082015290517f0205febe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691630205febe916106e991600401611465565b602060405180830381865afa158015610706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072a91906114a9565b905073ffffffffffffffffffffffffffffffffffffffff8116632c91a426336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b8116825273ffffffffffffffffffffffffffffffffffffffff90921660048201523060248201529085166044820152606401602060405180830381865afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e591906114e8565b61081d576040517f4c14f64c0000000000000000000000000000000000000000000000000000000081523360048201526024016104dc565b833373ffffffffffffffffffffffffffffffffffffffff167f178bd242f5ef08054a2098c2cf01cb80f0bcacd7cb473fc482ecd1019a59717c85426040516108669291906114c6565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156108bf5750825b905060008267ffffffffffffffff1660011480156108dc5750303b155b9050811580156108ea575080155b15610921576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156109825784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61098b86610f44565b83156109ec5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b6109fc610e20565b73ffffffffffffffffffffffffffffffffffffffff8116610a4c576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024016104dc565b610a5581610eae565b50565b3073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480610b2557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b0c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614155b156102fa576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054604080518082018252600881527f5570677261646572000000000000000000000000000000000000000000000000602082015290517f0205febe000000000000000000000000000000000000000000000000000000008152339273ffffffffffffffffffffffffffffffffffffffff1691630205febe91610be39190600401611465565b602060405180830381865afa158015610c00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2491906114a9565b73ffffffffffffffffffffffffffffffffffffffff1614610a55576040517f34c67d490000000000000000000000000000000000000000000000000000000081523360048201526024016104dc565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610cf8575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610cf59181019061150a565b60015b610d46576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016104dc565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610da2576040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600481018290526024016104dc565b610dac8383610f4d565b505050565b3073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102fa576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33610e5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146102fa576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016104dc565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61054a33610fb0565b610f5682610fc1565b60405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610fa857610dac8282611090565b6102b5611113565b610fb861114b565b610a55816111b2565b8073ffffffffffffffffffffffffffffffffffffffff163b60000361102a576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016104dc565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516110ba9190611523565b600060405180830381855af49150503d80600081146110f5576040519150601f19603f3d011682016040523d82523d6000602084013e6110fa565b606091505b509150915061110a8583836111ba565b95945050505050565b34156102fa576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166102fa576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109fc61114b565b6060826111cf576111ca8261124c565b611245565b81511580156111f3575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611242576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104dc565b50805b9392505050565b80511561125c5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610a5557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126112f057600080fd5b813567ffffffffffffffff8082111561130b5761130b6112b0565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611351576113516112b0565b8160405283815286602085880101111561136a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561139d57600080fd5b82356113a88161128e565b9150602083013567ffffffffffffffff8111156113c457600080fd5b6113d0858286016112df565b9150509250929050565b6000602082840312156113ec57600080fd5b81356112458161128e565b60005b838110156114125781810151838201526020016113fa565b50506000910152565b600081518084526114338160208601602086016113f7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611245602083018461141b565b6000806040838503121561148b57600080fd5b82359150602083013567ffffffffffffffff8111156113c457600080fd5b6000602082840312156114bb57600080fd5b81516112458161128e565b6040815260006114d9604083018561141b565b90508260208301529392505050565b6000602082840312156114fa57600080fd5b8151801515811461124557600080fd5b60006020828403121561151c57600080fd5b5051919050565b600082516115358184602087016113f7565b919091019291505056fea164736f6c6343000819000a
Deployed Bytecode
0x6080604052600436106100bc5760003560e01c80638da5cb5b11610074578063b0c3dae61161004e578063b0c3dae61461023a578063c4d66de81461025a578063f2fde38b1461027a57600080fd5b80638da5cb5b1461017a578063a91ee0dc146101c4578063ad3cb1cc146101e457600080fd5b8063715018a6116100a5578063715018a6146100fe57806379aaef55146101135780637b1039991461014d57600080fd5b80634f1ef286146100c157806352d1902d146100d6575b600080fd5b6100d46100cf36600461138a565b61029a565b005b3480156100e257600080fd5b506100eb6102b9565b6040519081526020015b60405180910390f35b34801561010a57600080fd5b506100d46102e8565b34801561011f57600080fd5b506101286102fc565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f5565b34801561015957600080fd5b506000546101289073ffffffffffffffffffffffffffffffffffffffff1681565b34801561018657600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff16610128565b3480156101d057600080fd5b506100d46101df3660046113da565b6103c9565b3480156101f057600080fd5b5061022d6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516100f59190611465565b34801561024657600080fd5b506100d4610255366004611478565b610591565b34801561026657600080fd5b506100d46102753660046113da565b610874565b34801561028657600080fd5b506100d46102953660046113da565b6109f4565b6102a2610a58565b6102ab82610b5c565b6102b58282610c73565b5050565b60006102c3610db1565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6102f0610e20565b6102fa6000610eae565b565b60008054604080518082018252600c81527f4576656e74456d69747465720000000000000000000000000000000000000000602082015290517f0205febe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691630205febe9161038391600401611465565b602060405180830381865afa1580156103a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c491906114a9565b905090565b600054604080518082018252600881527f5570677261646572000000000000000000000000000000000000000000000000602082015290517f0205febe000000000000000000000000000000000000000000000000000000008152339273ffffffffffffffffffffffffffffffffffffffff1691630205febe916104509190600401611465565b602060405180830381865afa15801561046d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049191906114a9565b73ffffffffffffffffffffffffffffffffffffffff16146104e5576040517f34c67d490000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661054a576040517f540b960100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016104dc565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7fb0c3dae6000000000000000000000000000000000000000000000000000000006105f07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16330361066257823373ffffffffffffffffffffffffffffffffffffffff167f178bd242f5ef08054a2098c2cf01cb80f0bcacd7cb473fc482ecd1019a59717c84426040516106559291906114c6565b60405180910390a3505050565b60008054604080518082018252600d81527f416363657373436f6e74726f6c00000000000000000000000000000000000000602082015290517f0205febe00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691630205febe916106e991600401611465565b602060405180830381865afa158015610706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072a91906114a9565b905073ffffffffffffffffffffffffffffffffffffffff8116632c91a426336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b8116825273ffffffffffffffffffffffffffffffffffffffff90921660048201523060248201529085166044820152606401602060405180830381865afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e591906114e8565b61081d576040517f4c14f64c0000000000000000000000000000000000000000000000000000000081523360048201526024016104dc565b833373ffffffffffffffffffffffffffffffffffffffff167f178bd242f5ef08054a2098c2cf01cb80f0bcacd7cb473fc482ecd1019a59717c85426040516108669291906114c6565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156108bf5750825b905060008267ffffffffffffffff1660011480156108dc5750303b155b9050811580156108ea575080155b15610921576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156109825784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b61098b86610f44565b83156109ec5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b6109fc610e20565b73ffffffffffffffffffffffffffffffffffffffff8116610a4c576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024016104dc565b610a5581610eae565b50565b3073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000001efe5a9d69f68338840b3ce344514542756aff8f161480610b2557507f0000000000000000000000001efe5a9d69f68338840b3ce344514542756aff8f73ffffffffffffffffffffffffffffffffffffffff16610b0c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614155b156102fa576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054604080518082018252600881527f5570677261646572000000000000000000000000000000000000000000000000602082015290517f0205febe000000000000000000000000000000000000000000000000000000008152339273ffffffffffffffffffffffffffffffffffffffff1691630205febe91610be39190600401611465565b602060405180830381865afa158015610c00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2491906114a9565b73ffffffffffffffffffffffffffffffffffffffff1614610a55576040517f34c67d490000000000000000000000000000000000000000000000000000000081523360048201526024016104dc565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610cf8575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610cf59181019061150a565b60015b610d46576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201526024016104dc565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610da2576040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600481018290526024016104dc565b610dac8383610f4d565b505050565b3073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000001efe5a9d69f68338840b3ce344514542756aff8f16146102fa576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33610e5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16146102fa576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016104dc565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61054a33610fb0565b610f5682610fc1565b60405173ffffffffffffffffffffffffffffffffffffffff8316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610fa857610dac8282611090565b6102b5611113565b610fb861114b565b610a55816111b2565b8073ffffffffffffffffffffffffffffffffffffffff163b60000361102a576040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016104dc565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516110ba9190611523565b600060405180830381855af49150503d80600081146110f5576040519150601f19603f3d011682016040523d82523d6000602084013e6110fa565b606091505b509150915061110a8583836111ba565b95945050505050565b34156102fa576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166102fa576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109fc61114b565b6060826111cf576111ca8261124c565b611245565b81511580156111f3575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611242576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104dc565b50805b9392505050565b80511561125c5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610a5557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126112f057600080fd5b813567ffffffffffffffff8082111561130b5761130b6112b0565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611351576113516112b0565b8160405283815286602085880101111561136a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561139d57600080fd5b82356113a88161128e565b9150602083013567ffffffffffffffff8111156113c457600080fd5b6113d0858286016112df565b9150509250929050565b6000602082840312156113ec57600080fd5b81356112458161128e565b60005b838110156114125781810151838201526020016113fa565b50506000910152565b600081518084526114338160208601602086016113f7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611245602083018461141b565b6000806040838503121561148b57600080fd5b82359150602083013567ffffffffffffffff8111156113c457600080fd5b6000602082840312156114bb57600080fd5b81516112458161128e565b6040815260006114d9604083018561141b565b90508260208301529392505050565b6000602082840312156114fa57600080fd5b8151801515811461124557600080fd5b60006020828403121561151c57600080fd5b5051919050565b600082516115358184602087016113f7565b919091019291505056fea164736f6c6343000819000a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.