bump_storage operator entrypoint wiring (operator-role only)
Labels: api, cli, security, priority/low
Difficulty: Low · Effort: S
Backlog slot: 57
Problem Statement
bump_all_persistent(env, milestone_count) exists in storage.rs but no public entrypoint surfaces it.
Why it Matters
Security note: an "any caller can bump TTL" entrypoint would be a gas/DoS vector on storage rent. The new entrypoint must require an explicit operator role (e.g. OperatorData(Address) keyed set, authorised at initialize time) — not a public function.
Expected Outcome
pub fn bump_storage(env: Env, operator: Address) requires operator.require_auth() AND that operator ∈ DataKey::Operators.
orbitchain-cli bump-storage --id <CID> --operator-secret-key <S> invokes it.
Acceptance Criteria
Files Likely Affected
campaign/src/lib.rs, campaign/src/storage.rs, crates/tools/src/main.rs
Dependencies
Issue #33 (storage layer), Issue #5 (admin multi-sig).
bump_storageoperator entrypoint wiring (operator-role only)Labels:
api,cli,security,priority/lowDifficulty: Low · Effort: S
Backlog slot: 57
Problem Statement
bump_all_persistent(env, milestone_count)exists instorage.rsbut no public entrypoint surfaces it.Why it Matters
Expected Outcome
pub fn bump_storage(env: Env, operator: Address)requiresoperator.require_auth()AND thatoperator ∈ DataKey::Operators.orbitchain-cli bump-storage --id <CID> --operator-secret-key <S>invokes it.Acceptance Criteria
Error::Unauthorized.Files Likely Affected
campaign/src/lib.rs,campaign/src/storage.rs,crates/tools/src/main.rsDependencies
Issue #33 (storage layer), Issue #5 (admin multi-sig).