@@ -37,59 +37,6 @@ export type InjectedParameters = {
37
37
// Regex of wallets/providers that can accurately simulate contract calls & display contract revert reasons.
38
38
const supportsSimulationIdRegex = / ( r a b b y | t r u s t w a l l e t ) /
39
39
40
- const targetMap = {
41
- coinbaseWallet : {
42
- id : 'coinbaseWallet' ,
43
- name : 'Coinbase Wallet' ,
44
- provider ( window ) {
45
- if ( window ?. coinbaseWalletExtension ) return window . coinbaseWalletExtension
46
- return findProvider ( window , 'isCoinbaseWallet' )
47
- } ,
48
- } ,
49
- metaMask : {
50
- id : 'metaMask' ,
51
- name : 'MetaMask' ,
52
- provider ( window ) {
53
- return findProvider ( window , ( provider ) => {
54
- if ( ! provider . isMetaMask ) return false
55
- // Brave tries to make itself look like MetaMask
56
- // Could also try RPC `web3_clientVersion` if following is unreliable
57
- if ( provider . isBraveWallet && ! provider . _events && ! provider . _state )
58
- return false
59
- // Other wallets that try to look like MetaMask
60
- const flags : WalletProviderFlags [ ] = [
61
- 'isApexWallet' ,
62
- 'isAvalanche' ,
63
- 'isBitKeep' ,
64
- 'isBlockWallet' ,
65
- 'isKuCoinWallet' ,
66
- 'isMathWallet' ,
67
- 'isOkxWallet' ,
68
- 'isOKExWallet' ,
69
- 'isOneInchIOSWallet' ,
70
- 'isOneInchAndroidWallet' ,
71
- 'isOpera' ,
72
- 'isPortal' ,
73
- 'isRabby' ,
74
- 'isTokenPocket' ,
75
- 'isTokenary' ,
76
- 'isZerion' ,
77
- ]
78
- for ( const flag of flags ) if ( provider [ flag ] ) return false
79
- return true
80
- } )
81
- } ,
82
- } ,
83
- phantom : {
84
- id : 'phantom' ,
85
- name : 'Phantom' ,
86
- provider ( window ) {
87
- if ( window ?. phantom ?. ethereum ) return window . phantom ?. ethereum
88
- return findProvider ( window , 'isPhantom' )
89
- } ,
90
- } ,
91
- } as const satisfies TargetMap
92
-
93
40
injected . type = 'injected' as const
94
41
export function injected ( parameters : InjectedParameters = { } ) {
95
42
const { shimDisconnect = true , unstable_shimAsyncInject } = parameters
@@ -582,6 +529,62 @@ export function injected(parameters: InjectedParameters = {}) {
582
529
} ) )
583
530
}
584
531
532
+ const targetMap = {
533
+ coinbaseWallet : {
534
+ id : 'coinbaseWallet' ,
535
+ name : 'Coinbase Wallet' ,
536
+ provider ( window ) {
537
+ if ( window ?. coinbaseWalletExtension ) return window . coinbaseWalletExtension
538
+ return findProvider ( window , 'isCoinbaseWallet' )
539
+ } ,
540
+ } ,
541
+ metaMask : {
542
+ id : 'metaMask' ,
543
+ name : 'MetaMask' ,
544
+ provider ( window ) {
545
+ return findProvider ( window , ( provider ) => {
546
+ if ( ! provider . isMetaMask ) return false
547
+ // Brave tries to make itself look like MetaMask
548
+ // Could also try RPC `web3_clientVersion` if following is unreliable
549
+ if ( provider . isBraveWallet && ! provider . _events && ! provider . _state )
550
+ return false
551
+ // Other wallets that try to look like MetaMask
552
+ const flags = [
553
+ 'isApexWallet' ,
554
+ 'isAvalanche' ,
555
+ 'isBitKeep' ,
556
+ 'isBlockWallet' ,
557
+ 'isKuCoinWallet' ,
558
+ 'isMathWallet' ,
559
+ 'isOkxWallet' ,
560
+ 'isOKExWallet' ,
561
+ 'isOneInchIOSWallet' ,
562
+ 'isOneInchAndroidWallet' ,
563
+ 'isOpera' ,
564
+ 'isPortal' ,
565
+ 'isRabby' ,
566
+ 'isTokenPocket' ,
567
+ 'isTokenary' ,
568
+ 'isUniswapWallet' ,
569
+ 'isZerion' ,
570
+ ] satisfies WalletProviderFlags [ ]
571
+ for ( const flag of flags ) if ( provider [ flag ] ) return false
572
+ return true
573
+ } )
574
+ } ,
575
+ } ,
576
+ phantom : {
577
+ id : 'phantom' ,
578
+ name : 'Phantom' ,
579
+ provider ( window ) {
580
+ if ( window ?. phantom ?. ethereum ) return window . phantom ?. ethereum
581
+ return findProvider ( window , 'isPhantom' )
582
+ } ,
583
+ } ,
584
+ } as const satisfies TargetMap
585
+
586
+ type TargetMap = { [ _ in TargetId ] ?: Target | undefined }
587
+
585
588
type Target = {
586
589
icon ?: string | undefined
587
590
id : string
@@ -599,9 +602,9 @@ type TargetId = Compute<WalletProviderFlags> extends `is${infer name}`
599
602
: never
600
603
: never
601
604
602
- type TargetMap = { [ _ in TargetId ] ?: Target | undefined }
603
-
604
- /** @deprecated */
605
+ /**
606
+ * @deprecated As of 2024/10/16, we are no longer accepting new provider flags as EIP-6963 should be used instead.
607
+ */
605
608
type WalletProviderFlags =
606
609
| 'isApexWallet'
607
610
| 'isAvalanche'
@@ -638,6 +641,7 @@ type WalletProviderFlags =
638
641
| 'isTokenary'
639
642
| 'isTrust'
640
643
| 'isTrustWallet'
644
+ | 'isUniswapWallet'
641
645
| 'isXDEFI'
642
646
| 'isZerion'
643
647
0 commit comments