Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
07378e9
feat: add frontend auth validation and user-friendly error messages
Henry3029 Jan 23, 2026
faa7c5d
update handleGithubSignIn function
Henry3029 Jan 24, 2026
14803f9
feat: implement robust error handling for unauthorized access
Henry3029 Jan 24, 2026
869dace
feat(billing): add custom error message for kyc verification
Henry3029 Jan 25, 2026
1b6c70c
feat:(billingTab.tsx) add custom error messages and UI feedback for K…
Henry3029 Jan 26, 2026
3ec2fec
Enhancement for gas optimization
DevAyomi Jan 26, 2026
98368c7
Conflicts fixed
DevAyomi Jan 26, 2026
f469174
Merge branch 'master' into feat/gas-optimization
DevAyomi Jan 26, 2026
48b1a69
feat: implement comprehensive event indexing and monitoring
Jan 26, 2026
4bd8e29
feat: Implement comprehensive error recovery and retry mechanisms for…
Georgechisom Jan 27, 2026
1cfcb68
Conflicts fixed
DevAyomi Jan 27, 2026
c960b24
fix: restore clean payout file
Henry3029 Jan 27, 2026
f9d3860
Resolve logic conflicts in bounty_escrow: implement missing methods a…
DevAyomi Jan 27, 2026
28e2d7a
Merge master functions into lib.rs manually
DevAyomi Jan 27, 2026
760ded4
Align test imports with master to resolve conflicts
DevAyomi Jan 27, 2026
d3e863b
feat(payOutTab.tsx): add custom error message
Henry3029 Jan 27, 2026
ea9de09
Conflicts Fixed
DevAyomi Jan 27, 2026
1d8f152
fix conflict and mobile responsiveness
Pee-pheelips Jan 27, 2026
a8a2a0d
Merge branch 'master' into merge-conflict-fix
Pee-pheelips Jan 27, 2026
f805c2c
Merge branch 'master' into feat/error-recovery-retry
Georgechisom Jan 27, 2026
82c5620
feat: add contract interaction SDK and examples
JerryIdoko Jan 27, 2026
70c9b5e
Merge branch 'master' into feat-frontend-fix
Henry3029 Jan 27, 2026
5e30a48
bug: notification fixed
caxtonacollins Jan 27, 2026
1f2515a
chore: remove node_modules and update gitignore
JerryIdoko Jan 27, 2026
452583c
Merge branch 'master' into feat/contract-interaction-sdk
JerryIdoko Jan 27, 2026
371e78f
Merge branch 'master' into merge-conflict-fix
Pee-pheelips Jan 27, 2026
5b4d15e
Merge branch 'master' into feat/error-recovery-retry
Georgechisom Jan 27, 2026
0e27b42
fix: resolve CI/CD errors - clean corrupted code, fix clippy warnings…
Georgechisom Jan 27, 2026
bddb1b4
Merge branch 'master' into notification
caxtonacollins Jan 27, 2026
bd32469
feat: implement pause and emergency stop functionality for escrow con…
Samaro1 Jan 27, 2026
d60cc28
fix: correct error codes and pause functionality in bounty escrow
Samaro1 Jan 28, 2026
0b102df
fix: correct program-escrow test parameter order and warnings
Samaro1 Jan 28, 2026
3d1b257
feat: add wallet edit flow and disable already-configured tokens in a…
Tola-byte Jan 28, 2026
ae22d72
chore(format): apply rustfmt to contracts to satisfy CI formatting check
Samaro1 Jan 28, 2026
179e680
Add pointer cursor to all clickable elements across the website
Luluameh Jan 28, 2026
5f15774
feat: show fallback description text for recommended projects
AbuTuraab Jan 28, 2026
8c0a046
fix: prevent duplicate wallet entries for the same token
Luluameh Jan 28, 2026
95b872d
test: verify governance flow and fix minor bugs
Mosas2000 Jan 28, 2026
a56ea94
Merge pull request #84 from Henry3029/feat-frontend-fix
Jagadeeshftw Jan 28, 2026
490cf5f
Merge pull request #267 from Samaro1/feat/new-pause-emergency-stop
Jagadeeshftw Jan 28, 2026
f3a3fbf
Merge pull request #239 from JerryIdoko/feat/contract-interaction-sdk
Jagadeeshftw Jan 28, 2026
0a67d1e
Merge pull request #258 from caxtonacollins/notification
Jagadeeshftw Jan 28, 2026
9378f37
feat(admin): add project management functionality
Macnelson9 Jan 28, 2026
83a2336
Merge pull request #269 from AbuTuraab/filterrefactor
Jagadeeshftw Jan 28, 2026
9202a61
Merge pull request #268 from Luluameh/feat/cursor-allwebsite
Jagadeeshftw Jan 28, 2026
577be9b
Merge pull request #270 from JoyLight00/feat/duplicate-walletfix
Jagadeeshftw Jan 28, 2026
993481a
Merge pull request #273 from bitstarkbridge/SmartContract
Jagadeeshftw Jan 28, 2026
69042dc
Merge branch 'master' into add/edit-functionality
Tola-byte Jan 28, 2026
7c6f575
Revert "Merge pull request #118 from Samaro1/issue-97"
Jagadeeshftw Jan 27, 2026
dfa1aee
Revert "Merge pull request #84 from Henry3029/feat-frontend-fix"
Jagadeeshftw Jan 28, 2026
f507b54
feat: enhance NotificationsDropdown with mobile navigation props
Jagadeeshftw Jan 28, 2026
7b2680c
Merge pull request #271 from Mosas2000/feat/upgrade-governance-voting
Jagadeeshftw Jan 28, 2026
0b274d5
fix: build errors
Tola-byte Jan 28, 2026
42b27aa
Merge pull request #266 from Tola-byte/add/edit-functionality
Jagadeeshftw Jan 28, 2026
0d75713
Merge branch 'master' into fix/projects-tab-in-admin-page
Macnelson9 Jan 28, 2026
9f18eb3
Save local changes before merging master
MerlinTheWhiz Jan 28, 2026
5de93c2
Save local changes before merging master
MerlinTheWhiz Jan 28, 2026
f275cbd
fix: clean up and restyle GitHub resync toast in settings profile
MerlinTheWhiz Jan 28, 2026
95f5160
Merge branch 'master' into merge-conflict-fix
Pee-pheelips Jan 28, 2026
4307fbf
chore: merge master with pause functionality and resolve conflicts
Georgechisom Jan 28, 2026
b6aba8f
Merge pull request #236 from Pee-pheelips/merge-conflict-fix
Jagadeeshftw Jan 28, 2026
9b84c21
Merge pull request #231 from Georgechisom/feat/error-recovery-retry
Jagadeeshftw Jan 28, 2026
a86b240
Merge pull request #274 from Macnelson9/fix/projects-tab-in-admin-page
Jagadeeshftw Jan 28, 2026
9e47ec7
feat(profile): temporarily remove Contribution Heatmap for build stab…
Jagadeeshftw Jan 28, 2026
18e9e89
Commit before merge with main
MerlinTheWhiz Jan 29, 2026
dfd498d
Merge remote-tracking branch 'origin/master' into fix/profile-resync-…
MerlinTheWhiz Jan 29, 2026
36ff240
Resolving merge conflicts
MerlinTheWhiz Jan 29, 2026
e20d623
Edited the styling of the toast
MerlinTheWhiz Jan 29, 2026
e96d9eb
frontend: implement functional search with real projects, issues, and…
devJaja Jan 29, 2026
5bf7756
Merge remote-tracking branch 'origin/master' into fix/profile-resync-…
MerlinTheWhiz Jan 30, 2026
cc0e907
fix: restructure data page layout - move contributor activity to left…
MerlinTheWhiz Jan 30, 2026
4f6879a
feat: add escrow metadata and tagging for indexing
abdulomeiza Jan 30, 2026
960b31b
Merge branch 'master' into feat/escrow-metadata-tagging
abdulomeiza Jan 30, 2026
a60f158
Feat/event indexing query functions
ryzen-xp Jan 30, 2026
dbb3fed
fixing script errors
abdulomeiza Jan 30, 2026
ffa695b
Merge pull request #322 from ryzen-xp/feat/event-indexing-query-function
Jagadeeshftw Jan 30, 2026
7f590a2
Merge pull request #319 from MerlinTheWhiz/fix/restructure-data-page-…
Jagadeeshftw Jan 30, 2026
2e3417a
error handling2
abdulomeiza Jan 30, 2026
f17cc62
Data page with sidebar and topbar responsiveness
MerlinTheWhiz Jan 30, 2026
9627abd
Merge remote-tracking branch 'origin/master' into fix/restructure-dat…
MerlinTheWhiz Jan 30, 2026
a23e6e3
fix: resolve code formatting issues in CI pipeline
abdulomeiza Jan 30, 2026
01bace4
feat: add pause and emergency stop functionality
Xoulomon Jan 30, 2026
64a3eb3
Merge pull request #325 from MerlinTheWhiz/fix/restructure-data-page-…
Jagadeeshftw Jan 30, 2026
7ee422c
Merge pull request #320 from abdulomeiza/feat/escrow-metadata-tagging
Jagadeeshftw Jan 30, 2026
46a55d0
Merge pull request #328 from Xoulomon/pause-stop
Jagadeeshftw Jan 30, 2026
ef28cdf
fix: build
Tola-byte Jan 30, 2026
228c4c6
Merge upstream/master into docs/mev - resolve conflicts
Tola-byte Jan 30, 2026
4095ac3
Fix program-escrow compilation errors after merge
Tola-byte Jan 30, 2026
65e88d2
Add network selection and risk warning to payment method modal is fixed
Tybravo Jan 30, 2026
13091cb
Merge pull request #331 from Tola-byte/docs/mev
Jagadeeshftw Jan 30, 2026
2b7592a
feat: implement refund deadline extension
Tola-byte Jan 30, 2026
45ee47e
Merge pull request #335 from Tybravo/frontend/add-network-selection-r…
Jagadeeshftw Jan 30, 2026
56c9321
fix: ci for contracts
Tola-byte Jan 30, 2026
9228eaa
fix: contracts-build
Tola-byte Jan 30, 2026
9e5051d
Merge pull request #334 from Tola-byte/feat/refund-deadline-extension
Jagadeeshftw Jan 30, 2026
abf1075
Resolve merge conflicts
DevAyomi Jan 30, 2026
b490a21
Conflict fixed
DevAyomi Jan 30, 2026
a78da62
Merge master into current branch
DevAyomi Jan 30, 2026
f049dfc
Conflicts Fixed
DevAyomi Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 8 additions & 18 deletions .github/workflows/contracts-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,17 @@ jobs:
name: Format, Build, Test, and Stellar Build Check
runs-on: macos-latest

