Skip to content

[29] Add a Soroban deployment script (stellar contract deploy orchestrator) #29

Description

@merlik787-droi

Problem Statement

The workspace has a Makefile in course-registry (stellar contract build) but no workspace-level deployment script. Deploying Orivex end-to-end currently requires manual sequencing with no idempotency:

  1. Deploy reward-pool, initialize.
  2. Deploy badge-nft, initialize.
  3. Deploy course-registry, initialize.
  4. set_reward_pool_address, set_badge_nft_address.
  5. Deploy quest-engine, initialize.
  6. Deploy stake-vault, initialize.
  7. Deploy governance, initialize.
  8. add_approved_spender reward-pool(course-registry) and reward-pool(quest-engine).

There is no automation; operators run these by hand.

Why It Matters

  • Manual deployments are error-prone.
  • Disaster recovery requires exact sequence, which should be in source control.

Expected Outcome

  • A tools/deploy.ts (preferred: TypeScript with Stellar SDK).
  • A tools/deploy.sh shell alternative.
  • A tools/Cargo.toml workspace at the repo root for tooling crates.
  • Idempotent: re-running on a fully-deployed state should not double-initialize.
  • Tested against screento or stellar-cli's local network.

Acceptance Criteria

  • New tools/deploy.sh <network> deploys all six contracts to the target network.
  • tools/status.sh queries each contract and prints a health report.
  • README documents both commands.

Implementation Notes

Files / Modules Affected

  • New tools/ directory at repo root.
  • README.md updated.

Dependencies

None.

Difficulty

Medium.

Estimated Effort

2–3 days.

Suggested Labels

devops, tooling, P2


Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions