fix(sdk-coin-flrp): custody wallets no longer require a password#9121
Merged
ArunBala-Bitgo merged 1 commit intoJun 26, 2026
Merged
Conversation
FLRP (Flare P-Chain) is a TSS-only coin — its statics define CoinFeature.TSS
and CoinFeature.MPCV2 but not CoinFeature.MULTISIG. Custody wallets for FLRP
must therefore be created with multisigType='tss', and signing is handled
server-side with no user key material on the client.
Previously, getDefaultMultisigType() returned 'onchain'. This caused
generateWallet({ type: 'custodial' }) to take the onchain-custodial code path
in wallets.ts (line 548), which creates a wallet object whose multisigType the
platform rejects ("Source FLR P wallet is not MPC (multisigType: onchain)").
Any caller that did pass multisigType:'tss' explicitly would correctly use
generateCustodialMpcWallet (no passphrase), but without a matching default the
omission silently produced a broken wallet.
Fix: return multisigTypes.tss from getDefaultMultisigType(), matching the
behaviour of sdk-coin-flr (FLR C-Chain), which correctly defaults to TSS and
has working custody wallets. With this default, generateWallet({ type:
'custodial' }) for FLRP now routes through generateCustodialMpcWallet, which
creates the wallet server-side and requires no passphrase.
Ticket: CECHO-1451
Session-Id: 7a278a4a-2a01-4004-b7bf-1ec86294141e
Task-Id: f3d71be2-ccd9-4342-a175-d342d5857ebe
f91e58f to
b73b34e
Compare
Contributor
|
@claude please review |
Contributor
|
Claude finished @manojkumar138's task —— View job PR Review: fix(sdk-coin-flrp): custody wallets no longer require a passwordTodo List:
✅ Review SummaryThis PR successfully addresses the FLRP custody wallet issue by changing the default multisig type from 📋 Code AnalysisCore Change (
|
mohd-kashif
approved these changes
Jun 26, 2026
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.
What
Flrp.getDefaultMultisigType()to returnmultisigTypes.tss(wasmultisigTypes.onchain)sdk-coin-flrpbitgomodule verifying that FLRP custodial wallet generation succeeds without a passphraseWhy
CoinFeature.TSSandCoinFeature.MPCV2but notCoinFeature.MULTISIG. The wallet platform also enforces this — it returns"Source FLR P wallet is not MPC (multisigType: onchain)"when an onchain-type FLRP wallet is created.getDefaultMultisigType()returned'onchain', callinggenerateWallet({ type: 'custodial' })for FLRP silently defaulted to the onchain-custodial code path, producing a wallet the platform rejects and which could require a passphrase through unexpected signing paths.'tss'as the default causesgenerateWallet({ type: 'custodial' })to route throughgenerateCustodialMpcWallet, which creates the wallet server-side and requires no passphrase — matching the behaviour ofsdk-coin-flr(FLR C-Chain), which already works correctly.Test plan
sdk-coin-flrpunit tests:361 passing(all green)bitgomodule — Generate TSS wallet tests:52 passing(includes new FLRP test)should create a new FLRP TSS custodial wallet without requiring a passphraseTicket: CECHO-1451