VaultV2AllocatorProxy
0xd7d73414bd9255f86fb5a170c2571ec602757e81
Verification
Verified
v0.8.28+commit.7893614a
Type
Contract
130 bytes
ABI entries
7
0 read · 0 write
License
none
Contract information
- Address
- 0xd7d73414bd9255f86fb5a170c2571ec602757e81
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.28+commit.7893614a
- Optimization
- Enabled
- Creator
- 0xfeed46c11F…7aE1C03C9a
- Creation tx
- 0xe2a735398b…5538a1fcd8
Token
Not a token
This contract does not expose ERC-20 metadata.
Read contract (0)
No read functions
The ABI is unavailable or exposes no view functions.
Events (1)
Upgraded
ABI
[
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
},
{
"internalType": "address",
"name": "initialAdmin",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "AddressEmptyCode",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "ERC1967InvalidImplementation",
"type": "error"
},
{
"inputs": [],
"name": "ERC1967NonPayable",
"type": "error"
},
{
"inputs": [],
"name": "FailedCall",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
}
]Source code
// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright (c) 2025 Steakhouse Financial
pragma solidity ^0.8.28;
import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
import {VaultV2Allocator} from "./VaultV2Allocator.sol";
/**
* @title VaultV2AllocatorProxy
* @notice ERC1967 Proxy for VaultV2Allocator with UUPS upgradeability
* @dev This contract deploys a proxy pointing to a VaultV2Allocator implementation.
* The implementation uses UUPS pattern, so upgrades are performed via the
* implementation's upgradeToAndCall function (controlled by DEFAULT_ADMIN_ROLE).
*
* Usage:
* 1. Deploy VaultV2Allocator implementation (or reuse existing one)
* 2. Deploy VaultV2AllocatorProxy with implementation address and admin
* 3. Interact with the proxy address as if it were the VaultV2Allocator
*
* Example deployment:
* VaultV2Allocator impl = new VaultV2Allocator();
* VaultV2AllocatorProxy proxy = new VaultV2AllocatorProxy(address(impl), admin);
* VaultV2Allocator allocator = VaultV2Allocator(address(proxy));
*/
contract VaultV2AllocatorProxy is ERC1967Proxy {
/**
* @notice Deploys a new proxy pointing to a VaultV2Allocator implementation.
* @param implementation The address of the VaultV2Allocator implementation contract.
* @param initialAdmin The address to grant DEFAULT_ADMIN_ROLE and OPERATOR_ROLE.
*/
constructor(
address implementation,
address initialAdmin
) ERC1967Proxy(implementation, abi.encodeCall(VaultV2Allocator.initialize, (initialAdmin))) {}
}
Chain explorer1239msChain node80ms