diff --git a/README.md b/README.md index 44ed0087..5eb42669 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ The application is fully deployed and accessible online: - Stellar SDK - Soroban Smart Contracts +- Soroban Rust SDK `26.1.0` for every contract crate and browser-generated Cargo manifest ## 📁 Repository Structure diff --git a/backend/src/services/dependency-update.service.ts b/backend/src/services/dependency-update.service.ts index 29ce530d..7621e025 100644 --- a/backend/src/services/dependency-update.service.ts +++ b/backend/src/services/dependency-update.service.ts @@ -24,8 +24,8 @@ export interface DependencyUpdateResult { // Simulated Soroban/Stellar Rust dependency registry (latest known versions) const REGISTRY: Record = { - 'soroban-sdk': '22.0.7', - 'soroban-auth': '22.0.7', + 'soroban-sdk': '26.1.0', + 'soroban-auth': '26.1.0', 'stellar-xdr': '22.1.0', 'num-integer': '0.1.46', 'num-traits': '0.2.19', @@ -39,9 +39,9 @@ const REGISTRY: Record = { }; const RELEASE_NOTES: Record = { - 'soroban-sdk': 'Protocol 22 support, improved storage APIs, and security patches.', + 'soroban-sdk': 'Protocol 26 support, improved storage APIs, and security patches.', 'stellar-xdr': 'Updated XDR definitions for Stellar Protocol 22.', - 'soroban-auth': 'Improved authorization framework compatibility with Protocol 22.', + 'soroban-auth': 'Improved authorization framework compatibility with Protocol 26.', 'serde': 'Performance improvements and new derive macro features.', }; diff --git a/backend/tests/dependency-update.routes.test.ts b/backend/tests/dependency-update.routes.test.ts index df4e6229..ccccdab1 100644 --- a/backend/tests/dependency-update.routes.test.ts +++ b/backend/tests/dependency-update.routes.test.ts @@ -34,7 +34,7 @@ describe('Dependencies API - POST /dependencies/check', () => { const sdk = res.body.dependencies.find((d: { name: string }) => d.name === 'soroban-sdk'); expect(sdk).toBeDefined(); expect(sdk.isOutdated).toBe(true); - expect(sdk.latestVersion).toBe('22.0.7'); + expect(sdk.latestVersion).toBe('26.1.0'); }); it('rejects missing cargoToml with 400', async () => { @@ -66,7 +66,7 @@ describe('Dependencies API - POST /dependencies/update', () => { expect(res.body.status).toBe('success'); expect(res.body.updated).toContain('soroban-sdk'); expect(typeof res.body.suggestedCargoToml).toBe('string'); - expect(res.body.suggestedCargoToml).toContain('"22.0.7"'); + expect(res.body.suggestedCargoToml).toContain('"26.1.0"'); }); it('reports failure for non-existent dependencies', async () => { diff --git a/backend/tests/dependency-update.service.test.ts b/backend/tests/dependency-update.service.test.ts index c5b073f6..f407a28d 100644 --- a/backend/tests/dependency-update.service.test.ts +++ b/backend/tests/dependency-update.service.test.ts @@ -47,7 +47,7 @@ describe('checkDependencies', () => { const sdk = result.dependencies.find((d) => d.name === 'soroban-sdk'); expect(sdk?.isOutdated).toBe(true); expect(sdk?.currentVersion).toBe('21.7.6'); - expect(sdk?.latestVersion).toBe('22.0.7'); + expect(sdk?.latestVersion).toBe('26.1.0'); expect(sdk?.updateType).toBe('major'); }); @@ -72,7 +72,7 @@ describe('checkDependencies', () => { }); it('returns 0 outdated when versions are already latest', async () => { - const latest = '[dependencies]\nsoroban-sdk = "22.0.7"\n'; + const latest = '[dependencies]\nsoroban-sdk = "26.1.0"\n'; const result = await checkDependencies(latest); expect(result.outdatedCount).toBe(0); }); @@ -83,7 +83,7 @@ describe('updateDependencies', () => { const result = await updateDependencies(SAMPLE_TOML, ['soroban-sdk']); expect(result.updated).toContain('soroban-sdk'); expect(result.failed).not.toContain('soroban-sdk'); - expect(result.suggestedCargoToml).toContain('"22.0.7"'); + expect(result.suggestedCargoToml).toContain('"26.1.0"'); }); it('reports failure for dependency not in registry', async () => { diff --git a/contracts/Cargo.toml b/contracts/Cargo.toml index 403fd85c..2703083c 100644 --- a/contracts/Cargo.toml +++ b/contracts/Cargo.toml @@ -28,4 +28,14 @@ members = [ "testnet_faucet_integration", "zk_proof_verifier", ] -resolver = "2" + +[lib] +crate-type = ["cdylib", "rlib"] + +[dependencies] +soroban-sdk = "26.1.0" + +[dev-dependencies] +soroban-sdk = { version = "26.1.0", features = ["testutils"] } +rand = { version = "0.8", features = ["small_rng"] } +ed25519-dalek = { version = "2", default-features = false, features = ["std", "rand_core"] } diff --git a/contracts/auth_checker/Cargo.toml b/contracts/auth_checker/Cargo.toml index 9e9c606e..81c0f35f 100644 --- a/contracts/auth_checker/Cargo.toml +++ b/contracts/auth_checker/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/automated_testing_suite/Cargo.toml b/contracts/automated_testing_suite/Cargo.toml index c6793ee6..5ef57483 100644 --- a/contracts/automated_testing_suite/Cargo.toml +++ b/contracts/automated_testing_suite/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/cicd_pipeline/Cargo.toml b/contracts/cicd_pipeline/Cargo.toml index f9407e26..d02af1d3 100644 --- a/contracts/cicd_pipeline/Cargo.toml +++ b/contracts/cicd_pipeline/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/commit_reveal_rng/Cargo.toml b/contracts/commit_reveal_rng/Cargo.toml index 099b44fb..20596933 100644 --- a/contracts/commit_reveal_rng/Cargo.toml +++ b/contracts/commit_reveal_rng/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/content_management_system/Cargo.toml b/contracts/content_management_system/Cargo.toml index 880b3b83..c0e2feda 100644 --- a/contracts/content_management_system/Cargo.toml +++ b/contracts/content_management_system/Cargo.toml @@ -7,10 +7,10 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } [profile.release] opt-level = "z" diff --git a/contracts/continuous_bonding_curve/Cargo.toml b/contracts/continuous_bonding_curve/Cargo.toml index a6291cfd..38258d92 100644 --- a/contracts/continuous_bonding_curve/Cargo.toml +++ b/contracts/continuous_bonding_curve/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/course_proxy/Cargo.toml b/contracts/course_proxy/Cargo.toml index f5f187ae..5c55b97f 100644 --- a/contracts/course_proxy/Cargo.toml +++ b/contracts/course_proxy/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/cross_chain_client/Cargo.toml b/contracts/cross_chain_client/Cargo.toml index c971c915..1695a8a2 100644 --- a/contracts/cross_chain_client/Cargo.toml +++ b/contracts/cross_chain_client/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/dao_governance/Cargo.toml b/contracts/dao_governance/Cargo.toml index 2dba7597..9022c5dc 100644 --- a/contracts/dao_governance/Cargo.toml +++ b/contracts/dao_governance/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/fractional_nft_vault/Cargo.toml b/contracts/fractional_nft_vault/Cargo.toml index c06a3624..42e794c8 100644 --- a/contracts/fractional_nft_vault/Cargo.toml +++ b/contracts/fractional_nft_vault/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/freelance-platform/Cargo.toml b/contracts/freelance-platform/Cargo.toml index 6bbdb1f0..d47a9794 100644 --- a/contracts/freelance-platform/Cargo.toml +++ b/contracts/freelance-platform/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/hackathon-team-matching/Cargo.toml b/contracts/hackathon-team-matching/Cargo.toml index 2e7f38f2..56694cc8 100644 --- a/contracts/hackathon-team-matching/Cargo.toml +++ b/contracts/hackathon-team-matching/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/hello_world/Cargo.toml b/contracts/hello_world/Cargo.toml index f13462bf..811f7d98 100644 --- a/contracts/hello_world/Cargo.toml +++ b/contracts/hello_world/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/implementation_v1/Cargo.toml b/contracts/implementation_v1/Cargo.toml index 2a1a2a6a..4abb65fc 100644 --- a/contracts/implementation_v1/Cargo.toml +++ b/contracts/implementation_v1/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/implementation_v2/Cargo.toml b/contracts/implementation_v2/Cargo.toml index 2b10ae38..bd6862cf 100644 --- a/contracts/implementation_v2/Cargo.toml +++ b/contracts/implementation_v2/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/lending_pool/Cargo.toml b/contracts/lending_pool/Cargo.toml index 1bbd37d8..88a65c6a 100644 --- a/contracts/lending_pool/Cargo.toml +++ b/contracts/lending_pool/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/multisig_wallet_timelock/Cargo.toml b/contracts/multisig_wallet_timelock/Cargo.toml index 74e0cde7..efaaf0a2 100644 --- a/contracts/multisig_wallet_timelock/Cargo.toml +++ b/contracts/multisig_wallet_timelock/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/parametric_insurance/Cargo.toml b/contracts/parametric_insurance/Cargo.toml index d59062cc..e2c6090e 100644 --- a/contracts/parametric_insurance/Cargo.toml +++ b/contracts/parametric_insurance/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/payment_gateway/Cargo.toml b/contracts/payment_gateway/Cargo.toml index c43564d7..19ff4444 100644 --- a/contracts/payment_gateway/Cargo.toml +++ b/contracts/payment_gateway/Cargo.toml @@ -7,8 +7,8 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } rand = { version = "0.8", features = ["small_rng"] } diff --git a/contracts/payment_streaming/Cargo.toml b/contracts/payment_streaming/Cargo.toml index 3353ce37..756b287b 100644 --- a/contracts/payment_streaming/Cargo.toml +++ b/contracts/payment_streaming/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/pr_simulation/Cargo.toml b/contracts/pr_simulation/Cargo.toml index d321bb37..ff1c66cb 100644 --- a/contracts/pr_simulation/Cargo.toml +++ b/contracts/pr_simulation/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/proxy/Cargo.toml b/contracts/proxy/Cargo.toml index 3b115a36..a339c3e2 100644 --- a/contracts/proxy/Cargo.toml +++ b/contracts/proxy/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/quadratic_funding/Cargo.toml b/contracts/quadratic_funding/Cargo.toml index 54663c80..7daf094a 100644 --- a/contracts/quadratic_funding/Cargo.toml +++ b/contracts/quadratic_funding/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/smart_vault/Cargo.toml b/contracts/smart_vault/Cargo.toml index 9ae10f94..da155564 100644 --- a/contracts/smart_vault/Cargo.toml +++ b/contracts/smart_vault/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/testnet_faucet_integration/Cargo.toml b/contracts/testnet_faucet_integration/Cargo.toml index 55da86fe..a9f87726 100644 --- a/contracts/testnet_faucet_integration/Cargo.toml +++ b/contracts/testnet_faucet_integration/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/contracts/zk_proof_verifier/Cargo.toml b/contracts/zk_proof_verifier/Cargo.toml index ee2305f9..344a7e02 100644 --- a/contracts/zk_proof_verifier/Cargo.toml +++ b/contracts/zk_proof_verifier/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib", "rlib"] [dependencies] -soroban-sdk = "22.0.0" +soroban-sdk = "26.1.0" [dev-dependencies] -soroban-sdk = { version = "22.0.0", features = ["testutils"] } +soroban-sdk = { version = "26.1.0", features = ["testutils"] } diff --git a/frontend/src/app/playground/page.tsx b/frontend/src/app/playground/page.tsx index abcb7bc3..935d150f 100644 --- a/frontend/src/app/playground/page.tsx +++ b/frontend/src/app/playground/page.tsx @@ -40,7 +40,7 @@ edition = "2021" crate-type = ["cdylib"] [dependencies] -soroban-sdk = "21.7.6" +soroban-sdk = "26.1.0" soroban-auth = "21.0.0" stellar-xdr = "21.2.0" num-integer = "0.1.44" diff --git a/frontend/src/components/playground/__tests__/DependencyUpdatePanel.test.tsx b/frontend/src/components/playground/__tests__/DependencyUpdatePanel.test.tsx index a0e1d214..d49cb2e4 100644 --- a/frontend/src/components/playground/__tests__/DependencyUpdatePanel.test.tsx +++ b/frontend/src/components/playground/__tests__/DependencyUpdatePanel.test.tsx @@ -11,10 +11,10 @@ const CHECK_RESPONSE = { { name: 'soroban-sdk', currentVersion: '21.7.6', - latestVersion: '22.0.7', + latestVersion: '26.1.0', isOutdated: true, updateType: 'major', - releaseNotes: 'Protocol 22 support.', + releaseNotes: 'Protocol 26 support.', }, { name: 'num-integer', @@ -33,7 +33,7 @@ const UPDATE_RESPONSE = { status: 'success', updated: ['soroban-sdk'], failed: [], - suggestedCargoToml: '[dependencies]\nsoroban-sdk = "22.0.7"\n', + suggestedCargoToml: '[dependencies]\nsoroban-sdk = "26.1.0"\n', }; beforeEach(() => { @@ -68,7 +68,7 @@ describe('DependencyUpdatePanel', () => { await waitFor(() => { expect(screen.getByText('soroban-sdk')).toBeDefined(); }); - expect(screen.getByText('22.0.7')).toBeDefined(); + expect(screen.getByText('26.1.0')).toBeDefined(); }); it('shows up-to-date summary count', async () => { @@ -116,7 +116,7 @@ describe('DependencyUpdatePanel', () => { fireEvent.click(screen.getByRole('button', { name: /apply.*update/i })); await waitFor(() => { - expect(screen.getByText(/1 updated/i)).toBeDefined(); + expect(screen.getAllByText((_, element) => element?.textContent === '1 updated').length).toBeGreaterThan(0); }); }); diff --git a/frontend/src/hooks/__tests__/useDependencyUpdates.test.ts b/frontend/src/hooks/__tests__/useDependencyUpdates.test.ts index 00140b44..b1914f32 100644 --- a/frontend/src/hooks/__tests__/useDependencyUpdates.test.ts +++ b/frontend/src/hooks/__tests__/useDependencyUpdates.test.ts @@ -10,10 +10,10 @@ const CHECK_RESPONSE = { { name: 'soroban-sdk', currentVersion: '21.7.6', - latestVersion: '22.0.7', + latestVersion: '26.1.0', isOutdated: true, updateType: 'major', - releaseNotes: 'Protocol 22 support.', + releaseNotes: 'Protocol 26 support.', }, ], outdatedCount: 1, @@ -25,7 +25,7 @@ const UPDATE_RESPONSE = { status: 'success', updated: ['soroban-sdk'], failed: [], - suggestedCargoToml: '[dependencies]\nsoroban-sdk = "22.0.7"\n', + suggestedCargoToml: '[dependencies]\nsoroban-sdk = "26.1.0"\n', }; beforeEach(() => {