From be9b7a7799983b741cb4fc3ee03948d5f73f5599 Mon Sep 17 00:00:00 2001 From: dominhquang Date: Thu, 24 Aug 2023 14:26:38 +0700 Subject: [PATCH] [Issue-199]: Add the lost internet connection screen --- package.json | 4 +- src/AppNavigator.tsx | 2 +- src/hooks/balance/useGetBalance.ts | 9 +++- src/hooks/transaction/useCancelLoading.ts | 16 ++++++ src/screens/Home/index.tsx | 27 +++++++++- .../Transaction/CancelUnstake/index.tsx | 8 +-- src/screens/Transaction/ClaimReward/index.tsx | 7 ++- src/screens/Transaction/NFT/index.tsx | 7 ++- src/screens/Transaction/SendFundV2/index.tsx | 9 +++- src/screens/Transaction/Stake/index.tsx | 4 ++ src/screens/Transaction/Unbond/index.tsx | 7 ++- src/screens/Transaction/Withdraw/index.tsx | 9 ++-- src/stores/utils/index.ts | 10 ++-- src/utils/i18n/en_US.ts | 2 + src/utils/i18n/vi_VN.ts | 2 + src/utils/i18n/zh_CN.ts | 2 + yarn.lock | 50 ++++++++++++++++--- 17 files changed, 141 insertions(+), 34 deletions(-) create mode 100644 src/hooks/transaction/useCancelLoading.ts diff --git a/package.json b/package.json index 11478e124..ead944511 100644 --- a/package.json +++ b/package.json @@ -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.16-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.16-0", "@subwallet/chain-list": "0.2.16-beta.4", "react-native-svg": "^13.6.0" }, diff --git a/src/AppNavigator.tsx b/src/AppNavigator.tsx index 17dd1f0de..9d3e26724 100644 --- a/src/AppNavigator.tsx +++ b/src/AppNavigator.tsx @@ -515,7 +515,7 @@ const AppNavigator = ({ isAppReady }: Props) => { diff --git a/src/hooks/balance/useGetBalance.ts b/src/hooks/balance/useGetBalance.ts index 308bf5537..81642744e 100644 --- a/src/hooks/balance/useGetBalance.ts +++ b/src/hooks/balance/useGetBalance.ts @@ -1,11 +1,12 @@ import { _ChainInfo } from '@subwallet/chain-list/types'; import { AmountData } from '@subwallet/extension-base/background/KoniTypes'; import { _getChainNativeTokenSlug } from '@subwallet/extension-base/services/chain-service/utils'; -import { useCallback, useEffect, useMemo, useState } from 'react'; +import { useCallback, useContext, useEffect, useMemo, useState } from 'react'; import { useSelector } from 'react-redux'; import { RootState } from 'stores/index'; import { getFreeBalance, updateAssetSetting } from 'messaging/index'; import i18n from 'utils/i18n/i18n'; +import { WebRunnerContext } from 'providers/contexts'; const DEFAULT_BALANCE = { value: '0', symbol: '', decimals: 18 }; @@ -24,6 +25,7 @@ const useGetBalance = (chain = '', address = '', tokenSlug = '') => { const isChainActive = chainStateMap[chain]?.active; const nativeTokenActive = nativeTokenSlug && assetSettingMap[nativeTokenSlug]?.visible; const isTokenActive = assetSettingMap[tokenSlug]?.visible; + const isNetConnected = useContext(WebRunnerContext).isNetConnected; const refreshBalance = useCallback(() => { setIsRefresh({}); @@ -33,6 +35,10 @@ const useGetBalance = (chain = '', address = '', tokenSlug = '') => { let cancel = false; setIsLoading(true); + + if (!isNetConnected) { + return; + } setTokenBalance(DEFAULT_BALANCE); if (address && chain) { @@ -126,6 +132,7 @@ const useGetBalance = (chain = '', address = '', tokenSlug = '') => { isChainActive, isTokenActive, nativeTokenActive, + isNetConnected, ]); return { refreshBalance, tokenBalance, nativeTokenBalance, nativeTokenSlug, isLoading, error }; diff --git a/src/hooks/transaction/useCancelLoading.ts b/src/hooks/transaction/useCancelLoading.ts new file mode 100644 index 000000000..8b624489f --- /dev/null +++ b/src/hooks/transaction/useCancelLoading.ts @@ -0,0 +1,16 @@ +import { useContext, useEffect, useRef } from 'react'; +import { WebRunnerContext } from 'providers/contexts'; + +export const useCancelLoading = (setLoading: (value: boolean) => void) => { + const isSubmit = useRef(false); + const isNetConnected = useContext(WebRunnerContext).isNetConnected; + + useEffect(() => { + if (isSubmit.current && isNetConnected) { + setLoading(false); + isSubmit.current = false; + } + }, [isNetConnected, setLoading]); + + return { isSubmit }; +}; diff --git a/src/screens/Home/index.tsx b/src/screens/Home/index.tsx index e331c470b..6d60d3448 100644 --- a/src/screens/Home/index.tsx +++ b/src/screens/Home/index.tsx @@ -1,7 +1,6 @@ -import React, { useEffect, useRef, useState } from 'react'; +import React, { useContext, useEffect, useRef, useState } from 'react'; import { BottomTabBarButtonProps, createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import StakingScreen from './Staking/StakingScreen'; - import { Platform, StyleSheet, TouchableOpacity, View } from 'react-native'; import { NativeStackNavigationProp } from '@react-navigation/native-stack'; import { Aperture, Database, Globe, Rocket, Wallet } from 'phosphor-react-native'; @@ -29,6 +28,8 @@ import i18n from 'utils/i18n/i18n'; import { RootStackParamList } from 'routes/index'; import { handleTriggerDeeplinkAfterLogin } from 'utils/deeplink'; import { isFirstOpen, setIsFirstOpen } from '../../AppNew'; +import { WebRunnerContext } from 'providers/contexts'; +import { useToast } from 'react-native-toast-notifications'; interface tabbarIconColor { color: string; @@ -183,6 +184,28 @@ export const Home = ({ navigation }: Props) => { const { hasMasterPassword, isReady, isLocked } = useSelector((state: RootState) => state.accountState); const [isLoading, setLoading] = useState(true); const appNavigatorDeepLinkStatus = useRef(AppNavigatorDeepLinkStatus.AVAILABLE); + const { isNetConnected } = useContext(WebRunnerContext); + const isFirstLaunch = useRef(true); + const toast = useToast(); + + useEffect(() => { + if (!isFirstLaunch.current) { + if (isNetConnected) { + toast.hideAll(); + toast.show(i18n.warningTitle.internetConnected, { type: 'success', duration: 5000 }); + } else { + toast.hideAll(); + toast.show(i18n.warningTitle.noInternetConnection, { type: 'danger', duration: 5000 }); + } + } else { + if (!isNetConnected) { + toast.hideAll(); + toast.show(i18n.warningTitle.noInternetConnection, { type: 'danger', duration: 5000 }); + } + isFirstLaunch.current = false; + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isNetConnected]); useEffect(() => { if (isReady && isLoading) { diff --git a/src/screens/Transaction/CancelUnstake/index.tsx b/src/screens/Transaction/CancelUnstake/index.tsx index 0182f7cc2..1161ea0b9 100644 --- a/src/screens/Transaction/CancelUnstake/index.tsx +++ b/src/screens/Transaction/CancelUnstake/index.tsx @@ -26,6 +26,7 @@ import { CancelUnstakeProps } from 'routes/transaction/transactionAction'; import i18n from 'utils/i18n/i18n'; import { ModalRef } from 'types/modalRef'; import { AccountSelector } from 'components/Modal/common/AccountSelector'; +import { useCancelLoading } from 'hooks/transaction/useCancelLoading'; const filterAccount = ( chainInfoMap: Record, @@ -87,10 +88,10 @@ export const CancelUnstake = ({ const { onError, onSuccess } = useHandleSubmitTransaction(onDone); const onPreCheckReadOnly = usePreCheckReadOnly(undefined, from); - + const { isSubmit } = useCancelLoading(setLoading); const onSubmit = useCallback(() => { setLoading(true); - + isSubmit.current = true; setTimeout(() => { submitStakeCancelWithdrawal({ address: from, @@ -101,9 +102,10 @@ export const CancelUnstake = ({ .catch(onError) .finally(() => { setLoading(false); + isSubmit.current = false; }); }, 300); - }, [chain, from, nominatorMetadata.unstakings, onError, onSuccess, unstakeIndex]); + }, [chain, from, isSubmit, nominatorMetadata.unstakings, onError, onSuccess, unstakeIndex]); return ( diff --git a/src/screens/Transaction/ClaimReward/index.tsx b/src/screens/Transaction/ClaimReward/index.tsx index ae8c44f4d..dc03af30f 100644 --- a/src/screens/Transaction/ClaimReward/index.tsx +++ b/src/screens/Transaction/ClaimReward/index.tsx @@ -36,6 +36,7 @@ import { ClaimRewardProps } from 'routes/transaction/transactionAction'; import i18n from 'utils/i18n/i18n'; import { ModalRef } from 'types/modalRef'; import { AccountSelector } from 'components/Modal/common/AccountSelector'; +import { useCancelLoading } from 'hooks/transaction/useCancelLoading'; const filterAccount = ( chainInfoMap: Record, @@ -126,9 +127,10 @@ const ClaimReward = ({ const [isDisabled, setIsDisabled] = useState(true); const { onError, onSuccess } = useHandleSubmitTransaction(onDone); const accountInfo = useGetAccountByAddress(from); + const { isSubmit } = useCancelLoading(setLoading); const onSubmit = useCallback(() => { setLoading(true); - + isSubmit.current = true; setTimeout(() => { submitStakeClaimReward({ address: from, @@ -141,9 +143,10 @@ const ClaimReward = ({ .catch(onError) .finally(() => { setLoading(false); + isSubmit.current = false; }); }, 300); - }, [bondReward, chain, from, onError, onSuccess, reward?.unclaimedReward, stakingType]); + }, [bondReward, chain, from, isSubmit, onError, onSuccess, reward?.unclaimedReward, stakingType]); const onPreCheckReadOnly = usePreCheckReadOnly(undefined, from); diff --git a/src/screens/Transaction/NFT/index.tsx b/src/screens/Transaction/NFT/index.tsx index 92b1a72fd..e1c0badba 100644 --- a/src/screens/Transaction/NFT/index.tsx +++ b/src/screens/Transaction/NFT/index.tsx @@ -35,6 +35,7 @@ import { RootNavigationProps } from 'routes/index'; import { InputAddress } from 'components/Input/InputAddressV2'; import useGetChainPrefixBySlug from 'hooks/chain/useGetChainPrefixBySlug'; import { SendNFTProps } from 'routes/transaction/transactionAction'; +import { useCancelLoading } from 'hooks/transaction/useCancelLoading'; const DEFAULT_ITEM: NftItem = { collectionId: 'unknown', @@ -139,7 +140,7 @@ const SendNFT: React.FC = ({ const [loading, setLoading] = useState(false); const { title, formState, onChangeValue, onChangeChainValue, onDone } = useTransaction('send-nft', NFTFormConfig); const isFormValid = Object.values(formState.isValidated).every(val => val); - + const { isSubmit } = useCancelLoading(setLoading); const { onError, onSuccess } = useHandleSubmitTransaction(onDone); const onChangeReceiverAddress = useCallback( @@ -201,6 +202,7 @@ const SendNFT: React.FC = ({ } setLoading(true); + isSubmit.current = true; setTimeout(() => { // Handle transfer action @@ -209,10 +211,11 @@ const SendNFT: React.FC = ({ .catch(onError) .finally(() => { setLoading(false); + isSubmit.current = false; }); }, 300); }, - [nftChain, nftItem, onError, onSuccess, owner], + [isSubmit, nftChain, nftItem, onError, onSuccess, owner], ); const handleSend = useCallback(() => { diff --git a/src/screens/Transaction/SendFundV2/index.tsx b/src/screens/Transaction/SendFundV2/index.tsx index 19b43887e..ec1cbad5b 100644 --- a/src/screens/Transaction/SendFundV2/index.tsx +++ b/src/screens/Transaction/SendFundV2/index.tsx @@ -69,6 +69,7 @@ import createStylesheet from './styles'; import { useGetBalance } from 'hooks/balance'; import { FreeBalanceDisplay } from 'screens/Transaction/parts/FreeBalanceDisplay'; import { ModalRef } from 'types/modalRef'; +import { useCancelLoading } from 'hooks/transaction/useCancelLoading'; interface TransferFormValues extends TransactionFormValues { to: string; @@ -380,6 +381,7 @@ export const SendFund = ({ const [isBalanceReady, setIsBalanceReady] = useState(true); const [forceUpdateValue, setForceUpdateValue] = useState<{ value: string | null } | undefined>(undefined); const chainStatus = useMemo(() => chainStateMap[chainValue]?.connectionStatus, [chainValue, chainStateMap]); + const { isSubmit } = useCancelLoading(setLoading); const senderAccountName = useMemo(() => { if (!fromValue) { @@ -616,6 +618,7 @@ export const SendFund = ({ (values: TransferFormValues) => { Keyboard.dismiss(); setLoading(true); + isSubmit.current = true; const { chain, destChain, to, value, from, asset } = values; let sendPromise: Promise; @@ -624,6 +627,7 @@ export const SendFund = ({ if (!account) { setLoading(false); + isSubmit.current = false; hideAll(); show("Can't find account"); @@ -639,6 +643,7 @@ export const SendFund = ({ if (isEthereum) { if (!_isTokenTransferredByEvm(chainAsset)) { setLoading(false); + isSubmit.current = false; hideAll(); show('Ledger does not support transfer for this token'); @@ -659,6 +664,7 @@ export const SendFund = ({ } else { if (isLedger) { setLoading(false); + isSubmit.current = false; hideAll(); show('This feature is not available for Ledger account'); @@ -684,10 +690,11 @@ export const SendFund = ({ .catch(onError) .finally(() => { setLoading(false); + isSubmit.current = false; }); }, 300); }, - [accounts, assetRegistry, isTransferAll, hideAll, show, onSuccess, onError], + [isSubmit, accounts, assetRegistry, hideAll, show, isTransferAll, onSuccess, onError], ); const isNextButtonDisable = (() => { diff --git a/src/screens/Transaction/Stake/index.tsx b/src/screens/Transaction/Stake/index.tsx index 2d02f423c..c29213974 100644 --- a/src/screens/Transaction/Stake/index.tsx +++ b/src/screens/Transaction/Stake/index.tsx @@ -51,6 +51,7 @@ import { AccountSelector } from 'components/Modal/common/AccountSelector'; import { BN, BN_ZERO } from '@polkadot/util'; import { isSameAddress } from '@subwallet/extension-base/utils'; import { ChainStatus } from 'hooks/chain/useChainChecker'; +import { useCancelLoading } from 'hooks/transaction/useCancelLoading'; export const Stake = ({ route: { @@ -70,6 +71,7 @@ export const Stake = ({ const [isBalanceReady, setIsBalanceReady] = useState(true); const accountSelectorRef = useRef(); const tokenSelectorRef = useRef(); + const { isSubmit } = useCancelLoading(setLoading); const defaultStakingType: StakingType = useMemo(() => { if (isEthAdr) { @@ -364,6 +366,7 @@ export const Stake = ({ const onSubmit = () => { setLoading(true); + isSubmit.current = true; let bondingPromise: Promise; if (currentPool && currentStakingType === StakingType.POOLED) { @@ -391,6 +394,7 @@ export const Stake = ({ .catch(onError) .finally(() => { setLoading(false); + isSubmit.current = false; }); }, 300); }; diff --git a/src/screens/Transaction/Unbond/index.tsx b/src/screens/Transaction/Unbond/index.tsx index 99441992b..e58e91346 100644 --- a/src/screens/Transaction/Unbond/index.tsx +++ b/src/screens/Transaction/Unbond/index.tsx @@ -39,6 +39,7 @@ import { UnbondProps } from 'routes/transaction/transactionAction'; import i18n from 'utils/i18n/i18n'; import { ModalRef } from 'types/modalRef'; import { AccountSelector } from 'components/Modal/common/AccountSelector'; +import { useCancelLoading } from 'hooks/transaction/useCancelLoading'; const _accountFilterFunc = ( allNominator: NominatorMetadata[], @@ -140,6 +141,7 @@ export const Unbond = ({ const [loading, setLoading] = useState(false); const { onError, onSuccess } = useHandleSubmitTransaction(onDone); + const { isSubmit } = useCancelLoading(setLoading); const accountList = useMemo(() => { return accounts.filter(_accountFilterFunc(allNominatorInfo, chainInfoMap, stakingType, stakingChain)); @@ -177,16 +179,17 @@ export const Unbond = ({ } setLoading(true); - + isSubmit.current = true; setTimeout(() => { unbondingPromise .then(onSuccess) .catch(onError) .finally(() => { setLoading(false); + isSubmit.current = false; }); }, 300); - }, [currentValidator, currentValue, mustChooseValidator, nominatorMetadata, onError, onSuccess]); + }, [currentValidator, currentValue, isSubmit, mustChooseValidator, nominatorMetadata, onError, onSuccess]); const nominators = useMemo(() => { if (from && nominatorMetadata?.nominations && nominatorMetadata.nominations.length) { diff --git a/src/screens/Transaction/Withdraw/index.tsx b/src/screens/Transaction/Withdraw/index.tsx index f3bb48ba5..0f8cc0c5f 100644 --- a/src/screens/Transaction/Withdraw/index.tsx +++ b/src/screens/Transaction/Withdraw/index.tsx @@ -38,6 +38,7 @@ import { ModalRef } from 'types/modalRef'; import { AccountSelector } from 'components/Modal/common/AccountSelector'; import { getAstarWithdrawable } from '@subwallet/extension-base/koni/api/staking/bonding/astar'; import { _STAKING_CHAIN_GROUP } from '@subwallet/extension-base/services/chain-service/constants'; +import { useCancelLoading } from 'hooks/transaction/useCancelLoading'; const filterAccount = ( chainInfoMap: Record, @@ -77,6 +78,7 @@ export const Withdraw = ({ const accountInfo = useGetAccountByAddress(from); const { onError, onSuccess } = useHandleSubmitTransaction(onDone); const accountSelectorRef = useRef(); + const { isSubmit } = useCancelLoading(setLoading); useEffect(() => { // Trick to trigger validate when case single account @@ -112,10 +114,10 @@ export const Withdraw = ({ const onSubmit = useCallback(() => { setLoading(true); - + isSubmit.current = true; if (!unstakingInfo) { setLoading(false); - + isSubmit.current = false; return; } @@ -135,9 +137,10 @@ export const Withdraw = ({ .catch(onError) .finally(() => { setLoading(false); + isSubmit.current = false; }); }, 300); - }, [chain, nominatorMetadata, onError, onSuccess, stakingType, unstakingInfo]); + }, [chain, isSubmit, nominatorMetadata, onError, onSuccess, stakingType, unstakingInfo]); return ( diff --git a/src/stores/utils/index.ts b/src/stores/utils/index.ts index 2fa3ba1e9..b7ad1eaa1 100644 --- a/src/stores/utils/index.ts +++ b/src/stores/utils/index.ts @@ -42,10 +42,6 @@ import { WalletConnectSessionRequest } from '@subwallet/extension-base/services/ import { SessionTypes } from '@walletconnect/types'; // Setup redux stores -function voidFn() { - // do nothing -} - // Base // AccountState store export const updateAccountData = (data: AccountsWithCurrentAddress) => { @@ -124,7 +120,7 @@ export const updateAuthorizeRequests = (data: AuthorizeRequest[]) => { export const subscribeAuthorizeRequests = lazySubscribeMessage( 'pri(authorize.requestsV2)', null, - voidFn, + updateAuthorizeRequests, updateAuthorizeRequests, ); @@ -138,7 +134,7 @@ export const updateMetadataRequests = (data: MetadataRequest[]) => { export const subscribeMetadataRequests = lazySubscribeMessage( 'pri(metadata.requests)', null, - voidFn, + updateMetadataRequests, updateMetadataRequests, ); @@ -152,7 +148,7 @@ export const updateSigningRequests = (data: SigningRequest[]) => { export const subscribeSigningRequests = lazySubscribeMessage( 'pri(signing.requests)', null, - voidFn, + updateSigningRequests, updateSigningRequests, ); diff --git a/src/utils/i18n/en_US.ts b/src/utils/i18n/en_US.ts index 8580c2188..0aaac1fb3 100644 --- a/src/utils/i18n/en_US.ts +++ b/src/utils/i18n/en_US.ts @@ -1004,6 +1004,8 @@ export const en = { updateNetwork: 'Update network', expiredConnectionTitle: 'Connection expired', unsupportedNetworkTitle: 'Unsupported network', + noInternetConnection: 'No internet connection', + internetConnected: 'Internet connected', }, warningMessage: { passwordTooShort: 'Password is too short', diff --git a/src/utils/i18n/vi_VN.ts b/src/utils/i18n/vi_VN.ts index 1ddc4c3f7..ee0b7a3e5 100644 --- a/src/utils/i18n/vi_VN.ts +++ b/src/utils/i18n/vi_VN.ts @@ -1003,6 +1003,8 @@ export const vi = { updateNetwork: 'Cập nhật mạng', expiredConnectionTitle: 'Kết nối đã quá hạn.', unsupportedNetworkTitle: 'Mạng không được hỗ trợ', + noInternetConnection: 'No internet connection', + internetConnected: 'Internet connected', }, warningMessage: { passwordTooShort: 'Mật khẩu quá ngắn', diff --git a/src/utils/i18n/zh_CN.ts b/src/utils/i18n/zh_CN.ts index ccc04e357..778351a53 100644 --- a/src/utils/i18n/zh_CN.ts +++ b/src/utils/i18n/zh_CN.ts @@ -993,6 +993,8 @@ export const zh = { updateNetwork: '更新网络', expiredConnectionTitle: '连接已过期', unsupportedNetworkTitle: '未支持的网络', + noInternetConnection: 'No internet connection', + internetConnected: 'Internet connected', }, warningMessage: { passwordTooShort: '密码过短', diff --git a/yarn.lock b/yarn.lock index 5cb5bd8c7..4deebebdd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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.16-0": + version "1.1.16-0" + resolved "https://registry.yarnpkg.com/@subwallet/extension-base/-/extension-base-1.1.16-0.tgz#7bad0bc208bc729fcc2936a0d6d196442ced0b31" + integrity sha512-TG3s+/OQxzMVC1D7m+kqRV0jimfSEwLvp1PmQwlSd05XG+8l5dntRzOs6IQbpHbDp/I2LL8aGctbZBMhjaC4wQ== dependencies: "@acala-network/api" "^5.0.2" "@apollo/client" "^3.7.14" @@ -4225,10 +4225,10 @@ "@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/extension-base" "^1.1.16-0" + "@subwallet/extension-chains" "^1.1.16-0" + "@subwallet/extension-dapp" "^1.1.16-0" + "@subwallet/extension-inject" "^1.1.16-0" "@subwallet/keyring" "^0.1.1" "@subwallet/ui-keyring" "^0.1.1" "@walletconnect/sign-client" "^2.8.4" @@ -4275,6 +4275,17 @@ "@polkadot/util-crypto" "^12.3.2" "@subwallet/extension-inject" "^1.1.15-0" +"@subwallet/extension-chains@^1.1.16-0": + version "1.1.16-0" + resolved "https://registry.yarnpkg.com/@subwallet/extension-chains/-/extension-chains-1.1.16-0.tgz#8a0649b1322f7d8c8a3e779b9bb61ed8a6750269" + integrity sha512-Xn337Z+u4oEZBFgJ1JaQTfUb++rhn17/hqPAEd5BqPaJahChXy6Bhg2fliZMqjq7rsPLQhCu24oPPO21hI/BlA== + 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.16-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" @@ -4285,6 +4296,16 @@ "@polkadot/util-crypto" "^12.3.2" "@subwallet/extension-inject" "^1.1.15-0" +"@subwallet/extension-dapp@^1.1.16-0": + version "1.1.16-0" + resolved "https://registry.yarnpkg.com/@subwallet/extension-dapp/-/extension-dapp-1.1.16-0.tgz#f0467753de72448ff8c93928534b101702ef4519" + integrity sha512-L78GD5Hti2x1pGUhQHsF6Grw9d3NeEQgpTJ0rIkmmJssRImmcpsXGm2lO2AI4a8cdAwhe9i7aTq0gqReKILGvQ== + dependencies: + "@babel/runtime" "^7.20.6" + "@polkadot/util" "^12.3.2" + "@polkadot/util-crypto" "^12.3.2" + "@subwallet/extension-inject" "^1.1.16-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" @@ -4298,6 +4319,19 @@ "@polkadot/x-global" "^12.2.1" web3-core "^1.10.0" +"@subwallet/extension-inject@^1.1.16-0": + version "1.1.16-0" + resolved "https://registry.yarnpkg.com/@subwallet/extension-inject/-/extension-inject-1.1.16-0.tgz#c30b952806ae13c6597d161e7571340c78914c73" + integrity sha512-9kyzeXH7A7AwueD9HmJs1/nhzG+9+x+JRkSoNXu7qc+C9oTdBOQQWjmud1JHGtSeakBBppz6LeQ94Q/M0m1PLg== + dependencies: + "@babel/runtime" "^7.20.6" + "@polkadot/rpc-provider" "^10.9.1" + "@polkadot/types" "^10.9.1" + "@polkadot/util" "^12.3.2" + "@polkadot/util-crypto" "^12.3.2" + "@polkadot/x-global" "^12.2.1" + web3-core "^1.10.0" + "@subwallet/keyring@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@subwallet/keyring/-/keyring-0.1.1.tgz#659469ddc8a9a2655f92ff5ade9e7e032ca42074"