Contract 0x935b97586FE291750F46Bf4eD7BeB8E1c3d110A2 1

 

Contract Overview

Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x65c990383cfe20c7e6db3364da1dfeac6d672cfd739eebb0504a3caec7e5e34bExecute Order299828762022-06-25 13:58:411 min ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.03379706 55
0x5bff7b84a95d6b3625c92f37fee14168a561ca06267d225af8d7bdf29fdb5142Execute Order299828512022-06-25 13:57:512 mins ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.052607894624 72.769177368
0x3ce9278866cab44963db6600335b65e18ac635dec4518290795500dcee5023c2Execute Order299828452022-06-25 13:57:312 mins ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.052560601433 76.095490979
0xdc39dc3b5a38d9b3c412256d0205d58e1684fc9bc86f0a31d40074a26c7b71baCreate Order299828382022-06-25 13:57:033 mins ago0xcaac466e995c0e045c823e0ed51dd2044b22bc8c IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.02290258451 66.910471361
0xec908999d8853e600b5ff7066d041353cf7828f089a39eba777f5b9c688ebeb1Create Order299828282022-06-25 13:56:233 mins ago0xcaac466e995c0e045c823e0ed51dd2044b22bc8c IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.017082110542 49.907561296
0xd8be0801775b8a0a636e9188a8d59fe4db13129d3474ac6ad51b1fa50c65d5cdCreate Order299828212022-06-25 13:55:554 mins ago0xcaac466e995c0e045c823e0ed51dd2044b22bc8c IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.015696884677 45.858839737
0x637b52304885c062ce02346833adf32ccc5cd7844be187858eb792695fce7d76Execute Order299825682022-06-25 13:45:1115 mins ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.018205991882 34.553424185
0x47ab3953926eaea57b64d12bdf8d0d18c59aaee3c2725e79d6435ced6a9ef4efCreate Order299817042022-06-25 13:12:0148 mins ago0x17c0be20e7da75593e3c892d825154fdc81f1c52 IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.013046739803 40.145173539
0xeae88bbdf0eb34163d9a660186f844e6ddcaafd829f0d5ec8e7980bc5c705b67Cancel Order299814992022-06-25 13:02:4757 mins ago0x17c0be20e7da75593e3c892d825154fdc81f1c52 IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.009782233816 30.651281282
0x40f77eb82b3375c3545f06e2bf15a001daf3fd5f52930d4eac878538136825daCreate Order299808092022-06-25 12:36:591 hr 23 mins ago0x17c0be20e7da75593e3c892d825154fdc81f1c52 IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.003281898973 75.131609677
0xbba1c55af7426044a1e9afeb72497259fcb2881c506f86055df02a755bb8fae0Create Order299808092022-06-25 12:36:591 hr 23 mins ago0x17c0be20e7da75593e3c892d825154fdc81f1c52 IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.013102187635 40.315788028
0xecea962467f5eceb6fa03aa7fc07c30aeb72c905513a34812769e32b59925e1fExecute Order299807522022-06-25 12:33:271 hr 26 mins ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.026855268 44
0x978c493de5cf86639df4382a72a512d5794d3f46292024ce791a60815f238671Create Order299807392022-06-25 12:32:351 hr 27 mins ago0x17c0be20e7da75593e3c892d825154fdc81f1c52 IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.012395373734 36.728448013
0x122c8df03d3a63371c8bffd7386c0931161059e1107f251880ac50f980b4646eCreate Order299806722022-06-25 12:30:091 hr 30 mins ago0x4b9708c05b883ee55b15e40959ccd0f1e6a80a4e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.014244308484 42.206984224
0x0fa8d66681551fcca6a91775da1603fcc9a7fd59c082e8a555d0978773480ac7Execute Order299806662022-06-25 12:29:531 hr 30 mins ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.02987602 47
0xd66697c35b2e6f95d9087161ec878e7fa40c556b69563a1001082b2505914295Create Order299806342022-06-25 12:28:491 hr 31 mins ago0x17c0be20e7da75593e3c892d825154fdc81f1c52 IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.013797372954 42.475934815
0x959559400c27627ea1ecbdde214e0cd2756ce7c7ee9dea064ffc87f5361fa321Cancel Order299806092022-06-25 12:27:591 hr 32 mins ago0x17c0be20e7da75593e3c892d825154fdc81f1c52 IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.009999357873 34.572937588
0xf4eba1bd11f9dc9465c4f2a692f5d819ce25e0f134af1468cd78d39510024b7bExecute Order299803442022-06-25 12:18:351 hr 41 mins ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.046431528496 33.00063362
0x7133556a8ad198ebc707227ec6bd61860b793f124207b731ea0b71e39223b2e8Create Order299803282022-06-25 12:17:311 hr 42 mins ago0x63466393a5590be4932712b4f5389f1fbed67f28 IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.0191640456
0xf9633a1e93ba99e775abda212a500139c860949d79b94e4352f9fa676cce6493Execute Order299803252022-06-25 12:17:191 hr 43 mins ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.019619389028 39.00009746
0x60080061636d4eec5c1b95b08803b6723ca8c192956886b6f051e554e3ef2270Execute Order299793562022-06-25 11:37:192 hrs 23 mins ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.025090668232 36.000000333
0x596ff43143d08ec22e1bf777844dc310cb8d3790caf2e40ed2088e753b942ef0Create Order299793452022-06-25 11:36:352 hrs 23 mins ago0xfde11ae9a9bd4555922d78fb98a924ef402580c9 IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.010625673093 31.049700023
0x98d139825bc80dae833b68fc917088119f69f5d4b4ffa094bc88054512052847Cancel Order299786672022-06-25 11:09:412 hrs 50 mins ago0xa6d51779b45bdf1c5b6bd0fe86be2c2d9481e69d IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.009699305316 31.049700098
0x764a7e6347c92f214252a962c7675c979d6b1dc85fd87eabfb44daf5072796bcExecute Order299776942022-06-25 10:30:313 hrs 29 mins ago0xbae7a2937999adba74bc9287c11f832c6380586e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a20 MATIC0.030382156989 33.000015195
0x8876ba1168805e2a0cb663963184e11e0c47ee870ae157fe7e236f876c25bb0eCreate Native Or...299776582022-06-25 10:29:153 hrs 31 mins ago0x4b9708c05b883ee55b15e40959ccd0f1e6a80a4e IN  0x935b97586fe291750f46bf4ed7beb8e1c3d110a2640.643411133965656 MATIC0.009681725135 32.010041479
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8876ba1168805e2a0cb663963184e11e0c47ee870ae157fe7e236f876c25bb0e299776582022-06-25 10:29:153 hrs 31 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token640.643411133965656529 MATIC
0x27c3b5dd816cafa113d92c19fdb4beee9e7804462037335bb8f8d03a02633875299755632022-06-25 8:58:055 hrs 2 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token150 MATIC
0xeee1d7a488ecdeb09a34a5af551526a9862e05a24a4ac927702b57091e819a36299560102022-06-24 19:35:1018 hrs 25 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token2,000 MATIC
0xc9a164fe9211bcb7c574310c9e073920a03e550fb1e7484b5a49716638e5bb98299550932022-06-24 18:59:2319 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token300 MATIC
0xe48315fb02935c89fd6452acdc44393d89574b102bebf49e35388b9138b8704d299548012022-06-24 18:45:0319 hrs 15 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token1,920.4605 MATIC
0x043ee0c5de84b836b911e4e062ac25e7d610ae5e5edd22468369ed12d6ffd058299513202022-06-24 16:34:4221 hrs 25 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token300 MATIC
0x169cdde109c762a9f4eb2e3d97cfc423f42d5feac1f8f1f3ad244cdbbe870938299512942022-06-24 16:33:4621 hrs 26 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token300 MATIC
0xf66c8fa70b1bd48191f8c3665bee3d39ad55bf6193f582e27c44ff8092d41986299512722022-06-24 16:33:0221 hrs 27 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token124 MATIC
0xdd83b1e96a8ef3042d773431c6f0be4a426f9d112381b7ab015ee50f912fed33299506812022-06-24 16:10:3521 hrs 49 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token10 MATIC
0xd77adb6ec7823babad771582a0244aaefc3de8fc963f0fe9d60a3639ac8f5c0f299444982022-06-24 12:26:491 day 1 hr ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token91.339422787859896499 MATIC
0x9faf7a2b24d8d818a91b28d0b36e1ebd51dafe593c948fd9b3858052aada6dd9299376592022-06-24 8:10:211 day 5 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token100 MATIC
0x1afd6893b81b8469dae264366a2824e46d7fdf588af1246f529e9ad80205bd80299373632022-06-24 8:00:131 day 6 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token110 MATIC
0x6cfa4eb797d760f4dedc200ccc46e6f75e7b0a4793dd3cb47b00ce609d749896299186532022-06-23 20:14:521 day 17 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token224 MATIC
0xd1a58d929a33096f60d06b6a4b3d46f7d7a9abf41ee500f41ab9aa5e8670af99299068732022-06-23 12:51:392 days 1 hr ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token4,790 MATIC
0x8c41eff1ac0fd9cbcbe654a4f2ed9770b2ba8be4356d9071562ce9d2be9936f0299066782022-06-23 12:44:572 days 1 hr ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token1,250 MATIC
0xe281ea328f35f0ffc91d5304f9d229f1cc1c92078de4741debce6ec29f1fd412299066412022-06-23 12:43:432 days 1 hr ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token10 MATIC
0xf447e5dcd177c6c5a6d6ad1e6d4725b936b0e6f6968fc7645d5ad1a710fe8afc298991802022-06-23 8:01:332 days 5 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token90 MATIC
0xd061d12580012c38bedbd29eef937889ccb26e7b9de0279a7a1e322d8bc0f052298721102022-06-22 15:35:232 days 22 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token350 MATIC
0x271e4156fa534b930c6de106a58ab92bf832e127dc1a02dac7e211a03f7607f2298691842022-06-22 13:48:263 days 11 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token1 MATIC
0x016c778f7cede4cd5f5324c550a1b5525076eac38cb7e39cbe88b515d3d4ab72298687062022-06-22 13:29:503 days 30 mins ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token1 MATIC
0xb7635908921a863e1f97ded4ed973fca8ed3fc8b5749ece7c53207703460c358298665272022-06-22 12:03:073 days 1 hr ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token1 MATIC
0x18838eb56960170c688c7e279c22f9298b538ff32093dfdf464fd58d906ef415298663472022-06-22 11:55:513 days 2 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token0.3 MATIC
0x3658daad9cad2cf2463dd2898424aeb3b93a9f5cf3c71bce320a7654c876904d298659432022-06-22 11:39:513 days 2 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token1 MATIC
0x07be1de5d62e5cda5d7b8b9f04a46e552a5a893f7a9a81a28753f269c9ded0f2298655222022-06-22 11:23:133 days 2 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token1 MATIC
0x1e90d91a65b8985439fe00eaac76d24917729230d4d725d5b39c4962d8a21cec298635082022-06-22 10:05:273 days 3 hrs ago 0x935b97586fe291750f46bf4ed7beb8e1c3d110a2 Polygon: WMATIC Token5 MATIC
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x78e6740a36B8E605aE02869e48F0caCEF757d9F9

