Contract 0x929EC64c34a17401F460460D4B9390518E5B473e 15

Aave 
 
Txn Hash Method
Block
From
To
Value
0x23a82697a6a09f2fb40ca81f5c8bcbb6d577d320d0271b42ea5debeb109e76f4Claim Rewards1180526852024-03-29 9:22:275 hrs 20 mins ago0xb0b89eafc3931067ff15abe5270ccf997f71c2cb IN  Aave: Incentives V30 ETH0.0000224676410.030401738
0xc222d2d26371a924e42ced9c020eec0201d84e7e6b145dd7d944a26e2b456e40Claim Rewards1180361712024-03-29 0:11:5914 hrs 31 mins ago0x8e918deb2824b55d137599238a93ca318a8300ef IN  Aave: Incentives V30 ETH0.0000250678120.03058254
0x8d4f1a734297541e2e2054ba01126a9467074b3e26c43a37d42a77441ad735cdClaim Rewards1180162112024-03-28 13:06:391 day 1 hr ago0x9462a60e1608587c4ba9a81a3d58d25551773143 IN  Aave: Incentives V30 ETH0.0000256767660.0318433
0x8a4978c64e3e17996dc63ba482057fce16f8de53e45d31af380c88da3c557bdbClaim Rewards1180156342024-03-28 12:47:251 day 1 hr ago0x16a10d3d31b6201f766e393382885e184b36b354 IN  Aave: Incentives V30 ETH0.0000223829940.029587466
0x1cc93e6c200c80e83025ca1d633c81303759b83c16c2639451f15194708a21e6Claim Rewards1180149142024-03-28 12:23:251 day 2 hrs ago0x597329dea3bc52d19092b8b093cc8d2f4d790d13 IN  Aave: Incentives V30 ETH0.0000263470770.0309733
0xad3a91be61a5b6783ba58e92783f136cf3c3dfdee480e762c034dbdcbee567d7Claim Rewards1180131482024-03-28 11:24:331 day 3 hrs ago0x82f9ea8d814a6eb335cfe17500cdcbb69c7ebbfe IN  Aave: Incentives V30 ETH0.0000295105520.028980752
0x7c3aa14eb2a21f18d0267f610a3f48f433f0670e2230df583f7a044d4d22f36eClaim Rewards1180108612024-03-28 10:08:191 day 4 hrs ago0xe65bc9d90619e0f98fdb6bda851aaa19e054355a IN  Aave: Incentives V30 ETH0.0000232194130.028839204
0x207efcc0f8d3c5738369350357e86e57d170e0a1f1d39e7661c82b0a7c450bc5Claim Rewards1180062902024-03-28 7:35:571 day 7 hrs ago0xdc8faec46ddc739c60a42c1ffd334155b7f53913 IN  Aave: Incentives V30 ETH0.000035103080.030500306
0x8bab436c085d2466a7e02d17c32a54feebb4e3a6d4ffc700f9eacc6d4da48f31Claim Rewards1180042632024-03-28 6:28:231 day 8 hrs ago0xe7294495206c1f5223d7f0c59b004ce971760541 IN  Aave: Incentives V30 ETH0.0000256487360.029127211
0xd706acc443e95e6a18e79b484c7fdc1a0ec650fa02afe7c0ec3ff5bef73e6818Claim Rewards1180011692024-03-28 4:45:151 day 9 hrs ago0x94a468fcb53a043bf5cd95ef21892e02c71134be IN  Aave: Incentives V30 ETH0.0000282302090.0301397
0x718f764071a0982197839beb6aebd3bc1fba3d15df33080031ac120ee3633a5fClaim Rewards1179815272024-03-27 17:50:311 day 20 hrs ago0x6ed7e999c79263cbe017bd5edbe55cf50db43029 IN  Aave: Incentives V30 ETH0.0000387297690.028921342
0xd2bc968e4f89dda0b88d7db504255ecf9c6843232ed0605f89ad7d1f4061c7edClaim Rewards1179732252024-03-27 13:13:472 days 1 hr ago0x8cc9eba14ee4dd839987c64750b4117117a7abfc IN  Aave: Incentives V30 ETH0.0000190942350.0268816
0x843e4724323cbe858dfd13a361bde78ca22b644dc8565a9286438034b0714ecfClaim Rewards1179657292024-03-27 9:03:552 days 5 hrs ago0xcac59f91e4536bc0e79ab816a5cd54e89f10433c IN  Aave: Incentives V30 ETH0.0000083333860.0150902
0xcab89d9067e89a0767edac1388d175204f4fa50fb53293cc5c540f8b1165acfbClaim Rewards1179563412024-03-27 3:50:592 days 10 hrs ago0x5b77eea144a23418b744809087ee28ffaf0752a4 IN  Aave: Incentives V30 ETH0.0000101693940.013984379
0xae8994d620bbd5df15e8a349f398b2a1dd59fa2c67e293ef5fcf766d296918a0Claim Rewards1179254672024-03-26 10:41:513 days 4 hrs ago0xc2357b4cdc0919503c2fafc67f73df668956be18 IN  Aave: Incentives V30 ETH0.0000233028630.0335065
0x8d723a00ac0cf2a79e90afb5da1f3ced918a03f44f9f887d5d3258d01ddaf4d9Claim Rewards1179121502024-03-26 3:17:573 days 11 hrs ago0x59659e3270e7e143f8f1bba1af3d237d8c9f9354 IN  Aave: Incentives V30 ETH0.0000212385780.036389571
0xb584690c675ecc5ddaf55f5a18f12a0874c2cc196bdc36d6b3b90a0699ef378fClaim Rewards1178900652024-03-25 15:01:473 days 23 hrs ago0x4fd90de08c0fe2a57bf4369c3ef5ee3057eb3123 IN  Aave: Incentives V30 ETH0.0000158785050.0318995
0x0cfbb86a2a7aefebd01ef4fc236d197ac0092c6516834a66016708aeec554af4Claim Rewards1178872042024-03-25 13:26:254 days 1 hr ago 0x08b7a7e63176f316f145bca6b4d56e844fe4cd8b IN  Aave: Incentives V30 ETH0.0000215399620.030022767
0x79470b2eb2caf7b189d7c944a8d4b788cae0529ff06da716405fb4ba58cb7a41Claim Rewards1178671722024-03-25 2:18:414 days 12 hrs ago0xe4d7963e02b6b1d8a7365b6de02ba4adda63b3c0 IN  Aave: Incentives V30 ETH0.0000033132460.005240323
0x8bc1c961f02c32910ca1fc000e5f26453983fb5e41d59c051054d85fed633b8fClaim Rewards1178437192024-03-24 13:16:555 days 1 hr ago0x3284793f458b3d57f32fb3de6d818176e55750c6 IN  Aave: Incentives V30 ETH0.0000078662030.010628109
0x9997b398fa8188de83043e600d194ddf403fb375aec0da55eb0921ac8d30ed12Claim Rewards1178373962024-03-24 9:46:095 days 4 hrs ago0xa5c80308746ced604284e60ed4cdd4a871b47a23 IN  Aave: Incentives V30 ETH0.0000052888320.0071762
0x800fdaa215f7cd9d851156509ef1eef5d641117bc146284e42dad37d2a935900Claim Rewards1178294352024-03-24 5:20:475 days 9 hrs ago0xa0b39324995bee3deb32b64f7cb246a6ef9b0d15 IN  Aave: Incentives V30 ETH0.0000041561060.005609509
0x23022c075635eb318662405536a157eef7e968e80f39b26c25a1385369df5cedClaim Rewards1178267342024-03-24 3:50:455 days 10 hrs ago0x526394ebdefeff8b7655c48a1d251facd094b751 IN  Aave: Incentives V30 ETH0.0000052968510.009225798
0x3cff5558d1f0d01a7a9d8361d28badef5eaead61d69b0d81443822fe92a7ae1bClaim Rewards1178050512024-03-23 15:47:595 days 22 hrs ago0x0e0864e0fead51eed69973902956b1b8d50f46a1 IN  Aave: Incentives V30 ETH0.0000042600180.0065051
0xc5489372b101e174d2545ac8ca0fde08a76103619aeca94296d2344f12c5b748Claim Rewards1178050442024-03-23 15:47:455 days 22 hrs ago0xce430a8f1382e7a6156064779515d36a2c5101af IN  Aave: Incentives V30 ETH0.0000037307370.006131495
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xac68280c59745b3ae7a60ccb7a9bf73d0db5fad43be3e0d3e1e676b1a90d5ec61075583832023-07-30 11:12:23243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0xac68280c59745b3ae7a60ccb7a9bf73d0db5fad43be3e0d3e1e676b1a90d5ec61075583832023-07-30 11:12:23243 days 3 hrs ago Aave: aSUSD Token V3 Aave: Incentives V30 ETH
0x440174c720a4156e85f56c03010de9fec9ad9183414c6175e0921b42bf9b7f7b1075583702023-07-30 11:11:57243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0x440174c720a4156e85f56c03010de9fec9ad9183414c6175e0921b42bf9b7f7b1075583702023-07-30 11:11:57243 days 3 hrs ago Aave: aOptwstETH Token Aave: Incentives V30 ETH
0xee279fda010ee078a94119ac85cc6d838ef69f2fbcc7bc241ba46d54d469ac111075583692023-07-30 11:11:55243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0xee279fda010ee078a94119ac85cc6d838ef69f2fbcc7bc241ba46d54d469ac111075583692023-07-30 11:11:55243 days 3 hrs ago Aave: aWETH Token V3 Aave: Incentives V30 ETH
0xcbb0ac217cd792c067254a86e85bbdf3de5033a24e5ed136b105e177234270831075583482023-07-30 11:11:13243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0xcbb0ac217cd792c067254a86e85bbdf3de5033a24e5ed136b105e177234270831075583482023-07-30 11:11:13243 days 3 hrs ago 0x8ffdf2de812095b1d19cb146e4c004587c0a0692 Aave: Incentives V30 ETH
0x4bc0ef728040415b9127eb5a49e3aef5a533e00d5cf908871ca521720635b8e61075583372023-07-30 11:10:51243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0x4bc0ef728040415b9127eb5a49e3aef5a533e00d5cf908871ca521720635b8e61075583372023-07-30 11:10:51243 days 3 hrs ago 0x8ffdf2de812095b1d19cb146e4c004587c0a0692 Aave: Incentives V30 ETH
0x4bc0ef728040415b9127eb5a49e3aef5a533e00d5cf908871ca521720635b8e61075583372023-07-30 11:10:51243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0x4bc0ef728040415b9127eb5a49e3aef5a533e00d5cf908871ca521720635b8e61075583372023-07-30 11:10:51243 days 3 hrs ago Aave: aUSDC Token V3 Aave: Incentives V30 ETH
0x4bc0ef728040415b9127eb5a49e3aef5a533e00d5cf908871ca521720635b8e61075583372023-07-30 11:10:51243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0x4bc0ef728040415b9127eb5a49e3aef5a533e00d5cf908871ca521720635b8e61075583372023-07-30 11:10:51243 days 3 hrs ago Aave: aUSDC Token V3 Aave: Incentives V30 ETH
0x4bc0ef728040415b9127eb5a49e3aef5a533e00d5cf908871ca521720635b8e61075583372023-07-30 11:10:51243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0x4bc0ef728040415b9127eb5a49e3aef5a533e00d5cf908871ca521720635b8e61075583372023-07-30 11:10:51243 days 3 hrs ago Aave: aUSDC Token V3 Aave: Incentives V30 ETH
0x1bd522bdd5c7d3957b908cf5fdb3ede8aecb6510935789ccd9d65b1fff5d6dde1075583362023-07-30 11:10:49243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0x1bd522bdd5c7d3957b908cf5fdb3ede8aecb6510935789ccd9d65b1fff5d6dde1075583362023-07-30 11:10:49243 days 3 hrs ago Aave: aOptOP Token Aave: Incentives V30 ETH
0xee6cccc546e254743f67bcfbd467a25b84a65c6310c5601a9f3277a00e5b39881075583022023-07-30 11:09:41243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0xee6cccc546e254743f67bcfbd467a25b84a65c6310c5601a9f3277a00e5b39881075583022023-07-30 11:09:41243 days 3 hrs ago Aave: aUSDC Token V3 Aave: Incentives V30 ETH
0x2c731bae13f48b01f6e647ccceb061a42705d8a3de5cb0d2c2a8b3929e4245c51075583012023-07-30 11:09:39243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0x2c731bae13f48b01f6e647ccceb061a42705d8a3de5cb0d2c2a8b3929e4245c51075583012023-07-30 11:09:39243 days 3 hrs ago Aave: aUSDC Token V3 Aave: Incentives V30 ETH
0x678705b1cce861265fb7581b8008b0a7f825ed98817d4efc9da6fc498fbd6ca91075583002023-07-30 11:09:37243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
0x678705b1cce861265fb7581b8008b0a7f825ed98817d4efc9da6fc498fbd6ca91075583002023-07-30 11:09:37243 days 3 hrs ago Aave: aUSDC Token V3 Aave: Incentives V30 ETH
0x9c34b4525d372ad3177d50ed53e82ec8ad89c9b973ff24af128c7d06ed8a00971075582622023-07-30 11:08:21243 days 3 hrs ago Aave: Incentives V3 0x5f4d15d761528c57a5c30c43c1dab26fc54527310 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
InitializableAdminUpgradeabilityProxy

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 100000 runs

