Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
b76a032
fix(#190, #191): Add compile-time test for error code uniqueness
manuelusman73-png Mar 27, 2026
6792bb7
fix(#194): Fix broken corridor ID formatting in fee_service.rs
Dev-Vik-Tor Mar 27, 2026
3ba0535
fix(#195): Implement real Stellar address validation
Dev-Vik-Tor Mar 27, 2026
0b9bfcd
test(#196): Add comprehensive unit tests for AnchorSelector component
Dev-Vik-Tor Mar 27, 2026
1e87420
docs(#197): Implement AnchorSelectorExample.tsx with working example
Dev-Vik-Tor Mar 27, 2026
b262221
feat(#198): Complete production readiness assessment report
Hexstar-labs Mar 27, 2026
9044e6c
feat(#199): Add pagination support to TransactionHistory component
Hexstar-labs Mar 27, 2026
5584da5
feat(#200): Implement idempotency protection for remittance creation
Hexstar-labs Mar 27, 2026
915ba58
feat(#201): Implement off-chain verification proof validation
Hexstar-labs Mar 27, 2026
4c05478
docs: Add comprehensive implementation summary for issues #198-201
Hexstar-labs Mar 27, 2026
1cc38fe
#202: Add CI/CD pipeline for Rust contract (build, test, lint, format)
Lex-Studios Mar 27, 2026
94478e3
#203: Add inline code comments to storage.rs DataKey enum - specify s…
Lex-Studios Mar 27, 2026
c3ffcc2
#204: Fill in empty PRODUCTION_READINESS_REPORT.md with comprehensive…
Lex-Studios Mar 27, 2026
49cea5d
Fix: Add legacy-tests feature flag to test job in CI workflow
Lex-Studios Mar 27, 2026
95e1ea2
Fix: Remove trailing whitespace from Rust source files
Lex-Studios Mar 27, 2026
8fc8967
feat: Implement get_fee_breakdown query function for fee calculations
Mar 27, 2026
7f3f009
feat: Add get_fee_breakdown query function for detailed fee transparency
Mar 27, 2026
82936ad
feat: Add CI workflow for Rust smart contract (cargo test + WASM build)
spartan124 Mar 27, 2026
c0c4a8b
docs: add HASH_SCHEMA_VERSION doc comment and migration guide for has…
Jayydy Mar 27, 2026
3aa4e94
Merge branch 'main' into docs
Jayydy Mar 27, 2026
b8c6b45
withdraw
Emeka000 Mar 27, 2026
cb9de55
feat(kyc): add KYC verification sync service with on-chain integration
Jayydy Mar 27, 2026
47df70d
feat: Add update_treasury admin function for protocol fee destination
Emeka000 Mar 27, 2026
e443639
Merge branch 'main' into doc2
Jayydy Mar 27, 2026
03db0d3
feat: Implement set_fee_corridor and get_fee_corridor contract funct…
Emeka000 Mar 27, 2026
7d339fd
test: Add property-based tests for fee calculation edge cases
GhostStylez Mar 27, 2026
97b8b73
feature:refactor: Consolidate RemittanceStatus and TransferState into…
bitstarkbridge Mar 27, 2026
9729d82
fix(validation): remove validate_address no-op and document rationale
ezedike-evan Mar 27, 2026
1a9fba6
feature:docs: Document the HASH_SCHEMA_VERSION constant and upgrade path
bitstarkbridge Mar 27, 2026
40bbc2b
#229 feat: Add simulate_settlement endpoint to the REST API
Emeka000 Mar 27, 2026
970621f
feature:refactor: Extract duplicated rate-limit logic into a single m…
bitstarkbridge Mar 27, 2026
5d7fad0
feature:Fill in empty PRODUCTION_READINESS_REPORT.md
bitstarkbridge Mar 27, 2026
5984d99
Merge pull request #284 from Xoulomon/fix/190-191-192-193-duplicate-e…
Haroldwonder Mar 27, 2026
3577512
Merge pull request #285 from Dev-Vik-Tor/fix/194-195-196-197-corridor…
Haroldwonder Mar 27, 2026
4442b75
Merge pull request #286 from Hexstar-labs/issues/198-199-200-201
Haroldwonder Mar 27, 2026
3682a98
Merge branch 'main' into 202-203-204-205-ci-cd-docs-cleanup
Haroldwonder Mar 27, 2026
27061de
Merge pull request #287 from Lex-Studios/202-203-204-205-ci-cd-docs-c…
Haroldwonder Mar 27, 2026
124d0fb
Merge branch 'main' into feat/get-fee-breakdown
Haroldwonder Mar 27, 2026
c10953a
Merge pull request #288 from Chrisbankz0/feat/get-fee-breakdown
Haroldwonder Mar 27, 2026
9fdb3ee
Merge pull request #291 from Jayydy/docs
Haroldwonder Mar 27, 2026
6e1c96d
fix: remove no-op validate_address and all call sites
GhostStylez Mar 27, 2026
4f8fa4d
Merge branch 'main' into vile
Haroldwonder Mar 27, 2026
0fc839f
Merge pull request #292 from Emeka000/vile
Haroldwonder Mar 27, 2026
f759819
Merge pull request #293 from Emeka000/rain
Haroldwonder Mar 27, 2026
00b694a
Merge branch 'main' into doc2
Haroldwonder Mar 27, 2026
d005bd1
chore: move stale design files from root to docs/design/
GhostStylez Mar 27, 2026
0b29f63
feat: add SenderRemittances index and get_remittances_by_sender view
essiend03-glitch Mar 27, 2026
0aee482
fix: format_corridor_id now properly includes both from_country and t…
Didi-vi Mar 27, 2026
ce554ae
Merge pull request #295 from GhostStylez/test/property-based-fee-calc…
Haroldwonder Mar 27, 2026
aa8211d
Merge branch 'main' into fix(validation)-remove-validate_address-no-o…
ezedike-evan Mar 27, 2026
a634e29
test: add property-based invariant tests with proptest
GhostStylez Mar 27, 2026
85ae661
chore: add AnchorSelectorExample.tsx implementation (#220)
Ejirowebfi Mar 27, 2026
55c038c
Merge branch 'main' into feat/ci-workflow-rust-smart-contracts
Haroldwonder Mar 27, 2026
ef1489d
Merge pull request #290 from spartan124/feat/ci-workflow-rust-smart-c…
Haroldwonder Mar 27, 2026
cc2c293
Merge pull request #294 from Jayydy/doc2
Haroldwonder Mar 27, 2026
997ca95
Merge branch 'main' into SwiftRemit232
Haroldwonder Mar 27, 2026
ae9b3c8
Merge pull request #296 from bitstarkbridge/SwiftRemit232
Haroldwonder Mar 27, 2026
8daadb1
Merge pull request #297 from Emeka000/snaps
Haroldwonder Mar 27, 2026
596e341
feat: implement export_migration_snapshot and import_migration_batch
daree-dev Mar 27, 2026
5fe0770
Merge branch 'main' into SwiftRemit217
Haroldwonder Mar 27, 2026
a1605e3
Merge branch 'main' into fix(validation)-remove-validate_address-no-o…
Haroldwonder Mar 27, 2026
909c26a
Merge pull request #299 from ezedike-evan/fix(validation)-remove-vali…
Haroldwonder Mar 27, 2026
f44c87f
Merge pull request #298 from bitstarkbridge/SwiftRemit217
Haroldwonder Mar 27, 2026
7de24f0
fix: resolve duplicate enum discriminants in ContractError and update…
Ejirowebfi Mar 27, 2026
2357621
fix: resolve CI failures across frontend, api, and backend packages
daree-dev Mar 27, 2026
1ce7647
Merge branch 'main' into cow
daree-dev Mar 27, 2026
e04bc28
feat: implement idempotency key support for create_remittance to prev…
Ejirowebfi Mar 27, 2026
8e6140a
Merge branch 'main' into bigint
Haroldwonder Mar 27, 2026
3db7e76
Merge pull request #300 from Emeka000/bigint
Haroldwonder Mar 27, 2026
f2d2dbb
test(frontend): add SendMoneyFlow tests and fix CI-blocking issues
daree-dev Mar 27, 2026
0a997bb
docs: Add JSDoc comments to examples/config.js exported functions
mrRager-0 Mar 27, 2026
c60f0d7
docs: Add JSDoc comments to examples/config.js exported functions
mrRager-0 Mar 27, 2026
e86ef46
chore: add .env.example validation script to CI (#207)
tali-creator Mar 27, 2026
19b8f57
Merge branch 'main' into SwiftRemit231
Haroldwonder Mar 27, 2026
9e8a6af
Merge pull request #301 from bitstarkbridge/SwiftRemit231
Haroldwonder Mar 27, 2026
8e49824
Merge pull request #302 from bitstarkbridge/SwiftRemit213
Haroldwonder Mar 27, 2026
561c372
Merge branch 'main' into fix/remove-noop-validate-address
Haroldwonder Mar 27, 2026
ac9e438
Merge pull request #304 from GhostStylez/fix/remove-noop-validate-add…
Haroldwonder Mar 27, 2026
4fcd701
Merge pull request #305 from GhostStylez/chore/move-design-files-to-docs
Haroldwonder Mar 27, 2026
13900bc
Merge branch 'main' into feat/get-remittances-by-sender
Haroldwonder Mar 27, 2026
fd9f080
Merge pull request #306 from essiend03-glitch/feat/get-remittances-by…
Haroldwonder Mar 27, 2026
4ef3314
Merge pull request #307 from Didi-vi/format_corridor
Haroldwonder Mar 27, 2026
baf887f
Merge branch 'main' into feat/property-based-testing
Haroldwonder Mar 27, 2026
c28d6f2
test(backend): add e2e integration tests for remittance lifecycle
daree-dev Mar 27, 2026
de13862
docs: add inline doc comments to DataKey enum in storage.rs (#212)
tali-creator Mar 27, 2026
faaf478
feat: add AnchorSelector mock example for standalone/Storybook rendering
essiend03-glitch Mar 27, 2026
22afc34
Merge branch 'main' into queen
daree-dev Mar 27, 2026
c620c43
Merge pull request #308 from GhostStylez/feat/property-based-testing
Haroldwonder Mar 27, 2026
c0cb7cf
Merge pull request #309 from Ejirowebfi/feat/issue-220-anchor-selecto…
Haroldwonder Mar 27, 2026
34eb187
Merge branch 'main' into goat
Haroldwonder Mar 27, 2026
a5934b3
Merge pull request #310 from daree-dev/goat
Haroldwonder Mar 27, 2026
4cb0e4a
Merge pull request #311 from Ejirowebfi/fix/issue-222-duplicate-error…
Haroldwonder Mar 27, 2026
4ba0663
Merge branch 'main' into cow
Haroldwonder Mar 27, 2026
e58446a
Merge pull request #312 from daree-dev/cow
Haroldwonder Mar 27, 2026
4e17631
Merge branch 'main' into feature/issue-228-idempotency-protection
Haroldwonder Mar 27, 2026
35c15bf
Merge pull request #313 from Ejirowebfi/feature/issue-228-idempotency…
Haroldwonder Mar 27, 2026
d063a92
Merge branch 'main' into dog
Haroldwonder Mar 27, 2026
30f536f
Merge pull request #314 from daree-dev/dog
Haroldwonder Mar 27, 2026
7800be9
Merge pull request #315 from mrRager-0/docs
Haroldwonder Mar 27, 2026
70878d6
Merge pull request #316 from tali-creator/chore/207-env-example-valid…
Haroldwonder Mar 27, 2026
30a3f55
Merge branch 'main' into queen
Haroldwonder Mar 27, 2026
3bc62de
Merge pull request #317 from daree-dev/queen
Haroldwonder Mar 27, 2026
f6306c5
Merge pull request #318 from tali-creator/docs/212-datakey-doc-comments
Haroldwonder Mar 27, 2026
d2a4404
Merge branch 'main' into feat/anchor-selector-example
Haroldwonder Mar 27, 2026
5c61ce0
Merge pull request #319 from essiend03-glitch/feat/anchor-selector-ex…
Haroldwonder Mar 27, 2026
951f8a5
fix: remove debug-log from default features
Jonniie Mar 27, 2026
8908f84
Merge pull request #320 from Jonniie/fix/debug-log-default-feature
Haroldwonder Mar 27, 2026
ba8899b
feat: add admin blacklist management functions
Haroldwonder Mar 27, 2026
1aec349
Merge branch 'main' into feat/admin-blacklist-functions-238
dreamgene Mar 27, 2026
2a7a4c5
fix: reconcile remittance state machine with documentation
Haroldwonder Mar 27, 2026
394f5b8
Merge branch 'main' into fix/remittance-state-machine-docs-225
dreamgene Mar 27, 2026
266dd40
feat: add admin pause and unpause functions
Haroldwonder Mar 27, 2026
94f4768
Merge branch 'main' into feat/admin-pause-unpause-237
dreamgene Mar 27, 2026
525acde
feat: replace mock anchor data with database-backed storage
Haroldwonder Mar 28, 2026
c0576f7
Merge branch 'main' into feat/db-backed-anchors-230
dreamgene Mar 28, 2026
e2d4154
feat: update_check_in_interval Function
GoSTEAN Mar 28, 2026
74e1f5a
Merge pull request #321 from dreamgene/feat/admin-blacklist-functions…
Haroldwonder Mar 28, 2026
e5264a8
Merge pull request #322 from dreamgene/fix/remittance-state-machine-d…
Haroldwonder Mar 28, 2026
e0afb40
Merge branch 'main' into feat/admin-pause-unpause-237
Haroldwonder Mar 28, 2026
6b672c4
Merge pull request #323 from dreamgene/feat/admin-pause-unpause-237
Haroldwonder Mar 28, 2026
d71c5d0
Merge pull request #324 from dreamgene/feat/db-backed-anchors-230
Haroldwonder Mar 28, 2026
09ccc8b
Merge branch 'main' into new
Haroldwonder Mar 28, 2026
271073c
Merge pull request #325 from GoSTEAN/new
Haroldwonder Mar 28, 2026
17b7364
feat: update_check_in_interval Function
GoSTEAN Mar 28, 2026
e8ce7ca
feat: Add webhook event for remittance_created
Mar 28, 2026
6ecb96d
test: stabilize backend CI checks
Mar 28, 2026
0a81e5f
fix: remove no-op validate_address and document rationale
GhostStylez Mar 28, 2026
b02f056
ci: disable vercel previews for feat branches
Mar 28, 2026
d01ea1f
Merge pull request #326 from ooochoche/new
Haroldwonder Mar 28, 2026
72249d2
Merge pull request #328 from ExcelDsigN-tech/feat/remittance-created-…
Haroldwonder Mar 29, 2026
e364f3f
Merge branch 'main' into fix/validate-address-no-op
Haroldwonder Mar 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
131 changes: 131 additions & 0 deletions .github/workflows/contract-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
name: Rust Smart Contract CI

on:
push:
branches:
- main
paths:
- 'Cargo.toml'
- 'Cargo.lock'
- 'src/**'
- 'rust-toolchain.toml'
- '.github/workflows/contract-ci.yml'
pull_request:
branches:
- main
paths:
- 'Cargo.toml'
- 'Cargo.lock'
- 'src/**'
- 'rust-toolchain.toml'
- '.github/workflows/contract-ci.yml'

env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1

jobs:
test:
name: Test Suite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable

- name: Cache cargo registry
uses: actions/cache@v4
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v4
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo build
uses: actions/cache@v4
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}

- name: Run tests
run: cargo test --verbose
continue-on-error: false

build-wasm:
name: Build WASM Binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: wasm32-unknown-unknown

- name: Cache cargo registry
uses: actions/cache@v4
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v4
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo build
uses: actions/cache@v4
with:
path: target
key: ${{ runner.os }}-cargo-wasm-build-target-${{ hashFiles('**/Cargo.lock') }}

- name: Build WASM (Release)
run: cargo build --target wasm32-unknown-unknown --release --verbose

- name: Get WASM binary size
id: wasm-size
run: |
WASM_SIZE=$(stat -f%z "target/wasm32-unknown-unknown/release/swiftremit.wasm" 2>/dev/null || stat -c%s "target/wasm32-unknown-unknown/release/swiftremit.wasm" 2>/dev/null || echo "0")
WASM_SIZE_KB=$(echo "scale=2; $WASM_SIZE / 1024" | bc)
echo "size_bytes=$WASM_SIZE" >> $GITHUB_OUTPUT
echo "size_kb=$WASM_SIZE_KB" >> $GITHUB_OUTPUT

- name: Print WASM binary size
run: |
echo "WASM Binary Size: ${{ steps.wasm-size.outputs.size_kb }} KB (${{ steps.wasm-size.outputs.size_bytes }} bytes)"

- name: Upload WASM summary
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const wasmSize = ${{ steps.wasm-size.outputs.size_bytes }};
const wasmSizeKb = ${{ steps.wasm-size.outputs.size_kb }};

const summary = `## WASM Build Report\n\n| Metric | Value |\n|--------|-------|\n| Binary Size | ${wasmSizeKb} KB |\n| Binary Size (bytes) | ${wasmSize} bytes |`;

core.summary.addRaw(summary);
await core.summary.write();

contract-ci:
name: Contract CI Status
runs-on: ubuntu-latest
needs: [test, build-wasm]
if: always()
steps:
- name: Check CI Status
run: |
if [[ "${{ needs.test.result }}" == "failure" || "${{ needs.build-wasm.result }}" == "failure" ]]; then
echo "❌ Contract CI failed"
exit 1
fi
echo "✅ Contract CI passed"
29 changes: 29 additions & 0 deletions .github/workflows/env-example-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Validate .env.example Files

on:
push:
branches: [main]
paths:
- '**/.env.example'
- 'scripts/validate-env-examples.js'
- 'backend/src/**'
- 'api/src/**'
- 'frontend/src/**'
- 'examples/**/*.js'
pull_request:
branches: [main]

jobs:
validate:
name: Check .env.example sync
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x

- name: Run validation
run: node scripts/validate-env-examples.js
51 changes: 51 additions & 0 deletions .github/workflows/property-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Rust Property Tests

on:
push:
branches: [main, "feat/**", "test/**"]
paths:
- "src/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/property-tests.yml"
pull_request:
branches: [main]
paths:
- "src/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/property-tests.yml"

env:
CARGO_TERM_COLOR: always
# Reduce proptest cases in CI to keep runs fast while still catching regressions
PROPTEST_CASES: 50

jobs:
property-tests:
name: Property-Based Tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown

- name: Cache Cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-

- name: Run property tests (invariants)
run: cargo test test_invariants -- --nocapture

- name: Run all property tests
run: cargo test prop_ -- --nocapture
16 changes: 3 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,12 @@ Cargo.lock
*.wasm
*.optimized.wasm
.soroban/
<<<<<<< HEAD
.kiro/settings/
# scratch/audit workfiles
*.txt

# Environment variables (may contain secrets)
.env
.env.local
examples/.env
examples/.env.local
/node_modules
=======
.env

# Frontend
frontend/node_modules/
frontend/dist/
frontend/.env
>>>>>>> 927b448 (chore: local changes before syncing with main)
backend/node_modules/

.kiro
Loading
Loading