Contract Name:
AdminUpgradeabilityProxy

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2021-06-11
*/

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.2 <0.8.0;

/**
 * @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) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 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");

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

    /**
     * @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 functionCall(target, data, "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");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(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) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // 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

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

pragma solidity ^0.6.0;

/**
 * @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 () payable external {
    _fallback();
  }

  /**
   * @dev Receive function.
   * Implemented entirely in `_fallback`.
   */
  receive () payable external {
    _fallback();
  }

  /**
   * @return The Address of the implementation.
   */
  function _implementation() internal virtual view 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 {
    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());
  }
}

pragma solidity ^0.6.0;

/**
 * @title UpgradeabilityProxy
 * @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 UpgradeabilityProxy is Proxy {
  /**
   * @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) public payable {
    assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1));
    _setImplementation(_logic);
    if(_data.length > 0) {
      (bool success,) = _logic.delegatecall(_data);
      require(success);
    }
  }  

  /**
   * @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 override view returns (address impl) {
    bytes32 slot = IMPLEMENTATION_SLOT;
    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;

    assembly {
      sstore(slot, newImplementation)
    }
  }
}

pragma solidity ^0.6.0;

/**
 * @title AdminUpgradeabilityProxy
 * @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 AdminUpgradeabilityProxy is UpgradeabilityProxy {
  /**
   * Contract constructor.
   * @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.
   */
  constructor(address _logic, address _admin, bytes memory _data) UpgradeabilityProxy(_logic, _data) public payable {
    assert(ADMIN_SLOT == bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1));
    _setAdmin(_admin);
  }

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

    assembly {
      sstore(slot, newAdmin)
    }
  }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"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":"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"},{"stateMutability":"payable","type":"receive"}]