Other Settings:
default evmVersion
File 1 of 7 : Address.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

/**
 * @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
   * ====
   */
  function isContract(address account) internal view returns (bool) {
    // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
    // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
    // for accounts without code, i.e. `keccak256('')`
    bytes32 codehash;
    bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
    // solhint-disable-next-line no-inline-assembly
    assembly {
      codehash := extcodehash(account)
    }
    return (codehash != accountHash && codehash != 0x0);
  }

  /**
   * @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');

    // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
    (bool success, ) = recipient.call{value: amount}('');
    require(success, 'Address: unable to send value, recipient may have reverted');
  }
}

File 2 of 7 : BaseAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

import './UpgradeabilityProxy.sol';

/**
 * @title BaseAdminUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks.
 * 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 BaseAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
  /**
   * @dev Emitted when the administration has been transferred.
   * @param previousAdmin Address of the previous admin.
   * @param newAdmin Address of the new admin.
   */
  event AdminChanged(address previousAdmin, address newAdmin);

  /**
   * @dev Storage slot with the admin of the contract.
   * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is
   * validated in the constructor.
   */
  bytes32 internal constant ADMIN_SLOT =
    0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

  /**
   * @dev Modifier to check whether the `msg.sender` is the admin.
   * If it is, it will run the function. Otherwise, it will delegate the call
   * to the implementation.
   */
  modifier ifAdmin() {
    if (msg.sender == _admin()) {
      _;
    } else {
      _fallback();
    }
  }

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

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

  /**
   * @dev Changes the admin of the proxy.
   * Only the current admin can call this function.
   * @param newAdmin Address to transfer proxy administration to.
   */
  function changeAdmin(address newAdmin) external ifAdmin {
    require(newAdmin != address(0), 'Cannot change the admin of a proxy to the zero address');
    emit AdminChanged(_admin(), newAdmin);
    _setAdmin(newAdmin);
  }

  /**
   * @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);
  }

  /**
   * @return adm The admin slot.
   */
  function _admin() internal view returns (address adm) {
    bytes32 slot = ADMIN_SLOT;
    //solium-disable-next-line
    assembly {
      adm := sload(slot)
    }
  }

  /**
   * @dev Sets the address of the proxy admin.
   * @param newAdmin Address of the new proxy admin.
   */
  function _setAdmin(address newAdmin) internal {
    bytes32 slot = ADMIN_SLOT;
    //solium-disable-next-line
    assembly {
      sstore(slot, newAdmin)
    }
  }

  /**
   * @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 7 : BaseUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

import './Proxy.sol';
import '../contracts/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 7 : InitializableAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

import './BaseAdminUpgradeabilityProxy.sol';
import './InitializableUpgradeabilityProxy.sol';

/**
 * @title InitializableAdminUpgradeabilityProxy
 * @dev Extends from BaseAdminUpgradeabilityProxy with an initializer for
 * initializing the implementation, admin, and init data.
 */
