Contract Overview
Balance:
0 MATIC
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
UUPSProxy
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-07-13 */ pragma solidity 0.7.6; library UUPSUtils { /** * @dev Implementation slot constant. * Using https://eips.ethereum.org/EIPS/eip-1967 standard * Storage slot 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc * (obtained as bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)). */ bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /// @dev Get implementation address. function implementation() internal view returns (address impl) { assembly { // solium-disable-line impl := sload(_IMPLEMENTATION_SLOT) } } /// @dev Set new implementation address. function setImplementation(address codeAddress) internal { assembly { // solium-disable-line sstore( _IMPLEMENTATION_SLOT, codeAddress ) } } } 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 virtual { // 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 view virtual 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 virtual { _beforeFallback(); _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 () external payable virtual { _fallback(); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data * is empty. */ receive () external payable virtual { _fallback(); } /** * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` * call, or as part of the Solidity `fallback` or `receive` functions. * * If overriden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual { } } // SPDX-License-Identifier: AGPLv3 /** * @dev UUPS (Universal Upgradeable Proxy Standard) Proxy * * NOTE: * - Compliant with [Universal Upgradeable Proxy Standard](https://eips.ethereum.org/EIPS/eip-1822) * - Compiiant with [Standard Proxy Storage Slots](https://eips.ethereum.org/EIPS/eip-1967) * - 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 implementation. */ contract UUPSProxy is Proxy { /** * @dev Proxy initialization function. * This should only be called once and it is permission-less. * @param initialAddress Initial logic contract code address to be used. */ function initializeProxy(address initialAddress) external { require(initialAddress != address(0), "UUPSProxy: zero address"); require(UUPSUtils.implementation() == address(0), "UUPSProxy: already initialized"); UUPSUtils.setImplementation(initialAddress); } /// @dev Proxy._implementation implementation function _implementation() internal virtual override view returns (address) { return UUPSUtils.implementation(); } }
[{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"initialAddress","type":"address"}],"name":"initializeProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50610204806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f61006c565b005b61002f61006c565b34801561004557600080fd5b5061002f6004803603602081101561005c57600080fd5b50356001600160a01b0316610086565b610074610084565b61008461007f610152565b610161565b565b6001600160a01b0381166100e1576040805162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b60006100eb610185565b6001600160a01b031614610146576040805162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a65640000604482015290519081900360640190fd5b61014f816101aa565b50565b600061015c610185565b905090565b3660008037600080366000845af43d6000803e808015610180573d6000f35b3d6000fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fea26469706673582212207f4d1aae539b5f520670399a5049006d749c4642873ece0ea4ae53a8f7a0f8a564736f6c63430007060033
Deployed ByteCode Sourcemap
4122:735:0:-:0;;;;;;;;;;;;;;;;;;;;;;;3228:11;:9;:11::i;:::-;4122:735;;2996:11;:9;:11::i;4371:289::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4371:289:0;-1:-1:-1;;;;;4371:289:0;;:::i;2632:113::-;2681:17;:15;:17::i;:::-;2709:28;2719:17;:15;:17::i;:::-;2709:9;:28::i;:::-;2632:113::o;4371:289::-;-1:-1:-1;;;;;4448:28:0;;4440:64;;;;;-1:-1:-1;;;4440:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4561:1;4523:26;:24;:26::i;:::-;-1:-1:-1;;;;;4523:40:0;;4515:83;;;;;-1:-1:-1;;;4515:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4609:43;4637:14;4609:27;:43::i;:::-;4371:289;:::o;4719:133::-;4786:7;4818:26;:24;:26::i;:::-;4811:33;;4719:133;:::o;1225:915::-;1625:14;1622:1;1619;1606:34;1843:1;1840;1824:14;1821:1;1805:14;1798:5;1785:60;1922:16;1919:1;1916;1901:38;1962:6;2031:38;;;;2103:16;2100:1;2093:27;2031:38;2050:16;2047:1;2040:27;520:174;655:20;649:27;;603:84::o;748:236::-;901:20;876:90;825:152::o
Swarm Source
ipfs://7f4d1aae539b5f520670399a5049006d749c4642873ece0ea4ae53a8f7a0f8a5
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|