Repository navigation
fix: multisig admin path, whitelist validation, lazy locale loading, and server refresh on language switch - #942
Merged
AbelOsaretin merged 4 commits intoOct 24, 2026
Conversation
- Replace static imports of all five message catalogs with dynamic import() so only the active locale ships in the client bundle (Heliobond#889) - Call router.refresh() after setting the locale cookie so server-rendered output and <html lang/dir> update without a full page reload (Heliobond#890) - Add tests covering locale switching, RTL direction, and lazy loading
…iobond#689) - Replace is_multisig with get_multisig_admin for multisig detection - Use fund_project_with_approvals instead of fund_project_approved - Pass approvals vector to *_with_approvals and *_approved methods - Remove set_whitelist_approved branch (no multisig variant exists) - Disable fund/score forms on multisig deployments until multi-signer flow ships - Fix toast approval count to reflect actual signatures collected - Add unit tests for multisig argument building
…ond#691) - Replace fixture addresses with valid Stellar public keys - Add isValidCreatorAddress using StrKey.isValidEd25519PublicKey - Add 'Add creator' form with address validation and inline errors - Gate whitelist actions by whitelister role - Add tests for address validation
|
@PrimeFactor-Dev is attempting to deploy a commit to the David Dada's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Thanks for the PR! A maintainer will take a look shortly. ✨ |
|
Thanks for the PR! A maintainer will take a look shortly. ✨ |
dadadave80
added a commit
that referenced
this pull request
Oct 26, 2026
Typecheck: duplicate useTranslations import, unused CATALOGS and catalog imports, possibly-null regex match, rich-text age placeholder, stale submitSetWhitelist argument. Lint: static StrKey import instead of require. Format: run Prettier over the 20 files merged unformatted. Tests: give the shared render helper a no-op router so LocaleProvider mounts (226 failures), add the CLDR many category to fr/es/pt plurals, keep the dollar sign in the withdraw cap message, and update expectations to the translated error codes. Use the existing pendingDepositAge key for the pending-deposit age and refresh the unused-keys baseline.
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.
Closes #689, Closes #691, Closes #889, Closes #890
Type of Change
Summary
Four admin-console and i18n bugs are fixed in one PR. The multisig admin path called non-existent contract methods and never passed approvals (#689); whitelist actions sent placeholder addresses and couldn't add creators (#691); all five locale catalogs were statically bundled into every client chunk (#889); and switching language only patched client state without refreshing server-rendered output (#890).
Changes
#689 — Multisig admin path
isMultisigDeploymentnow readsget_multisig_admin(threshold > 0) instead of the non-existentis_multisigfund_project_with_approvalsreplacesfund_project_approved;update_impact_score_approvedandfund_project_with_approvalsnow pass anapprovalsvectorset_whitelist_approvedbranch removed (no multisig variant exists in the contract)#691 — Creator whitelist
GA7QY...solar)isValidCreatorAddressvalidates viaStrKey.isValidEd25519PublicKey#889 — Lazy locale catalogs
import()on locale switchinitialMessagesships in the first-load client bundle#890 — Server refresh on language switch
router.refresh()called after setting the locale cookie so server-rendered text,<html lang/dir>, and metadata update without a full page reloadTesting
src/i18n/LocaleProvider.test.tsx— 4 tests: initial render, RTL direction on Arabic switch,router.refresh()call, lazy catalog loadingsrc/wallet/admin.test.ts— 8 tests: arg building for both multisig and non-multisig paths (fund + scores)src/screens/admin/utils.test.ts— 19 tests: address validation (valid keys, invalid formats, whitespace trimming)All 31 tests pass.
Tradeoffs
WhitelistSetevents is out of scope.Out of scope
WhitelistSeteventswindow.confirmreplacement for revoke confirmation