Contract 0x30ea765d4dda26e0f89e1b23a7c7b2526b7d29ec 2

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9ac6999f0282644b7d162a0e396cd4b031054deea347aaa80c238b057e3d32f5Approve319394272022-08-16 1:28:0215 mins ago0x7025740d742d05939509fffc9c7e04b95388f5ab IN  PolyPad: POLYPAD Token0 MATIC0.001538130013 30.000000266
0x8557a658eaecbf5d4a7843dbcf9838b6cf99fe0c139bd0c04c81f55b0df1402fApprove319388522022-08-16 1:06:0637 mins ago0xf5f83baa9342cbe08bdbc529a12f0dcc6e9cc1e3 IN  PolyPad: POLYPAD Token0 MATIC0.002102111 41
0x93158436ba74dc16eb503d12496af993afc643c0249d6a5179be933bfcda5c13Transfer319386482022-08-16 0:59:0644 mins ago0x1277306ee1ae1006b40124eb8778c8619c69d417 IN  PolyPad: POLYPAD Token0 MATIC0.00170502859 30.231539405
0x3b437f3a4acab80a2c661432d6d5cedd25069fa89bce81cccbf186786f94e877Transfer319374782022-08-16 0:14:381 hr 28 mins ago0x6cf11ffb404e188db3462aa77e70a047ab200bf7 IN  PolyPad: POLYPAD Token0 MATIC0.00118241265330.096791651
0xc79e8223bc9617865122edae0a1b88720056486967ddbe37a79430f30d76d06cApprove319373172022-08-16 0:09:041 hr 34 mins ago0xfd214f63c6b764fe20049077e0ada48b299b788a IN  PolyPad: POLYPAD Token0 MATIC0.001959578614 38.220019395
0x4e673047ee2ab325e93978502d8cfc51b126879c38cf2cb7dc873a3d38cc6c60Transfer319372942022-08-16 0:08:181 hr 35 mins ago0x0d0707963952f2fba59dd06f2b425ace40b492fe IN  PolyPad: POLYPAD Token0 MATIC0.00166005219437.643760499
0x61eca6c70d639d657c46b1a54bfc45ceff3d56c1cf0a46fad524a28d6caec71bApprove319368692022-08-15 23:49:241 hr 54 mins ago0xfd214f63c6b764fe20049077e0ada48b299b788a IN  PolyPad: POLYPAD Token0 MATIC0.001843766807 35.961202394
0x41bec8b08b8f458d89cc870768aad5c6dc5cb80a484a54c5b55b843cc9796db4Transfer319368232022-08-15 23:47:481 hr 55 mins ago0x0d0707963952f2fba59dd06f2b425ace40b492fe IN  PolyPad: POLYPAD Token0 MATIC0.00145526700233.000000052
0x522d8d5b63da665dd8c293149d21fbfbf6867bdfd711d6f3bbea1a3ac220f3edTransfer319364742022-08-15 23:35:382 hrs 7 mins ago0xd0be1fded5d964619b92b3672c08c43305529be0 IN  PolyPad: POLYPAD Token0 MATIC0.00117861014330.000003648
0xe617982c868a62f7d379b06cbd004a893eb34c9d1758b130270508815fa889e4Transfer319363582022-08-15 23:31:382 hrs 11 mins ago0x134a46a2fb3c30faef43aa60fed344e264dd7427 IN  PolyPad: POLYPAD Token0 MATIC0.00117897021130.000005393
0xc74c2da69a90d12b5d9d1fdd055c2851f28b9d60effe0d6a8a5fdb22fd788ceaTransfer319362122022-08-15 23:24:262 hrs 19 mins ago0x48f1ed3ba41cd3e77419fb877a370d6eb77d578e IN  PolyPad: POLYPAD Token0 MATIC0.00117933009730.000002471
0x6c8f4994bc383a0ce68765c2ab3016f4cfe1164faa9732412ce9d608a8e629c7Approve319344662022-08-15 22:17:313 hrs 25 mins ago0x5be3b2bc0cb80af2fba77ae8d92bed05142d78c6 IN  PolyPad: POLYPAD Token0 MATIC0.002101619 41
0x418a98e90b4eed2d45c536035271acfd7af377feb5285e361877e6517bb12c7fApprove319329382022-08-15 21:20:214 hrs 23 mins ago0x2e27cafcc3bd4349fc3f25bb2ee9fc53b12fef1f IN  PolyPad: POLYPAD Token0 MATIC0.001742806 34
0x69c306bee2f0c08a7f659fd07ca7af5d9c6a15ab3263952dbf4ed20040889234Approve319319392022-08-15 20:41:435 hrs 1 min ago0x1bb26a07ddb835ff3a23ed584c68af2629d8f2ae IN  PolyPad: POLYPAD Token0 MATIC0.005484713 107
0x99853409fb33a0ddc47caef5acc3cfa49f5c5841815e409baa17ebe8ad1bb316Transfer319318382022-08-15 20:38:135 hrs 5 mins ago0x0d0707963952f2fba59dd06f2b425ace40b492fe IN  PolyPad: POLYPAD Token0 MATIC0.00562825660891.984516461
0x8350dfc98cd0df4e90bd03e79a2a5daf76e0daf06ea8f2cd339fd03fc5692a63Transfer319247142022-08-15 16:00:419 hrs 42 mins ago0xf4ac30d0002f1c46ca0036cf0144ebe64448b5b9 IN  PolyPad: POLYPAD Token0 MATIC0.002032981833 36.046416311
0xafeae17e351dbec2c511946324d60d348f72e29c99a9324d6b89d5b60a741a9dApprove319245592022-08-15 15:53:159 hrs 50 mins ago0xf4ac30d0002f1c46ca0036cf0144ebe64448b5b9 IN  PolyPad: POLYPAD Token0 MATIC0.001546424392 30.000279214
0x1985afe139941912ba0aa872d933e674f7dfd4f4dd6f2caab63079568dd1e4f4Approve319218712022-08-15 14:10:0711 hrs 33 mins ago0x5c6178f926d7311d3340cd0a749ed3286322202f IN  PolyPad: POLYPAD Token0 MATIC0.002101619 41
0xcf0334e9adabb48705a2dda10707765d57cc6c4cb54cccd54461a7920a87bfefTransfer319217342022-08-15 14:05:2511 hrs 38 mins ago0x0d0707963952f2fba59dd06f2b425ace40b492fe IN  PolyPad: POLYPAD Token0 MATIC0.00201951550933.005630443
0xb0dd1eb79872f6e2f1ca3d446be4afc08afe5f48b9164ae8515f9987c214c037Transfer319212642022-08-15 13:47:0511 hrs 56 mins agoMEXC.com IN  PolyPad: POLYPAD Token0 MATIC0.00205066816446.501466343
0x80a9ea5bef1dba465e7e4899111b15c47b0bf428c6e046668f3a05487b8019e7Transfer319203352022-08-15 13:15:0712 hrs 28 mins agoMEXC.com IN  PolyPad: POLYPAD Token0 MATIC0.00480155379478.458043349
0x2ff5630d1c87b17c044f18a9c965752d1a20b5f963b9e0ba60d1ec7fc0f3e8bcTransfer319193762022-08-15 12:37:5313 hrs 5 mins ago0x8803bcaa6e753cd250a349d017ab74885f67045c IN  PolyPad: POLYPAD Token0 MATIC0.001896708296 33.637333005
0x88f580f2e8c8e0341fd58edf5d38d33b0562effe20ce1cdbd7c7562d44ad4533Transfer319185052022-08-15 12:03:3913 hrs 39 mins ago0x0d0707963952f2fba59dd06f2b425ace40b492fe IN  PolyPad: POLYPAD Token0 MATIC0.0022731889837.151502448
0xbfd4fb118acb3d30c3c90e2008f6c3e1b2933f34b1b0ab80a9eb9b7c5051168bApprove319155042022-08-15 10:01:1315 hrs 42 mins ago0xf0a315b17cded688a85fb9ec848309850471e6ba IN  PolyPad: POLYPAD Token0 MATIC0.002665468 52
0xe98b2ac15e9c91d0ae96afc5cb751eefbadf5efc5e8bdea107de6a107867bdc1Transfer319153702022-08-15 9:54:2915 hrs 48 mins ago0x4dde616da153c7a9f9ce6d36bcc22755b07a0632 IN  PolyPad: POLYPAD Token0 MATIC0.001904048794 33.76032899
[ Download CSV Export 

OVERVIEW

Polypad - The ultimate launchpad for Polygon projects.

Latest 24 internal transactions
Parent Txn Hash Block From To Value
0x18397171456568bc246cb9fb12e9a802e2e7108aa530f754128c9fa4d1b0e57d306745862022-07-13 9:16:5133 days 16 hrs ago PolyPad: POLYPAD Token0xb3ae798da878e1115e258d0d5ccf7e163f6811cd5,727.802385015369999179 MATIC
0x18397171456568bc246cb9fb12e9a802e2e7108aa530f754128c9fa4d1b0e57d306745862022-07-13 9:16:5133 days 16 hrs ago PolyPad: POLYPAD Token0xe2414dbf48ed6c0fec0e79e054838a1bd3791c6a11,455.604770030739998356 MATIC
0x18397171456568bc246cb9fb12e9a802e2e7108aa530f754128c9fa4d1b0e57d306745862022-07-13 9:16:5133 days 16 hrs ago Polygon: WMATIC Token PolyPad: POLYPAD Token17,183.407155046109997535 MATIC
0x1cf6107ab0a03ee16230bd72cc59de08c12f890473b2484ab6c8622a59b51001290118852022-06-01 0:04:0276 days 1 hr ago PolyPad: POLYPAD Token0xb3ae798da878e1115e258d0d5ccf7e163f6811cd6,092.795402032602181311 MATIC
0x1cf6107ab0a03ee16230bd72cc59de08c12f890473b2484ab6c8622a59b51001290118852022-06-01 0:04:0276 days 1 hr ago PolyPad: POLYPAD Token0xe2414dbf48ed6c0fec0e79e054838a1bd3791c6a12,185.590804065204362622 MATIC
0x1cf6107ab0a03ee16230bd72cc59de08c12f890473b2484ab6c8622a59b51001290118852022-06-01 0:04:0276 days 1 hr ago Polygon: WMATIC Token PolyPad: POLYPAD Token18,278.386206097806543933 MATIC
0x99d2e39798fc19900d68706fb1bd8e91126addee418ec05f6d6deee36772cb4d280241562022-05-07 8:02:47100 days 17 hrs ago PolyPad: POLYPAD Token0xb3ae798da878e1115e258d0d5ccf7e163f6811cd4,089.72107147122533901 MATIC
0x99d2e39798fc19900d68706fb1bd8e91126addee418ec05f6d6deee36772cb4d280241562022-05-07 8:02:47100 days 17 hrs ago PolyPad: POLYPAD Token0xe2414dbf48ed6c0fec0e79e054838a1bd3791c6a8,179.442142942450678019 MATIC
0x99d2e39798fc19900d68706fb1bd8e91126addee418ec05f6d6deee36772cb4d280241562022-05-07 8:02:47100 days 17 hrs ago Polygon: WMATIC Token PolyPad: POLYPAD Token12,269.163214413676017029 MATIC
0x858320a0a54bb46af25c1803842d847a1bdedc5ab560394dd068e3734ba42b1a273038392022-04-19 0:20:31119 days 1 hr ago PolyPad: POLYPAD Token0xb3ae798da878e1115e258d0d5ccf7e163f6811cd373.927462028341950903 MATIC
0x858320a0a54bb46af25c1803842d847a1bdedc5ab560394dd068e3734ba42b1a273038392022-04-19 0:20:31119 days 1 hr ago PolyPad: POLYPAD Token0xe2414dbf48ed6c0fec0e79e054838a1bd3791c6a747.854924056683901806 MATIC
0x858320a0a54bb46af25c1803842d847a1bdedc5ab560394dd068e3734ba42b1a273038392022-04-19 0:20:31119 days 1 hr ago Polygon: WMATIC Token PolyPad: POLYPAD Token1,121.782386085025852709 MATIC
0x442f206b512277cb839c239be638db884437ac2f71760ff10246e39fadfa2317272441612022-04-17 12:16:27120 days 13 hrs ago PolyPad: POLYPAD Token0xb3ae798da878e1115e258d0d5ccf7e163f6811cd7,491.731416898710572359 MATIC
0x442f206b512277cb839c239be638db884437ac2f71760ff10246e39fadfa2317272441612022-04-17 12:16:27120 days 13 hrs ago PolyPad: POLYPAD Token0xe2414dbf48ed6c0fec0e79e054838a1bd3791c6a14,983.462833797421144718 MATIC
0x442f206b512277cb839c239be638db884437ac2f71760ff10246e39fadfa2317272441612022-04-17 12:16:27120 days 13 hrs ago Polygon: WMATIC Token PolyPad: POLYPAD Token22,475.194250696131717077 MATIC
0x0d94cdaa2caef5032baef2a0b51f8a05147f2cd70181e83033a10afdb7dd76ab269677812022-04-10 12:17:30127 days 13 hrs ago PolyPad: POLYPAD Token0xb3ae798da878e1115e258d0d5ccf7e163f6811cd3,361.76102360625335377 MATIC
0x0d94cdaa2caef5032baef2a0b51f8a05147f2cd70181e83033a10afdb7dd76ab269677812022-04-10 12:17:30127 days 13 hrs ago PolyPad: POLYPAD Token0xe2414dbf48ed6c0fec0e79e054838a1bd3791c6a6,723.52204721250670754 MATIC
0x0d94cdaa2caef5032baef2a0b51f8a05147f2cd70181e83033a10afdb7dd76ab269677812022-04-10 12:17:30127 days 13 hrs ago Polygon: WMATIC Token PolyPad: POLYPAD Token10,085.28307081876006131 MATIC
0xb263872f5de82165f6bfea0c2cb91a0ea94c9eaad2902faaf15be807ca5fa17a269292572022-04-09 12:31:26128 days 13 hrs ago PolyPad: POLYPAD Token0xb3ae798da878e1115e258d0d5ccf7e163f6811cd29,421.998539927995799691 MATIC
0xb263872f5de82165f6bfea0c2cb91a0ea94c9eaad2902faaf15be807ca5fa17a269292572022-04-09 12:31:26128 days 13 hrs ago PolyPad: POLYPAD Token0xe2414dbf48ed6c0fec0e79e054838a1bd3791c6a58,843.997079855991599382 MATIC
0xb263872f5de82165f6bfea0c2cb91a0ea94c9eaad2902faaf15be807ca5fa17a269292572022-04-09 12:31:26128 days 13 hrs ago Polygon: WMATIC Token PolyPad: POLYPAD Token88,265.995619783987399073 MATIC
0x4fd29cb62c9ead8d5e67afbd71468762e9e1d7a3e697e0befc05dde1fd627eb2269291772022-04-09 12:28:42128 days 13 hrs ago PolyPad: POLYPAD Token0xe2414dbf48ed6c0fec0e79e054838a1bd3791c6a58,843.997079855991599382 MATIC
0x4fd29cb62c9ead8d5e67afbd71468762e9e1d7a3e697e0befc05dde1fd627eb2269291772022-04-09 12:28:42128 days 13 hrs ago Polygon: WMATIC Token PolyPad: POLYPAD Token88,265.995619783987399073 MATIC
0x33af644fac4d47150671e563b6c95f537bb698e0648c1b97b655fc77a4536ada259977762022-03-16 8:19:27152 days 17 hrs ago PolyPad: POLYPAD Token  Contract Creation0 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TransparentUpgradeableProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2022-03-18
*/

pragma solidity ^0.6.12;

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
 * be specified by overriding the virtual {_implementation} function.
 * 
 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
 * different contract through the {_delegate} function.
 * 
 * The success and return data of the delegated call will be returned back to the caller of the proxy.
 */
abstract contract Proxy {
    /**
     * @dev Delegates the current call to `implementation`.
     * 
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal {
        // solhint-disable-next-line no-inline-assembly
        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 This is a virtual function that should be overriden so it returns the address to which the fallback function
     * and {_fallback} should delegate.
     */
    function _implementation() internal virtual view returns (address);

    /**
     * @dev Delegates the current call to the address returned by `_implementation()`.
     * 
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _fallback() internal {
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback () payable external {
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive () payable external {
        _delegate(_implementation());
    }
}

/**
 * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
 * implementation address that can be changed. This address is stored in storage in the location specified by
 * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
 * implementation behind the proxy.
 * 
 * Upgradeability is only provided internally through {_upgradeTo}. For an externally upgradeable proxy see
 * {TransparentUpgradeableProxy}.
 */
contract UpgradeableProxy is Proxy {
    /**
     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
     * 
     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
     * function call, and allows initializating the storage of the proxy like a Solidity constructor.
     */
    constructor() public payable {
        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
    }

    /**
     * @dev Emitted when the implementation is upgraded.
     */
    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 private constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @dev Returns the current implementation address.
     */
    function _implementation() internal override view returns (address impl) {
        bytes32 slot = _IMPLEMENTATION_SLOT;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            impl := sload(slot)
        }
    }

    /**
     * @dev Upgrades the proxy to a new implementation.
     * 
     * Emits an {Upgraded} event.
     */
    function _upgradeTo(address newImplementation) virtual internal {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    /**
     * @dev Stores a new address in the EIP1967 implementation slot.
     */
    function _setImplementation(address newImplementation) private {
        address implementation = _implementation();
        require(implementation != newImplementation, "Proxy: Attemps update proxy with the same implementation");

        bytes32 slot = _IMPLEMENTATION_SLOT;

        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(slot, newImplementation)
        }
    }
}

/**
 * @dev This contract implements a proxy that is upgradeable by an admin.
 * 
 * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
 * clashing], which can potentially be used in an attack, this contract uses the
 * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
 * things that go hand in hand:
 * 
 * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
 * that call matches one of the admin functions exposed by the proxy itself.
 * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
 * implementation. If the admin tries to call a function on the implementation it will fail with an error that says
 * "admin cannot fallback to proxy target".
 * 
 * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing
 * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due
 * to sudden errors when trying to call a function from the proxy implementation.
 * 
 * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,
 * you should think of the `ProxyAdmin` instance as the real administrative inerface of your proxy.
 */
contract TransparentUpgradeableProxy is UpgradeableProxy {
    /**
     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and
     * optionally initialized with `_data` as explained in {UpgradeableProxy-constructor}.
     */
    constructor(address admin, address implementation) public payable UpgradeableProxy() {
        require(_ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1), "Wrong admin slot");
        _setAdmin(admin);
        _upgradeTo(implementation);
    }

    /**
     * @dev Emitted when the admin account has changed.
     */
    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 private constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.
     */
    modifier ifAdmin() {
        if (msg.sender == _admin()) {
            _;
        } else {
            _fallback();
        }
    }

    /**
     * @dev Returns the current admin.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.
     * 
     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`
     */
    function admin() external ifAdmin returns (address) {
        return _admin();
    }

    /**
     * @dev Returns the current implementation.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.
     * 
     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
     */
    function implementation() external ifAdmin returns (address) {
        return _implementation();
    }

    /**
     * @dev Changes the admin of the proxy.
     * 
     * Emits an {AdminChanged} event.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.
     */
    function changeAdmin(address newAdmin) external ifAdmin {
        require(newAdmin != _admin(), "Proxy: new admin is the same admin.");
        emit AdminChanged(_admin(), newAdmin);
        _setAdmin(newAdmin);
    }

    /**
     * @dev Upgrade the implementation of the proxy.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.
     */
    function upgradeTo(address newImplementation) external ifAdmin {
        _upgradeTo(newImplementation);
    }

    /**
     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified
     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the
     * proxied contract.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.
     */
    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {
        _upgradeTo(newImplementation);
        // solhint-disable-next-line avoid-low-level-calls
        (bool success,) = newImplementation.delegatecall(data);
        require(success);
    }

    /**
     * @dev Returns the current admin.
     */
    function _admin() internal view returns (address adm) {
        bytes32 slot = _ADMIN_SLOT;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            adm := sload(slot)
        }
    }

    /**
     * @dev Stores a new address in the EIP1967 admin slot.
     */
    function _setAdmin(address newAdmin) private {
        bytes32 slot = _ADMIN_SLOT;
        require(newAdmin != address(0), "Proxy: Can't set admin to zero address.");

        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(slot, newAdmin)
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address","name":"implementation","type":"address"}],"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"}]

60806040526040516108143803806108148339818101604052604081101561002657600080fd5b50805160209091015161003882610048565b610041816100b1565b5050610174565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036001600160a01b0382166100ae5760405162461bcd60e51b81526004018080602001828103825260278152602001806107956027913960400191505060405180910390fd5b55565b6100ba816100f1565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006100fb610161565b9050816001600160a01b0316816001600160a01b0316141561014e5760405162461bcd60e51b81526004018080602001828103825260388152602001806107bc6038913960400191505060405180910390fd5b506000805160206107f483398151915255565b6000805160206107f48339815191525490565b610612806101836000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100705780634f1ef286146100a35780635c60da1b146101235780638f28397014610154578063f851a4401461018757610065565b366100655761006361005e61019c565b6101c1565b005b61006361005e61019c565b34801561007c57600080fd5b506100636004803603602081101561009357600080fd5b50356001600160a01b03166101ea565b610063600480360360408110156100b957600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100e457600080fd5b8201836020820111156100f657600080fd5b8035906020019184600183028401116401000000008311171561011857600080fd5b509092509050610224565b34801561012f57600080fd5b506101386102cc565b604080516001600160a01b039092168252519081900360200190f35b34801561016057600080fd5b506100636004803603602081101561017757600080fd5b50356001600160a01b0316610309565b34801561019357600080fd5b506101386103d6565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156101e0573d6000f35b3d6000fd5b505050565b6101f26103fd565b6001600160a01b0316336001600160a01b031614156102195761021481610422565b610221565b610221610462565b50565b61022c6103fd565b6001600160a01b0316336001600160a01b031614156102c45761024e83610422565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146102ab576040519150601f19603f3d011682016040523d82523d6000602084013e6102b0565b606091505b50509050806102be57600080fd5b506101e5565b6101e5610462565b60006102d66103fd565b6001600160a01b0316336001600160a01b031614156102fe576102f761019c565b9050610306565b610306610462565b90565b6103116103fd565b6001600160a01b0316336001600160a01b03161415610219576103326103fd565b6001600160a01b0316816001600160a01b031614156103825760405162461bcd60e51b81526004018080602001828103825260238152602001806105826023913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103ab6103fd565b604080516001600160a01b03928316815291841660208301528051918290030190a16102148161046f565b60006103e06103fd565b6001600160a01b0316336001600160a01b031614156102fe576102f75b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61042b816104d8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61046d61005e61019c565b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036001600160a01b0382166104d55760405162461bcd60e51b815260040180806020018281038252602781526020018061055b6027913960400191505060405180910390fd5b55565b60006104e261019c565b9050816001600160a01b0316816001600160a01b031614156105355760405162461bcd60e51b81526004018080602001828103825260388152602001806105a56038913960400191505060405180910390fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe50726f78793a2043616e2774207365742061646d696e20746f207a65726f20616464726573732e50726f78793a206e65772061646d696e206973207468652073616d652061646d696e2e50726f78793a20417474656d7073207570646174652070726f78792077697468207468652073616d6520696d706c656d656e746174696f6ea2646970667358221220d86a77a3ac5810bef8a244453ba1bee8c3cd15723333437382d47c0ea7402ecd64736f6c634300060c003350726f78793a2043616e2774207365742061646d696e20746f207a65726f20616464726573732e50726f78793a20417474656d7073207570646174652070726f78792077697468207468652073616d6520696d706c656d656e746174696f6e360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc000000000000000000000000a667609872f4bd539d7ea435a86dad3c26c3f4c600000000000000000000000046e5a19c847d8c0d97c69839552241205fbc62bd

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000a667609872f4bd539d7ea435a86dad3c26c3f4c600000000000000000000000046e5a19c847d8c0d97c69839552241205fbc62bd

-----Decoded View---------------
Arg [0] : admin (address): 0xa667609872f4bd539d7ea435a86dad3c26c3f4c6
Arg [1] : implementation (address): 0x46e5a19c847d8c0d97c69839552241205fbc62bd

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a667609872f4bd539d7ea435a86dad3c26c3f4c6
Arg [1] : 00000000000000000000000046e5a19c847d8c0d97c69839552241205fbc62bd


Deployed ByteCode Sourcemap

7036:4487:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2833:28;2843:17;:15;:17::i;:::-;2833:9;:28::i;:::-;7036:4487;;2592:28;2602:17;:15;:17::i;10051:111::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10051:111:0;-1:-1:-1;;;;;10051:111:0;;:::i;10548:299::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10548:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10548:299:0;;-1:-1:-1;10548:299:0;-1:-1:-1;10548:299:0;:::i;9342:104::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;9342:104:0;;;;;;;;;;;;;;9662:221;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9662:221:0;-1:-1:-1;;;;;9662:221:0;;:::i;8783:86::-;;;;;;;;;;;;;:::i;4497:248::-;4347:66;4716:11;;4693:45::o;872:907::-;1264:14;1261:1;1258;1245:34;1482:1;1479;1463:14;1460:1;1444:14;1437:5;1424:60;1561:16;1558:1;1555;1540:38;1601:6;1670:38;;;;1742:16;1739:1;1732:27;1670:38;1689:16;1686:1;1679:27;1594:167;;;1001:771;:::o;10051:111::-;8239:8;:6;:8::i;:::-;-1:-1:-1;;;;;8225:22:0;:10;-1:-1:-1;;;;;8225:22:0;;8221:100;;;10125:29:::1;10136:17;10125:10;:29::i;:::-;8221:100:::0;;;8298:11;:9;:11::i;:::-;10051:111;:::o;10548:299::-;8239:8;:6;:8::i;:::-;-1:-1:-1;;;;;8225:22:0;:10;-1:-1:-1;;;;;8225:22:0;;8221:100;;;10658:29:::1;10669:17;10658:10;:29::i;:::-;10759:12;10776:17;-1:-1:-1::0;;;;;10776:30:0::1;10807:4;;10776:36;;;;;;;;;;::::0;;::::1;::::0;-1:-1:-1;10776:36:0::1;::::0;-1:-1:-1;10776:36:0;;-1:-1:-1;;10776:36:0;;::::1;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10758:54;;;10831:7;10823:16;;;::::0;::::1;;8264:1;8221:100:::0;;;8298:11;:9;:11::i;9342:104::-;9394:7;8239:8;:6;:8::i;:::-;-1:-1:-1;;;;;8225:22:0;:10;-1:-1:-1;;;;;8225:22:0;;8221:100;;;9421:17:::1;:15;:17::i;:::-;9414:24;;8221:100:::0;;;8298:11;:9;:11::i;:::-;9342:104;:::o;9662:221::-;8239:8;:6;:8::i;:::-;-1:-1:-1;;;;;8225:22:0;:10;-1:-1:-1;;;;;8225:22:0;;8221:100;;;9749:8:::1;:6;:8::i;:::-;-1:-1:-1::0;;;;;9737:20:0::1;:8;-1:-1:-1::0;;;;;9737:20:0::1;;;9729:68;;;;-1:-1:-1::0;;;9729:68:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9813:32;9826:8;:6;:8::i;:::-;9813:32;::::0;;-1:-1:-1;;;;;9813:32:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;9856:19;9866:8;9856:9;:19::i;8783:86::-:0;8826:7;8239:8;:6;:8::i;:::-;-1:-1:-1;;;;;8225:22:0;:10;-1:-1:-1;;;;;8225:22:0;;8221:100;;;8853:8:::1;10913:219:::0;7978:66;11103:11;;11081:44::o;4872:163::-;4947:37;4966:17;4947:18;:37::i;:::-;5000:27;;-1:-1:-1;;;;;5000:27:0;;;;;;;;4872:163;:::o;2272:77::-;2313:28;2323:17;:15;:17::i;2313:28::-;2272:77::o;11219:301::-;7978:66;-1:-1:-1;;;;;11320:22:0;;11312:74;;;;-1:-1:-1;;;11312:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11480:22;11465:48::o;5131:422::-;5205:22;5230:17;:15;:17::i;:::-;5205:42;;5284:17;-1:-1:-1;;;;;5266:35:0;:14;-1:-1:-1;;;;;5266:35:0;;;5258:104;;;;-1:-1:-1;;;5258:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4347:66:0;5504:31;5489:57::o

Swarm Source

ipfs://d86a77a3ac5810bef8a244453ba1bee8c3cd15723333437382d47c0ea7402ecd
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.