Skip to content

Commit a0cb062

Browse files
authoredSep 4, 2024··
chore(clerk-js,types,clerk-react,elements): Drop coinbase web3 provider (#4092)
1 parent f0b02ee commit a0cb062

File tree

17 files changed

+13
-110
lines changed

17 files changed

+13
-110
lines changed
 

‎.changeset/light-donuts-shake.md

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@clerk/clerk-js": patch
3+
"@clerk/elements": patch
4+
"@clerk/clerk-react": patch
5+
"@clerk/types": patch
6+
---
7+
8+
Drop support for deprecated Coinbase Web3 provider

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

+2-11
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import type {
2020
__experimental_UserVerificationModalProps,
2121
__experimental_UserVerificationProps,
2222
ActiveSessionResource,
23-
AuthenticateWithCoinbaseParams,
2423
AuthenticateWithCoinbaseWalletParams,
2524
AuthenticateWithGoogleOneTapParams,
2625
AuthenticateWithMetamaskParams,
@@ -75,7 +74,6 @@ import {
7574
createPageLifecycle,
7675
disabledOrganizationsFeature,
7776
errorThrower,
78-
generateSignatureWithCoinbase,
7977
generateSignatureWithCoinbaseWallet,
8078
generateSignatureWithMetamask,
8179
getClerkQueryParam,
@@ -1406,10 +1404,6 @@ export class Clerk implements ClerkInterface {
14061404
await this.authenticateWithWeb3({ ...props, strategy: 'web3_metamask_signature' });
14071405
};
14081406

1409-
public authenticateWithCoinbase = async (props: AuthenticateWithCoinbaseParams = {}): Promise<void> => {
1410-
await this.authenticateWithWeb3({ ...props, strategy: 'web3_coinbase_signature' });
1411-
};
1412-
14131407
public authenticateWithCoinbaseWallet = async (props: AuthenticateWithCoinbaseWalletParams = {}): Promise<void> => {
14141408
await this.authenticateWithWeb3({ ...props, strategy: 'web3_coinbase_wallet_signature' });
14151409
};
@@ -1427,11 +1421,8 @@ export class Clerk implements ClerkInterface {
14271421
const provider = strategy.replace('web3_', '').replace('_signature', '') as Web3Provider;
14281422
const identifier = await getWeb3Identifier({ provider });
14291423
const generateSignature =
1430-
provider === 'metamask'
1431-
? generateSignatureWithMetamask
1432-
: provider === 'coinbase'
1433-
? generateSignatureWithCoinbase
1434-
: generateSignatureWithCoinbaseWallet;
1424+
provider === 'metamask' ? generateSignatureWithMetamask : generateSignatureWithCoinbaseWallet;
1425+
14351426
const navigate = (to: string) =>
14361427
customNavigate && typeof customNavigate === 'function' ? customNavigate(to) : this.navigate(to);
14371428

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

-14
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,8 @@ import type {
3333
} from '@clerk/types';
3434

3535
import {
36-
generateSignatureWithCoinbase,
3736
generateSignatureWithCoinbaseWallet,
3837
generateSignatureWithMetamask,
39-
getCoinbaseIdentifier,
4038
getCoinbaseWalletIdentifier,
4139
getMetamaskIdentifier,
4240
windowNavigate,
@@ -116,9 +114,6 @@ export class SignIn extends BaseResource implements SignInResource {
116114
case 'web3_metamask_signature':
117115
config = { web3WalletId: factor.web3WalletId } as Web3SignatureConfig;
118116
break;
119-
case 'web3_coinbase_signature':
120-
config = { web3WalletId: factor.web3WalletId } as Web3SignatureConfig;
121-
break;
122117
case 'web3_coinbase_wallet_signature':
123118
config = { web3WalletId: factor.web3WalletId } as Web3SignatureConfig;
124119
break;
@@ -281,15 +276,6 @@ export class SignIn extends BaseResource implements SignInResource {
281276
});
282277
};
283278

284-
public authenticateWithCoinbase = async (): Promise<SignInResource> => {
285-
const identifier = await getCoinbaseIdentifier();
286-
return this.authenticateWithWeb3({
287-
identifier,
288-
generateSignature: generateSignatureWithCoinbase,
289-
strategy: 'web3_coinbase_signature',
290-
});
291-
};
292-
293279
public authenticateWithCoinbaseWallet = async (): Promise<SignInResource> => {
294280
const identifier = await getCoinbaseWalletIdentifier();
295281
return this.authenticateWithWeb3({

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

-12
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@ import type {
2424
} from '@clerk/types';
2525

2626
import {
27-
generateSignatureWithCoinbase,
2827
generateSignatureWithCoinbaseWallet,
2928
generateSignatureWithMetamask,
30-
getCoinbaseIdentifier,
3129
getCoinbaseWalletIdentifier,
3230
getMetamaskIdentifier,
3331
windowNavigate,
@@ -223,16 +221,6 @@ export class SignUp extends BaseResource implements SignUpResource {
223221
});
224222
};
225223

226-
public authenticateWithCoinbase = async (params?: SignUpAuthenticateWithWeb3Params): Promise<SignUpResource> => {
227-
const identifier = await getCoinbaseIdentifier();
228-
return this.authenticateWithWeb3({
229-
identifier,
230-
generateSignature: generateSignatureWithCoinbase,
231-
unsafeMetadata: params?.unsafeMetadata,
232-
strategy: 'web3_coinbase_signature',
233-
});
234-
};
235-
236224
public authenticateWithCoinbaseWallet = async (
237225
params?: SignUpAuthenticateWithWeb3Params,
238226
): Promise<SignUpResource> => {

‎packages/clerk-js/src/ui/common/constants.ts

-4
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,6 @@ export const WEB3_PROVIDERS: Web3Providers = Object.freeze({
9292
id: 'metamask',
9393
name: 'MetaMask',
9494
},
95-
coinbase: {
96-
id: 'coinbase',
97-
name: 'Coinbase Wallet',
98-
},
9995
coinbase_wallet: {
10096
id: 'coinbase_wallet',
10197
name: 'Coinbase Wallet',

‎packages/clerk-js/src/utils/injectedWeb3Providers.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { CoinbaseWeb3Provider, MetamaskWeb3Provider } from '@clerk/types';
1+
import type { MetamaskWeb3Provider } from '@clerk/types';
22

33
//https://eips.ethereum.org/EIPS/eip-6963
44

@@ -27,12 +27,11 @@ interface EIP6963ProviderDetail {
2727
}
2828

2929
type EIP6963AnnounceProviderEvent = CustomEvent;
30-
type InjectedWeb3Provider = MetamaskWeb3Provider | CoinbaseWeb3Provider;
30+
type InjectedWeb3Provider = MetamaskWeb3Provider;
3131

3232
class InjectedWeb3Providers {
3333
#providers: EIP6963ProviderDetail[] = [];
3434
#providerIdMap: Record<InjectedWeb3Provider, string> = {
35-
coinbase: 'Coinbase Wallet',
3635
metamask: 'MetaMask',
3736
} as const;
3837
static #instance: InjectedWeb3Providers | null = null;

‎packages/clerk-js/src/utils/web3.ts

-8
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@ export async function getMetamaskIdentifier(): Promise<string> {
4646
return await getWeb3Identifier({ provider: 'metamask' });
4747
}
4848

49-
export async function getCoinbaseIdentifier(): Promise<string> {
50-
return await getWeb3Identifier({ provider: 'coinbase' });
51-
}
52-
5349
export async function getCoinbaseWalletIdentifier(): Promise<string> {
5450
return await getWeb3Identifier({ provider: 'coinbase_wallet' });
5551
}
@@ -63,10 +59,6 @@ export async function generateSignatureWithMetamask({ identifier, nonce }: Gener
6359
return await generateWeb3Signature({ identifier, nonce, provider: 'metamask' });
6460
}
6561

66-
export async function generateSignatureWithCoinbase({ identifier, nonce }: GenerateSignatureParams): Promise<string> {
67-
return await generateWeb3Signature({ identifier, nonce, provider: 'coinbase' });
68-
}
69-
7062
export async function generateSignatureWithCoinbaseWallet({
7163
identifier,
7264
nonce,

‎packages/elements/src/internals/machines/sign-in/start.machine.ts

-3
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ export const SignInStartMachine = setup({
2929
if (strategy === 'web3_metamask_signature') {
3030
return parent.getSnapshot().context.clerk.client.signIn.authenticateWithMetamask();
3131
}
32-
if (strategy === 'web3_coinbase_signature') {
33-
return parent.getSnapshot().context.clerk.client.signIn.authenticateWithCoinbase();
34-
}
3532
if (strategy === 'web3_coinbase_wallet_signature') {
3633
return parent.getSnapshot().context.clerk.client.signIn.authenticateWithCoinbaseWallet();
3734
}

‎packages/elements/src/internals/machines/sign-in/verification.machine.ts

-11
Original file line numberDiff line numberDiff line change
@@ -448,17 +448,6 @@ export const SignInFirstFactorMachine = SignInVerificationMachine.provide({
448448

449449
break;
450450
}
451-
case 'web3_coinbase_signature': {
452-
const signature = fields.get('signature')?.value as string | undefined;
453-
assertIsDefined(signature, 'Web3 Coinbase signature');
454-
455-
attemptParams = {
456-
strategy,
457-
signature,
458-
} satisfies Web3Attempt;
459-
460-
break;
461-
}
462451
case 'web3_coinbase_wallet_signature': {
463452
const signature = fields.get('signature')?.value as string | undefined;
464453
assertIsDefined(signature, 'Web3 Coinbase Wallet signature');

‎packages/elements/src/internals/machines/sign-up/start.machine.ts

-3
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ export const SignUpStartMachine = setup({
3939
if (strategy === 'web3_metamask_signature') {
4040
return parent.getSnapshot().context.clerk.client.signUp.authenticateWithMetamask();
4141
}
42-
if (strategy === 'web3_coinbase_signature') {
43-
return parent.getSnapshot().context.clerk.client.signUp.authenticateWithCoinbase();
44-
}
4542
if (strategy === 'web3_coinbase_wallet_signature') {
4643
return parent.getSnapshot().context.clerk.client.signUp.authenticateWithCoinbaseWallet();
4744
}

‎packages/elements/src/react/hooks/use-third-party-provider.hook.ts

-4
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,6 @@ export const useThirdPartyProvider = <
6767
return ref.send({ type: 'AUTHENTICATE.WEB3', strategy: 'web3_metamask_signature' });
6868
}
6969

70-
if (provider === 'coinbase') {
71-
return ref.send({ type: 'AUTHENTICATE.WEB3', strategy: 'web3_coinbase_signature' });
72-
}
73-
7470
if (provider === 'coinbase_wallet') {
7571
return ref.send({ type: 'AUTHENTICATE.WEB3', strategy: 'web3_coinbase_wallet_signature' });
7672
}

‎packages/elements/src/react/utils/map-scope-to-strategy.ts

-3
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ export function mapScopeToStrategy<T extends `provider:${Strategy}`>(scope: T):
1010
if (scope === 'provider:metamask') {
1111
return 'web3_metamask_signature';
1212
}
13-
if (scope === 'provider:coinbase') {
14-
return 'web3_coinbase_signature';
15-
}
1613
if (scope === 'provider:coinbase_wallet') {
1714
return 'web3_coinbase_wallet_signature';
1815
}

‎packages/react/src/isomorphicClerk.ts

-12
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import type {
66
__experimental_UserVerificationModalProps,
77
__experimental_UserVerificationProps,
88
ActiveSessionResource,
9-
AuthenticateWithCoinbaseParams,
109
AuthenticateWithCoinbaseWalletParams,
1110
AuthenticateWithGoogleOneTapParams,
1211
AuthenticateWithMetamaskParams,
@@ -96,7 +95,6 @@ type IsomorphicLoadedClerk = Without<
9695
| 'handleGoogleOneTapCallback'
9796
| 'handleUnauthenticated'
9897
| 'authenticateWithMetamask'
99-
| 'authenticateWithCoinbase'
10098
| 'authenticateWithCoinbaseWallet'
10199
| 'authenticateWithWeb3'
102100
| 'authenticateWithGoogleOneTap'
@@ -119,7 +117,6 @@ type IsomorphicLoadedClerk = Without<
119117
handleUnauthenticated: () => void;
120118
// TODO: Align Promise unknown
121119
authenticateWithMetamask: (params: AuthenticateWithMetamaskParams) => Promise<void>;
122-
authenticateWithCoinbase: (params: AuthenticateWithCoinbaseParams) => Promise<void>;
123120
authenticateWithCoinbaseWallet: (params: AuthenticateWithCoinbaseWalletParams) => Promise<void>;
124121
authenticateWithWeb3: (params: ClerkAuthenticateWithWeb3Params) => Promise<void>;
125122
authenticateWithGoogleOneTap: (
@@ -1066,15 +1063,6 @@ export class IsomorphicClerk implements IsomorphicLoadedClerk {
10661063
}
10671064
};
10681065

1069-
authenticateWithCoinbase = async (params: AuthenticateWithCoinbaseParams): Promise<void> => {
1070-
const callback = () => this.clerkjs?.authenticateWithCoinbase(params);
1071-
if (this.clerkjs && this.#loaded) {
1072-
return callback() as Promise<void>;
1073-
} else {
1074-
this.premountMethodCalls.set('authenticateWithCoinbase', callback);
1075-
}
1076-
};
1077-
10781066
authenticateWithCoinbaseWallet = async (params: AuthenticateWithCoinbaseWalletParams): Promise<void> => {
10791067
const callback = () => this.clerkjs?.authenticateWithCoinbaseWallet(params);
10801068
if (this.clerkjs && this.#loaded) {

‎packages/types/src/clerk.ts

-12
Original file line numberDiff line numberDiff line change
@@ -528,11 +528,6 @@ export interface Clerk {
528528
*/
529529
authenticateWithMetamask: (params?: AuthenticateWithMetamaskParams) => Promise<unknown>;
530530

531-
/**
532-
* Authenticates user using their Coinbase Wallet browser extension
533-
*/
534-
authenticateWithCoinbase: (params?: AuthenticateWithCoinbaseParams) => Promise<unknown>;
535-
536531
/**
537532
* Authenticates user using their Coinbase Smart Wallet and browser extension
538533
*/
@@ -1267,13 +1262,6 @@ export interface AuthenticateWithMetamaskParams {
12671262
unsafeMetadata?: SignUpUnsafeMetadata;
12681263
}
12691264

1270-
export interface AuthenticateWithCoinbaseParams {
1271-
customNavigate?: (to: string) => Promise<unknown>;
1272-
redirectUrl?: string;
1273-
signUpContinueUrl?: string;
1274-
unsafeMetadata?: SignUpUnsafeMetadata;
1275-
}
1276-
12771265
export interface AuthenticateWithCoinbaseWalletParams {
12781266
customNavigate?: (to: string) => Promise<unknown>;
12791267
redirectUrl?: string;

‎packages/types/src/signIn.ts

-2
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,6 @@ export interface SignInResource extends ClerkResource {
9898

9999
authenticateWithMetamask: () => Promise<SignInResource>;
100100

101-
authenticateWithCoinbase: () => Promise<SignInResource>;
102-
103101
authenticateWithCoinbaseWallet: () => Promise<SignInResource>;
104102

105103
authenticateWithPasskey: (params?: AuthenticateWithPasskeyParams) => Promise<SignInResource>;

‎packages/types/src/signUp.ts

-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ export interface SignUpResource extends ClerkResource {
9393
) => Promise<SignUpResource>;
9494

9595
authenticateWithMetamask: (params?: SignUpAuthenticateWithWeb3Params) => Promise<SignUpResource>;
96-
authenticateWithCoinbase: (params?: SignUpAuthenticateWithWeb3Params) => Promise<SignUpResource>;
9796
authenticateWithCoinbaseWallet: (params?: SignUpAuthenticateWithWeb3Params) => Promise<SignUpResource>;
9897
}
9998

‎packages/types/src/web3.ts

+1-7
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,16 @@ export interface Web3ProviderData {
77
}
88

99
export type MetamaskWeb3Provider = 'metamask';
10-
export type CoinbaseWeb3Provider = 'coinbase';
1110
export type CoinbaseWalletWeb3Provider = 'coinbase_wallet';
1211

13-
export type Web3Provider = MetamaskWeb3Provider | CoinbaseWeb3Provider | CoinbaseWalletWeb3Provider;
12+
export type Web3Provider = MetamaskWeb3Provider | CoinbaseWalletWeb3Provider;
1413

1514
export const WEB3_PROVIDERS: Web3ProviderData[] = [
1615
{
1716
provider: 'metamask',
1817
strategy: 'web3_metamask_signature',
1918
name: 'MetaMask',
2019
},
21-
{
22-
provider: 'coinbase',
23-
strategy: 'web3_coinbase_signature',
24-
name: 'Coinbase Wallet',
25-
},
2620
{
2721
provider: 'coinbase_wallet',
2822
strategy: 'web3_coinbase_wallet_signature',

0 commit comments

Comments
 (0)
Please sign in to comment.