Contract 0x7C2E0F792ea5B4a4Dbd7fA7f949CF39A5c0ba185 13

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x2dfc4546f6efea6746fb7ff8c92a43df0f432ddabd569af45f20df55f9332d43Approve Delegati...1952060062024-03-28 20:30:402 hrs 30 mins ago0xa7e9fa93f32e9713a123c40d9c8211a2e5e9a0cb IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000157 0.01
0xf00ea1863ac7173386cd12fd09c897fcc74d26339c918ebc0bcf4b3865b1cd20Approve Delegati...1952060052024-03-28 20:30:392 hrs 30 mins ago0x120501642379433a610302a7dc6e08e1043b303c IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000157 0.01
0x5a95a366891ac8b43c38f239890de8b143a66968d43cf0e25eb0740d2947f395Approve Delegati...1951790992024-03-28 18:36:574 hrs 23 mins ago0x0e8ce2588ae3f0e7b24543e6cf10931eefe52390 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000007850.01
0x3f613ded209bf1e219e3086f2e778a29c5d7d39f419a4801c9757065cd8dd57fApprove Delegati...1950824342024-03-28 11:52:4611 hrs 7 mins ago0x528e48267b65a5504d0b6f52cf72984d7339a8be IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000288 0.01
0xa928f912bb5f380dc2417dcc92cc2b7ec82592058f7377798cabf664abb3650dApprove Delegati...1950544252024-03-28 9:55:2913 hrs 5 mins ago0xd9a54b209b18f037e7cdbab63ce73909f2127a9a IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000283 0.01
0x3956aa7bd2c2bed638cfadde4d27db36f1aabaca2415fd7bd43ff0c8b866e6c6Approve Delegati...1949982852024-03-28 6:01:3416 hrs 59 mins ago0xba388593668359c567ad6d552931a523b8e1dac5 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000190.01
0x8d4ca8fdb4a29453e77686c4e71a56e17d2bd211285dcb2fed9bf4eac0bf84d6Approve Delegati...1949197582024-03-28 0:33:1022 hrs 27 mins ago0x66d886d742ac6ac878a8b6b8bb9e6fb4aa9a2ff7 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000448 0.01
0x19562f5f0093111e432131b9f0fbb14fa3c9f0271b90100b9c3f1d9eeb4fbceeApprove Delegati...1948990712024-03-27 23:06:2123 hrs 54 mins ago0x239a71c0787c5de97c1215c6ac2f8f8293941631 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000007760.01
0xaed673f6d6a2b3d107216465146500368d5def9abb8c56b4f65c63cab3948a7eApprove Delegati...1948013762024-03-27 16:17:221 day 6 hrs ago0xd52866c643373d1b31403d11b8bddfa66ee07242 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000003490.024668
0x3439c6aa21b8ccf86206c7b2edfc179776e1613073edc1465f04113642505f55Approve Delegati...1946582532024-03-27 6:18:491 day 16 hrs ago0xfb8826794abb11d8528e3934af4470dcac7615b2 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000001 0.01
0xa7cb4c1d365d0523240920255dc19194c80315e905c2498631462759a04e2285Approve Delegati...1945211892024-03-26 20:45:452 days 2 hrs ago0x36e77f5b1e4213ee730586b42585dcd9f2e1d73b IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000001580.01
0xbf2b4303a8fa4c876d5f0de62a5272d3911d041326d2147655148e48c9a83f79Approve Delegati...1944212132024-03-26 13:48:192 days 9 hrs ago0x3a2a2583451c51090ff10415a93248d48aea7afa IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000388 0.048763
0xe1b8ccc47af8630fd0a2c27525b8123aa34ec50017cbef016a6745456a1cd4bcApprove Delegati...1944139162024-03-26 13:17:472 days 9 hrs ago0x28c99736633d268fc884ef4e4c420a6b89c094af IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000194 0.01
0x1e23eb1dd0df576880ceb98ee54f7cc46a7a22eaa18ed10786bb4fd7d17f3942Approve Delegati...1944082302024-03-26 12:54:072 days 10 hrs ago0x0783920c127e32e4b4973749aa77d585e205a047 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000001320.01
0x38df67073de90f5a13cb2da8d4b4d26a2d3aa7ad3937c25589f772f0fa1c8c48Approve Delegati...1943831962024-03-26 11:09:542 days 11 hrs ago0xa60e631ced160b9e051bad5da017c6a9e0324532 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000133 0.01
0xb5b4f2012ebb2b6edb98e4f427416045259dcea720da22474b86ed4b7c941ad3Approve Delegati...1943489992024-03-26 8:47:352 days 14 hrs ago0x1fa56dc63b6b1f3aa351296e630300ee295f5d70 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000131 0.01
0x51b897c5223fb9245b782c7d84d405dc16e9d81f7c4ab49faa2f3834f0a0105bApprove Delegati...1943410702024-03-26 8:14:342 days 14 hrs ago0x1c097008e8ef5d9fc3e49b721d3b2e89f70fa8a9 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000001240.01
0x4505d2842cf41c2cd9b15c2cc849807fcc1701242e3cb607374d7266072677f4Approve Delegati...1942909452024-03-26 4:45:492 days 18 hrs ago0xacd97eadee0b88cf63d87e441962f5d5f155b7cc IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000112 0.01
0x0afb73c5ad474e9e8cfced121c289a760e91126cb8f8b684ab991b426912d050Approve Delegati...1942837582024-03-26 4:15:312 days 18 hrs ago0x14debc53d8c0f8f58383b745f77389e042465b56 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.00000109 0.01
0x60fc8afd7530227d9e54ca96e1463c631a28623b344162162c17ff143399a580Approve Delegati...1942806282024-03-26 4:02:292 days 18 hrs ago0x856fa54216aabe8ff653ec1dbb27d5493f0ed396 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000001160.01
0x9b1f4c23e443b13345ece0b9bac0f4dba38431b80cfd199e1ac08d008bb1b951Approve Delegati...1942560142024-03-26 2:19:562 days 20 hrs ago0x1c8435c0b63165b37e873f3c136ea2abab56e40a IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000001070.01
0xff16e12c2b75624d3d88b6e7826686226413ee34b8ca6faa9ad3da2c36257ef1Approve Delegati...1940960772024-03-25 15:12:453 days 7 hrs ago0x8b3a92f2322e00a06dc1140100cbd45dd3d5fb53 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000002250.01
0x60398a361ac5a54b68f3324a977707c74bd441049c570dca1c2295ad6d028a3aApprove Delegati...1940757592024-03-25 13:48:073 days 9 hrs ago0xbb696a6fd4978befd8d7b03b915a02e33708be71 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000001260.01
0x392c514e0bdbf84d4df3ad8a62221ee34f8f37a9af4f0398447faae9903fe81bApprove Delegati...1940524202024-03-25 12:10:573 days 10 hrs ago0x04648010ed2e9b197e9532745de68c2a57d80e76 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.0000010.01
0xd6725ee4ddd565aee2dab7fdf2db78e2b7e133def6018fd07c5ca7045a4e72a0Approve Delegati...1940309702024-03-25 10:41:353 days 12 hrs ago0x950ce5bb287910253a76ef35461c2e8c11f67a91 IN  0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH0.000001270.01
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf78f720536d1fd92b0f281332c371dd292dd267660a0febaf7a0438b33d7bce2720866652023-03-21 10:18:47373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 Radiant: Lending Pool0 ETH
0xf78f720536d1fd92b0f281332c371dd292dd267660a0febaf7a0438b33d7bce2720866652023-03-21 10:18:47373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0xf78f720536d1fd92b0f281332c371dd292dd267660a0febaf7a0438b33d7bce2720866652023-03-21 10:18:47373 days 12 hrs ago Radiant: Lending Pool 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
0x7afd1eced2bd6b3288976df6358b678f1348e15d1815758ebac799cc0b8d39f3720866132023-03-21 10:18:34373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0x7afd1eced2bd6b3288976df6358b678f1348e15d1815758ebac799cc0b8d39f3720866132023-03-21 10:18:34373 days 12 hrs ago Radiant: Lending Pool 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
0x7afd1eced2bd6b3288976df6358b678f1348e15d1815758ebac799cc0b8d39f3720866132023-03-21 10:18:34373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 Radiant Capital: chefIncentives Controller0 ETH
0x7afd1eced2bd6b3288976df6358b678f1348e15d1815758ebac799cc0b8d39f3720866132023-03-21 10:18:34373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 Radiant Capital: chefIncentives Controller0 ETH
0x7afd1eced2bd6b3288976df6358b678f1348e15d1815758ebac799cc0b8d39f3720866132023-03-21 10:18:34373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0x7afd1eced2bd6b3288976df6358b678f1348e15d1815758ebac799cc0b8d39f3720866132023-03-21 10:18:34373 days 12 hrs ago Radiant: Lending Pool 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
0x7afd1eced2bd6b3288976df6358b678f1348e15d1815758ebac799cc0b8d39f3720866132023-03-21 10:18:34373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0x7afd1eced2bd6b3288976df6358b678f1348e15d1815758ebac799cc0b8d39f3720866132023-03-21 10:18:34373 days 12 hrs ago Radiant: Lending Pool 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
0x6bbc7354acaa5e12e5cb06c26f4f4d4f7c9b126dd108da88689afda426b5d8e2720865592023-03-21 10:18:20373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0x6bbc7354acaa5e12e5cb06c26f4f4d4f7c9b126dd108da88689afda426b5d8e2720865592023-03-21 10:18:20373 days 12 hrs ago Radiant Capital: chefIncentives Controller 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
0x6bbc7354acaa5e12e5cb06c26f4f4d4f7c9b126dd108da88689afda426b5d8e2720865592023-03-21 10:18:20373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0x6bbc7354acaa5e12e5cb06c26f4f4d4f7c9b126dd108da88689afda426b5d8e2720865592023-03-21 10:18:20373 days 12 hrs ago Radiant Capital: chefIncentives Controller 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago Radiant: Lending Pool 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago Radiant: Lending Pool 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago Radiant: Lending Pool 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 Radiant Capital: chefIncentives Controller0 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 Radiant Capital: chefIncentives Controller0 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba185 0x2de0697aee08843d4975c55eed60e209adf925020 ETH
0xb4809bf2988d3b237d2ee441227fb5a1b42da09aa31e8152fc8eea345942cc1a720861362023-03-21 10:16:39373 days 12 hrs ago Radiant: Lending Pool 0x7c2e0f792ea5b4a4dbd7fa7f949cf39a5c0ba1850 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xf4b1486dd74d07706052a33d31d7c0aafd0659e1
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
InitializableImmutableAdminUpgradeabilityProxy

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license
File 1 of 6 : InitializableImmutableAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.12;

