Skip to content

feat: resolve issues #835 #836 #837 #838 - #940

Open
ahmadrabiumustapha wants to merge 1 commit into
AtomicIP:mainfrom
ahmadrabiumustapha:feature/835-836-837-838-multi-currency-rollback-registry-rpc
Open

feat: resolve issues #835 #836 #837 #838#940
ahmadrabiumustapha wants to merge 1 commit into
AtomicIP:mainfrom
ahmadrabiumustapha:feature/835-836-837-838-multi-currency-rollback-registry-rpc

Conversation

@ahmadrabiumustapha

Copy link
Copy Markdown

#835 – multi_currency.rs: add fee-asset consistency policy

  • Add fee_asset field to MultiCurrencyConfig (defaults to XLM)
  • Add FeeAssetValidation enum and validate_fee_asset() method
  • Add FeeCalculation struct and collect_fee() method — fees are always denominated in fee_asset regardless of settlement token
  • Add tests for XLM, USDC, and EURC settlement currencies plus zero-amount and policy-coverage tests

#836 – rollback_tests.rs: multi-currency and cross-contract coverage

  • Add multi-currency rollback tests: USDC-like refund, RolledBack status, EURC after-window rejection, two-currency independence
  • Add cross-contract rollback tests: ip_registry intact after rollback, no funds stuck in contract, IP record stays consistent, IP can be reused immediately after rollback

#837 – registry.rs / architecture.md: document role and relationship

  • Add module-level doc comment to registry.rs explaining it is a local read-only proxy for ip_registry (not a standalone registry)
  • Add 'registry.rs — Local Registry Helper' section to docs/architecture.md with ASCII relationship diagram and table

#838 – handlers.rs: wire commit_ip to Soroban RPC

  • Add api-server/src/soroban_rpc.rs with SorobanRpcClient trait, LiveSorobanRpcClient (reqwest + env vars), MockSorobanRpcClient, and map_rpc_error_to_status() (400 / 404 / 503 / 500)
  • Wire commit_ip handler to SOROBAN_CLIENT Lazy static; remove TODO
  • Add 503 response code to utoipa path docs
  • Register soroban_rpc module in main.rs and lib.rs
  • Add commit_ip integration tests in integration_tests.rs

chore: update .gitignore



AtomicIP#835 – multi_currency.rs: add fee-asset consistency policy
- Add fee_asset field to MultiCurrencyConfig (defaults to XLM)
- Add FeeAssetValidation enum and validate_fee_asset() method
- Add FeeCalculation struct and collect_fee() method — fees are
  always denominated in fee_asset regardless of settlement token
- Add tests for XLM, USDC, and EURC settlement currencies plus
  zero-amount and policy-coverage tests

AtomicIP#836 – rollback_tests.rs: multi-currency and cross-contract coverage
- Add multi-currency rollback tests: USDC-like refund, RolledBack
  status, EURC after-window rejection, two-currency independence
- Add cross-contract rollback tests: ip_registry intact after
  rollback, no funds stuck in contract, IP record stays consistent,
  IP can be reused immediately after rollback

AtomicIP#837 – registry.rs / architecture.md: document role and relationship
- Add module-level doc comment to registry.rs explaining it is a
  local read-only proxy for ip_registry (not a standalone registry)
- Add 'registry.rs — Local Registry Helper' section to
  docs/architecture.md with ASCII relationship diagram and table

AtomicIP#838 – handlers.rs: wire commit_ip to Soroban RPC
- Add api-server/src/soroban_rpc.rs with SorobanRpcClient trait,
  LiveSorobanRpcClient (reqwest + env vars), MockSorobanRpcClient,
  and map_rpc_error_to_status() (400 / 404 / 503 / 500)
- Wire commit_ip handler to SOROBAN_CLIENT Lazy static; remove TODO
- Add 503 response code to utoipa path docs
- Register soroban_rpc module in main.rs and lib.rs
- Add commit_ip integration tests in integration_tests.rs

chore: update .gitignore
- Exclude test_snapshots, __snapshots__, jest coverage, fuzz
  queue/hangs, node_modules, *.wasm, deployment artefacts,
  api-server/Cargo.lock, .stellar/, log/tmp files, vrickish.md
@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@ahmadrabiumustapha Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant