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
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