import "./BaseImmutableAdminUpgradeabilityProxy.sol";
import "../../../dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol";

/**
 * @title InitializableAdminUpgradeabilityProxy
 * @dev Extends BaseAdminUpgradeabilityProxy with an initializer function
 */
contract InitializableImmutableAdminUpgradeabilityProxy is
	BaseImmutableAdminUpgradeabilityProxy,
	InitializableUpgradeabilityProxy
{
	constructor(address admin) BaseImmutableAdminUpgradeabilityProxy(admin) {}

	/**
	 * @dev Only fall back when the sender is not the admin.
	 */
	function _willFallback() internal override(BaseImmutableAdminUpgradeabilityProxy, Proxy) {
		BaseImmutableAdminUpgradeabilityProxy._willFallback();
	}
}

File 2 of 6 : BaseImmutableAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.12;

import "../../../dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol";

/**
 * @title BaseImmutableAdminUpgradeabilityProxy
 * @author Aave, inspired by the OpenZeppelin upgradeability proxy pattern
 * @dev This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks. The admin role is stored in an immutable, which
 * helps saving transactions costs
 * All external functions in this contract must be guarded by the
 * `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity
 * feature proposal that would enable this to be done automatically.
 */
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
	address immutable ADMIN;

	constructor(address _admin) {
		ADMIN = _admin;
	}

	modifier ifAdmin() {
		if (msg.sender == ADMIN) {
			_;
		} else {
			_fallback();
		}
	}

	/**
	 * @return _address The address of the proxy admin.
	 */
	function admin() external ifAdmin returns (address _address) {
		return ADMIN;
	}

	/**
	 * @return _address The address of the implementation.
	 */
	function implementation() external ifAdmin returns (address _address) {
		return _implementation();
	}

	/**
	 * @dev Upgrade the backing implementation of the proxy.
	 * Only the admin can call this function.
	 * @param newImplementation Address of the new implementation.
	 */
	function upgradeTo(address newImplementation) external ifAdmin {
		_upgradeTo(newImplementation);
	}

	/**
	 * @dev Upgrade the backing implementation of the proxy and call a function
	 * on the new implementation.
	 * This is useful to initialize the proxied contract.
	 * @param newImplementation Address of the new implementation.
	 * @param data Data to send as msg.data in the low level call.
	 * It should include the signature and the parameters of the function to be called, as described in
	 * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
	 */
	function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {
		_upgradeTo(newImplementation);
		(bool success, ) = newImplementation.delegatecall(data);
		require(success);
	}

	/**
	 * @dev Only fall back when the sender is not the admin.
	 */
	function _willFallback() internal virtual override {
		require(msg.sender != ADMIN, "Cannot call fallback function from the proxy admin");
		super._willFallback();
	}
}

