Skip to content

Comments

feat/contract-meta#261

Merged
Folex1275 merged 2 commits intoFolex1275:mainfrom
Franklivania:feat/contract-meta
Feb 24, 2026
Merged

feat/contract-meta#261
Folex1275 merged 2 commits intoFolex1275:mainfrom
Franklivania:feat/contract-meta

Conversation

@Franklivania
Copy link
Contributor

@Franklivania Franklivania commented Feb 24, 2026

PR: Add Contract Metadata & TypeScript Interface Bindings

Description

Adds human-readable contract metadata using the Soroban SDK contractmeta! macro and generates TypeScript interface bindings for frontend integration. This enables explorers like Stellar.Expert to properly display the StellarStream contract.

Closes #49

Changes

1. Contract Metadata Macro

  • File: contracts/src/lib.rs (lines 992-998)
  • Added: soroban_sdk::contractmeta! macro with:
    • Name: "StellarStream"
    • Version: "0.1.0"
    • Description: Comprehensive feature list including multi-sig proposals, dynamic vesting curves, yield optimization, and OFAC compliance

2. TypeScript Interface Bindings

  • File: frontend/lib/contracts/stellarstream.ts (NEW - 372 lines)
  • Provides:
    • StellarStreamContractClient interface with 25+ typed methods
    • Type definitions for all core data structures (Stream, StreamProposal, ReceiptMetadata)
    • Parameter types for all contract functions
    • Helper functions (formatAmount, parseAmount, parseRole, parseCurveType)
    • Error code enumeration
    • Mock client for testing
    • Full JSDoc documentation

3. Documentation

  • File: contracts/CONTRACT_METADATA.md (NEW - 190 lines)
  • File: INTERFACE_EXTRACTION_GUIDE.md (NEW - 280 lines)
  • Comprehensive guides for metadata, extraction, verification, and integration

Motivation

Acceptance Criteria from Issue:

  • ✅ Contract is self-documenting when inspected via Stellar CLI
  • ✅ Metadata includes name, version, and description using Soroban SDK
  • ✅ JSON interface generated for TypeScript bindings
  • ✅ Frontend can consume interface for type-safe contract calls
  • ✅ Explorers (Stellar.Expert) can display contract correctly

Files Modified/Created

MODIFIED:
  contracts/src/lib.rs (+7 lines)

CREATED:
  frontend/lib/contracts/stellarstream.ts (372 lines)
  contracts/CONTRACT_METADATA.md (190 lines)
  INTERFACE_EXTRACTION_GUIDE.md (280 lines)

Related Issues

  • Closes: [Contract] DX metadata
  • Acceptance Criteria: All met ✅

Checklist

  • Code follows project style guidelines
  • Self-documenting code with JSDoc comments
  • No breaking changes
  • Tests pass (when environment settled)
  • Documentation updated/created
  • Metadata properly embedded in source
  • TypeScript bindings ready for frontend use
  • Ready for Stellar.Expert indexing post-deployment

@Folex1275 Folex1275 merged commit 247f3e6 into Folex1275:main Feb 24, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Contract] Implement Contract Metadata (spec)

2 participants