60806040526040516109943803806109948339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b5060408181527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000082525190819003601c01902086935084925060008051602061093983398151915260001990910114905061013157fe5b610143826001600160e01b0361026516565b8051156101fb576000826001600160a01b0316826040518082805190602001908083835b602083106101865780518252601f199092019160209182019101610167565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101e6576040519150601f19603f3d011682016040523d82523d6000602084013e6101eb565b606091505b50509050806101f957600080fd5b505b5050604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190206000805160206109198339815191526000199091011461024b57fe5b61025d826001600160e01b036102c516565b5050506102dd565b610278816102d760201b6103b41760201c565b6102b35760405162461bcd60e51b815260040180806020018281038252603b815260200180610959603b913960400191505060405180910390fd5b60008051602061093983398151915255565b60008051602061091983398151915255565b3b151590565b61062d806102ec6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b81526004018080602001828103825260368152602001806105876036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260328152602001806105556032913960400191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603b8152602001806105bd603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a26469706673582212206e221e2a3547bd97244b05ed46430b1b078ba097cb2a4e25ec3d79cf9ac9f02c64736f6c63430006080033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000000000000000005a04e99dd725e07410945803525dcf482aad2dfe000000000000000000000000063c8a3025816f273786b472aebdf1e6db95448b000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4ab963703000000000000000000000000d9e1e4e4ab2302d93f4da718edac078187cba653000000000000000000000000f9864698e01c17e0b426e4c9eb427e095a7ad1cf000000000000000000000000850c6c2462da04f5d4f9153e494b7ea3d60026bd0000000000000000000000004190b90d7fbef505c615dcc9e54a080745114a420000000000000000000000006f3644539954612903b01001b2bf8edf7ad6736a000000000000000000000000e014db7188676f704f70467bf2e4b9d1df265dc400000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