File 3 of 6 : BaseUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.12;

import "./Proxy.sol";
import "@openzeppelin/contracts/utils/Address.sol";

/**
 * @title BaseUpgradeabilityProxy
 * @dev This contract implements a proxy that allows to change the
 * implementation address to which it will delegate.
 * Such a change is called an implementation upgrade.
 */
contract BaseUpgradeabilityProxy is Proxy {
	/**
	 * @dev Emitted when the implementation is upgraded.
	 * @param implementation Address of the new implementation.
	 */
	event Upgraded(address indexed implementation);

	/**
	 * @dev Storage slot with the address of the current implementation.
	 * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
	 * validated in the constructor.
	 */
	bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

	/**
	 * @dev Returns the current implementation.
	 * @return impl Address of the current implementation
	 */
	function _implementation() internal view override returns (address impl) {
		bytes32 slot = IMPLEMENTATION_SLOT;
		//solium-disable-next-line
		assembly {
			impl := sload(slot)
		}
	}

	/**
	 * @dev Upgrades the proxy to a new implementation.
	 * @param newImplementation Address of the new implementation.
	 */
	function _upgradeTo(address newImplementation) internal {
		_setImplementation(newImplementation);
		emit Upgraded(newImplementation);
	}

	/**
	 * @dev Sets the implementation address of the proxy.
	 * @param newImplementation Address of the new implementation.
	 */
	function _setImplementation(address newImplementation) internal {
		require(Address.isContract(newImplementation), "Cannot set a proxy implementation to a non-contract address");

		bytes32 slot = IMPLEMENTATION_SLOT;

		//solium-disable-next-line
		assembly {
			sstore(slot, newImplementation)
		}
	}
}

