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

CLPR-6: Ethereum On-Chain Service — ClprService smart contract

Open
#24,543 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

## Epic CLPR-6: Ethereum On-Chain Service

**Parent:** hiero-ledger/roadmap#48
**Repo:** TBD (likely hiero-ledger/hiero-ethereum-contracts or dedicated repo)

### Objective

Implement the `ClprService` Solidity smart contract on Ethereum — the on-chain CLPR Service. All three protocol layers (network, messaging, payment) in a single upgradeable contract behind an EIP-1967 proxy.

### Background

Mirrors the Hiero CLPR Service in Solidity. Uses EIP-1967 transparent proxy (ProxyAdmin + TimelockController), OpenZeppelin AccessControl (ADMIN_ROLE, DEFAULT_ADMIN_ROLE), and stores all state in contract storage. Solidity ^0.8.24, Cancun-era EVM. Unlike Hiero, Ethereum has permissionless endpoint registration with bond requirements.

### Expected Functionality

1. **Proxy and access control** — EIP-1967 proxy, ProxyAdmin + TimelockController, role-based permissions.
2. **Network layer** — Configuration, connection lifecycle (ACTIVE/PAUSED/CLOSED/HALTED), verifier immutability, endpoint roster.
3. **Messaging layer** — `sendMessage` (enqueue, running hash, queue depth), `submitBundle` (verify, dispatch), `redactMessage`.
4. **Payment layer** — Connectors (register, top-up, withdraw, deregister), slashing, endpoint bonds.

### Constraints

- Solidity ^0.8.24, 24KB contract limit (libraries if needed)
- Checks-effects-interactions + reentrancy guards
- Connection status: ACTIVE, PAUSED, CLOSED, HALTED (matching cross-platform spec)
- Verifier immutable per Connection

### Stories

- CLPR-6.1: Proxy, access control, deployment scaffold
- CLPR-6.2: Network layer functions
- CLPR-6.3: Messaging layer functions
- CLPR-6.4: Payment layer functions (connectors, slashing, endpoint bonds)

### Dependencies

- None (can start immediately, parallel with Hiero Track)

### Spec References

- [Ethereum Implementation Spec](clpr-ethereum-impl-spec.md)

Contributor guide

Open the contributing guide

Research direction

Start by locating and reading clpr-ethereum-impl-spec.md, then review the CLPR-6.1 through CLPR-6.4 stories to define the contract scope. Done requires an implemented ClprService covering the proxy, access control, network, messaging, and payment layers under the stated Solidity, EVM, security, and contract-size constraints.

Written by the indexing model from the issue text.

Assessment

Tech stack
solidity
Domain
blockchain
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.