Skip to content

Commit 5ac37e0

Browse files
committed
wip: feat(clerk-js): enforce required walletName parameter for Solana authentication methods
Signed-off-by: Kenton Duprey <kenton@clerk.dev>
1 parent 5ad0053 commit 5ac37e0

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

packages/clerk-js/src/core/clerk.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import type {
4949
EnvironmentJSON,
5050
EnvironmentJSONSnapshot,
5151
EnvironmentResource,
52-
GenerateSignatureParams,
52+
GenerateSignature,
5353
GoogleOneTapProps,
5454
HandleEmailLinkVerificationParams,
5555
HandleOAuthCallbackParams,
@@ -2257,7 +2257,7 @@ export class Clerk implements ClerkInterface {
22572257
});
22582258
};
22592259

2260-
public authenticateWithSolana = async (props: AuthenticateWithSolanaParams = {}): Promise<void> => {
2260+
public authenticateWithSolana = async (props: AuthenticateWithSolanaParams): Promise<void> => {
22612261
await this.authenticateWithWeb3({
22622262
...props,
22632263
strategy: 'web3_solana_signature',
@@ -2282,7 +2282,7 @@ export class Clerk implements ClerkInterface {
22822282

22832283
const provider = strategy.replace('web3_', '').replace('_signature', '') as Web3Provider;
22842284
const identifier = await getWeb3Identifier({ provider, walletName });
2285-
let generateSignature: (params: GenerateSignatureParams) => Promise<string>;
2285+
let generateSignature: GenerateSignature;
22862286
switch (provider) {
22872287
case 'metamask':
22882288
generateSignature = generateSignatureWithMetamask;

packages/clerk-js/src/core/resources/SignIn.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import type {
1616
EmailLinkConfig,
1717
EmailLinkFactor,
1818
EnterpriseSSOConfig,
19+
GenerateSignature,
1920
PassKeyConfig,
2021
PasskeyFactor,
2122
PhoneCodeConfig,
@@ -468,8 +469,8 @@ export class SignIn extends BaseResource implements SignInResource {
468469
});
469470
};
470471

471-
public authenticateWithSolana = async (params?: AuthenticateWithSolanaParams): Promise<SignInResource> => {
472-
const identifier = await getSolanaIdentifier({ walletName: params?.walletName });
472+
public authenticateWithSolana = async (params: AuthenticateWithSolanaParams): Promise<SignInResource> => {
473+
const identifier = await getSolanaIdentifier(params.walletName);
473474
return this.authenticateWithWeb3({
474475
identifier,
475476
generateSignature: generateSignatureWithSolana,
@@ -982,11 +983,12 @@ class SignInFuture implements SignInFutureResource {
982983

983984
async web3(params: SignInFutureWeb3Params): Promise<{ error: ClerkError | null }> {
984985
const { strategy } = params;
985-
const provider = strategy.replace('web3_', '').replace('_signature', '') as Web3Provider;
986+
const provider = strategy.replace('web3_', '').replace('_signature', '');
987+
// as Web3Provider;
986988

987989
return runAsyncResourceTask(this.resource, async () => {
988990
let identifier;
989-
let generateSignature;
991+
let generateSignature: GenerateSignature;
990992
switch (provider) {
991993
case 'metamask':
992994
identifier = await getMetamaskIdentifier();
@@ -1006,11 +1008,9 @@ class SignInFuture implements SignInFutureResource {
10061008
break;
10071009
case 'solana':
10081010
if (!params.walletName) {
1009-
throw new ClerkRuntimeError('walletName is required for solana web3 authentication', {
1010-
code: 'missing_wallet_name',
1011-
});
1011+
throw new Error('walletName is required for solana web3 authentication');
10121012
}
1013-
identifier = await getSolanaIdentifier({ walletName: params.walletName });
1013+
identifier = await getSolanaIdentifier(params.walletName);
10141014
generateSignature = generateSignatureWithSolana;
10151015
break;
10161016
default:
@@ -1041,7 +1041,7 @@ class SignInFuture implements SignInFutureResource {
10411041
signature = await generateSignature({
10421042
identifier,
10431043
nonce: message,
1044-
walletName: params.walletName,
1044+
walletName: params?.walletName,
10451045
});
10461046
} catch (err) {
10471047
// There is a chance that as a user when you try to setup and use the Coinbase Wallet with an existing
@@ -1054,7 +1054,6 @@ class SignInFuture implements SignInFutureResource {
10541054
signature = await generateSignature({
10551055
identifier,
10561056
nonce: message,
1057-
walletName: params.walletName,
10581057
});
10591058
} else {
10601059
throw err;

packages/clerk-js/src/core/resources/SignUp.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -380,19 +380,19 @@ export class SignUp extends BaseResource implements SignUpResource {
380380
};
381381

382382
public authenticateWithSolana = async (
383-
params?: SignUpAuthenticateWithWeb3Params & {
384-
walletName?: string;
383+
params: SignUpAuthenticateWithWeb3Params & {
384+
walletName: string;
385385
legalAccepted?: boolean;
386386
},
387387
): Promise<SignUpResource> => {
388-
const identifier = await getSolanaIdentifier({ walletName: params?.walletName });
388+
const identifier = await getSolanaIdentifier(params.walletName);
389389
return this.authenticateWithWeb3({
390390
identifier,
391391
generateSignature: generateSignatureWithSolana,
392392
unsafeMetadata: params?.unsafeMetadata,
393393
strategy: 'web3_solana_signature',
394394
legalAccepted: params?.legalAccepted,
395-
walletName: params?.walletName,
395+
walletName: params.walletName,
396396
});
397397
};
398398

0 commit comments

Comments
 (0)