defaults:
run:
working-directory: contracts/bounty_escrow

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
echo "$HOME/.cargo/bin" >> $GITHUB_PATH

- name: Install Rust target for Soroban
run: |
source $HOME/.cargo/env
rustup target add wasm32v1-none

- name: Install Stellar CLI with Homebrew
Expand All @@ -52,41 +47,36 @@ jobs:
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
contracts/**/target/
key: ${{ runner.os }}-cargo-${{ hashFiles('contracts/**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-

- name: Check code formatting
run: |
source $HOME/.cargo/env
cd contracts/escrow
cd contracts/bounty_escrow/contracts/escrow
cargo fmt --check --all

- name: Build contracts
run: |
source $HOME/.cargo/env
cd contracts/escrow
cd contracts/bounty_escrow/contracts/escrow
cargo build --release --target wasm32v1-none

- name: Run tests
run: |
source $HOME/.cargo/env
cd contracts/escrow
cd contracts/bounty_escrow/contracts/escrow
cargo test --verbose --lib

- name: Build Soroban contract
run: |
source $HOME/.cargo/env
cd contracts/escrow
cd contracts/bounty_escrow/contracts/escrow
stellar contract build --verbose

- name: Stellar build check
run: |
source $HOME/.cargo/env
# Verify WASM files were generated
echo "Checking for generated WASM files..."
wasm_file="target/wasm32v1-none/release/bounty_escrow.wasm"
wasm_file="contracts/bounty_escrow/target/wasm32v1-none/release/bounty_escrow.wasm"
if [ ! -f "$wasm_file" ]; then
echo "Error: WASM file not found"
echo "Expected: $wasm_file"
Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/contracts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,10 @@ jobs:
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
echo "$HOME/.cargo/bin" >> $GITHUB_PATH

- name: Install Rust target for Soroban
run: |
source $HOME/.cargo/env
rustup target add wasm32v1-none

- name: Install Stellar CLI with Homebrew
Expand All @@ -34,19 +33,16 @@ jobs:

- name: Build Cargo project
run: |
source $HOME/.cargo/env
cd contracts/bounty_escrow/contracts/escrow
cargo build --verbose

- name: Build Soroban contract
run: |
source $HOME/.cargo/env
cd contracts/bounty_escrow/contracts/escrow
stellar contract build --verbose

- name: Run Cargo tests
run: |
source $HOME/.cargo/env
cd contracts/bounty_escrow/contracts/escrow
cargo test --verbose --lib

6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@

# Elastic Beanstalk Files
.elasticbeanstalk/*
!.elasticbeanstalk/*.cfg.yml
!.elasticbeanstalk/*.global.yml
wasm_hash.txt

# Node modules
node_modules/

# Deployment Scripts - Sensitive Files
# Keep templates, ignore local overrides
contracts/scripts/config/*.env.local
Expand All @@ -18,4 +20,4 @@ contracts/deployments/*.json
# Soroban Local Data
.soroban/
soroban/.soroban/identity/
soroban/.soroban/network/
soroban/.soroban/network/
103 changes: 103 additions & 0 deletions ERROR_FIXES_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Codebase Error Fixes Summary

## Issues Identified and Fixed

### 1. Inconsistent Error Handling
**Problem**: Program-escrow contract used panic-based error handling while bounty-escrow contract used Result-based error handling.

**Fix Applied**:
- Added `Error` enum to program-escrow contract with consistent error codes
- Converted all panic-based functions to use Result-based error handling
- Updated function signatures to return `Result<T, Error>`
- Replaced `panic!()` calls with appropriate `Err(Error::*)` returns
- Updated tests to handle Result-based returns

### 2. Error Enum Standardization
**Problem**: Program-escrow lacked a standardized error enum.

**Fix Applied**:
```rust
#[contracterror]
#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)]
#[repr(u32)]
pub enum Error {
AlreadyInitialized = 1,
NotInitialized = 2,
InsufficientBalance = 3,
Unauthorized = 4,
InvalidAmount = 5,
BatchMismatch = 6,
MetadataTooLarge = 7,
}
```

### 3. Function Signature Updates
**Problem**: Several functions in program-escrow returned direct values instead of Results.

**Functions Fixed**:
- `init_program()` → `Result<ProgramData, Error>`
- `lock_program_funds()` → `Result<ProgramData, Error>`
- `batch_payout()` → `Result<ProgramData, Error>`
- `single_payout()` → `Result<ProgramData, Error>`
- `get_program_info()` → `Result<ProgramData, Error>`
- `get_program_metadata()` → `Result<Option<ProgramMetadata>, Error>`
- `get_program_with_metadata()` → `Result<ProgramWithMetadata, Error>`
- `get_remaining_balance()` → `Result<i128, Error>`
- `set_program_metadata()` → `Result<(), Error>`

### 4. Panic Replacements
**Replaced panic calls with appropriate errors**:
- `panic!("Program already initialized")` → `Err(Error::AlreadyInitialized)`
- `panic!("Amount must be greater than zero")` → `Err(Error::InvalidAmount)`
- `panic!("Program not initialized")` → `Err(Error::NotInitialized)`
- `panic!("Unauthorized: only authorized payout key can trigger payouts")` → `Err(Error::Unauthorized)`
- `panic!("Recipients and amounts vectors must have the same length")` → `Err(Error::BatchMismatch)`
- `panic!("Cannot process empty batch")` → `Err(Error::BatchMismatch)`
- `panic!("Payout amount overflow")` → `Err(Error::InvalidAmount)`
- `panic!("Insufficient balance: requested {}, available {}")` → `Err(Error::InsufficientBalance)`

### 5. Test Updates
**Updated program-escrow tests** to handle Result-based returns:
- Added `.unwrap()` calls where appropriate
- Replaced `std::panic::catch_unwind` with `try_*` client methods
- Updated assertions to check specific error types
- Maintained test coverage for all error conditions

## Benefits of Fixes

### 1. Consistency
- Both contracts now use the same error handling pattern
- Predictable error types across the codebase
- Easier maintenance and debugging

### 2. Better Error Reporting
- Specific error codes instead of generic panics
- More informative error messages
- Better integration with calling applications

### 3. Improved Reliability
- Graceful error handling instead of contract termination
- Better resource cleanup on errors
- More robust contract behavior

### 4. Enhanced Developer Experience
- Clearer function contracts (explicit Result returns)
- Better documentation of possible error conditions
- Easier testing of error scenarios

## Files Modified

1. `contracts/program-escrow/src/lib.rs`
- Added Error enum
- Updated function signatures
- Replaced panic calls with Result returns
- Updated documentation

2. `contracts/program-escrow/tests/metadata_tests.rs`
- Updated test assertions
- Replaced panic-based tests with Result-based tests
- Maintained full test coverage

## Verification

All changes maintain backward compatibility for successful operations while providing better error handling for failure cases. The contracts now follow consistent patterns that make them more robust and easier to integrate with.
Loading
Loading