File 4 of 6 : Proxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.12;

/**
 * @title Proxy
 * @dev Implements delegation of calls to other contracts, with proper
 * forwarding of return values and bubbling of failures.
 * It defines a fallback function that delegates all calls to the address
 * returned by the abstract _implementation() internal function.
 */
abstract contract Proxy {
	/**
	 * @dev Fallback function.
	 * Implemented entirely in `_fallback`.
	 */
	fallback() external payable {
		_fallback();
	}

	/**
	 * @return The Address of the implementation.
	 */
	function _implementation() internal view virtual returns (address);

	/**
	 * @dev Delegates execution to an implementation contract.
	 * This is a low level function that doesn't return to its internal call site.
	 * It will return to the external caller whatever the implementation returns.
	 * @param implementation Address to delegate.
	 */
	function _delegate(address implementation) internal {
		//solium-disable-next-line
		assembly {
			// Copy msg.data. We take full control of memory in this inline assembly
			// block because it will not return to Solidity code. We overwrite the
			// Solidity scratch pad at memory position 0.
			calldatacopy(0, 0, calldatasize())

			// Call the implementation.
			// out and outsize are 0 because we don't know the size yet.
			let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

			// Copy the returned data.
			returndatacopy(0, 0, returndatasize())

			switch result
			// delegatecall returns 0 on error.
			case 0 {
				revert(0, returndatasize())
			}
			default {
				return(0, returndatasize())
			}
		}
	}

	/**
	 * @dev Function that is run as the first thing in the fallback function.
	 * Can be redefined in derived contracts to add functionality.
	 * Redefinitions must call super._willFallback().
	 */
	function _willFallback() internal virtual {}

	/**
	 * @dev fallback implementation.
	 * Extracted to enable manual triggering.
	 */
	function _fallback() internal {
		_willFallback();
		_delegate(_implementation());
	}
}