contract InitializableAdminUpgradeabilityProxy is
  BaseAdminUpgradeabilityProxy,
  InitializableUpgradeabilityProxy
{
  /**
   * Contract initializer.
   * @param logic address of the initial implementation.
   * @param admin Address of the proxy administrator.
   * @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,
    address admin,
    bytes memory data
  ) public payable {
    require(_implementation() == address(0));
    InitializableUpgradeabilityProxy.initialize(logic, data);
    assert(ADMIN_SLOT == bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1));
    _setAdmin(admin);
  }

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

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

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 7 : Proxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

/**
 * @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.
   * Will run if no other function in the contract matches the call data.
   * 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 7 of 7 : UpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

import './BaseUpgradeabilityProxy.sol';

/**
 * @title UpgradeabilityProxy
 * @dev Extends BaseUpgradeabilityProxy with a constructor for initializing
 * implementation and init data.
 */
contract UpgradeabilityProxy is BaseUpgradeabilityProxy {
  /**
   * @dev Contract constructor.
   * @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.
   */
  constructor(address _logic, bytes memory _data) payable {
    assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1));
    _setImplementation(_logic);
    if (_data.length > 0) {
      (bool success, ) = _logic.delegatecall(_data);
      require(success);
    }
  }
}

Settings
{
  "evmVersion": "berlin",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 100000
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"logic","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"payable","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"}]

608060405234801561001057600080fd5b50610d0d806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f283970146100eb578063cf7a1d771461010b578063d1f578941461011e578063f851a4401461013157610070565b80633659cfe61461007a5780634f1ef2861461009a5780635c60da1b146100ad575b610078610146565b005b34801561008657600080fd5b506100786100953660046109f4565b610180565b6100786100a8366004610a16565b6101e9565b3480156100b957600080fd5b506100c26102d1565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f757600080fd5b506100786101063660046109f4565b61035f565b610078610119366004610b73565b6104fc565b61007861012c366004610bd1565b6105d1565b34801561013d57600080fd5b506100c26106fd565b61014e610780565b61017e6101797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610788565b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101e1576101de816107ac565b50565b6101de610146565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c457610247836107ac565b60008373ffffffffffffffffffffffffffffffffffffffff168383604051610270929190610c1f565b600060405180830381855af49150503d80600081146102ab576040519150601f19603f3d011682016040523d82523d6000602084013e6102b0565b606091505b50509050806102be57600080fd5b50505050565b6102cc610146565b505050565b60006102fb7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561035457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61035c610146565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101e15773ffffffffffffffffffffffffffffffffffffffff811661045c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f60448201527f787920746f20746865207a65726f20616464726573730000000000000000000060648201526084015b60405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a57fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101de817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60006105267f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461054657600080fd5b61055083826105d1565b61057b60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104610c2f565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146105a9576105a9610c6d565b6102cc827fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60006105fb7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461061b57600080fd5b61064660017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610c2f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1461067457610674610c6d565b61067d826107f9565b8051156106f95760008273ffffffffffffffffffffffffffffffffffffffff16826040516106ab9190610c9c565b600060405180830381855af49150503d80600081146106e6576040519150601f19603f3d011682016040523d82523d6000602084013e6106eb565b606091505b50509050806102cc57600080fd5b5050565b60006107277fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561035457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61017e6108b2565b3660008037600080366000845af43d6000803e8080156107a7573d6000f35b3d6000fd5b6107b5816107f9565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6108028161098f565b61088e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e7472616374206164647265737300000000006064820152608401610453565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561017e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e00000000000000000000000000006064820152608401610453565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906109c357508115155b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146109ef57600080fd5b919050565b600060208284031215610a0657600080fd5b610a0f826109cb565b9392505050565b600080600060408486031215610a2b57600080fd5b610a34846109cb565b9250602084013567ffffffffffffffff80821115610a5157600080fd5b818601915086601f830112610a6557600080fd5b813581811115610a7457600080fd5b876020828501011115610a8657600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610ad957600080fd5b813567ffffffffffffffff80821115610af457610af4610a99565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610b3a57610b3a610a99565b81604052838152866020858801011115610b5357600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610b8857600080fd5b610b91846109cb565b9250610b9f602085016109cb565b9150604084013567ffffffffffffffff811115610bbb57600080fd5b610bc786828701610ac8565b9150509250925092565b60008060408385031215610be457600080fd5b610bed836109cb565b9150602083013567ffffffffffffffff811115610c0957600080fd5b610c1585828601610ac8565b9150509250929050565b8183823760009101908152919050565b600082821015610c68577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b81811015610cbd5760208186018101518583015201610ca3565b81811115610ccc576000828501525b50919091019291505056fea26469706673582212206d25b8a64912101eeb0c5cf9b9b0329684f9b3a2791723002f4b32a4aac2581a64736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106100705760003560e01c80638f2839701161004e5780638f283970146100eb578063cf7a1d771461010b578063d1f578941461011e578063f851a4401461013157610070565b80633659cfe61461007a5780634f1ef2861461009a5780635c60da1b146100ad575b610078610146565b005b34801561008657600080fd5b506100786100953660046109f4565b610180565b6100786100a8366004610a16565b6101e9565b3480156100b957600080fd5b506100c26102d1565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f757600080fd5b506100786101063660046109f4565b61035f565b610078610119366004610b73565b6104fc565b61007861012c366004610bd1565b6105d1565b34801561013d57600080fd5b506100c26106fd565b61014e610780565b61017e6101797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610788565b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101e1576101de816107ac565b50565b6101de610146565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c457610247836107ac565b60008373ffffffffffffffffffffffffffffffffffffffff168383604051610270929190610c1f565b600060405180830381855af49150503d80600081146102ab576040519150601f19603f3d011682016040523d82523d6000602084013e6102b0565b606091505b50509050806102be57600080fd5b50505050565b6102cc610146565b505050565b60006102fb7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561035457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61035c610146565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101e15773ffffffffffffffffffffffffffffffffffffffff811661045c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f60448201527f787920746f20746865207a65726f20616464726573730000000000000000000060648201526084015b60405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a57fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a16101de817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60006105267f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461054657600080fd5b61055083826105d1565b61057b60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104610c2f565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146105a9576105a9610c6d565b6102cc827fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60006105fb7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461061b57600080fd5b61064660017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610c2f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1461067457610674610c6d565b61067d826107f9565b8051156106f95760008273ffffffffffffffffffffffffffffffffffffffff16826040516106ab9190610c9c565b600060405180830381855af49150503d80600081146106e6576040519150601f19603f3d011682016040523d82523d6000602084013e6106eb565b606091505b50509050806102cc57600080fd5b5050565b60006107277fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561035457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61017e6108b2565b3660008037600080366000845af43d6000803e8080156107a7573d6000f35b3d6000fd5b6107b5816107f9565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6108028161098f565b61088e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e7472616374206164647265737300000000006064820152608401610453565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561017e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e00000000000000000000000000006064820152608401610453565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906109c357508115155b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146109ef57600080fd5b919050565b600060208284031215610a0657600080fd5b610a0f826109cb565b9392505050565b600080600060408486031215610a2b57600080fd5b610a34846109cb565b9250602084013567ffffffffffffffff80821115610a5157600080fd5b818601915086601f830112610a6557600080fd5b813581811115610a7457600080fd5b876020828501011115610a8657600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610ad957600080fd5b813567ffffffffffffffff80821115610af457610af4610a99565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610b3a57610b3a610a99565b81604052838152866020858801011115610b5357600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610b8857600080fd5b610b91846109cb565b9250610b9f602085016109cb565b9150604084013567ffffffffffffffff811115610bbb57600080fd5b610bc786828701610ac8565b9150509250925092565b60008060408385031215610be457600080fd5b610bed836109cb565b9150602083013567ffffffffffffffff811115610c0957600080fd5b610c1585828601610ac8565b9150509250929050565b8183823760009101908152919050565b600082821015610c68577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b81811015610cbd5760208186018101518583015201610ca3565b81811115610ccc576000828501525b50919091019291505056fea26469706673582212206d25b8a64912101eeb0c5cf9b9b0329684f9b3a2791723002f4b32a4aac2581a64736f6c634300080a0033

Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.