// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (proxy/transparent/ProxyAdmin.sol)
pragma solidity ^0.8.20;
import {ITransparentUpgradeableProxy} from "./TransparentUpgradeableProxy.sol";
import {Ownable} from "../../access/Ownable.sol";
/**
* @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an
* explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.
*/
contract ProxyAdmin is Ownable {
/**
* @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address)`
* and `upgradeAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called,
* while `upgradeAndCall` will invoke the `receive` function if the second argument is the empty byte string.
* If the getter returns `"5.0.0"`, only `upgradeAndCall(address,bytes)` is present, and the second argument must
* be the empty byte string if no function should be called, making it impossible to invoke the `receive` function
* during an upgrade.
*/
string public constant UPGRADE_INTERFACE_VERSION = "5.0.0";
/**
* @dev Sets the initial owner who can perform upgrades.
*/
constructor(address initialOwner) Ownable(initialOwner) {}
/**
* @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation.
* See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}.
*
* Requirements:
*
* - This contract must be the admin of `proxy`.
* - If `data` is empty, `msg.value` must be zero.
*/
function upgradeAndCall(
ITransparentUpgradeableProxy proxy,
address implementation,
bytes memory data
) public payable virtual onlyOwner {
proxy.upgradeToAndCall{value: msg.value}(implementation, data);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "initialOwner",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "UPGRADE_INTERFACE_VERSION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "upgradeAndCall",
"type": "function",
"inputs": [
{
"name": "proxy",
"type": "address",
"internalType": "contract ITransparentUpgradeableProxy"
},
{
"name": "implementation",
"type": "address",
"internalType": "address"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "payable"
}
]0x608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d14610090578063ad3cb1cc146100a3578063f2fde38b146100e0575b5f5ffd5b348015610058575f5ffd5b506100616100ff565b005b34801561006e575f5ffd5b505f546001600160a01b0316604051610087919061023e565b60405180910390f35b61006161009e36600461027a565b610112565b3480156100ae575f5ffd5b506100d3604051806040016040528060058152602001640352e302e360dc1b81525081565b604051610087919061037f565b3480156100eb575f5ffd5b506100616100fa366004610398565b61017d565b6101076101c3565b6101105f6101ef565b565b61011a6101c3565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014a90869086906004016103b3565b5f604051808303818588803b158015610161575f5ffd5b505af1158015610173573d5f5f3e3d5ffd5b5050505050505050565b6101856101c3565b6001600160a01b0381166101b7575f604051631e4fbdf760e01b81526004016101ae919061023e565b60405180910390fd5b6101c0816101ef565b50565b5f546001600160a01b03163314610110573360405163118cdaa760e01b81526004016101ae919061023e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146101c0575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f5f6060848603121561028c575f5ffd5b833561029781610252565b925060208401356102a781610252565b9150604084013567ffffffffffffffff8111156102c2575f5ffd5b8401601f810186136102d2575f5ffd5b803567ffffffffffffffff8111156102ec576102ec610266565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561031b5761031b610266565b604052818152828201602001881015610332575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6103916020830184610351565b9392505050565b5f602082840312156103a8575f5ffd5b813561039181610252565b6001600160a01b03831681526040602082018190525f906103d690830184610351565b94935050505056fea164736f6c6343000823000a
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x4a8295…1cf768 | 31 days agoFri, 17 Jul 2026 23:02:39 UTC | 0x8be007…57e0 | [0] 0x000000000000…a688ad40 [1] 0x000000000000…e7fcd4a6 |
| 0x2b6147…64aa31 | 33 days agoWed, 15 Jul 2026 11:29:44 UTC | 0x8be007…57e0 | [0] 0x000000000000…00000000 [1] 0x000000000000…a688ad40 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x4a8295…1cf768 | transferOwnership | 12,498,781 | 31 days agoFri, 17 Jul 2026 23:02:39 UTC | 0x5f37…ad40 | IN | ProxyAdmin | $0.000 ETH | 0.00000216 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 10,357,734 | 33 days agoWed, 15 Jul 2026 11:29:44 UTC | 0x2b6147…64aa31 | CREATE | 0x60a06040 | 0x35a3…7024 | IN | 0xdbac…76ef | 0 ETH |