File 5 of 6 : InitializableUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.12;

import "./BaseUpgradeabilityProxy.sol";

/**
 * @title InitializableUpgradeabilityProxy
 * @dev Extends BaseUpgradeabilityProxy with an initializer for initializing
 * implementation and init data.
 */
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
	/**
	 * @dev Contract initializer.
	 * @param _logic Address of the initial implementation.
	 * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
	 * It should include the signature and the parameters of the function to be called, as described in
	 * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
	 * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
	 */
	function initialize(address _logic, bytes memory _data) public payable {
		require(_implementation() == address(0));
		assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
		_setImplementation(_logic);
		if (_data.length > 0) {
			(bool success, ) = _logic.delegatecall(_data);
			require(success);
		}
	}
}

File 6 of 6 : Address.sol
// 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
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
     *
     * _Available since v4.8._
     */
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    /**
     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason or using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

Settings
{
  "metadata": {
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 1000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}]

Deployed Bytecode

0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b14610097578063d1f57894146100c8578063f851a440146100db5761005a565b80633659cfe6146100645780634f1ef28614610084575b6100626100f0565b005b34801561007057600080fd5b5061006261007f3660046105c1565b61012a565b6100626100923660046105e3565b61016f565b3480156100a357600080fd5b506100ac610226565b6040516001600160a01b03909116815260200160405180910390f35b6100626100d636600461067c565b61028a565b3480156100e757600080fd5b506100ac61039c565b6100f86103f4565b6101286101237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6103fc565b565b336001600160a01b037f000000000000000000000000e51dfe7188d0b9a84141ff47d04ab07aeb82b89d1614156101675761016481610420565b50565b6101646100f0565b336001600160a01b037f000000000000000000000000e51dfe7188d0b9a84141ff47d04ab07aeb82b89d161415610219576101a983610420565b6000836001600160a01b031683836040516101c592919061073e565b600060405180830381855af49150503d8060008114610200576040519150601f19603f3d011682016040523d82523d6000602084013e610205565b606091505b505090508061021357600080fd5b50505050565b6102216100f0565b505050565b6000336001600160a01b037f000000000000000000000000e51dfe7188d0b9a84141ff47d04ab07aeb82b89d16141561027f57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102876100f0565b90565b60006102b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146102c757600080fd5b6102f260017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61074e565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1461032057610320610773565b61032982610460565b805115610398576000826001600160a01b03168260405161034a9190610789565b600060405180830381855af49150503d8060008114610385576040519150601f19603f3d011682016040523d82523d6000602084013e61038a565b606091505b505090508061022157600080fd5b5050565b6000336001600160a01b037f000000000000000000000000e51dfe7188d0b9a84141ff47d04ab07aeb82b89d16141561027f57507f000000000000000000000000e51dfe7188d0b9a84141ff47d04ab07aeb82b89d90565b610128610506565b3660008037600080366000845af43d6000803e80801561041b573d6000f35b3d6000fd5b61042981610460565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381163b6104e25760405162461bcd60e51b815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b336001600160a01b037f000000000000000000000000e51dfe7188d0b9a84141ff47d04ab07aeb82b89d1614156101285760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e000000000000000000000000000060648201526084016104d9565b80356001600160a01b03811681146105bc57600080fd5b919050565b6000602082840312156105d357600080fd5b6105dc826105a5565b9392505050565b6000806000604084860312156105f857600080fd5b610601846105a5565b9250602084013567ffffffffffffffff8082111561061e57600080fd5b818601915086601f83011261063257600080fd5b81358181111561064157600080fd5b87602082850101111561065357600080fd5b6020830194508093505050509250925092565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561068f57600080fd5b610698836105a5565b9150602083013567ffffffffffffffff808211156106b557600080fd5b818501915085601f8301126106c957600080fd5b8135818111156106db576106db610666565b604051601f8201601f19908116603f0116810190838211818310171561070357610703610666565b8160405282815288602084870101111561071c57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b60008282101561076e57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b6000825160005b818110156107aa5760208186018101518583015201610790565b818111156107b9576000828501525b50919091019291505056fea264697066735822122042e28d728a899bce17dd811b4fea918cccc026ea931fafa4186c5407bbe6da0864736f6c634300080c0033

Deployed ByteCode Sourcemap

344:433:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;491:11:2;:9;:11::i;:::-;344:433:4;1423:100:3;;;;;;;;;;-1:-1:-1;1423:100:3;;;;;:::i;:::-;;:::i;2030:215::-;;;;;;:::i;:::-;;:::i;1143:102::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1240:55:6;;;1222:74;;1210:2;1195:18;1143:102:3;;;;;;;850:348:1;;;;;;:::i;:::-;;:::i;993:81:3:-;;;;;;;;;;;;;:::i;1991:85:2:-;2025:15;:13;:15::i;:::-;2044:28;2054:17;825:66:0;1171:11;;1005:184;2054:17:2;2044:9;:28::i;:::-;1991:85::o;1423:100:3:-;865:10;-1:-1:-1;;;;;879:5:3;865:19;;861:63;;;1490:29:::1;1501:17;1490:10;:29::i;:::-;1423:100:::0;:::o;861:63::-;908:11;:9;:11::i;2030:215::-;865:10;-1:-1:-1;;;;;879:5:3;865:19;;861:63;;;2133:29:::1;2144:17;2133:10;:29::i;:::-;2167:12;2185:17;-1:-1:-1::0;;;;;2185:30:3::1;2216:4;;2185:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2166:55;;;2233:7;2225:16;;;::::0;::::1;;2129:116;2030:215:::0;;;:::o;861:63::-;908:11;:9;:11::i;:::-;2030:215;;;:::o;1143:102::-;1195:16;865:10;-1:-1:-1;;;;;879:5:3;865:19;;861:63;;;-1:-1:-1;825:66:0;1171:11;;1143:102:3:o;861:63::-;908:11;:9;:11::i;:::-;1143:102;:::o;850:348:1:-;962:1;933:17;825:66:0;1171:11;;1005:184;933:17:1;-1:-1:-1;;;;;933:31:1;;925:40;;;;;;1007:54;1060:1;1015:41;1007:54;:::i;:::-;825:66:0;976:86:1;969:94;;;;:::i;:::-;1067:26;1086:6;1067:18;:26::i;:::-;1101:12;;:16;1097:98;;1125:12;1143:6;-1:-1:-1;;;;;1143:19:1;1163:5;1143:26;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1124:45;;;1182:7;1174:16;;;;;1097:98;850:348;;:::o;993:81:3:-;1036:16;865:10;-1:-1:-1;;;;;879:5:3;865:19;;861:63;;;-1:-1:-1;1065:5:3::1;1143:102:::0;:::o;625:150:4:-;718:53;:51;:53::i;912:742:2:-;1229:14;1226:1;1223;1210:34;1416:1;1413;1397:14;1394:1;1378:14;1371:5;1358:60;1474:16;1471:1;1468;1453:38;1503:6;1552:45;;;;1625:16;1622:1;1615:27;1552:45;1575:16;1572:1;1565:27;1319:137:0;1379:37;1398:17;1379:18;:37::i;:::-;1425:27;;-1:-1:-1;;;;;1425:27:0;;;;;;;;1319:137;:::o;1588:302::-;-1:-1:-1;;;;;1465:19:5;;;1656:109:0;;;;-1:-1:-1;;;1656:109:0;;3878:2:6;1656:109:0;;;3860:21:6;3917:2;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4027:29;4007:18;;;4000:57;4074:19;;1656:109:0;;;;;;;;;825:66;1852:31;1588:302::o;2316:166:3:-;2379:10;-1:-1:-1;;;;;2393:5:3;2379:19;;;2371:82;;;;-1:-1:-1;;;2371:82:3;;4306:2:6;2371:82:3;;;4288:21:6;4345:2;4325:18;;;4318:30;4384:34;4364:18;;;4357:62;4455:20;4435:18;;;4428:48;4493:19;;2371:82:3;4104:414:6;14:196;82:20;;-1:-1:-1;;;;;131:54:6;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:6:o;406:665::-;485:6;493;501;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;593:29;612:9;593:29;:::i;:::-;583:39;;673:2;662:9;658:18;645:32;696:18;737:2;729:6;726:14;723:34;;;753:1;750;743:12;723:34;791:6;780:9;776:22;766:32;;836:7;829:4;825:2;821:13;817:27;807:55;;858:1;855;848:12;807:55;898:2;885:16;924:2;916:6;913:14;910:34;;;940:1;937;930:12;910:34;985:7;980:2;971:6;967:2;963:15;959:24;956:37;953:57;;;1006:1;1003;996:12;953:57;1037:2;1033;1029:11;1019:21;;1059:6;1049:16;;;;;406:665;;;;;:::o;1307:184::-;-1:-1:-1;;;1356:1:6;1349:88;1456:4;1453:1;1446:15;1480:4;1477:1;1470:15;1496:995;1573:6;1581;1634:2;1622:9;1613:7;1609:23;1605:32;1602:52;;;1650:1;1647;1640:12;1602:52;1673:29;1692:9;1673:29;:::i;:::-;1663:39;;1753:2;1742:9;1738:18;1725:32;1776:18;1817:2;1809:6;1806:14;1803:34;;;1833:1;1830;1823:12;1803:34;1871:6;1860:9;1856:22;1846:32;;1916:7;1909:4;1905:2;1901:13;1897:27;1887:55;;1938:1;1935;1928:12;1887:55;1974:2;1961:16;1996:2;1992;1989:10;1986:36;;;2002:18;;:::i;:::-;2077:2;2071:9;2045:2;2131:13;;-1:-1:-1;;2127:22:6;;;2151:2;2123:31;2119:40;2107:53;;;2175:18;;;2195:22;;;2172:46;2169:72;;;2221:18;;:::i;:::-;2261:10;2257:2;2250:22;2296:2;2288:6;2281:18;2336:7;2331:2;2326;2322;2318:11;2314:20;2311:33;2308:53;;;2357:1;2354;2347:12;2308:53;2413:2;2408;2404;2400:11;2395:2;2387:6;2383:15;2370:46;2458:1;2453:2;2448;2440:6;2436:15;2432:24;2425:35;2479:6;2469:16;;;;;;;1496:995;;;;;:::o;2496:271::-;2679:6;2671;2666:3;2653:33;2635:3;2705:16;;2730:13;;;2705:16;2496:271;-1:-1:-1;2496:271:6:o;2772:279::-;2812:4;2840:1;2837;2834:8;2831:188;;;-1:-1:-1;;;2872:1:6;2865:88;2976:4;2973:1;2966:15;3004:4;3001:1;2994:15;2831:188;-1:-1:-1;3036:9:6;;2772:279::o;3056:184::-;-1:-1:-1;;;3105:1:6;3098:88;3205:4;3202:1;3195:15;3229:4;3226:1;3219:15;3245:426;3374:3;3412:6;3406:13;3437:1;3447:129;3461:6;3458:1;3455:13;3447:129;;;3559:4;3543:14;;;3539:25;;3533:32;3520:11;;;3513:53;3476:12;3447:129;;;3594:6;3591:1;3588:13;3585:48;;;3629:1;3620:6;3615:3;3611:16;3604:27;3585:48;-1:-1:-1;3649:16:6;;;;;3245:426;-1:-1:-1;;3245:426:6:o

Metadata Hash

42e28d728a899bce17dd811b4fea918cccc026ea931fafa4186c5407bbe6da08
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.