@lifi/widget 3.29.0-beta.0 → 3.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js +2 -1
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
- package/dist/esm/components/ChainSelect/ChainSelect.d.ts +1 -1
- package/dist/esm/components/ChainSelect/ChainSelect.js +20 -24
- package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
- package/dist/esm/components/ChainSelect/ChainSelect.style.d.ts +3 -0
- package/dist/esm/components/ChainSelect/ChainSelect.style.js +40 -3
- package/dist/esm/components/ChainSelect/ChainSelect.style.js.map +1 -1
- package/dist/esm/components/Header/WalletHeader.js +3 -1
- package/dist/esm/components/Header/WalletHeader.js.map +1 -1
- package/dist/esm/components/Search/SearchInput.style.js +3 -0
- package/dist/esm/components/Search/SearchInput.style.js.map +1 -1
- package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js +7 -0
- package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/config/version.js.map +1 -1
- package/dist/esm/hooks/useInternalWalletProvider.d.ts +1 -0
- package/dist/esm/hooks/useInternalWalletProvider.js +6 -0
- package/dist/esm/hooks/useInternalWalletProvider.js.map +1 -0
- package/dist/esm/i18n/bn.json +2 -4
- package/dist/esm/i18n/de.json +2 -4
- package/dist/esm/i18n/es.json +2 -4
- package/dist/esm/i18n/fr.json +2 -4
- package/dist/esm/i18n/hi.json +2 -4
- package/dist/esm/i18n/id.json +2 -4
- package/dist/esm/i18n/it.json +2 -4
- package/dist/esm/i18n/ja.json +2 -4
- package/dist/esm/i18n/ko.json +2 -4
- package/dist/esm/i18n/pl.json +2 -4
- package/dist/esm/i18n/pt.json +2 -4
- package/dist/esm/i18n/th.json +2 -4
- package/dist/esm/i18n/tr.json +2 -4
- package/dist/esm/i18n/uk.json +2 -4
- package/dist/esm/i18n/vi.json +2 -4
- package/dist/esm/i18n/zh.json +2 -4
- package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +12 -5
- package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
- package/dist/esm/providers/WalletProvider/EVMProvider.js +3 -1
- package/dist/esm/providers/WalletProvider/EVMProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/SVMBaseProvider.d.ts +1 -1
- package/dist/esm/providers/WalletProvider/SVMBaseProvider.js +18 -14
- package/dist/esm/providers/WalletProvider/SVMBaseProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/SVMProvider.js +3 -1
- package/dist/esm/providers/WalletProvider/SVMProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/SuiProvider.js +3 -1
- package/dist/esm/providers/WalletProvider/SuiProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/UTXOProvider.js +3 -1
- package/dist/esm/providers/WalletProvider/UTXOProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +4 -1
- package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -1
- package/dist/esm/types/widget.d.ts +7 -1
- package/dist/esm/types/widget.js +1 -0
- package/dist/esm/types/widget.js.map +1 -1
- package/package.json +10 -10
- package/package.json.tmp +9 -9
- package/src/components/BaseTransactionButton/BaseTransactionButton.tsx +4 -1
- package/src/components/ChainSelect/ChainSelect.style.tsx +43 -3
- package/src/components/ChainSelect/ChainSelect.tsx +32 -39
- package/src/components/Header/WalletHeader.tsx +5 -1
- package/src/components/Search/SearchInput.style.tsx +3 -0
- package/src/components/SelectTokenButton/SelectTokenButton.style.tsx +7 -0
- package/src/config/version.ts +1 -1
- package/src/hooks/useInternalWalletProvider.ts +6 -0
- package/src/i18n/bn.json +2 -4
- package/src/i18n/de.json +2 -4
- package/src/i18n/es.json +2 -4
- package/src/i18n/fr.json +2 -4
- package/src/i18n/hi.json +2 -4
- package/src/i18n/id.json +2 -4
- package/src/i18n/it.json +2 -4
- package/src/i18n/ja.json +2 -4
- package/src/i18n/ko.json +2 -4
- package/src/i18n/pl.json +2 -4
- package/src/i18n/pt.json +2 -4
- package/src/i18n/th.json +2 -4
- package/src/i18n/tr.json +2 -4
- package/src/i18n/uk.json +2 -4
- package/src/i18n/vi.json +2 -4
- package/src/i18n/zh.json +2 -4
- package/src/pages/SelectTokenPage/SelectTokenPage.tsx +25 -10
- package/src/providers/WalletProvider/EVMProvider.tsx +5 -3
- package/src/providers/WalletProvider/SVMBaseProvider.tsx +19 -16
- package/src/providers/WalletProvider/SVMProvider.tsx +5 -3
- package/src/providers/WalletProvider/SuiProvider.tsx +5 -3
- package/src/providers/WalletProvider/UTXOProvider.tsx +5 -3
- package/src/providers/WalletProvider/useExternalWalletProvider.ts +4 -1
- package/src/types/widget.ts +6 -0
|
@@ -6,24 +6,27 @@ import {
|
|
|
6
6
|
WalletProvider,
|
|
7
7
|
} from '@solana/wallet-adapter-react'
|
|
8
8
|
import { clusterApiUrl } from '@solana/web3.js'
|
|
9
|
-
import type
|
|
10
|
-
|
|
11
|
-
const endpoint = clusterApiUrl(WalletAdapterNetwork.Mainnet)
|
|
12
|
-
/**
|
|
13
|
-
* Wallets that implement either of these standards will be available automatically.
|
|
14
|
-
*
|
|
15
|
-
* - Solana Mobile Stack Mobile Wallet Adapter Protocol
|
|
16
|
-
* (https://github.com/solana-mobile/mobile-wallet-adapter)
|
|
17
|
-
* - Solana Wallet Standard
|
|
18
|
-
* (https://github.com/solana-labs/wallet-standard)
|
|
19
|
-
*
|
|
20
|
-
* If you wish to support a wallet that supports neither of those standards,
|
|
21
|
-
* instantiate its legacy wallet adapter here. Common legacy adapters can be found
|
|
22
|
-
* in the npm package `@solana/wallet-adapter-wallets`.
|
|
23
|
-
*/
|
|
24
|
-
const wallets: Adapter[] = [new CoinbaseWalletAdapter()]
|
|
9
|
+
import { type FC, type PropsWithChildren, useMemo } from 'react'
|
|
25
10
|
|
|
26
11
|
export const SVMBaseProvider: FC<PropsWithChildren> = ({ children }) => {
|
|
12
|
+
const [endpoint, wallets] = useMemo(() => {
|
|
13
|
+
const endpoint = clusterApiUrl(WalletAdapterNetwork.Mainnet)
|
|
14
|
+
/**
|
|
15
|
+
* Wallets that implement either of these standards will be available automatically.
|
|
16
|
+
*
|
|
17
|
+
* - Solana Mobile Stack Mobile Wallet Adapter Protocol
|
|
18
|
+
* (https://github.com/solana-mobile/mobile-wallet-adapter)
|
|
19
|
+
* - Solana Wallet Standard
|
|
20
|
+
* (https://github.com/solana-labs/wallet-standard)
|
|
21
|
+
*
|
|
22
|
+
* If you wish to support a wallet that supports neither of those standards,
|
|
23
|
+
* instantiate its legacy wallet adapter here. Common legacy adapters can be found
|
|
24
|
+
* in the npm package `@solana/wallet-adapter-wallets`.
|
|
25
|
+
*/
|
|
26
|
+
const wallets: Adapter[] = [new CoinbaseWalletAdapter()]
|
|
27
|
+
return [endpoint, wallets]
|
|
28
|
+
}, [])
|
|
29
|
+
|
|
27
30
|
return (
|
|
28
31
|
<ConnectionProvider endpoint={endpoint}>
|
|
29
32
|
<WalletProvider wallets={wallets} autoConnect>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChainType } from '@lifi/sdk'
|
|
2
2
|
import { ConnectionContext } from '@solana/wallet-adapter-react'
|
|
3
3
|
import { type FC, type PropsWithChildren, useContext } from 'react'
|
|
4
|
+
import { useInternalWalletProvider } from '../../hooks/useInternalWalletProvider.js'
|
|
4
5
|
import { isItemAllowed } from '../../utils/item.js'
|
|
5
6
|
import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js'
|
|
6
7
|
import { SVMBaseProvider } from './SVMBaseProvider.js'
|
|
@@ -16,12 +17,13 @@ export function useInSolanaContext(): boolean {
|
|
|
16
17
|
|
|
17
18
|
export const SVMProvider: FC<PropsWithChildren> = ({ children }) => {
|
|
18
19
|
const inSolanaContext = useInSolanaContext()
|
|
20
|
+
const useInternalWallet = useInternalWalletProvider(inSolanaContext)
|
|
19
21
|
|
|
20
|
-
return
|
|
22
|
+
return useInternalWallet ? (
|
|
23
|
+
<SVMBaseProvider>{children}</SVMBaseProvider>
|
|
24
|
+
) : (
|
|
21
25
|
<SVMExternalContext.Provider value={inSolanaContext}>
|
|
22
26
|
{children}
|
|
23
27
|
</SVMExternalContext.Provider>
|
|
24
|
-
) : (
|
|
25
|
-
<SVMBaseProvider>{children}</SVMBaseProvider>
|
|
26
28
|
)
|
|
27
29
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChainType } from '@lifi/sdk'
|
|
2
2
|
import { SuiClientContext } from '@mysten/dapp-kit'
|
|
3
3
|
import { type FC, type PropsWithChildren, useContext } from 'react'
|
|
4
|
+
import { useInternalWalletProvider } from '../../hooks/useInternalWalletProvider.js'
|
|
4
5
|
import { isItemAllowed } from '../../utils/item.js'
|
|
5
6
|
import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js'
|
|
6
7
|
import { SuiBaseProvider } from './SuiBaseProvider.js'
|
|
@@ -15,12 +16,13 @@ export function useInSuiContext(): boolean {
|
|
|
15
16
|
|
|
16
17
|
export const SuiProvider: FC<PropsWithChildren> = ({ children }) => {
|
|
17
18
|
const inSuiContext = useInSuiContext()
|
|
19
|
+
const useInternalWallet = useInternalWalletProvider(inSuiContext)
|
|
18
20
|
|
|
19
|
-
return
|
|
21
|
+
return useInternalWallet ? (
|
|
22
|
+
<SuiBaseProvider>{children}</SuiBaseProvider>
|
|
23
|
+
) : (
|
|
20
24
|
<SuiExternalContext.Provider value={inSuiContext}>
|
|
21
25
|
{children}
|
|
22
26
|
</SuiExternalContext.Provider>
|
|
23
|
-
) : (
|
|
24
|
-
<SuiBaseProvider>{children}</SuiBaseProvider>
|
|
25
27
|
)
|
|
26
28
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BigmiContext } from '@bigmi/react'
|
|
2
2
|
import { ChainType } from '@lifi/sdk'
|
|
3
3
|
import { type FC, type PropsWithChildren, useContext } from 'react'
|
|
4
|
+
import { useInternalWalletProvider } from '../../hooks/useInternalWalletProvider.js'
|
|
4
5
|
import { isItemAllowed } from '../../utils/item.js'
|
|
5
6
|
import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js'
|
|
6
7
|
import { UTXOBaseProvider } from './UTXOBaseProvider.js'
|
|
@@ -15,12 +16,13 @@ export function useInBigmiContext(): boolean {
|
|
|
15
16
|
|
|
16
17
|
export const UTXOProvider: FC<PropsWithChildren> = ({ children }) => {
|
|
17
18
|
const inBigmiContext = useInBigmiContext()
|
|
19
|
+
const useInternalWallet = useInternalWalletProvider(inBigmiContext)
|
|
18
20
|
|
|
19
|
-
return
|
|
21
|
+
return useInternalWallet ? (
|
|
22
|
+
<UTXOBaseProvider>{children}</UTXOBaseProvider>
|
|
23
|
+
) : (
|
|
20
24
|
<UTXOExternalContext.Provider value={inBigmiContext}>
|
|
21
25
|
{children}
|
|
22
26
|
</UTXOExternalContext.Provider>
|
|
23
|
-
) : (
|
|
24
|
-
<UTXOBaseProvider>{children}</UTXOBaseProvider>
|
|
25
27
|
)
|
|
26
28
|
}
|
|
@@ -46,7 +46,9 @@ export function useExternalWalletProvider(): ExternalWalletProvider {
|
|
|
46
46
|
hasExternalSuiContext
|
|
47
47
|
|
|
48
48
|
const useExternalWalletProvidersOnly =
|
|
49
|
-
hasExternalProvider &&
|
|
49
|
+
hasExternalProvider &&
|
|
50
|
+
!walletConfig?.usePartialWalletManagement &&
|
|
51
|
+
!walletConfig?.forceInternalWalletManagement
|
|
50
52
|
return {
|
|
51
53
|
useExternalWalletProvidersOnly,
|
|
52
54
|
externalChainTypes: providers,
|
|
@@ -60,6 +62,7 @@ export function useExternalWalletProvider(): ExternalWalletProvider {
|
|
|
60
62
|
hasExternalUTXOContext,
|
|
61
63
|
hasExternalSuiContext,
|
|
62
64
|
walletConfig?.usePartialWalletManagement,
|
|
65
|
+
walletConfig?.forceInternalWalletManagement,
|
|
63
66
|
])
|
|
64
67
|
|
|
65
68
|
return data
|
package/src/types/widget.ts
CHANGED
|
@@ -117,6 +117,7 @@ export enum HiddenUI {
|
|
|
117
117
|
AddressBookConnectedWallets = 'addressBookConnectedWallets',
|
|
118
118
|
LowAddressActivityConfirmation = 'lowAddressActivityConfirmation',
|
|
119
119
|
GasRefuelMessage = 'gasRefuelMessage',
|
|
120
|
+
SearchTokenInput = 'searchTokenInput',
|
|
120
121
|
}
|
|
121
122
|
export type HiddenUIType = `${HiddenUI}`
|
|
122
123
|
|
|
@@ -145,6 +146,11 @@ export interface WidgetWalletConfig {
|
|
|
145
146
|
* @default false
|
|
146
147
|
*/
|
|
147
148
|
usePartialWalletManagement?: boolean
|
|
149
|
+
/**
|
|
150
|
+
* This option forces the widget to always use internal wallet management ignoring external wallet management contexts
|
|
151
|
+
* @default false
|
|
152
|
+
*/
|
|
153
|
+
forceInternalWalletManagement?: boolean
|
|
148
154
|
}
|
|
149
155
|
|
|
150
156
|
export interface WidgetSDKConfig
|