hiero-ledger / hiero-ledger/hiero-consensus-node
CLPR-6: Ethereum On-Chain Service — ClprService smart contract
- 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
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