Add multi-currency ledger support for GHS and NGN#3
Closed
AugistineCreates wants to merge 197 commits into
Closed
Conversation
) Integrate Apollo Sandbox Explorer within the documentation portal so developers can browse and test the Mobile Money GraphQL schema directly from the docs site. Changes: - Add GraphQLPlayground component using Apollo Sandbox CDN embed - Add /graphql page route with BrowserOnly lazy loading - Add navbar and footer links to GraphQL Playground - Add homepage button linking to the playground - Add responsive CSS with config bar, loading state, and full-height embed - Pre-populate editor with example queries matching the schema (me, transactions, deposit, dispute)
sublime247#1321) - Implement soroban-gas-bench.js as self-contained Node.js CLI tool - Parse contract source code to identify Soroban operations (storage, token, crypto, auth) and compute gas estimates using Protocol 20 cost model constants - Support WASM binary analysis when pre-built binaries are available - Add Rust benchmark (benchmarks/src/main.rs) for use when cargo is installed, using soroban_sdk testutils for precise measurements - Output clean gas figures as formatted tables, JSON, and Markdown - Generate soroban-gas-report.json and soroban-gas-report.md in benchmarks/results/ - Update README.md with comprehensive CLI documentation Escrow contract: 473,800 total CPU instructions across 6 methods HTLC contract: 254,050 total CPU instructions across 4 methods
git commit -m Closes
…n, exportUserData
…ithdrawal middleware
- Add Pino logger imports to auth middleware - Replace console.error with structured logger in auth.ts - Replace console.log/error with structured logger in reconciler service - Add logger to reconciliation script with structured JSON output - All logs now include service name, environment, and ISO timestamps - Sensitive data (API keys, auth headers) automatically redacted by Pino - Logs structured as JSON for easy parsing by log aggregators Fixes: sublime247#1332
- Create accounting retry queue with exponential backoff (60s-10 attempts) - Add accounting retry worker with structured logging - Route failed sync operations to retry queue for manual/scheduled retry - Replace console logs with structured Pino logging in syncWorker - Add event listeners for job completion and failure monitoring - Implement distinction between transient and permanent errors - Transient errors (rate limit, network) auto-retry with backoff - Permanent errors moved to retry queue after exhausting primary attempts - Export retry queue functions and worker in queue index - Update queue shutdown to include retry queue and worker cleanup - Add logger mocking to accounting sync tests - Update test assertions to use mocked logger instead of console spies Key features: - Failed updates retry correctly with exponential backoff - Operators can manually retry operations via retryAccountingOperation() - Queue stats and job inspection available via getAccountingRetryQueueStats() - Structured logging for debugging and monitoring - Conservative 2-concurrency limit to respect API rate limits Fixes sublime247#1312
Add KmsFileSigner to hsmService.ts that signs SHA-256 file digests using AWS KMS asymmetric keys, with automatic signing on upload via s3Upload.ts and signature verification on read paths. Closes sublime247#1286
…0 webhooks - Add OrangeMadagascarProvider with OAuth 2.0 client credentials grant - Implement resilient token caching with automatic pre-fetch daemon - Create callback signature verification middleware (HMAC-SHA256) - Add callback routes with Zod schema validation for single/batch payloads - Wire provider into lazy-loading switch, health checks, and config - Add ORANGE_MADAGASCAR enum, provider limits, and appConfig section Closes sublime247#1252
feat(sep31): implement dynamic fee bump strategy using Horizon base fee
- 17 provider tests: token caching, operations, batch payouts, signature validation - 9 middleware tests: secret config, signature verification, anomaly logging - 8 route tests: valid/invalid callbacks, Zod schema validation, batch callbacks
- Strip optional 'sha256=' prefix from incoming signature headers before timing-safe comparison. - Utilize raw request body when available for HMAC verification.
- Add .markdownlint.json config with sensible defaults - Install markdownlint-cli as dev dependency - Add lint:md / lint:md:fix npm scripts - Create GitHub Actions workflow to lint changed .md files on PRs - Update lint-staged to run markdownlint --fix on staged .md files Closes sublime247#1028
feat(cli): add telemetry config toggle to momo-cli setup wizard
…l-error-matrix feat(providers): map Vodacom and Tigo transaction codes to global error matrix
…ess-worker-bundle-assets-sizes Issue 1048 compress worker bundle assets sizes
…ount Add VIP Fee Discount Tier logic check
…-1292 Pr issue 1292
…t-coverage Feature/syncworker test coverage
…provider feat: add Wave Senegal mobile money provider (sublime247#1256)
…-callback-ingest Tune performance metric of parsing in the pipeline
…d-sanctions-engine Feature/automated sanctions engine
Log Provider Status Changes on Dashboard
…pliance-ivms101 Feature/webhook compliance ivms101
…ity-tax-config fix: password complexity validation (sublime247#1295) and configurable tax rates (sublime247#1311)
…-image-load-times feat: optimize image load times in docs portal using sharp
…list-middleware feat: add IP blacklist middleware and worker-level IP check
[MEDIUM] Automate API Specs Generation Sync during docs builds
…tions-sync-cron feat(aml): implement periodic sanctions list sync cron (sublime247#1293)
…olver-spans sublime247#1015 Add Datadog APM Tracing for GraphQL Resolvers execution
…ache feat: cache network fee variables in StellarService
…x-config Feature/dynamic tax config
…le-money-updates Feature/mobile money updates
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds multi-currency ledger support, enabling deposits in GHS and NGN with proper conversion to the base currency (USD). It enriches ledger entries with original currency and conversion rate metadata, ensuring accurate accounting across supported African fiat currencies.