diff --git a/CHANGELOG.md b/CHANGELOG.md index fa7397236..a5ac9fc0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.3 (226) +- Fix bug nft doesn't show +- Fix bug show unclear message when send nft + ## 1.1.3 (225) - Cache the dApp list when opening the app for the first time (#1074) - Update buy token ordering (#1076) diff --git a/android/app/build.gradle b/android/app/build.gradle index 44bcc208b..477ef1ade 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -75,7 +75,7 @@ android { applicationId "app.subwallet.mobile" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 225 + versionCode 226 versionName "1.1.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b9e5dfe7a..93d109acb 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -442,7 +442,7 @@ PODS: - React-Core - react-native-view-shot (3.7.0): - React-Core - - react-native-webview (13.6.0): + - react-native-webview (13.6.2): - React-Core - React-NativeModulesApple (0.72.5): - hermes-engine @@ -972,7 +972,7 @@ SPEC CHECKSUMS: react-native-version-number: b415bbec6a13f2df62bf978e85bc0d699462f37f react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 react-native-view-shot: f5507655f122e6b104888a11130f267a427f0d57 - react-native-webview: 669ae162965f629a8d6a4bdd3b99a304d36ef1f2 + react-native-webview: 8fc09f66a1a5b16bbe37c3878fda27d5982bb776 React-NativeModulesApple: 797bc6078d566eef3fb3f74127e6e1d2e945a15f React-perflogger: cd8886513f68e1c135a1e79d20575c6489641597 React-RCTActionSheet: 726d2615ca62a77ce3e2c13d87f65379cdc73498 @@ -1017,4 +1017,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: d2e75413a9d4d28b9ab6ee8ae7baea6ba4324a25 -COCOAPODS: 1.12.1 +COCOAPODS: 1.13.0 diff --git a/ios/SubWalletMobile.xcodeproj/project.pbxproj b/ios/SubWalletMobile.xcodeproj/project.pbxproj index cff3fd60b..57379c50e 100644 --- a/ios/SubWalletMobile.xcodeproj/project.pbxproj +++ b/ios/SubWalletMobile.xcodeproj/project.pbxproj @@ -535,7 +535,7 @@ ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = SubWalletMobile/SubWalletMobile.entitlements; - CURRENT_PROJECT_VERSION = 225; + CURRENT_PROJECT_VERSION = 226; DEVELOPMENT_TEAM = ZUZ7T3GQMT; ENABLE_BITCODE = NO; INFOPLIST_FILE = SubWalletMobile/Info.plist; @@ -568,7 +568,7 @@ ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = SubWalletMobile/SubWalletMobile.entitlements; - CURRENT_PROJECT_VERSION = 225; + CURRENT_PROJECT_VERSION = 226; DEVELOPMENT_TEAM = ZUZ7T3GQMT; INFOPLIST_FILE = SubWalletMobile/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = SubWallet; diff --git a/package.json b/package.json index f509265dc..caf8f606e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "SubWalletMobile", - "version": "1.1.3", - "build": "225", + "version": "1.1.4", + "build": "226", "private": true, "license": "Apache-2.0", "reactNativePermissionsIOS": [ @@ -54,8 +54,8 @@ "@react-navigation/native": "^6.1.2", "@react-navigation/native-stack": "^6.9.8", "@reduxjs/toolkit": "^1.9.2", - "@subwallet/extension-chains": "^1.1.15-0", - "@subwallet/extension-dapp": "^1.1.15-0", + "@subwallet/extension-chains": "^1.1.17-0", + "@subwallet/extension-dapp": "^1.1.17-0", "@subwallet/keyring": "^0.1.1", "@subwallet/react-ui": "^5.1.2-b72", "@subwallet/ui-keyring": "^0.1.1", @@ -120,7 +120,7 @@ "react-native-version-number": "^0.3.6", "react-native-video": "^5.2.1", "react-native-view-shot": "^3.5.0", - "react-native-webview": "^13.2.3", + "react-native-webview": "^13.6.2", "react-redux": "^8.0.5", "redux-persist": "^6.0.0", "redux-thunk": "^2.4.2", @@ -140,7 +140,7 @@ "@react-native/eslint-config": "^0.72.2", "@react-native/metro-config": "^0.72.11", "@subwallet/chain-list": "^0.2.16-beta.4", - "@subwallet/extension-base": "^1.1.15-0", + "@subwallet/extension-base": "^1.1.17-0", "@tsconfig/react-native": "^3.0.0", "@types/jest": "^29.2.3", "@types/react": "^18.0.25", @@ -187,7 +187,7 @@ "@polkadot/util": "^12.2.1", "@polkadot/api": "^10.7.2", "@polkadot/util-crypto": "^12.2.1", - "@subwallet/extension-base": "^1.1.15-0", + "@subwallet/extension-base": "^1.1.17-0", "@subwallet/chain-list": "0.2.16-beta.4", "react-native-svg": "^13.6.0" }, diff --git a/src/AppNew.tsx b/src/AppNew.tsx index b8511b1b9..af7711ad8 100644 --- a/src/AppNew.tsx +++ b/src/AppNew.tsx @@ -30,6 +30,7 @@ import { SafeAreaProvider } from 'react-native-safe-area-context'; import { LockTimeout } from 'stores/types'; import { keyringLock } from './messaging'; import { updateAutoLockTime } from 'stores/MobileSettings'; +import { useGetTokenConfigQuery } from 'stores/API'; const layerScreenStyle: StyleProp = { top: 0, @@ -127,6 +128,7 @@ export const AppNew = () => { const isCryptoReady = useCryptoReady(); const isI18nReady = useSetupI18n().isI18nReady; useStoreBackgroundService(); + const { refetch } = useGetTokenConfigQuery(undefined, { pollingInterval: 300000 }); // Enable lock screen on the start app useEffect(() => { @@ -163,11 +165,13 @@ export const AppNew = () => { SplashScreen.hide(); }, 100); + refetch(); // if (buildNumber === 1) { // Set default value on the first time install // const buildNumberInt = parseInt(getBuildNumber(), 10); // dispatch(setBuildNumber(buildNumberInt)); // } + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); const isAppReady = isRequiredStoresReady && isCryptoReady && isI18nReady; diff --git a/src/hooks/screen/Home/Crypto/useShowBuyToken.ts b/src/hooks/screen/Home/Crypto/useShowBuyToken.ts new file mode 100644 index 000000000..d0fcc2429 --- /dev/null +++ b/src/hooks/screen/Home/Crypto/useShowBuyToken.ts @@ -0,0 +1,20 @@ +import { useMemo } from 'react'; +import { Platform } from 'react-native'; +import { useGetTokenConfigQuery } from 'stores/API'; +import { getVersion } from 'react-native-device-info'; + +export function useShowBuyToken() { + const { data: tokenConfig } = useGetTokenConfigQuery(undefined, { pollingInterval: 60000 }); + const isShowBuyToken = useMemo(() => { + if (Platform.OS === 'android') { + return true; + } + const currentAppVersion = getVersion(); + if (tokenConfig?.buy?.includes(currentAppVersion)) { + return true; + } + return false; + }, [tokenConfig]); + + return isShowBuyToken; +} diff --git a/src/hooks/screen/Home/Nft/useFetchNftCollection.ts b/src/hooks/screen/Home/Nft/useFetchNftCollection.ts index bb73a280d..906e61c43 100644 --- a/src/hooks/screen/Home/Nft/useFetchNftCollection.ts +++ b/src/hooks/screen/Home/Nft/useFetchNftCollection.ts @@ -52,6 +52,9 @@ export default function useFetchNftCollection(): NftCollectionType { continue; } const collection: NftCollection = { ...nftCollection }; + if (!collection.image) { + collection.image = nftItems.find(item => item.collectionId === collection.collectionId)?.image; + } const key = `${collection.chain}-${collection.collectionId}`; if (countMap[key] && countMap[key] > 0) { collection.itemCount = countMap[key]; diff --git a/src/screens/Home/Browser/BrowserHome.tsx b/src/screens/Home/Browser/BrowserHome.tsx index d4fb1e531..a6915f675 100644 --- a/src/screens/Home/Browser/BrowserHome.tsx +++ b/src/screens/Home/Browser/BrowserHome.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useMemo } from 'react'; +import React, { useCallback, useEffect, useMemo } from 'react'; import { FlatList, ListRenderItem, ScrollView, View } from 'react-native'; import { CaretRight } from 'phosphor-react-native'; import createStylesheet from './styles/BrowserHome'; @@ -97,10 +97,16 @@ const ItemSeparator = () => { const BrowserHome = () => { const stylesheet = createStylesheet(); const theme = useSubWalletTheme().swThemes; - const { data: dApps, isLoading } = useGetDAPPsQuery(undefined); + const { data: dApps, isLoading, refetch } = useGetDAPPsQuery(undefined); const navigation = useNavigation(); const historyItems = useSelector((state: RootState) => state.browser.history); const bookmarkItems = useSelector((state: RootState) => state.browser.bookmarks); + + useEffect(() => { + refetch(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + const recommendedList = useMemo((): RecommendedListType[] | [] => { if (!dApps) { return []; diff --git a/src/screens/Home/Browser/BrowserTab.tsx b/src/screens/Home/Browser/BrowserTab.tsx index bd416ab5c..5f300a43f 100644 --- a/src/screens/Home/Browser/BrowserTab.tsx +++ b/src/screens/Home/Browser/BrowserTab.tsx @@ -346,7 +346,7 @@ const Component = ({ tabId, onOpenBrowserTabs, connectionTrigger }: Props, ref: if (isSync) { const injectScripts = - getJsInjectContent(true) + BridgeScript + injectPageJsContent + ConnectToNovaScript + DAppScript; + getJsInjectContent() + BridgeScript + injectPageJsContent + ConnectToNovaScript + DAppScript; setInjectedScripts(injectScripts); } diff --git a/src/screens/Home/Browser/index.tsx b/src/screens/Home/Browser/index.tsx index ed32c1fa4..584bb2373 100644 --- a/src/screens/Home/Browser/index.tsx +++ b/src/screens/Home/Browser/index.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { ScreenContainer } from 'components/ScreenContainer'; import BrowserHome from './BrowserHome'; import BrowserHeader from './Shared/BrowserHeader'; @@ -69,7 +69,7 @@ const tabbarIcon = (focused: boolean, item: RoutesType, theme: ThemeTypes) => { export const BrowserScreen = ({ navigation }: NativeStackScreenProps<{}>) => { const theme = useSubWalletTheme().swThemes; const stylesheet = createStylesheet(theme); - const { data: categories } = useGetDAPPCategoriesQuery(undefined); + const { data: categories, refetch } = useGetDAPPCategoriesQuery(undefined); const [searchString] = useState(''); const categoryTabRoutes = categories ? categories.map(item => ({ key: item.slug, title: item.name })) : []; const allTabRoutes = [{ key: 'all', title: i18n.common.all }, ...categoryTabRoutes]; @@ -86,6 +86,11 @@ export const BrowserScreen = ({ navigation }: NativeStackScreenProps<{}>) => { }; }; + useEffect(() => { + refetch(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + const screenListener = { focus: () => { Animated.timing(av, { diff --git a/src/screens/Home/Crypto/TokenGroupsDetailUpperBlock.tsx b/src/screens/Home/Crypto/TokenGroupsDetailUpperBlock.tsx index 684fad02b..0b4c181d9 100644 --- a/src/screens/Home/Crypto/TokenGroupsDetailUpperBlock.tsx +++ b/src/screens/Home/Crypto/TokenGroupsDetailUpperBlock.tsx @@ -18,6 +18,7 @@ import { RootNavigationProps } from 'routes/index'; import { MAP_PREDEFINED_BUY_TOKEN } from 'constants/buy'; import { isAccountAll } from 'utils/accountAll'; import { BuyTokenInfo } from 'types/buy'; +import { useShowBuyToken } from 'hooks/screen/Home/Crypto/useShowBuyToken'; interface Props { balanceValue: SwNumberProps['value']; @@ -42,6 +43,7 @@ export const TokenGroupsDetailUpperBlock = ({ const theme = useSubWalletTheme().swThemes; const accounts = useSelector((state: RootState) => state.accountState.accounts); const currentAccount = useSelector((state: RootState) => state.accountState.currentAccount); + const isShowBuyToken = useShowBuyToken(); const _style = createStyleSheet(theme); @@ -117,12 +119,14 @@ export const TokenGroupsDetailUpperBlock = ({ onPress={onOpenSendFund} buttonWrapperStyle={{ paddingHorizontal: theme.paddingSM }} /> - + {isShowBuyToken && ( + + )} ); diff --git a/src/screens/Home/Crypto/TokenGroupsUpperBlock.tsx b/src/screens/Home/Crypto/TokenGroupsUpperBlock.tsx index 5e5d892fe..afc177d5a 100644 --- a/src/screens/Home/Crypto/TokenGroupsUpperBlock.tsx +++ b/src/screens/Home/Crypto/TokenGroupsUpperBlock.tsx @@ -15,6 +15,7 @@ import { ButtonIcon } from 'screens/Home/Crypto/shared/Button'; import { updateToggleBalance } from 'stores/base/Settings'; import { useNavigation } from '@react-navigation/native'; import { RootNavigationProps } from 'routes/index'; +import { useShowBuyToken } from 'hooks/screen/Home/Crypto/useShowBuyToken'; interface Props { totalValue: SwNumberProps['value']; @@ -54,6 +55,7 @@ export const TokenGroupsUpperBlock = ({ const theme = useSubWalletTheme().swThemes; const navigation = useNavigation(); const isShowBalance = useSelector((state: RootState) => state.settings.isShowBalance); + const isShowBuyToken = useShowBuyToken(); const _toggleBalances = () => { updateToggleBalance(); toggleBalancesVisibility().catch(console.log); @@ -145,12 +147,14 @@ export const TokenGroupsUpperBlock = ({ onPress={onOpenSendFund} buttonWrapperStyle={{ paddingHorizontal: theme.paddingSM }} /> - navigation.navigate('Drawer', { screen: 'BuyToken', params: {} })} - buttonWrapperStyle={{ paddingHorizontal: theme.paddingSM }} - /> + {isShowBuyToken && ( + navigation.navigate('Drawer', { screen: 'BuyToken', params: {} })} + buttonWrapperStyle={{ paddingHorizontal: theme.paddingSM }} + /> + )} ); diff --git a/src/screens/Transaction/helper/nftParamsHandler.ts b/src/screens/Transaction/helper/nftParamsHandler.ts index c033af869..b44c3c89c 100644 --- a/src/screens/Transaction/helper/nftParamsHandler.ts +++ b/src/screens/Transaction/helper/nftParamsHandler.ts @@ -76,6 +76,17 @@ function psp34Parser(nftItem: NftItem) { }; } +function varaParser(nftItem: NftItem) { + const contractAddress = nftItem.collectionId; + const tokenId = nftItem.id; + + return { + contractAddress, + tokenId, + networkKey: nftItem.chain, + }; +} + export default function nftParamsHandler(nftItem: NftItem, chain: string) { if (nftItem.type === _AssetType.ERC721) { return web3Parser(nftItem); @@ -94,6 +105,8 @@ export default function nftParamsHandler(nftItem: NftItem, chain: string) { return statemineParser(nftItem); } else if (_NFT_CHAIN_GROUP.unique_network.includes(chain)) { return uniqueParser(nftItem); + } else if (_NFT_CHAIN_GROUP.vara.includes(chain)) { + return varaParser(nftItem); } } diff --git a/src/stores/API.ts b/src/stores/API.ts index 972a72c85..d5b3ea5ee 100644 --- a/src/stores/API.ts +++ b/src/stores/API.ts @@ -1,9 +1,12 @@ import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; import { DAppInfo, DAPPCategory } from 'types/browser'; +import { TokenConfig } from 'types/tokenConfig'; + +const baseQuery = fetchBaseQuery({ baseUrl: 'https://static-data.subwallet.app' }); export const browserDAPPs = createApi({ reducerPath: 'dApps', - baseQuery: fetchBaseQuery({ baseUrl: 'https://static-data.subwallet.app' }), + baseQuery, endpoints: builder => ({ getDAPPs: builder.query({ query: () => 'dapps/list.json', @@ -14,4 +17,15 @@ export const browserDAPPs = createApi({ }), }); +export const tokenConfig = createApi({ + reducerPath: 'tokenConfig', + baseQuery, + endpoints: builder => ({ + getTokenConfig: builder.query({ + query: () => 'tokens/config.json', + }), + }), +}); + export const { useGetDAPPsQuery, useGetDAPPCategoriesQuery } = browserDAPPs; +export const { useGetTokenConfigQuery } = tokenConfig; diff --git a/src/stores/index.ts b/src/stores/index.ts index b86ea10ac..38b8bebec 100644 --- a/src/stores/index.ts +++ b/src/stores/index.ts @@ -35,7 +35,7 @@ import LogoMap from 'stores/base/LogoMap'; import { mmkvReduxStore } from 'utils/storage'; import { PriceJson } from '@subwallet/extension-base/background/KoniTypes'; import { AssetRegistryStore, BalanceStore, BrowserSlice, ChainStore } from './types'; -import { browserDAPPs } from './API'; +import { browserDAPPs, tokenConfig } from './API'; import { setupListeners } from '@reduxjs/toolkit/query'; const persistRootConfig = { @@ -93,6 +93,10 @@ const rootReducer = combineReducers({ { key: browserDAPPs.reducerPath, storage: mmkvReduxStore }, browserDAPPs.reducer, ), + [tokenConfig.reducerPath]: persistReducer( + { key: tokenConfig.reducerPath, storage: mmkvReduxStore }, + tokenConfig.reducer, + ), }); const persistedReducer = persistReducer(persistRootConfig, rootReducer); @@ -104,7 +108,9 @@ export const store = configureStore({ serializableCheck: { ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER], }, - }).concat(browserDAPPs.middleware), + }) + .concat(browserDAPPs.middleware) + .concat(tokenConfig.middleware), }); setupListeners(store.dispatch); diff --git a/src/types/tokenConfig.ts b/src/types/tokenConfig.ts new file mode 100644 index 000000000..12719e675 --- /dev/null +++ b/src/types/tokenConfig.ts @@ -0,0 +1,5 @@ +export type TokenConfig = { + address: boolean; + send: boolean; + buy: string[]; +}; diff --git a/yarn.lock b/yarn.lock index 5cb5bd8c7..aac8c6a45 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4174,7 +4174,7 @@ resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.43.0.tgz#93108e45cb7ef6d82560c153e3692c2aa1c711b3" integrity sha512-USEkXA46P9sqClL7PZv0QFsit4S8Im97wchKG0/H/9q3AT/S76r40UHfCr4Un7eBJPE23f7fU9BZ0ITpP9MCsA== -"@subwallet/chain-list@0.2.16-beta.4": +"@subwallet/chain-list@0.2.16-beta.12", "@subwallet/chain-list@0.2.16-beta.4": version "0.2.16-beta.4" resolved "https://registry.yarnpkg.com/@subwallet/chain-list/-/chain-list-0.2.16-beta.4.tgz#690a280ea6f05594c1b2843cd1b36b4e33a3a335" integrity sha512-0Y4NtRh9ODnG0LxMfQrDpCJZwi9rSf9NrPYOtwZHLBfKc4L5FjnD9H+nO1+1nbTZCS5tctKBazJpR8CotS6OvQ== @@ -4192,10 +4192,10 @@ "@polkadot/util" "^10.2.1" eventemitter3 "^4.0.7" -"@subwallet/extension-base@^1.1.15-0": - version "1.1.15-0" - resolved "https://registry.yarnpkg.com/@subwallet/extension-base/-/extension-base-1.1.15-0.tgz#d4a77d626103a2dc78e07383350abd54efa92057" - integrity sha512-76ArVYVa0UHlYckc9mrlSbAOS+/6mA6kaEsAIQcbqjfOMSQc/aSLC4itp8e85HiAOqikAkRinTVP2hQFW8uetA== +"@subwallet/extension-base@^1.1.17-0": + version "1.1.17-0" + resolved "https://registry.yarnpkg.com/@subwallet/extension-base/-/extension-base-1.1.17-0.tgz#a378f2dd5c518daeadeb4604c23b2bf532452a24" + integrity sha512-TLEZt4LTNqInWVaJJnksWmOhU5+idrMut7X/EHP/eATmxE+bt0WEIfqo0/Jn780w6ADR1qkLQ8QgP2Xy2fVzHw== dependencies: "@acala-network/api" "^5.0.2" "@apollo/client" "^3.7.14" @@ -4224,11 +4224,11 @@ "@reduxjs/toolkit" "^1.9.1" "@sora-substrate/type-definitions" "^1.17.7" "@substrate/connect" "^0.7.26" - "@subwallet/chain-list" "0.2.16-beta.4" - "@subwallet/extension-base" "^1.1.15-0" - "@subwallet/extension-chains" "^1.1.15-0" - "@subwallet/extension-dapp" "^1.1.15-0" - "@subwallet/extension-inject" "^1.1.15-0" + "@subwallet/chain-list" "0.2.16-beta.12" + "@subwallet/extension-base" "^1.1.17-0" + "@subwallet/extension-chains" "^1.1.17-0" + "@subwallet/extension-dapp" "^1.1.17-0" + "@subwallet/extension-inject" "^1.1.17-0" "@subwallet/keyring" "^0.1.1" "@subwallet/ui-keyring" "^0.1.1" "@walletconnect/sign-client" "^2.8.4" @@ -4264,31 +4264,31 @@ web3-eth-contract "^1.10.0" web3-utils "^1.10.0" -"@subwallet/extension-chains@^1.1.15-0": - version "1.1.15-0" - resolved "https://registry.yarnpkg.com/@subwallet/extension-chains/-/extension-chains-1.1.15-0.tgz#a1dba6715696607a1046a856a3f82f2f05a238ae" - integrity sha512-7PCJmbhXhAUM+Wc6shsKzEZ8pDa/bPQsgj5SWgtGOCekb+MJ1PLJVNk60xucNUi78C6bhb38NDDnULQhXOJxwA== +"@subwallet/extension-chains@^1.1.17-0": + version "1.1.17-0" + resolved "https://registry.yarnpkg.com/@subwallet/extension-chains/-/extension-chains-1.1.17-0.tgz#28220ca48643175902a27afce50bd5c2c073f619" + integrity sha512-1VAoNe2EnrvGoBlyHzMX+qHTLaTiTfvaX4DzuqfVxMVzexPrQskFutr2DDxklY0X4VjbP3cPH1IzZixTp+NZuw== dependencies: "@babel/runtime" "^7.20.6" "@polkadot/networks" "^12.3.2" "@polkadot/util" "^12.3.2" "@polkadot/util-crypto" "^12.3.2" - "@subwallet/extension-inject" "^1.1.15-0" + "@subwallet/extension-inject" "^1.1.17-0" -"@subwallet/extension-dapp@^1.1.15-0": - version "1.1.15-0" - resolved "https://registry.yarnpkg.com/@subwallet/extension-dapp/-/extension-dapp-1.1.15-0.tgz#07f7ccce452e664fb524e44d81fff1f628a45ac5" - integrity sha512-/PeZew2O6OEre0q8NqhDZcB9bZXpwRlrZTWhajHqO2C6IyX7rCyFdwXui+6KTvAu3uPm+GFmuDGJYthkQEEE7w== +"@subwallet/extension-dapp@^1.1.17-0": + version "1.1.17-0" + resolved "https://registry.yarnpkg.com/@subwallet/extension-dapp/-/extension-dapp-1.1.17-0.tgz#ddf5cef3da726b530b0d10ab330ca34484d208c0" + integrity sha512-d1fpdBCx97AVSc9+Q1gsg1h7O9AMm5jirM/W2+sbOc8WalF25OW96x/b+uZ+H1dIPAOSLMKSAw6AUaXd57pGyg== dependencies: "@babel/runtime" "^7.20.6" "@polkadot/util" "^12.3.2" "@polkadot/util-crypto" "^12.3.2" - "@subwallet/extension-inject" "^1.1.15-0" + "@subwallet/extension-inject" "^1.1.17-0" -"@subwallet/extension-inject@^1.1.15-0": - version "1.1.15-0" - resolved "https://registry.yarnpkg.com/@subwallet/extension-inject/-/extension-inject-1.1.15-0.tgz#ca7c1588be367abe6fb3a1b43ef396bce26c63dd" - integrity sha512-U744q943e+63DQRBHRR2UHVswJOFs22Gz0zWmhPjFYMiyw0khRUl6oWSSDegmHwAJTWXfy+roYrPjUh5rkeNSQ== +"@subwallet/extension-inject@^1.1.17-0": + version "1.1.17-0" + resolved "https://registry.yarnpkg.com/@subwallet/extension-inject/-/extension-inject-1.1.17-0.tgz#b1268e9a37650b9e81e472345265ff62acd8732b" + integrity sha512-fAhqHZo8ke67ol/Cw1bVIBpu6WTrB3J2vVMZ1aNAf/1AiV1L0WL2kmpGtUXCln1M1poPyD/G3HXh4NqxHlX2Kw== dependencies: "@babel/runtime" "^7.20.6" "@polkadot/rpc-provider" "^10.9.1" @@ -14738,10 +14738,10 @@ react-native-view-shot@^3.5.0: dependencies: html2canvas "^1.4.1" -react-native-webview@^13.2.3: - version "13.6.0" - resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.6.0.tgz#286eeb6b2167b838fe8a44619d14e8e24efc8b67" - integrity sha512-KapVfHEj60e+2QplhqoCMdqW4vDzzvLS3YasfjVoMV4qhsZ3padncMEqOHX6AY4FIAdRzAxG0JQs+kXczAPYeQ== +react-native-webview@^13.6.2: + version "13.6.2" + resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.6.2.tgz#0a9b18793e915add5b5dbdbf32509d7751b49167" + integrity sha512-QzhQ5JCU+Nf2W285DtvCZOVQy/MkJXMwNDYPZvOWQbAOgxJMSSO+BtqXTMA1UPugDsko6PxJ0TxSlUwIwJijDg== dependencies: escape-string-regexp "2.0.0" invariant "2.2.4"