Contract Overview
[ Download CSV Export ]
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0x3cbd7ada5f846e3d0adb3cd5ddc6d2ae0d4181cdbc244044c9ddbdf9e7fe714d | 17237955 | 136 days 12 hrs ago | 0xd86cd6bb3c2a576b2c2cef4e047b1a7adc5be62d | Contract Creation | 0 CELO |
[ Download CSV Export ]
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x61FA0fB802fd8345C06da558240E0651886fec69
Contract Name:
UUPSProxy
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at celoscan.io on 2023-01-15 */ // Sources flattened with hardhat v2.12.4 https://hardhat.org // File contracts/upgradability/UUPSUtils.sol // SPDX-License-Identifier: AGPLv3 pragma solidity 0.8.16; /** * @title UUPS (Universal Upgradeable Proxy Standard) Shared Library */ 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) } } } // File @openzeppelin/contracts/proxy/[email protected] /** * @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 internal call site, it will return directly to the external caller. */ function _delegate(address implementation) internal virtual { 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 overridden 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 internal 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 overridden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual {} } // File contracts/upgradability/UUPSProxy.sol /** * @title 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 view virtual override 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
608060405234801561001057600080fd5b50610205806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f61005436600461017f565b61006b565b610069610064610139565b610148565b565b6001600160a01b0381166100c05760405162461bcd60e51b81526020600482015260176024820152765555505350726f78793a207a65726f206164647265737360481b60448201526064015b60405180910390fd5b60006100ca61016c565b6001600160a01b0316146101205760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100b7565b610136816000805160206101b083398151915255565b50565b600061014361016c565b905090565b3660008037600080366000845af43d6000803e808015610167573d6000f35b3d6000fd5b6000805160206101b08339815191525490565b60006020828403121561019157600080fd5b81356001600160a01b03811681146101a857600080fd5b939250505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212207c33c3974a940a4eeeb4a7bd07086a7abf0876a8f9ebb856a5a88983d041b07064736f6c63430008100033
Deployed ByteCode Sourcemap
4583:685:0:-:0;;;;;;;;;;;;;;;;;;;;;;;3703:11;:9;:11::i;:::-;4583:685;;3496:11;:9;:11::i;4812:281::-;;;;;;;;;;-1:-1:-1;4812:281:0;;;;;:::i;:::-;;:::i;3169:98::-;3234:28;3244:17;:15;:17::i;:::-;3234:9;:28::i;:::-;3169:98::o;4812:281::-;-1:-1:-1;;;;;4883:28:0;;4875:64;;;;-1:-1:-1;;;4875:64:0;;507:2:1;4875:64:0;;;489:21:1;546:2;526:18;;;519:30;-1:-1:-1;;;565:18:1;;;558:53;628:18;;4875:64:0;;;;;;;;;4995:1;4957:26;:24;:26::i;:::-;-1:-1:-1;;;;;4957:40:0;;4944:96;;;;-1:-1:-1;;;4944:96:0;;859:2:1;4944:96:0;;;841:21:1;898:2;878:18;;;871:30;937:32;917:18;;;910:60;987:18;;4944:96:0;657:354:1;4944:96:0;5045:43;5073:14;-1:-1:-1;;;;;;;;;;;1029:41:0;925:154;5045:43;4812:281;:::o;5146:119::-;5213:7;5234:26;:24;:26::i;:::-;5227:33;;5146:119;:::o;1966:744::-;2267:14;2264:1;2261;2248:34;2458:1;2455;2439:14;2436:1;2420:14;2413:5;2400:60;2519:16;2516:1;2513;2498:38;2550:6;2601:47;;;;2678:16;2675:1;2668:27;2601:47;2625:16;2622:1;2615:27;723:154;-1:-1:-1;;;;;;;;;;;841:27:0;;723:154::o;14:286:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:1;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:1:o
Swarm Source
ipfs://7c33c3974a940a4eeeb4a7bd07086a7abf0876a8f9ebb856a5a88983d041b070
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.