PoolConfigurator Proxy
Upgraded(address implementation) Emitted whenever the proxy upgrades to a new implementation contract.
🔹 Fallback
fallback() payable Forwards calls (using
delegatecall) to the current implementation if no function in the proxy matches.
🔹 Functions
admin() → address Returns the proxy’s admin address. ⚠️ Only callable by the admin (others are forwarded to implementation).
implementation() → address Returns the current implementation address of the proxy. ⚠️ Only callable by the admin.
initialize(address _logic, bytes _data) (payable) Sets the initial implementation (
_logic) and optionally calls an initialization function using_data. Used at deployment time to bootstrap the proxied contract.upgradeTo(address newImplementation) Upgrades the proxy to a new implementation contract. Restricted to the admin.
upgradeToAndCall(address newImplementation, bytes data) (payable) Upgrades the proxy to a new implementation and immediately calls a function on it (encoded in
data). Useful for initializing state variables in the new logic.
[
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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": [],
"name": "implementation",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_logic",
"type": "address"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "payable",
"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"
}
]
Last updated
Was this helpful?