Skip to content

Commit 307c03e

Browse files
author
Bot
committed
docs: add contracts integration progress document
1 parent 0bcd352 commit 307c03e

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

contracts/PROGRESS.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Smart Contracts Integration Progress
2+
3+
This document tracks the milestones, troubleshooting steps, and deployments achieved within the Soroban smart contract ecosystem.
4+
5+
## 🚀 Milestones Achieved
6+
7+
### 1. Compilation Troubleshooting
8+
- **Symbol Clash Mitigation**: The main workspace `contracts/src/` folder contains 70+ educational templates. Because these templates are intentionally incomplete and reuse identical initialization functions (`pub fn init`), they cause severe namespace clashes and Rust compiler errors when built simultaneously.
9+
- **Contract Isolation**: To bypass the educational template errors, we successfully isolated the primary logic contracts by selectively modifying `src/lib.rs` and directly compiling the standalone workspace member crates.
10+
11+
### 2. Bug Fixes
12+
- **`commit_reveal_rng` Mismatch**: Resolved a critical type mismatch compiler error preventing the Random Number Generator contract from compiling.
13+
- **Issue**: The contract was attempting to compare the raw `Hash<32>` generated by the newer `soroban-sdk` `crypto().sha256()` method directly against a `BytesN<32>` commitment.
14+
- **Fix**: We successfully patched `commit_reveal_rng/src/lib.rs` to explicitly convert all `Hash<32>` instances into `BytesN<32>` using the `.into()` trait before performing equality assertions or bitwise XOR operations.
15+
16+
### 3. Testnet Deployments
17+
We successfully built and deployed all 7 of the functional, standalone workspace contracts to the **Stellar Testnet** using the local `alice` identity.
18+
19+
| Contract Name | Contract ID | Description |
20+
|---|---|---|
21+
| **payment_scheduler** | `CBLEQCZ3ORYPD2WTUC5UEMSO4TDJXNZ3KG44AFLB2K7R5J7J3QHNXLUE` | Token payment scheduler for automated recurring transfers. |
22+
| **commit_reveal_rng** | `CCMAB52GY3WPXWHS5QI42URMRTLAIOVW7CLLOIBGC6R2YDEEBPIO6O65` | Secure random number generator (Fixed `Hash` vs `BytesN` type mismatch before deployment). |
23+
| **payment_streaming** | `CAOM7BXAMWNCL6ZMGYDC3XZSTKS5GQK5Q5TUAMO7CUTNHF4CF4ZK4EXE` | Enables continuous token streams for payroll or vesting. |
24+
| **quadratic_funding** | `CA2XT5OG4VUMHG773OQ5LHV57ZW3HZZNNZNBGOOOKMEYNXWXMNHXLWLJ` | Democratic matching pool for donations. |
25+
| **smart_vault** | `CCKEFMHSHA2BWHSXOBPWUBXSF3FYXZDTUVTK66WTQCS3WCNCPOW5AK6T` | Asset-holding vault with strict withdrawal conditions. |
26+
| **proxy** | `CCYSHW6C3B5RMKCUMO65P56RNPZVRBMPHDNBRJHZZV36CP67I7QCU3IS` | Transparent proxy for contract upgradeability. |
27+
| **implementation_v1** | `CBJVEORDIVEB2IDVEBXXD7LN3SSULJ3U5RLTPP4VQTIUNFUNBTYT5GOI` | Example V1 upgradeable logic contract. |
28+
| **implementation_v2** | `CAYZUYBRWIP2RJRKRM4LL7S3R2NRCUUS5HA64CVIK2G44ZQ6P46QYG3I` | Example V2 upgraded logic contract. |
29+
30+
*(For detailed architectural overviews of each of these contracts, refer to `contracts/deployments.md`).*
31+
32+
## ⏭️ Next Steps
33+
1. **Frontend Integration**: Export these Contract IDs into the frontend's environment variables (`.env.local`) and map them to their corresponding `soroban-client` invocation hooks.
34+
2. **Educational Repair**: Incrementally audit and resolve the missing dependencies and Rust compiler errors residing in the remaining 70+ tutorial modules in `src/*.rs`.

0 commit comments

Comments
 (0)