Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ProxyAdmin
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.3) (proxy/transparent/ProxyAdmin.sol)pragma solidity ^0.8.0;import "./TransparentUpgradeableProxy.sol";import "../../access/Ownable.sol";/*** @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an* explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.*/contract ProxyAdmin is Ownable {/*** @dev Returns the current implementation of `proxy`.** Requirements:** - This contract must be the admin of `proxy`.*/function getProxyImplementation(ITransparentUpgradeableProxy proxy) public view virtual returns (address) {// We need to manually run the static call since the getter cannot be flagged as view// bytes4(keccak256("implementation()")) == 0x5c60da1b(bool success, bytes memory returndata) = address(proxy).staticcall(hex"5c60da1b");require(success);return abi.decode(returndata, (address));
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.3) (proxy/transparent/TransparentUpgradeableProxy.sol)pragma solidity ^0.8.0;import "../ERC1967/ERC1967Proxy.sol";/*** @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}* does not implement this interface directly, and some of its functions are implemented by an internal dispatch* mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not* include them in the ABI so this interface must be used to interact with it.*/interface ITransparentUpgradeableProxy is IERC1967 {function admin() external view returns (address);function implementation() external view returns (address);function changeAdmin(address) external;function upgradeTo(address) external;function upgradeToAndCall(address, bytes memory) external payable;}/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/Context.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.** By default, the owner account will be the one that deploys the contract. 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 Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)pragma solidity ^0.8.0;import "../Proxy.sol";import "./ERC1967Upgrade.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);}/**
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)pragma solidity ^0.8.0;/*** @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.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.3) (proxy/ERC1967/ERC1967Upgrade.sol)pragma solidity ^0.8.2;import "../beacon/IBeacon.sol";import "../../interfaces/IERC1967.sol";import "../../interfaces/draft-IERC1822.sol";import "../../utils/Address.sol";import "../../utils/StorageSlot.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 is IERC1967 {// This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1bytes32 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
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)pragma solidity ^0.8.0;/*** @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);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.3) (interfaces/IERC1967.sol)pragma solidity ^0.8.0;/*** @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.** _Available since v4.9._*/interface IERC1967 {/*** @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);/*** @dev Emitted when the beacon is changed.*/event BeaconUpgraded(address indexed beacon);}
1234567891011121314151617181920// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)pragma solidity ^0.8.0;/*** @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 v4.8.0) (utils/Address.sol)pragma solidity ^0.8.1;/*** @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* ====*
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (utils/StorageSlot.sol)pragma solidity ^0.8.0;/*** @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;* }
1234567891011121314151617181920212223242526{"remappings": ["ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","contract-evm/=/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer": {"enabled": true,"runs": 1000},"metadata": {"useLiteralContent": false,"bytecodeHash": "ipfs","appendCBOR": true},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","abi"]
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeAndCall","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
6080604052348015600e575f80fd5b50601633601a565b6069565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610718806100765f395ff3fe608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010957806399a88ec41461011c578063f2fde38b1461013b578063f3b7dead1461015a575f80fd5b8063204e1c7a1461007d578063715018a6146100b85780637eff275e146100ce5780638da5cb5b146100ed575b5f80fd5b348015610088575f80fd5b5061009c610097366004610525565b610179565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c3575f80fd5b506100cc61021d565b005b3480156100d9575f80fd5b506100cc6100e8366004610547565b610230565b3480156100f8575f80fd5b505f546001600160a01b031661009c565b6100cc6101173660046105ab565b6102ac565b348015610127575f80fd5b506100cc610136366004610547565b610330565b348015610146575f80fd5b506100cc610155366004610525565b61037f565b348015610165575f80fd5b5061009c610174366004610525565b610414565b5f805f836001600160a01b03166040516101b6907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b5f60405180830381855afa9150503d805f81146101ee576040519150601f19603f3d011682016040523d82523d5f602084013e6101f3565b606091505b509150915081610201575f80fd5b808060200190518101906102159190610682565b949350505050565b610225610451565b61022e5f6104aa565b565b610238610451565b6040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690638f283970906024015b5f604051808303815f87803b158015610292575f80fd5b505af11580156102a4573d5f803e3d5ffd5b505050505050565b6102b4610451565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906102fd908690869060040161069d565b5f604051808303818588803b158015610314575f80fd5b505af1158015610326573d5f803e3d5ffd5b5050505050505050565b610338610451565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690633659cfe69060240161027b565b610387610451565b6001600160a01b0381166104085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610411816104aa565b50565b5f805f836001600160a01b03166040516101b6907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b5f546001600160a01b0316331461022e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ff565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610411575f80fd5b5f60208284031215610535575f80fd5b813561054081610511565b9392505050565b5f8060408385031215610558575f80fd5b823561056381610511565b9150602083013561057381610511565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f606084860312156105bd575f80fd5b83356105c881610511565b925060208401356105d881610511565b9150604084013567ffffffffffffffff8111156105f3575f80fd5b8401601f81018613610603575f80fd5b803567ffffffffffffffff81111561061d5761061d61057e565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561064c5761064c61057e565b604052818152828201602001881015610663575f80fd5b816020840160208301375f602083830101528093505050509250925092565b5f60208284031215610692575f80fd5b815161054081610511565b6001600160a01b0383168152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f830116840101915050939250505056fea2646970667358221220b820fc50bc561f7db510f9f23335825929cfae68066afe1a1bb39883247eaa4564736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010957806399a88ec41461011c578063f2fde38b1461013b578063f3b7dead1461015a575f80fd5b8063204e1c7a1461007d578063715018a6146100b85780637eff275e146100ce5780638da5cb5b146100ed575b5f80fd5b348015610088575f80fd5b5061009c610097366004610525565b610179565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c3575f80fd5b506100cc61021d565b005b3480156100d9575f80fd5b506100cc6100e8366004610547565b610230565b3480156100f8575f80fd5b505f546001600160a01b031661009c565b6100cc6101173660046105ab565b6102ac565b348015610127575f80fd5b506100cc610136366004610547565b610330565b348015610146575f80fd5b506100cc610155366004610525565b61037f565b348015610165575f80fd5b5061009c610174366004610525565b610414565b5f805f836001600160a01b03166040516101b6907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b5f60405180830381855afa9150503d805f81146101ee576040519150601f19603f3d011682016040523d82523d5f602084013e6101f3565b606091505b509150915081610201575f80fd5b808060200190518101906102159190610682565b949350505050565b610225610451565b61022e5f6104aa565b565b610238610451565b6040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690638f283970906024015b5f604051808303815f87803b158015610292575f80fd5b505af11580156102a4573d5f803e3d5ffd5b505050505050565b6102b4610451565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906102fd908690869060040161069d565b5f604051808303818588803b158015610314575f80fd5b505af1158015610326573d5f803e3d5ffd5b5050505050505050565b610338610451565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690633659cfe69060240161027b565b610387610451565b6001600160a01b0381166104085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610411816104aa565b50565b5f805f836001600160a01b03166040516101b6907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b5f546001600160a01b0316331461022e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ff565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610411575f80fd5b5f60208284031215610535575f80fd5b813561054081610511565b9392505050565b5f8060408385031215610558575f80fd5b823561056381610511565b9150602083013561057381610511565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f606084860312156105bd575f80fd5b83356105c881610511565b925060208401356105d881610511565b9150604084013567ffffffffffffffff8111156105f3575f80fd5b8401601f81018613610603575f80fd5b803567ffffffffffffffff81111561061d5761061d61057e565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561064c5761064c61057e565b604052818152828201602001881015610663575f80fd5b816020840160208301375f602083830101528093505050509250925092565b5f60208284031215610692575f80fd5b815161054081610511565b6001600160a01b0383168152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f830116840101915050939250505056fea2646970667358221220b820fc50bc561f7db510f9f23335825929cfae68066afe1a1bb39883247eaa4564736f6c634300081a0033
Deployed Bytecode Sourcemap
450:2409:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;650:438;;;;;;;;;;-1:-1:-1;650:438:7;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;685:55:12;;;667:74;;655:2;640:18;650:438:7;;;;;;;1831:101:0;;;;;;;;;;;;;:::i;:::-;;1842:149:7;;;;;;;;;;-1:-1:-1;1842:149:7;;;;;:::i;:::-;;:::i;1201:85:0:-;;;;;;;;;;-1:-1:-1;1247:7:0;1273:6;-1:-1:-1;;;;;1273:6:0;1201:85;;2612:245:7;;;;;;:::i;:::-;;:::i;2196:150::-;;;;;;;;;;-1:-1:-1;2196:150:7;;;;;:::i;:::-;;:::i;2081:198:0:-;;;;;;;;;;-1:-1:-1;2081:198:0;;;;;:::i;:::-;;:::i;1248:420:7:-;;;;;;;;;;-1:-1:-1;1248:420:7;;;;;:::i;:::-;;:::i;650:438::-;747:7;924:12;938:23;973:5;-1:-1:-1;;;;;965:25:7;:40;;;;3246:66:12;3234:79;;3338:1;3329:11;;3033:313;965:40:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:82;;;;1023:7;1015:16;;;;;;1059:10;1048:33;;;;;;;;;;;;:::i;:::-;1041:40;650:438;-1:-1:-1;;;;650:438:7:o;1831:101:0:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1842:149:7:-;1094:13:0;:11;:13::i;:::-;1957:27:7::1;::::0;;;;-1:-1:-1;;;;;685:55:12;;;1957:27:7::1;::::0;::::1;667:74:12::0;1957:17:7;::::1;::::0;::::1;::::0;640:18:12;;1957:27:7::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1842:149:::0;;:::o;2612:245::-;1094:13:0;:11;:13::i;:::-;2788:62:7::1;::::0;;;;-1:-1:-1;;;;;2788:22:7;::::1;::::0;::::1;::::0;2818:9:::1;::::0;2788:62:::1;::::0;2829:14;;2845:4;;2788:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;2612:245:::0;;;:::o;2196:150::-;1094:13:0;:11;:13::i;:::-;2308:31:7::1;::::0;;;;-1:-1:-1;;;;;685:55:12;;;2308:31:7::1;::::0;::::1;667:74:12::0;2308:15:7;::::1;::::0;::::1;::::0;640:18:12;;2308:31:7::1;521:226:12::0;2081:198:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:0;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:0;;4388:2:12;2161:73:0::1;::::0;::::1;4370:21:12::0;4427:2;4407:18;;;4400:30;4466:34;4446:18;;;4439:62;4537:8;4517:18;;;4510:36;4563:19;;2161:73:0::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1248:420:7:-;1336:7;1504:12;1518:23;1553:5;-1:-1:-1;;;;;1545:25:7;:40;;;;4806:66:12;4794:79;;4898:1;4889:11;;4593:313;1359:130:0;1247:7;1273:6;-1:-1:-1;;;;;1273:6:0;719:10:10;1422:23:0;1414:68;;;;-1:-1:-1;;;1414:68:0;;5113:2:12;1414:68:0;;;5095:21:12;;;5132:18;;;5125:30;5191:34;5171:18;;;5164:62;5243:18;;1414:68:0;4911:356:12;2433:187:0;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:0;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:184:12:-;-1:-1:-1;;;;;123:5:12;119:54;112:5;109:65;99:93;;188:1;185;178:12;203:313;298:6;351:2;339:9;330:7;326:23;322:32;319:52;;;367:1;364;357:12;319:52;406:9;393:23;425:61;480:5;425:61;:::i;:::-;505:5;203:313;-1:-1:-1;;;203:313:12:o;752:484::-;856:6;864;917:2;905:9;896:7;892:23;888:32;885:52;;;933:1;930;923:12;885:52;972:9;959:23;991:61;1046:5;991:61;:::i;:::-;1071:5;-1:-1:-1;1128:2:12;1113:18;;1100:32;1141:63;1100:32;1141:63;:::i;:::-;1223:7;1213:17;;;752:484;;;;;:::o;1241:184::-;1293:77;1290:1;1283:88;1390:4;1387:1;1380:15;1414:4;1411:1;1404:15;1430:1316;1552:6;1560;1568;1621:2;1609:9;1600:7;1596:23;1592:32;1589:52;;;1637:1;1634;1627:12;1589:52;1676:9;1663:23;1695:61;1750:5;1695:61;:::i;:::-;1775:5;-1:-1:-1;1832:2:12;1817:18;;1804:32;1845:63;1804:32;1845:63;:::i;:::-;1927:7;-1:-1:-1;1985:2:12;1970:18;;1957:32;2012:18;2001:30;;1998:50;;;2044:1;2041;2034:12;1998:50;2067:22;;2120:4;2112:13;;2108:27;-1:-1:-1;2098:55:12;;2149:1;2146;2139:12;2098:55;2189:2;2176:16;2215:18;2207:6;2204:30;2201:56;;;2237:18;;:::i;:::-;2286:2;2280:9;2378:2;2340:17;;-1:-1:-1;;2336:31:12;;;2369:2;2332:40;2328:54;2316:67;;2413:18;2398:34;;2434:22;;;2395:62;2392:88;;;2460:18;;:::i;:::-;2496:2;2489:22;2520;;;2561:15;;;2578:2;2557:24;2554:37;-1:-1:-1;2551:57:12;;;2604:1;2601;2594:12;2551:57;2660:6;2655:2;2651;2647:11;2642:2;2634:6;2630:15;2617:50;2713:1;2708:2;2699:6;2691;2687:19;2683:28;2676:39;2734:6;2724:16;;;;;1430:1316;;;;;:::o;3351:289::-;3429:6;3482:2;3470:9;3461:7;3457:23;3453:32;3450:52;;;3498:1;3495;3488:12;3450:52;3530:9;3524:16;3549:61;3604:5;3549:61;:::i;3645:536::-;-1:-1:-1;;;;;3824:6:12;3820:55;3809:9;3802:74;3912:2;3907;3896:9;3892:18;3885:30;3783:4;3944:6;3938:13;3987:6;3982:2;3971:9;3967:18;3960:34;4046:6;4041:2;4033:6;4029:15;4024:2;4013:9;4009:18;4003:50;4102:1;4097:2;4088:6;4077:9;4073:22;4069:31;4062:42;4172:2;4165;4161:7;4156:2;4148:6;4144:15;4140:29;4129:9;4125:45;4121:54;4113:62;;;3645:536;;;;;:::o
Swarm Source
ipfs://b820fc50bc561f7db510f9f23335825929cfae68066afe1a1bb39883247eaa45
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.