hiero-ledger / hiero-ledger/hiero-consensus-node

CLPR-6.1: ClprService Proxy, Access Control, and Deployment Scaffold

Open
#24,544 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

## Story CLPR-6.1: ClprService Proxy, Access Control, and Deployment Scaffold

**Parent Epic:** CLPR-6: Ethereum On-Chain Service
**Repo:** TBD

### Objective

Deploy the EIP-1967 transparent proxy infrastructure with role-based access control and upgrade scripts.

### Acceptance Criteria

- **AC-1:** `ClprServiceProxy` (EIP-1967) delegating to `ClprService` implementation.
- **AC-2:** `ProxyAdmin` owned by `TimelockController` (48+ hour delay for mainnet).
- **AC-3:** `DEFAULT_ADMIN_ROLE` grants/revokes roles. `ADMIN_ROLE` gates config and governance.
- **AC-4:** `setClprEnabled(bool)` gated by ADMIN_ROLE. When disabled, non-admin functions revert.
- **AC-5:** Deployment script: proxy, implementation, ProxyAdmin, TimelockController, role config.
- **AC-6:** Upgrade script: new implementation via TimelockController.
- **AC-7:** Storage layout documented (no proxy slot collisions).
- **AC-8:** Foundry tests: deployment, upgrade, role enforcement, enable/disable.

### Dependencies

- OpenZeppelin Contracts

### Risk

**Low** — Well-established patterns. Storage layout discipline critical for upgrades.

Contributor guide

Open the contributing guide

Research direction

Start by locating the Solidity contract and Foundry project entry points for ClprService, then review the OpenZeppelin proxy, access-control, and timelock patterns. Done means the proxy, role configuration, deployment and upgrade scripts, storage-layout documentation, and Foundry tests satisfy acceptance criteria AC-1 through AC-8.

Written by the indexing model from the issue text.

Assessment

Tech stack
solidity
Domain
authorization, blockchain, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.