12375:4220:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7627:11;:9;:11::i;:::-;12375:4220;;7483:11;:9;:11::i;15021:105::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15021:105:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15021:105:0;-1:-1:-1;;;;;15021:105:0;;:::i;15654:225::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;15654:225:0;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;15654:225:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;15654:225:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;15654:225:0;;-1:-1:-1;15654:225:0;-1:-1:-1;15654:225:0;:::i;14321:98::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14321:98:0;;;:::i;:::-;;;;-1:-1:-1;;;;;14321:98:0;;;;;;;;;;;;;;14602:228;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14602:228:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14602:228:0;-1:-1:-1;;;;;14602:228:0;;:::i;14172:80::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14172:80:0;;;:::i;9201:93::-;9238:15;:13;:15::i;:::-;9260:28;9270:17;:15;:17::i;:::-;9260:9;:28::i;:::-;9201:93::o;15021:105::-;14039:8;:6;:8::i;:::-;-1:-1:-1;;;;;14025:22:0;:10;-1:-1:-1;;;;;14025:22:0;;14021:80;;;15091:29:::1;15102:17;15091:10;:29::i;:::-;14021:80:::0;;;14082:11;:9;:11::i;:::-;15021:105;:::o;15654:225::-;14039:8;:6;:8::i;:::-;-1:-1:-1;;;;;14025:22:0;:10;-1:-1:-1;;;;;14025:22:0;;14021:80;;;15760:29:::1;15771:17;15760:10;:29::i;:::-;15797:12;15814:17;-1:-1:-1::0;;;;;15814:30:0::1;15845:4;;15814:36;;;;;30:3:-1;22:6;14;1:33;15814:36:0;::::0;45:16:-1;::::1;::::0;-1:-1;15814:36:0::1;::::0;-1:-1:-1;15814:36:0;;-1:-1:-1;;15814:36:0;;::::1;::::0;;::::1;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;15796:54:0;;;15865:7;15857:16;;12:1:-1;9::::0;2:12:::1;15857:16:0;14058:1;14021:80:::0;;;14082:11;:9;:11::i;:::-;15654:225;;;:::o;14321:98::-;14373:7;14039:8;:6;:8::i;:::-;-1:-1:-1;;;;;14025:22:0;:10;-1:-1:-1;;;;;14025:22:0;;14021:80;;;14396:17:::1;:15;:17::i;:::-;14389:24;;14021:80:::0;;;14082:11;:9;:11::i;:::-;14321:98;:::o;14602:228::-;14039:8;:6;:8::i;:::-;-1:-1:-1;;;;;14025:22:0;:10;-1:-1:-1;;;;;14025:22:0;;14021:80;;;-1:-1:-1;;;;;14673:22:0;::::1;14665:89;;;;-1:-1:-1::0;;;14665:89:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14766:32;14779:8;:6;:8::i;:::-;14766:32;::::0;;-1:-1:-1;;;;;14766:32:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;14805:19;14815:8;14805:9;:19::i;14172:80::-:0;14215:7;14039:8;:6;:8::i;:::-;-1:-1:-1;;;;;14025:22:0;:10;-1:-1:-1;;;;;14025:22:0;;14021:80;;;14238:8:::1;:6;:8::i;751:422::-:0;1118:20;1157:8;;;751:422::o;16415:177::-;16495:8;:6;:8::i;:::-;-1:-1:-1;;;;;16481:22:0;:10;-1:-1:-1;;;;;16481:22:0;;;16473:85;;;;-1:-1:-1;;;16473:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16565:21;:19;:21::i;11082:170::-;10891:66;11229:11;;11212:35::o;8074:762::-;8381:14;8378:1;8375;8362:34;8581:1;8578;8562:14;8559:1;8543:14;8536:5;8523:60;8648:16;8645:1;8642;8627:38;8682:6;8739:38;;;;8805:16;8802:1;8795:27;8739:38;8758:16;8755:1;8748:27;15933:141;13732:66;16051:11;;16035:34::o;11393:145::-;11456:37;11475:17;11456:18;:37::i;:::-;11505:27;;-1:-1:-1;;;;;11505:27:0;;;;;;;;11393:145;:::o;16196:139::-;13732:66;16301:22;16292:38::o;11681:293::-;11760:37;11779:17;11760:18;:37::i;:::-;11752:109;;;;-1:-1:-1;;;11752:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10891:66;11931:31;11922:47::o

Swarm Source

ipfs://6e221e2a3547bd97244b05ed46430b1b078ba097cb2a4e25ec3d79cf9ac9f02c
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.