From fbfa82d5811909d1245343b8f4aaabff7b92f0ec Mon Sep 17 00:00:00 2001 From: thomas-portkey Date: Wed, 22 Jan 2025 16:37:15 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20adjust=20eoa=20contr?= =?UTF-8?q?act?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/api/api-eoa/activity/index.ts | 6 + packages/api/api-eoa/assets/index.ts | 39 +++ packages/api/api-eoa/assets/util.ts | 0 packages/api/api-eoa/awaken/index.ts | 14 ++ packages/api/api-eoa/chain/index.ts | 3 + packages/api/api-eoa/contact/index.ts | 82 +++++++ packages/api/api-eoa/contact/type.ts | 3 + packages/api/api-eoa/deposit/index.ts | 35 +++ packages/api/api-eoa/device/index.ts | 4 + packages/api/api-eoa/discover/index.ts | 22 ++ packages/api/api-eoa/es/index.ts | 47 ++++ packages/api/api-eoa/es/type.ts | 25 ++ packages/api/api-eoa/es/utils/index.ts | 94 ++++++++ packages/api/api-eoa/freeMint/index.ts | 24 ++ packages/api/api-eoa/guide/index.ts | 11 + packages/api/api-eoa/im/index.ts | 6 + packages/api/api-eoa/index.ts | 105 +++++++++ packages/api/api-eoa/manager/index.ts | 6 + packages/api/api-eoa/message/index.ts | 5 + packages/api/api-eoa/message/utils.ts | 12 + packages/api/api-eoa/privacy/index.ts | 3 + packages/api/api-eoa/receive/index.ts | 6 + packages/api/api-eoa/recent/index.ts | 3 + packages/api/api-eoa/red-package/index.ts | 30 +++ packages/api/api-eoa/referral/index.ts | 11 + packages/api/api-eoa/security/index.ts | 27 +++ packages/api/api-eoa/send/index.ts | 10 + packages/api/api-eoa/server.ts | 65 +++++ packages/api/api-eoa/switch/index.ts | 6 + packages/api/api-eoa/token/index.ts | 50 ++++ packages/api/api-eoa/txFee/index.ts | 6 + packages/api/api-eoa/types.ts | 14 ++ packages/api/api-eoa/utils/index.ts | 70 ++++++ packages/api/api-eoa/utils/wallet.ts | 124 ++++++++++ packages/api/api-eoa/verification/index.ts | 23 ++ packages/api/api-eoa/verification/utils.ts | 98 ++++++++ packages/api/api-eoa/wallet/index.ts | 67 ++++++ .../constants-eoa/network/backend-network.ts | 62 +++++ .../constants/constants-eoa/network/index.ts | 42 ++++ packages/constants/network.ts | 4 +- packages/hooks/hooks-eoa/network/chain.ts | 75 ++++++ packages/hooks/hooks-eoa/network/index.ts | 54 +++++ packages/mobile-aelf/ios/Podfile.lock | 222 +++++++++--------- .../js/components/Updater/index.tsx | 64 ++--- .../js/contexts/useInterface/actions.ts | 13 +- .../js/contexts/useInterface/index.tsx | 17 +- packages/mobile-aelf/js/hooks/contract.ts | 138 ++++++++--- .../js/pages/Home/HomeTab/index.tsx | 90 ++++++- packages/mobile-aelf/js/store/config.ts | 3 +- packages/mobile-aelf/js/store/rootReducer.ts | 2 + packages/store/store-eoa/network/actions.ts | 12 + packages/store/store-eoa/network/slice.ts | 33 +++ packages/store/store-eoa/network/type.ts | 7 + packages/types/types-eoa/chain.ts | 17 ++ packages/types/types-eoa/network.ts | 28 +++ packages/types/types-eoa/store.ts | 3 + 56 files changed, 1818 insertions(+), 224 deletions(-) create mode 100644 packages/api/api-eoa/activity/index.ts create mode 100644 packages/api/api-eoa/assets/index.ts create mode 100644 packages/api/api-eoa/assets/util.ts create mode 100644 packages/api/api-eoa/awaken/index.ts create mode 100644 packages/api/api-eoa/chain/index.ts create mode 100644 packages/api/api-eoa/contact/index.ts create mode 100644 packages/api/api-eoa/contact/type.ts create mode 100644 packages/api/api-eoa/deposit/index.ts create mode 100644 packages/api/api-eoa/device/index.ts create mode 100644 packages/api/api-eoa/discover/index.ts create mode 100644 packages/api/api-eoa/es/index.ts create mode 100644 packages/api/api-eoa/es/type.ts create mode 100644 packages/api/api-eoa/es/utils/index.ts create mode 100644 packages/api/api-eoa/freeMint/index.ts create mode 100644 packages/api/api-eoa/guide/index.ts create mode 100644 packages/api/api-eoa/im/index.ts create mode 100644 packages/api/api-eoa/index.ts create mode 100644 packages/api/api-eoa/manager/index.ts create mode 100644 packages/api/api-eoa/message/index.ts create mode 100644 packages/api/api-eoa/message/utils.ts create mode 100644 packages/api/api-eoa/privacy/index.ts create mode 100644 packages/api/api-eoa/receive/index.ts create mode 100644 packages/api/api-eoa/recent/index.ts create mode 100644 packages/api/api-eoa/red-package/index.ts create mode 100644 packages/api/api-eoa/referral/index.ts create mode 100644 packages/api/api-eoa/security/index.ts create mode 100644 packages/api/api-eoa/send/index.ts create mode 100644 packages/api/api-eoa/server.ts create mode 100644 packages/api/api-eoa/switch/index.ts create mode 100644 packages/api/api-eoa/token/index.ts create mode 100644 packages/api/api-eoa/txFee/index.ts create mode 100644 packages/api/api-eoa/types.ts create mode 100644 packages/api/api-eoa/utils/index.ts create mode 100644 packages/api/api-eoa/utils/wallet.ts create mode 100644 packages/api/api-eoa/verification/index.ts create mode 100644 packages/api/api-eoa/verification/utils.ts create mode 100644 packages/api/api-eoa/wallet/index.ts create mode 100644 packages/constants/constants-eoa/network/backend-network.ts create mode 100644 packages/constants/constants-eoa/network/index.ts create mode 100644 packages/hooks/hooks-eoa/network/chain.ts create mode 100644 packages/hooks/hooks-eoa/network/index.ts create mode 100644 packages/store/store-eoa/network/actions.ts create mode 100644 packages/store/store-eoa/network/slice.ts create mode 100644 packages/store/store-eoa/network/type.ts create mode 100644 packages/types/types-eoa/chain.ts create mode 100644 packages/types/types-eoa/network.ts diff --git a/packages/api/api-eoa/activity/index.ts b/packages/api/api-eoa/activity/index.ts new file mode 100644 index 0000000000..c922095056 --- /dev/null +++ b/packages/api/api-eoa/activity/index.ts @@ -0,0 +1,6 @@ +export default { + activityList: '/api/app/user/activities/activities', + activity: '/api/app/user/activities/activity', + activityListWithAddress: '/api/app/user/activities/transactions', + reportTransaction: '/api/app/report/transaction', +} as const; diff --git a/packages/api/api-eoa/assets/index.ts b/packages/api/api-eoa/assets/index.ts new file mode 100644 index 0000000000..b854d7431d --- /dev/null +++ b/packages/api/api-eoa/assets/index.ts @@ -0,0 +1,39 @@ +export default { + fetchAccountTokenList: '/api/app/user/assets/token', + fetchAccountTokenListV2: '/api/app/v2/user/assets/token', + fetchAccountNftCollectionList: '/api/app/user/assets/nftCollections', + fetchAccountNftCollectionItemList: '/api/app/user/assets/nftItems', + fetchAccountNftCollectionItem: { + target: '/api/app/user/assets/nftItem', + config: { + method: 'POST', + timeout: 20 * 1000, + }, + }, + // nft and tokens + fetchAccountAssetsByKeywords: '/api/app/user/assets/searchUserAssets', + fetchAccountAssetsByKeywordsV2: '/api/app/v2/user/assets/searchUserAssets', + // nft and token in crypto box + fetchCryptoBoxAccountAssetsByKeywords: '/api/app/v2/user/assets/searchUserPackageAssets', + fetchTokenPrice: { + target: '/api/app/tokens/prices', + config: { method: 'GET' }, + }, + fetchTokenAllowanceList: '/api/app/tokens/allowances', + getSymbolImages: { + target: '/api/app/user/assets/symbolImages', + config: { method: 'GET' }, + }, + getTokenBalance: { + target: '/api/app/user/assets/tokenBalance', + config: { method: 'GET' }, + }, + getAssetsEstimation: { + target: '/api/app/user/assets/asset-estimation', + config: { method: 'GET' }, + }, + getAwakenTokenList: { + target: '/api/app/user/assets/awaken/token', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/assets/util.ts b/packages/api/api-eoa/assets/util.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/api/api-eoa/awaken/index.ts b/packages/api/api-eoa/awaken/index.ts new file mode 100644 index 0000000000..6053b9a0c4 --- /dev/null +++ b/packages/api/api-eoa/awaken/index.ts @@ -0,0 +1,14 @@ +export default { + getSwapRoutes: { + target: '/api/app/route/best-swap-routes', + config: { method: 'GET' }, + }, + getAwakenGasFee: { + target: '/api/app/transaction-fee', + config: { method: 'GET' }, + }, + getAwakenTokenPrice: { + target: '/api/app/token/price', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/chain/index.ts b/packages/api/api-eoa/chain/index.ts new file mode 100644 index 0000000000..c2f109ab37 --- /dev/null +++ b/packages/api/api-eoa/chain/index.ts @@ -0,0 +1,3 @@ +export default { + getChains: '/api/app/getChains', +} as const; diff --git a/packages/api/api-eoa/contact/index.ts b/packages/api/api-eoa/contact/index.ts new file mode 100644 index 0000000000..ca43c8e451 --- /dev/null +++ b/packages/api/api-eoa/contact/index.ts @@ -0,0 +1,82 @@ +import { BaseConfig } from '../../types'; + +const BASE_URL = `/api/app/contacts`; +const BASE_URL_V2 = `/api/app/address-book`; + +const KeyList = [ + 'addContact', + 'editContact', + 'deleteContact', + 'checkContactName', + 'readImputation', + 'contactPrivacyList', + 'updateContactPrivacy', +] as const; + +const KeyListV2 = [ + 'createSaved', + 'updateSaved', + 'deleteSaved', + 'checkSavedName', + 'getSavedList', + 'getSupportNetworkList', +] as const; + +const ApiObject: Record<(typeof KeyList)[number], BaseConfig> = { + addContact: { + target: `${BASE_URL}`, + config: { method: 'POST' }, + }, + editContact: { + target: `${BASE_URL}`, + config: { method: 'PUT' }, + }, + deleteContact: { + target: `${BASE_URL}`, + config: { method: 'DELETE' }, + }, + checkContactName: { + target: `${BASE_URL}/exist`, + config: { method: 'GET' }, + }, + readImputation: { + target: `${BASE_URL}/read`, + config: { method: 'POST' }, + }, + contactPrivacyList: { + target: `/api/app/privacyPermission`, + config: { method: 'GET' }, + }, + updateContactPrivacy: { + target: `/api/app/privacyPermission`, + config: { method: 'POST' }, + }, +}; +const ApiObjectV2: Record<(typeof KeyListV2)[number], BaseConfig> = { + createSaved: { + target: `${BASE_URL_V2}/create`, + config: { method: 'POST' }, + }, + updateSaved: { + target: `${BASE_URL_V2}/update`, + config: { method: 'POST' }, + }, + deleteSaved: { + target: `${BASE_URL_V2}/delete`, + config: { method: 'POST' }, + }, + checkSavedName: { + target: `${BASE_URL_V2}/exist`, + config: { method: 'GET' }, + }, + getSavedList: { + target: `${BASE_URL_V2}/read`, + config: { method: 'GET' }, + }, + getSupportNetworkList: { + target: `${BASE_URL_V2}/network`, + config: { method: 'GET' }, + }, +}; + +export default Object.assign(ApiObject, ApiObjectV2); diff --git a/packages/api/api-eoa/contact/type.ts b/packages/api/api-eoa/contact/type.ts new file mode 100644 index 0000000000..a1a6e02565 --- /dev/null +++ b/packages/api/api-eoa/contact/type.ts @@ -0,0 +1,3 @@ +export interface CheckContactNameResponseType { + existed: boolean; +} diff --git a/packages/api/api-eoa/deposit/index.ts b/packages/api/api-eoa/deposit/index.ts new file mode 100644 index 0000000000..0e36d9a312 --- /dev/null +++ b/packages/api/api-eoa/deposit/index.ts @@ -0,0 +1,35 @@ +export default { + getTokenList: { + target: '/api/app/transfer/token/list', + config: { method: 'GET' }, + }, + getTokenListByNetwork: { + target: '/api/app/transfer/network/tokens', + config: { method: 'GET' }, + }, + getDepositTokenList: { + target: '/api/app/transfer/token/option', + config: { method: 'GET' }, + }, + getNetworkList: { + target: '/api/app/transfer/network/list', + config: { method: 'GET' }, + }, + getDepositInfo: { + target: '/api/app/transfer/deposit/info', + config: { method: 'GET' }, + }, + depositCalculator: { + target: '/api/app/transfer/deposit/calculator', + config: { method: 'GET' }, + }, + recordList: { + target: '/api/app/transfer/record/list', + config: { method: 'GET' }, + }, + getTransferToken: { + target: '/api/app/transfer/connect/token', + config: { method: 'POST' }, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + }, +} as const; diff --git a/packages/api/api-eoa/device/index.ts b/packages/api/api-eoa/device/index.ts new file mode 100644 index 0000000000..9121feda0e --- /dev/null +++ b/packages/api/api-eoa/device/index.ts @@ -0,0 +1,4 @@ +export default { + fetchEncrypt: '/api/app/account/device/encrypt', + fetchDecrypt: '/api/app/account/device/decrypt', +} as const; diff --git a/packages/api/api-eoa/discover/index.ts b/packages/api/api-eoa/discover/index.ts new file mode 100644 index 0000000000..ddcf6b1375 --- /dev/null +++ b/packages/api/api-eoa/discover/index.ts @@ -0,0 +1,22 @@ +export default { + addBookmark: '/api/app/bookmarks', + deleteAllBookmark: { + target: '/api/app/bookmarks', + config: { method: 'DELETE' }, + }, + deleteBookmark: '/api/app/bookmarks/modify', + getBookmarks: { + target: '/api/app/bookmarks', + config: { method: 'GET' }, + }, + getCryptoCurrencyList: { + target: '/api/app/cryptocurrency/list', + config: { method: 'GET' }, + }, + markFavorite: { + target: '/api/app/cryptocurrency/mark', + }, + unMarkFavorite: { + target: '/api/app/cryptocurrency/unmark', + }, +} as const; diff --git a/packages/api/api-eoa/es/index.ts b/packages/api/api-eoa/es/index.ts new file mode 100644 index 0000000000..17b2f42fe8 --- /dev/null +++ b/packages/api/api-eoa/es/index.ts @@ -0,0 +1,47 @@ +import { ESBaseConfig } from './type'; + +const Method = 'GET'; +const BaseESUrl = `/api/app/`; + +const KeyList = [ + 'getUserTokenList', + 'getChainsInfo', + 'getRegisterResult', + 'getRecoverResult', + 'getContactList', + 'getContactListNew', + 'getCaHolder', +] as const; + +const ApiObject: Record<(typeof KeyList)[number], ESBaseConfig> = { + getUserTokenList: { + target: `${BaseESUrl}search/usertokenindex`, + config: { method: Method }, + }, + getChainsInfo: { + target: `${BaseESUrl}search/chainsinfoindex`, + config: { method: Method, params: { sort: 'chainId' } }, + }, + getRegisterResult: { + target: `${BaseESUrl}search/accountregisterindex`, + config: { method: Method }, + }, + getRecoverResult: { + target: `${BaseESUrl}search/accountrecoverindex`, + config: { method: Method }, + }, + getContactList: { + target: `${BaseESUrl}contacts/list`, + config: { method: Method }, + }, + getContactListNew: { + target: `${BaseESUrl}address-book/list`, + config: { method: Method }, + }, + getCaHolder: { + target: `${BaseESUrl}search/caholderindex`, + config: { method: Method }, + }, +}; + +export default ApiObject; diff --git a/packages/api/api-eoa/es/type.ts b/packages/api/api-eoa/es/type.ts new file mode 100644 index 0000000000..70ea8f1e0a --- /dev/null +++ b/packages/api/api-eoa/es/type.ts @@ -0,0 +1,25 @@ +import { CustomFetchConfig } from '@portkey-wallet/utils/fetch'; +import { BaseConfig, RequestConfig } from '../../types'; + +export interface ESConfig extends CustomFetchConfig { + params?: { + filter?: string; + sort?: string; + sortType?: 0 | 1; + skipCount?: number; + maxResultCount?: number; + }; +} + +export type ESBaseConfig = BaseConfig & { + config: ESConfig; +}; + +export type ES_API_REQ_FUNCTION = (config?: RequestConfig & ESConfig) => Promise<{ type: 'timeout' } | any>; + +export interface IGetContactListParams { + page: number; + size: number; + modificationTime: string; + keyword?: string; +} diff --git a/packages/api/api-eoa/es/utils/index.ts b/packages/api/api-eoa/es/utils/index.ts new file mode 100644 index 0000000000..d388292b30 --- /dev/null +++ b/packages/api/api-eoa/es/utils/index.ts @@ -0,0 +1,94 @@ +import { request } from '@portkey-wallet/api/api-did'; +import { GetContractListApiType } from '@portkey-wallet/types/types-ca/contact'; +import { TGetContactListApiType } from '@portkey-wallet/types/types-ca/contactNew'; + +import { IGetContactListParams } from '../type'; + +export const getContactList = ( + baseURL: string, + { page, size, modificationTime, keyword }: IGetContactListParams, +): Promise => { + return request.es.getContactList({ + baseURL, + params: { + filter: `modificationTime: [* TO ${modificationTime}] AND isDeleted: false`, + sort: 'modificationTime', + sortType: 0, + skipCount: (page - 1) * size, + maxResultCount: size, + keyword, + }, + }); +}; + +export const getContactEventList = ( + baseURL: string, + { page, size, modificationTime, fetchTime, keyword }: IGetContactListParams & { fetchTime: string }, +): Promise => { + return request.es.getContactList({ + baseURL, + params: { + filter: `modificationTime: [${modificationTime} TO ${fetchTime}]`, + sort: 'modificationTime', + sortType: 0, + skipCount: (page - 1) * size, + maxResultCount: size, + keyword, + }, + }); +}; + +export const getContactListV2 = ( + baseURL: string, + { page, size, modificationTime, keyword }: IGetContactListParams, +): Promise => { + return request.es.getContactListNew({ + baseURL, + params: { + filter: `modificationTime: [* TO ${modificationTime}] AND isDeleted: false`, + sort: 'modificationTime', + sortType: 0, + skipCount: (page - 1) * size, + maxResultCount: size, + keyword, + }, + }); +}; + +export const getContactEventListV2 = ( + baseURL: string, + { page, size, modificationTime, fetchTime, keyword }: IGetContactListParams & { fetchTime: string }, +): Promise => { + return request.es.getContactListNew({ + baseURL, + params: { + filter: `modificationTime: [${modificationTime} TO ${fetchTime}]`, + sort: 'modificationTime', + sortType: 0, + skipCount: (page - 1) * size, + maxResultCount: size, + keyword, + }, + }); +}; + +export const getCaHolder = ( + baseURL: string, + { caHash }: { caHash: string }, +): Promise<{ + items: Array<{ + userId: string; + caAddress: string; + caHash: string; + id: string; + nickName: string; + avatar: string; + }>; +}> => { + return request.es.getCaHolder({ + baseURL, + params: { + filter: `caHash: ${caHash}`, + }, + }); +}; diff --git a/packages/api/api-eoa/freeMint/index.ts b/packages/api/api-eoa/freeMint/index.ts new file mode 100644 index 0000000000..9fee9fe1c4 --- /dev/null +++ b/packages/api/api-eoa/freeMint/index.ts @@ -0,0 +1,24 @@ +export default { + getRecentStatus: { + target: '/api/app/mint/recentStatus', + config: { method: 'GET' }, + }, + getMintInfo: { + target: '/api/app/mint/Info', + config: { method: 'GET' }, + }, + confirmMint: '/api/app/mint/confirm', + confirmAgain: '/api/app/mint/mintAgain', + getMintStatus: { + target: '/api/app/mint/status', + config: { method: 'GET' }, + }, + getMintDetail: { + target: '/api/app/mint/detail', + config: { method: 'GET' }, + }, + getMintItemInfo: { + target: '/api/app/mint/itemInfo', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/guide/index.ts b/packages/api/api-eoa/guide/index.ts new file mode 100644 index 0000000000..121d8a12bc --- /dev/null +++ b/packages/api/api-eoa/guide/index.ts @@ -0,0 +1,11 @@ +export default { + getGuideList: { + target: '/api/app/user/guide/list', + config: { method: 'GET' }, + }, + getGuideItem: { + target: '/api/app/user/guide/query', + config: { method: 'GET' }, + }, + finishGuideItem: '/api/app/user/guide/finish', +} as const; diff --git a/packages/api/api-eoa/im/index.ts b/packages/api/api-eoa/im/index.ts new file mode 100644 index 0000000000..b87f3eeaf9 --- /dev/null +++ b/packages/api/api-eoa/im/index.ts @@ -0,0 +1,6 @@ +export default { + getImageThumb: { + target: '/api/app/image/getThumbnail', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/index.ts b/packages/api/api-eoa/index.ts new file mode 100644 index 0000000000..961c03b31c --- /dev/null +++ b/packages/api/api-eoa/index.ts @@ -0,0 +1,105 @@ +import walletApi from './wallet'; +import verificationApi from './verification'; +import contactApi from './contact'; +import chainApi from './chain'; +import assetsApi from './assets'; +import recentApi from './recent'; +import tokenApi from './token'; +import deviceApi from './device'; +import messageApi from './message'; +import switchApi from './switch'; +import discoverApi from './discover'; +import txFeeApi from './txFee'; +import imApi from './im'; +import privacyApi from './privacy'; +import sendApi from './send'; + +import esApi from './es'; +import myServer, { DidService } from './server'; +import { API_REQ_FUNCTION } from '../types'; +import { ES_API_REQ_FUNCTION } from './es/type'; +import activityApi from './activity'; +import securityApi from './security'; +import guideApi from './guide'; +import managerApi from './manager'; +import referralApi from './referral'; +import depositApi from './deposit'; +import redPackageApi from './red-package'; +import freeMintApi from './freeMint'; +import receiveApi from './receive'; +import awakenApi from './awaken'; + +export const DEFAULT_METHOD = 'POST'; + +/** + * api request configuration directory + * @example + * upload: { + * target: '/api/file-management/file-descriptor/upload', + * baseConfig: { method: 'POST', }, + * }, + * or: + * upload:'/api/file-management/file-descriptor/upload' + * + * @description api configuration default method is from DEFAULT_METHOD + * @type {UrlObj} // The type of this object from UrlObj. + */ + +export const BASE_APIS = {}; + +export const EXPAND_APIS = { + wallet: walletApi, + verify: verificationApi, + contact: contactApi, + chain: chainApi, + // token: tokenApi, + activity: activityApi, + assets: assetsApi, + recent: recentApi, + token: tokenApi, + device: deviceApi, + message: messageApi, + switch: switchApi, + discover: discoverApi, + txFee: txFeeApi, + im: imApi, + security: securityApi, + privacy: privacyApi, + guide: guideApi, + manager: managerApi, + referral: referralApi, + deposit: depositApi, + redPackage: redPackageApi, + freeMintApi: freeMintApi, + receive: receiveApi, + sendApi: sendApi, + awakenApi: awakenApi, +}; + +export type BASE_REQ_TYPES = { + [x in keyof typeof BASE_APIS]: API_REQ_FUNCTION; +}; + +export type EXPAND_REQ_TYPES = { + [X in keyof typeof EXPAND_APIS]: { + [K in keyof (typeof EXPAND_APIS)[X]]: API_REQ_FUNCTION; + }; +}; + +export type ES_REQ_TYPES = Record; + +myServer.parseRouter('es', esApi as any); + +myServer.parseRouter('base', BASE_APIS); + +Object.entries(EXPAND_APIS).forEach(([key, value]) => { + myServer.parseRouter(key, value as any); +}); + +export interface IRequest extends BASE_REQ_TYPES, EXPAND_REQ_TYPES { + es: ES_REQ_TYPES; +} + +const request = myServer as unknown as IRequest & DidService; + +export { request }; diff --git a/packages/api/api-eoa/manager/index.ts b/packages/api/api-eoa/manager/index.ts new file mode 100644 index 0000000000..1fca7568cb --- /dev/null +++ b/packages/api/api-eoa/manager/index.ts @@ -0,0 +1,6 @@ +export default { + checkManagerCount: { + target: '/api/app/account/checkManagerCount', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/message/index.ts b/packages/api/api-eoa/message/index.ts new file mode 100644 index 0000000000..cb01d4a85a --- /dev/null +++ b/packages/api/api-eoa/message/index.ts @@ -0,0 +1,5 @@ +export default { + sendScanLoginSuccess: '/api/app/message/scanLoginSuccess', + sendScanLogin: '/api/app/message/scanLogin', + checkQRCodeExist: '/api/app/qrcode', +}; diff --git a/packages/api/api-eoa/message/utils.ts b/packages/api/api-eoa/message/utils.ts new file mode 100644 index 0000000000..e7837cac55 --- /dev/null +++ b/packages/api/api-eoa/message/utils.ts @@ -0,0 +1,12 @@ +import { request } from '../index'; +type sendScanLoginSuccessParams = { + targetClientId: string; +}; + +export async function sendScanLoginSuccess({ targetClientId }: sendScanLoginSuccessParams) { + return request.message.sendScanLoginSuccess({ params: { targetClientId } }); +} + +export const checkQRCodeExist = (id: string): Promise => { + return request.message.checkQRCodeExist({ params: { id } }); +}; diff --git a/packages/api/api-eoa/privacy/index.ts b/packages/api/api-eoa/privacy/index.ts new file mode 100644 index 0000000000..9e9bbffb51 --- /dev/null +++ b/packages/api/api-eoa/privacy/index.ts @@ -0,0 +1,3 @@ +export default { + privacyPolicy: '/api/app/privacypolicy/sign', +} as const; diff --git a/packages/api/api-eoa/receive/index.ts b/packages/api/api-eoa/receive/index.ts new file mode 100644 index 0000000000..5ef3fe686c --- /dev/null +++ b/packages/api/api-eoa/receive/index.ts @@ -0,0 +1,6 @@ +export default { + fetchReceiveNetworkList: { + target: '/api/app/transfer/getReceiveNetworkList', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/recent/index.ts b/packages/api/api-eoa/recent/index.ts new file mode 100644 index 0000000000..110a98d58d --- /dev/null +++ b/packages/api/api-eoa/recent/index.ts @@ -0,0 +1,3 @@ +export default { + fetchRecentTransactionUsers: '/api/app/user/assets/recentTransactionUsers', +} as const; diff --git a/packages/api/api-eoa/red-package/index.ts b/packages/api/api-eoa/red-package/index.ts new file mode 100644 index 0000000000..2e5d5bbeab --- /dev/null +++ b/packages/api/api-eoa/red-package/index.ts @@ -0,0 +1,30 @@ +export default { + getFirstCryptoGift: { + target: '/api/app/cryptogift/history/first', + config: { method: 'GET' }, + }, + getCryptoGiftHistories: { + target: '/api/app/cryptogift/histories', + config: { method: 'GET' }, + }, + getCryptoGiftDetail: { + target: '/api/app/redpackage/detail', + config: { method: 'GET' }, + }, + sendCryptoGift: { + target: '/api/app/redpackage/send', + config: { method: 'POST' }, + }, + generateCryptoGift: { + target: '/api/app/redpackage/generate', + config: { method: 'POST' }, + }, + getCreationStatus: { + target: '/api/app/redPackage/getCreationResult', + config: { method: 'GET' }, + }, + getRedPackageConfig: { + target: '/api/app/redpackage/config', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/referral/index.ts b/packages/api/api-eoa/referral/index.ts new file mode 100644 index 0000000000..19775d1227 --- /dev/null +++ b/packages/api/api-eoa/referral/index.ts @@ -0,0 +1,11 @@ +export default { + getReferralRedDotsStatus: { + target: '/api/app/growth/redDot', + config: { method: 'GET' }, + }, + setReferralRedDotsStatus: '/api/app/growth/redDot', + getReferralShortLink: { + target: '/api/app/growth/shortLink', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/security/index.ts b/packages/api/api-eoa/security/index.ts new file mode 100644 index 0000000000..f7d345cfed --- /dev/null +++ b/packages/api/api-eoa/security/index.ts @@ -0,0 +1,27 @@ +export default { + securityList: { + target: '/api/app/user/security/transferLimit', + config: { method: 'GET' }, + }, + balanceCheck: { + target: '/api/app/user/security/balanceCheck', + config: { method: 'GET' }, + }, + // secondary email api + secondaryMail: { + target: '/api/app/account/secondary/email', + config: { method: 'GET' }, + }, + sendSecondaryEmailCode: { + target: '/api/app/account/secondary/email/verify', + config: { method: 'POST' }, + }, + secondaryEmailCodeCheck: { + target: '/api/app/account/verifyCode/secondary/email', + config: { method: 'POST' }, + }, + setSecondaryEmail: { + target: '/api/app/account/set/secondary/email', + config: { method: 'POST' }, + }, +} as const; diff --git a/packages/api/api-eoa/send/index.ts b/packages/api/api-eoa/send/index.ts new file mode 100644 index 0000000000..9f653aad29 --- /dev/null +++ b/packages/api/api-eoa/send/index.ts @@ -0,0 +1,10 @@ +export default { + getSendNetworkList: { + target: '/api/app/transfer/getSendNetworkList', + config: { method: 'GET' }, + }, + getTransferSupportNetworkMap: { + target: '/api/app/transfer/support', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/server.ts b/packages/api/api-eoa/server.ts new file mode 100644 index 0000000000..c28ef2f028 --- /dev/null +++ b/packages/api/api-eoa/server.ts @@ -0,0 +1,65 @@ +import { ServiceInit } from '../server/config'; +import { customFetch } from '@portkey-wallet/utils/fetch'; +import { IExceptionManager, Severity } from '@portkey-wallet/utils/ExceptionManager'; +import { BaseConfig, RequestConfig } from '../types'; +import { getRequestConfig, spliceUrl } from '../utils'; + +export class DidService extends ServiceInit { + protected onLockApp?: (expired?: boolean) => void; + locked?: boolean; + exceptionManager?: IExceptionManager; + constructor() { + super(); + } + + send = async (base: BaseConfig, config?: RequestConfig): Promise => { + try { + return await this.sendOrigin(base, config); + } catch (errResult: any) { + const { URL, fetchConfig } = this.getConfig(base, config); + this.errorReport(URL, fetchConfig, errResult); + throw errResult; + } + }; + + getConfig = (base: BaseConfig, config?: RequestConfig) => { + const { method = 'POST', url, baseURL, ...fetchConfig } = getRequestConfig(base, config, this.defaultConfig) || {}; + const _url = url || (typeof base === 'string' ? base : base.target); + const URL = spliceUrl(baseURL || '', _url); + return { + URL, + method, + fetchConfig, + }; + }; + + sendOrigin = async (base: BaseConfig, config?: RequestConfig): Promise => { + const { URL, fetchConfig, method } = this.getConfig(base, config); + const fetchResult = await customFetch(URL, { + ...fetchConfig, + method, + }); + + return fetchResult; + }; + setLockCallBack = (callBack: (expired?: boolean) => void) => { + this.onLockApp = callBack; + }; + + setExceptionManager = (exceptionManager: IExceptionManager) => { + this.exceptionManager = exceptionManager; + }; + errorReport = (url: string, fetchConfig: any, fetchResult: any) => { + this.exceptionManager?.reportErrorMessage?.(`${URL} request error`, Severity.Fatal, { + req: { + url, + config: fetchConfig, + }, + rep: fetchResult, + }); + }; +} + +const didServer = new DidService(); + +export default didServer; diff --git a/packages/api/api-eoa/switch/index.ts b/packages/api/api-eoa/switch/index.ts new file mode 100644 index 0000000000..aecad5c1b8 --- /dev/null +++ b/packages/api/api-eoa/switch/index.ts @@ -0,0 +1,6 @@ +export default { + checkButtonBuy: { + target: '/api/app/switch', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/token/index.ts b/packages/api/api-eoa/token/index.ts new file mode 100644 index 0000000000..3a6204bb5f --- /dev/null +++ b/packages/api/api-eoa/token/index.ts @@ -0,0 +1,50 @@ +export default { + fetchTokenPrice: { + target: '/api/app/tokens/prices', + config: { method: 'GET' }, + }, + fetchPopularToken: { + target: '/api/app/userTokens', + config: { method: 'GET' }, + }, + fetchPopularTokenV2: { + target: '/api/app/v2/userTokens', + config: { method: 'GET' }, + }, + displayUserToken: { + target: '/api/app/userTokens', + config: { method: 'PUT' }, + }, + displayUserTokenV2: { + target: '/api/app/v2/userTokens', + config: { method: 'PUT' }, + }, + fetchTokenListBySearch: { + target: '/api/app/tokens/list', + config: { method: 'GET' }, + }, + fetchTokenListBySearchV2: { + target: '/api/app/v2/tokens/list', + config: { method: 'GET' }, + }, + fetchTokenItemBySearch: { + target: 'api/app/tokens/token', + config: { method: 'GET' }, + }, + closeZeroHoldingsToken: { + target: '/api/app/assets/zeroHoldings/close', + config: { method: 'POST' }, + }, + openZeroHoldingsToken: { + target: '/api/app/assets/zeroHoldings/open', + config: { method: 'POST' }, + }, + zeroHoldingsTokenStatus: { + target: '/api/app/assets/zeroHoldings/status', + config: { method: 'GET' }, + }, + userTokensDisplaySwitch: { + target: '/api/app/v2/userTokens/display', + config: { method: 'POST' }, + }, +} as const; diff --git a/packages/api/api-eoa/txFee/index.ts b/packages/api/api-eoa/txFee/index.ts new file mode 100644 index 0000000000..06f5e68a58 --- /dev/null +++ b/packages/api/api-eoa/txFee/index.ts @@ -0,0 +1,6 @@ +export default { + fetchTxFee: { + target: '/api/app/account/transactionFee', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/api/api-eoa/types.ts b/packages/api/api-eoa/types.ts new file mode 100644 index 0000000000..23445884dc --- /dev/null +++ b/packages/api/api-eoa/types.ts @@ -0,0 +1,14 @@ +export interface BaseContext { + clientId: string; + requestId: string; +} + +export interface IContext { + context: BaseContext; +} + +export enum PlatFormInHeader { + ANDROID = 'android', + IOS = 'ios', + EXTENSION = 'extension', +} diff --git a/packages/api/api-eoa/utils/index.ts b/packages/api/api-eoa/utils/index.ts new file mode 100644 index 0000000000..4595aba3cc --- /dev/null +++ b/packages/api/api-eoa/utils/index.ts @@ -0,0 +1,70 @@ +import { AElfWallet } from '@portkey-wallet/types/aelf'; +import { customFetch } from '@portkey-wallet/utils/fetch'; +import { stringify } from 'query-string'; +import AElf from 'aelf-sdk'; +import { request } from '../index'; +import { ChainId } from '@portkey-wallet/types'; +export type RefreshTokenConfig = { + grant_type: 'signature'; + client_id: 'CAServer_App'; + scope: 'CAServer'; + signature: string; + pubkey: string; + timestamp: number; + ca_hash: string; + connectUrl: string; + chainId: ChainId; +}; + +const BEARER = 'Bearer'; + +export const queryAuthorization = async (config: RefreshTokenConfig) => { + const { connectUrl, ..._config } = config; + const { access_token } = await customFetch(config.connectUrl + '/connect/token', { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + method: 'POST', + body: stringify({ ..._config, chain_id: config.chainId }), + }); + return `${BEARER} ${access_token}`; +}; + +export const formatTokenWithOutBear = (token: string) => { + if (token.startsWith(BEARER)) return token.replace(`${BEARER} `, ''); + return token; +}; + +const DAY = 24 * 60 * 60 * 1000; + +export const isValidRefreshTokenConfig = (config: RefreshTokenConfig) => { + const expireTime = config.timestamp + 1 * DAY; + return expireTime >= Date.now(); +}; + +export function setRefreshTokenConfig({ + account, + caHash, + connectUrl, + chainId, +}: { + account: AElfWallet; + caHash: string; + connectUrl: string; + chainId: ChainId; +}) { + const timestamp = Date.now(); + const message = Buffer.from(`${account.address}-${timestamp}`).toString('hex'); + const signature = AElf.wallet.sign(message, account.keyPair).toString('hex'); + const pubkey = (account.keyPair as any).getPublic('hex'); + const ca_hash = caHash; + return request.setRefreshTokenConfig({ + grant_type: 'signature', + client_id: 'CAServer_App', + scope: 'CAServer', + signature: signature, + pubkey, + timestamp, + ca_hash, + connectUrl, + chainId, + }); +} diff --git a/packages/api/api-eoa/utils/wallet.ts b/packages/api/api-eoa/utils/wallet.ts new file mode 100644 index 0000000000..a25bfae179 --- /dev/null +++ b/packages/api/api-eoa/utils/wallet.ts @@ -0,0 +1,124 @@ +import type { GuardiansApproved } from '@portkey/services'; +import { LoginKeyType } from '@portkey-wallet/types/types-ca/wallet'; +import { VerificationType, ZKLoginInfo } from '@portkey-wallet/types/verifier'; +import { request } from '..'; +import { IContext } from '../types'; +import { RequestSourceEnum } from '@portkey-wallet/constants/constants-ca/device'; + +interface RegisterDIDWalletParams extends IContext { + baseUrl?: string; + type: LoginKeyType; + loginGuardianIdentifier: string; //account + manager: string; + extraData: string; + verifierId: string; + verificationDoc?: string; + signature?: string; + chainId: string; + source?: RequestSourceEnum; +} + +export const registerDIDWallet = async ( + params: RegisterDIDWalletParams, +): Promise<{ + sessionId: string; +}> => { + const baseUrl = params.baseUrl; + delete params.baseUrl; + return request.wallet.requestRegister({ + baseURL: baseUrl, + params, + }); +}; + +// TODO Update services +export type GuardiansApprovedWithZK = GuardiansApproved & { zkLoginInfo?: ZKLoginInfo }; + +interface RecoveryDIDWalletParams extends IContext { + baseURL?: string; + loginGuardianIdentifier: string; + manager: string; + extraData: string; + chainId: string; + guardiansApproved: GuardiansApprovedWithZK[]; + source?: RequestSourceEnum; +} + +export const recoveryDIDWallet = async ( + params: RecoveryDIDWalletParams, +): Promise<{ + sessionId: string; +}> => { + const baseURL = params.baseURL; + delete params.baseURL; + return request.wallet.recoveryWallet({ + baseURL, + params, + }); +}; + +interface RequestCreateWalletParams { + baseURL?: string; + verificationType: VerificationType; + managerUniqueId: string; +} + +export const requestCreateWallet = async ({ + baseURL, + verificationType, + managerUniqueId, +}: RequestCreateWalletParams) => { + let fetch = request.es.getRegisterResult; + if (verificationType !== VerificationType.register) fetch = request.es.getRecoverResult; + const req = await fetch({ + baseURL, + params: { filter: `_id:${managerUniqueId}` }, + }); + const result = req.items[0]; + return result; +}; + +// TODO +export const setWalletName = ({ nickname, baseURL = '' }: { baseURL?: string; nickname: string }) => { + return request.wallet.setWalletName({ + baseURL, + params: { + nickname, + }, + }); +}; +interface FetchCreateWalletParams { + verificationType?: VerificationType; + type: LoginKeyType; + loginGuardianType: string; + managerUniqueId: string; + baseUrl?: string; +} + +export const fetchCreateWalletResult = async ({ + baseUrl, + type, + managerUniqueId, + loginGuardianType, + verificationType, +}: FetchCreateWalletParams) => { + let tmpFetch; + switch (verificationType) { + case VerificationType.register: + tmpFetch = request.wallet.queryRegister; + break; + case VerificationType.communityRecovery: + tmpFetch = request.wallet.queryRecovery; + break; + default: + throw Error('Unable to find the corresponding api'); + } + return await tmpFetch({ + baseURL: baseUrl, + params: { + type, + managerUniqueId, + loginGuardianType, + }, + }); +}; diff --git a/packages/api/api-eoa/verification/index.ts b/packages/api/api-eoa/verification/index.ts new file mode 100644 index 0000000000..40395cc1c8 --- /dev/null +++ b/packages/api/api-eoa/verification/index.ts @@ -0,0 +1,23 @@ +export default { + sendVerificationRequest: '/api/app/account/sendVerificationRequest', + checkVerificationCode: '/api/app/account/verifyCode', + getCountry: '/api/app/ipInfo/ipInfo', + verifyGoogleToken: '/api/app/account/verifyGoogleToken', + verifyAppleToken: '/api/app/account/verifyAppleToken', + verifyTelegramToken: '/api/app/account/verifyTelegramToken', + verifyTwitterToken: '/api/app/account/verifyTwitterToken', + verifyFacebookToken: '/api/app/account/verifyFacebookToken', + verifyZKLogin: { + target: '/api/app/account/verifiedzk', + config: { method: 'POST' }, + }, + sendAppleUserExtraInfo: '/api/app/userExtraInfo/appleUserExtraInfo', + getAppleUserExtraInfo: { + target: `/api/app/userExtraInfo`, + config: { method: 'GET' }, + }, + checkGoogleRecaptcha: '/api/app/account/isGoogleRecaptchaOpen', + getVerifierServer: '/api/app/account/getVerifierServer', + getTelegramBot: { target: '/api/app/telegramAuth/getTelegramBot', config: { method: 'GET' } }, + reportUnsetLoginGuardian: { target: '/api/app/account/guardianIdentifiers/unset', config: { method: 'POST' } }, +} as const; diff --git a/packages/api/api-eoa/verification/utils.ts b/packages/api/api-eoa/verification/utils.ts new file mode 100644 index 0000000000..e619c9ba42 --- /dev/null +++ b/packages/api/api-eoa/verification/utils.ts @@ -0,0 +1,98 @@ +import { IStorage, StorageBaseLoader } from '@portkey-wallet/types/storage'; +import { request } from '@portkey-wallet/api/api-did'; +import { RequestConfig } from '../../types'; +import { LoginKeyType } from '@portkey-wallet/types/types-ca/wallet'; +import { OperationTypeEnum } from '@portkey-wallet/types/verifier'; +import { ChainId } from '@portkey-wallet/types'; + +type VerifierInfo = { + verifierSessionId: string; + time: number; +}; + +export interface SendVerificationConfig extends RequestConfig { + params: { + type: LoginKeyType; + guardianIdentifier?: string; + verifierId?: string; + chainId: string | number; + operationType: OperationTypeEnum; + targetChainId?: ChainId; + operationDetails?: string; + }; +} + +export interface SendSecondVerificationConfig extends RequestConfig { + params: { + secondaryEmail: string; + platformType: number; + }; +} + +export const IntervalErrorMessage = 'The interval between sending two verification codes is less than 60s'; +export class Verification extends StorageBaseLoader { + private readonly _defaultKeyName = 'portkey_did_wallet'; + private readonly _expirationTime = 58 * 1000; + public verifierMap: { + [key: string]: VerifierInfo; + }; + constructor(store: IStorage) { + super(store); + this.verifierMap = {}; + this.load(); + } + public async load() { + try { + const storageVerifierMap = await this._store.getItem(this._defaultKeyName); + if (storageVerifierMap) this.verifierMap = JSON.parse(storageVerifierMap); + if (typeof this.verifierMap !== 'object') this.verifierMap = {}; + } catch (error) { + console.log(error, '====load-verification'); + } + } + public async save() { + this._store.setItem(this._defaultKeyName, JSON.stringify(this.verifierMap)); + } + public get(key: string): void | VerifierInfo { + const info = this.verifierMap[key]; + if (!info) return; + const endTime = info.time + this._expirationTime; + if (endTime > Date.now()) { + return info; + } else { + this.delete(key); + } + } + public delete(key: string) { + delete this.verifierMap[key]; + this.save(); + } + public async set(key: string, value: VerifierInfo) { + this.verifierMap[key] = value; + await this.save(); + } + + public async sendVerificationCode(config: SendVerificationConfig) { + const { guardianIdentifier, verifierId } = config.params; + const key = (guardianIdentifier || '') + (verifierId || ''); + try { + const req = await request.verify.sendVerificationRequest(config); + if (req?.verifierSessionId) { + await this.set(key, { ...req, time: Date.now() }); + } + return req; + } catch (error: any) { + const { message } = error?.error || error || {}; + const item = this.get(key); + if (message === IntervalErrorMessage && item) return item; + throw error; + } + } + public async checkVerificationCode(config: RequestConfig) { + const { guardianIdentifier, verifierId } = config.params || {}; + const key = (guardianIdentifier || '') + (verifierId || ''); + const req = await request.verify.checkVerificationCode(config); + this.delete(key); + return req; + } +} diff --git a/packages/api/api-eoa/wallet/index.ts b/packages/api/api-eoa/wallet/index.ts new file mode 100644 index 0000000000..19034e7efe --- /dev/null +++ b/packages/api/api-eoa/wallet/index.ts @@ -0,0 +1,67 @@ +export default { + requestRegister: '/api/app/account/register/request', + recoveryWallet: '/api/app/account/recovery/request', + guardianIdentifiers: { + target: '/api/app/account/guardianIdentifiers', + config: { method: 'GET' }, + }, + getRegisterInfo: { + target: '/api/app/account/registerInfo', + config: { method: 'GET' }, + }, + // TODO Test api + hubPing: '/api/app/account/hub/ping', + getCreateResponse: 'api/app/account/hub/response', + queryRecovery: '/api/app/account/recovery/query', + queryRegister: '/api/app/account/register/query', + setWalletName: '/api/app/account/setNickname', + getChainList: '/api/app/getChains', + editWalletName: { + target: '/api/app/account/nickname', + config: { method: 'PUT' }, + }, + editHolderInfo: '/api/app/account/holderInfo', + pullNotify: 'api/app/notify/pullNotify', + getPhoneCountryCode: { + target: '/api/app/phone/info', + config: { method: 'GET' }, + }, + getShowDeletionEntrance: { + target: '/api/app/account/revoke/entrance', + config: { method: 'GET' }, + }, + deletionCheck: { + target: '/api/app/account/revoke/check', + config: { method: 'GET' }, + }, + deletionCheckV2: { + target: '/api/app/account/revoke/validate', + config: { method: 'GET' }, + }, + deletionAccount: '/api/app/account/revoke/request', + deletionAccountV2: '/api/app/account/revoke/account', + getTwitterUserInfo: { + target: '/api/app/twitterAuth/userInfo', + config: { method: 'GET' }, + }, + reportExitWallet: { + target: '/api/app/report/exitWallet', + config: { method: 'POST' }, + }, + shouldShowSetNewWalletNameModal: { + target: '/api/app/account/poppedUp', + config: { method: 'GET' }, + }, + shouldShowSetNewWalletNameIcon: { + target: '/api/app/account/bubbling', + config: { method: 'GET' }, + }, + setNewWalletName: { + target: '/api/app/account/replace', + config: { method: 'POST' }, + }, + getIconList: { + target: '/api/app/account/defaultAvatars', + config: { method: 'GET' }, + }, +} as const; diff --git a/packages/constants/constants-eoa/network/backend-network.ts b/packages/constants/constants-eoa/network/backend-network.ts new file mode 100644 index 0000000000..05248eae36 --- /dev/null +++ b/packages/constants/constants-eoa/network/backend-network.ts @@ -0,0 +1,62 @@ +import { NetworkItem } from '@portkey-wallet/types/types-eoa/network'; + +type BackEndNetworkType = 'back-end-testnet' | 'back-end-mainnet'; + +// TODO: eoa update networkConfig +export const BackEndNetWorkMap: { + [key in BackEndNetworkType]: NetworkItem; +} = { + 'back-end-testnet': { + name: 'aelf Testnet', + walletType: 'aelf', + networkType: 'TESTNET', + isActive: true, + // apiUrl: 'https://eoa-portkey-test.portkey.finance', + apiUrl: 'https://aa-portkey-test.portkey.finance', + graphqlUrl: 'https://dapp-aa-portkey-test.portkey.finance/aefinder-v2/api/app/graphql/portkey', + tokenClaimContractAddress: '233wFn5JbyD4i8R5Me4cW4z6edfFGRn5bpWnGuY8fjR7b2kRsD', + cmsUrl: 'https://cms-test-aa.portkey.finance/graphql', + s3Url: 'https://portkey-cms-testnet.s3.ap-northeast-1.amazonaws.com', + referralUrl: 'https://test-referral.portkey.finance', + cryptoGiftUrl: 'https://test-cryptogift.portkey.finance', + eBridgeUrl: 'https://test.ebridge.exchange', + eTransferCA: { + AELF: '4xWFvoLvi5anZERDuJvzfMoZsb6WZLATEzqzCVe8sQnCp2XGS', + tDVW: '2AgU8BfyKyrxUrmskVCUukw63Wk96MVfVoJzDDbwKszafioCN1', + }, + eTransferUrl: 'https://test-app.etransfer.exchange', + awakenUrl: 'https://test-app.awaken.finance', + schrodingerUrl: 'https://schrodingerai.com', + eForestUrl: 'https://test.eforest.finance', + sgrSchrodingerUrl: 'https://cat.schrodingerai.com', + tomorrowDAOUrl: 'https://test.tmrwdao.com', + hamsterUrl: 'https://test-hamster.beangotown.com', + cryptoGiftTgUrl: 'https://t.me/PortkeyTestnet_Bot/crypto_gift', + }, + + 'back-end-mainnet': { + name: 'aelf Mainnet', + walletType: 'aelf', + networkType: 'MAINNET', + isActive: true, + apiUrl: 'https://aa-portkey.portkey.finance', + graphqlUrl: 'https://dapp-aa-portkey.portkey.finance/aefinder-v2/api/app/graphql/portkey', + cmsUrl: 'https://cms-aa.portkey.finance/graphql', + s3Url: 'https://portkey-cms-mainnet.s3.ap-northeast-1.amazonaws.com', + referralUrl: 'https://referral.portkey.finance', + cryptoGiftUrl: 'https://cryptogift.portkey.finance', + eBridgeUrl: 'https://ebridge.exchange', + eTransferUrl: 'https://app.etransfer.exchange', + eTransferCA: { + AELF: '2w13DqbuuiadvaSY2ZyKi2UoXg354zfHLM3kwRKKy85cViw4ZF', + tDVV: 'x4CTSuM8typUbpdfxRZDTqYVa42RdxrwwPkXX7WUJHeRmzE6k', + }, + awakenUrl: 'https://app.awaken.finance', + schrodingerUrl: 'https://schrodingernft.ai', + eForestUrl: 'https://www.eforest.finance', + sgrSchrodingerUrl: 'https://cat.schrodingernft.ai', + tomorrowDAOUrl: 'https://tmrwdao.com', + hamsterUrl: 'https://hamster.beangotown.com', + cryptoGiftTgUrl: 'https://t.me/PortkeyMainnet_Bot/crypto_gift', + }, +}; diff --git a/packages/constants/constants-eoa/network/index.ts b/packages/constants/constants-eoa/network/index.ts new file mode 100644 index 0000000000..c72c1daf84 --- /dev/null +++ b/packages/constants/constants-eoa/network/index.ts @@ -0,0 +1,42 @@ +import { NetworkItem } from '@portkey-wallet/types/types-eoa/network'; +import { BackEndNetWorkMap } from './backend-network'; +import { T_ENV_NAME } from '@portkey-wallet/types'; + +export const NetworkList: NetworkItem[] = [ + BackEndNetWorkMap['back-end-mainnet'], + BackEndNetWorkMap['back-end-testnet'], +]; + +export const DefaultChainId = 'AELF'; + +export const OfficialWebsite = 'https://portkey.finance'; + +export const ThirdParty = `https://thirdparty.portkey.finance`; + +export const OpenLogin = `https://openlogin.portkey.finance`; + +const EBridgeList = NetworkList.map(i => i.eBridgeUrl).filter(i => !!i) as string[]; +const ETransferList = NetworkList.map(i => i.eTransferUrl).filter(i => !!i) as string[]; +const AwakenUrlList = NetworkList.map(i => i.awakenUrl).filter(i => !!i) as string[]; +const SchrodingerList = NetworkList.map(i => i.schrodingerUrl).filter(i => !!i) as string[]; +const SGRSchrodingerList = NetworkList.map(i => i.sgrSchrodingerUrl).filter(i => !!i) as string[]; +const ReferralList = NetworkList.map(i => i.referralUrl).filter(i => !!i) as string[]; +const ForestUrlList = NetworkList.map(i => i.eForestUrl).filter(i => !!i) as string[]; +const TomorrowDAOUrlList = NetworkList.map(i => i.tomorrowDAOUrl).filter(i => !!i) as string[]; +const HamsterUrlList = NetworkList.map(i => i.hamsterUrl).filter(i => !!i) as string[]; + +export const DAPP_WHITELIST: string[] = [ + ...EBridgeList, + ...ETransferList, + ...AwakenUrlList, + ...SchrodingerList, + ...SGRSchrodingerList, + ...ReferralList, + ...ForestUrlList, + ...TomorrowDAOUrlList, + ...HamsterUrlList, +]; + +export const LinkPortkeyWebsite = OfficialWebsite; + +export const ENV_NAME: T_ENV_NAME = 'online'; diff --git a/packages/constants/network.ts b/packages/constants/network.ts index 44728460d3..295647c416 100644 --- a/packages/constants/network.ts +++ b/packages/constants/network.ts @@ -1,4 +1,4 @@ -import { ChainType } from '@portkey-wallet/types'; +import { ChainId, ChainType } from '@portkey-wallet/types'; import { ChainItemType } from '@portkey-wallet/types/chain'; export const DefaultChain: ChainItemType = { @@ -22,3 +22,5 @@ export const DefaultChain: ChainItemType = { }; export const NetworkSeries: { label: string; chainType: ChainType }[] = [{ label: 'AELF series', chainType: 'aelf' }]; + +export const MAIN_CHAIN_ID: ChainId = 'AELF'; diff --git a/packages/hooks/hooks-eoa/network/chain.ts b/packages/hooks/hooks-eoa/network/chain.ts new file mode 100644 index 0000000000..dc21f457fc --- /dev/null +++ b/packages/hooks/hooks-eoa/network/chain.ts @@ -0,0 +1,75 @@ +import { useCallback, useEffect, useMemo } from 'react'; +import { useChainListMapState, useCurrentNetwork } from './index'; +import { ChainId } from '@portkey-wallet/types'; +import { request } from '@portkey-wallet/api/api-did'; +import { NetworkList } from '@portkey-wallet/constants/constants-eoa/network'; +import { useAppCommonDispatch } from '../../index'; +import { setChainList } from '@portkey-wallet/store/store-eoa/network/actions'; +import { handleLoopFetch } from '@portkey-wallet/utils'; +import { MAIN_CHAIN_ID } from '@portkey-wallet/constants/network'; + +export const useChainList = () => { + const chainListMapState = useChainListMapState(); + const currentNetwork = useCurrentNetwork(); + + return useMemo(() => chainListMapState[currentNetwork], [chainListMapState, currentNetwork]); +}; + +export const useGetChainInfo = () => { + const chainList = useChainList(); + + return useCallback((chainId: ChainId) => chainList?.find(item => item.chainId === chainId), [chainList]); +}; + +export const useChainInfo = (chainId: ChainId) => { + const getChainInfo = useGetChainInfo(); + return useMemo(() => getChainInfo(chainId), [chainId, getChainInfo]); +}; + +export const useInitChainList = () => { + const currentNetwork = useCurrentNetwork(); + const dispatch = useAppCommonDispatch(); + + const init = useCallback(async () => { + try { + const baseUrl = NetworkList.find(item => item.networkType === currentNetwork)?.apiUrl; + + const result = await handleLoopFetch({ + fetch: () => { + return request.es.getChainsInfo({ baseURL: baseUrl }); + }, + times: 5, + interval: 2000, + }); + if (!result?.items) throw Error('No data'); + + dispatch( + setChainList({ + network: currentNetwork, + chainList: result.items, + }), + ); + } catch (error: any) { + console.log('useInitChainList error', error); + } + }, [currentNetwork, dispatch]); + + useEffect(() => { + init(); + }, [init]); +}; + +export const useMainChain = () => { + const chainList = useChainList(); + return useMemo(() => chainList?.find(item => item.chainId === MAIN_CHAIN_ID), [chainList]); +}; + +export const useDAppChain = () => { + const chainList = useChainList(); + return useMemo(() => chainList?.find(item => item.chainId !== MAIN_CHAIN_ID), [chainList]); +}; + +export const useDAppChainId = () => { + const dAppChain = useDAppChain(); + return useMemo(() => dAppChain?.chainId || 'tDVV', [dAppChain?.chainId]); +}; diff --git a/packages/hooks/hooks-eoa/network/index.ts b/packages/hooks/hooks-eoa/network/index.ts new file mode 100644 index 0000000000..2728221ff0 --- /dev/null +++ b/packages/hooks/hooks-eoa/network/index.ts @@ -0,0 +1,54 @@ +import { useCallback, useMemo } from 'react'; +import { useAppEOASelector } from '../index'; +import { NetworkList } from '@portkey-wallet/constants/constants-eoa/network'; +import { useAppCommonDispatch } from '../../index'; +import { setCurrentNetwork } from '@portkey-wallet/store/store-eoa/network/actions'; +import { NetworkType } from '@portkey-wallet/types'; + +export const useNetworkState = () => useAppEOASelector(state => state.network); + +export const useChainListMapState = () => useAppEOASelector(state => state.network.chainListMap); + +export const useCurrentNetwork = () => useAppEOASelector(state => state.network.currentNetwork); + +export const useIsMainnet = () => { + const currentNetwork = useCurrentNetwork(); + return useMemo(() => currentNetwork === 'MAINNET', [currentNetwork]); +}; + +export const useNetworkList = () => { + return NetworkList; +}; + +export const useCurrentNetworkInfo = () => { + const currentNetwork = useCurrentNetwork(); + const networkList = useNetworkList(); + + return useMemo( + () => networkList.find(item => item.networkType === currentNetwork) || networkList[0], + [currentNetwork, networkList], + ); +}; + +export const useSetCurrentNetwork = () => { + const dispatch = useAppCommonDispatch(); + return useCallback( + (network: NetworkType) => { + dispatch( + setCurrentNetwork({ + currentNetwork: network, + }), + ); + }, + [dispatch], + ); +}; + +export const useSwitchNetwork = () => { + const isMainnet = useIsMainnet(); + const setCurrentNetwork = useSetCurrentNetwork(); + + return useCallback(() => { + setCurrentNetwork(isMainnet ? 'TESTNET' : 'MAINNET'); + }, [isMainnet, setCurrentNetwork]); +}; diff --git a/packages/mobile-aelf/ios/Podfile.lock b/packages/mobile-aelf/ios/Podfile.lock index 0f63300b49..1ed35c4f69 100644 --- a/packages/mobile-aelf/ios/Podfile.lock +++ b/packages/mobile-aelf/ios/Podfile.lock @@ -2715,40 +2715,40 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - amplitude-react-native: 2e7c6439b56cd96217cc1e42174baa53ef5c7453 + amplitude-react-native: 3fc003fed8453ac8131703869cc52ea626196a83 AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73 AppCheckCore: 9feb4300caa596a36416cde10674dc5bec1e022e Base64: cecfb41a004124895a7bcee567a89bae5a89d49b boost: 4cb898d0bf20404aab1850c656dcea009429d6c1 - BVLinearGradient: cb006ba232a1f3e4f341bb62c42d1098c284da70 - CodePush: 8119f47df607085a6185bfc5ef5c4137709e1068 + BVLinearGradient: 880f91a7854faff2df62518f0281afb1c60d49a3 + CodePush: ea174f879b85dff65380bee54243bbe523ea16b2 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - EXApplication: ec862905fdab3a15bf6bd8ca1a99df7fc02d7762 - EXBarCodeScanner: 6415603150dd5989a139570bb5af19b7f169fe49 - EXConstants: 89d35611505a8ce02550e64e43cd05565da35f9a - EXImageLoader: 1fe96c70cdc78bedc985ec4b1fab5dd8e67dc38b - EXNotifications: ac3c2f16e766e5f22fb0f4c5693c590be4454009 - Expo: 723b25eaad8c356d626c579e3d78d5b969e1d3ea - ExpoAdapterFBSDKNext: 304f7faf6f019b6df77a3573a264db85f2a3ebc0 - ExpoAdapterGoogleSignIn: a36e0fd0ab572c6e32c91494ae00ec9752f213de - ExpoAsset: 286fee7ba711ce66bf20b315e68106b13b8629fc - ExpoBattery: 9575fe12e063206275013cf0dfc1583e8e7fd00c - ExpoCamera: cf49d2d121a9f883be0f98dde15a2185a1dd42be - ExpoClipboard: 243e22ff4161bbffcd3d2db469ae860ddc1156be - ExpoCrypto: c5c052d5f9f668c21975cb4caf072cec23c823fa - ExpoDevice: 84b3ed79df1234c17edfbf335f6ecf3c636f74de - ExpoFileSystem: 2988caaf68b7cb706e36d382829d99811d9d76a5 - ExpoFont: 38dddf823e32740c2a9f37c926a33aeca736b5c4 - ExpoImagePicker: 517a47896adf5d55d0a1c159e5d1e312af12e57c - ExpoKeepAwake: dd02e65d49f1cfd9194640028ae2857e536eb1c9 - ExpoLocalAuthentication: b94db59f55df95350223200c746b4ddf0cb7cfc0 - ExpoModulesCore: d300c94764c3d7ea27d8e894fbfff6d334b84d80 - ExpoNetwork: 3406d873b73ca189fd41c51dff9a1c8625771260 - ExpoScreenCapture: 41d39c845d85f740595e411d1c251ba893c69200 - ExpoScreenOrientation: 4d2a15bc161d0316685a53c1c77ea5cf4a13e43b - ExpoSecureStore: 6506992a9f53c94ea716c54d4a63144965945c2c - ExpoWebBrowser: cf10afe886891ab495877dada977fe6c269614a4 - EXSplashScreen: e67c7d6545cbe7229fea8db77890701b70f7ab37 + EXApplication: c08200c34daca7af7fd76ac4b9d606077410e8ad + EXBarCodeScanner: e2dd9b42c1b522a2adc9202b1dfbc64cb34456d1 + EXConstants: 409690fbfd5afea964e5e9d6c4eb2c2b59222c59 + EXImageLoader: ab589d67d6c5f2c33572afea9917304418566334 + EXNotifications: dd289340c26bc5388e440fc90d0b2c661cbd0285 + Expo: 9b6666ef2fedcfc89c5b9be2aa1ce12b81f9e7f5 + ExpoAdapterFBSDKNext: 1df7347324200bf7efb288fdb902c68224054f43 + ExpoAdapterGoogleSignIn: b7792934ab1b5d559a3eee31334d752a73f0366e + ExpoAsset: 323700f291684f110fb55f0d4022a3362ea9f875 + ExpoBattery: 4b21f628f2b70af3af66e83c566949ba9cc65eb1 + ExpoCamera: 929be541d1c1319fcf32f9f5d9df8b97804346b5 + ExpoClipboard: 23d203f5d4843699fbc45be1cc4fe1fbd811a6fa + ExpoCrypto: 156078f266bf28f80ecf5e2a9c3a0d6ffce07a1c + ExpoDevice: fc94f0e42ecdfd897e7590f2874fc64dfa7e9b1c + ExpoFileSystem: 80bfe850b1f9922c16905822ecbf97acd711dc51 + ExpoFont: 00756e6c796d8f7ee8d211e29c8b619e75cbf238 + ExpoImagePicker: 12a420923383ae38dccb069847218f27a3b87816 + ExpoKeepAwake: 3b8815d9dd1d419ee474df004021c69fdd316d08 + ExpoLocalAuthentication: 9e02a56a4cf9868f0052656a93d4c94101a42ed7 + ExpoModulesCore: 3c510215eb78bb9c757cc0a6c1b1f52d9dbb63c8 + ExpoNetwork: 0d2c2504d56096fe8be3930d5c70cb3390dac5bf + ExpoScreenCapture: ece7593264d1384aff2481eea29f9a238b484090 + ExpoScreenOrientation: 9a13e7438f4b62f313ca3c22d1abeeef847c9599 + ExpoSecureStore: 060cebcb956b80ddae09821610ac1aa9e1ac74cd + ExpoWebBrowser: 7595ccac6938eb65b076385fd23d035db9ecdc8e + EXSplashScreen: ba896e2d289a08d56d00c6140d23b896c49ae5df FBAEMKit: 6c7b5eb77c96861bb59e040842c6e55bf39512ce FBLazyVector: 430e10366de01d1e3d57374500b1b150fe482e6d FBSDKCoreKit: 5e4dd478947ab1bcc887e8cfadeae0727af1a942 @@ -2784,104 +2784,104 @@ SPEC CHECKSUMS: JWT: ef71dfb03e1f842081e64dc42eef0e164f35d251 libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 lottie-ios: 8f97d3271e155c2d688875c29cd3c74908aef5f8 - lottie-react-native: 5d89c05930d4180a1e39b1757d46e6c0eec90255 + lottie-react-native: 8f9d4be452e23f6e5ca0fdc11669dc99ab52be81 nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851 - RCT-Folly: 34124ae2e667a0e5f0ea378db071d27548124321 + RCT-Folly: 4464f4d875961fce86008d45f4ecf6cef6de0740 RCTDeprecation: 726d24248aeab6d7180dac71a936bbca6a994ed1 RCTRequired: a94e7febda6db0345d207e854323c37e3a31d93b RCTTypeSafety: 28e24a6e44f5cbf912c66dde6ab7e07d1059a205 React: c2830fa483b0334bda284e46a8579ebbe0c5447e React-callinvoker: 4aecde929540c26b841a4493f70ebf6016691eb8 - React-Core: 32a581847d74ce9b5f51d9d11a4e4d132ad61553 - React-CoreModules: f53e0674e1747fa41c83bc970e82add97b14ad87 - React-cxxreact: 86f3b1692081fd954a0cb27cc90d14674645b64b + React-Core: 9c059899f00d46b5cec3ed79251f77d9c469553d + React-CoreModules: 9fac2d31803c0ed03e4ddaa17f1481714f8633a5 + React-cxxreact: a979810a3ca4045ceb09407a17563046a7f71494 React-debug: 3d21f69d8def0656f8b8ec25c0f05954f4d862c5 - React-defaultsnativemodule: 2ed121c5a1edeab09cff382b8d9b538260f07848 - React-domnativemodule: 4393dd5dd7e13dbe42e69ebc791064a616990f91 - React-Fabric: cbf38ceefb1ac6236897abdb538130228e126695 - React-FabricComponents: dd4b01c4a60920d8dc15f3b5594c6fe9e7648a38 - React-FabricImage: 8b13aedfbd20f349b9b3314baf993c71c02995d9 + React-defaultsnativemodule: 2fa2bdb7bd03ff9764facc04aa8520ebf14febae + React-domnativemodule: 986e6fe7569e1383dce452a7b013b6c843a752df + React-Fabric: 3bc7be9e3a6b7581fc828dc2aa041e107fc8ffb8 + React-FabricComponents: 668e0cb02344c2942e4c8921a643648faa6dc364 + React-FabricImage: 3f44dd25a2b020ed5215d4438a1bb1f3461cd4f1 React-featureflags: ee1abd6f71555604a36cda6476e3c502ca9a48e5 - React-featureflagsnativemodule: 87b58caf3cd8eca1e53179453789def019af2a65 - React-graphics: f5c4cf3abc5aa083e28fe7a866bd95fb3bbbc1e0 - React-hermes: cad69ee9a53870cc38e5386889aa7ea81c75b6a1 - React-idlecallbacksnativemodule: 445390be0f533797ace18c419eb57110dbfe90d6 - React-ImageManager: cb78d7a24f45f8f9a5a1640b52fce4c9f637f98d - React-jserrorhandler: dfe9b96e99a93d4f4858bad66d5bc4813a87a21a - React-jsi: bc1f6073e203fb540edd6d26f926ad041809b443 - React-jsiexecutor: 1e8fc70dd9614c3e9d5c3c876b2ea3cd1d931ee4 - React-jsinspector: 7544a20e9beac390f1b65d9f0040d97cd55dc198 - React-jsitracing: cac972ccc097db399df8044e49add8e5b25cb34a - React-logger: 80d87daf2f98bf95ab668b79062c1e0c3f0c2f8a - React-Mapbuffer: acffb35a53a5f474ede09f082ac609b41aafab2e - React-microtasksnativemodule: 71ca9282bce93b319218d75362c0d646b376eb43 - react-native-background-timer: 4638ae3bee00320753647900b21260b10587b6f7 - react-native-cloud-storage: 73ccd8b961a80909777e31f0533547a011305ac2 - react-native-compat: ed1f3c4184069e6d2e021e567bb5bde08d013df8 - react-native-config: ea75335a7cca1d3326de1da384227e580a7c082e - react-native-fbsdk-next: ddf303a27fa0a9598639a6f421036f6b9f0483c3 - react-native-get-random-values: 0fd2b6a3129988d701d10e30f0622d5f039531bc - react-native-minimizer: 0e8167e99bb05e63e12521f12f41dca6db027ebe - react-native-netinfo: cec9c4e86083cb5b6aba0e0711f563e2fbbff187 - react-native-pager-view: 8bd7d72d1c260ef565952ac617ab6e492c457894 - react-native-randombytes: 3c8f3e89d12487fd03a2f966c288d495415fc116 - react-native-safe-area-context: 17a482f540310e2209f884fd49472d9e1c0e73d6 - react-native-spinkit: 96a74c3519fab0eded2ab8c285f774aa3f4b7944 - react-native-view-shot: d1a701eb0719c6dccbd20b4bb43b1069f304cb70 - react-native-webview: 1d14b6d22fe11c300bac255eafe1ef5202c8c525 + React-featureflagsnativemodule: 7ccc0cd666c2a6257401dceb7920818ac2b42803 + React-graphics: d7dd9c8d75cad5af19e19911fa370f78f2febd96 + React-hermes: 2069b08e965e48b7f8aa2c0ca0a2f383349ed55d + React-idlecallbacksnativemodule: e211b2099b6dced97959cb58257bab2b2de4d7ef + React-ImageManager: ab7a7d17dd0ff1ef1d4e1e88197d1119da9957ce + React-jserrorhandler: d9e867bb83b868472f3f7601883f0403b3e3942d + React-jsi: d68f1d516e5120a510afe356647a6a1e1f98f2db + React-jsiexecutor: 6366a08a0fc01c9b65736f8deacd47c4a397912a + React-jsinspector: 0ac947411f0c73b34908800cc7a6a31d8f93e1a8 + React-jsitracing: 0e8c0aadb1fcec6b1e4f2a66ee3b0da80f0f8615 + React-logger: d79b704bf215af194f5213a6b7deec50ba8e6a9b + React-Mapbuffer: b982d5bba94a8bc073bda48f0d27c9b28417fae3 + React-microtasksnativemodule: 2b73e68f0462f3175f98782db08896f8501afd20 + react-native-background-timer: 17ea5e06803401a379ebf1f20505b793ac44d0fe + react-native-cloud-storage: 7e7398f3271a50ba6380d0100aa102ba705d3163 + react-native-compat: 6f315a20c4a80382bd315d01c1672b4536104bcc + react-native-config: 8f7283449bbb048902f4e764affbbf24504454af + react-native-fbsdk-next: fcecfa33c37ce63bcda9cd24766ee9d345463230 + react-native-get-random-values: a6ea6a8a65dc93e96e24a11105b1a9c8cfe1d72a + react-native-minimizer: 48a715600fd432ef1d182cfd1858f92f0afa022f + react-native-netinfo: f0a9899081c185db1de5bb2fdc1c88c202a059ac + react-native-pager-view: c476f76d54f946df5147645e902d3d7173688187 + react-native-randombytes: 421f1c7d48c0af8dbcd471b0324393ebf8fe7846 + react-native-safe-area-context: 5141f11858b033636f1788b14f32eaba92cee810 + react-native-spinkit: da294fd828216ad211fe36a5c14c1e09f09e62db + react-native-view-shot: 6b7ed61d77d88580fed10954d45fad0eb2d47688 + react-native-webview: 926d2665cf3196e39c4449a72d136d0a53b9df8a React-nativeconfig: 8c83d992b9cc7d75b5abe262069eaeea4349f794 - React-NativeModulesApple: 97f606f09fd9840b3868333984d6a0e7bcc425b5 + React-NativeModulesApple: 9f7920224a3b0c7d04d77990067ded14cee3c614 React-perflogger: 59e1a3182dca2cee7b9f1f7aab204018d46d1914 - React-performancetimeline: 3e3f5c5576fe1cc2dd5fcfb1ae2046d5dceda3d7 + React-performancetimeline: a9d05533ff834c6aa1f532e05e571f3fd2e3c1ed React-RCTActionSheet: d80e68d3baa163e4012a47c1f42ddd8bcd9672cc - React-RCTAnimation: 051f0781709c5ed80ba8aa2b421dfb1d72a03162 - React-RCTAppDelegate: 106d225d076988b06aa4834e68d1ab754f40cacf - React-RCTBlob: 895eaf8bca2e76ee1c95b479235c6ccebe586fc6 - React-RCTFabric: 8d01df202ee9e933f9b5dd44b72ec89a7ac6ee01 - React-RCTImage: b73149c0cd54b641dba2d6250aaf168fee784d9f - React-RCTLinking: 23e519712285427e50372fbc6e0265d422abf462 - React-RCTNetwork: a5d06d122588031989115f293654b13353753630 - React-RCTSettings: 87d03b5d94e6eadd1e8c1d16a62f790751aafb55 - React-RCTText: 75e9dd39684f4bcd1836134ac2348efaca7437b3 - React-RCTVibration: 033c161fe875e6fa096d0d9733c2e2501682e3d4 + React-RCTAnimation: bde981f6bd7f8493696564da9b3bd05721d3b3cc + React-RCTAppDelegate: 0176615c51476c88212bf3edbafb840d39ea7631 + React-RCTBlob: 520a0382bf8e89b9153d60e3c6293e51615834e9 + React-RCTFabric: c9da097b19b30017a99498b8c66a69c72f3ce689 + React-RCTImage: 90448d2882464af6015ed57c98f463f8748be465 + React-RCTLinking: 1bd95d0a704c271d21d758e0f0388cced768d77d + React-RCTNetwork: 218af6e63eb9b47935cc5a775b7a1396cf10ff91 + React-RCTSettings: e10b8e42b0fce8a70fbf169de32a2ae03243ef6b + React-RCTText: e7bf9f4997a1a0b45c052d4ad9a0fe653061cf29 + React-RCTVibration: 5b70b7f11e48d1c57e0d4832c2097478adbabe93 React-rendererconsistency: f620c6e003e3c4593e6349d8242b8aeb3d4633f0 - React-rendererdebug: 5be7b834677b2a7a263f4d2545f0d4966cafad82 + React-rendererdebug: e697680f4dd117becc5daf9ea9800067abcee91c React-rncore: c22bd84cc2f38947f0414fab6646db22ff4f80cd - React-RuntimeApple: 71160e6c02efa07d198b84ef5c3a52a7d9d0399d - React-RuntimeCore: f88f79ec995c12af56a265d7505c7630733d9d82 + React-RuntimeApple: de0976836b90b484305638616898cbc665c67c13 + React-RuntimeCore: 3c4a5aa63d9e7a3c17b7fb23f32a72a8bcfccf57 React-runtimeexecutor: ea90d8e3a9e0f4326939858dafc6ab17c031a5d3 - React-RuntimeHermes: 49f86328914021f50fd5a5b9756685f5f6d8b4da - React-runtimescheduler: fed70991b942c6df752a59a22081e45fc811b11c - React-utils: 02526ea15628a768b8db9517b6017a1785c734d2 - ReactCodegen: 8b5341ecb61898b8bd40a73ebc443c6bf2d14423 - ReactCommon: 36d48f542b4010786d6b2bcee615fe5f906b7105 - RNAppleAuthentication: 8d313d93fe2238d6b7ff0a39c67ebcf298d96653 - RNCAsyncStorage: 40367e8d25522dca9c3513c7b9815a184669bd97 - RNDeviceInfo: 98bb51ba1519cd3f19f14e7236b5bb1c312c780f - RNFastImage: 462a183c4b0b6b26fdfd639e1ed6ba37536c3b87 - RNFBAnalytics: b0c3726ee8297f50302c45675f67c120b02bd773 - RNFBApp: 20bfba7e2a61a959518c1d57e5d48817c62ed3f6 - RNFBAppCheck: c5e77f500b36ad540eb323769448d2d0a954095b - RNFBCrashlytics: 35e45b650ea8caa14f341eba943a58d47073f23e - RNFBMessaging: 48579eec1f6ffaed4038b67426d7076963ab9401 - RNFBPerf: 244a4d455fe2fb34aedec78ea7d7b0bb4dae7177 - RNFlashList: be712ce93b2ddcbff2d6bb01de4b9c4b0b84a185 - RNFS: 89de7d7f4c0f6bafa05343c578f61118c8282ed8 - RNGestureHandler: d21c9c1cc8b1bb19336d2e1bc48e56882bd13bc6 - RNGoogleSignin: f19de8e6c64812ad0acef412bb70d6ceb99400bb - RNLocalize: 8bf466de4c92d4721b254aabe1ff0a1456e7b9f4 - RNNestedScrollView: 45783b74adaada13024d33e4200e83f5e972df7d - RNNotifee: be8434a9e622f05808aaf7e2f02f30ed7dd0c67a - RNPermissions: bd0d9ca7969ff7b999aa605ee2e5919c12522bfe - RNPullToRefresh: 1200b244de188ce3c2b3f870b5e8f5487afc39cc - RNReanimated: 6398ee150e1ebeda517fdd1e1b5525833a0c0ddc - RNScreens: 28fbd73104cc9719371da9d9aaa3c70d876a8c6b - RNSentry: e99002ced0a78ba64f6c8bac9bc76036e2d95fe6 - RNSpringScrollView: b7a0cd86c5f939458ab60e9592b474d4a7c2ea7c - RNSVG: 8542aa11770b27563714bbd8494a8436385fc85f - RNVectorIcons: 182892e7d1a2f27b52d3c627eca5d2665a22ee28 + React-RuntimeHermes: c6b0afdf1f493621214eeb6517fb859ce7b21b81 + React-runtimescheduler: 84f0d876d254bce6917a277b3930eb9bc29df6c7 + React-utils: cbe8b8b3d7b2ac282e018e46f0e7b25cdc87c5a0 + ReactCodegen: 4bcb34e6b5ebf6eef5cee34f55aa39991ea1c1f1 + ReactCommon: 6a952e50c2a4b694731d7682aaa6c79bc156e4ad + RNAppleAuthentication: e00c76acb03351f5544373c78fa7f359bef6d5d3 + RNCAsyncStorage: d35c79ffba52c1013013e16b1fc295aec2feabb6 + RNDeviceInfo: 59344c19152c4b2b32283005f9737c5c64b42fba + RNFastImage: 5c9c9fed9c076e521b3f509fe79e790418a544e8 + RNFBAnalytics: c79cf8da7d0bbbad0e0cc233402d2cadc4a694b9 + RNFBApp: a3e139715386fe79a09c387f2dbeb6890eb05b39 + RNFBAppCheck: 3cbdc88c15c3d1173c43c0582350fee9420ce2e9 + RNFBCrashlytics: e6d595ed2619e5e8ee3cdfd12c6a62e470280a03 + RNFBMessaging: a65862d8eba03cb6c838241bd328166504996894 + RNFBPerf: 9cd7430cb90e4b8aebcd86312f1eb3aae28bd0e7 + RNFlashList: 115dd44377580761bff386a0caebf165424cf16f + RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 + RNGestureHandler: 6dfe7692a191ee224748964127114edf057a1475 + RNGoogleSignin: 81521697b2c8f97f9a586ac7257b1a1d9b51b115 + RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81 + RNNestedScrollView: b9a2ac8588c89dd671d571b1184a0af007e1bea3 + RNNotifee: 5155e0a5e0a97d0c839030d8192783cd63053999 + RNPermissions: 4e3714e18afe7141d000beae3755e5b5fb2f5e05 + RNPullToRefresh: cc6d153a0b4dac79e4bbaa5c81d177aee92c9fdf + RNReanimated: f6a10979b3701f8029c71dbfe35d0ff4328dce4c + RNScreens: 19719a9c326e925498ac3b2d35c4e50fe87afc06 + RNSentry: a7660b72556d6574867d488e60c4b4b0be7422d8 + RNSpringScrollView: e354167d96f2c3d2f20b186990b2c3946987cb3c + RNSVG: 8b1a777d54096b8c2a0fd38fc9d5a454332bbb4d + RNVectorIcons: 6382277afab3c54658e9d555ee0faa7a37827136 SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d Sentry: ee060c09b2f7ec1240e95c766ab44c04c7bdb052 diff --git a/packages/mobile-aelf/js/components/Updater/index.tsx b/packages/mobile-aelf/js/components/Updater/index.tsx index 85252ddec8..f78667e1c1 100644 --- a/packages/mobile-aelf/js/components/Updater/index.tsx +++ b/packages/mobile-aelf/js/components/Updater/index.tsx @@ -1,56 +1,35 @@ -import { request } from '@portkey-wallet/api/api-did'; -import { useChainListFetch } from '@portkey-wallet/hooks/hooks-ca/chainList'; -import { service } from 'api/utils'; -import { usePin } from 'hooks/store'; +import { request } from '@portkey-wallet/api/api-eoa'; +import { useCurrentNetworkInfo } from '@portkey-wallet/hooks/hooks-eoa/network'; +import { useInitChainList } from '@portkey-wallet/hooks/hooks-eoa/network/chain'; + import useEffectOnce from 'hooks/useEffectOnce'; import { useLanguage } from 'i18n/hooks'; -import { useEffect, useMemo } from 'react'; -import { useRefreshTokenConfig } from '@portkey-wallet/hooks/hooks-ca/api'; -import { useCurrentNetworkInfo, useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; -import useLocking from 'hooks/useLocking'; -import { useCaInfoOnChain } from 'hooks/useCaInfoOnChain'; -import { useFetchSymbolImages } from '@portkey-wallet/hooks/hooks-ca/useToken'; -import { useCheckManager } from '@portkey-wallet/hooks/hooks-ca/graphql'; -import { useCheckManagerOnLogout } from 'hooks/useLogOut'; -import { usePhoneCountryCode } from '@portkey-wallet/hooks/hooks-ca/misc'; -import { - useDiscoverGroupList, - useSocialMediaList, - useRememberMeBlackList, - useTabMenuList, -} from '@portkey-wallet/hooks/hooks-ca/cms'; +import { useMemo } from 'react'; import { exceptionManager } from 'utils/errorHandler/ExceptionHandler'; -import EntryScriptWeb3 from 'utils/EntryScriptWeb3'; -import { useFetchTxFee } from '@portkey-wallet/hooks/hooks-ca/useTxFee'; -import { useCheckAndInitNetworkDiscoverMap } from 'hooks/discover'; -import im from '@portkey-wallet/im'; -import s3Instance from '@portkey-wallet/utils/s3'; -import Config from 'react-native-config'; -import { useCheckContactMap } from '@portkey-wallet/hooks/hooks-ca/contact'; -import { useAppEntrance } from 'hooks/cms'; -import { codePushOperator } from 'utils/update'; -import { useCheckCodePushUpdate } from 'store/user/hooks'; -import useInterval from '@portkey-wallet/hooks/useInterval'; -import { useLatestRef } from '@portkey-wallet/hooks'; -import MatchValueMap from 'utils/matchValueMap'; -import { useInitCmsBanner } from '@portkey-wallet/hooks/hooks-ca/cms/banner'; -import { useInitCMSDiscoverNewData, useInitDappWhiteListData } from '@portkey-wallet/hooks/hooks-ca/cms/discover'; -import { useInitAwaken } from '@portkey-wallet/hooks/hooks-ca/awaken'; +import { service } from 'api/utils'; request.setExceptionManager(exceptionManager); -const CHECK_CODE_PUSH_TIME = 5 * 60 * 1000; - export default function Updater() { - const isMainnet = useIsMainnet(); + // const isMainnet = useIsMainnet(); // FIXME: delete language const { changeLanguage } = useLanguage(); useEffectOnce(() => { changeLanguage('en'); }); + + const { apiUrl } = useCurrentNetworkInfo(); + useMemo(() => { + request.set('baseURL', apiUrl); + if (service.defaults.baseURL !== apiUrl) { + service.defaults.baseURL = apiUrl; + } + }, [apiUrl]); + + useInitChainList(); // useChainListFetch(); - // const { apiUrl, imApiUrl, imWsUrl, imS3Bucket } = useCurrentNetworkInfo(); + // const pin = usePin(); // const onLocking = useLocking(); // const checkManagerOnLogout = useCheckManagerOnLogout(); @@ -68,12 +47,7 @@ export default function Updater() { // useCheckAndInitNetworkDiscoverMap(); // useFetchSymbolImages(); // useFetchTxFee(); - // useMemo(() => { - // request.set('baseURL', apiUrl); - // if (service.defaults.baseURL !== apiUrl) { - // service.defaults.baseURL = apiUrl; - // } - // }, [apiUrl]); + // useMemo(() => { // im.setUrl({ // apiUrl: imApiUrl || '', diff --git a/packages/mobile-aelf/js/contexts/useInterface/actions.ts b/packages/mobile-aelf/js/contexts/useInterface/actions.ts index 805a47b0ed..2cfd294d3a 100644 --- a/packages/mobile-aelf/js/contexts/useInterface/actions.ts +++ b/packages/mobile-aelf/js/contexts/useInterface/actions.ts @@ -9,7 +9,6 @@ export enum InterfaceActions { setViewContracts = 'setViewContracts', setViewContract = 'setViewContract', setCAContract = 'setCAContract', - setTokenContract = 'setTokenContract', destroy = 'DESTROY', } @@ -22,16 +21,8 @@ export const basicInterfaceActions = { basicActions(InterfaceActions.setViewContract, { viewContract }), setCAContract: (caContract: { [key: string]: ContractBasic }, chainId: ChainId) => basicActions(InterfaceActions.setCAContract, { caContract, chainId }), - setTokenContract: (tokenContract: { [key: string]: ContractBasic }, chainId: ChainId) => - basicActions(InterfaceActions.setTokenContract, { tokenContract, chainId }), interfaceDestroy: () => basicActions(InterfaceActions.destroy), }; -export const { - interfaceDestroy, - setCurrentInterface, - setViewContracts, - setViewContract, - setCAContract, - setTokenContract, -} = basicInterfaceActions; +export const { interfaceDestroy, setCurrentInterface, setViewContracts, setViewContract, setCAContract } = + basicInterfaceActions; diff --git a/packages/mobile-aelf/js/contexts/useInterface/index.tsx b/packages/mobile-aelf/js/contexts/useInterface/index.tsx index cbd931fcbb..7fd09a6d85 100644 --- a/packages/mobile-aelf/js/contexts/useInterface/index.tsx +++ b/packages/mobile-aelf/js/contexts/useInterface/index.tsx @@ -33,18 +33,11 @@ function reducer(state: State, { type, payload }: any) { }), }); } - case InterfaceActions.setTokenContract: { - const { tokenContracts } = state; - const { tokenContract, chainId } = payload; - return Object.assign({}, state, { - tokenContracts: Object.assign({}, tokenContracts, { - [chainId]: { ...tokenContracts?.[chainId as ChainId], ...tokenContract }, - }), - }); - } default: { const { destroy } = payload; - if (destroy) return Object.assign({}, payload); + if (destroy) { + return Object.assign({}, payload); + } return Object.assign({}, state, payload); } } @@ -66,7 +59,9 @@ export default function Provider({ children }: { children: React.ReactNode }) { useEffect(() => { if (currentNetwork.chainType === 'aelf') { - if (prevRpcUrl !== currentNetwork.rpcUrl) dispatch(setCurrentInterface(getAelfInstance(currentNetwork.rpcUrl))); + if (prevRpcUrl !== currentNetwork.rpcUrl) { + dispatch(setCurrentInterface(getAelfInstance(currentNetwork.rpcUrl))); + } } else { // TODO: ethereum } diff --git a/packages/mobile-aelf/js/hooks/contract.ts b/packages/mobile-aelf/js/hooks/contract.ts index 4400030212..7e3106193f 100644 --- a/packages/mobile-aelf/js/hooks/contract.ts +++ b/packages/mobile-aelf/js/hooks/contract.ts @@ -1,9 +1,8 @@ -import { useCurrentChain, useGetChain } from '@portkey-wallet/hooks/hooks-ca/chainList'; import { useCurrentWalletInfo, useOriginChainId } from '@portkey-wallet/hooks/hooks-ca/wallet'; import { ChainId } from '@portkey-wallet/types'; import aes from '@portkey-wallet/utils/aes'; import { useInterface } from 'contexts/useInterface'; -import { setCAContract, setViewContract, setTokenContract } from 'contexts/useInterface/actions'; +import { setCAContract, setViewContract } from 'contexts/useInterface/actions'; import { getContractBasic } from '@portkey-wallet/contracts/utils'; import { useCallback, useMemo } from 'react'; import { getDefaultWallet } from '@portkey-wallet/utils/aelfUtils'; @@ -11,21 +10,33 @@ import AElf from 'aelf-sdk'; import { usePin } from './store'; import { ContractBasic } from '@portkey-wallet/contracts/utils/ContractBasic'; import { IChainItemType } from '@portkey-wallet/types/types-ca/chain'; +import { useChainInfo, useGetChainInfo } from '@portkey-wallet/hooks/hooks-eoa/network/chain'; +import { useCurrentAccount } from '@portkey-wallet/hooks/hooks-eoa/wallet'; +// TODO: eoa delete deprecated + +/** + * @deprecated This method is deprecated and will be removed in future versions. + * Please use the `useGetViewContract` instead. + */ export function useGetCurrentCAViewContract(_chainId?: ChainId) { const originChainId = useOriginChainId(); const chainId = useMemo(() => _chainId || originChainId, [_chainId, originChainId]); - const chainInfo = useCurrentChain(chainId); + const chainInfo = useChainInfo(chainId); const [{ viewContracts }, dispatch] = useInterface(); return useCallback( async (paramChainInfo?: IChainItemType) => { const _chainInfo = paramChainInfo || chainInfo; - if (!_chainInfo) throw Error('Could not find chain information'); + if (!_chainInfo) { + throw Error('Could not find chain information'); + } const key = _chainInfo.caContractAddress + _chainInfo.endPoint; const caContract = viewContracts?.[key]; - if (caContract) return caContract; + if (caContract) { + return caContract; + } const contract = await getContractBasic({ contractAddress: _chainInfo.caContractAddress, @@ -40,10 +51,14 @@ export function useGetCurrentCAViewContract(_chainId?: ChainId) { ); } +/** + * @deprecated This method is deprecated and will be removed in future versions. + * Please use the `useGetContract` instead. + */ export function useGetCurrentCAContract(_chainId?: ChainId) { const originChainId = useOriginChainId(); const chainId = useMemo(() => _chainId || originChainId, [_chainId, originChainId]); - const chainInfo = useCurrentChain(chainId); + const chainInfo = useChainInfo(chainId); const pin = usePin(); const { AESEncryptPrivateKey, address } = useCurrentWalletInfo(); const [{ caContracts }, dispatch] = useInterface(); @@ -56,10 +71,16 @@ export function useGetCurrentCAContract(_chainId?: ChainId) { }, [caContracts, chainId, key]); return useCallback(async () => { - if (caContract) return caContract; + if (caContract) { + return caContract; + } - if (!chainInfo) throw Error('Could not find chain information'); - if (!pin || !AESEncryptPrivateKey) throw Error('Could not find wallet information'); + if (!chainInfo) { + throw Error('Could not find chain information'); + } + if (!pin || !AESEncryptPrivateKey) { + throw Error('Could not find wallet information'); + } const privateKey = aes.decrypt(AESEncryptPrivateKey, pin); const wallet = AElf.wallet.getWalletByPrivateKey(privateKey); @@ -74,22 +95,32 @@ export function useGetCurrentCAContract(_chainId?: ChainId) { }, [AESEncryptPrivateKey, caContract, chainId, chainInfo, dispatch, key, pin]); } +/** + * @deprecated This method is deprecated and will be removed in future versions. + * Please use the `useGetContract` instead. + */ export function useGetCAContract() { const pin = usePin(); const { AESEncryptPrivateKey, address } = useCurrentWalletInfo(); const [{ caContracts }, dispatch] = useInterface(); - const getChain = useGetChain(); + const getChainInfo = useGetChainInfo(); return useCallback( async (chainId: ChainId) => { - const chainInfo = getChain(chainId); - if (!chainInfo) throw Error('Could not find chain information'); + const chainInfo = getChainInfo(chainId); + if (!chainInfo) { + throw Error('Could not find chain information'); + } const key = `${address}_${chainInfo.caContractAddress}_${chainInfo.chainId}`; const caContract = caContracts?.[chainId]?.[key]; - if (caContract) return caContract; + if (caContract) { + return caContract; + } - if (!pin || !AESEncryptPrivateKey) throw Error('Could not find wallet information'); + if (!pin || !AESEncryptPrivateKey) { + throw Error('Could not find wallet information'); + } const privateKey = aes.decrypt(AESEncryptPrivateKey, pin); const wallet = AElf.wallet.getWalletByPrivateKey(privateKey); @@ -102,27 +133,27 @@ export function useGetCAContract() { dispatch(setCAContract({ [key]: contract as ContractBasic }, chainId)); return contract as ContractBasic; }, - [AESEncryptPrivateKey, address, caContracts, dispatch, getChain, pin], + [AESEncryptPrivateKey, address, caContracts, dispatch, getChainInfo, pin], ); } export function useGetTokenContract() { const pin = usePin(); - const { AESEncryptPrivateKey, address } = useCurrentWalletInfo(); - const [{ tokenContracts }, dispatch] = useInterface(); + const currentAccount = useCurrentAccount(); - const getChain = useGetChain(); + const getChainInfo = useGetChainInfo(); return useCallback( async (chainId: ChainId) => { - const chainInfo = getChain(chainId); - if (!chainInfo) throw Error('Could not find chain information'); - const key = `${address}_${chainInfo.defaultToken.address}_${chainInfo.chainId}`; - - const tokenContract = tokenContracts?.[chainId]?.[key]; - if (tokenContract) return tokenContract; + const chainInfo = getChainInfo(chainId); + if (!chainInfo) { + throw Error('Could not find chain information'); + } - if (!pin || !AESEncryptPrivateKey) throw Error('Could not find wallet information'); + const { AESEncryptPrivateKey } = currentAccount || {}; + if (!pin || !AESEncryptPrivateKey) { + throw Error('Could not find wallet information'); + } const privateKey = aes.decrypt(AESEncryptPrivateKey, pin); const wallet = AElf.wallet.getWalletByPrivateKey(privateKey); @@ -132,20 +163,22 @@ export function useGetTokenContract() { rpcUrl: chainInfo.endPoint, account: wallet, }); - dispatch(setTokenContract({ [key]: contract as ContractBasic }, chainId)); + return contract as ContractBasic; }, - [AESEncryptPrivateKey, address, dispatch, getChain, pin, tokenContracts], + [currentAccount, getChainInfo, pin], ); } export function useGetTokenViewContract() { - const getChain = useGetChain(); + const getChainInfo = useGetChainInfo(); return useCallback( async (chainId: ChainId) => { - const chainInfo = getChain(chainId); - if (!chainInfo) throw Error('Could not find chain information'); + const chainInfo = getChainInfo(chainId); + if (!chainInfo) { + throw Error('Could not find chain information'); + } const contract = await getContractBasic({ contractAddress: chainInfo.defaultToken.address, @@ -154,7 +187,7 @@ export function useGetTokenViewContract() { }); return contract as ContractBasic; }, - [getChain], + [getChainInfo], ); } @@ -163,12 +196,14 @@ export type TGetViewContractParams = { contractAddress: string; }; export const useGetViewContract = () => { - const getChain = useGetChain(); + const getChainInfo = useGetChainInfo(); return useCallback( async ({ chainId, contractAddress }: TGetViewContractParams) => { - const chainInfo = getChain(chainId); - if (!chainInfo) throw Error('Could not find chain information'); + const chainInfo = getChainInfo(chainId); + if (!chainInfo) { + throw Error('Could not find chain information'); + } const contract = await getContractBasic({ contractAddress, @@ -177,6 +212,39 @@ export const useGetViewContract = () => { }); return contract as ContractBasic; }, - [getChain], + [getChainInfo], ); }; + +export function useGetContract() { + const pin = usePin(); + const currentAccount = useCurrentAccount(); + + const getChainInfo = useGetChainInfo(); + + return useCallback( + async (chainId: ChainId, contractAddress: string) => { + const chainInfo = getChainInfo(chainId); + if (!chainInfo) { + throw Error('Could not find chain information'); + } + + const { AESEncryptPrivateKey } = currentAccount || {}; + if (!pin || !AESEncryptPrivateKey) { + throw Error('Could not find wallet information'); + } + + const privateKey = aes.decrypt(AESEncryptPrivateKey, pin); + const wallet = AElf.wallet.getWalletByPrivateKey(privateKey); + + const contract = await getContractBasic({ + contractAddress, + rpcUrl: chainInfo.endPoint, + account: wallet, + }); + + return contract as ContractBasic; + }, + [currentAccount, getChainInfo, pin], + ); +} diff --git a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx index fdc8f312ae..5e96bfa97b 100644 --- a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx +++ b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx @@ -8,11 +8,17 @@ import CommonButton from 'components/CommonButton'; import navigationService from 'utils/navigationService'; import { useCheckSecurityLock } from 'hooks/securityLock'; import { useBackupWalletModal } from '../../Login/hooks/useBackupWalletModal'; +import * as Clipboard from 'expo-clipboard'; +import { useGetContract, useGetViewContract } from 'hooks/contract'; +import { useCurrentNetwork, useSwitchNetwork } from '@portkey-wallet/hooks/hooks-eoa/network'; +import { useDAppChain, useDAppChainId, useGetChainInfo } from '@portkey-wallet/hooks/hooks-eoa/network/chain'; const HomeTab: React.FC = ({ _ }) => { const { theme } = useTheme(); const currentAccount = useCurrentAccount(); const walletList = useWalletListState(); + const currentNetwork = useCurrentNetwork(); + useEffect(() => { console.log('currentAccount', currentAccount); console.log('walletList', walletList); @@ -32,39 +38,98 @@ const HomeTab: React.FC = ({ _ }) => { const { showBackupWalletModal } = useBackupWalletModal(); + const dAppChain = useDAppChain(); + const getContract = useGetContract(); + // const getTokenContract = useGetTokenContract(); + const sendElf = useCallback(async () => { + if (!dAppChain) { + return; + } + try { + console.log('send ELF'); + // const contract = await getTokenContract(dAppChain.chainId); + const contract = await getContract(dAppChain.chainId, dAppChain.defaultToken.address); + const result = await contract.callSendMethod('Transfer', currentAccount?.address || '', { + to: 'ELF_bPVEs5WFMMwiqPnaXiJpTmoR9xYVqBK2QDLZdA3HChqNebFQz_tDVW', + symbol: 'ELF', + amount: '10000000', + memo: '', + }); + console.log('result', result); + } catch (error) { + console.log('sendElf error', error); + } + }, [currentAccount?.address, dAppChain, getContract]); + + // const getTokenViewContract = useGetTokenViewContract(); + const getViewContract = useGetViewContract(); + + const dAppChainId = useDAppChainId(); + const getChainInfo = useGetChainInfo(); + const getBalance = useCallback(async () => { + try { + // const viewContract = await getTokenViewContract('tDVW'); + + const chainInfo = getChainInfo(dAppChainId); + const viewContract = await getViewContract({ + chainId: 'tDVW', + contractAddress: chainInfo?.defaultToken.address || '', + }); + const result = await viewContract.callViewMethod('GetBalance', { + symbol: 'ELF', + owner: currentAccount?.address || '', + }); + console.log('result', result); + } catch (error) { + console.log('getBalance error', error); + } + }, [currentAccount?.address, dAppChainId, getChainInfo, getViewContract]); + + const switchNetwork = useSwitchNetwork(); + return ( Home Tab {`Address: ${currentAccount?.address}`} - navigationService.push('Home')}> + {`Network: ${currentNetwork}`} + + Clipboard.setStringAsync(currentAccount?.address || '')}> + Copy Address + + + + Switch Network + + + navigationService.push('Home')} style={{ marginTop: 20 }}> Home - navigationService.push('ImportWallet')} style={{ marginTop: 40 }}> + navigationService.push('ImportWallet')} style={{ marginTop: 20 }}> Import Wallets navigationService.push('WalletImportTypeSelect')} - style={{ marginTop: 40 }}> + style={{ marginTop: 20 }}> WalletImportTypeSelect - navigationService.push('ConfirmBackup')} style={{ marginTop: 40 }}> + navigationService.push('ConfirmBackup')} style={{ marginTop: 20 }}> Confirm Backup navigationService.push('ManualBackupSuccess')} - style={{ marginTop: 40 }}> + style={{ marginTop: 20 }}> Confirm Backup Success - navigationService.push('ManualBackup')} style={{ marginTop: 40 }}> + navigationService.push('ManualBackup')} style={{ marginTop: 20 }}> Manual Backup - navigationService.push('Referral')} style={{ marginTop: 40 }}> + navigationService.push('Referral')} style={{ marginTop: 20 }}> Referral - + Check Pin = ({ _ }) => { onPress={() => { showBackupWalletModal(); }} - style={{ marginTop: 40 }}> + style={{ marginTop: 20 }}> Backup Modal + + + ELF Balance tDVW + + + Send ELF + ); diff --git a/packages/mobile-aelf/js/store/config.ts b/packages/mobile-aelf/js/store/config.ts index 6686970abd..74a9e0c458 100644 --- a/packages/mobile-aelf/js/store/config.ts +++ b/packages/mobile-aelf/js/store/config.ts @@ -5,6 +5,7 @@ import { } from '@reduxjs/toolkit'; import { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from 'redux-persist'; import { walletSlice } from '@portkey-wallet/store/store-eoa/wallet/slice'; +import { networkSlice } from '@portkey-wallet/store/store-eoa/network/slice'; interface ThunkOptions { extraArgument: E; @@ -24,7 +25,7 @@ const reduxPersistConfig = { // Optionally, just specify the keys you DO want stored to persistence. // An empty array means 'don't store any reducers' -> infinite-red/ignite#409 - whitelist: [walletSlice.name], + whitelist: [walletSlice.name, networkSlice.name], // More info here: https://shift.infinite.red/shipping-persistant-reducers-7341691232b1 // transforms: [immutablePersistenceTransform], diff --git a/packages/mobile-aelf/js/store/rootReducer.ts b/packages/mobile-aelf/js/store/rootReducer.ts index a6f4889cf3..032b1dd0d0 100644 --- a/packages/mobile-aelf/js/store/rootReducer.ts +++ b/packages/mobile-aelf/js/store/rootReducer.ts @@ -6,6 +6,7 @@ import userSlice from './user/slice'; import { walletSlice } from '@portkey-wallet/store/store-eoa/wallet/slice'; import { settingsSlice } from '@portkey-wallet/store/settings/slice'; import chainSlice from '@portkey-wallet/store/network/slice'; +import { networkSlice } from '@portkey-wallet/store/store-eoa/network/slice'; const userPersistConfig = { key: userSlice.name, @@ -40,6 +41,7 @@ const rootReducer = combineReducers({ [walletSlice.name]: walletSlice.reducer, [settingsSlice.name]: settingsSlice.reducer, [chainSlice.name]: chainSlice.reducer, + [networkSlice.name]: networkSlice.reducer, // [contactSlice.name]: contactSlice.reducer, // [miscSlice.name]: miscSlice.reducer, // [guardiansSlice.name]: guardiansSlice.reducer, diff --git a/packages/store/store-eoa/network/actions.ts b/packages/store/store-eoa/network/actions.ts new file mode 100644 index 0000000000..0c9e16e689 --- /dev/null +++ b/packages/store/store-eoa/network/actions.ts @@ -0,0 +1,12 @@ +import { NetworkType } from '@portkey-wallet/types'; +import { IChainItemType } from '@portkey-wallet/types/types-eoa/chain'; +import { createAction } from '@reduxjs/toolkit'; + +export const setCurrentNetwork = createAction<{ + currentNetwork: NetworkType; +}>('network/setCurrentNetwork'); + +export const setChainList = createAction<{ + network: NetworkType; + chainList: IChainItemType[]; +}>('network/setChainList'); diff --git a/packages/store/store-eoa/network/slice.ts b/packages/store/store-eoa/network/slice.ts new file mode 100644 index 0000000000..e2c128ca2f --- /dev/null +++ b/packages/store/store-eoa/network/slice.ts @@ -0,0 +1,33 @@ +import { createSlice } from '@reduxjs/toolkit'; +import { TNetworkState } from './type'; +import { setChainList, setCurrentNetwork } from './actions'; + +const initialState: TNetworkState = { + currentNetwork: 'MAINNET', + chainListMap: {}, +}; +export const networkSlice = createSlice({ + name: 'network', + initialState, + reducers: {}, + extraReducers: builder => { + builder + .addCase(setCurrentNetwork, (state, action) => { + const { currentNetwork } = action.payload; + return { + ...state, + currentNetwork, + }; + }) + .addCase(setChainList, (state, action) => { + const { network, chainList } = action.payload; + return { + ...state, + chainListMap: { + ...state.chainListMap, + [network]: chainList, + }, + }; + }); + }, +}); diff --git a/packages/store/store-eoa/network/type.ts b/packages/store/store-eoa/network/type.ts new file mode 100644 index 0000000000..2b9dce7a73 --- /dev/null +++ b/packages/store/store-eoa/network/type.ts @@ -0,0 +1,7 @@ +import { NetworkType } from '@portkey-wallet/types'; +import { IChainItemType } from '@portkey-wallet/types/types-eoa/chain'; + +export type TNetworkState = { + currentNetwork: NetworkType; + chainListMap: { [key in NetworkType]?: IChainItemType[] }; +}; diff --git a/packages/types/types-eoa/chain.ts b/packages/types/types-eoa/chain.ts new file mode 100644 index 0000000000..205cdc221c --- /dev/null +++ b/packages/types/types-eoa/chain.ts @@ -0,0 +1,17 @@ +import { ChainId } from '../index'; + +export type DefaultToken = { + address: string; + decimals: string; + imageUrl: string; + name: string; + symbol: string; +}; +export interface IChainItemType { + chainId: ChainId; + chainName: string; + endPoint: string; + explorerUrl: string; + defaultToken: DefaultToken; + chainImageUrl?: string; +} diff --git a/packages/types/types-eoa/network.ts b/packages/types/types-eoa/network.ts new file mode 100644 index 0000000000..2087e4a6e3 --- /dev/null +++ b/packages/types/types-eoa/network.ts @@ -0,0 +1,28 @@ +import { ChainId, ChainType, NetworkType } from '@portkey-wallet/types'; +export type NetworkItem = { + name: string; + walletType: ChainType; + networkType: NetworkType; + isActive?: boolean; + apiUrl: string; + domain?: string; + graphqlUrl: string; + networkIconUrl?: string; + tokenClaimContractAddress?: string; + cmsUrl?: string; + s3Url?: string; + referralUrl?: string; + cryptoGiftUrl?: string; + eBridgeUrl?: string; + eTransferUrl?: string; + eForestUrl?: string; + awakenUrl?: string; + schrodingerUrl?: string; + sgrSchrodingerUrl?: string; + tomorrowDAOUrl?: string; + eTransferCA?: { + [x in ChainId]?: string; + }; + hamsterUrl?: string; + cryptoGiftTgUrl?: string; +}; diff --git a/packages/types/types-eoa/store.ts b/packages/types/types-eoa/store.ts index eb175ce4fd..5ab75db3b7 100644 --- a/packages/types/types-eoa/store.ts +++ b/packages/types/types-eoa/store.ts @@ -4,9 +4,12 @@ import settingsSlice from '@portkey-wallet/store/settings/slice'; import { SettingsState } from '@portkey-wallet/store/settings/types'; import { walletSlice } from '@portkey-wallet/store/store-eoa/wallet/slice'; import { TWalletState } from '@portkey-wallet/store/store-eoa/wallet/type'; +import { networkSlice } from '@portkey-wallet/store/store-eoa/network/slice'; +import { TNetworkState } from '@portkey-wallet/store/store-eoa/network/type'; export type EOACommonState = { [settingsSlice.name]: SettingsState; [walletSlice.name]: TWalletState; [chainSlice.name]: ChainState; + [networkSlice.name]: TNetworkState; }; From 25ffe82de52b2878b5dbd19b1249a4bd09bbed6d Mon Sep 17 00:00:00 2001 From: thomas-portkey Date: Thu, 23 Jan 2025 10:33:51 +0800 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20update=20eoa=20netwo?= =?UTF-8?q?rk=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/constants/constants-eoa/network/backend-network.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/constants/constants-eoa/network/backend-network.ts b/packages/constants/constants-eoa/network/backend-network.ts index 05248eae36..a6821a6c67 100644 --- a/packages/constants/constants-eoa/network/backend-network.ts +++ b/packages/constants/constants-eoa/network/backend-network.ts @@ -11,8 +11,7 @@ export const BackEndNetWorkMap: { walletType: 'aelf', networkType: 'TESTNET', isActive: true, - // apiUrl: 'https://eoa-portkey-test.portkey.finance', - apiUrl: 'https://aa-portkey-test.portkey.finance', + apiUrl: 'https://eoa-portkey-test.portkey.finance', graphqlUrl: 'https://dapp-aa-portkey-test.portkey.finance/aefinder-v2/api/app/graphql/portkey', tokenClaimContractAddress: '233wFn5JbyD4i8R5Me4cW4z6edfFGRn5bpWnGuY8fjR7b2kRsD', cmsUrl: 'https://cms-test-aa.portkey.finance/graphql', From 68bee7e4a1912e48b73da7b2b71f17d150184b9e Mon Sep 17 00:00:00 2001 From: semaphoresentinel <149366454+semaphoresentinel@users.noreply.github.com> Date: Thu, 23 Jan 2025 20:11:51 +0800 Subject: [PATCH 3/6] feat: home&nft*toekndetail&activity --- packages/api/api-did/server.ts | 22 +- .../constants/constants-ca/backend-network.ts | 4 + packages/constants/constants-eoa/activity.ts | 48 + packages/constants/constants-eoa/assets.ts | 66 + packages/constants/constants-eoa/common.ts | 29 + packages/constants/constants-eoa/ramp.ts | 18 + packages/hooks/hooks-eoa/activity/index.tsx | 2 + packages/hooks/hooks-eoa/assets/index.tsx | 199 + packages/hooks/hooks-eoa/chainList.ts | 104 + packages/hooks/hooks-eoa/index.ts | 18 + packages/hooks/hooks-eoa/network.ts | 44 + packages/hooks/hooks-eoa/useToken.ts | 82 + packages/hooks/hooks-eoa/useTokensPrice.ts | 82 + packages/hooks/hooks-eoa/wallet/index.ts | 159 +- packages/mobile-aelf/App.tsx | 2 + packages/mobile-aelf/android/app/build.gradle | 12 +- .../android/app/google-services.json | 2 +- packages/mobile-aelf/android/dependencies.txt | 10279 ++++++++++++++++ .../ios/AELFWallet.xcodeproj/project.pbxproj | 6 +- .../xcshareddata/IDEWorkspaceChecks.plist | 8 + packages/mobile-aelf/ios/Podfile.lock | 2 +- .../js/components/ActivityItem/index.tsx | 8 +- .../js/components/ActivityOverlay/index.tsx | 44 +- .../js/components/Fallback/index.tsx | 2 +- .../TokenListUnionItem/TokenItem/index.tsx | 11 +- .../components/TokenListUnionItem/index.tsx | 6 +- .../js/components/Updater/index.tsx | 45 +- packages/mobile-aelf/js/hooks/account.ts | 31 +- packages/mobile-aelf/js/hooks/useNetwork.ts | 20 + .../js/hooks/userExceptionMessage.ts | 10 +- packages/mobile-aelf/js/navigation/Tab.tsx | 41 +- .../pages/Activity/ActivityListPage/index.tsx | 21 +- .../js/pages/DashBoard/Card/index.tsx | 26 +- .../pages/DashBoard/CopyUserAddress/index.tsx | 12 +- .../js/pages/DashBoard/DashBoardTab/index.tsx | 4 +- .../js/pages/DashBoard/Header/index.tsx | 28 +- .../NFTSection/CollectionsModeItem.tsx | 2 +- .../NFTSection/MinStatusComponent.tsx | 11 +- .../DashBoard/NFTSection/NFTsModeItem.tsx | 12 +- .../js/pages/DashBoard/NFTSection/index.tsx | 117 +- .../js/pages/DashBoard/TokenSection/index.tsx | 34 +- .../mobile-aelf/js/pages/DashBoard/index.tsx | 47 +- .../js/pages/Home/HomeTab/index.tsx | 43 +- .../js/pages/NFT/CollectionDetail/index.tsx | 20 +- .../js/pages/Receive/ReceiveNFTs/index.tsx | 12 +- .../js/pages/Receive/SelectToken/index.tsx | 11 +- .../js/pages/Token/TokenDetail/index.tsx | 2 +- .../components/TokenDetailPage/index.tsx | 51 +- .../components/TokenDetailTopTab/index.tsx | 1 + packages/mobile-aelf/js/store/rootReducer.ts | 9 +- packages/mobile-aelf/js/store/user/actions.ts | 2 +- packages/mobile-aelf/js/store/user/slice.ts | 3 +- packages/mobile-aelf/js/types/navigate.ts | 1 + .../org.eclipse.buildship.core.prefs | 13 + packages/store/store-eoa/activity/action.ts | 26 + packages/store/store-eoa/activity/api.ts | 41 + .../store/store-eoa/activity/index.test.ts | 320 + packages/store/store-eoa/activity/slice.ts | 65 + packages/store/store-eoa/activity/type.ts | 68 + packages/store/store-eoa/assets/api.ts | 226 + packages/store/store-eoa/assets/index.test.ts | 561 + packages/store/store-eoa/assets/slice.ts | 629 + packages/store/store-eoa/assets/type.ts | 145 + .../store/store-eoa/tokenManagement/action.ts | 80 + .../store/store-eoa/tokenManagement/api.ts | 82 + .../store-eoa/tokenManagement/index.test.ts | 116 + .../store/store-eoa/tokenManagement/slice.ts | 119 + .../store/store-eoa/tokenManagement/types.ts | 1 + packages/store/store-eoa/wallet/actions.ts | 30 +- packages/store/store-eoa/wallet/api.ts | 11 + packages/store/store-eoa/wallet/slice.ts | 47 +- packages/store/store-eoa/wallet/type.ts | 18 + packages/types/types-ca/network.ts | 2 + packages/types/types-eoa/activity.ts | 88 + packages/types/types-eoa/assets.ts | 76 + packages/types/types-eoa/chain.ts | 1 + packages/types/types-eoa/network.ts | 3 + packages/types/types-eoa/store.ts | 10 +- packages/types/types-eoa/token.ts | 119 +- 79 files changed, 14439 insertions(+), 333 deletions(-) create mode 100644 packages/constants/constants-eoa/activity.ts create mode 100644 packages/constants/constants-eoa/assets.ts create mode 100644 packages/constants/constants-eoa/common.ts create mode 100644 packages/constants/constants-eoa/ramp.ts create mode 100644 packages/hooks/hooks-eoa/activity/index.tsx create mode 100644 packages/hooks/hooks-eoa/assets/index.tsx create mode 100644 packages/hooks/hooks-eoa/chainList.ts create mode 100644 packages/hooks/hooks-eoa/network.ts create mode 100644 packages/hooks/hooks-eoa/useToken.ts create mode 100644 packages/hooks/hooks-eoa/useTokensPrice.ts create mode 100644 packages/mobile-aelf/android/dependencies.txt create mode 100644 packages/mobile-aelf/ios/AELFWallet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/mobile-aelf/js/hooks/useNetwork.ts create mode 100644 packages/mobile-app-did/android/.settings/org.eclipse.buildship.core.prefs create mode 100644 packages/store/store-eoa/activity/action.ts create mode 100644 packages/store/store-eoa/activity/api.ts create mode 100644 packages/store/store-eoa/activity/index.test.ts create mode 100644 packages/store/store-eoa/activity/slice.ts create mode 100644 packages/store/store-eoa/activity/type.ts create mode 100644 packages/store/store-eoa/assets/api.ts create mode 100644 packages/store/store-eoa/assets/index.test.ts create mode 100644 packages/store/store-eoa/assets/slice.ts create mode 100644 packages/store/store-eoa/assets/type.ts create mode 100644 packages/store/store-eoa/tokenManagement/action.ts create mode 100644 packages/store/store-eoa/tokenManagement/api.ts create mode 100644 packages/store/store-eoa/tokenManagement/index.test.ts create mode 100644 packages/store/store-eoa/tokenManagement/slice.ts create mode 100644 packages/store/store-eoa/tokenManagement/types.ts create mode 100644 packages/store/store-eoa/wallet/api.ts create mode 100644 packages/types/types-eoa/activity.ts create mode 100644 packages/types/types-eoa/assets.ts diff --git a/packages/api/api-did/server.ts b/packages/api/api-did/server.ts index c40c448c47..8331fc5c2e 100644 --- a/packages/api/api-did/server.ts +++ b/packages/api/api-did/server.ts @@ -15,6 +15,7 @@ export class DidService extends ServiceInit { protected onLockApp?: (expired?: boolean) => void; locked?: boolean; exceptionManager?: IExceptionManager; + private transformCallbackList: ((result: any) => any)[] = []; constructor() { super(); } @@ -72,7 +73,15 @@ export class DidService extends ServiceInit { }; send = async (base: BaseConfig, config?: RequestConfig, reCount = 0): Promise => { try { - return await this.sendOrigin(base, config, reCount); + const result = await this.sendOrigin(base, config, reCount); + console.log('this.transformCallbackList.length', this.transformCallbackList.length); + if (this.transformCallbackList.length > 0) { + const i = this.transformCallbackList.reduce((prevResult, callback) => { + return callback(prevResult); + }, result); + return i; + } + return result; } catch (errResult: any) { const { URL, fetchConfig } = this.getConfig(base, config); this.errorReport(URL, fetchConfig, errResult); @@ -125,6 +134,17 @@ export class DidService extends ServiceInit { setExceptionManager = (exceptionManager: IExceptionManager) => { this.exceptionManager = exceptionManager; }; + + addTransform = (callback: (result: any) => any) => { + if (typeof callback !== 'function') { + return; + } + if (!this.transformCallbackList) { + this.transformCallbackList = []; + } + this.transformCallbackList.push(callback); + }; + errorReport = (url: string, fetchConfig: any, fetchResult: any) => { this.exceptionManager?.reportErrorMessage?.(`${URL} request error`, Severity.Fatal, { req: { diff --git a/packages/constants/constants-ca/backend-network.ts b/packages/constants/constants-ca/backend-network.ts index 5df63c2702..ef897be72f 100644 --- a/packages/constants/constants-ca/backend-network.ts +++ b/packages/constants/constants-ca/backend-network.ts @@ -192,6 +192,8 @@ export const BackEndNetWorkMap: { hamsterUrl: 'https://test-hamster.beangotown.com', zkLoginVerifyUrl: 'https://zklogin-prover-test.portkey.finance/v1/prove', cryptoGiftTgUrl: 'https://t.me/PortkeyTestnet_Bot/crypto_gift', + eoaApiUrl: 'https://eoa-portkey-test.portkey.finance', + eoaConnectApiUrl: 'https://auth-eoa-portkey-test.portkey.finance', }, 'back-end-testnet': { name: 'aelf Testnet', @@ -293,5 +295,7 @@ export const BackEndNetWorkMap: { hamsterUrl: 'https://hamster.beangotown.com', zkLoginVerifyUrl: 'https://zklogin-prover.portkey.finance/v1/prove', cryptoGiftTgUrl: 'https://t.me/PortkeyMainnet_Bot/crypto_gift', + eoaApiUrl: 'https://eoa-portkey-test.portkey.finance', + eoaConnectApiUrl: 'https://auth-eoa-portkey-test.portkey.finance', }, }; diff --git a/packages/constants/constants-eoa/activity.ts b/packages/constants/constants-eoa/activity.ts new file mode 100644 index 0000000000..33c4d63c86 --- /dev/null +++ b/packages/constants/constants-eoa/activity.ts @@ -0,0 +1,48 @@ +export enum TransactionTypes { + TRANSFER = 'Transfer', + CROSS_CHAIN_TRANSFER = 'CrossChainTransfer', // CrossChain Transfer + CLAIM_TOKEN = 'ClaimToken', // faucet receive transfer + TRANSFER_RED_PACKET = 'TransferRedPacket', + CROSS_CHAIN_RECEIVE = 'ReleaseToken', // CrossChain Receive + SWAP = 'SwapExactTokensForTokens', // Awaken + BATCH_BUY_NOW = 'BatchBuyNow', + DEAL = 'Deal', + PALY = 'Play', + ADDTREEPOINTS = 'AddTreePoints', + JOIN = 'Join', + PLACEBID = 'PlaceBid', +} + +export const DEFAULT_AMOUNT = 0; +export const DEFAULT_DECIMAL = 8; +export const DEFAULT_DIGITS = 4; +export const DEFAULT_NFT_DECIMAL = 0; + +export const ELF_DECIMAL = 8; + +export const AELF_CHIAN_TYPE = 'aelf'; +export const MAIN_CHAIN_ID = 'AELF'; +export const MAIN_CHAIN = 'MainChain'; +export const SIDE_CHAIN = 'dAppChain'; +export const TESTNET = 'TESTNET'; +export const TEST_NET = 'Testnet'; + +export const SHOW_FROM_TRANSACTION_TYPES = [ + TransactionTypes.TRANSFER, + TransactionTypes.CROSS_CHAIN_TRANSFER, + TransactionTypes.CLAIM_TOKEN, + TransactionTypes.TRANSFER_RED_PACKET, + TransactionTypes.SWAP, + TransactionTypes.CROSS_CHAIN_RECEIVE, + TransactionTypes.BATCH_BUY_NOW, + TransactionTypes.DEAL, + TransactionTypes.PALY, + TransactionTypes.ADDTREEPOINTS, + TransactionTypes.JOIN, + TransactionTypes.PLACEBID, +]; + +export const SHOW_DAPP_TRANSACTION_TYPES = [TransactionTypes.SWAP]; + +export const ON_END_REACHED_THRESHOLD = 0.3; +export const ACTIVITY_PAGE_SIZE = 20; diff --git a/packages/constants/constants-eoa/assets.ts b/packages/constants/constants-eoa/assets.ts new file mode 100644 index 0000000000..b391eb05f3 --- /dev/null +++ b/packages/constants/constants-eoa/assets.ts @@ -0,0 +1,66 @@ +import { ITokenSectionResponse } from '@portkey-wallet/types/types-ca/token'; + +export enum TransactionError { + TOKEN_NOT_ENOUGH = 'Insufficient funds', + NFT_NOT_ENOUGH = 'Insufficient quantity', + FEE_NOT_ENOUGH = 'Insufficient funds for transaction fee', + CROSS_NOT_ENOUGH = 'Insufficient funds for cross-chain transaction fee', +} + +export const REFRESH_TIME = 5 * 60 * 1000; // 5min refresh + +export const NEW_CLIENT_MOCK_ELF_LIST: ITokenSectionResponse[] = [ + { + balance: '0', + balanceInUsd: '0.000000', + price: 0, + decimals: 8, + imageUrl: 'https://portkey-did.s3.ap-northeast-1.amazonaws.com/img/aelf/Coin-ELF.png', + symbol: 'ELF', + tokens: [ + { + address: 'JRmBduh4nXWi1aXgdUsj5gJrzeZb2LxmrAbf7W99faZSvoAaE', + balance: '0', + balanceInUsd: '0.000000', + chainId: 'AELF', + decimals: 8, + imageUrl: 'https://portkey-did.s3.ap-northeast-1.amazonaws.com/img/aelf/Coin-ELF.png', + symbol: 'ELF', + tokenContractAddress: 'JRmBduh4nXWi1aXgdUsj5gJrzeZb2LxmrAbf7W99faZSvoAaE', + }, + ], + }, +]; + +export const PAGE_SIZE_IN_NFT_ITEM = 15; + +export const PAGE_SIZE_IN_ACCOUNT_NFT_COLLECTION = 20; + +export const PAGE_SIZE_IN_ACCOUNT_TOKEN = 20; + +export const PAGE_SIZE_IN_ACCOUNT_ASSETS = 20; + +export const PAGE_SIZE_DEFAULT = 50; + +export const ELF_SYMBOL = 'ELF'; + +export const NFT_SMALL_SIZE = 144; +export const NFT_MIDDLE_SIZE = 294; +export const NFT_MIDDLE_X_SIZE = 512; +export const NFT_LARGE_SIZE = 1008; + +export enum BalanceTab { + TOKEN = 'token', + NFT = 'nft', + ACTIVITY = 'activity', +} + +export enum ContactsTab { + ALL = 'All', + Chats = 'Chats', +} + +export enum AssetType { + ft = 1, + nft = 2, +} diff --git a/packages/constants/constants-eoa/common.ts b/packages/constants/constants-eoa/common.ts new file mode 100644 index 0000000000..1db5ad5fa9 --- /dev/null +++ b/packages/constants/constants-eoa/common.ts @@ -0,0 +1,29 @@ +export type ErrorType = { + errorMsg: string; + isError: boolean; + isWarning?: boolean; +}; + +export const INIT_ERROR: ErrorType = { + errorMsg: '', + isError: false, +}; + +export const INIT_NONE_ERROR: ErrorType = { + ...INIT_ERROR, +}; + +export const INIT_HAS_ERROR: ErrorType = { + errorMsg: '', + isError: true, +}; + +export enum contractStatusEnum { + MINED = 'MINED', + FAILED = 'FAILED', + PENDING = 'PENDING', +} + +export const HELP_CENTER_URL = 'https://doc.portkey.finance/help'; + +export const AELF_NETWORK_NAME = 'aelf'; diff --git a/packages/constants/constants-eoa/ramp.ts b/packages/constants/constants-eoa/ramp.ts new file mode 100644 index 0000000000..aef252327d --- /dev/null +++ b/packages/constants/constants-eoa/ramp.ts @@ -0,0 +1,18 @@ +export const SELL_SOCKET_TIMEOUT = 15 * 1000; + +export const BUY_SOON_TEXT = 'On-ramp is currently not supported. It will be launched in the coming weeks.'; + +export const SELL_SOON_TEXT = 'Off-ramp is currently not supported. It will be launched in the coming weeks.'; + +export const SERVICE_UNAVAILABLE_TEXT = 'Sorry, the service you are using is temporarily unavailable.'; + +export const DISCLAIMER_TEXT = + ' is a fiat-to-crypto platform independently operated by a third-party entity. Portkey shall not be held liable for any losses or damages suffered as a result of using '; + +export const INSUFFICIENT_FUNDS_TEXT = 'Insufficient funds'; + +export const SYNCHRONIZING_CHAIN_TEXT = 'Synchronizing on-chain account information...'; + +export const SHOW_RAMP_SYMBOL_LIST = ['ELF', 'USDT']; + +export const SHOW_RAMP_CHAIN_ID_LIST = ['AELF']; diff --git a/packages/hooks/hooks-eoa/activity/index.tsx b/packages/hooks/hooks-eoa/activity/index.tsx new file mode 100644 index 0000000000..aa02c7a482 --- /dev/null +++ b/packages/hooks/hooks-eoa/activity/index.tsx @@ -0,0 +1,2 @@ +import { useAppEOASelector } from '../index'; +export const useActivity = () => useAppEOASelector(state => state.activity); diff --git a/packages/hooks/hooks-eoa/assets/index.tsx b/packages/hooks/hooks-eoa/assets/index.tsx new file mode 100644 index 0000000000..5040e632bd --- /dev/null +++ b/packages/hooks/hooks-eoa/assets/index.tsx @@ -0,0 +1,199 @@ +import { useCallback, useMemo } from 'react'; +// import { useAppEOASelector } from './index'; +// import { useCaAddressInfoList } from './wallet'; +import { ChainId } from '@portkey-wallet/types'; +import { useAppEOASelector } from '../index'; +import { useCurrentNetworkInfo, useIsMainnet } from '../network'; +import { + fetchNFTAsync, + fetchNFTCollectionsAsync, + fetchTokenListAsync, + INIT_ACCOUNT_NFT_INFO, + INIT_ACCOUNT_TOKEN_INFO, +} from '@portkey-wallet/store/store-eoa/assets/slice'; +import { useAppCommonDispatch } from '../..'; +import { useCurrentAddressInfos, useUniqueIdentify } from '../wallet'; + +export const useAssets = () => useAppEOASelector(state => state.assets); + +// export function useNFTItemDetail() { +// const addressInfos = useCaAddressInfoList(); + +// return useCallback( +// async ({ symbol, chainId }: { symbol: string; chainId: ChainId }) => { +// const caAddressInfo = addressInfos.filter(item => item.chainId === chainId); +// return fetchNFTItem({ addressInfos: caAddressInfo, symbol }); +// }, +// [addressInfos], +// ); +// } + +// export const useAccountAssetsInfo = () => { +// const dispatch = useAppCommonDispatch(); +// const currentNetworkInfo = useCurrentNetworkInfo(); +// const assetsState = useAssets(); +// const accountAssetsInfo = useMemo( +// () => assetsState.accountAssets.accountAssetsInfo?.[currentNetworkInfo.networkType] || INIT_ACCOUNT_ASSETS_INFO, +// [assetsState.accountAssets.accountAssetsInfo, currentNetworkInfo.networkType], +// ); + +// const fetchAccountAssetsInfoList = useCallback( +// (params: { +// keyword: string; +// addressInfos: { chainId: ChainId; address: string }[]; +// skipCount?: number; +// maxResultCount?: number; +// }) => { +// return dispatch( +// fetchAssetAsync({ +// ...params, +// currentNetwork: currentNetworkInfo.networkType, +// }), +// ); +// }, +// [currentNetworkInfo.networkType, dispatch], +// ); + +// return { ...accountAssetsInfo, fetchAccountAssetsInfoList, isFetching: assetsState.accountAssets.isFetching }; +// }; + +// export const useAccountAssetsInfoV2 = () => { +// const dispatch = useAppCommonDispatch(); +// const currentNetworkInfo = useCurrentNetworkInfo(); +// const assetsState = useAssets(); +// const accountAssetsInfo = useMemo( +// () => +// assetsState.accountAssetsV2?.accountAssetsInfo?.[currentNetworkInfo.networkType] || INIT_ACCOUNT_ASSETS_INFO_V2, +// [assetsState.accountAssetsV2?.accountAssetsInfo, currentNetworkInfo.networkType], +// ); + +// const fetchAccountAssetsInfoList = useCallback( +// (params: { +// keyword: string; +// addressInfos: { chainId: ChainId; address: string }[]; +// skipCount?: number; +// maxResultCount?: number; +// }) => { +// return dispatch( +// fetchAssetV2Async({ +// ...params, +// currentNetwork: currentNetworkInfo.networkType, +// }), +// ); +// }, +// [currentNetworkInfo.networkType, dispatch], +// ); + +// return { ...accountAssetsInfo, fetchAccountAssetsInfoList, isFetching: assetsState.accountAssetsV2?.isFetching }; +// }; + +export const useAccountTokenInfo = () => { + const dispatch = useAppCommonDispatch(); + const identify = useUniqueIdentify(); + + // const currentNetwork = useCurrentNetwork(); + const assetsState = useAssets(); + const accountTokenInfo = useMemo( + () => assetsState?.accountToken?.accountTokenInfoV2?.[identify] || INIT_ACCOUNT_TOKEN_INFO, + [assetsState?.accountToken?.accountTokenInfoV2, identify], + ); + const fetchAccountTokenInfoList = useCallback( + (params: { + addressInfos: { chainId: ChainId; address: string }[]; + skipCount?: number; + maxResultCount?: number; + isInit?: boolean; + }) => { + return dispatch( + fetchTokenListAsync({ + ...params, + identify: identify, + }), + ); + }, + [identify, dispatch], + ); + + return { ...accountTokenInfo, fetchAccountTokenInfoList, isFetching: assetsState?.accountToken?.isFetching }; +}; +export const useAccountBalanceUSD = () => { + const identify = useUniqueIdentify(); + const assetsState = useAssets(); + return useMemo( + () => assetsState?.accountBalance?.accountBalanceInfo?.[identify] || '', + [assetsState?.accountBalance?.accountBalanceInfo, identify], + ); +}; + +export const useAccountNFTCollectionInfo = () => { + const dispatch = useAppCommonDispatch(); + const currentNetworkInfo = useCurrentNetworkInfo(); + const identify = useUniqueIdentify(); + const assetsState = useAssets(); + const accountNFTCollectionInfo = useMemo( + () => assetsState?.accountNFT?.accountNFTInfo?.[identify] || INIT_ACCOUNT_NFT_INFO, + [assetsState?.accountNFT?.accountNFTInfo, identify], + ); + + const fetchAccountNFTCollectionInfoList = useCallback( + (params: { + addressInfos: { chainId: ChainId; address: string }[]; + maxNFTCount?: number; + skipCount?: number; + maxResultCount?: number; + }) => { + return dispatch( + fetchNFTCollectionsAsync({ + ...params, + identify, + }), + ); + }, + [identify, dispatch], + ); + + const fetchAccountNFTItem = useCallback( + (params: { + symbol: string; + addressInfos: { chainId: ChainId; address: string }[]; + chainId: ChainId; + pageNum: number; + }) => { + return dispatch( + fetchNFTAsync({ + ...params, + identify: identify, + }), + ); + }, + [identify, dispatch], + ); + + return { + ...accountNFTCollectionInfo, + fetchAccountNFTCollectionInfoList, + fetchAccountNFTItem, + isFetching: assetsState?.accountNFT?.isFetching, + }; +}; + +export const useTokenInfoFromStore = (symbol: string, chainId: ChainId) => { + const { accountTokenList } = useAccountTokenInfo(); + return useMemo(() => { + const _target = accountTokenList?.find(ele => ele.symbol === symbol); + const _token = _target?.tokens?.find(ele => ele.chainId === chainId); + return _token; + }, [accountTokenList, chainId, symbol]); +}; + +export function useFetchTokenAllowanceList() { + const isMainnet = useIsMainnet(); + const addressInfos = useCurrentAddressInfos(); + + // return useCallback( + // async ({ skipCount, maxResultCount }: { skipCount: number; maxResultCount: number }) => { + // return fetchTokenAllowanceList({ skipCount, maxResultCount, addressInfos }); + // }, + // [addressInfos], + // ); +} \ No newline at end of file diff --git a/packages/hooks/hooks-eoa/chainList.ts b/packages/hooks/hooks-eoa/chainList.ts new file mode 100644 index 0000000000..8d3cdfdbc3 --- /dev/null +++ b/packages/hooks/hooks-eoa/chainList.ts @@ -0,0 +1,104 @@ +import { useEffect, useMemo, useCallback } from 'react'; +import { useAppCommonDispatch } from '../index'; +import { getChainListAsync } from '@portkey-wallet/store/store-eoa/wallet/actions'; +// import { useCurrentWallet, useOriginChainId, useWallet } from './wallet'; +import { ChainId } from '@portkey-wallet/types'; +import { DEFAULT_TOKEN } from '@portkey-wallet/constants/constants-ca/wallet'; +import { MAIN_CHAIN_ID } from '@portkey-wallet/constants/constants-ca/activity'; +import { useCurrentNetwork, useIsMainnet } from './network'; +import { useWalletListState, useWalletState } from './wallet'; + +export function useChainListFetch() { + const currentNetwork = useCurrentNetwork(); + const dispatch = useAppCommonDispatch(); + useEffect(() => { + dispatch(getChainListAsync()); + }, [dispatch, currentNetwork]); +} + +export function useCurrentChainList() { + const currentNetwork = useCurrentNetwork(); + const { chainInfo } = useWalletState(); + return useMemo(() => chainInfo?.[currentNetwork], [chainInfo, currentNetwork]); +} +export const useOriginChainId = () => { + return 'AELF'; +}; + +export function useCurrentChain(_chainId?: ChainId) { + const originChainId = useOriginChainId(); + const chainId = useMemo(() => _chainId || originChainId, [_chainId, originChainId]); + const currentChainList = useCurrentChainList(); + return useMemo(() => currentChainList?.find(chain => chain.chainId === chainId), [currentChainList, chainId]); +} +export function useExplorerUrl(chainId: ChainId) { + const isMainNet = useIsMainnet(); + const exploreUrl = useMemo(() => { + let exploreUrlPrefix = undefined; + if (isMainNet) { + exploreUrlPrefix = 'https://aelfscan.io/'; + } else { + exploreUrlPrefix = 'https://testnet.aelfscan.io/'; + } + return exploreUrlPrefix + `/${chainId}`; + }, [chainId, isMainNet]); + return exploreUrl; +} + +export function useDefaultToken(_chainId?: ChainId) { + const chainInfo = useCurrentChain(_chainId); + return chainInfo?.defaultToken || DEFAULT_TOKEN; +} + +// export function useIsValidSuffix() { +// const currentChainList = useCurrentChainList(); +// const chainIdArr = useMemo(() => currentChainList?.map(chain => chain.chainId as string) || [], [currentChainList]); +// return useCallback( +// (suffix?: string) => { +// if (!suffix) return false; +// return chainIdArr.includes(suffix); +// }, +// [chainIdArr], +// ); +// } + +// export function useGetChainInfo() { +// const currentChainList = useCurrentChainList(); +// const dispatch = useAppCommonDispatch(); +// return useCallback( +// async (originChainId: ChainId) => { +// let _chainInfo; +// if (currentChainList) { +// _chainInfo = currentChainList.find(item => item.chainId === originChainId); +// } +// if (!_chainInfo) { +// const chainList = await dispatch(getChainListAsync()); +// if (Array.isArray(chainList.payload)) { +// _chainInfo = chainList.payload[0].find((item: any) => item.chainId === originChainId); +// } +// } +// return _chainInfo; +// }, +// [currentChainList, dispatch], +// ); +// } + +// export function useGetChain() { +// const currentChainList = useCurrentChainList(); +// return useCallback( +// (chainId?: ChainId) => { +// return currentChainList?.find(chain => chain.chainId === chainId); +// }, +// [currentChainList], +// ); +// } + +// export const useDAppChain = () => { +// const currentChainList = useCurrentChainList(); +// return useMemo(() => currentChainList?.find(item => item.chainId !== MAIN_CHAIN_ID), [currentChainList]); +// }; + +// export const useDAppChainId = () => { +// const dAppChain = useDAppChain(); +// return useMemo(() => dAppChain?.chainId || 'tDVV', [dAppChain?.chainId]); +// }; diff --git a/packages/hooks/hooks-eoa/index.ts b/packages/hooks/hooks-eoa/index.ts index 3b8865e1dc..b8fe5773bb 100644 --- a/packages/hooks/hooks-eoa/index.ts +++ b/packages/hooks/hooks-eoa/index.ts @@ -1,4 +1,22 @@ import { TypedUseSelectorHook, useSelector } from 'react-redux'; import { EOACommonState } from '../../types/types-eoa/store'; +import { useAppCommonDispatch } from '../index'; +import { useCallback } from 'react'; +import { changeNftSectionUiType } from '@portkey-wallet/store/store-eoa/assets/slice'; export const useAppEOASelector: TypedUseSelectorHook = useSelector; + +export function useNFTSection() { + const dispatch = useAppCommonDispatch(); + const { nftSectionUiType } = useAppEOASelector(state => state.assets); + const changeNFTSectionMode = useCallback( + (value: 'Collections' | 'NFTs') => { + dispatch(changeNftSectionUiType(value)); + }, + [dispatch], + ); + return { + nftSectionUiType, + changeNFTSectionMode, + }; +} diff --git a/packages/hooks/hooks-eoa/network.ts b/packages/hooks/hooks-eoa/network.ts new file mode 100644 index 0000000000..dad0054afa --- /dev/null +++ b/packages/hooks/hooks-eoa/network.ts @@ -0,0 +1,44 @@ +// import { useCurrentWallet } from './wallet'; +import { useMemo } from 'react'; +import { NetworkList } from '@portkey-wallet/constants/constants-ca/network'; +import { useAppEOASelector } from './index'; +import { useWalletState } from './wallet'; +import { useAppCommonDispatch } from '..'; + +export function useNetworkList() { + return NetworkList; +} + +export function useCurrentNetwork() { + const { networkType } = useWalletState(); + return useMemo(() => networkType || 'TESTNET', [networkType]); +} + +export function useCurrentNetworkInfo() { + const currentNetwork = useCurrentNetwork(); + const networkList = useNetworkList(); + return useMemo( + () => networkList.find(item => item.networkType === currentNetwork) || networkList[0], + [currentNetwork, networkList], + ); +} + +export function useCurrentApiUrl() { + const currentNetworkInfo = useCurrentNetworkInfo(); + return useMemo(() => currentNetworkInfo.eoaApiUrl, [currentNetworkInfo.eoaApiUrl]); +} + +// export function useVerifierList() { +// const { verifierMap } = useAppEOASelector(state => state.guardians); +// return useMemo(() => (verifierMap ? Object.values(verifierMap) : []), [verifierMap]); +// } + +export function useIsMainnet() { + const currentNetwork = useCurrentNetwork(); + return useMemo(() => currentNetwork === 'MAINNET', [currentNetwork]); +} + +// export function useIsIMServiceExist() { +// const { imApiUrl, imWsUrl, imS3Bucket } = useCurrentNetworkInfo(); +// return useMemo(() => !!imApiUrl && !!imWsUrl && !!imS3Bucket, [imApiUrl, imWsUrl, imS3Bucket]); +// } diff --git a/packages/hooks/hooks-eoa/useToken.ts b/packages/hooks/hooks-eoa/useToken.ts new file mode 100644 index 0000000000..2f2902ff65 --- /dev/null +++ b/packages/hooks/hooks-eoa/useToken.ts @@ -0,0 +1,82 @@ +import { useAppCommonDispatch, useAppEOASelector } from '../index'; +import { + fetchAllTokenListAsync, + fetchAllTokenListV2Async, + getSymbolImagesAsync, +} from '@portkey-wallet/store/store-eoa/tokenManagement/action'; +import { useMemo, useCallback, useEffect } from 'react'; +import { INITIAL_TOKEN_INFO } from '@portkey-wallet/store/store-eoa/tokenManagement/slice'; +import { useAccountTokenInfo } from './assets'; +import { useUniqueIdentify } from './wallet'; + +export const useToken = () => { + const dispatch = useAppCommonDispatch(); + const identify = useUniqueIdentify(); + + const tokenState = useAppEOASelector(state => state.tokenManagement); + console.log('tokenState?.tokenInfoV2=====', JSON.stringify(tokenState?.tokenInfoV2)); + const tokenInfo = useMemo( + () => tokenState?.tokenInfoV2?.[identify] || INITIAL_TOKEN_INFO, + [identify, tokenState?.tokenInfoV2], + ); + + const fetchTokenInfoList = useCallback( + (params: { keyword: string; chainIdArray: string[]; skipCount?: number; maxResultCount?: number }) => { + return dispatch( + fetchAllTokenListAsync({ + ...params, + identify, + }), + ); + }, + [identify, dispatch], + ); + return { ...tokenInfo, fetchTokenInfoList, isFetching: tokenState.isFetching }; +}; +export const useTokenLegacy = () => { + const dispatch = useAppCommonDispatch(); + const identify = useUniqueIdentify(); + + const tokenState = useAppEOASelector(state => state.tokenManagement); + + const tokenInfo = useMemo( + () => tokenState?.tokenInfo?.[identify] || INITIAL_TOKEN_INFO, + [identify, tokenState?.tokenInfo], + ); + + const fetchTokenInfoList = useCallback( + (params: { keyword: string; chainIdArray: string[]; skipCount?: number; maxResultCount?: number }) => { + return dispatch( + fetchAllTokenListAsync({ + ...params, + identify, + }), + ); + }, + [identify, dispatch], + ); + + return { ...tokenInfo, fetchTokenInfoList, isFetching: tokenState.isFetching }; +}; +export const useFetchSymbolImages = () => { + const dispatch = useAppCommonDispatch(); + + useEffect(() => { + dispatch(getSymbolImagesAsync()); + }, [dispatch]); +}; + +export const useSymbolImages = () => { + const { symbolImages } = useAppEOASelector(state => state.tokenManagement); + return useMemo(() => symbolImages, [symbolImages]); +}; + +export function useSymbolList(): string[] { + const { accountTokenList } = useAccountTokenInfo(); + + return useMemo(() => { + return Array.from(new Set(accountTokenList?.map(item => item.symbol))); + }, [accountTokenList]); +} + +export default useToken; diff --git a/packages/hooks/hooks-eoa/useTokensPrice.ts b/packages/hooks/hooks-eoa/useTokensPrice.ts new file mode 100644 index 0000000000..54feede4cd --- /dev/null +++ b/packages/hooks/hooks-eoa/useTokensPrice.ts @@ -0,0 +1,82 @@ +import { ZERO } from '@portkey-wallet/constants/misc'; +import { fetchTokensPriceAsync } from '@portkey-wallet/store/store-ca/assets/slice'; +import { divDecimals, formatAmountUSDShow } from '@portkey-wallet/utils/converter'; +import { useCallback, useEffect, useRef } from 'react'; +import { useAppEOASelector, useAppCommonDispatch } from '../index'; +import { useIsMainnet } from './network'; +// import { useDefaultToken } from './chainList'; +import { useSymbolList } from './useToken'; + +// export function useDefaultTokenPrice() { +// const defaultToken = useDefaultToken(); +// const [tokenPriceObject] = useGetCurrentAccountTokenPrice(); +// return tokenPriceObject?.[defaultToken.symbol] || 0; +// } + +export function useGetCurrentAccountTokenPrice(): [ + Record, + (symbol?: string) => void, + (symbols: string[]) => void, +] { + const assets = useAppEOASelector(state => state.assets); + // const { + // tokenPrices: { tokenPriceObject }, + // } = assets; + const dispatch = useAppCommonDispatch(); + const symbols = useSymbolList(); + + const symbolsRef = useRef([]); + + const getTokenPrice = useCallback( + (symbol?: string) => { + if (symbols.length === 0) return; + if (symbolsRef.current.toString() === symbols.toString()) return; + symbolsRef.current = symbols; + dispatch(fetchTokensPriceAsync({ symbols: symbol ? [symbol] : symbols })); + }, + [dispatch, symbols], + ); + + const getTokensPrice = useCallback( + (symbols: string[]) => { + dispatch(fetchTokensPriceAsync({ symbols })); + }, + [dispatch], + ); + + return [assets?.tokenPrices?.tokenPriceObject, getTokenPrice, getTokensPrice]; +} + +export function useFreshTokenPrice() { + const [, getTokenPrice] = useGetCurrentAccountTokenPrice(); + const isMainnet = useIsMainnet(); + const symbols = useSymbolList(); + + useEffect(() => { + if (isMainnet) { + getTokenPrice(); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [symbols, isMainnet]); +} + +export function useAmountInUsdShow() { + const [tokenPriceObject] = useGetCurrentAccountTokenPrice(); + return useCallback( + (balance: string | number, decimals: number | string, symbol: string) => + tokenPriceObject[symbol] === 0 + ? '' + : formatAmountUSDShow(divDecimals(balance, decimals).times(tokenPriceObject[symbol])), + [tokenPriceObject], + ); +} + +export function useIsTokenHasPrice(symbol?: string): boolean { + const { + tokenPrices: { tokenPriceObject }, + } = useAppEOASelector(state => state.assets); + if (!symbol) return false; + if (!tokenPriceObject[symbol]) return false; + + return ZERO.plus(tokenPriceObject[symbol]).isGreaterThan(0); +} diff --git a/packages/hooks/hooks-eoa/wallet/index.ts b/packages/hooks/hooks-eoa/wallet/index.ts index 4b439175c5..920ee76b93 100644 --- a/packages/hooks/hooks-eoa/wallet/index.ts +++ b/packages/hooks/hooks-eoa/wallet/index.ts @@ -1,17 +1,31 @@ import { useCallback, useMemo, useRef } from 'react'; import { useAppEOASelector } from '../index'; import AElf from 'aelf-sdk'; -import { formatWalletInfoV2 } from '@portkey-wallet/utils/wallet'; +import { formatWalletInfoV2, getNextBIP44Path } from '@portkey-wallet/utils/wallet'; import { useAppCommonDispatch } from '../../index'; -import { addWallet } from '@portkey-wallet/store/store-eoa/wallet/actions'; -import { TAccountInfo } from '@portkey-wallet/types/types-eoa/wallet'; +import { + addAccount as addAccountAction, + addWallet, + resetWallet, + setHideAssetsAction, +} from '@portkey-wallet/store/store-eoa/wallet/actions'; +import { TAccountInfo, TWalletInfo } from '@portkey-wallet/types/types-eoa/wallet'; +import aes from '@portkey-wallet/utils/aes'; +import { useCurrentNetwork, useIsMainnet } from '../network'; +import { ChainId, NetworkType } from '@portkey-wallet/types'; +import { changeNetworkType } from '@portkey-wallet/store/store-eoa/wallet/slice'; export const useWalletState = () => useAppEOASelector(state => state.wallet); export const useWalletListState = () => useAppEOASelector(state => state.wallet.walletList); export const usePrivateKeyAccountListState = () => useAppEOASelector(state => state.wallet.privateKeyAccountList); export const useCurrentAccountAddressState = () => useAppEOASelector(state => state.wallet.currentAccountAddress); - +export const useResetWallet = () => { + const dispatch = useAppCommonDispatch(); + return useCallback(() => { + dispatch(resetWallet()); + }, [dispatch]); +}; export const useAddWallet = () => { const walletList = useWalletListState(); const walletListRef = useRef(walletList); @@ -29,7 +43,7 @@ export const useAddWallet = () => { const wallet = formatWalletInfoV2(walletInfo, pin, `Wallet ${walletListLength + 1}`); if (!wallet) return; - + console.log('wallet======', JSON.stringify(wallet)); dispatch( addWallet({ wallet, @@ -54,6 +68,8 @@ export const useAccountList = () => { }; export const useCurrentAccount = () => { + // const a = useAppEOASelector(state => state); + // console.log('a=====', JSON.stringify(a)); const list = useAccountList(); const currentAccountAddress = useCurrentAccountAddressState(); @@ -71,8 +87,141 @@ export const useCurrentAccount = () => { ); }; +export const useCurrentAddressInfos = () => { + const isMainnet = useIsMainnet(); + const currentAccount = useCurrentAccount(); + const addressInfos = useMemo(() => { + return [ + { + address: currentAccount?.address || '', + // address: '27UsGir6k7UntMtUTmo4fDU3v6mufJjrCCtnmTztXDfkHCcDyq', + chainId: 'AELF' as ChainId, + chainName: 'MainChain', + }, + { + address: currentAccount?.address || '', + // address: '27UsGir6k7UntMtUTmo4fDU3v6mufJjrCCtnmTztXDfkHCcDyq', + chainId: (isMainnet ? 'tDVV' : 'tDVW') as ChainId, + chainName: 'dAppChain', + }, + ]; + }, [currentAccount?.address, isMainnet]); + return addressInfos; +}; + export const useIsAccountExist = () => { const list = useAccountList(); return useMemo(() => list.length > 0, [list.length]); }; +export const useAccountByWallet = (wallet: TWalletInfo) => { + // const pin = usePin(); + const dispatch = useAppCommonDispatch(); + const addAccount = useCallback( + (pin: string) => { + const { AESEncryptMnemonic, accountList } = wallet; + const lastAccount = accountList[accountList.length - 1]; + const mnemonic = aes.decrypt(AESEncryptMnemonic, pin); + const nextBIP44Path = getNextBIP44Path(lastAccount.BIP44Path); + const account = AElf.wallet.getWalletByMnemonic(mnemonic, nextBIP44Path); + const accountAESEncryptPrivateKey = aes.encrypt(account.privateKey, pin); + if (!account?.publicKey) { + const publicKey = account.keyPair.getPublic(); + account.publicKey = { + x: publicKey.x.toString('hex'), + y: publicKey.y.toString('hex'), + }; + } + + const accountInfo: TAccountInfo = { + BIP44Path: nextBIP44Path, + address: account.address, + AESEncryptPrivateKey: accountAESEncryptPrivateKey, + publicKey: account.publicKey, + name: 'Address ' + accountList.length, + isHide: false, + }; + dispatch( + addAccountAction({ + key: wallet.key, + account: accountInfo, + }), + ); + }, + [dispatch, wallet], + ); + // eslint-disable-next-line @typescript-eslint/no-empty-function + const removeAccount = useCallback(() => {}, []); + return { + addAccount, + removeAccount, + }; +}; + +// export const useCurrentWallet = () => { +// const wallet = useWalletState(); +// const originChainId = useOriginChainId(); + +// return useMemo(() => { +// const { walletInfo, currentNetwork, chainInfo } = wallet; +// return { +// ...wallet, +// walletInfo: getCurrentWalletInfo(walletInfo, currentNetwork, originChainId), +// chainList: chainInfo?.[currentNetwork], +// }; +// }, [originChainId, wallet]); +// }; +// export const useOriginChainId = () => { +// // const { originChainId } = useWalletState(); +// // const caInfo = useCurrentCaInfo(); +// // return useMemo( +// // () => caInfo?.originChainId || originChainId || DefaultChainId, +// // [caInfo?.originChainId, originChainId], +// // ); +// return 'AELF'; +// }; + +export const useUniqueIdentify = () => { + const currentAccount = useCurrentAccount(); + const currentNetwork = useCurrentNetwork(); + const identify = useMemo( + () => `aelf_#${currentAccount?.address}_#${currentNetwork}`, + [currentAccount?.address, currentNetwork], + ); + return identify; +}; + +export const useSetHideAssets = () => { + const dispatch = useAppCommonDispatch(); + return useCallback( + (hideAssets: boolean) => { + dispatch(setHideAssetsAction({ hideAssets })); + }, + [dispatch], + ); +}; +export const useCurrentHideAssetsState = () => { + const { hideAssets } = useWalletState(); + return hideAssets; +}; +export function useCurrentChainList() { + const { networkType, chainInfo } = useWalletState(); + return useMemo(() => chainInfo?.[networkType], [chainInfo, networkType]); +} +export const useChainIdList = () => { + const chainList = useCurrentChainList(); + const isMainnet = useIsMainnet(); + return useMemo(() => { + return chainList?.map(info => info.chainId) || ['AELF', isMainnet ? 'tDVV' : 'tDVW']; + }, [chainList, isMainnet]); +}; + +export const useSwitchNetworkType = () => { + const dispatch = useAppCommonDispatch(); + const networkType = useCurrentNetwork(); + const switchNetwork = useCallback(() => { + const switchedNetwork = networkType === 'MAINNET' ? 'TESTNET' : 'MAINNET'; + dispatch(changeNetworkType(switchedNetwork)); + }, [dispatch, networkType]); + return switchNetwork; +}; diff --git a/packages/mobile-aelf/App.tsx b/packages/mobile-aelf/App.tsx index 523b409c94..f801c04467 100644 --- a/packages/mobile-aelf/App.tsx +++ b/packages/mobile-aelf/App.tsx @@ -35,6 +35,7 @@ import { logBoxTextColorSaver } from 'utils/textColor'; import { CODE_PUSH_OPTIONS } from 'constants/codePush'; import { useEffectOnce } from '@portkey-wallet/hooks'; import { init, track } from './js/utils/amplitude'; +import { request } from '@portkey-wallet/api/api-did'; if (__DEV__) { logBoxTextColorSaver(); @@ -50,6 +51,7 @@ initFCMSignalR(); secureStore.init(Config.PORT_KEY_CODE || 'EXAMPLE_PORT_KEY_CODE'); const persistor = persistStore(store); +request.addTransform(result => result.data); const App = () => { const statusBarProps = useMemo(() => { diff --git a/packages/mobile-aelf/android/app/build.gradle b/packages/mobile-aelf/android/app/build.gradle index ba53231cb4..a82e7e0918 100644 --- a/packages/mobile-aelf/android/app/build.gradle +++ b/packages/mobile-aelf/android/app/build.gradle @@ -301,12 +301,12 @@ android { // } // } signingConfigs { - debug { - storeFile file(project.env.get("RELEASE_STORE_FILE")) - storePassword project.env.get("RELEASE_STORE_PASSWORD") - keyAlias project.env.get("RELEASE_KEY_ALIAS") - keyPassword project.env.get("RELEASE_KEY_PASSWORD") - } +// debug { +// storeFile file(project.env.get("RELEASE_STORE_FILE")) +// storePassword project.env.get("RELEASE_STORE_PASSWORD") +// keyAlias project.env.get("RELEASE_KEY_ALIAS") +// keyPassword project.env.get("RELEASE_KEY_PASSWORD") +// } release{ storeFile file(project.env.get("RELEASE_STORE_FILE")) storePassword project.env.get("RELEASE_STORE_PASSWORD") diff --git a/packages/mobile-aelf/android/app/google-services.json b/packages/mobile-aelf/android/app/google-services.json index 25fdad1f59..d089d7ffe3 100644 --- a/packages/mobile-aelf/android/app/google-services.json +++ b/packages/mobile-aelf/android/app/google-services.json @@ -9,7 +9,7 @@ "client_info": { "mobilesdk_app_id": "1:339329964702:android:e1305733809af3e45df98f", "android_client_info": { - "package_name": "com.PortkeyApp" + "package_name": "com.aelfwallet" } }, "oauth_client": [ diff --git a/packages/mobile-aelf/android/dependencies.txt b/packages/mobile-aelf/android/dependencies.txt new file mode 100644 index 0000000000..fcf35677f5 --- /dev/null +++ b/packages/mobile-aelf/android/dependencies.txt @@ -0,0 +1,10279 @@ +Starting a Gradle Daemon, 2 incompatible and 1 stopped Daemons could not be reused, use --status for details +> Task :gradle-plugin:settings-plugin:checkKotlinGradlePluginConfigurationErrors +> Task :gradle-plugin:shared:checkKotlinGradlePluginConfigurationErrors +> Task :gradle-plugin:shared:compileKotlin UP-TO-DATE +> Task :gradle-plugin:shared:compileJava NO-SOURCE +> Task :gradle-plugin:shared:processResources NO-SOURCE +> Task :gradle-plugin:shared:classes UP-TO-DATE +> Task :gradle-plugin:shared:jar UP-TO-DATE +> Task :gradle-plugin:settings-plugin:compileKotlin UP-TO-DATE +> Task :gradle-plugin:settings-plugin:compileJava NO-SOURCE +> Task :gradle-plugin:settings-plugin:pluginDescriptors UP-TO-DATE +> Task :gradle-plugin:settings-plugin:processResources UP-TO-DATE +> Task :gradle-plugin:settings-plugin:classes UP-TO-DATE +> Task :gradle-plugin:settings-plugin:jar UP-TO-DATE +> Task :gradle-plugin:react-native-gradle-plugin:checkKotlinGradlePluginConfigurationErrors +> Task :gradle-plugin:react-native-gradle-plugin:compileKotlin UP-TO-DATE +> Task :gradle-plugin:react-native-gradle-plugin:compileJava NO-SOURCE +> Task :gradle-plugin:react-native-gradle-plugin:pluginDescriptors UP-TO-DATE +> Task :gradle-plugin:react-native-gradle-plugin:processResources UP-TO-DATE +> Task :gradle-plugin:react-native-gradle-plugin:classes UP-TO-DATE +> Task :gradle-plugin:react-native-gradle-plugin:jar UP-TO-DATE + +> Configure project :app +Reading env from: .env + +> Configure project :expo + +Using expo modules + - expo-application (5.9.1) + - expo-asset (10.0.10) + - expo-barcode-scanner (13.0.1) + - expo-battery (8.0.1) + - expo-camera (15.0.16) + - expo-clipboard (6.0.3) + - expo-constants (16.0.2) + - expo-crypto (13.0.2) + - expo-device (6.0.2) + - expo-file-system (17.0.1) + - expo-font (12.0.10) + - expo-image-loader (4.7.0) + - expo-image-picker (15.0.7) + - expo-keep-awake (13.0.2) + - expo-local-authentication (14.0.1) + - expo-modules-core (1.12.26) + - expo-network (6.0.1) + - expo-notifications (0.28.18) + - expo-screen-capture (6.0.1) + - expo-screen-orientation (7.0.5) + - expo-secure-store (13.0.2) + - expo-splash-screen (0.27.6) + - expo-web-browser (13.0.3) + + +> Configure project :notifee_react-native +:notifee_react-native @notifee/react-native found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@notifee/react-native +:notifee_react-native package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@notifee/react-native/package.json +:notifee_react-native:version set from package.json: 5.7.0 (5,7,0 - 5007000) +:notifee_react-native:android.compileSdk using custom value: 34 +:notifee_react-native:android.targetSdk using custom value: 34 +:notifee_react-native:android.minSdk using custom value: 23 +:notifee_react-native:reactNativeAndroidDir /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/react-native/android + +> Configure project :react-native-firebase_analytics +:react-native-firebase_analytics package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/analytics/package.json +:react-native-firebase_app package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/app/package.json +:react-native-firebase_analytics:firebase.bom using default value: 32.7.1 +:react-native-firebase_analytics package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/analytics/package.json +:react-native-firebase_analytics:version set from package.json: 18.9.0 (18,9,0 - 18009000) +:react-native-firebase_analytics:android.compileSdk using custom value: 34 +:react-native-firebase_analytics:android.targetSdk using custom value: 34 +:react-native-firebase_analytics:android.minSdk using custom value: 23 +:react-native-firebase_analytics:reactNativeAndroidDir /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/react-native/android + +> Configure project :react-native-firebase_app +:react-native-firebase_app package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/app/package.json +:react-native-firebase_app:firebase.bom using default value: 32.7.1 +:react-native-firebase_app:play.play-services-auth using default value: 20.7.0 +:react-native-firebase_app package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/app/package.json +:react-native-firebase_app:version set from package.json: 18.9.0 (18,9,0 - 18009000) +:react-native-firebase_app:android.compileSdk using custom value: 34 +:react-native-firebase_app:android.targetSdk using custom value: 34 +:react-native-firebase_app:android.minSdk using custom value: 23 +:react-native-firebase_app:reactNativeAndroidDir /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/react-native/android + +> Configure project :react-native-firebase_app-check +:react-native-firebase_app-check package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/app-check/package.json +:react-native-firebase_app package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/app/package.json +:react-native-firebase_app-check:firebase.bom using default value: 32.7.1 +:react-native-firebase_app-check package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/app-check/package.json +:react-native-firebase_app-check:version set from package.json: 18.9.0 (18,9,0 - 18009000) +:react-native-firebase_app-check:android.compileSdk using custom value: 34 +:react-native-firebase_app-check:android.targetSdk using custom value: 34 +:react-native-firebase_app-check:android.minSdk using custom value: 23 +:react-native-firebase_app-check:reactNativeAndroidDir /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/react-native/android + +> Configure project :react-native-firebase_crashlytics +:react-native-firebase_crashlytics package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/crashlytics/package.json +:react-native-firebase_app package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/app/package.json +:react-native-firebase_crashlytics:firebase.bom using default value: 32.7.1 +:react-native-firebase_crashlytics package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/crashlytics/package.json +:react-native-firebase_crashlytics:version set from package.json: 18.9.0 (18,9,0 - 18009000) +:react-native-firebase_crashlytics:android.compileSdk using custom value: 34 +:react-native-firebase_crashlytics:android.targetSdk using custom value: 34 +:react-native-firebase_crashlytics:android.minSdk using custom value: 23 +:react-native-firebase_crashlytics:reactNativeAndroidDir /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/react-native/android + +> Configure project :react-native-firebase_messaging +:react-native-firebase_messaging package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/messaging/package.json +:react-native-firebase_app package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/app/package.json +:react-native-firebase_messaging:firebase.bom using default value: 32.7.1 +:react-native-firebase_messaging package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/messaging/package.json +:react-native-firebase_messaging:version set from package.json: 18.9.0 (18,9,0 - 18009000) +:react-native-firebase_messaging:android.compileSdk using custom value: 34 +:react-native-firebase_messaging:android.targetSdk using custom value: 34 +:react-native-firebase_messaging:android.minSdk using custom value: 23 +:react-native-firebase_messaging:reactNativeAndroidDir /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/react-native/android + +> Configure project :react-native-firebase_perf +:react-native-firebase_perf package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/perf/package.json +:react-native-firebase_app package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/app/package.json +:react-native-firebase_perf:firebase.bom using default value: 32.7.1 +:react-native-firebase_perf package.json found at /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/@react-native-firebase/perf/package.json +:react-native-firebase_perf:version set from package.json: 18.9.0 (18,9,0 - 18009000) +:react-native-firebase_perf:android.compileSdk using custom value: 34 +:react-native-firebase_perf:android.targetSdk using custom value: 34 +:react-native-firebase_perf:android.minSdk using custom value: 23 +:react-native-firebase_perf:reactNativeAndroidDir /Users/fengfeiyang/aelf/temp/portkey-wallet/packages/mobile-aelf/node_modules/react-native/android + +> Configure project :react-native-reanimated +Android gradle plugin: 8.5.0 +Gradle: 8.8 + +> Configure project :react-native-spring-scrollview +publishNonDefault is deprecated and has no effect anymore. All variants are now published. + +> Task :app:dependencies + +------------------------------------------------------------ +Project ':app' +------------------------------------------------------------ + +_internal-unified-test-platform-android-device-provider-ddmlib - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-device-provider-ddmlib:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 -> 23.0.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- com.android.tools.ddms:ddmlib:31.5.0 + | +--- com.android.tools:common:31.5.0 (*) + | +--- com.google.protobuf:protobuf-java:3.22.3 + | +--- net.sf.kxml:kxml2:2.3.0 + | \--- org.jetbrains:annotations:23.0.0 + +--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.android.tools.utp:android-device-provider-ddmlib-proto:31.5.0 + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 + | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 + | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 + | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) + | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.9.20 (*) + | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- com.google.testing.platform:core-proto:0.0.9-alpha02 + \--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + +_internal-unified-test-platform-android-device-provider-gradle - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-device-provider-gradle:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.android.tools.utp:android-device-provider-gradle-proto:31.5.0 + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.google.testing.platform:core-proto:0.0.9-alpha02 + \--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + +_internal-unified-test-platform-android-driver-instrumentation - A configuration to resolve the Unified Test Platform dependencies. +\--- com.google.testing.platform:android-driver-instrumentation:0.0.9-alpha02 + +_internal-unified-test-platform-android-test-plugin - A configuration to resolve the Unified Test Platform dependencies. +\--- com.google.testing.platform:android-test-plugin:0.0.9-alpha02 + +_internal-unified-test-platform-android-test-plugin-host-additional-test-output - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-test-plugin-host-additional-test-output:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- com.android.tools.utp:utp-common:31.5.0 + | +--- com.android.tools:common:31.5.0 (*) + | +--- com.google.testing.platform:launcher:0.0.9-alpha02 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:31.5.0 + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.google.protobuf:protobuf-java:3.22.3 + \--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + +_internal-unified-test-platform-android-test-plugin-host-apk-installer - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-test-plugin-host-apk-installer:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.android.tools.utp:android-test-plugin-host-apk-installer-proto:31.5.0 + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + \--- com.google.testing.platform:core-proto:0.0.9-alpha02 + +_internal-unified-test-platform-android-test-plugin-host-coverage - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-test-plugin-host-coverage:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- com.android.tools.utp:android-test-plugin-host-coverage-proto:31.5.0 + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.google.protobuf:protobuf-java:3.22.3 + \--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + +_internal-unified-test-platform-android-test-plugin-host-device-info - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-test-plugin-host-device-info:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.android.tools.utp:utp-common:31.5.0 + | +--- com.android.tools:common:31.5.0 (*) + | +--- com.google.testing.platform:launcher:0.0.9-alpha02 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.android.tools.utp:android-test-plugin-host-device-info-proto:31.5.0 + | \--- com.google.protobuf:protobuf-java:3.22.3 + \--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + +_internal-unified-test-platform-android-test-plugin-host-emulator-control - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-test-plugin-host-emulator-control:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 + | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 + | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 + | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) + | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.9.20 (*) + | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- commons-io:commons-io:2.13.0 + +--- com.google.code.gson:gson:2.10.1 + +--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.google.guava:guava:32.0.1-jre (*) + +--- com.android.tools.utp:android-test-plugin-host-emulator-control-proto:31.5.0 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.android.tools.emulator:proto:31.5.0 + | +--- com.google.code.gson:gson:2.10.1 + | +--- com.google.guava:guava:32.0.1-jre (*) + | +--- io.grpc:grpc-core:1.57.0 + | | +--- io.grpc:grpc-api:1.57.0 + | | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | | \--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | +--- com.google.code.gson:gson:2.10.1 + | | +--- com.google.android:annotations:4.1.1.4 + | | +--- org.codehaus.mojo:animal-sniffer-annotations:1.23 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | +--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | +--- io.perfmark:perfmark-api:0.26.0 + | | \--- io.grpc:grpc-context:1.57.0 + | | \--- io.grpc:grpc-api:1.57.0 (*) + | +--- io.grpc:grpc-netty:1.57.0 + | | +--- io.grpc:grpc-core:1.57.0 (*) + | | +--- io.netty:netty-codec-http2:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-buffer:4.1.93.Final + | | | | \--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-transport:4.1.93.Final + | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | \--- io.netty:netty-resolver:4.1.93.Final + | | | | \--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-codec:4.1.93.Final + | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | \--- io.netty:netty-transport:4.1.93.Final (*) + | | | +--- io.netty:netty-handler:4.1.93.Final + | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | +--- io.netty:netty-resolver:4.1.93.Final (*) + | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | | +--- io.netty:netty-transport-native-unix-common:4.1.93.Final + | | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | | \--- io.netty:netty-transport:4.1.93.Final (*) + | | | | \--- io.netty:netty-codec:4.1.93.Final (*) + | | | \--- io.netty:netty-codec-http:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | +--- io.netty:netty-codec:4.1.93.Final (*) + | | | \--- io.netty:netty-handler:4.1.93.Final (*) + | | +--- io.netty:netty-handler-proxy:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | +--- io.netty:netty-codec:4.1.93.Final (*) + | | | +--- io.netty:netty-codec-socks:4.1.93.Final + | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | | \--- io.netty:netty-codec:4.1.93.Final (*) + | | | \--- io.netty:netty-codec-http:4.1.93.Final (*) + | | +--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | +--- io.perfmark:perfmark-api:0.26.0 + | | \--- io.netty:netty-transport-native-unix-common:4.1.93.Final (*) + | +--- io.grpc:grpc-protobuf:1.57.0 + | | +--- io.grpc:grpc-api:1.57.0 (*) + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- com.google.protobuf:protobuf-java:3.22.3 + | | +--- com.google.api.grpc:proto-google-common-protos:2.17.0 + | | | \--- com.google.protobuf:protobuf-java:3.21.12 -> 3.22.3 + | | +--- io.grpc:grpc-protobuf-lite:1.57.0 + | | | +--- io.grpc:grpc-api:1.57.0 (*) + | | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | | \--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | \--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | +--- io.grpc:grpc-stub:1.57.0 + | | +--- io.grpc:grpc-api:1.57.0 (*) + | | +--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | \--- com.google.errorprone:error_prone_annotations:2.18.0 + | +--- javax.annotation:javax.annotation-api:1.3.2 + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + +--- com.google.crypto.tink:tink:1.7.0 + | +--- com.google.protobuf:protobuf-java:3.19.3 -> 3.22.3 + | \--- com.google.code.gson:gson:2.8.9 -> 2.10.1 + \--- com.google.testing.platform:android-driver-instrumentation:0.0.9-alpha02 + +_internal-unified-test-platform-android-test-plugin-host-logcat - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-test-plugin-host-logcat:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- com.android.tools.utp:utp-common:31.5.0 + | +--- com.android.tools:common:31.5.0 (*) + | +--- com.google.testing.platform:launcher:0.0.9-alpha02 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.android.tools.utp:android-test-plugin-host-logcat-proto:31.5.0 + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.google.protobuf:protobuf-java:3.22.3 + \--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + +_internal-unified-test-platform-android-test-plugin-host-retention - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-test-plugin-host-retention:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 + | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 + | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 + | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) + | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.9.20 (*) + | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- commons-io:commons-io:2.13.0 + +--- com.google.code.gson:gson:2.10.1 + +--- io.grpc:grpc-core:1.57.0 + | +--- io.grpc:grpc-api:1.57.0 + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | +--- com.google.code.gson:gson:2.10.1 + | +--- com.google.android:annotations:4.1.1.4 + | +--- org.codehaus.mojo:animal-sniffer-annotations:1.23 + | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | +--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | +--- io.perfmark:perfmark-api:0.26.0 + | \--- io.grpc:grpc-context:1.57.0 + | \--- io.grpc:grpc-api:1.57.0 (*) + +--- io.grpc:grpc-netty:1.57.0 + | +--- io.grpc:grpc-core:1.57.0 (*) + | +--- io.netty:netty-codec-http2:4.1.93.Final + | | +--- io.netty:netty-common:4.1.93.Final + | | +--- io.netty:netty-buffer:4.1.93.Final + | | | \--- io.netty:netty-common:4.1.93.Final + | | +--- io.netty:netty-transport:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | \--- io.netty:netty-resolver:4.1.93.Final + | | | \--- io.netty:netty-common:4.1.93.Final + | | +--- io.netty:netty-codec:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | \--- io.netty:netty-transport:4.1.93.Final (*) + | | +--- io.netty:netty-handler:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-resolver:4.1.93.Final (*) + | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | +--- io.netty:netty-transport-native-unix-common:4.1.93.Final + | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | \--- io.netty:netty-transport:4.1.93.Final (*) + | | | \--- io.netty:netty-codec:4.1.93.Final (*) + | | \--- io.netty:netty-codec-http:4.1.93.Final + | | +--- io.netty:netty-common:4.1.93.Final + | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | +--- io.netty:netty-codec:4.1.93.Final (*) + | | \--- io.netty:netty-handler:4.1.93.Final (*) + | +--- io.netty:netty-handler-proxy:4.1.93.Final + | | +--- io.netty:netty-common:4.1.93.Final + | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | +--- io.netty:netty-codec:4.1.93.Final (*) + | | +--- io.netty:netty-codec-socks:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | \--- io.netty:netty-codec:4.1.93.Final (*) + | | \--- io.netty:netty-codec-http:4.1.93.Final (*) + | +--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | +--- io.perfmark:perfmark-api:0.26.0 + | \--- io.netty:netty-transport-native-unix-common:4.1.93.Final (*) + +--- io.grpc:grpc-protobuf:1.57.0 + | +--- io.grpc:grpc-api:1.57.0 (*) + | +--- com.google.code.findbugs:jsr305:3.0.2 + | +--- com.google.protobuf:protobuf-java:3.22.3 + | +--- com.google.api.grpc:proto-google-common-protos:2.17.0 + | | \--- com.google.protobuf:protobuf-java:3.21.12 -> 3.22.3 + | +--- io.grpc:grpc-protobuf-lite:1.57.0 + | | +--- io.grpc:grpc-api:1.57.0 (*) + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | \--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | \--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + +--- io.grpc:grpc-stub:1.57.0 + | +--- io.grpc:grpc-api:1.57.0 (*) + | +--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | \--- com.google.errorprone:error_prone_annotations:2.18.0 + +--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.google.guava:guava:32.0.1-jre (*) + +--- com.android.tools.utp:utp-common:31.5.0 + | +--- com.android.tools:common:31.5.0 (*) + | +--- com.google.testing.platform:launcher:0.0.9-alpha02 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- com.android.tools.utp:android-test-plugin-host-retention-proto:31.5.0 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.android.tools.emulator:proto:31.5.0 + | +--- com.google.code.gson:gson:2.10.1 + | +--- com.google.guava:guava:32.0.1-jre (*) + | +--- io.grpc:grpc-core:1.57.0 (*) + | +--- io.grpc:grpc-netty:1.57.0 (*) + | +--- io.grpc:grpc-protobuf:1.57.0 (*) + | +--- io.grpc:grpc-stub:1.57.0 (*) + | +--- javax.annotation:javax.annotation-api:1.3.2 + | \--- com.google.protobuf:protobuf-java:3.22.3 + \--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + +_internal-unified-test-platform-android-test-plugin-result-listener-gradle - A configuration to resolve the Unified Test Platform dependencies. +\--- com.android.tools.utp:android-test-plugin-result-listener-gradle:31.5.0 + +--- com.android.tools:common:31.5.0 + | +--- com.android.tools:annotations:31.5.0 + | +--- com.google.guava:guava:32.0.1-jre + | | +--- com.google.guava:failureaccess:1.0.1 + | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- org.checkerframework:checker-qual:3.33.0 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | \--- com.google.j2objc:j2objc-annotations:2.8 + | +--- net.java.dev.jna:jna-platform:5.6.0 + | | \--- net.java.dev.jna:jna:5.6.0 + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 + | | +--- org.jetbrains:annotations:13.0 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.20 (c) + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.20 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.20 (c) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:31.5.0 + | +--- com.google.code.gson:gson:2.10.1 + | +--- com.google.guava:guava:32.0.1-jre (*) + | +--- io.grpc:grpc-core:1.57.0 + | | +--- io.grpc:grpc-api:1.57.0 + | | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | | \--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | +--- com.google.code.gson:gson:2.10.1 + | | +--- com.google.android:annotations:4.1.1.4 + | | +--- org.codehaus.mojo:animal-sniffer-annotations:1.23 + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | +--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | +--- io.perfmark:perfmark-api:0.26.0 + | | \--- io.grpc:grpc-context:1.57.0 + | | \--- io.grpc:grpc-api:1.57.0 (*) + | +--- io.grpc:grpc-netty:1.57.0 + | | +--- io.grpc:grpc-core:1.57.0 (*) + | | +--- io.netty:netty-codec-http2:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-buffer:4.1.93.Final + | | | | \--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-transport:4.1.93.Final + | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | \--- io.netty:netty-resolver:4.1.93.Final + | | | | \--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-codec:4.1.93.Final + | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | \--- io.netty:netty-transport:4.1.93.Final (*) + | | | +--- io.netty:netty-handler:4.1.93.Final + | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | +--- io.netty:netty-resolver:4.1.93.Final (*) + | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | | +--- io.netty:netty-transport-native-unix-common:4.1.93.Final + | | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | | \--- io.netty:netty-transport:4.1.93.Final (*) + | | | | \--- io.netty:netty-codec:4.1.93.Final (*) + | | | \--- io.netty:netty-codec-http:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | +--- io.netty:netty-codec:4.1.93.Final (*) + | | | \--- io.netty:netty-handler:4.1.93.Final (*) + | | +--- io.netty:netty-handler-proxy:4.1.93.Final + | | | +--- io.netty:netty-common:4.1.93.Final + | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | +--- io.netty:netty-codec:4.1.93.Final (*) + | | | +--- io.netty:netty-codec-socks:4.1.93.Final + | | | | +--- io.netty:netty-common:4.1.93.Final + | | | | +--- io.netty:netty-buffer:4.1.93.Final (*) + | | | | +--- io.netty:netty-transport:4.1.93.Final (*) + | | | | \--- io.netty:netty-codec:4.1.93.Final (*) + | | | \--- io.netty:netty-codec-http:4.1.93.Final (*) + | | +--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | +--- com.google.errorprone:error_prone_annotations:2.18.0 + | | +--- io.perfmark:perfmark-api:0.26.0 + | | \--- io.netty:netty-transport-native-unix-common:4.1.93.Final (*) + | +--- io.grpc:grpc-protobuf:1.57.0 + | | +--- io.grpc:grpc-api:1.57.0 (*) + | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | +--- com.google.protobuf:protobuf-java:3.22.3 + | | +--- com.google.api.grpc:proto-google-common-protos:2.17.0 + | | | \--- com.google.protobuf:protobuf-java:3.21.12 -> 3.22.3 + | | +--- io.grpc:grpc-protobuf-lite:1.57.0 + | | | +--- io.grpc:grpc-api:1.57.0 (*) + | | | +--- com.google.code.findbugs:jsr305:3.0.2 + | | | \--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | \--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | +--- io.grpc:grpc-stub:1.57.0 + | | +--- io.grpc:grpc-api:1.57.0 (*) + | | +--- com.google.guava:guava:32.0.1-android -> 32.0.1-jre (*) + | | \--- com.google.errorprone:error_prone_annotations:2.18.0 + | +--- javax.annotation:javax.annotation-api:1.3.2 + | \--- com.google.protobuf:protobuf-java:3.22.3 + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 (*) + +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 + | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 + | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 + | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) + | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.9.20 (*) + | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.9.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.20 (*) + +--- com.google.code.gson:gson:2.10.1 + +--- io.grpc:grpc-core:1.57.0 (*) + +--- io.grpc:grpc-protobuf:1.57.0 (*) + +--- io.grpc:grpc-stub:1.57.0 (*) + +--- io.grpc:grpc-netty:1.57.0 (*) + +--- com.google.protobuf:protobuf-java:3.22.3 + +--- com.google.guava:guava:32.0.1-jre (*) + +--- com.google.testing.platform:core-proto:0.0.9-alpha02 + \--- com.google.testing.platform:android-device-provider-local:0.0.9-alpha02 + +_internal-unified-test-platform-core - A configuration to resolve the Unified Test Platform dependencies. +\--- com.google.testing.platform:core:0.0.9-alpha02 + +_internal-unified-test-platform-launcher - A configuration to resolve the Unified Test Platform dependencies. +\--- com.google.testing.platform:launcher:0.0.9-alpha02 + +androidApis - Configuration providing various types of Android JAR file +No dependencies + +androidJdkImage - Configuration providing JDK image for compiling Java 9+ sources +No dependencies + +androidTestAnnotationProcessor - Classpath for the annotation processor for 'androidTest'. (n) +No dependencies + +androidTestApi (n) +No dependencies + +androidTestApiDependenciesMetadata +No dependencies + +androidTestCompileOnly - Compile only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestCompileOnlyDependenciesMetadata +No dependencies + +androidTestDebugAnnotationProcessor - Classpath for the annotation processor for 'androidTestDebug'. (n) +No dependencies + +androidTestDebugApi (n) +No dependencies + +androidTestDebugApiDependenciesMetadata +No dependencies + +androidTestDebugCompileOnly - Compile only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugCompileOnlyDependenciesMetadata +No dependencies + +androidTestDebugImplementation - Implementation only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugImplementationDependenciesMetadata +No dependencies + +androidTestDebugIntransitiveDependenciesMetadata +No dependencies + +androidTestDebugRuntimeOnly - Runtime only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugWearApp - Link to a wear app to embed for object 'androidTestDebug'. (n) +No dependencies + +androidTestImplementation - Implementation only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestImplementationDependenciesMetadata +No dependencies + +androidTestIntransitiveDependenciesMetadata +No dependencies + +androidTestReleaseAnnotationProcessor - Classpath for the annotation processor for 'androidTestRelease'. (n) +No dependencies + +androidTestReleaseApi (n) +No dependencies + +androidTestReleaseApiDependenciesMetadata +No dependencies + +androidTestReleaseCompileOnly - Compile only dependencies for 'androidTestRelease' sources. (n) +No dependencies + +androidTestReleaseCompileOnlyDependenciesMetadata +No dependencies + +androidTestReleaseImplementation - Implementation only dependencies for 'androidTestRelease' sources. (n) +No dependencies + +androidTestReleaseImplementationDependenciesMetadata +No dependencies + +androidTestReleaseIntransitiveDependenciesMetadata +No dependencies + +androidTestReleaseRuntimeOnly - Runtime only dependencies for 'androidTestRelease' sources. (n) +No dependencies + +androidTestReleaseWearApp - Link to a wear app to embed for object 'androidTestRelease'. (n) +No dependencies + +androidTestRuntimeOnly - Runtime only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestUtil - Additional APKs used during instrumentation testing. +No dependencies + +androidTestWearApp - Link to a wear app to embed for object 'androidTest'. (n) +No dependencies + +annotationProcessor - Classpath for the annotation processor for 'main'. (n) +No dependencies + +api - API dependencies for 'main' sources. (n) +\--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 (n) + +apiDependenciesMetadata +\--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 + +compileOnly - Compile only dependencies for 'main' sources. (n) +No dependencies + +compileOnlyApi - Compile only API dependencies for 'main' sources. (n) +No dependencies + +compileOnlyDependenciesMetadata +No dependencies + +coreLibraryDesugaring - Configuration to desugar libraries +No dependencies + +debugAndroidTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugAndroidTest +No dependencies + +debugAndroidTestApi (n) +No dependencies + +debugAndroidTestApiDependenciesMetadata +No dependencies + +debugAndroidTestCompilationApi - API dependencies for /debugAndroidTest (n) +No dependencies + +debugAndroidTestCompilationCompileOnly - Compile only dependencies for /debugAndroidTest. (n) +No dependencies + +debugAndroidTestCompilationImplementation - Implementation only dependencies for /debugAndroidTest. (n) +No dependencies + +debugAndroidTestCompilationRuntimeOnly - Runtime only dependencies for /debugAndroidTest. (n) +No dependencies + +debugAndroidTestCompileClasspath - Compile classpath for /debugAndroidTest. ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 +| +--- org.jetbrains:annotations:13.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.24 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.8.22 (c) ++--- project :app (*) ++--- project :amplitude_analytics-react-native ++--- project :invertase_react-native-apple-authentication +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 +| +--- androidx.appcompat:appcompat:1.6.1 +| | +--- androidx.activity:activity:1.6.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 +| | | | \--- androidx.annotation:annotation-jvm:1.6.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.0 -> 1.9.24 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.12.0 +| | | | +--- androidx.annotation:annotation:1.6.0 (*) +| | | | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.24 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.9.24 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.12.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | | +--- androidx.core:core:1.12.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.24 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.9.24 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.9.24 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 (c) +| | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.8.22 +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.24 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.24 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.9.24 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.8.22 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.24 (*) +| | +--- androidx.annotation:annotation:1.3.0 -> 1.6.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.6.1 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*) +| | | +--- androidx.core:core:1.6.0 -> 1.12.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | +--- androidx.core:core:1.1.0 -> 1.12.0 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.core:core:1.9.0 -> 1.12.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | \--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | +--- androidx.fragment:fragment:1.3.6 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.12.0 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 +| | | | | +--- androidx.arch.core:core-runtime:2.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | | | | \--- androidx.arch.core:core-common:2.0.0 -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.0.0 -> 2.5.1 (*) +| | | | | \--- androidx.arch.core:core-common:2.0.0 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.5.1 (*) +| | | +--- androidx.activity:activity:1.2.4 -> 1.6.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.5.1 (*) +| | | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.0 (*) +| | | \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.3.0 (*) +| | \--- androidx.savedstate:savedstate:1.2.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.6.1 (*) +| +--- androidx.autofill:autofill:1.1.0 +| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.12.0 (*) +| | \--- androidx.interpolator:interpolator:1.0.0 (*) +| +--- androidx.tracing:tracing:1.1.0 +| +--- com.facebook.fbjni:fbjni:0.6.0 +| +--- com.facebook.fresco:fresco:3.2.0 +| | +--- com.facebook.fresco:fbcore:3.2.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:drawee:3.2.0 +| | +--- com.facebook.fresco:imagepipeline:3.2.0 +| | | \--- com.facebook.fresco:imagepipeline-base:3.2.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:imagepipeline-native:3.2.0 +| | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 +| | +--- com.facebook.fresco:memory-type-native:3.2.0 +| | +--- com.facebook.fresco:memory-type-java:3.2.0 +| | +--- com.facebook.fresco:nativeimagefilters:3.2.0 +| | +--- com.facebook.fresco:nativeimagetranscoder:3.2.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:middleware:3.2.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:imagepipeline-okhttp3:3.2.0 +| | +--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 +| | | +--- com.squareup.okio:okio:2.8.0 -> 2.9.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 1.9.24 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 1.9.24 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 1.9.24 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:ui-common:3.2.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.infer.annotation:infer-annotation:0.18.0 +| | +--- com.google.code.findbugs:jsr305:3.0.1 -> 3.0.2 +| | \--- org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 +| +--- com.facebook.soloader:soloader:0.11.0 +| | +--- com.facebook.soloader:annotation:0.11.0 +| | \--- com.facebook.soloader:nativeloader:0.11.0 +| +--- com.facebook.yoga:proguard-annotations:1.19.0 +| +--- com.google.code.findbugs:jsr305:3.0.2 +| +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.8.22 (*) +| +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| +--- com.squareup.okio:okio:2.9.0 (*) +| +--- javax.inject:javax.inject:1 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 (*) ++--- project :notifee_react-native +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-async-storage_async-storage ++--- project :react-native-community_netinfo ++--- project :react-native-firebase_analytics +| +--- project :react-native-firebase_app +| | \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_app (*) ++--- project :react-native-firebase_app-check +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_crashlytics +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_messaging +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_perf +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-google-signin_google-signin ++--- project :sdcx_nested-scroll ++--- project :sdcx_pull-to-refresh ++--- project :sentry_react-native +| \--- io.sentry:sentry-android:7.15.0 +| +--- io.sentry:sentry-android-core:7.15.0 +| | \--- io.sentry:sentry:7.15.0 +| +--- io.sentry:sentry-android-ndk:7.15.0 +| | +--- io.sentry:sentry:7.15.0 +| | \--- io.sentry:sentry-android-core:7.15.0 (*) +| \--- io.sentry:sentry-android-replay:7.15.0 +| \--- io.sentry:sentry:7.15.0 ++--- project :shopify_flash-list ++--- project :walletconnect_react-native-compat ++--- project :expo +| +--- project :expo-modules-core +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 -> 1.6.4 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | \--- androidx.core:core-ktx:1.12.0 (*) +| +--- project :expo-application +| +--- project :expo-asset +| +--- project :expo-barcode-scanner +| | \--- com.google.mlkit:barcode-scanning:17.1.0 +| | +--- com.google.android.gms:play-services-basement:18.1.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.12.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.2.0 +| | | +--- com.google.android.datatransport:transport-api:2.2.1 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.5 -> 2.2.6 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 (*) +| | | | | \--- javax.inject:javax.inject:1 +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | +--- com.google.android.datatransport:transport-runtime:2.2.6 (*) +| | | +--- com.google.android.gms:play-services-base:18.1.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.12.0 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.0.2 +| | | | \--- com.google.android.gms:play-services-basement:18.1.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.1.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:18.0.2 (*) +| | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 +| | | | \--- com.google.firebase:firebase-annotations:16.2.0 +| | | | \--- javax.inject:javax.inject:1 +| | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 +| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.1.0 (*) +| | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0 +| | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.7 +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 (*) +| | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | \--- com.google.mlkit:common:18.6.0 -> 18.7.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 (*) +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:common:18.7.0 (*) +| | | +--- com.google.mlkit:vision-common:17.3.0 (*) +| | | \--- com.google.mlkit:vision-interfaces:16.2.0 +| | | +--- com.google.android.gms:play-services-basement:18.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.2 (*) +| | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*) +| | +--- com.google.mlkit:common:18.7.0 (*) +| | \--- com.google.mlkit:vision-common:17.3.0 (*) +| +--- project :expo-battery +| | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.1 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | | \--- androidx.core:core:1.0.0 -> 1.12.0 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| +--- project :expo-camera +| | +--- androidx.exifinterface:exifinterface:1.3.7 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | \--- com.google.android:cameraview:1.0.0 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 +| | | | \--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-media-compat:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-utils:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | \--- com.android.support:support-fragment:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-media-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 (*) +| | | \--- com.android.support:support-core-utils:25.3.1 (*) +| | \--- com.android.support:appcompat-v7:25.3.1 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 (*) +| | +--- com.android.support:support-vector-drawable:25.3.1 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | \--- com.android.support:support-compat:25.3.1 (*) +| | \--- com.android.support:animated-vector-drawable:25.3.1 +| | \--- com.android.support:support-vector-drawable:25.3.1 (*) +| +--- project :expo-clipboard +| +--- project :expo-constants +| | \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| +--- project :expo-crypto +| +--- project :expo-device +| | +--- com.facebook.device.yearclass:yearclass:2.1.0 +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-file-system +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:1.4 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-font +| +--- project :expo-image-loader +| | \--- com.github.bumptech.glide:glide:4.16.0 +| | +--- com.github.bumptech.glide:gifdecoder:4.16.0 +| | | \--- androidx.annotation:annotation:1.5.0 -> 1.6.0 (*) +| | +--- com.github.bumptech.glide:disklrucache:4.16.0 +| | +--- com.github.bumptech.glide:annotations:4.16.0 +| | +--- androidx.fragment:fragment:1.3.6 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*) +| | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 +| | \--- androidx.tracing:tracing:1.0.0 -> 1.1.0 +| +--- project :expo-image-picker +| +--- project :expo-keep-awake +| +--- project :expo-local-authentication +| +--- project :expo-network +| +--- project :expo-notifications +| +--- project :expo-screen-capture +| +--- project :expo-screen-orientation +| +--- project :expo-secure-store +| | \--- androidx.biometric:biometric:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | +--- androidx.core:core:1.3.2 -> 1.12.0 (*) +| | \--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| +--- project :expo-splash-screen +| +--- project :expo-web-browser +| | \--- androidx.browser:browser:1.6.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.12.0 (*) +| | \--- com.google.guava:listenablefuture:1.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 (*) ++--- project :lottie-react-native ++--- project :react-native-background-timer ++--- project :react-native-config ++--- project :react-native-device-info ++--- project :react-native-fast-image ++--- project :react-native-fbsdk-next ++--- project :react-native-fs ++--- project :react-native-gesture-handler ++--- project :react-native-get-random-values ++--- project :react-native-linear-gradient ++--- project :react-native-localize ++--- project :react-native-pager-view +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-permissions ++--- project :react-native-randombytes ++--- project :react-native-reanimated ++--- project :react-native-safe-area-context ++--- project :react-native-screens +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 (*) ++--- project :react-native-spinkit ++--- project :react-native-spring-scrollview +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-svg ++--- project :react-native-vector-icons ++--- project :react-native-view-shot ++--- project :react-native-webview ++--- project :rn-minimizer ++--- project :react-native-code-push ++--- com.google.firebase:firebase-bom:33.4.0 +| +--- com.google.firebase:firebase-perf:21.0.1 (c) +| +--- com.google.firebase:firebase-common:21.0.0 (c) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| +--- com.google.firebase:firebase-config:22.0.0 (c) +| +--- com.google.firebase:firebase-installations:18.0.0 (c) +| \--- com.google.firebase:firebase-encoders:17.0.0 (c) ++--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.1.1 +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.0.2 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 +| +--- com.google.firebase:firebase-common:21.0.0 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.0.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.8.22 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.1.1 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 -> 18.1.0 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.0.2 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:17.1.1 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.0.2 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| \--- com.google.firebase:firebase-sessions:2.0.0 +| +--- com.google.firebase:firebase-installations-interop:17.1.1 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 ++--- com.facebook.react:react-android -> 0.75.4 (*) +\--- com.facebook.react:hermes-android -> 0.75.4 + +debugAndroidTestCompileOnly (n) +No dependencies + +debugAndroidTestCompileOnlyDependenciesMetadata +No dependencies + +debugAndroidTestImplementation (n) +No dependencies + +debugAndroidTestImplementationDependenciesMetadata +No dependencies + +debugAndroidTestIntransitiveDependenciesMetadata +No dependencies + +debugAndroidTestRuntimeClasspath - Runtime classpath of /debugAndroidTest. +No dependencies + +debugAndroidTestRuntimeOnly (n) +No dependencies + +debugAnnotationProcessor - Classpath for the annotation processor for 'debug'. (n) +No dependencies + +debugAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debug +No dependencies + +debugApi - API dependencies for 'debug' sources. (n) +No dependencies + +debugApiDependenciesMetadata +No dependencies + +debugApiElements - API elements for debug (n) +No dependencies + +debugCompilationApi - API dependencies for /debug (n) +No dependencies + +debugCompilationCompileOnly - Compile only dependencies for /debug. (n) +No dependencies + +debugCompilationImplementation - Implementation only dependencies for /debug. (n) +No dependencies + +debugCompilationRuntimeOnly - Runtime only dependencies for /debug. (n) +No dependencies + +debugCompileClasspath - Compile classpath for /debug. ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 +| +--- org.jetbrains:annotations:13.0 -> 23.0.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.0 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.24 (c) ++--- project :amplitude_analytics-react-native ++--- project :invertase_react-native-apple-authentication +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 +| +--- androidx.appcompat:appcompat:1.6.1 +| | +--- androidx.activity:activity:1.6.0 -> 1.7.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 +| | | | \--- androidx.annotation:annotation-jvm:1.7.1 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.13.1 +| | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | +--- androidx.annotation:annotation-experimental:1.4.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.arch.core:core-common:2.2.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 +| | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 +| | | | | | | | +--- org.jetbrains:annotations:23.0.0 +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c) +| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3 (c) +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 2.0.0 +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | +--- androidx.appcompat:appcompat-resources:1.6.1 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | \--- androidx.customview:customview:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | \--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | +--- androidx.fragment:fragment:1.3.6 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- androidx.arch.core:core-common:2.2.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.6.2 (*) +| | | +--- androidx.activity:activity:1.2.4 -> 1.7.2 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.1 (*) +| | | \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | \--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*) +| +--- androidx.appcompat:appcompat-resources:1.6.1 (*) +| +--- androidx.autofill:autofill:1.1.0 +| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- androidx.interpolator:interpolator:1.0.0 (*) +| +--- androidx.tracing:tracing:1.1.0 -> 1.2.0 +| +--- com.facebook.fbjni:fbjni:0.6.0 +| +--- com.facebook.fresco:fresco:3.2.0 +| | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:drawee:3.2.0 -> 3.4.0 +| | | +--- com.facebook.fresco:ui-core:3.4.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 +| | | \--- com.facebook.fresco:imagepipeline-base:3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:nativeimagefilters:3.2.0 +| | +--- com.facebook.fresco:nativeimagetranscoder:3.2.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.fresco:imagepipeline-okhttp3:3.2.0 +| | +--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 +| | | +--- com.squareup.okio:okio:2.8.0 -> 2.9.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.infer.annotation:infer-annotation:0.18.0 +| | +--- com.google.code.findbugs:jsr305:3.0.1 -> 3.0.2 +| | \--- org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 +| +--- com.facebook.soloader:soloader:0.11.0 +| | +--- com.facebook.soloader:annotation:0.11.0 +| | \--- com.facebook.soloader:nativeloader:0.11.0 +| +--- com.facebook.yoga:proguard-annotations:1.19.0 +| +--- com.google.code.findbugs:jsr305:3.0.2 +| +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.8.22 (*) +| +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| +--- com.squareup.okio:okio:2.9.0 (*) +| +--- javax.inject:javax.inject:1 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :notifee_react-native +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-async-storage_async-storage ++--- project :react-native-community_netinfo ++--- project :react-native-firebase_analytics +| +--- project :react-native-firebase_app +| | \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_app (*) ++--- project :react-native-firebase_app-check +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_crashlytics +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_messaging +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_perf +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-google-signin_google-signin ++--- project :sdcx_nested-scroll ++--- project :sdcx_pull-to-refresh ++--- project :sentry_react-native +| \--- io.sentry:sentry-android:7.15.0 +| +--- io.sentry:sentry-android-core:7.15.0 +| | \--- io.sentry:sentry:7.15.0 +| +--- io.sentry:sentry-android-ndk:7.15.0 +| | +--- io.sentry:sentry:7.15.0 +| | \--- io.sentry:sentry-android-core:7.15.0 (*) +| \--- io.sentry:sentry-android-replay:7.15.0 +| \--- io.sentry:sentry:7.15.0 ++--- project :shopify_flash-list ++--- project :walletconnect_react-native-compat ++--- project :expo +| +--- project :expo-modules-core +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | \--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) +| +--- project :expo-application +| +--- project :expo-asset +| +--- project :expo-barcode-scanner +| | \--- com.google.mlkit:barcode-scanning:17.1.0 -> 17.2.0 +| | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | \--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.0 +| | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 +| | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:3.3.0 +| | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | | | +--- javax.inject:javax.inject:1 +| | | | | +--- com.google.firebase:firebase-encoders:17.0.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders-proto:16.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.2.0 +| | | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 +| | | | \--- com.google.firebase:firebase-annotations:16.2.0 +| | | | \--- javax.inject:javax.inject:1 +| | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 +| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0 +| | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.7 +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | \--- com.google.mlkit:common:18.6.0 -> 18.9.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:common:18.9.0 (*) +| | | +--- com.google.mlkit:vision-common:17.3.0 (*) +| | | \--- com.google.mlkit:vision-interfaces:16.2.0 +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*) +| | +--- com.google.mlkit:common:18.9.0 (*) +| | \--- com.google.mlkit:vision-common:17.3.0 (*) +| +--- project :expo-battery +| | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.1 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | \--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| +--- project :expo-camera +| | +--- androidx.exifinterface:exifinterface:1.3.7 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | \--- com.google.android:cameraview:1.0.0 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 +| | | | \--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-media-compat:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-utils:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | \--- com.android.support:support-fragment:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-media-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 (*) +| | | \--- com.android.support:support-core-utils:25.3.1 (*) +| | \--- com.android.support:appcompat-v7:25.3.1 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 (*) +| | +--- com.android.support:support-vector-drawable:25.3.1 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | \--- com.android.support:support-compat:25.3.1 (*) +| | \--- com.android.support:animated-vector-drawable:25.3.1 +| | \--- com.android.support:support-vector-drawable:25.3.1 (*) +| +--- project :expo-clipboard +| +--- project :expo-constants +| | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| +--- project :expo-crypto +| +--- project :expo-device +| | +--- com.facebook.device.yearclass:yearclass:2.1.0 +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-file-system +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:1.4 -> 2.6 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-font +| +--- project :expo-image-loader +| | \--- com.github.bumptech.glide:glide:4.16.0 +| | +--- com.github.bumptech.glide:gifdecoder:4.16.0 +| | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | +--- com.github.bumptech.glide:disklrucache:4.16.0 +| | +--- com.github.bumptech.glide:annotations:4.16.0 +| | +--- androidx.fragment:fragment:1.3.6 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*) +| | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 +| | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 +| +--- project :expo-image-picker +| +--- project :expo-keep-awake +| +--- project :expo-local-authentication +| +--- project :expo-network +| +--- project :expo-notifications +| +--- project :expo-screen-capture +| +--- project :expo-screen-orientation +| +--- project :expo-secure-store +| | \--- androidx.biometric:biometric:1.1.0 -> 1.2.0-alpha04 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| +--- project :expo-splash-screen +| +--- project :expo-web-browser +| | \--- androidx.browser:browser:1.6.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :lottie-react-native ++--- project :react-native-background-timer ++--- project :react-native-config ++--- project :react-native-device-info ++--- project :react-native-fast-image ++--- project :react-native-fbsdk-next ++--- project :react-native-fs ++--- project :react-native-gesture-handler ++--- project :react-native-get-random-values ++--- project :react-native-linear-gradient ++--- project :react-native-localize ++--- project :react-native-pager-view +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-permissions ++--- project :react-native-randombytes ++--- project :react-native-reanimated ++--- project :react-native-safe-area-context ++--- project :react-native-screens +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-spinkit ++--- project :react-native-spring-scrollview +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-svg ++--- project :react-native-vector-icons ++--- project :react-native-view-shot ++--- project :react-native-webview ++--- project :rn-minimizer ++--- project :react-native-code-push ++--- com.google.firebase:firebase-bom:33.4.0 +| +--- com.google.firebase:firebase-perf:21.0.1 (c) +| +--- com.google.firebase:firebase-common:21.0.0 (c) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| +--- com.google.firebase:firebase-config:22.0.0 (c) +| +--- com.google.firebase:firebase-installations:18.0.0 (c) +| \--- com.google.firebase:firebase-encoders:17.0.0 (c) ++--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 -> 3.21.11 +| +--- com.google.firebase:firebase-common:21.0.0 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.7.3 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 +| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:17.1.1 -> 17.2.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| \--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.5 +| +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 ++--- com.facebook.react:react-android -> 0.75.4 (*) ++--- com.facebook.react:hermes-android -> 0.75.4 ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.facebook.react:react-android:{strictly 0.75.4} -> 0.75.4 (c) ++--- com.google.firebase:firebase-bom:{strictly 33.4.0} -> 33.4.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 21.0.1} -> 21.0.1 (c) ++--- com.facebook.react:hermes-android:{strictly 0.75.4} -> 0.75.4 (c) ++--- com.facebook.fresco:animated-gif:{strictly 3.4.0} -> 3.4.0 (c) ++--- org.jetbrains:annotations:{strictly 23.0.0} -> 23.0.0 (c) ++--- io.sentry:sentry-android:{strictly 7.15.0} -> 7.15.0 (c) ++--- com.google.firebase:firebase-annotations:{strictly 16.2.0} -> 16.2.0 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 17.2.0} -> 17.2.0 (c) ++--- com.google.firebase:protolite-well-known-types:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 21.0.0} -> 21.0.0 (c) ++--- com.google.firebase:firebase-common-ktx:{strictly 21.0.0} -> 21.0.0 (c) ++--- com.google.firebase:firebase-components:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 22.0.0} -> 22.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-sessions:{strictly 2.0.5} -> 2.0.5 (c) ++--- androidx.appcompat:appcompat:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.autofill:autofill:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.tracing:tracing:{strictly 1.2.0} -> 1.2.0 (c) ++--- com.facebook.fbjni:fbjni:{strictly 0.6.0} -> 0.6.0 (c) ++--- com.facebook.fresco:fresco:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:middleware:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-okhttp3:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:ui-common:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.infer.annotation:infer-annotation:{strictly 0.18.0} -> 0.18.0 (c) ++--- com.facebook.soloader:soloader:{strictly 0.11.0} -> 0.11.0 (c) ++--- com.facebook.yoga:proguard-annotations:{strictly 1.19.0} -> 1.19.0 (c) ++--- com.google.code.findbugs:jsr305:{strictly 3.0.2} -> 3.0.2 (c) ++--- com.squareup.okhttp3:okhttp-urlconnection:{strictly 4.9.2} -> 4.9.2 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 4.9.2} -> 4.9.2 (c) ++--- com.squareup.okio:okio:{strictly 2.9.0} -> 2.9.0 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- io.sentry:sentry-android-core:{strictly 7.15.0} -> 7.15.0 (c) ++--- io.sentry:sentry-android-ndk:{strictly 7.15.0} -> 7.15.0 (c) ++--- io.sentry:sentry-android-replay:{strictly 7.15.0} -> 7.15.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.7.3} -> 1.7.3 (c) ++--- androidx.core:core-ktx:{strictly 1.13.1} -> 1.13.1 (c) ++--- com.google.mlkit:barcode-scanning:{strictly 17.2.0} -> 17.2.0 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.exifinterface:exifinterface:{strictly 1.3.7} -> 1.3.7 (c) ++--- com.google.android:cameraview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.annotation:annotation:{strictly 1.7.1} -> 1.7.1 (c) ++--- com.facebook.device.yearclass:yearclass:{strictly 2.1.0} -> 2.1.0 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.6} -> 2.6 (c) ++--- com.github.bumptech.glide:glide:{strictly 4.16.0} -> 4.16.0 (c) ++--- androidx.biometric:biometric:{strictly 1.2.0-alpha04} -> 1.2.0-alpha04 (c) ++--- androidx.browser:browser:{strictly 1.6.0} -> 1.6.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.8.22} -> 1.8.22 (c) ++--- com.google.firebase:firebase-config-interop:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.firebase:firebase-abt:{strictly 21.1.1} -> 21.1.1 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 20.0.1} -> 20.0.1 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 18.2.0} -> 18.2.0 (c) ++--- com.google.protobuf:protobuf-javalite:{strictly 3.21.11} -> 3.21.11 (c) ++--- com.google.firebase:firebase-encoders:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-encoders-json:{strictly 18.0.1} -> 18.0.1 (c) ++--- androidx.activity:activity:{strictly 1.7.2} -> 1.7.2 (c) ++--- androidx.core:core:{strictly 1.13.1} -> 1.13.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.fragment:fragment:{strictly 1.3.6} -> 1.3.6 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.facebook.fresco:fbcore:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:drawee:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-native:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-ashmem:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-native:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-java:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:nativeimagefilters:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:nativeimagetranscoder:{strictly 3.2.0} -> 3.2.0 (c) ++--- org.jetbrains.kotlin:kotlin-annotations-jvm:{strictly 1.3.72} -> 1.3.72 (c) ++--- com.facebook.soloader:annotation:{strictly 0.11.0} -> 0.11.0 (c) ++--- com.facebook.soloader:nativeloader:{strictly 0.11.0} -> 0.11.0 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- io.sentry:sentry:{strictly 7.15.0} -> 7.15.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.7.3} -> 1.7.3 (c) ++--- com.google.android.gms:play-services-basement:{strictly 18.4.0} -> 18.4.0 (c) ++--- com.google.android.gms:play-services-mlkit-barcode-scanning:{strictly 18.3.0} -> 18.3.0 (c) ++--- com.google.mlkit:barcode-scanning-common:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.mlkit:common:{strictly 18.9.0} -> 18.9.0 (c) ++--- com.google.mlkit:vision-common:{strictly 17.3.0} -> 17.3.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.android.support:support-annotations:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-v4:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:appcompat-v7:{strictly 25.3.1} -> 25.3.1 (c) ++--- androidx.annotation:annotation-jvm:{strictly 1.7.1} -> 1.7.1 (c) ++--- com.github.bumptech.glide:gifdecoder:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.github.bumptech.glide:disklrucache:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.github.bumptech.glide:annotations:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.9.24} -> 1.9.24 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.4.0} -> 1.4.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.customview:customview:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.6.2} -> 2.6.2 (c) ++--- com.facebook.fresco:ui-core:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-base:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.google.android.datatransport:transport-api:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.datatransport:transport-backend-cct:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.google.android.datatransport:transport-runtime:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 18.5.0} -> 18.5.0 (c) ++--- com.google.android.odml:image:{strictly 1.0.0-beta1} -> 1.0.0-beta1 (c) ++--- com.google.mlkit:vision-interfaces:{strictly 16.2.0} -> 16.2.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.android.support:support-compat:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-media-compat:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-core-utils:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-core-ui:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-fragment:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-vector-drawable:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:animated-vector-drawable:{strictly 25.3.1} -> 25.3.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.6.2} -> 2.6.2 (c) ++--- com.google.firebase:firebase-encoders-proto:{strictly 16.0.0} -> 16.0.0 (c) +\--- androidx.arch.core:core-runtime:{strictly 2.2.0} -> 2.2.0 (c) + +debugCompileOnly - Compile only dependencies for 'debug' sources. (n) +No dependencies + +debugCompileOnlyApi - Compile only API dependencies for 'debug' sources. (n) +No dependencies + +debugCompileOnlyDependenciesMetadata +No dependencies + +debugImplementation - Implementation only dependencies for 'debug' sources. (n) +No dependencies + +debugImplementationDependenciesMetadata +No dependencies + +debugIntransitiveDependenciesMetadata +No dependencies + +debugReverseMetadataValues - Metadata Values dependencies for the base Split +No dependencies + +debugRuntimeClasspath - Runtime classpath of /debug. ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 +| +--- org.jetbrains:annotations:13.0 -> 23.0.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.0 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.24 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (c) ++--- project :amplitude_analytics-react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 +| | +--- androidx.appcompat:appcompat:1.6.1 +| | | +--- androidx.activity:activity:1.6.0 -> 1.7.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 +| | | | | \--- androidx.annotation:annotation-jvm:1.7.1 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.8.0 -> 1.13.1 +| | | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-common:2.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | \--- androidx.arch.core:core-common:2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 +| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 +| | | | | | | | | +--- org.jetbrains:annotations:23.0.0 +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c) +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c) +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c) +| | | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 2.0.0 +| | | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | | | | +--- androidx.startup:startup-runtime:1.1.1 +| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 +| | | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | | | | \--- androidx.tracing:tracing-ktx:1.2.0 (c) +| | | | | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | \--- androidx.core:core-ktx:1.13.1 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | \--- androidx.core:core:1.13.1 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | | +--- androidx.savedstate:savedstate:1.2.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.1 -> 2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | \--- androidx.savedstate:savedstate-ktx:1.2.1 (c) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | +--- androidx.profileinstaller:profileinstaller:1.3.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | +--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | \--- androidx.activity:activity-ktx:1.7.2 (c) +| | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | +--- androidx.appcompat:appcompat-resources:1.6.1 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | | \--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | \--- androidx.collection:collection:1.1.0 (*) +| | | | \--- androidx.appcompat:appcompat:1.6.1 (c) +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.emoji2:emoji2:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | | | | +--- androidx.startup:startup-runtime:1.1.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.emoji2:emoji2-views-helper:1.2.0 +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.emoji2:emoji2:1.2.0 (*) +| | | +--- androidx.fragment:fragment:1.3.6 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.loader:loader:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.6.2 (*) +| | | | +--- androidx.activity:activity:1.2.4 -> 1.7.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.1 (*) +| | | | \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.6.2 (*) +| | | +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | \--- androidx.appcompat:appcompat-resources:1.6.1 (c) +| | +--- androidx.appcompat:appcompat-resources:1.6.1 (*) +| | +--- androidx.autofill:autofill:1.1.0 +| | | \--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | +--- androidx.tracing:tracing:1.1.0 -> 1.2.0 (*) +| | +--- com.facebook.fbjni:fbjni:0.6.0 +| | | \--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | +--- com.facebook.fresco:fresco:3.2.0 +| | | +--- com.facebook.fresco:soloader:3.2.0 +| | | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 +| | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | \--- com.facebook.soloader:soloader:0.10.5 -> 0.11.0 +| | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | \--- com.facebook.soloader:nativeloader:0.11.0 +| | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-common:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:drawee:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline:3.4.0 +| | | | | +--- com.facebook.soloader:nativeloader:0.11.0 +| | | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | +--- com.facebook.fresco:urimod:3.4.0 +| | | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | | +--- com.facebook.fresco:ui-core:3.4.0 +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | +--- com.facebook.fresco:vito-source:3.4.0 +| | | | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline-base:3.4.0 +| | | | | +--- com.facebook.infer.annotation:infer-annotation:0.18.0 +| | | | | | +--- com.google.code.findbugs:jsr305:3.0.1 -> 3.0.2 +| | | | | | \--- org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 +| | | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline-native:3.4.0 +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | \--- com.facebook.soloader:soloader:0.11.0 (*) +| | | | +--- com.facebook.fresco:memory-type-ashmem:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-native:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| | | | | \--- com.facebook.soloader:nativeloader:0.11.0 +| | | | +--- com.facebook.fresco:memory-type-java:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-common:3.4.0 (*) +| | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-core:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:nativeimagefilters:3.2.0 +| | | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | \--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:nativeimagetranscoder:3.2.0 +| | | | +--- com.facebook.fresco:imagepipeline-base:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | \--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 (*) +| | +--- com.facebook.fresco:imagepipeline-okhttp3:3.2.0 +| | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 (*) +| | | +--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 +| | | | +--- com.squareup.okio:okio:2.8.0 -> 2.9.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 (*) +| | +--- com.facebook.infer.annotation:infer-annotation:0.18.0 (*) +| | +--- com.facebook.soloader:soloader:0.11.0 (*) +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | +--- com.google.code.findbugs:jsr305:3.0.2 +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 +| | | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.8.22 (*) +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | +--- javax.inject:javax.inject:1 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :invertase_react-native-apple-authentication +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| +--- androidx.core:core-ktx:1.3.0 -> 1.13.1 (*) +| \--- androidx.fragment:fragment:1.3.2 -> 1.3.6 (*) ++--- project :notifee_react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- app.notifee:core:+ -> 202108261754 +| +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 +| | \--- com.google.android.gms:play-services-basement:18.4.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| +--- androidx.work:work-runtime:2.7.1 +| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.6.2 (*) +| | +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- androidx.room:room-runtime:2.2.5 +| | | +--- androidx.room:room-common:2.2.5 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.sqlite:sqlite-framework:2.0.1 -> 2.1.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | \--- androidx.sqlite:sqlite:2.1.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.sqlite:sqlite:2.0.1 -> 2.1.0 (*) +| | | \--- androidx.arch.core:core-runtime:2.0.1 -> 2.2.0 (*) +| | +--- androidx.sqlite:sqlite:2.1.0 (*) +| | +--- androidx.sqlite:sqlite-framework:2.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- androidx.lifecycle:lifecycle-service:2.1.0 -> 2.6.2 +| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| +--- org.greenrobot:eventbus:3.2.0 +| \--- com.squareup.okhttp3:okhttp:3.12.13 -> 4.9.2 (*) ++--- project :react-native-async-storage_async-storage +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-community_netinfo +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_analytics +| +--- project :react-native-firebase_app +| | +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| | +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 +| | | +--- com.google.firebase:firebase-perf:21.0.1 (c) +| | | +--- com.google.firebase:firebase-analytics:22.1.2 (c) +| | | +--- com.google.firebase:firebase-common:21.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck-playintegrity:18.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck-debug:18.0.0 (c) +| | | +--- com.google.firebase:firebase-crashlytics:19.2.0 (c) +| | | +--- com.google.firebase:firebase-crashlytics-ndk:19.2.0 (c) +| | | +--- com.google.firebase:firebase-messaging:24.0.2 (c) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| | | +--- com.google.firebase:firebase-config:22.0.0 (c) +| | | +--- com.google.firebase:firebase-installations:18.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck:18.0.0 (c) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (c) +| | +--- com.google.firebase:firebase-common -> 21.0.0 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.7.3 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 +| | | | +--- com.google.firebase:firebase-annotations:16.2.0 +| | | | | \--- javax.inject:javax.inject:1 +| | | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | | \--- com.google.errorprone:error_prone_annotations:2.26.0 +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | \--- com.google.android.gms:play-services-auth:20.7.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | +--- androidx.loader:loader:1.0.0 (*) +| | +--- com.google.android.gms:play-services-auth-api-phone:18.0.1 +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- com.google.android.gms:play-services-auth-base:18.0.4 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.2.0 -> 18.4.0 (*) +| | +--- com.google.android.gms:play-services-fido:20.0.1 +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-analytics -> 22.1.2 +| +--- com.google.android.gms:play-services-measurement:22.1.2 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 +| | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:22.1.2 +| | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:22.1.2 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 +| | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.7.3 (*) +| | | | \--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 (c) +| | | +--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (*) +| | | | +--- com.google.guava:guava:31.1-android +| | | | | +--- com.google.guava:failureaccess:1.0.1 +| | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | | | | +--- com.google.code.findbugs:jsr305:3.0.2 +| | | | | +--- org.checkerframework:checker-qual:3.12.0 +| | | | | +--- com.google.errorprone:error_prone_annotations:2.11.0 -> 2.26.0 +| | | | | \--- com.google.j2objc:j2objc-annotations:1.3 +| | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.7.3 (*) +| | | | \--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (c) +| | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | | +--- com.google.android.gms:play-services-stats:17.0.2 +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | | \--- com.google.guava:guava:31.1-android (*) +| | \--- com.google.android.gms:play-services-stats:17.0.2 (*) +| +--- com.google.android.gms:play-services-measurement-api:22.1.2 +| | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:22.1.2 +| | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | +--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.0.1 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- com.google.firebase:firebase-installations-interop:17.1.1 -> 17.2.0 +| | | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.0.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:19.0.0 -> 20.0.1 +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*) +| | +--- com.google.guava:guava:31.1-android (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:22.1.2 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| \--- com.google.android.gms:play-services-measurement-impl:22.1.2 (*) ++--- project :react-native-firebase_app (*) ++--- project :react-native-firebase_app-check +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| +--- com.google.firebase:firebase-appcheck-playintegrity -> 18.0.0 +| | +--- com.google.firebase:firebase-appcheck:18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-appcheck-interop:17.1.0 +| | | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.android.play:integrity:1.2.0 +| | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| \--- com.google.firebase:firebase-appcheck-debug -> 18.0.0 +| +--- com.google.firebase:firebase-appcheck:18.0.0 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) ++--- project :react-native-firebase_crashlytics +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| +--- com.google.firebase:firebase-crashlytics -> 19.2.0 +| | +--- com.google.firebase:firebase-sessions:2.0.5 +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-encoders:17.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- com.google.firebase:firebase-installations:18.0.0 (*) +| | | +--- com.google.firebase:firebase-datatransport:19.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-api:3.1.0 -> 3.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:3.2.0 -> 3.3.0 +| | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:3.3.0 +| | | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | | | | +--- javax.inject:javax.inject:1 +| | | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | | \--- com.google.firebase:firebase-encoders-proto:16.0.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*) +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:3.2.0 -> 3.3.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- androidx.datastore:datastore-preferences:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | +--- androidx.datastore:datastore:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.7.3 (*) +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | \--- androidx.datastore:datastore-core:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.7.3 (*) +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- androidx.datastore:datastore-preferences-core:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | \--- androidx.datastore:datastore-core:1.0.0 (*) +| | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | +--- com.google.firebase:firebase-installations:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:20.0.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | +--- com.google.android.datatransport:transport-backend-cct:3.3.0 (*) +| | +--- com.google.android.datatransport:transport-runtime:3.3.0 (*) +| | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| \--- com.google.firebase:firebase-crashlytics-ndk -> 19.2.0 +| +--- com.google.firebase:firebase-crashlytics:19.2.0 (*) +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) ++--- project :react-native-firebase_messaging +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-messaging -> 24.0.2 +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-datatransport:18.2.0 -> 19.0.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*) +| +--- com.google.firebase:firebase-encoders-proto:16.0.0 (*) +| +--- com.google.firebase:firebase-iid-interop:17.1.0 +| | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.2.0 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| +--- com.google.firebase:firebase-measurement-connector:19.0.0 -> 20.0.1 (*) +| +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| +--- com.google.android.datatransport:transport-api:3.1.0 -> 3.2.0 (*) +| +--- com.google.android.datatransport:transport-backend-cct:3.1.8 -> 3.3.0 (*) +| +--- com.google.android.datatransport:transport-runtime:3.1.8 -> 3.3.0 (*) +| +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| +--- com.google.android.gms:play-services-cloud-messaging:17.2.0 +| | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| +--- com.google.android.gms:play-services-stats:17.0.2 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.errorprone:error_prone_annotations:2.9.0 -> 2.26.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) ++--- project :react-native-firebase_perf +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 -> 3.21.11 +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| +--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.5 (*) +| +--- com.google.firebase:firebase-datatransport:18.1.8 -> 19.0.0 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.lifecycle:lifecycle-process:2.3.1 -> 2.6.2 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.protobuf:protobuf-javalite:3.21.11 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- com.google.android.datatransport:transport-api:3.0.0 -> 3.2.0 (*) +| +--- com.google.dagger:dagger:2.27 +| | \--- javax.inject:javax.inject:1 +| \--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 (*) ++--- project :react-native-google-signin_google-signin +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.google.android.gms:play-services-auth:19.2.0 -> 20.7.0 (*) ++--- project :sdcx_nested-scroll +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :sdcx_pull-to-refresh +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*) +| \--- io.github.scwang90:refresh-layout-kernel:3.0.0-alpha ++--- project :sentry_react-native +| +--- io.sentry:sentry-android:7.15.0 +| | +--- io.sentry:sentry-android-core:7.15.0 +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | | \--- io.sentry:sentry:7.15.0 +| | +--- io.sentry:sentry-android-ndk:7.15.0 +| | | +--- io.sentry:sentry:7.15.0 +| | | \--- io.sentry:sentry-android-core:7.15.0 (*) +| | \--- io.sentry:sentry-android-replay:7.15.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (*) +| | \--- io.sentry:sentry:7.15.0 +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :shopify_flash-list +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) ++--- project :walletconnect_react-native-compat +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :expo +| +--- project :expo-modules-core +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- org.jetbrains.kotlin:kotlin-reflect:1.9.24 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.7.1 (*) +| | +--- androidx.tracing:tracing-ktx:1.2.0 +| | | +--- androidx.tracing:tracing:1.2.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | \--- androidx.tracing:tracing:1.2.0 (c) +| | \--- com.facebook.react:react-android -> 0.75.4 (*) +| +--- project :expo-application +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- com.android.installreferrer:installreferrer:2.2 +| +--- project :expo-asset +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-barcode-scanner +| | +--- com.google.mlkit:barcode-scanning:17.1.0 -> 17.2.0 +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.0 +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 +| | | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0 +| | | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.7 +| | | | | | \--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | | \--- com.google.mlkit:common:18.6.0 -> 18.9.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | +--- com.google.mlkit:common:18.9.0 (*) +| | | | +--- com.google.mlkit:vision-common:17.3.0 (*) +| | | | \--- com.google.mlkit:vision-interfaces:16.2.0 +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*) +| | | +--- com.google.mlkit:common:18.9.0 (*) +| | | \--- com.google.mlkit:vision-common:17.3.0 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.7.3 (*) +| +--- project :expo-battery +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | \--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-camera +| | +--- androidx.exifinterface:exifinterface:1.3.7 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- com.google.android:cameraview:1.0.0 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-v4:25.3.1 +| | | | +--- com.android.support:support-compat:25.3.1 +| | | | | \--- com.android.support:support-annotations:25.3.1 +| | | | +--- com.android.support:support-media-compat:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-utils:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-ui:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | \--- com.android.support:support-fragment:25.3.1 +| | | | +--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-media-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-ui:25.3.1 (*) +| | | | \--- com.android.support:support-core-utils:25.3.1 (*) +| | | \--- com.android.support:appcompat-v7:25.3.1 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-v4:25.3.1 (*) +| | | +--- com.android.support:support-vector-drawable:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | \--- com.android.support:animated-vector-drawable:25.3.1 +| | | \--- com.android.support:support-vector-drawable:25.3.1 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.camera:camera-core:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures-ktx:1.1.0 +| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.4 -> 1.7.3 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.2 -> 1.3.7 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-camera2:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures-ktx:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-video:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-view:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 (*) +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (*) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-extensions:1.4.0-beta02 +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- com.google.mlkit:barcode-scanning:17.2.0 (*) +| | \--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | +--- androidx.camera:camera-view:1.4.0-beta02 (*) +| | +--- com.google.mlkit:vision-interfaces:16.0.0 -> 16.2.0 (*) +| | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| +--- project :expo-clipboard +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.core:core-ktx:1.6.0 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2 -> 1.7.3 (*) +| +--- project :expo-constants +| | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- commons-io:commons-io:2.6 +| +--- project :expo-crypto +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-device +| | +--- com.facebook.device.yearclass:yearclass:2.1.0 +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-file-system +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:1.4 -> 2.6 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-font +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-image-loader +| | +--- com.github.bumptech.glide:glide:4.16.0 +| | | +--- com.github.bumptech.glide:gifdecoder:4.16.0 +| | | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | +--- com.github.bumptech.glide:disklrucache:4.16.0 +| | | +--- com.github.bumptech.glide:annotations:4.16.0 +| | | +--- androidx.fragment:fragment:1.3.6 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 (*) +| | | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-image-picker +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.activity:activity-ktx:1.7.2 +| | | +--- androidx.activity:activity:1.7.2 (*) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.6.2 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.1 +| | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | \--- androidx.savedstate:savedstate:1.2.1 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | \--- androidx.activity:activity:1.7.2 (c) +| | +--- androidx.appcompat:appcompat:1.6.1 (*) +| | +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.7 (*) +| | +--- com.github.CanHub:Android-Image-Cropper:4.3.1 +| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.7.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.7.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 -> 2.0.0 (*) +| | | +--- androidx.databinding:viewbinding:7.2.1 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0 -> 1.8.22 (*) +| | | +--- androidx.appcompat:appcompat:1.4.2 -> 1.6.1 (*) +| | | +--- androidx.activity:activity-ktx:1.4.0 -> 1.7.2 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.7 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3 -> 1.7.3 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3 -> 1.7.3 (*) +| +--- project :expo-keep-awake +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-local-authentication +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.biometric:biometric:1.2.0-alpha04 +| | +--- androidx.activity:activity:1.1.0 -> 1.7.2 (*) +| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| +--- project :expo-network +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-notifications +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | +--- com.google.firebase:firebase-messaging:24.0.1 -> 24.0.2 (*) +| | \--- me.leolin:ShortcutBadger:1.1.22 +| +--- project :expo-screen-capture +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- project :expo-screen-orientation +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-secure-store +| | +--- androidx.biometric:biometric:1.1.0 -> 1.2.0-alpha04 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-splash-screen +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- com.facebook.react:react-android -> 0.75.4 (*) +| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-reflect:1.9.24 (*) +| +--- project :expo-web-browser +| | +--- androidx.browser:browser:1.6.0 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.core:core-ktx:1.7.0 -> 1.13.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- com.facebook.react:react-android -> 0.75.4 (*) ++--- project :lottie-react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.airbnb.android:lottie:5.1.1 +| +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*) +| \--- com.squareup.okio:okio:1.17.4 -> 2.9.0 (*) ++--- project :react-native-background-timer +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-config +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-device-info +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.android.installreferrer:installreferrer:1.1.2 -> 2.2 +| \--- com.google.android.gms:play-services-iid:17.0.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| +--- com.google.android.gms:play-services-base:17.0.0 -> 18.5.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.4.0 (*) +| +--- com.google.android.gms:play-services-stats:17.0.0 -> 17.0.2 (*) +| \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.2.0 (*) ++--- project :react-native-fast-image +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*) +| \--- com.github.bumptech.glide:okhttp3-integration:4.12.0 +| +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*) +| +--- com.squareup.okhttp3:okhttp:3.9.1 -> 4.9.2 (*) +| \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) ++--- project :react-native-fbsdk-next +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.facebook.android:facebook-android-sdk:16.+ -> 16.3.0 +| +--- com.facebook.android:facebook-core:16.3.0 +| | +--- com.facebook.android:facebook-bolts:16.3.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.android.installreferrer:installreferrer:1.0 -> 2.2 +| | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-common:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.browser:browser:1.0.0 -> 1.6.0 (*) +| | +--- androidx.activity:activity:1.2.0 -> 1.7.2 (*) +| | +--- androidx.fragment:fragment:1.3.0 -> 1.3.6 (*) +| | +--- com.google.zxing:core:3.3.3 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-login:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-share:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| | \--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| +--- com.facebook.android:facebook-applinks:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| +--- com.facebook.android:facebook-messenger:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| +--- com.facebook.android:facebook-gamingservices:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- com.facebook.android:facebook-share:16.3.0 (*) +| | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | \--- com.google.code.gson:gson:2.8.8 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) ++--- project :react-native-fs +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-gesture-handler +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- project :react-native-reanimated +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | +--- androidx.transition:transition:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.1 -> 1.13.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- com.facebook.react:react-android -> 0.75.4 (*) +| | \--- com.facebook.react:hermes-android -> 0.75.4 +| | +--- com.facebook.fbjni:fbjni:0.6.0 (*) +| | +--- com.facebook.soloader:soloader:0.11.0 (*) +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | \--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- androidx.core:core-ktx:1.6.0 -> 1.13.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-get-random-values +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-linear-gradient +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-localize +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-pager-view +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- androidx.viewpager2:viewpager2:1.0.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| \--- androidx.collection:collection:1.1.0 (*) ++--- project :react-native-permissions +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-randombytes +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-reanimated (*) ++--- project :react-native-safe-area-context +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-screens +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- androidx.appcompat:appcompat:1.4.2 -> 1.6.1 (*) +| +--- androidx.fragment:fragment:1.3.6 (*) +| +--- androidx.coordinatorlayout:coordinatorlayout:1.2.0 (*) +| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 (*) +| +--- com.google.android.material:material:1.6.1 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 -> 1.2.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:2.0.1 +| | | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | | +--- androidx.core:core:1.3.1 -> 1.13.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.1 +| | +--- androidx.core:core:1.5.0 -> 1.13.1 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*) +| | +--- androidx.dynamicanimation:dynamicanimation:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | +--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.2 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 (*) +| +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.6.2 (c) ++--- project :react-native-spinkit +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.github.ybq:Android-SpinKit:1.4.0 ++--- project :react-native-spring-scrollview +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-svg +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-vector-icons +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-view-shot +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-webview +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- androidx.webkit:webkit:1.4.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| \--- androidx.core:core:1.1.0 -> 1.13.1 (*) ++--- project :rn-minimizer +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-code-push +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.nimbusds:nimbus-jose-jwt:9.37.3 +| \--- com.github.stephenc.jcip:jcip-annotations:1.0-1 ++--- com.google.firebase:firebase-bom:33.4.0 (*) ++--- com.google.firebase:firebase-perf -> 21.0.1 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 +| +--- com.parse.bolts:bolts-tasks:1.4.0 +| +--- com.facebook.soloader:nativeloader:0.11.0 +| +--- com.facebook.fresco:fbcore:3.4.0 (*) +| \--- com.facebook.fresco:animated-base:3.4.0 +| +--- com.parse.bolts:bolts-tasks:1.4.0 +| +--- com.facebook.fresco:vito-options:3.4.0 +| | +--- com.facebook.fresco:drawee:3.4.0 (*) +| | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.fresco:middleware:3.4.0 (*) +| +--- com.facebook.fresco:fbcore:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline-base:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-ashmem:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-native:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-java:3.4.0 (*) +| +--- com.facebook.fresco:animated-drawable:3.4.0 +| | +--- com.facebook.fresco:imagepipeline-base:3.4.0 (*) +| | +--- com.facebook.fresco:drawee:3.4.0 (*) +| | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | +--- com.facebook.fresco:vito-renderer:3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:vito-options:3.4.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) ++--- com.facebook.react:react-android -> 0.75.4 (*) +\--- com.facebook.react:hermes-android -> 0.75.4 (*) + +debugRuntimeElements - Runtime elements for debug (n) +No dependencies + +debugRuntimeOnly - Runtime only dependencies for 'debug' sources. (n) +No dependencies + +debugUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugUnitTest +No dependencies + +debugUnitTestApi (n) +No dependencies + +debugUnitTestApiDependenciesMetadata +No dependencies + +debugUnitTestCompilationApi - API dependencies for /debugUnitTest (n) +No dependencies + +debugUnitTestCompilationCompileOnly - Compile only dependencies for /debugUnitTest. (n) +No dependencies + +debugUnitTestCompilationImplementation - Implementation only dependencies for /debugUnitTest. (n) +No dependencies + +debugUnitTestCompilationRuntimeOnly - Runtime only dependencies for /debugUnitTest. (n) +No dependencies + +debugUnitTestCompileClasspath - Compile classpath for /debugUnitTest. ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 +| +--- org.jetbrains:annotations:13.0 -> 23.0.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.0 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.24 (c) ++--- project :app (*) ++--- project :amplitude_analytics-react-native ++--- project :invertase_react-native-apple-authentication +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 +| +--- androidx.appcompat:appcompat:1.6.1 +| | +--- androidx.activity:activity:1.6.0 -> 1.7.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 +| | | | \--- androidx.annotation:annotation-jvm:1.7.1 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.13.1 +| | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | +--- androidx.annotation:annotation-experimental:1.4.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.arch.core:core-common:2.2.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 +| | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 +| | | | | | | | +--- org.jetbrains:annotations:23.0.0 +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c) +| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3 (c) +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 2.0.0 +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | +--- androidx.appcompat:appcompat-resources:1.6.1 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | \--- androidx.customview:customview:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | \--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | +--- androidx.fragment:fragment:1.3.6 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- androidx.arch.core:core-common:2.2.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.6.2 (*) +| | | +--- androidx.activity:activity:1.2.4 -> 1.7.2 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.1 (*) +| | | \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | \--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*) +| +--- androidx.appcompat:appcompat-resources:1.6.1 (*) +| +--- androidx.autofill:autofill:1.1.0 +| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- androidx.interpolator:interpolator:1.0.0 (*) +| +--- androidx.tracing:tracing:1.1.0 -> 1.2.0 +| +--- com.facebook.fbjni:fbjni:0.6.0 +| +--- com.facebook.fresco:fresco:3.2.0 +| | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:drawee:3.2.0 -> 3.4.0 +| | | +--- com.facebook.fresco:ui-core:3.4.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 +| | | \--- com.facebook.fresco:imagepipeline-base:3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:nativeimagefilters:3.2.0 +| | +--- com.facebook.fresco:nativeimagetranscoder:3.2.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.fresco:imagepipeline-okhttp3:3.2.0 +| | +--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 +| | | +--- com.squareup.okio:okio:2.8.0 -> 2.9.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.infer.annotation:infer-annotation:0.18.0 +| | +--- com.google.code.findbugs:jsr305:3.0.1 -> 3.0.2 +| | \--- org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 +| +--- com.facebook.soloader:soloader:0.11.0 +| | +--- com.facebook.soloader:annotation:0.11.0 +| | \--- com.facebook.soloader:nativeloader:0.11.0 +| +--- com.facebook.yoga:proguard-annotations:1.19.0 +| +--- com.google.code.findbugs:jsr305:3.0.2 +| +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.8.22 (*) +| +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| +--- com.squareup.okio:okio:2.9.0 (*) +| +--- javax.inject:javax.inject:1 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :notifee_react-native +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-async-storage_async-storage ++--- project :react-native-community_netinfo ++--- project :react-native-firebase_analytics +| +--- project :react-native-firebase_app +| | \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_app (*) ++--- project :react-native-firebase_app-check +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_crashlytics +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_messaging +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_perf +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-google-signin_google-signin ++--- project :sdcx_nested-scroll ++--- project :sdcx_pull-to-refresh ++--- project :sentry_react-native +| \--- io.sentry:sentry-android:7.15.0 +| +--- io.sentry:sentry-android-core:7.15.0 +| | \--- io.sentry:sentry:7.15.0 +| +--- io.sentry:sentry-android-ndk:7.15.0 +| | +--- io.sentry:sentry:7.15.0 +| | \--- io.sentry:sentry-android-core:7.15.0 (*) +| \--- io.sentry:sentry-android-replay:7.15.0 +| \--- io.sentry:sentry:7.15.0 ++--- project :shopify_flash-list ++--- project :walletconnect_react-native-compat ++--- project :expo +| +--- project :expo-modules-core +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | \--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) +| +--- project :expo-application +| +--- project :expo-asset +| +--- project :expo-barcode-scanner +| | \--- com.google.mlkit:barcode-scanning:17.1.0 -> 17.2.0 +| | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | \--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.0 +| | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 +| | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:3.3.0 +| | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | | | +--- javax.inject:javax.inject:1 +| | | | | +--- com.google.firebase:firebase-encoders:17.0.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders-proto:16.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.2.0 +| | | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 +| | | | \--- com.google.firebase:firebase-annotations:16.2.0 +| | | | \--- javax.inject:javax.inject:1 +| | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 +| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0 +| | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.7 +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | \--- com.google.mlkit:common:18.6.0 -> 18.9.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:common:18.9.0 (*) +| | | +--- com.google.mlkit:vision-common:17.3.0 (*) +| | | \--- com.google.mlkit:vision-interfaces:16.2.0 +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*) +| | +--- com.google.mlkit:common:18.9.0 (*) +| | \--- com.google.mlkit:vision-common:17.3.0 (*) +| +--- project :expo-battery +| | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.1 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | \--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| +--- project :expo-camera +| | +--- androidx.exifinterface:exifinterface:1.3.7 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | \--- com.google.android:cameraview:1.0.0 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 +| | | | \--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-media-compat:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-utils:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | \--- com.android.support:support-fragment:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-media-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 (*) +| | | \--- com.android.support:support-core-utils:25.3.1 (*) +| | \--- com.android.support:appcompat-v7:25.3.1 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 (*) +| | +--- com.android.support:support-vector-drawable:25.3.1 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | \--- com.android.support:support-compat:25.3.1 (*) +| | \--- com.android.support:animated-vector-drawable:25.3.1 +| | \--- com.android.support:support-vector-drawable:25.3.1 (*) +| +--- project :expo-clipboard +| +--- project :expo-constants +| | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| +--- project :expo-crypto +| +--- project :expo-device +| | +--- com.facebook.device.yearclass:yearclass:2.1.0 +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-file-system +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:1.4 -> 2.6 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-font +| +--- project :expo-image-loader +| | \--- com.github.bumptech.glide:glide:4.16.0 +| | +--- com.github.bumptech.glide:gifdecoder:4.16.0 +| | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | +--- com.github.bumptech.glide:disklrucache:4.16.0 +| | +--- com.github.bumptech.glide:annotations:4.16.0 +| | +--- androidx.fragment:fragment:1.3.6 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*) +| | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 +| | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 +| +--- project :expo-image-picker +| +--- project :expo-keep-awake +| +--- project :expo-local-authentication +| +--- project :expo-network +| +--- project :expo-notifications +| +--- project :expo-screen-capture +| +--- project :expo-screen-orientation +| +--- project :expo-secure-store +| | \--- androidx.biometric:biometric:1.1.0 -> 1.2.0-alpha04 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| +--- project :expo-splash-screen +| +--- project :expo-web-browser +| | \--- androidx.browser:browser:1.6.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :lottie-react-native ++--- project :react-native-background-timer ++--- project :react-native-config ++--- project :react-native-device-info ++--- project :react-native-fast-image ++--- project :react-native-fbsdk-next ++--- project :react-native-fs ++--- project :react-native-gesture-handler ++--- project :react-native-get-random-values ++--- project :react-native-linear-gradient ++--- project :react-native-localize ++--- project :react-native-pager-view +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-permissions ++--- project :react-native-randombytes ++--- project :react-native-reanimated ++--- project :react-native-safe-area-context ++--- project :react-native-screens +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-spinkit ++--- project :react-native-spring-scrollview +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-svg ++--- project :react-native-vector-icons ++--- project :react-native-view-shot ++--- project :react-native-webview ++--- project :rn-minimizer ++--- project :react-native-code-push ++--- com.google.firebase:firebase-bom:33.4.0 +| +--- com.google.firebase:firebase-perf:21.0.1 (c) +| +--- com.google.firebase:firebase-common:21.0.0 (c) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| +--- com.google.firebase:firebase-config:22.0.0 (c) +| +--- com.google.firebase:firebase-installations:18.0.0 (c) +| \--- com.google.firebase:firebase-encoders:17.0.0 (c) ++--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 -> 3.21.11 +| +--- com.google.firebase:firebase-common:21.0.0 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.7.3 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 +| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:17.1.1 -> 17.2.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| \--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.5 +| +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 ++--- com.facebook.react:react-android -> 0.75.4 (*) ++--- com.facebook.react:hermes-android -> 0.75.4 ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.facebook.react:react-android:{strictly 0.75.4} -> 0.75.4 (c) ++--- com.google.firebase:firebase-bom:{strictly 33.4.0} -> 33.4.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 21.0.1} -> 21.0.1 (c) ++--- com.facebook.react:hermes-android:{strictly 0.75.4} -> 0.75.4 (c) ++--- com.facebook.fresco:animated-gif:{strictly 3.4.0} -> 3.4.0 (c) ++--- org.jetbrains:annotations:{strictly 23.0.0} -> 23.0.0 (c) ++--- io.sentry:sentry-android:{strictly 7.15.0} -> 7.15.0 (c) ++--- com.google.firebase:firebase-annotations:{strictly 16.2.0} -> 16.2.0 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 17.2.0} -> 17.2.0 (c) ++--- com.google.firebase:protolite-well-known-types:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 21.0.0} -> 21.0.0 (c) ++--- com.google.firebase:firebase-common-ktx:{strictly 21.0.0} -> 21.0.0 (c) ++--- com.google.firebase:firebase-components:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 22.0.0} -> 22.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-sessions:{strictly 2.0.5} -> 2.0.5 (c) ++--- androidx.appcompat:appcompat:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.autofill:autofill:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.tracing:tracing:{strictly 1.2.0} -> 1.2.0 (c) ++--- com.facebook.fbjni:fbjni:{strictly 0.6.0} -> 0.6.0 (c) ++--- com.facebook.fresco:fresco:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:middleware:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-okhttp3:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:ui-common:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.infer.annotation:infer-annotation:{strictly 0.18.0} -> 0.18.0 (c) ++--- com.facebook.soloader:soloader:{strictly 0.11.0} -> 0.11.0 (c) ++--- com.facebook.yoga:proguard-annotations:{strictly 1.19.0} -> 1.19.0 (c) ++--- com.google.code.findbugs:jsr305:{strictly 3.0.2} -> 3.0.2 (c) ++--- com.squareup.okhttp3:okhttp-urlconnection:{strictly 4.9.2} -> 4.9.2 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 4.9.2} -> 4.9.2 (c) ++--- com.squareup.okio:okio:{strictly 2.9.0} -> 2.9.0 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- io.sentry:sentry-android-core:{strictly 7.15.0} -> 7.15.0 (c) ++--- io.sentry:sentry-android-ndk:{strictly 7.15.0} -> 7.15.0 (c) ++--- io.sentry:sentry-android-replay:{strictly 7.15.0} -> 7.15.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.7.3} -> 1.7.3 (c) ++--- androidx.core:core-ktx:{strictly 1.13.1} -> 1.13.1 (c) ++--- com.google.mlkit:barcode-scanning:{strictly 17.2.0} -> 17.2.0 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.exifinterface:exifinterface:{strictly 1.3.7} -> 1.3.7 (c) ++--- com.google.android:cameraview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.annotation:annotation:{strictly 1.7.1} -> 1.7.1 (c) ++--- com.facebook.device.yearclass:yearclass:{strictly 2.1.0} -> 2.1.0 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.6} -> 2.6 (c) ++--- com.github.bumptech.glide:glide:{strictly 4.16.0} -> 4.16.0 (c) ++--- androidx.biometric:biometric:{strictly 1.2.0-alpha04} -> 1.2.0-alpha04 (c) ++--- androidx.browser:browser:{strictly 1.6.0} -> 1.6.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.8.22} -> 1.8.22 (c) ++--- com.google.firebase:firebase-config-interop:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.firebase:firebase-abt:{strictly 21.1.1} -> 21.1.1 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 20.0.1} -> 20.0.1 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 18.2.0} -> 18.2.0 (c) ++--- com.google.protobuf:protobuf-javalite:{strictly 3.21.11} -> 3.21.11 (c) ++--- com.google.firebase:firebase-encoders:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-encoders-json:{strictly 18.0.1} -> 18.0.1 (c) ++--- androidx.activity:activity:{strictly 1.7.2} -> 1.7.2 (c) ++--- androidx.core:core:{strictly 1.13.1} -> 1.13.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.fragment:fragment:{strictly 1.3.6} -> 1.3.6 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.facebook.fresco:fbcore:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:drawee:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-native:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-ashmem:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-native:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-java:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:nativeimagefilters:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:nativeimagetranscoder:{strictly 3.2.0} -> 3.2.0 (c) ++--- org.jetbrains.kotlin:kotlin-annotations-jvm:{strictly 1.3.72} -> 1.3.72 (c) ++--- com.facebook.soloader:annotation:{strictly 0.11.0} -> 0.11.0 (c) ++--- com.facebook.soloader:nativeloader:{strictly 0.11.0} -> 0.11.0 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- io.sentry:sentry:{strictly 7.15.0} -> 7.15.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.7.3} -> 1.7.3 (c) ++--- com.google.android.gms:play-services-basement:{strictly 18.4.0} -> 18.4.0 (c) ++--- com.google.android.gms:play-services-mlkit-barcode-scanning:{strictly 18.3.0} -> 18.3.0 (c) ++--- com.google.mlkit:barcode-scanning-common:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.mlkit:common:{strictly 18.9.0} -> 18.9.0 (c) ++--- com.google.mlkit:vision-common:{strictly 17.3.0} -> 17.3.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.android.support:support-annotations:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-v4:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:appcompat-v7:{strictly 25.3.1} -> 25.3.1 (c) ++--- androidx.annotation:annotation-jvm:{strictly 1.7.1} -> 1.7.1 (c) ++--- com.github.bumptech.glide:gifdecoder:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.github.bumptech.glide:disklrucache:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.github.bumptech.glide:annotations:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.9.24} -> 1.9.24 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.4.0} -> 1.4.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.customview:customview:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.6.2} -> 2.6.2 (c) ++--- com.facebook.fresco:ui-core:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-base:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.google.android.datatransport:transport-api:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.datatransport:transport-backend-cct:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.google.android.datatransport:transport-runtime:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 18.5.0} -> 18.5.0 (c) ++--- com.google.android.odml:image:{strictly 1.0.0-beta1} -> 1.0.0-beta1 (c) ++--- com.google.mlkit:vision-interfaces:{strictly 16.2.0} -> 16.2.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.android.support:support-compat:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-media-compat:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-core-utils:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-core-ui:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-fragment:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-vector-drawable:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:animated-vector-drawable:{strictly 25.3.1} -> 25.3.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.6.2} -> 2.6.2 (c) ++--- com.google.firebase:firebase-encoders-proto:{strictly 16.0.0} -> 16.0.0 (c) +\--- androidx.arch.core:core-runtime:{strictly 2.2.0} -> 2.2.0 (c) + +debugUnitTestCompileOnly (n) +No dependencies + +debugUnitTestCompileOnlyDependenciesMetadata +No dependencies + +debugUnitTestImplementation (n) +No dependencies + +debugUnitTestImplementationDependenciesMetadata +No dependencies + +debugUnitTestIntransitiveDependenciesMetadata +No dependencies + +debugUnitTestRuntimeClasspath - Runtime classpath of /debugUnitTest. ++--- project :app (*) ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 +| +--- org.jetbrains:annotations:13.0 -> 23.0.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.0 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.24 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (c) ++--- project :amplitude_analytics-react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 +| | +--- androidx.appcompat:appcompat:1.6.1 +| | | +--- androidx.activity:activity:1.6.0 -> 1.7.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 +| | | | | \--- androidx.annotation:annotation-jvm:1.7.1 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.8.0 -> 1.13.1 +| | | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-common:2.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | \--- androidx.arch.core:core-common:2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 +| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 +| | | | | | | | | +--- org.jetbrains:annotations:23.0.0 +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c) +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c) +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c) +| | | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 2.0.0 +| | | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | | | | +--- androidx.startup:startup-runtime:1.1.1 +| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 +| | | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | | | | \--- androidx.tracing:tracing-ktx:1.2.0 (c) +| | | | | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | \--- androidx.core:core-ktx:1.13.1 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | \--- androidx.core:core:1.13.1 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | | +--- androidx.savedstate:savedstate:1.2.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.1 -> 2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | \--- androidx.savedstate:savedstate-ktx:1.2.1 (c) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | +--- androidx.profileinstaller:profileinstaller:1.3.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | +--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | \--- androidx.activity:activity-ktx:1.7.2 (c) +| | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | +--- androidx.appcompat:appcompat-resources:1.6.1 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | | \--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | \--- androidx.collection:collection:1.1.0 (*) +| | | | \--- androidx.appcompat:appcompat:1.6.1 (c) +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.emoji2:emoji2:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | | | | +--- androidx.startup:startup-runtime:1.1.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.emoji2:emoji2-views-helper:1.2.0 +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.emoji2:emoji2:1.2.0 (*) +| | | +--- androidx.fragment:fragment:1.3.6 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.loader:loader:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.6.2 (*) +| | | | +--- androidx.activity:activity:1.2.4 -> 1.7.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.1 (*) +| | | | \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.6.2 (*) +| | | +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | \--- androidx.appcompat:appcompat-resources:1.6.1 (c) +| | +--- androidx.appcompat:appcompat-resources:1.6.1 (*) +| | +--- androidx.autofill:autofill:1.1.0 +| | | \--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | +--- androidx.tracing:tracing:1.1.0 -> 1.2.0 (*) +| | +--- com.facebook.fbjni:fbjni:0.6.0 +| | | \--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | +--- com.facebook.fresco:fresco:3.2.0 +| | | +--- com.facebook.fresco:soloader:3.2.0 +| | | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 +| | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | \--- com.facebook.soloader:soloader:0.10.5 -> 0.11.0 +| | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | \--- com.facebook.soloader:nativeloader:0.11.0 +| | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-common:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:drawee:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline:3.4.0 +| | | | | +--- com.facebook.soloader:nativeloader:0.11.0 +| | | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | +--- com.facebook.fresco:urimod:3.4.0 +| | | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | | +--- com.facebook.fresco:ui-core:3.4.0 +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | +--- com.facebook.fresco:vito-source:3.4.0 +| | | | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline-base:3.4.0 +| | | | | +--- com.facebook.infer.annotation:infer-annotation:0.18.0 +| | | | | | +--- com.google.code.findbugs:jsr305:3.0.1 -> 3.0.2 +| | | | | | \--- org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 +| | | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline-native:3.4.0 +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | \--- com.facebook.soloader:soloader:0.11.0 (*) +| | | | +--- com.facebook.fresco:memory-type-ashmem:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-native:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| | | | | \--- com.facebook.soloader:nativeloader:0.11.0 +| | | | +--- com.facebook.fresco:memory-type-java:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-common:3.4.0 (*) +| | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-core:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:nativeimagefilters:3.2.0 +| | | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | \--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:nativeimagetranscoder:3.2.0 +| | | | +--- com.facebook.fresco:imagepipeline-base:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | \--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 (*) +| | +--- com.facebook.fresco:imagepipeline-okhttp3:3.2.0 +| | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 (*) +| | | +--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 +| | | | +--- com.squareup.okio:okio:2.8.0 -> 2.9.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 (*) +| | +--- com.facebook.infer.annotation:infer-annotation:0.18.0 (*) +| | +--- com.facebook.soloader:soloader:0.11.0 (*) +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | +--- com.google.code.findbugs:jsr305:3.0.2 +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 +| | | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.8.22 (*) +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | +--- javax.inject:javax.inject:1 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :invertase_react-native-apple-authentication +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| +--- androidx.core:core-ktx:1.3.0 -> 1.13.1 (*) +| \--- androidx.fragment:fragment:1.3.2 -> 1.3.6 (*) ++--- project :notifee_react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- app.notifee:core:+ -> 202108261754 +| +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 +| | \--- com.google.android.gms:play-services-basement:18.4.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| +--- androidx.work:work-runtime:2.7.1 +| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.6.2 (*) +| | +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- androidx.room:room-runtime:2.2.5 +| | | +--- androidx.room:room-common:2.2.5 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.sqlite:sqlite-framework:2.0.1 -> 2.1.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | \--- androidx.sqlite:sqlite:2.1.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.sqlite:sqlite:2.0.1 -> 2.1.0 (*) +| | | \--- androidx.arch.core:core-runtime:2.0.1 -> 2.2.0 (*) +| | +--- androidx.sqlite:sqlite:2.1.0 (*) +| | +--- androidx.sqlite:sqlite-framework:2.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- androidx.lifecycle:lifecycle-service:2.1.0 -> 2.6.2 +| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| +--- org.greenrobot:eventbus:3.2.0 +| \--- com.squareup.okhttp3:okhttp:3.12.13 -> 4.9.2 (*) ++--- project :react-native-async-storage_async-storage +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-community_netinfo +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_analytics +| +--- project :react-native-firebase_app +| | +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| | +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 +| | | +--- com.google.firebase:firebase-perf:21.0.1 (c) +| | | +--- com.google.firebase:firebase-analytics:22.1.2 (c) +| | | +--- com.google.firebase:firebase-common:21.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck-playintegrity:18.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck-debug:18.0.0 (c) +| | | +--- com.google.firebase:firebase-crashlytics:19.2.0 (c) +| | | +--- com.google.firebase:firebase-crashlytics-ndk:19.2.0 (c) +| | | +--- com.google.firebase:firebase-messaging:24.0.2 (c) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| | | +--- com.google.firebase:firebase-config:22.0.0 (c) +| | | +--- com.google.firebase:firebase-installations:18.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck:18.0.0 (c) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (c) +| | +--- com.google.firebase:firebase-common -> 21.0.0 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.7.3 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 +| | | | +--- com.google.firebase:firebase-annotations:16.2.0 +| | | | | \--- javax.inject:javax.inject:1 +| | | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | | \--- com.google.errorprone:error_prone_annotations:2.26.0 +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | \--- com.google.android.gms:play-services-auth:20.7.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | +--- androidx.loader:loader:1.0.0 (*) +| | +--- com.google.android.gms:play-services-auth-api-phone:18.0.1 +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- com.google.android.gms:play-services-auth-base:18.0.4 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.2.0 -> 18.4.0 (*) +| | +--- com.google.android.gms:play-services-fido:20.0.1 +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-analytics -> 22.1.2 +| +--- com.google.android.gms:play-services-measurement:22.1.2 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 +| | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:22.1.2 +| | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:22.1.2 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 +| | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.7.3 (*) +| | | | \--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 (c) +| | | +--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (*) +| | | | +--- com.google.guava:guava:31.1-android +| | | | | +--- com.google.guava:failureaccess:1.0.1 +| | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | | | | +--- com.google.code.findbugs:jsr305:3.0.2 +| | | | | +--- org.checkerframework:checker-qual:3.12.0 +| | | | | +--- com.google.errorprone:error_prone_annotations:2.11.0 -> 2.26.0 +| | | | | \--- com.google.j2objc:j2objc-annotations:1.3 +| | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.7.3 (*) +| | | | \--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (c) +| | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | | +--- com.google.android.gms:play-services-stats:17.0.2 +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | | \--- com.google.guava:guava:31.1-android (*) +| | \--- com.google.android.gms:play-services-stats:17.0.2 (*) +| +--- com.google.android.gms:play-services-measurement-api:22.1.2 +| | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:22.1.2 +| | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | +--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.0.1 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- com.google.firebase:firebase-installations-interop:17.1.1 -> 17.2.0 +| | | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.0.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:19.0.0 -> 20.0.1 +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*) +| | +--- com.google.guava:guava:31.1-android (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:22.1.2 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| \--- com.google.android.gms:play-services-measurement-impl:22.1.2 (*) ++--- project :react-native-firebase_app (*) ++--- project :react-native-firebase_app-check +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| +--- com.google.firebase:firebase-appcheck-playintegrity -> 18.0.0 +| | +--- com.google.firebase:firebase-appcheck:18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-appcheck-interop:17.1.0 +| | | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.android.play:integrity:1.2.0 +| | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| \--- com.google.firebase:firebase-appcheck-debug -> 18.0.0 +| +--- com.google.firebase:firebase-appcheck:18.0.0 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) ++--- project :react-native-firebase_crashlytics +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| +--- com.google.firebase:firebase-crashlytics -> 19.2.0 +| | +--- com.google.firebase:firebase-sessions:2.0.5 +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-encoders:17.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- com.google.firebase:firebase-installations:18.0.0 (*) +| | | +--- com.google.firebase:firebase-datatransport:19.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-api:3.1.0 -> 3.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:3.2.0 -> 3.3.0 +| | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:3.3.0 +| | | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | | | | +--- javax.inject:javax.inject:1 +| | | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | | \--- com.google.firebase:firebase-encoders-proto:16.0.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*) +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:3.2.0 -> 3.3.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- androidx.datastore:datastore-preferences:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | +--- androidx.datastore:datastore:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.7.3 (*) +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | \--- androidx.datastore:datastore-core:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.7.3 (*) +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- androidx.datastore:datastore-preferences-core:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | \--- androidx.datastore:datastore-core:1.0.0 (*) +| | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | +--- com.google.firebase:firebase-installations:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:20.0.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | +--- com.google.android.datatransport:transport-backend-cct:3.3.0 (*) +| | +--- com.google.android.datatransport:transport-runtime:3.3.0 (*) +| | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| \--- com.google.firebase:firebase-crashlytics-ndk -> 19.2.0 +| +--- com.google.firebase:firebase-crashlytics:19.2.0 (*) +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) ++--- project :react-native-firebase_messaging +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-messaging -> 24.0.2 +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-datatransport:18.2.0 -> 19.0.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*) +| +--- com.google.firebase:firebase-encoders-proto:16.0.0 (*) +| +--- com.google.firebase:firebase-iid-interop:17.1.0 +| | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.2.0 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| +--- com.google.firebase:firebase-measurement-connector:19.0.0 -> 20.0.1 (*) +| +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| +--- com.google.android.datatransport:transport-api:3.1.0 -> 3.2.0 (*) +| +--- com.google.android.datatransport:transport-backend-cct:3.1.8 -> 3.3.0 (*) +| +--- com.google.android.datatransport:transport-runtime:3.1.8 -> 3.3.0 (*) +| +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| +--- com.google.android.gms:play-services-cloud-messaging:17.2.0 +| | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| +--- com.google.android.gms:play-services-stats:17.0.2 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.errorprone:error_prone_annotations:2.9.0 -> 2.26.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) ++--- project :react-native-firebase_perf +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 -> 3.21.11 +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| +--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.5 (*) +| +--- com.google.firebase:firebase-datatransport:18.1.8 -> 19.0.0 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.lifecycle:lifecycle-process:2.3.1 -> 2.6.2 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.protobuf:protobuf-javalite:3.21.11 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- com.google.android.datatransport:transport-api:3.0.0 -> 3.2.0 (*) +| +--- com.google.dagger:dagger:2.27 +| | \--- javax.inject:javax.inject:1 +| \--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 (*) ++--- project :react-native-google-signin_google-signin +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.google.android.gms:play-services-auth:19.2.0 -> 20.7.0 (*) ++--- project :sdcx_nested-scroll +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :sdcx_pull-to-refresh +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*) +| \--- io.github.scwang90:refresh-layout-kernel:3.0.0-alpha ++--- project :sentry_react-native +| +--- io.sentry:sentry-android:7.15.0 +| | +--- io.sentry:sentry-android-core:7.15.0 +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | | \--- io.sentry:sentry:7.15.0 +| | +--- io.sentry:sentry-android-ndk:7.15.0 +| | | +--- io.sentry:sentry:7.15.0 +| | | \--- io.sentry:sentry-android-core:7.15.0 (*) +| | \--- io.sentry:sentry-android-replay:7.15.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (*) +| | \--- io.sentry:sentry:7.15.0 +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :shopify_flash-list +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) ++--- project :walletconnect_react-native-compat +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :expo +| +--- project :expo-modules-core +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- org.jetbrains.kotlin:kotlin-reflect:1.9.24 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.7.1 (*) +| | +--- androidx.tracing:tracing-ktx:1.2.0 +| | | +--- androidx.tracing:tracing:1.2.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | \--- androidx.tracing:tracing:1.2.0 (c) +| | \--- com.facebook.react:react-android -> 0.75.4 (*) +| +--- project :expo-application +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- com.android.installreferrer:installreferrer:2.2 +| +--- project :expo-asset +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-barcode-scanner +| | +--- com.google.mlkit:barcode-scanning:17.1.0 -> 17.2.0 +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.0 +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 +| | | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0 +| | | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.7 +| | | | | | \--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | | \--- com.google.mlkit:common:18.6.0 -> 18.9.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | +--- com.google.mlkit:common:18.9.0 (*) +| | | | +--- com.google.mlkit:vision-common:17.3.0 (*) +| | | | \--- com.google.mlkit:vision-interfaces:16.2.0 +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*) +| | | +--- com.google.mlkit:common:18.9.0 (*) +| | | \--- com.google.mlkit:vision-common:17.3.0 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.7.3 (*) +| +--- project :expo-battery +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | \--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-camera +| | +--- androidx.exifinterface:exifinterface:1.3.7 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- com.google.android:cameraview:1.0.0 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-v4:25.3.1 +| | | | +--- com.android.support:support-compat:25.3.1 +| | | | | \--- com.android.support:support-annotations:25.3.1 +| | | | +--- com.android.support:support-media-compat:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-utils:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-ui:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | \--- com.android.support:support-fragment:25.3.1 +| | | | +--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-media-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-ui:25.3.1 (*) +| | | | \--- com.android.support:support-core-utils:25.3.1 (*) +| | | \--- com.android.support:appcompat-v7:25.3.1 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-v4:25.3.1 (*) +| | | +--- com.android.support:support-vector-drawable:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | \--- com.android.support:animated-vector-drawable:25.3.1 +| | | \--- com.android.support:support-vector-drawable:25.3.1 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.camera:camera-core:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures-ktx:1.1.0 +| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.4 -> 1.7.3 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.2 -> 1.3.7 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-camera2:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures-ktx:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-video:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-view:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 (*) +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (*) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-extensions:1.4.0-beta02 +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- com.google.mlkit:barcode-scanning:17.2.0 (*) +| | \--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | +--- androidx.camera:camera-view:1.4.0-beta02 (*) +| | +--- com.google.mlkit:vision-interfaces:16.0.0 -> 16.2.0 (*) +| | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| +--- project :expo-clipboard +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.core:core-ktx:1.6.0 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2 -> 1.7.3 (*) +| +--- project :expo-constants +| | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- commons-io:commons-io:2.6 +| +--- project :expo-crypto +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-device +| | +--- com.facebook.device.yearclass:yearclass:2.1.0 +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-file-system +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:1.4 -> 2.6 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-font +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-image-loader +| | +--- com.github.bumptech.glide:glide:4.16.0 +| | | +--- com.github.bumptech.glide:gifdecoder:4.16.0 +| | | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | +--- com.github.bumptech.glide:disklrucache:4.16.0 +| | | +--- com.github.bumptech.glide:annotations:4.16.0 +| | | +--- androidx.fragment:fragment:1.3.6 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 (*) +| | | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-image-picker +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.activity:activity-ktx:1.7.2 +| | | +--- androidx.activity:activity:1.7.2 (*) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.6.2 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.1 +| | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | \--- androidx.savedstate:savedstate:1.2.1 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | \--- androidx.activity:activity:1.7.2 (c) +| | +--- androidx.appcompat:appcompat:1.6.1 (*) +| | +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.7 (*) +| | +--- com.github.CanHub:Android-Image-Cropper:4.3.1 +| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.7.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.7.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 -> 2.0.0 (*) +| | | +--- androidx.databinding:viewbinding:7.2.1 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0 -> 1.8.22 (*) +| | | +--- androidx.appcompat:appcompat:1.4.2 -> 1.6.1 (*) +| | | +--- androidx.activity:activity-ktx:1.4.0 -> 1.7.2 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.7 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3 -> 1.7.3 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3 -> 1.7.3 (*) +| +--- project :expo-keep-awake +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-local-authentication +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.biometric:biometric:1.2.0-alpha04 +| | +--- androidx.activity:activity:1.1.0 -> 1.7.2 (*) +| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| +--- project :expo-network +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-notifications +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | +--- com.google.firebase:firebase-messaging:24.0.1 -> 24.0.2 (*) +| | \--- me.leolin:ShortcutBadger:1.1.22 +| +--- project :expo-screen-capture +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- project :expo-screen-orientation +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-secure-store +| | +--- androidx.biometric:biometric:1.1.0 -> 1.2.0-alpha04 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-splash-screen +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- com.facebook.react:react-android -> 0.75.4 (*) +| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-reflect:1.9.24 (*) +| +--- project :expo-web-browser +| | +--- androidx.browser:browser:1.6.0 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.core:core-ktx:1.7.0 -> 1.13.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- com.facebook.react:react-android -> 0.75.4 (*) ++--- project :lottie-react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.airbnb.android:lottie:5.1.1 +| +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*) +| \--- com.squareup.okio:okio:1.17.4 -> 2.9.0 (*) ++--- project :react-native-background-timer +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-config +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-device-info +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.android.installreferrer:installreferrer:1.1.2 -> 2.2 +| \--- com.google.android.gms:play-services-iid:17.0.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| +--- com.google.android.gms:play-services-base:17.0.0 -> 18.5.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.4.0 (*) +| +--- com.google.android.gms:play-services-stats:17.0.0 -> 17.0.2 (*) +| \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.2.0 (*) ++--- project :react-native-fast-image +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*) +| \--- com.github.bumptech.glide:okhttp3-integration:4.12.0 +| +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*) +| +--- com.squareup.okhttp3:okhttp:3.9.1 -> 4.9.2 (*) +| \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) ++--- project :react-native-fbsdk-next +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.facebook.android:facebook-android-sdk:16.+ -> 16.3.0 +| +--- com.facebook.android:facebook-core:16.3.0 +| | +--- com.facebook.android:facebook-bolts:16.3.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.android.installreferrer:installreferrer:1.0 -> 2.2 +| | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-common:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.browser:browser:1.0.0 -> 1.6.0 (*) +| | +--- androidx.activity:activity:1.2.0 -> 1.7.2 (*) +| | +--- androidx.fragment:fragment:1.3.0 -> 1.3.6 (*) +| | +--- com.google.zxing:core:3.3.3 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-login:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-share:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| | \--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| +--- com.facebook.android:facebook-applinks:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| +--- com.facebook.android:facebook-messenger:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| +--- com.facebook.android:facebook-gamingservices:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- com.facebook.android:facebook-share:16.3.0 (*) +| | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | \--- com.google.code.gson:gson:2.8.8 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) ++--- project :react-native-fs +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-gesture-handler +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- project :react-native-reanimated +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | +--- androidx.transition:transition:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.1 -> 1.13.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- com.facebook.react:react-android -> 0.75.4 (*) +| | \--- com.facebook.react:hermes-android -> 0.75.4 +| | +--- com.facebook.fbjni:fbjni:0.6.0 (*) +| | +--- com.facebook.soloader:soloader:0.11.0 (*) +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | \--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- androidx.core:core-ktx:1.6.0 -> 1.13.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-get-random-values +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-linear-gradient +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-localize +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-pager-view +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- androidx.viewpager2:viewpager2:1.0.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| \--- androidx.collection:collection:1.1.0 (*) ++--- project :react-native-permissions +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-randombytes +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-reanimated (*) ++--- project :react-native-safe-area-context +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-screens +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- androidx.appcompat:appcompat:1.4.2 -> 1.6.1 (*) +| +--- androidx.fragment:fragment:1.3.6 (*) +| +--- androidx.coordinatorlayout:coordinatorlayout:1.2.0 (*) +| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 (*) +| +--- com.google.android.material:material:1.6.1 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 -> 1.2.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:2.0.1 +| | | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | | +--- androidx.core:core:1.3.1 -> 1.13.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.1 +| | +--- androidx.core:core:1.5.0 -> 1.13.1 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*) +| | +--- androidx.dynamicanimation:dynamicanimation:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | +--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.2 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 (*) +| +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.6.2 (c) ++--- project :react-native-spinkit +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.github.ybq:Android-SpinKit:1.4.0 ++--- project :react-native-spring-scrollview +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-svg +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-vector-icons +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-view-shot +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-webview +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- androidx.webkit:webkit:1.4.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| \--- androidx.core:core:1.1.0 -> 1.13.1 (*) ++--- project :rn-minimizer +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-code-push +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.nimbusds:nimbus-jose-jwt:9.37.3 +| \--- com.github.stephenc.jcip:jcip-annotations:1.0-1 ++--- com.google.firebase:firebase-bom:33.4.0 (*) ++--- com.google.firebase:firebase-perf -> 21.0.1 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 +| +--- com.parse.bolts:bolts-tasks:1.4.0 +| +--- com.facebook.soloader:nativeloader:0.11.0 +| +--- com.facebook.fresco:fbcore:3.4.0 (*) +| \--- com.facebook.fresco:animated-base:3.4.0 +| +--- com.parse.bolts:bolts-tasks:1.4.0 +| +--- com.facebook.fresco:vito-options:3.4.0 +| | +--- com.facebook.fresco:drawee:3.4.0 (*) +| | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.fresco:middleware:3.4.0 (*) +| +--- com.facebook.fresco:fbcore:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline-base:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-ashmem:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-native:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-java:3.4.0 (*) +| +--- com.facebook.fresco:animated-drawable:3.4.0 +| | +--- com.facebook.fresco:imagepipeline-base:3.4.0 (*) +| | +--- com.facebook.fresco:drawee:3.4.0 (*) +| | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | +--- com.facebook.fresco:vito-renderer:3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:vito-options:3.4.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) ++--- com.facebook.react:react-android -> 0.75.4 (*) +\--- com.facebook.react:hermes-android -> 0.75.4 (*) + +debugUnitTestRuntimeOnly (n) +No dependencies + +debugWearApp - Link to a wear app to embed for object 'debug'. (n) +No dependencies + +debugWearBundling - Resolved Configuration for wear app bundling for variant: debug +No dependencies + +implementation - Implementation only dependencies for 'main' sources. (n) ++--- project amplitude_analytics-react-native (n) ++--- project invertase_react-native-apple-authentication (n) ++--- project notifee_react-native (n) ++--- project react-native-async-storage_async-storage (n) ++--- project react-native-community_netinfo (n) ++--- project react-native-firebase_analytics (n) ++--- project react-native-firebase_app (n) ++--- project react-native-firebase_app-check (n) ++--- project react-native-firebase_crashlytics (n) ++--- project react-native-firebase_messaging (n) ++--- project react-native-firebase_perf (n) ++--- project react-native-google-signin_google-signin (n) ++--- project sdcx_nested-scroll (n) ++--- project sdcx_pull-to-refresh (n) ++--- project sentry_react-native (n) ++--- project shopify_flash-list (n) ++--- project walletconnect_react-native-compat (n) ++--- project expo (n) ++--- project lottie-react-native (n) ++--- project react-native-background-timer (n) ++--- project react-native-config (n) ++--- project react-native-device-info (n) ++--- project react-native-fast-image (n) ++--- project react-native-fbsdk-next (n) ++--- project react-native-fs (n) ++--- project react-native-gesture-handler (n) ++--- project react-native-get-random-values (n) ++--- project react-native-linear-gradient (n) ++--- project react-native-localize (n) ++--- project react-native-pager-view (n) ++--- project react-native-permissions (n) ++--- project react-native-randombytes (n) ++--- project react-native-reanimated (n) ++--- project react-native-safe-area-context (n) ++--- project react-native-screens (n) ++--- project react-native-spinkit (n) ++--- project react-native-spring-scrollview (n) ++--- project react-native-svg (n) ++--- project react-native-vector-icons (n) ++--- project react-native-view-shot (n) ++--- project react-native-webview (n) ++--- project rn-minimizer (n) ++--- project react-native-code-push (n) ++--- com.google.firebase:firebase-bom:33.4.0 (n) ++--- com.google.firebase:firebase-perf (n) ++--- com.facebook.fresco:animated-gif:3.4.0 (n) ++--- unspecified (n) ++--- com.facebook.react:react-android (n) +\--- com.facebook.react:hermes-android (n) + +implementationDependenciesMetadata ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 +| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.24 (c) ++--- project :amplitude_analytics-react-native FAILED ++--- project :invertase_react-native-apple-authentication FAILED ++--- project :notifee_react-native FAILED ++--- project :react-native-async-storage_async-storage FAILED ++--- project :react-native-community_netinfo FAILED ++--- project :react-native-firebase_analytics FAILED ++--- project :react-native-firebase_app FAILED ++--- project :react-native-firebase_app-check FAILED ++--- project :react-native-firebase_crashlytics FAILED ++--- project :react-native-firebase_messaging FAILED ++--- project :react-native-firebase_perf FAILED ++--- project :react-native-google-signin_google-signin FAILED ++--- project :sdcx_nested-scroll FAILED ++--- project :sdcx_pull-to-refresh FAILED ++--- project :sentry_react-native FAILED ++--- project :shopify_flash-list FAILED ++--- project :walletconnect_react-native-compat FAILED ++--- project :expo FAILED ++--- project :lottie-react-native FAILED ++--- project :react-native-background-timer FAILED ++--- project :react-native-config FAILED ++--- project :react-native-device-info FAILED ++--- project :react-native-fast-image FAILED ++--- project :react-native-fbsdk-next FAILED ++--- project :react-native-fs FAILED ++--- project :react-native-gesture-handler FAILED ++--- project :react-native-get-random-values FAILED ++--- project :react-native-linear-gradient FAILED ++--- project :react-native-localize FAILED ++--- project :react-native-pager-view FAILED ++--- project :react-native-permissions FAILED ++--- project :react-native-randombytes FAILED ++--- project :react-native-reanimated FAILED ++--- project :react-native-safe-area-context FAILED ++--- project :react-native-screens FAILED ++--- project :react-native-spinkit FAILED ++--- project :react-native-spring-scrollview FAILED ++--- project :react-native-svg FAILED ++--- project :react-native-vector-icons FAILED ++--- project :react-native-view-shot FAILED ++--- project :react-native-webview FAILED ++--- project :rn-minimizer FAILED ++--- project :react-native-code-push FAILED ++--- com.google.firebase:firebase-bom:33.4.0 +| +--- com.google.firebase:firebase-perf:21.0.1 (c) +| +--- com.google.firebase:firebase-common:21.0.0 (c) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| +--- com.google.firebase:firebase-config:22.0.0 (c) +| +--- com.google.firebase:firebase-installations:18.0.0 (c) +| \--- com.google.firebase:firebase-encoders:17.0.0 (c) ++--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 +| | \--- javax.inject:javax.inject:1 +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.1.1 +| | +--- com.google.android.gms:play-services-tasks:18.0.1 +| | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.1.0 +| | | +--- androidx.collection:collection:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 +| | | | | | | +--- androidx.arch.core:core-runtime:2.0.0 +| | | | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | | | \--- androidx.arch.core:core-common:2.0.0 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.0.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.0.0 (*) +| | | | | | | | +--- androidx.arch.core:core-common:2.0.0 (*) +| | | | | | | | \--- androidx.arch.core:core-runtime:2.0.0 (*) +| | | | | | | \--- androidx.arch.core:core-common:2.0.0 (*) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.customview:customview:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.2.0 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 +| +--- com.google.firebase:firebase-common:21.0.0 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.9.24 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 (*) +| | | | \--- org.jetbrains.kotlinx:atomicfu:0.17.3 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.9.24 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 (c) +| | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.0.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.8.22 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.24 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.24 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 +| | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- com.google.firebase:firebase-encoders:17.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.1.1 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 -> 18.1.0 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:17.1.1 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| \--- com.google.firebase:firebase-sessions:2.0.0 +| +--- com.google.firebase:firebase-installations-interop:17.1.1 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 ++--- com.facebook.react:react-android FAILED +\--- com.facebook.react:hermes-android FAILED + +intransitiveDependenciesMetadata +No dependencies + +kotlinBuildToolsApiClasspath +\--- org.jetbrains.kotlin:kotlin-build-tools-impl:1.9.24 + +--- org.jetbrains.kotlin:kotlin-build-tools-api:1.9.24 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 + | \--- org.jetbrains:annotations:13.0 + +--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.24 + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 (*) + | +--- org.jetbrains.kotlin:kotlin-script-runtime:1.9.24 + | +--- org.jetbrains.kotlin:kotlin-reflect:1.6.10 + | +--- org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.24 + | \--- org.jetbrains.intellij.deps:trove4j:1.0.20200330 + \--- org.jetbrains.kotlin:kotlin-compiler-runner:1.9.24 + +--- org.jetbrains.kotlin:kotlin-build-common:1.9.24 + +--- org.jetbrains.kotlin:kotlin-daemon-client:1.9.24 + +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0 + \--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.24 (*) + +kotlinCompilerClasspath +\--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.24 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 + | \--- org.jetbrains:annotations:13.0 + +--- org.jetbrains.kotlin:kotlin-script-runtime:1.9.24 + +--- org.jetbrains.kotlin:kotlin-reflect:1.6.10 + +--- org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.24 + \--- org.jetbrains.intellij.deps:trove4j:1.0.20200330 + +kotlinCompilerPluginClasspath +No dependencies + +kotlinCompilerPluginClasspathDebug - Kotlin compiler plugins for compilation +No dependencies + +kotlinCompilerPluginClasspathDebugAndroidTest - Kotlin compiler plugins for compilation +No dependencies + +kotlinCompilerPluginClasspathDebugUnitTest - Kotlin compiler plugins for compilation +No dependencies + +kotlinCompilerPluginClasspathRelease - Kotlin compiler plugins for compilation +No dependencies + +kotlinCompilerPluginClasspathReleaseUnitTest - Kotlin compiler plugins for compilation +No dependencies + +kotlinKlibCommonizerClasspath +\--- org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.24 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 + | \--- org.jetbrains:annotations:13.0 + \--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.24 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 (*) + +--- org.jetbrains.kotlin:kotlin-script-runtime:1.9.24 + +--- org.jetbrains.kotlin:kotlin-reflect:1.6.10 + +--- org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.24 + \--- org.jetbrains.intellij.deps:trove4j:1.0.20200330 + +kotlinNativeCompilerPluginClasspath +No dependencies + +lintChecks - Configuration to apply external lint check jar +No dependencies + +lintPublish - Configuration to publish external lint check jar +No dependencies + +releaseAnnotationProcessor - Classpath for the annotation processor for 'release'. (n) +No dependencies + +releaseAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: release +No dependencies + +releaseApi - API dependencies for 'release' sources. (n) +No dependencies + +releaseApiDependenciesMetadata +No dependencies + +releaseApiElements - API elements for release (n) +No dependencies + +releaseCompilationApi - API dependencies for /release (n) +No dependencies + +releaseCompilationCompileOnly - Compile only dependencies for /release. (n) +No dependencies + +releaseCompilationImplementation - Implementation only dependencies for /release. (n) +No dependencies + +releaseCompilationRuntimeOnly - Runtime only dependencies for /release. (n) +No dependencies + +releaseCompileClasspath - Compile classpath for /release. ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 +| +--- org.jetbrains:annotations:13.0 -> 23.0.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.0 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.24 (c) ++--- project :amplitude_analytics-react-native ++--- project :invertase_react-native-apple-authentication +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 +| +--- androidx.appcompat:appcompat:1.6.1 +| | +--- androidx.activity:activity:1.6.0 -> 1.7.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 +| | | | \--- androidx.annotation:annotation-jvm:1.7.1 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.13.1 +| | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | +--- androidx.annotation:annotation-experimental:1.4.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.arch.core:core-common:2.2.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 +| | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 +| | | | | | | | +--- org.jetbrains:annotations:23.0.0 +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c) +| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3 (c) +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 2.0.0 +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | +--- androidx.appcompat:appcompat-resources:1.6.1 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | \--- androidx.customview:customview:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | \--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | +--- androidx.fragment:fragment:1.3.6 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- androidx.arch.core:core-common:2.2.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.6.2 (*) +| | | +--- androidx.activity:activity:1.2.4 -> 1.7.2 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.1 (*) +| | | \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | \--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*) +| +--- androidx.appcompat:appcompat-resources:1.6.1 (*) +| +--- androidx.autofill:autofill:1.1.0 +| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- androidx.interpolator:interpolator:1.0.0 (*) +| +--- androidx.tracing:tracing:1.1.0 -> 1.2.0 +| +--- com.facebook.fbjni:fbjni:0.6.0 +| +--- com.facebook.fresco:fresco:3.2.0 +| | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:drawee:3.2.0 -> 3.4.0 +| | | +--- com.facebook.fresco:ui-core:3.4.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 +| | | \--- com.facebook.fresco:imagepipeline-base:3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:nativeimagefilters:3.2.0 +| | +--- com.facebook.fresco:nativeimagetranscoder:3.2.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.fresco:imagepipeline-okhttp3:3.2.0 +| | +--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 +| | | +--- com.squareup.okio:okio:2.8.0 -> 2.9.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.infer.annotation:infer-annotation:0.18.0 +| | +--- com.google.code.findbugs:jsr305:3.0.1 -> 3.0.2 +| | \--- org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 +| +--- com.facebook.soloader:soloader:0.11.0 +| | +--- com.facebook.soloader:annotation:0.11.0 +| | \--- com.facebook.soloader:nativeloader:0.11.0 +| +--- com.facebook.yoga:proguard-annotations:1.19.0 +| +--- com.google.code.findbugs:jsr305:3.0.2 +| +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.8.22 (*) +| +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| +--- com.squareup.okio:okio:2.9.0 (*) +| +--- javax.inject:javax.inject:1 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :notifee_react-native +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-async-storage_async-storage ++--- project :react-native-community_netinfo ++--- project :react-native-firebase_analytics +| +--- project :react-native-firebase_app +| | \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_app (*) ++--- project :react-native-firebase_app-check +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_crashlytics +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_messaging +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_perf +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-google-signin_google-signin ++--- project :sdcx_nested-scroll ++--- project :sdcx_pull-to-refresh ++--- project :sentry_react-native +| \--- io.sentry:sentry-android:7.15.0 +| +--- io.sentry:sentry-android-core:7.15.0 +| | \--- io.sentry:sentry:7.15.0 +| +--- io.sentry:sentry-android-ndk:7.15.0 +| | +--- io.sentry:sentry:7.15.0 +| | \--- io.sentry:sentry-android-core:7.15.0 (*) +| \--- io.sentry:sentry-android-replay:7.15.0 +| \--- io.sentry:sentry:7.15.0 ++--- project :shopify_flash-list ++--- project :walletconnect_react-native-compat ++--- project :expo +| +--- project :expo-modules-core +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | \--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) +| +--- project :expo-application +| +--- project :expo-asset +| +--- project :expo-barcode-scanner +| | \--- com.google.mlkit:barcode-scanning:17.1.0 -> 17.2.0 +| | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | \--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.0 +| | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 +| | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:3.3.0 +| | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | | | +--- javax.inject:javax.inject:1 +| | | | | +--- com.google.firebase:firebase-encoders:17.0.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders-proto:16.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.2.0 +| | | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 +| | | | \--- com.google.firebase:firebase-annotations:16.2.0 +| | | | \--- javax.inject:javax.inject:1 +| | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 +| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0 +| | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.7 +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | \--- com.google.mlkit:common:18.6.0 -> 18.9.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:common:18.9.0 (*) +| | | +--- com.google.mlkit:vision-common:17.3.0 (*) +| | | \--- com.google.mlkit:vision-interfaces:16.2.0 +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*) +| | +--- com.google.mlkit:common:18.9.0 (*) +| | \--- com.google.mlkit:vision-common:17.3.0 (*) +| +--- project :expo-battery +| | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.1 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | \--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| +--- project :expo-camera +| | +--- androidx.exifinterface:exifinterface:1.3.7 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | \--- com.google.android:cameraview:1.0.0 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 +| | | | \--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-media-compat:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-utils:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | \--- com.android.support:support-fragment:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-media-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 (*) +| | | \--- com.android.support:support-core-utils:25.3.1 (*) +| | \--- com.android.support:appcompat-v7:25.3.1 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 (*) +| | +--- com.android.support:support-vector-drawable:25.3.1 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | \--- com.android.support:support-compat:25.3.1 (*) +| | \--- com.android.support:animated-vector-drawable:25.3.1 +| | \--- com.android.support:support-vector-drawable:25.3.1 (*) +| +--- project :expo-clipboard +| +--- project :expo-constants +| | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| +--- project :expo-crypto +| +--- project :expo-device +| | +--- com.facebook.device.yearclass:yearclass:2.1.0 +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-file-system +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:1.4 -> 2.6 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-font +| +--- project :expo-image-loader +| | \--- com.github.bumptech.glide:glide:4.16.0 +| | +--- com.github.bumptech.glide:gifdecoder:4.16.0 +| | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | +--- com.github.bumptech.glide:disklrucache:4.16.0 +| | +--- com.github.bumptech.glide:annotations:4.16.0 +| | +--- androidx.fragment:fragment:1.3.6 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*) +| | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 +| | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 +| +--- project :expo-image-picker +| +--- project :expo-keep-awake +| +--- project :expo-local-authentication +| +--- project :expo-network +| +--- project :expo-notifications +| +--- project :expo-screen-capture +| +--- project :expo-screen-orientation +| +--- project :expo-secure-store +| | \--- androidx.biometric:biometric:1.1.0 -> 1.2.0-alpha04 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| +--- project :expo-splash-screen +| +--- project :expo-web-browser +| | \--- androidx.browser:browser:1.6.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :lottie-react-native ++--- project :react-native-background-timer ++--- project :react-native-config ++--- project :react-native-device-info ++--- project :react-native-fast-image ++--- project :react-native-fbsdk-next ++--- project :react-native-fs ++--- project :react-native-gesture-handler ++--- project :react-native-get-random-values ++--- project :react-native-linear-gradient ++--- project :react-native-localize ++--- project :react-native-pager-view +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-permissions ++--- project :react-native-randombytes ++--- project :react-native-reanimated ++--- project :react-native-safe-area-context ++--- project :react-native-screens +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-spinkit ++--- project :react-native-spring-scrollview +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-svg ++--- project :react-native-vector-icons ++--- project :react-native-view-shot ++--- project :react-native-webview ++--- project :rn-minimizer ++--- project :react-native-code-push ++--- com.google.firebase:firebase-bom:33.4.0 +| +--- com.google.firebase:firebase-perf:21.0.1 (c) +| +--- com.google.firebase:firebase-common:21.0.0 (c) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| +--- com.google.firebase:firebase-config:22.0.0 (c) +| +--- com.google.firebase:firebase-installations:18.0.0 (c) +| \--- com.google.firebase:firebase-encoders:17.0.0 (c) ++--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 -> 3.21.11 +| +--- com.google.firebase:firebase-common:21.0.0 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.7.3 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 +| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:17.1.1 -> 17.2.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| \--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.5 +| +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 ++--- com.facebook.react:react-android -> 0.75.4 (*) ++--- com.facebook.react:hermes-android -> 0.75.4 ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.facebook.react:react-android:{strictly 0.75.4} -> 0.75.4 (c) ++--- com.google.firebase:firebase-bom:{strictly 33.4.0} -> 33.4.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 21.0.1} -> 21.0.1 (c) ++--- com.facebook.react:hermes-android:{strictly 0.75.4} -> 0.75.4 (c) ++--- com.facebook.fresco:animated-gif:{strictly 3.4.0} -> 3.4.0 (c) ++--- org.jetbrains:annotations:{strictly 23.0.0} -> 23.0.0 (c) ++--- io.sentry:sentry-android:{strictly 7.15.0} -> 7.15.0 (c) ++--- com.google.firebase:firebase-annotations:{strictly 16.2.0} -> 16.2.0 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 17.2.0} -> 17.2.0 (c) ++--- com.google.firebase:protolite-well-known-types:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 21.0.0} -> 21.0.0 (c) ++--- com.google.firebase:firebase-common-ktx:{strictly 21.0.0} -> 21.0.0 (c) ++--- com.google.firebase:firebase-components:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 22.0.0} -> 22.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-sessions:{strictly 2.0.5} -> 2.0.5 (c) ++--- androidx.appcompat:appcompat:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.autofill:autofill:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.tracing:tracing:{strictly 1.2.0} -> 1.2.0 (c) ++--- com.facebook.fbjni:fbjni:{strictly 0.6.0} -> 0.6.0 (c) ++--- com.facebook.fresco:fresco:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:middleware:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-okhttp3:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:ui-common:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.infer.annotation:infer-annotation:{strictly 0.18.0} -> 0.18.0 (c) ++--- com.facebook.soloader:soloader:{strictly 0.11.0} -> 0.11.0 (c) ++--- com.facebook.yoga:proguard-annotations:{strictly 1.19.0} -> 1.19.0 (c) ++--- com.google.code.findbugs:jsr305:{strictly 3.0.2} -> 3.0.2 (c) ++--- com.squareup.okhttp3:okhttp-urlconnection:{strictly 4.9.2} -> 4.9.2 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 4.9.2} -> 4.9.2 (c) ++--- com.squareup.okio:okio:{strictly 2.9.0} -> 2.9.0 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- io.sentry:sentry-android-core:{strictly 7.15.0} -> 7.15.0 (c) ++--- io.sentry:sentry-android-ndk:{strictly 7.15.0} -> 7.15.0 (c) ++--- io.sentry:sentry-android-replay:{strictly 7.15.0} -> 7.15.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.7.3} -> 1.7.3 (c) ++--- androidx.core:core-ktx:{strictly 1.13.1} -> 1.13.1 (c) ++--- com.google.mlkit:barcode-scanning:{strictly 17.2.0} -> 17.2.0 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.exifinterface:exifinterface:{strictly 1.3.7} -> 1.3.7 (c) ++--- com.google.android:cameraview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.annotation:annotation:{strictly 1.7.1} -> 1.7.1 (c) ++--- com.facebook.device.yearclass:yearclass:{strictly 2.1.0} -> 2.1.0 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.6} -> 2.6 (c) ++--- com.github.bumptech.glide:glide:{strictly 4.16.0} -> 4.16.0 (c) ++--- androidx.biometric:biometric:{strictly 1.2.0-alpha04} -> 1.2.0-alpha04 (c) ++--- androidx.browser:browser:{strictly 1.6.0} -> 1.6.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.8.22} -> 1.8.22 (c) ++--- com.google.firebase:firebase-config-interop:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.firebase:firebase-abt:{strictly 21.1.1} -> 21.1.1 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 20.0.1} -> 20.0.1 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 18.2.0} -> 18.2.0 (c) ++--- com.google.protobuf:protobuf-javalite:{strictly 3.21.11} -> 3.21.11 (c) ++--- com.google.firebase:firebase-encoders:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-encoders-json:{strictly 18.0.1} -> 18.0.1 (c) ++--- androidx.activity:activity:{strictly 1.7.2} -> 1.7.2 (c) ++--- androidx.core:core:{strictly 1.13.1} -> 1.13.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.fragment:fragment:{strictly 1.3.6} -> 1.3.6 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.facebook.fresco:fbcore:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:drawee:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-native:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-ashmem:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-native:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-java:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:nativeimagefilters:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:nativeimagetranscoder:{strictly 3.2.0} -> 3.2.0 (c) ++--- org.jetbrains.kotlin:kotlin-annotations-jvm:{strictly 1.3.72} -> 1.3.72 (c) ++--- com.facebook.soloader:annotation:{strictly 0.11.0} -> 0.11.0 (c) ++--- com.facebook.soloader:nativeloader:{strictly 0.11.0} -> 0.11.0 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- io.sentry:sentry:{strictly 7.15.0} -> 7.15.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.7.3} -> 1.7.3 (c) ++--- com.google.android.gms:play-services-basement:{strictly 18.4.0} -> 18.4.0 (c) ++--- com.google.android.gms:play-services-mlkit-barcode-scanning:{strictly 18.3.0} -> 18.3.0 (c) ++--- com.google.mlkit:barcode-scanning-common:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.mlkit:common:{strictly 18.9.0} -> 18.9.0 (c) ++--- com.google.mlkit:vision-common:{strictly 17.3.0} -> 17.3.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.android.support:support-annotations:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-v4:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:appcompat-v7:{strictly 25.3.1} -> 25.3.1 (c) ++--- androidx.annotation:annotation-jvm:{strictly 1.7.1} -> 1.7.1 (c) ++--- com.github.bumptech.glide:gifdecoder:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.github.bumptech.glide:disklrucache:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.github.bumptech.glide:annotations:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.9.24} -> 1.9.24 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.4.0} -> 1.4.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.customview:customview:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.6.2} -> 2.6.2 (c) ++--- com.facebook.fresco:ui-core:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-base:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.google.android.datatransport:transport-api:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.datatransport:transport-backend-cct:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.google.android.datatransport:transport-runtime:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 18.5.0} -> 18.5.0 (c) ++--- com.google.android.odml:image:{strictly 1.0.0-beta1} -> 1.0.0-beta1 (c) ++--- com.google.mlkit:vision-interfaces:{strictly 16.2.0} -> 16.2.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.android.support:support-compat:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-media-compat:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-core-utils:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-core-ui:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-fragment:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-vector-drawable:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:animated-vector-drawable:{strictly 25.3.1} -> 25.3.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.6.2} -> 2.6.2 (c) ++--- com.google.firebase:firebase-encoders-proto:{strictly 16.0.0} -> 16.0.0 (c) +\--- androidx.arch.core:core-runtime:{strictly 2.2.0} -> 2.2.0 (c) + +releaseCompileOnly - Compile only dependencies for 'release' sources. (n) +No dependencies + +releaseCompileOnlyApi - Compile only API dependencies for 'release' sources. (n) +No dependencies + +releaseCompileOnlyDependenciesMetadata +No dependencies + +releaseImplementation - Implementation only dependencies for 'release' sources. (n) +No dependencies + +releaseImplementationDependenciesMetadata +No dependencies + +releaseIntransitiveDependenciesMetadata +No dependencies + +releaseReverseMetadataValues - Metadata Values dependencies for the base Split +No dependencies + +releaseRuntimeClasspath - Runtime classpath of /release. ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 +| +--- org.jetbrains:annotations:13.0 -> 23.0.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.0 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.24 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (c) ++--- project :amplitude_analytics-react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 +| | +--- androidx.appcompat:appcompat:1.6.1 +| | | +--- androidx.activity:activity:1.6.0 -> 1.7.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 +| | | | | \--- androidx.annotation:annotation-jvm:1.7.1 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.8.0 -> 1.13.1 +| | | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-common:2.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | \--- androidx.arch.core:core-common:2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 +| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 +| | | | | | | | | +--- org.jetbrains:annotations:23.0.0 +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c) +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c) +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c) +| | | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 2.0.0 +| | | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | | | | +--- androidx.startup:startup-runtime:1.1.1 +| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 +| | | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | | | | \--- androidx.tracing:tracing-ktx:1.2.0 (c) +| | | | | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | \--- androidx.core:core-ktx:1.13.1 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | \--- androidx.core:core:1.13.1 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | | +--- androidx.savedstate:savedstate:1.2.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.1 -> 2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | \--- androidx.savedstate:savedstate-ktx:1.2.1 (c) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | +--- androidx.profileinstaller:profileinstaller:1.3.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | +--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | \--- androidx.activity:activity-ktx:1.7.2 (c) +| | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | +--- androidx.appcompat:appcompat-resources:1.6.1 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | | \--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | \--- androidx.collection:collection:1.1.0 (*) +| | | | \--- androidx.appcompat:appcompat:1.6.1 (c) +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.emoji2:emoji2:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | | | | +--- androidx.startup:startup-runtime:1.1.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.emoji2:emoji2-views-helper:1.2.0 +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.emoji2:emoji2:1.2.0 (*) +| | | +--- androidx.fragment:fragment:1.3.6 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.loader:loader:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.6.2 (*) +| | | | +--- androidx.activity:activity:1.2.4 -> 1.7.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.1 (*) +| | | | \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.6.2 (*) +| | | +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | \--- androidx.appcompat:appcompat-resources:1.6.1 (c) +| | +--- androidx.appcompat:appcompat-resources:1.6.1 (*) +| | +--- androidx.autofill:autofill:1.1.0 +| | | \--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | +--- androidx.tracing:tracing:1.1.0 -> 1.2.0 (*) +| | +--- com.facebook.fbjni:fbjni:0.6.0 +| | | \--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | +--- com.facebook.fresco:fresco:3.2.0 +| | | +--- com.facebook.fresco:soloader:3.2.0 +| | | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 +| | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | \--- com.facebook.soloader:soloader:0.10.5 -> 0.11.0 +| | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | \--- com.facebook.soloader:nativeloader:0.11.0 +| | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-common:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:drawee:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline:3.4.0 +| | | | | +--- com.facebook.soloader:nativeloader:0.11.0 +| | | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | +--- com.facebook.fresco:urimod:3.4.0 +| | | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | | +--- com.facebook.fresco:ui-core:3.4.0 +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | +--- com.facebook.fresco:vito-source:3.4.0 +| | | | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline-base:3.4.0 +| | | | | +--- com.facebook.infer.annotation:infer-annotation:0.18.0 +| | | | | | +--- com.google.code.findbugs:jsr305:3.0.1 -> 3.0.2 +| | | | | | \--- org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 +| | | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline-native:3.4.0 +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | \--- com.facebook.soloader:soloader:0.11.0 (*) +| | | | +--- com.facebook.fresco:memory-type-ashmem:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-native:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| | | | | \--- com.facebook.soloader:nativeloader:0.11.0 +| | | | +--- com.facebook.fresco:memory-type-java:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-common:3.4.0 (*) +| | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-core:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:nativeimagefilters:3.2.0 +| | | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | \--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:nativeimagetranscoder:3.2.0 +| | | | +--- com.facebook.fresco:imagepipeline-base:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | \--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 (*) +| | +--- com.facebook.fresco:imagepipeline-okhttp3:3.2.0 +| | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 (*) +| | | +--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 +| | | | +--- com.squareup.okio:okio:2.8.0 -> 2.9.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 (*) +| | +--- com.facebook.infer.annotation:infer-annotation:0.18.0 (*) +| | +--- com.facebook.soloader:soloader:0.11.0 (*) +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | +--- com.google.code.findbugs:jsr305:3.0.2 +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 +| | | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.8.22 (*) +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | +--- javax.inject:javax.inject:1 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :invertase_react-native-apple-authentication +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| +--- androidx.core:core-ktx:1.3.0 -> 1.13.1 (*) +| \--- androidx.fragment:fragment:1.3.2 -> 1.3.6 (*) ++--- project :notifee_react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- app.notifee:core:+ -> 202108261754 +| +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 +| | \--- com.google.android.gms:play-services-basement:18.4.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| +--- androidx.work:work-runtime:2.7.1 +| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.6.2 (*) +| | +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- androidx.room:room-runtime:2.2.5 +| | | +--- androidx.room:room-common:2.2.5 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.sqlite:sqlite-framework:2.0.1 -> 2.1.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | \--- androidx.sqlite:sqlite:2.1.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.sqlite:sqlite:2.0.1 -> 2.1.0 (*) +| | | \--- androidx.arch.core:core-runtime:2.0.1 -> 2.2.0 (*) +| | +--- androidx.sqlite:sqlite:2.1.0 (*) +| | +--- androidx.sqlite:sqlite-framework:2.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- androidx.lifecycle:lifecycle-service:2.1.0 -> 2.6.2 +| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| +--- org.greenrobot:eventbus:3.2.0 +| \--- com.squareup.okhttp3:okhttp:3.12.13 -> 4.9.2 (*) ++--- project :react-native-async-storage_async-storage +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-community_netinfo +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_analytics +| +--- project :react-native-firebase_app +| | +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| | +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 +| | | +--- com.google.firebase:firebase-perf:21.0.1 (c) +| | | +--- com.google.firebase:firebase-analytics:22.1.2 (c) +| | | +--- com.google.firebase:firebase-common:21.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck-playintegrity:18.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck-debug:18.0.0 (c) +| | | +--- com.google.firebase:firebase-crashlytics:19.2.0 (c) +| | | +--- com.google.firebase:firebase-crashlytics-ndk:19.2.0 (c) +| | | +--- com.google.firebase:firebase-messaging:24.0.2 (c) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| | | +--- com.google.firebase:firebase-config:22.0.0 (c) +| | | +--- com.google.firebase:firebase-installations:18.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck:18.0.0 (c) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (c) +| | +--- com.google.firebase:firebase-common -> 21.0.0 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.7.3 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 +| | | | +--- com.google.firebase:firebase-annotations:16.2.0 +| | | | | \--- javax.inject:javax.inject:1 +| | | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | | \--- com.google.errorprone:error_prone_annotations:2.26.0 +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | \--- com.google.android.gms:play-services-auth:20.7.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | +--- androidx.loader:loader:1.0.0 (*) +| | +--- com.google.android.gms:play-services-auth-api-phone:18.0.1 +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- com.google.android.gms:play-services-auth-base:18.0.4 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.2.0 -> 18.4.0 (*) +| | +--- com.google.android.gms:play-services-fido:20.0.1 +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-analytics -> 22.1.2 +| +--- com.google.android.gms:play-services-measurement:22.1.2 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 +| | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:22.1.2 +| | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:22.1.2 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 +| | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.7.3 (*) +| | | | \--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 (c) +| | | +--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (*) +| | | | +--- com.google.guava:guava:31.1-android +| | | | | +--- com.google.guava:failureaccess:1.0.1 +| | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | | | | +--- com.google.code.findbugs:jsr305:3.0.2 +| | | | | +--- org.checkerframework:checker-qual:3.12.0 +| | | | | +--- com.google.errorprone:error_prone_annotations:2.11.0 -> 2.26.0 +| | | | | \--- com.google.j2objc:j2objc-annotations:1.3 +| | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.7.3 (*) +| | | | \--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (c) +| | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | | +--- com.google.android.gms:play-services-stats:17.0.2 +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | | \--- com.google.guava:guava:31.1-android (*) +| | \--- com.google.android.gms:play-services-stats:17.0.2 (*) +| +--- com.google.android.gms:play-services-measurement-api:22.1.2 +| | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:22.1.2 +| | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | +--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.0.1 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- com.google.firebase:firebase-installations-interop:17.1.1 -> 17.2.0 +| | | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.0.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:19.0.0 -> 20.0.1 +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*) +| | +--- com.google.guava:guava:31.1-android (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:22.1.2 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| \--- com.google.android.gms:play-services-measurement-impl:22.1.2 (*) ++--- project :react-native-firebase_app (*) ++--- project :react-native-firebase_app-check +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| +--- com.google.firebase:firebase-appcheck-playintegrity -> 18.0.0 +| | +--- com.google.firebase:firebase-appcheck:18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-appcheck-interop:17.1.0 +| | | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.android.play:integrity:1.2.0 +| | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| \--- com.google.firebase:firebase-appcheck-debug -> 18.0.0 +| +--- com.google.firebase:firebase-appcheck:18.0.0 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) ++--- project :react-native-firebase_crashlytics +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| +--- com.google.firebase:firebase-crashlytics -> 19.2.0 +| | +--- com.google.firebase:firebase-sessions:2.0.5 +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-encoders:17.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- com.google.firebase:firebase-installations:18.0.0 (*) +| | | +--- com.google.firebase:firebase-datatransport:19.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-api:3.1.0 -> 3.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:3.2.0 -> 3.3.0 +| | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:3.3.0 +| | | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | | | | +--- javax.inject:javax.inject:1 +| | | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | | \--- com.google.firebase:firebase-encoders-proto:16.0.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*) +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:3.2.0 -> 3.3.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- androidx.datastore:datastore-preferences:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | +--- androidx.datastore:datastore:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.7.3 (*) +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | \--- androidx.datastore:datastore-core:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.7.3 (*) +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- androidx.datastore:datastore-preferences-core:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | \--- androidx.datastore:datastore-core:1.0.0 (*) +| | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | +--- com.google.firebase:firebase-installations:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:20.0.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | +--- com.google.android.datatransport:transport-backend-cct:3.3.0 (*) +| | +--- com.google.android.datatransport:transport-runtime:3.3.0 (*) +| | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| \--- com.google.firebase:firebase-crashlytics-ndk -> 19.2.0 +| +--- com.google.firebase:firebase-crashlytics:19.2.0 (*) +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) ++--- project :react-native-firebase_messaging +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-messaging -> 24.0.2 +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-datatransport:18.2.0 -> 19.0.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*) +| +--- com.google.firebase:firebase-encoders-proto:16.0.0 (*) +| +--- com.google.firebase:firebase-iid-interop:17.1.0 +| | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.2.0 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| +--- com.google.firebase:firebase-measurement-connector:19.0.0 -> 20.0.1 (*) +| +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| +--- com.google.android.datatransport:transport-api:3.1.0 -> 3.2.0 (*) +| +--- com.google.android.datatransport:transport-backend-cct:3.1.8 -> 3.3.0 (*) +| +--- com.google.android.datatransport:transport-runtime:3.1.8 -> 3.3.0 (*) +| +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| +--- com.google.android.gms:play-services-cloud-messaging:17.2.0 +| | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| +--- com.google.android.gms:play-services-stats:17.0.2 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.errorprone:error_prone_annotations:2.9.0 -> 2.26.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) ++--- project :react-native-firebase_perf +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 -> 3.21.11 +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| +--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.5 (*) +| +--- com.google.firebase:firebase-datatransport:18.1.8 -> 19.0.0 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.lifecycle:lifecycle-process:2.3.1 -> 2.6.2 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.protobuf:protobuf-javalite:3.21.11 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- com.google.android.datatransport:transport-api:3.0.0 -> 3.2.0 (*) +| +--- com.google.dagger:dagger:2.27 +| | \--- javax.inject:javax.inject:1 +| \--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 (*) ++--- project :react-native-google-signin_google-signin +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.google.android.gms:play-services-auth:19.2.0 -> 20.7.0 (*) ++--- project :sdcx_nested-scroll +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :sdcx_pull-to-refresh +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*) +| \--- io.github.scwang90:refresh-layout-kernel:3.0.0-alpha ++--- project :sentry_react-native +| +--- io.sentry:sentry-android:7.15.0 +| | +--- io.sentry:sentry-android-core:7.15.0 +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | | \--- io.sentry:sentry:7.15.0 +| | +--- io.sentry:sentry-android-ndk:7.15.0 +| | | +--- io.sentry:sentry:7.15.0 +| | | \--- io.sentry:sentry-android-core:7.15.0 (*) +| | \--- io.sentry:sentry-android-replay:7.15.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (*) +| | \--- io.sentry:sentry:7.15.0 +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :shopify_flash-list +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) ++--- project :walletconnect_react-native-compat +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :expo +| +--- project :expo-modules-core +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- org.jetbrains.kotlin:kotlin-reflect:1.9.24 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.7.1 (*) +| | +--- androidx.tracing:tracing-ktx:1.2.0 +| | | +--- androidx.tracing:tracing:1.2.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | \--- androidx.tracing:tracing:1.2.0 (c) +| | \--- com.facebook.react:react-android -> 0.75.4 (*) +| +--- project :expo-application +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- com.android.installreferrer:installreferrer:2.2 +| +--- project :expo-asset +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-barcode-scanner +| | +--- com.google.mlkit:barcode-scanning:17.1.0 -> 17.2.0 +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.0 +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 +| | | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0 +| | | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.7 +| | | | | | \--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | | \--- com.google.mlkit:common:18.6.0 -> 18.9.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | +--- com.google.mlkit:common:18.9.0 (*) +| | | | +--- com.google.mlkit:vision-common:17.3.0 (*) +| | | | \--- com.google.mlkit:vision-interfaces:16.2.0 +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*) +| | | +--- com.google.mlkit:common:18.9.0 (*) +| | | \--- com.google.mlkit:vision-common:17.3.0 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.7.3 (*) +| +--- project :expo-battery +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | \--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-camera +| | +--- androidx.exifinterface:exifinterface:1.3.7 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- com.google.android:cameraview:1.0.0 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-v4:25.3.1 +| | | | +--- com.android.support:support-compat:25.3.1 +| | | | | \--- com.android.support:support-annotations:25.3.1 +| | | | +--- com.android.support:support-media-compat:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-utils:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-ui:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | \--- com.android.support:support-fragment:25.3.1 +| | | | +--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-media-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-ui:25.3.1 (*) +| | | | \--- com.android.support:support-core-utils:25.3.1 (*) +| | | \--- com.android.support:appcompat-v7:25.3.1 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-v4:25.3.1 (*) +| | | +--- com.android.support:support-vector-drawable:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | \--- com.android.support:animated-vector-drawable:25.3.1 +| | | \--- com.android.support:support-vector-drawable:25.3.1 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.camera:camera-core:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures-ktx:1.1.0 +| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.4 -> 1.7.3 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.2 -> 1.3.7 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-camera2:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures-ktx:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-video:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-view:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 (*) +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (*) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-extensions:1.4.0-beta02 +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- com.google.mlkit:barcode-scanning:17.2.0 (*) +| | \--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | +--- androidx.camera:camera-view:1.4.0-beta02 (*) +| | +--- com.google.mlkit:vision-interfaces:16.0.0 -> 16.2.0 (*) +| | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| +--- project :expo-clipboard +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.core:core-ktx:1.6.0 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2 -> 1.7.3 (*) +| +--- project :expo-constants +| | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- commons-io:commons-io:2.6 +| +--- project :expo-crypto +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-device +| | +--- com.facebook.device.yearclass:yearclass:2.1.0 +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-file-system +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:1.4 -> 2.6 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-font +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-image-loader +| | +--- com.github.bumptech.glide:glide:4.16.0 +| | | +--- com.github.bumptech.glide:gifdecoder:4.16.0 +| | | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | +--- com.github.bumptech.glide:disklrucache:4.16.0 +| | | +--- com.github.bumptech.glide:annotations:4.16.0 +| | | +--- androidx.fragment:fragment:1.3.6 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 (*) +| | | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-image-picker +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.activity:activity-ktx:1.7.2 +| | | +--- androidx.activity:activity:1.7.2 (*) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.6.2 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.1 +| | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | \--- androidx.savedstate:savedstate:1.2.1 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | \--- androidx.activity:activity:1.7.2 (c) +| | +--- androidx.appcompat:appcompat:1.6.1 (*) +| | +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.7 (*) +| | +--- com.github.CanHub:Android-Image-Cropper:4.3.1 +| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.7.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.7.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 -> 2.0.0 (*) +| | | +--- androidx.databinding:viewbinding:7.2.1 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0 -> 1.8.22 (*) +| | | +--- androidx.appcompat:appcompat:1.4.2 -> 1.6.1 (*) +| | | +--- androidx.activity:activity-ktx:1.4.0 -> 1.7.2 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.7 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3 -> 1.7.3 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3 -> 1.7.3 (*) +| +--- project :expo-keep-awake +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-local-authentication +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.biometric:biometric:1.2.0-alpha04 +| | +--- androidx.activity:activity:1.1.0 -> 1.7.2 (*) +| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| +--- project :expo-network +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-notifications +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | +--- com.google.firebase:firebase-messaging:24.0.1 -> 24.0.2 (*) +| | \--- me.leolin:ShortcutBadger:1.1.22 +| +--- project :expo-screen-capture +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- project :expo-screen-orientation +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-secure-store +| | +--- androidx.biometric:biometric:1.1.0 -> 1.2.0-alpha04 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-splash-screen +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- com.facebook.react:react-android -> 0.75.4 (*) +| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-reflect:1.9.24 (*) +| +--- project :expo-web-browser +| | +--- androidx.browser:browser:1.6.0 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.core:core-ktx:1.7.0 -> 1.13.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- com.facebook.react:react-android -> 0.75.4 (*) ++--- project :lottie-react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.airbnb.android:lottie:5.1.1 +| +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*) +| \--- com.squareup.okio:okio:1.17.4 -> 2.9.0 (*) ++--- project :react-native-background-timer +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-config +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-device-info +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.android.installreferrer:installreferrer:1.1.2 -> 2.2 +| \--- com.google.android.gms:play-services-iid:17.0.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| +--- com.google.android.gms:play-services-base:17.0.0 -> 18.5.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.4.0 (*) +| +--- com.google.android.gms:play-services-stats:17.0.0 -> 17.0.2 (*) +| \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.2.0 (*) ++--- project :react-native-fast-image +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*) +| \--- com.github.bumptech.glide:okhttp3-integration:4.12.0 +| +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*) +| +--- com.squareup.okhttp3:okhttp:3.9.1 -> 4.9.2 (*) +| \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) ++--- project :react-native-fbsdk-next +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.facebook.android:facebook-android-sdk:16.+ -> 16.3.0 +| +--- com.facebook.android:facebook-core:16.3.0 +| | +--- com.facebook.android:facebook-bolts:16.3.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.android.installreferrer:installreferrer:1.0 -> 2.2 +| | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-common:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.browser:browser:1.0.0 -> 1.6.0 (*) +| | +--- androidx.activity:activity:1.2.0 -> 1.7.2 (*) +| | +--- androidx.fragment:fragment:1.3.0 -> 1.3.6 (*) +| | +--- com.google.zxing:core:3.3.3 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-login:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-share:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| | \--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| +--- com.facebook.android:facebook-applinks:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| +--- com.facebook.android:facebook-messenger:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| +--- com.facebook.android:facebook-gamingservices:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- com.facebook.android:facebook-share:16.3.0 (*) +| | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | \--- com.google.code.gson:gson:2.8.8 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) ++--- project :react-native-fs +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-gesture-handler +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- project :react-native-reanimated +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | +--- androidx.transition:transition:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.1 -> 1.13.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- com.facebook.react:react-android -> 0.75.4 (*) +| | \--- com.facebook.react:hermes-android -> 0.75.4 +| | +--- com.facebook.fbjni:fbjni:0.6.0 (*) +| | +--- com.facebook.soloader:soloader:0.11.0 (*) +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | \--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- androidx.core:core-ktx:1.6.0 -> 1.13.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-get-random-values +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-linear-gradient +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-localize +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-pager-view +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- androidx.viewpager2:viewpager2:1.0.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| \--- androidx.collection:collection:1.1.0 (*) ++--- project :react-native-permissions +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-randombytes +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-reanimated (*) ++--- project :react-native-safe-area-context +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-screens +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- androidx.appcompat:appcompat:1.4.2 -> 1.6.1 (*) +| +--- androidx.fragment:fragment:1.3.6 (*) +| +--- androidx.coordinatorlayout:coordinatorlayout:1.2.0 (*) +| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 (*) +| +--- com.google.android.material:material:1.6.1 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 -> 1.2.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:2.0.1 +| | | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | | +--- androidx.core:core:1.3.1 -> 1.13.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.1 +| | +--- androidx.core:core:1.5.0 -> 1.13.1 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*) +| | +--- androidx.dynamicanimation:dynamicanimation:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | +--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.2 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 (*) +| +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.6.2 (c) ++--- project :react-native-spinkit +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.github.ybq:Android-SpinKit:1.4.0 ++--- project :react-native-spring-scrollview +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-svg +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-vector-icons +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-view-shot +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-webview +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- androidx.webkit:webkit:1.4.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| \--- androidx.core:core:1.1.0 -> 1.13.1 (*) ++--- project :rn-minimizer +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-code-push +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.nimbusds:nimbus-jose-jwt:9.37.3 +| \--- com.github.stephenc.jcip:jcip-annotations:1.0-1 ++--- com.google.firebase:firebase-bom:33.4.0 (*) ++--- com.google.firebase:firebase-perf -> 21.0.1 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 +| +--- com.parse.bolts:bolts-tasks:1.4.0 +| +--- com.facebook.soloader:nativeloader:0.11.0 +| +--- com.facebook.fresco:fbcore:3.4.0 (*) +| \--- com.facebook.fresco:animated-base:3.4.0 +| +--- com.parse.bolts:bolts-tasks:1.4.0 +| +--- com.facebook.fresco:vito-options:3.4.0 +| | +--- com.facebook.fresco:drawee:3.4.0 (*) +| | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.fresco:middleware:3.4.0 (*) +| +--- com.facebook.fresco:fbcore:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline-base:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-ashmem:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-native:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-java:3.4.0 (*) +| +--- com.facebook.fresco:animated-drawable:3.4.0 +| | +--- com.facebook.fresco:imagepipeline-base:3.4.0 (*) +| | +--- com.facebook.fresco:drawee:3.4.0 (*) +| | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | +--- com.facebook.fresco:vito-renderer:3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:vito-options:3.4.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) ++--- com.facebook.react:react-android -> 0.75.4 (*) +\--- com.facebook.react:hermes-android -> 0.75.4 (*) + +releaseRuntimeElements - Runtime elements for release (n) +No dependencies + +releaseRuntimeOnly - Runtime only dependencies for 'release' sources. (n) +No dependencies + +releaseUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: releaseUnitTest +No dependencies + +releaseUnitTestApi (n) +No dependencies + +releaseUnitTestApiDependenciesMetadata +No dependencies + +releaseUnitTestCompilationApi - API dependencies for /releaseUnitTest (n) +No dependencies + +releaseUnitTestCompilationCompileOnly - Compile only dependencies for /releaseUnitTest. (n) +No dependencies + +releaseUnitTestCompilationImplementation - Implementation only dependencies for /releaseUnitTest. (n) +No dependencies + +releaseUnitTestCompilationRuntimeOnly - Runtime only dependencies for /releaseUnitTest. (n) +No dependencies + +releaseUnitTestCompileClasspath - Compile classpath for /releaseUnitTest. ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 +| +--- org.jetbrains:annotations:13.0 -> 23.0.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.0 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.24 (c) ++--- project :amplitude_analytics-react-native ++--- project :invertase_react-native-apple-authentication +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 +| +--- androidx.appcompat:appcompat:1.6.1 +| | +--- androidx.activity:activity:1.6.0 -> 1.7.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 +| | | | \--- androidx.annotation:annotation-jvm:1.7.1 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.13.1 +| | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | +--- androidx.annotation:annotation-experimental:1.4.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.arch.core:core-common:2.2.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 +| | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 +| | | | | | | | +--- org.jetbrains:annotations:23.0.0 +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c) +| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3 (c) +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 2.0.0 +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 +| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | +--- androidx.appcompat:appcompat-resources:1.6.1 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | \--- androidx.customview:customview:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | \--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | +--- androidx.fragment:fragment:1.3.6 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- androidx.arch.core:core-common:2.2.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.6.2 (*) +| | | +--- androidx.activity:activity:1.2.4 -> 1.7.2 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.6.2 (*) +| | | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.1 (*) +| | | \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | \--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*) +| +--- androidx.appcompat:appcompat-resources:1.6.1 (*) +| +--- androidx.autofill:autofill:1.1.0 +| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- androidx.interpolator:interpolator:1.0.0 (*) +| +--- androidx.tracing:tracing:1.1.0 -> 1.2.0 +| +--- com.facebook.fbjni:fbjni:0.6.0 +| +--- com.facebook.fresco:fresco:3.2.0 +| | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:drawee:3.2.0 -> 3.4.0 +| | | +--- com.facebook.fresco:ui-core:3.4.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 +| | | \--- com.facebook.fresco:imagepipeline-base:3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 +| | +--- com.facebook.fresco:nativeimagefilters:3.2.0 +| | +--- com.facebook.fresco:nativeimagetranscoder:3.2.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.fresco:imagepipeline-okhttp3:3.2.0 +| | +--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 +| | | +--- com.squareup.okio:okio:2.8.0 -> 2.9.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.infer.annotation:infer-annotation:0.18.0 +| | +--- com.google.code.findbugs:jsr305:3.0.1 -> 3.0.2 +| | \--- org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 +| +--- com.facebook.soloader:soloader:0.11.0 +| | +--- com.facebook.soloader:annotation:0.11.0 +| | \--- com.facebook.soloader:nativeloader:0.11.0 +| +--- com.facebook.yoga:proguard-annotations:1.19.0 +| +--- com.google.code.findbugs:jsr305:3.0.2 +| +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.8.22 (*) +| +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| +--- com.squareup.okio:okio:2.9.0 (*) +| +--- javax.inject:javax.inject:1 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :notifee_react-native +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-async-storage_async-storage ++--- project :react-native-community_netinfo ++--- project :react-native-firebase_analytics +| +--- project :react-native-firebase_app +| | \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_app (*) ++--- project :react-native-firebase_app-check +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_crashlytics +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_messaging +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_perf +| +--- project :react-native-firebase_app (*) +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-google-signin_google-signin ++--- project :sdcx_nested-scroll ++--- project :sdcx_pull-to-refresh ++--- project :sentry_react-native +| \--- io.sentry:sentry-android:7.15.0 +| +--- io.sentry:sentry-android-core:7.15.0 +| | \--- io.sentry:sentry:7.15.0 +| +--- io.sentry:sentry-android-ndk:7.15.0 +| | +--- io.sentry:sentry:7.15.0 +| | \--- io.sentry:sentry-android-core:7.15.0 (*) +| \--- io.sentry:sentry-android-replay:7.15.0 +| \--- io.sentry:sentry:7.15.0 ++--- project :shopify_flash-list ++--- project :walletconnect_react-native-compat ++--- project :expo +| +--- project :expo-modules-core +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | \--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) +| +--- project :expo-application +| +--- project :expo-asset +| +--- project :expo-barcode-scanner +| | \--- com.google.mlkit:barcode-scanning:17.1.0 -> 17.2.0 +| | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | \--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.0 +| | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 +| | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:3.3.0 +| | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | | | +--- javax.inject:javax.inject:1 +| | | | | +--- com.google.firebase:firebase-encoders:17.0.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders-proto:16.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.2.0 +| | | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 +| | | | \--- com.google.firebase:firebase-annotations:16.2.0 +| | | | \--- javax.inject:javax.inject:1 +| | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 +| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0 +| | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.7 +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | \--- com.google.mlkit:common:18.6.0 -> 18.9.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | +--- com.google.mlkit:common:18.9.0 (*) +| | | +--- com.google.mlkit:vision-common:17.3.0 (*) +| | | \--- com.google.mlkit:vision-interfaces:16.2.0 +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*) +| | +--- com.google.mlkit:common:18.9.0 (*) +| | \--- com.google.mlkit:vision-common:17.3.0 (*) +| +--- project :expo-battery +| | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.1 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | \--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| +--- project :expo-camera +| | +--- androidx.exifinterface:exifinterface:1.3.7 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | \--- com.google.android:cameraview:1.0.0 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 +| | | | \--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-media-compat:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-utils:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | \--- com.android.support:support-fragment:25.3.1 +| | | +--- com.android.support:support-compat:25.3.1 (*) +| | | +--- com.android.support:support-media-compat:25.3.1 (*) +| | | +--- com.android.support:support-core-ui:25.3.1 (*) +| | | \--- com.android.support:support-core-utils:25.3.1 (*) +| | \--- com.android.support:appcompat-v7:25.3.1 +| | +--- com.android.support:support-annotations:25.3.1 +| | +--- com.android.support:support-v4:25.3.1 (*) +| | +--- com.android.support:support-vector-drawable:25.3.1 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | \--- com.android.support:support-compat:25.3.1 (*) +| | \--- com.android.support:animated-vector-drawable:25.3.1 +| | \--- com.android.support:support-vector-drawable:25.3.1 (*) +| +--- project :expo-clipboard +| +--- project :expo-constants +| | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| +--- project :expo-crypto +| +--- project :expo-device +| | +--- com.facebook.device.yearclass:yearclass:2.1.0 +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-file-system +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:1.4 -> 2.6 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- project :expo-font +| +--- project :expo-image-loader +| | \--- com.github.bumptech.glide:glide:4.16.0 +| | +--- com.github.bumptech.glide:gifdecoder:4.16.0 +| | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | +--- com.github.bumptech.glide:disklrucache:4.16.0 +| | +--- com.github.bumptech.glide:annotations:4.16.0 +| | +--- androidx.fragment:fragment:1.3.6 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*) +| | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 +| | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 +| +--- project :expo-image-picker +| +--- project :expo-keep-awake +| +--- project :expo-local-authentication +| +--- project :expo-network +| +--- project :expo-notifications +| +--- project :expo-screen-capture +| +--- project :expo-screen-orientation +| +--- project :expo-secure-store +| | \--- androidx.biometric:biometric:1.1.0 -> 1.2.0-alpha04 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| +--- project :expo-splash-screen +| +--- project :expo-web-browser +| | \--- androidx.browser:browser:1.6.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :lottie-react-native ++--- project :react-native-background-timer ++--- project :react-native-config ++--- project :react-native-device-info ++--- project :react-native-fast-image ++--- project :react-native-fbsdk-next ++--- project :react-native-fs ++--- project :react-native-gesture-handler ++--- project :react-native-get-random-values ++--- project :react-native-linear-gradient ++--- project :react-native-localize ++--- project :react-native-pager-view +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-permissions ++--- project :react-native-randombytes ++--- project :react-native-reanimated ++--- project :react-native-safe-area-context ++--- project :react-native-screens +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-spinkit ++--- project :react-native-spring-scrollview +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-svg ++--- project :react-native-vector-icons ++--- project :react-native-view-shot ++--- project :react-native-webview ++--- project :rn-minimizer ++--- project :react-native-code-push ++--- com.google.firebase:firebase-bom:33.4.0 +| +--- com.google.firebase:firebase-perf:21.0.1 (c) +| +--- com.google.firebase:firebase-common:21.0.0 (c) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| +--- com.google.firebase:firebase-config:22.0.0 (c) +| +--- com.google.firebase:firebase-installations:18.0.0 (c) +| \--- com.google.firebase:firebase-encoders:17.0.0 (c) ++--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 -> 3.21.11 +| +--- com.google.firebase:firebase-common:21.0.0 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.7.3 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 +| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:17.1.1 -> 17.2.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| \--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.5 +| +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 ++--- com.facebook.react:react-android -> 0.75.4 (*) ++--- com.facebook.react:hermes-android -> 0.75.4 ++--- project :app (*) ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.facebook.react:react-android:{strictly 0.75.4} -> 0.75.4 (c) ++--- com.google.firebase:firebase-bom:{strictly 33.4.0} -> 33.4.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 21.0.1} -> 21.0.1 (c) ++--- com.facebook.react:hermes-android:{strictly 0.75.4} -> 0.75.4 (c) ++--- com.facebook.fresco:animated-gif:{strictly 3.4.0} -> 3.4.0 (c) ++--- org.jetbrains:annotations:{strictly 23.0.0} -> 23.0.0 (c) ++--- io.sentry:sentry-android:{strictly 7.15.0} -> 7.15.0 (c) ++--- com.google.firebase:firebase-annotations:{strictly 16.2.0} -> 16.2.0 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 17.2.0} -> 17.2.0 (c) ++--- com.google.firebase:protolite-well-known-types:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 21.0.0} -> 21.0.0 (c) ++--- com.google.firebase:firebase-common-ktx:{strictly 21.0.0} -> 21.0.0 (c) ++--- com.google.firebase:firebase-components:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 22.0.0} -> 22.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-sessions:{strictly 2.0.5} -> 2.0.5 (c) ++--- androidx.appcompat:appcompat:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.autofill:autofill:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.tracing:tracing:{strictly 1.2.0} -> 1.2.0 (c) ++--- com.facebook.fbjni:fbjni:{strictly 0.6.0} -> 0.6.0 (c) ++--- com.facebook.fresco:fresco:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:middleware:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-okhttp3:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:ui-common:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.infer.annotation:infer-annotation:{strictly 0.18.0} -> 0.18.0 (c) ++--- com.facebook.soloader:soloader:{strictly 0.11.0} -> 0.11.0 (c) ++--- com.facebook.yoga:proguard-annotations:{strictly 1.19.0} -> 1.19.0 (c) ++--- com.google.code.findbugs:jsr305:{strictly 3.0.2} -> 3.0.2 (c) ++--- com.squareup.okhttp3:okhttp-urlconnection:{strictly 4.9.2} -> 4.9.2 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 4.9.2} -> 4.9.2 (c) ++--- com.squareup.okio:okio:{strictly 2.9.0} -> 2.9.0 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- io.sentry:sentry-android-core:{strictly 7.15.0} -> 7.15.0 (c) ++--- io.sentry:sentry-android-ndk:{strictly 7.15.0} -> 7.15.0 (c) ++--- io.sentry:sentry-android-replay:{strictly 7.15.0} -> 7.15.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.7.3} -> 1.7.3 (c) ++--- androidx.core:core-ktx:{strictly 1.13.1} -> 1.13.1 (c) ++--- com.google.mlkit:barcode-scanning:{strictly 17.2.0} -> 17.2.0 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.exifinterface:exifinterface:{strictly 1.3.7} -> 1.3.7 (c) ++--- com.google.android:cameraview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.annotation:annotation:{strictly 1.7.1} -> 1.7.1 (c) ++--- com.facebook.device.yearclass:yearclass:{strictly 2.1.0} -> 2.1.0 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.6} -> 2.6 (c) ++--- com.github.bumptech.glide:glide:{strictly 4.16.0} -> 4.16.0 (c) ++--- androidx.biometric:biometric:{strictly 1.2.0-alpha04} -> 1.2.0-alpha04 (c) ++--- androidx.browser:browser:{strictly 1.6.0} -> 1.6.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.8.22} -> 1.8.22 (c) ++--- com.google.firebase:firebase-config-interop:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.firebase:firebase-abt:{strictly 21.1.1} -> 21.1.1 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 20.0.1} -> 20.0.1 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 18.2.0} -> 18.2.0 (c) ++--- com.google.protobuf:protobuf-javalite:{strictly 3.21.11} -> 3.21.11 (c) ++--- com.google.firebase:firebase-encoders:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-encoders-json:{strictly 18.0.1} -> 18.0.1 (c) ++--- androidx.activity:activity:{strictly 1.7.2} -> 1.7.2 (c) ++--- androidx.core:core:{strictly 1.13.1} -> 1.13.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.fragment:fragment:{strictly 1.3.6} -> 1.3.6 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.facebook.fresco:fbcore:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:drawee:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-native:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-ashmem:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-native:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:memory-type-java:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:nativeimagefilters:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.facebook.fresco:nativeimagetranscoder:{strictly 3.2.0} -> 3.2.0 (c) ++--- org.jetbrains.kotlin:kotlin-annotations-jvm:{strictly 1.3.72} -> 1.3.72 (c) ++--- com.facebook.soloader:annotation:{strictly 0.11.0} -> 0.11.0 (c) ++--- com.facebook.soloader:nativeloader:{strictly 0.11.0} -> 0.11.0 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- io.sentry:sentry:{strictly 7.15.0} -> 7.15.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.7.3} -> 1.7.3 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.7.3} -> 1.7.3 (c) ++--- com.google.android.gms:play-services-basement:{strictly 18.4.0} -> 18.4.0 (c) ++--- com.google.android.gms:play-services-mlkit-barcode-scanning:{strictly 18.3.0} -> 18.3.0 (c) ++--- com.google.mlkit:barcode-scanning-common:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.mlkit:common:{strictly 18.9.0} -> 18.9.0 (c) ++--- com.google.mlkit:vision-common:{strictly 17.3.0} -> 17.3.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.android.support:support-annotations:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-v4:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:appcompat-v7:{strictly 25.3.1} -> 25.3.1 (c) ++--- androidx.annotation:annotation-jvm:{strictly 1.7.1} -> 1.7.1 (c) ++--- com.github.bumptech.glide:gifdecoder:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.github.bumptech.glide:disklrucache:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.github.bumptech.glide:annotations:{strictly 4.16.0} -> 4.16.0 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.9.24} -> 1.9.24 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.4.0} -> 1.4.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.customview:customview:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.6.2} -> 2.6.2 (c) ++--- com.facebook.fresco:ui-core:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.facebook.fresco:imagepipeline-base:{strictly 3.4.0} -> 3.4.0 (c) ++--- com.google.android.datatransport:transport-api:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.datatransport:transport-backend-cct:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.google.android.datatransport:transport-runtime:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 18.5.0} -> 18.5.0 (c) ++--- com.google.android.odml:image:{strictly 1.0.0-beta1} -> 1.0.0-beta1 (c) ++--- com.google.mlkit:vision-interfaces:{strictly 16.2.0} -> 16.2.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.android.support:support-compat:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-media-compat:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-core-utils:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-core-ui:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-fragment:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:support-vector-drawable:{strictly 25.3.1} -> 25.3.1 (c) ++--- com.android.support:animated-vector-drawable:{strictly 25.3.1} -> 25.3.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.6.2} -> 2.6.2 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.6.2} -> 2.6.2 (c) ++--- com.google.firebase:firebase-encoders-proto:{strictly 16.0.0} -> 16.0.0 (c) +\--- androidx.arch.core:core-runtime:{strictly 2.2.0} -> 2.2.0 (c) + +releaseUnitTestCompileOnly (n) +No dependencies + +releaseUnitTestCompileOnlyDependenciesMetadata +No dependencies + +releaseUnitTestImplementation (n) +No dependencies + +releaseUnitTestImplementationDependenciesMetadata +No dependencies + +releaseUnitTestIntransitiveDependenciesMetadata +No dependencies + +releaseUnitTestRuntimeClasspath - Runtime classpath of /releaseUnitTest. ++--- project :app (*) ++--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 +| +--- org.jetbrains:annotations:13.0 -> 23.0.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:2.0.0 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.24 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (c) ++--- project :amplitude_analytics-react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 +| | +--- androidx.appcompat:appcompat:1.6.1 +| | | +--- androidx.activity:activity:1.6.0 -> 1.7.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 +| | | | | \--- androidx.annotation:annotation-jvm:1.7.1 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.8.0 -> 1.13.1 +| | | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | | +--- androidx.annotation:annotation-experimental:1.4.0 +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-common:2.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | \--- androidx.arch.core:core-common:2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 +| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 +| | | | | | | | | +--- org.jetbrains:annotations:23.0.0 +| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c) +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c) +| | | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c) +| | | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.7.3 (c) +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 2.0.0 +| | | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 +| | | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 +| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | | +--- androidx.profileinstaller:profileinstaller:1.3.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | | | | +--- androidx.startup:startup-runtime:1.1.1 +| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | | | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 +| | | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | | | | \--- androidx.tracing:tracing-ktx:1.2.0 (c) +| | | | | | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | \--- androidx.core:core-ktx:1.13.1 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.13.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | | | | \--- androidx.core:core:1.13.1 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | | +--- androidx.savedstate:savedstate:1.2.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.1 -> 2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | \--- androidx.savedstate:savedstate-ktx:1.2.1 (c) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | +--- androidx.profileinstaller:profileinstaller:1.3.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | +--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | \--- androidx.activity:activity-ktx:1.7.2 (c) +| | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | +--- androidx.appcompat:appcompat-resources:1.6.1 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | | | \--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | \--- androidx.collection:collection:1.1.0 (*) +| | | | \--- androidx.appcompat:appcompat:1.6.1 (c) +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | \--- androidx.customview:customview:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.emoji2:emoji2:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.6.2 +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | | | | +--- androidx.startup:startup-runtime:1.1.1 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | \--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.emoji2:emoji2-views-helper:1.2.0 +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | \--- androidx.emoji2:emoji2:1.2.0 (*) +| | | +--- androidx.fragment:fragment:1.3.6 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.collection:collection:1.1.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.loader:loader:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -> 2.2.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.6.2 (*) +| | | | +--- androidx.activity:activity:1.2.4 -> 1.7.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1 -> 2.6.2 (*) +| | | | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.1 (*) +| | | | \--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.6.2 (*) +| | | +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| | | \--- androidx.appcompat:appcompat-resources:1.6.1 (c) +| | +--- androidx.appcompat:appcompat-resources:1.6.1 (*) +| | +--- androidx.autofill:autofill:1.1.0 +| | | \--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | +--- androidx.tracing:tracing:1.1.0 -> 1.2.0 (*) +| | +--- com.facebook.fbjni:fbjni:0.6.0 +| | | \--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | +--- com.facebook.fresco:fresco:3.2.0 +| | | +--- com.facebook.fresco:soloader:3.2.0 +| | | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 +| | | | | +--- androidx.core:core:1.13.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | \--- com.facebook.soloader:soloader:0.10.5 -> 0.11.0 +| | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | \--- com.facebook.soloader:nativeloader:0.11.0 +| | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-common:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:drawee:3.2.0 -> 3.4.0 +| | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline:3.4.0 +| | | | | +--- com.facebook.soloader:nativeloader:0.11.0 +| | | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | +--- com.facebook.fresco:urimod:3.4.0 +| | | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | | +--- com.facebook.fresco:ui-core:3.4.0 +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | +--- com.facebook.fresco:vito-source:3.4.0 +| | | | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline-base:3.4.0 +| | | | | +--- com.facebook.infer.annotation:infer-annotation:0.18.0 +| | | | | | +--- com.google.code.findbugs:jsr305:3.0.1 -> 3.0.2 +| | | | | | \--- org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 +| | | | | +--- com.facebook.soloader:annotation:0.11.0 +| | | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline-native:3.4.0 +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | \--- com.facebook.soloader:soloader:0.11.0 (*) +| | | | +--- com.facebook.fresco:memory-type-ashmem:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-native:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| | | | | \--- com.facebook.soloader:nativeloader:0.11.0 +| | | | +--- com.facebook.fresco:memory-type-java:3.4.0 +| | | | | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | | | | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | | | | \--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-common:3.4.0 (*) +| | | | +--- com.facebook.fresco:middleware:3.4.0 (*) +| | | | +--- com.facebook.fresco:ui-core:3.4.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:nativeimagefilters:3.2.0 +| | | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | \--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:nativeimagetranscoder:3.2.0 +| | | | +--- com.facebook.fresco:imagepipeline-base:3.2.0 -> 3.4.0 (*) +| | | | +--- com.facebook.soloader:nativeloader:0.10.5 -> 0.11.0 +| | | | +--- com.parse.bolts:bolts-tasks:1.4.0 +| | | | \--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 (*) +| | +--- com.facebook.fresco:imagepipeline-okhttp3:3.2.0 +| | | +--- com.facebook.fresco:fbcore:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:imagepipeline-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-ashmem:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-native:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:memory-type-java:3.2.0 -> 3.4.0 (*) +| | | +--- com.facebook.fresco:middleware:3.2.0 -> 3.4.0 (*) +| | | +--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 +| | | | +--- com.squareup.okio:okio:2.8.0 -> 2.9.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 2.0.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*) +| | +--- com.facebook.fresco:ui-common:3.2.0 -> 3.4.0 (*) +| | +--- com.facebook.infer.annotation:infer-annotation:0.18.0 (*) +| | +--- com.facebook.soloader:soloader:0.11.0 (*) +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | +--- com.google.code.findbugs:jsr305:3.0.2 +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 +| | | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.8.22 (*) +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | +--- javax.inject:javax.inject:1 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :invertase_react-native-apple-authentication +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| +--- androidx.core:core-ktx:1.3.0 -> 1.13.1 (*) +| \--- androidx.fragment:fragment:1.3.2 -> 1.3.6 (*) ++--- project :notifee_react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- app.notifee:core:+ -> 202108261754 +| +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 +| | \--- com.google.android.gms:play-services-basement:18.4.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| +--- androidx.work:work-runtime:2.7.1 +| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.6.2 (*) +| | +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- androidx.room:room-runtime:2.2.5 +| | | +--- androidx.room:room-common:2.2.5 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.sqlite:sqlite-framework:2.0.1 -> 2.1.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | \--- androidx.sqlite:sqlite:2.1.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.sqlite:sqlite:2.0.1 -> 2.1.0 (*) +| | | \--- androidx.arch.core:core-runtime:2.0.1 -> 2.2.0 (*) +| | +--- androidx.sqlite:sqlite:2.1.0 (*) +| | +--- androidx.sqlite:sqlite-framework:2.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | \--- androidx.lifecycle:lifecycle-service:2.1.0 -> 2.6.2 +| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| +--- org.greenrobot:eventbus:3.2.0 +| \--- com.squareup.okhttp3:okhttp:3.12.13 -> 4.9.2 (*) ++--- project :react-native-async-storage_async-storage +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-community_netinfo +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-firebase_analytics +| +--- project :react-native-firebase_app +| | +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| | +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 +| | | +--- com.google.firebase:firebase-perf:21.0.1 (c) +| | | +--- com.google.firebase:firebase-analytics:22.1.2 (c) +| | | +--- com.google.firebase:firebase-common:21.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck-playintegrity:18.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck-debug:18.0.0 (c) +| | | +--- com.google.firebase:firebase-crashlytics:19.2.0 (c) +| | | +--- com.google.firebase:firebase-crashlytics-ndk:19.2.0 (c) +| | | +--- com.google.firebase:firebase-messaging:24.0.2 (c) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (c) +| | | +--- com.google.firebase:firebase-config:22.0.0 (c) +| | | +--- com.google.firebase:firebase-installations:18.0.0 (c) +| | | +--- com.google.firebase:firebase-appcheck:18.0.0 (c) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (c) +| | +--- com.google.firebase:firebase-common -> 21.0.0 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.7.3 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*) +| | | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.8.22 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 +| | | | +--- com.google.firebase:firebase-annotations:16.2.0 +| | | | | \--- javax.inject:javax.inject:1 +| | | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | | \--- com.google.errorprone:error_prone_annotations:2.26.0 +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | \--- com.google.android.gms:play-services-auth:20.7.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | +--- androidx.loader:loader:1.0.0 (*) +| | +--- com.google.android.gms:play-services-auth-api-phone:18.0.1 +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.2.0 -> 1.13.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- com.google.android.gms:play-services-auth-base:18.0.4 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.2.0 -> 18.4.0 (*) +| | +--- com.google.android.gms:play-services-fido:20.0.1 +| | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-analytics -> 22.1.2 +| +--- com.google.android.gms:play-services-measurement:22.1.2 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 +| | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:22.1.2 +| | | \--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:22.1.2 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*) +| | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 +| | | | +--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.7.3 (*) +| | | | \--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 (c) +| | | +--- androidx.privacysandbox.ads:ads-adservices-java:1.0.0-beta05 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | | +--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (*) +| | | | +--- com.google.guava:guava:31.1-android +| | | | | +--- com.google.guava:failureaccess:1.0.1 +| | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | | | | +--- com.google.code.findbugs:jsr305:3.0.2 +| | | | | +--- org.checkerframework:checker-qual:3.12.0 +| | | | | +--- com.google.errorprone:error_prone_annotations:2.11.0 -> 2.26.0 +| | | | | \--- com.google.j2objc:j2objc-annotations:1.3 +| | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.7.3 (*) +| | | | \--- androidx.privacysandbox.ads:ads-adservices:1.0.0-beta05 (c) +| | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) +| | | +--- com.google.android.gms:play-services-base:18.5.0 (*) +| | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | | +--- com.google.android.gms:play-services-stats:17.0.2 +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | | \--- com.google.guava:guava:31.1-android (*) +| | \--- com.google.android.gms:play-services-stats:17.0.2 (*) +| +--- com.google.android.gms:play-services-measurement-api:22.1.2 +| | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:22.1.2 +| | | +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| | +--- com.google.android.gms:play-services-tasks:18.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.0.1 -> 18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- com.google.firebase:firebase-installations-interop:17.1.1 -> 17.2.0 +| | | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | | \--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.0.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:19.0.0 -> 20.0.1 +| | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*) +| | +--- com.google.guava:guava:31.1-android (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:22.1.2 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:18.4.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:22.1.2 (*) +| \--- com.google.android.gms:play-services-measurement-impl:22.1.2 (*) ++--- project :react-native-firebase_app (*) ++--- project :react-native-firebase_app-check +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| +--- com.google.firebase:firebase-appcheck-playintegrity -> 18.0.0 +| | +--- com.google.firebase:firebase-appcheck:18.0.0 +| | | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-appcheck-interop:17.1.0 +| | | | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | \--- com.google.android.play:integrity:1.2.0 +| | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| \--- com.google.firebase:firebase-appcheck-debug -> 18.0.0 +| +--- com.google.firebase:firebase-appcheck:18.0.0 (*) +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| \--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) ++--- project :react-native-firebase_crashlytics +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| +--- com.google.firebase:firebase-crashlytics -> 19.2.0 +| | +--- com.google.firebase:firebase-sessions:2.0.5 +| | | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | | +--- com.google.firebase:firebase-encoders:17.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*) +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- com.google.firebase:firebase-installations:18.0.0 (*) +| | | +--- com.google.firebase:firebase-datatransport:19.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-api:3.1.0 -> 3.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:3.2.0 -> 3.3.0 +| | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:3.3.0 +| | | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.7.1 (*) +| | | | | | +--- javax.inject:javax.inject:1 +| | | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | | \--- com.google.firebase:firebase-encoders-proto:16.0.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*) +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:3.2.0 -> 3.3.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | | +--- androidx.datastore:datastore-preferences:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | +--- androidx.datastore:datastore:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.7.3 (*) +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | \--- androidx.datastore:datastore-core:1.0.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0 -> 1.7.3 (*) +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | \--- androidx.datastore:datastore-preferences-core:1.0.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | | | \--- androidx.datastore:datastore-core:1.0.0 (*) +| | | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-config-interop:16.0.1 +| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*) +| | +--- com.google.firebase:firebase-installations:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:20.0.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*) +| | +--- com.google.android.datatransport:transport-api:3.2.0 (*) +| | +--- com.google.android.datatransport:transport-backend-cct:3.3.0 (*) +| | +--- com.google.android.datatransport:transport-runtime:3.3.0 (*) +| | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| \--- com.google.firebase:firebase-crashlytics-ndk -> 19.2.0 +| +--- com.google.firebase:firebase-crashlytics:19.2.0 (*) +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) ++--- project :react-native-firebase_messaging +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-messaging -> 24.0.2 +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-datatransport:18.2.0 -> 19.0.0 (*) +| +--- com.google.firebase:firebase-encoders:17.0.0 (*) +| +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*) +| +--- com.google.firebase:firebase-encoders-proto:16.0.0 (*) +| +--- com.google.firebase:firebase-iid-interop:17.1.0 +| | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.2.0 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| +--- com.google.firebase:firebase-measurement-connector:19.0.0 -> 20.0.1 (*) +| +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| +--- com.google.android.datatransport:transport-api:3.1.0 -> 3.2.0 (*) +| +--- com.google.android.datatransport:transport-backend-cct:3.1.8 -> 3.3.0 (*) +| +--- com.google.android.datatransport:transport-runtime:3.1.8 -> 3.3.0 (*) +| +--- com.google.android.gms:play-services-base:18.0.1 -> 18.5.0 (*) +| +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| +--- com.google.android.gms:play-services-cloud-messaging:17.2.0 +| | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.4.0 (*) +| | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*) +| +--- com.google.android.gms:play-services-stats:17.0.2 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.errorprone:error_prone_annotations:2.9.0 -> 2.26.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) ++--- project :react-native-firebase_perf +| +--- project :react-native-firebase_app (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.google.firebase:firebase-bom:32.7.1 -> 33.4.0 (*) +| \--- com.google.firebase:firebase-perf -> 21.0.1 +| +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| +--- com.google.firebase:protolite-well-known-types:18.0.0 +| | \--- com.google.protobuf:protobuf-javalite:3.14.0 -> 3.21.11 +| +--- com.google.firebase:firebase-common:21.0.0 (*) +| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| +--- com.google.firebase:firebase-components:18.0.0 (*) +| +--- com.google.firebase:firebase-config:21.5.0 -> 22.0.0 +| | +--- com.google.firebase:firebase-config-interop:16.0.1 (*) +| | +--- com.google.firebase:firebase-annotations:16.2.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:17.1.0 -> 17.2.0 (*) +| | +--- com.google.firebase:firebase-abt:21.1.1 +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | +--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 20.0.1 (*) +| | +--- com.google.firebase:firebase-common:21.0.0 (*) +| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*) +| | +--- com.google.firebase:firebase-components:18.0.0 (*) +| | +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | \--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- com.google.firebase:firebase-installations:17.2.0 -> 18.0.0 (*) +| +--- com.google.firebase:firebase-sessions:2.0.0 -> 2.0.5 (*) +| +--- com.google.firebase:firebase-datatransport:18.1.8 -> 19.0.0 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.lifecycle:lifecycle-process:2.3.1 -> 2.6.2 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*) +| +--- com.google.protobuf:protobuf-javalite:3.21.11 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- com.google.android.datatransport:transport-api:3.0.0 -> 3.2.0 (*) +| +--- com.google.dagger:dagger:2.27 +| | \--- javax.inject:javax.inject:1 +| \--- com.squareup.okhttp3:okhttp:3.12.1 -> 4.9.2 (*) ++--- project :react-native-google-signin_google-signin +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.google.android.gms:play-services-auth:19.2.0 -> 20.7.0 (*) ++--- project :sdcx_nested-scroll +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :sdcx_pull-to-refresh +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*) +| \--- io.github.scwang90:refresh-layout-kernel:3.0.0-alpha ++--- project :sentry_react-native +| +--- io.sentry:sentry-android:7.15.0 +| | +--- io.sentry:sentry-android-core:7.15.0 +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | | \--- io.sentry:sentry:7.15.0 +| | +--- io.sentry:sentry-android-ndk:7.15.0 +| | | +--- io.sentry:sentry:7.15.0 +| | | \--- io.sentry:sentry-android-core:7.15.0 (*) +| | \--- io.sentry:sentry-android-replay:7.15.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.8.22 (*) +| | \--- io.sentry:sentry:7.15.0 +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :shopify_flash-list +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) ++--- project :walletconnect_react-native-compat +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :expo +| +--- project :expo-modules-core +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- org.jetbrains.kotlin:kotlin-reflect:1.9.24 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.7.1 (*) +| | +--- androidx.tracing:tracing-ktx:1.2.0 +| | | +--- androidx.tracing:tracing:1.2.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.21 -> 2.0.0 (*) +| | | \--- androidx.tracing:tracing:1.2.0 (c) +| | \--- com.facebook.react:react-android -> 0.75.4 (*) +| +--- project :expo-application +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- com.android.installreferrer:installreferrer:2.2 +| +--- project :expo-asset +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-barcode-scanner +| | +--- com.google.mlkit:barcode-scanning:17.1.0 -> 17.2.0 +| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.0 +| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 +| | | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.4.0 (*) +| | | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0 +| | | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.7 +| | | | | | \--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | | +--- com.google.android.odml:image:1.0.0-beta1 +| | | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | | \--- com.google.mlkit:common:18.6.0 -> 18.9.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*) +| | | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*) +| | | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*) +| | | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*) +| | | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*) +| | | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*) +| | | | +--- com.google.mlkit:common:18.9.0 (*) +| | | | +--- com.google.mlkit:vision-common:17.3.0 (*) +| | | | \--- com.google.mlkit:vision-interfaces:16.2.0 +| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.4.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*) +| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*) +| | | +--- com.google.mlkit:common:18.9.0 (*) +| | | \--- com.google.mlkit:vision-common:17.3.0 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.7.3 (*) +| +--- project :expo-battery +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | | \--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.3.6 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-camera +| | +--- androidx.exifinterface:exifinterface:1.3.7 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- com.google.android:cameraview:1.0.0 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-v4:25.3.1 +| | | | +--- com.android.support:support-compat:25.3.1 +| | | | | \--- com.android.support:support-annotations:25.3.1 +| | | | +--- com.android.support:support-media-compat:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-utils:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-ui:25.3.1 +| | | | | +--- com.android.support:support-annotations:25.3.1 +| | | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | | \--- com.android.support:support-fragment:25.3.1 +| | | | +--- com.android.support:support-compat:25.3.1 (*) +| | | | +--- com.android.support:support-media-compat:25.3.1 (*) +| | | | +--- com.android.support:support-core-ui:25.3.1 (*) +| | | | \--- com.android.support:support-core-utils:25.3.1 (*) +| | | \--- com.android.support:appcompat-v7:25.3.1 +| | | +--- com.android.support:support-annotations:25.3.1 +| | | +--- com.android.support:support-v4:25.3.1 (*) +| | | +--- com.android.support:support-vector-drawable:25.3.1 +| | | | +--- com.android.support:support-annotations:25.3.1 +| | | | \--- com.android.support:support-compat:25.3.1 (*) +| | | \--- com.android.support:animated-vector-drawable:25.3.1 +| | | \--- com.android.support:support-vector-drawable:25.3.1 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.camera:camera-core:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures-ktx:1.1.0 +| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.4 -> 1.7.3 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.2 -> 1.3.7 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.6.2 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-camera2:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures-ktx:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-video:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-view:1.4.0-beta02 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.4.0 (*) +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (*) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.6.2 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-extensions:1.4.0-beta02 +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.3 +| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 (c) +| | | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| | +--- com.google.mlkit:barcode-scanning:17.2.0 (*) +| | \--- androidx.camera:camera-mlkit-vision:1.4.0-beta02 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.camera:camera-core:1.4.0-beta02 (*) +| | +--- androidx.camera:camera-view:1.4.0-beta02 (*) +| | +--- com.google.mlkit:vision-interfaces:16.0.0 -> 16.2.0 (*) +| | +--- androidx.camera:camera-camera2:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-core:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-extensions:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-lifecycle:1.4.0-beta02 (c) +| | +--- androidx.camera:camera-video:1.4.0-beta02 (c) +| | \--- androidx.camera:camera-view:1.4.0-beta02 (c) +| +--- project :expo-clipboard +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.core:core-ktx:1.6.0 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2 -> 1.7.3 (*) +| +--- project :expo-constants +| | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- commons-io:commons-io:2.6 +| +--- project :expo-crypto +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-device +| | +--- com.facebook.device.yearclass:yearclass:2.1.0 +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-file-system +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:1.4 -> 2.6 +| | +--- com.squareup.okhttp3:okhttp:4.9.2 (*) +| | +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.2 (*) +| | +--- com.squareup.okio:okio:2.9.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-font +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-image-loader +| | +--- com.github.bumptech.glide:glide:4.16.0 +| | | +--- com.github.bumptech.glide:gifdecoder:4.16.0 +| | | | \--- androidx.annotation:annotation:1.5.0 -> 1.7.1 (*) +| | | +--- com.github.bumptech.glide:disklrucache:4.16.0 +| | | +--- com.github.bumptech.glide:annotations:4.16.0 +| | | +--- androidx.fragment:fragment:1.3.6 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 (*) +| | | \--- androidx.tracing:tracing:1.0.0 -> 1.2.0 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-image-picker +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.activity:activity-ktx:1.7.2 +| | | +--- androidx.activity:activity:1.7.2 (*) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.6.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.6.2 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-common-java8:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-process:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-service:2.6.2 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.2 (c) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 (c) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.1 +| | | | +--- androidx.savedstate:savedstate:1.2.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | | \--- androidx.savedstate:savedstate:1.2.1 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 2.0.0 (*) +| | | \--- androidx.activity:activity:1.7.2 (c) +| | +--- androidx.appcompat:appcompat:1.6.1 (*) +| | +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.7 (*) +| | +--- com.github.CanHub:Android-Image-Cropper:4.3.1 +| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.7.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 -> 2.0.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.7.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 -> 2.0.0 (*) +| | | +--- androidx.databinding:viewbinding:7.2.1 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0 -> 1.8.22 (*) +| | | +--- androidx.appcompat:appcompat:1.4.2 -> 1.6.1 (*) +| | | +--- androidx.activity:activity-ktx:1.4.0 -> 1.7.2 (*) +| | | +--- androidx.exifinterface:exifinterface:1.3.3 -> 1.3.7 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3 -> 1.7.3 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3 -> 1.7.3 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3 -> 1.7.3 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.3 -> 1.7.3 (*) +| +--- project :expo-keep-awake +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-local-authentication +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.biometric:biometric:1.2.0-alpha04 +| | +--- androidx.activity:activity:1.1.0 -> 1.7.2 (*) +| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*) +| | \--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| +--- project :expo-network +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-notifications +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.6.2 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (*) +| | +--- com.google.firebase:firebase-messaging:24.0.1 -> 24.0.2 (*) +| | \--- me.leolin:ShortcutBadger:1.1.22 +| +--- project :expo-screen-capture +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- project :expo-screen-orientation +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-secure-store +| | +--- androidx.biometric:biometric:1.1.0 -> 1.2.0-alpha04 (*) +| | +--- project :expo-modules-core (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| +--- project :expo-splash-screen +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | +--- com.facebook.react:react-android -> 0.75.4 (*) +| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-reflect:1.9.24 (*) +| +--- project :expo-web-browser +| | +--- androidx.browser:browser:1.6.0 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava +| | +--- project :expo-modules-core (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.24 (*) +| | \--- androidx.core:core-ktx:1.7.0 -> 1.13.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- com.facebook.react:react-android -> 0.75.4 (*) ++--- project :lottie-react-native +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.airbnb.android:lottie:5.1.1 +| +--- androidx.appcompat:appcompat:1.3.1 -> 1.6.1 (*) +| \--- com.squareup.okio:okio:1.17.4 -> 2.9.0 (*) ++--- project :react-native-background-timer +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-config +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-device-info +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.android.installreferrer:installreferrer:1.1.2 -> 2.2 +| \--- com.google.android.gms:play-services-iid:17.0.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| +--- com.google.android.gms:play-services-base:17.0.0 -> 18.5.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.4.0 (*) +| +--- com.google.android.gms:play-services-stats:17.0.0 -> 17.0.2 (*) +| \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.2.0 (*) ++--- project :react-native-fast-image +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*) +| \--- com.github.bumptech.glide:okhttp3-integration:4.12.0 +| +--- com.github.bumptech.glide:glide:4.12.0 -> 4.16.0 (*) +| +--- com.squareup.okhttp3:okhttp:3.9.1 -> 4.9.2 (*) +| \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) ++--- project :react-native-fbsdk-next +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.facebook.android:facebook-android-sdk:16.+ -> 16.3.0 +| +--- com.facebook.android:facebook-core:16.3.0 +| | +--- com.facebook.android:facebook-bolts:16.3.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.android.installreferrer:installreferrer:1.0 -> 2.2 +| | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-common:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 (*) +| | +--- androidx.browser:browser:1.0.0 -> 1.6.0 (*) +| | +--- androidx.activity:activity:1.2.0 -> 1.7.2 (*) +| | +--- androidx.fragment:fragment:1.3.0 -> 1.3.6 (*) +| | +--- com.google.zxing:core:3.3.3 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-login:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| +--- com.facebook.android:facebook-share:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| | \--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| +--- com.facebook.android:facebook-applinks:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| +--- com.facebook.android:facebook-messenger:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10 -> 1.8.22 (*) +| +--- com.facebook.android:facebook-gamingservices:16.3.0 +| | +--- com.facebook.android:facebook-core:16.3.0 (*) +| | +--- com.facebook.android:facebook-common:16.3.0 (*) +| | +--- com.facebook.android:facebook-share:16.3.0 (*) +| | +--- androidx.core:core-ktx:1.3.2 -> 1.13.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) +| | \--- com.google.code.gson:gson:2.8.8 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 -> 2.0.0 (*) ++--- project :react-native-fs +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-gesture-handler +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- project :react-native-reanimated +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | +--- androidx.transition:transition:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | | +--- androidx.core:core:1.0.1 -> 1.13.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.6.0 -> 1.13.1 (*) +| | +--- com.facebook.react:react-android -> 0.75.4 (*) +| | \--- com.facebook.react:hermes-android -> 0.75.4 +| | +--- com.facebook.fbjni:fbjni:0.6.0 (*) +| | +--- com.facebook.soloader:soloader:0.11.0 (*) +| | +--- com.facebook.yoga:proguard-annotations:1.19.0 +| | \--- androidx.annotation:annotation:1.6.0 -> 1.7.1 (*) +| +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| +--- androidx.core:core-ktx:1.6.0 -> 1.13.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-get-random-values +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-linear-gradient +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-localize +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-pager-view +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- androidx.viewpager2:viewpager2:1.0.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.fragment:fragment:1.1.0 -> 1.3.6 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.core:core:1.1.0 -> 1.13.1 (*) +| \--- androidx.collection:collection:1.1.0 (*) ++--- project :react-native-permissions +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-randombytes +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-reanimated (*) ++--- project :react-native-safe-area-context +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) ++--- project :react-native-screens +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- androidx.appcompat:appcompat:1.4.2 -> 1.6.1 (*) +| +--- androidx.fragment:fragment:1.3.6 (*) +| +--- androidx.coordinatorlayout:coordinatorlayout:1.2.0 (*) +| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.1.0 (*) +| +--- com.google.android.material:material:1.6.1 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.7.1 (*) +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 -> 1.2.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:2.0.1 +| | | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.1 (*) +| | | +--- androidx.core:core:1.3.1 -> 1.13.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.1 +| | +--- androidx.core:core:1.5.0 -> 1.13.1 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*) +| | +--- androidx.dynamicanimation:dynamicanimation:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.0 (*) +| | +--- androidx.fragment:fragment:1.2.5 -> 1.3.6 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.2 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 (*) +| +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*) +| \--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 -> 2.6.2 (c) ++--- project :react-native-spinkit +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.github.ybq:Android-SpinKit:1.4.0 ++--- project :react-native-spring-scrollview +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-svg +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-vector-icons +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-view-shot +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-webview +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*) +| \--- androidx.webkit:webkit:1.4.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| \--- androidx.core:core:1.1.0 -> 1.13.1 (*) ++--- project :rn-minimizer +| \--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) ++--- project :react-native-code-push +| +--- com.facebook.react:react-native:+ -> com.facebook.react:react-android:0.75.4 (*) +| \--- com.nimbusds:nimbus-jose-jwt:9.37.3 +| \--- com.github.stephenc.jcip:jcip-annotations:1.0-1 ++--- com.google.firebase:firebase-bom:33.4.0 (*) ++--- com.google.firebase:firebase-perf -> 21.0.1 (*) ++--- com.facebook.fresco:animated-gif:3.4.0 +| +--- com.parse.bolts:bolts-tasks:1.4.0 +| +--- com.facebook.soloader:nativeloader:0.11.0 +| +--- com.facebook.fresco:fbcore:3.4.0 (*) +| \--- com.facebook.fresco:animated-base:3.4.0 +| +--- com.parse.bolts:bolts-tasks:1.4.0 +| +--- com.facebook.fresco:vito-options:3.4.0 +| | +--- com.facebook.fresco:drawee:3.4.0 (*) +| | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| +--- com.facebook.fresco:middleware:3.4.0 (*) +| +--- com.facebook.fresco:fbcore:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline-base:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline:3.4.0 (*) +| +--- com.facebook.fresco:imagepipeline-native:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-ashmem:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-native:3.4.0 (*) +| +--- com.facebook.fresco:memory-type-java:3.4.0 (*) +| +--- com.facebook.fresco:animated-drawable:3.4.0 +| | +--- com.facebook.fresco:imagepipeline-base:3.4.0 (*) +| | +--- com.facebook.fresco:drawee:3.4.0 (*) +| | +--- com.facebook.fresco:fbcore:3.4.0 (*) +| | +--- com.facebook.fresco:vito-renderer:3.4.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| | +--- com.facebook.fresco:vito-options:3.4.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 (*) ++--- com.facebook.react:react-android -> 0.75.4 (*) +\--- com.facebook.react:hermes-android -> 0.75.4 (*) + +releaseUnitTestRuntimeOnly (n) +No dependencies + +releaseWearApp - Link to a wear app to embed for object 'release'. (n) +No dependencies + +releaseWearBundling - Resolved Configuration for wear app bundling for variant: release +No dependencies + +runtimeOnly - Runtime only dependencies for 'main' sources. (n) +No dependencies + +testAnnotationProcessor - Classpath for the annotation processor for 'test'. (n) +No dependencies + +testApi (n) +No dependencies + +testApiDependenciesMetadata +No dependencies + +testCompileOnly - Compile only dependencies for 'test' sources. (n) +No dependencies + +testCompileOnlyDependenciesMetadata +No dependencies + +testDebugAnnotationProcessor - Classpath for the annotation processor for 'testDebug'. (n) +No dependencies + +testDebugApi (n) +No dependencies + +testDebugApiDependenciesMetadata +No dependencies + +testDebugCompileOnly - Compile only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugCompileOnlyDependenciesMetadata +No dependencies + +testDebugImplementation - Implementation only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugImplementationDependenciesMetadata +No dependencies + +testDebugIntransitiveDependenciesMetadata +No dependencies + +testDebugRuntimeOnly - Runtime only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugWearApp - Link to a wear app to embed for object 'testDebug'. (n) +No dependencies + +testFixturesAnnotationProcessor - Classpath for the annotation processor for 'testFixtures'. (n) +No dependencies + +testFixturesApi - API dependencies for 'testFixtures' sources. (n) +No dependencies + +testFixturesApiDependenciesMetadata +No dependencies + +testFixturesCompileOnly - Compile only dependencies for 'testFixtures' sources. (n) +No dependencies + +testFixturesCompileOnlyApi - Compile only API dependencies for 'testFixtures' sources. (n) +No dependencies + +testFixturesCompileOnlyDependenciesMetadata +No dependencies + +testFixturesDebugAnnotationProcessor - Classpath for the annotation processor for 'testFixturesDebug'. (n) +No dependencies + +testFixturesDebugApi - API dependencies for 'testFixturesDebug' sources. (n) +No dependencies + +testFixturesDebugApiDependenciesMetadata +No dependencies + +testFixturesDebugCompileOnly - Compile only dependencies for 'testFixturesDebug' sources. (n) +No dependencies + +testFixturesDebugCompileOnlyApi - Compile only API dependencies for 'testFixturesDebug' sources. (n) +No dependencies + +testFixturesDebugCompileOnlyDependenciesMetadata +No dependencies + +testFixturesDebugImplementation - Implementation only dependencies for 'testFixturesDebug' sources. (n) +No dependencies + +testFixturesDebugImplementationDependenciesMetadata +No dependencies + +testFixturesDebugIntransitiveDependenciesMetadata +No dependencies + +testFixturesDebugRuntimeOnly - Runtime only dependencies for 'testFixturesDebug' sources. (n) +No dependencies + +testFixturesDebugWearApp - Link to a wear app to embed for object 'testFixturesDebug'. (n) +No dependencies + +testFixturesImplementation - Implementation only dependencies for 'testFixtures' sources. (n) +No dependencies + +testFixturesImplementationDependenciesMetadata +No dependencies + +testFixturesIntransitiveDependenciesMetadata +No dependencies + +testFixturesReleaseAnnotationProcessor - Classpath for the annotation processor for 'testFixturesRelease'. (n) +No dependencies + +testFixturesReleaseApi - API dependencies for 'testFixturesRelease' sources. (n) +No dependencies + +testFixturesReleaseApiDependenciesMetadata +No dependencies + +testFixturesReleaseCompileOnly - Compile only dependencies for 'testFixturesRelease' sources. (n) +No dependencies + +testFixturesReleaseCompileOnlyApi - Compile only API dependencies for 'testFixturesRelease' sources. (n) +No dependencies + +testFixturesReleaseCompileOnlyDependenciesMetadata +No dependencies + +testFixturesReleaseImplementation - Implementation only dependencies for 'testFixturesRelease' sources. (n) +No dependencies + +testFixturesReleaseImplementationDependenciesMetadata +No dependencies + +testFixturesReleaseIntransitiveDependenciesMetadata +No dependencies + +testFixturesReleaseRuntimeOnly - Runtime only dependencies for 'testFixturesRelease' sources. (n) +No dependencies + +testFixturesReleaseWearApp - Link to a wear app to embed for object 'testFixturesRelease'. (n) +No dependencies + +testFixturesRuntimeOnly - Runtime only dependencies for 'testFixtures' sources. (n) +No dependencies + +testFixturesWearApp - Link to a wear app to embed for object 'testFixtures'. (n) +No dependencies + +testImplementation - Implementation only dependencies for 'test' sources. (n) +No dependencies + +testImplementationDependenciesMetadata +No dependencies + +testIntransitiveDependenciesMetadata +No dependencies + +testReleaseAnnotationProcessor - Classpath for the annotation processor for 'testRelease'. (n) +No dependencies + +testReleaseApi (n) +No dependencies + +testReleaseApiDependenciesMetadata +No dependencies + +testReleaseCompileOnly - Compile only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseCompileOnlyDependenciesMetadata +No dependencies + +testReleaseImplementation - Implementation only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseImplementationDependenciesMetadata +No dependencies + +testReleaseIntransitiveDependenciesMetadata +No dependencies + +testReleaseRuntimeOnly - Runtime only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseWearApp - Link to a wear app to embed for object 'testRelease'. (n) +No dependencies + +testRuntimeOnly - Runtime only dependencies for 'test' sources. (n) +No dependencies + +testWearApp - Link to a wear app to embed for object 'test'. (n) +No dependencies + +wearApp - Link to a wear app to embed for object 'main'. (n) +No dependencies + +(c) - A dependency constraint, not a dependency. The dependency affected by the constraint occurs elsewhere in the tree. +(*) - Indicates repeated occurrences of a transitive dependency subtree. Gradle expands transitive dependency subtrees only once per project; repeat occurrences only display the root of the subtree, followed by this annotation. + +(n) - A dependency or dependency configuration that cannot be resolved. + +A web-based, searchable dependency report is available by adding the --scan option. + +Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. + +You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. + +For more on this, please refer to https://docs.gradle.org/8.8/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. + +BUILD SUCCESSFUL in 57s +14 actionable tasks: 4 executed, 10 up-to-date diff --git a/packages/mobile-aelf/ios/AELFWallet.xcodeproj/project.pbxproj b/packages/mobile-aelf/ios/AELFWallet.xcodeproj/project.pbxproj index fdba4b88bc..6421990178 100644 --- a/packages/mobile-aelf/ios/AELFWallet.xcodeproj/project.pbxproj +++ b/packages/mobile-aelf/ios/AELFWallet.xcodeproj/project.pbxproj @@ -735,7 +735,8 @@ ); OTHER_LDFLAGS = ( "$(inherited)", - " ", + "-Wl", + "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -811,7 +812,8 @@ ); OTHER_LDFLAGS = ( "$(inherited)", - " ", + "-Wl", + "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; diff --git a/packages/mobile-aelf/ios/AELFWallet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/mobile-aelf/ios/AELFWallet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/packages/mobile-aelf/ios/AELFWallet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/mobile-aelf/ios/Podfile.lock b/packages/mobile-aelf/ios/Podfile.lock index 1ed35c4f69..41d40ebd00 100644 --- a/packages/mobile-aelf/ios/Podfile.lock +++ b/packages/mobile-aelf/ios/Podfile.lock @@ -2892,4 +2892,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 57ef2243c158c41081f4466b362007984a6dca96 -COCOAPODS: 1.16.2 +COCOAPODS: 1.15.2 diff --git a/packages/mobile-aelf/js/components/ActivityItem/index.tsx b/packages/mobile-aelf/js/components/ActivityItem/index.tsx index 193efc0b24..218db9551c 100644 --- a/packages/mobile-aelf/js/components/ActivityItem/index.tsx +++ b/packages/mobile-aelf/js/components/ActivityItem/index.tsx @@ -3,8 +3,8 @@ import React, { memo, useEffect, useMemo, useState } from 'react'; import { Animated, StyleSheet, View, ViewStyle } from 'react-native'; import { formatStr2EllipsisStr } from '@portkey-wallet/utils'; import { pTd } from 'utils/unit'; -import { ActivityItemType } from '@portkey-wallet/types/types-ca/activity'; -import { SHOW_FROM_TRANSACTION_TYPES, TransactionTypes } from '@portkey-wallet/constants/constants-ca/activity'; +import { ActivityItemType } from '@portkey-wallet/types/types-eoa/activity'; +import { SHOW_FROM_TRANSACTION_TYPES, TransactionTypes } from '@portkey-wallet/constants/constants-eoa/activity'; import { AmountSign, formatAmountUSDShow, @@ -13,7 +13,7 @@ import { } from '@portkey-wallet/utils/converter'; import { addressFormat } from '@portkey-wallet/utils'; import CommonAvatar from 'components/CommonAvatar'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; +import { useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; import { ZERO } from '@portkey-wallet/constants/misc'; import Touchable from 'components/Touchable'; import { formatActivityTimeRevamp, isSameDay } from '@portkey-wallet/utils/time'; @@ -23,7 +23,7 @@ import GStyles from 'assets/theme/GStyles'; import fonts from 'assets/theme/fonts'; import DoubleAvatar from 'components/DoubleAvatar'; import { TextL, TextM } from 'components/CommonText'; -import { contractStatusEnum } from '@portkey-wallet/constants/constants-ca/common'; +import { contractStatusEnum } from '@portkey-wallet/constants/constants-eoa/common'; import Lottie from 'lottie-react-native'; import { makeStyles } from '@rneui/themed'; diff --git a/packages/mobile-aelf/js/components/ActivityOverlay/index.tsx b/packages/mobile-aelf/js/components/ActivityOverlay/index.tsx index b605727457..703be5662a 100644 --- a/packages/mobile-aelf/js/components/ActivityOverlay/index.tsx +++ b/packages/mobile-aelf/js/components/ActivityOverlay/index.tsx @@ -6,10 +6,9 @@ import { SHOW_DAPP_TRANSACTION_TYPES, TransactionTypes, } from '@portkey-wallet/constants/constants-ca/activity'; -import { useCurrentChain, useDefaultToken } from '@portkey-wallet/hooks/hooks-ca/chainList'; -import { useCaAddressInfoList, useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; -import { fetchActivity } from '@portkey-wallet/store/store-ca/activity/api'; -import { ActivityItemType } from '@portkey-wallet/types/types-ca/activity'; +import { useDefaultToken, useExplorerUrl } from '@portkey-wallet/hooks/hooks-eoa/chainList'; +import { fetchActivity } from '@portkey-wallet/store/store-eoa/activity/api'; +import { ActivityItemType } from '@portkey-wallet/types/types-eoa/activity'; import { addressFormat, getExploreLink, handleLoopFetch } from '@portkey-wallet/utils'; import { AmountSign, @@ -30,48 +29,49 @@ import { formatActivityTimeDetailRevamp } from '@portkey-wallet/utils/time'; import { formatStr2EllipsisStr } from '@portkey-wallet/utils'; import navigationService from 'utils/navigationService'; import { pTd } from 'utils/unit'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; -import { SHOW_FROM_TRANSACTION_TYPES } from '@portkey-wallet/constants/constants-ca/activity'; -import { useGetCurrentAccountTokenPrice } from '@portkey-wallet/hooks/hooks-ca/useTokensPrice'; -import { IActivityApiParams } from '@portkey-wallet/store/store-ca/activity/type'; +import { useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; +import { SHOW_FROM_TRANSACTION_TYPES } from '@portkey-wallet/constants/constants-eoa/activity'; +import { useGetCurrentAccountTokenPrice } from '@portkey-wallet/hooks/hooks-eoa/useTokensPrice'; +import { IActivityApiParams } from '@portkey-wallet/store/store-eoa/activity/type'; import Lottie from 'lottie-react-native'; import Touchable from 'components/Touchable'; import NFTAvatar from 'components/NFTAvatar'; import { useLanguage } from 'i18n/hooks'; import { useEffectOnce } from '@portkey-wallet/hooks'; import { makeStyles, useTheme } from '@rneui/themed'; -import { contractStatusEnum } from '@portkey-wallet/constants/constants-ca/common'; +import { contractStatusEnum } from '@portkey-wallet/constants/constants-eoa/common'; import CommonAvatar from 'components/CommonAvatar'; import { ZERO } from '@portkey-wallet/constants/misc'; -import { useAppCASelector } from '@portkey-wallet/hooks/hooks-ca'; +import { useAppEOASelector } from '@portkey-wallet/hooks'; import { CrossChainTransferParamsType, intervalCrossChainTransfer } from 'utils/transfer/crossChainTransfer'; import { useGetTokenContract } from 'hooks/contract'; import { useAppDispatch } from 'store/hooks'; -import { removeFailedActivity } from '@portkey-wallet/store/store-ca/activity/slice'; +import { removeFailedActivity } from '@portkey-wallet/store/store-eoa/activity/slice'; +import { useCurrentAccount, useCurrentAddressInfos } from '@portkey-wallet/hooks/hooks-eoa/wallet'; const ActivityDetail = (props: ActivityItemType & IActivityApiParams) => { const { transactionId = '', blockHash = '', isReceived: isReceivedParams, activityType } = props; - const { caAddress } = useCurrentWalletInfo(); + const { address } = useCurrentAccount() ?? { address: '' }; const { t } = useLanguage(); const defaultToken = useDefaultToken(); const isMainnet = useIsMainnet(); const [resendLoading, setResendLoading] = useState(false); - const caAddressesInfoList = useCaAddressInfoList(); + const addressesInfoList = useCurrentAddressInfos(); const caAddressInfos = useMemo(() => { - let result = caAddressesInfoList; - if (caAddress === props.fromAddress) { - result = caAddressesInfoList.filter(item => item.chainId === props?.fromChainId); - } else if (caAddress === props.toAddress) { - result = caAddressesInfoList.filter(item => item.chainId === props?.toChainId); + let result = addressesInfoList; + if (address === props.fromAddress) { + result = addressesInfoList.filter(item => item.chainId === props?.fromChainId); + } else if (address === props.toAddress) { + result = addressesInfoList.filter(item => item.chainId === props?.toChainId); } - return result?.length > 0 ? result : caAddressesInfoList; - }, [caAddressesInfoList, props, caAddress]); + return result?.length > 0 ? result : addressesInfoList; + }, [addressesInfoList, props, address]); const [, getTokenPrice] = useGetCurrentAccountTokenPrice(); const [initializing, setInitializing] = useState(false); - const activity = useAppCASelector(state => state.activity); + const activity = useAppEOASelector(state => state.activity); const [activityItem, setActivityItem] = useState(props); - const { explorerUrl } = useCurrentChain(activityItem?.fromChainId) ?? {}; + const explorerUrl = useExplorerUrl(activityItem?.fromChainId); const styles = getStyles(); const { theme } = useTheme(); const getActivityDetail = useCallback(async () => { diff --git a/packages/mobile-aelf/js/components/Fallback/index.tsx b/packages/mobile-aelf/js/components/Fallback/index.tsx index 73f7cbabc2..f1272994d3 100644 --- a/packages/mobile-aelf/js/components/Fallback/index.tsx +++ b/packages/mobile-aelf/js/components/Fallback/index.tsx @@ -27,7 +27,7 @@ export function Fallback({ resetError }: FallbackProps) { Oops! - {`Just a minor hiccup. Your wallet is perfectly safe!`} + {'Just a minor hiccup. Your wallet is perfectly safe!'} diff --git a/packages/mobile-aelf/js/components/TokenListUnionItem/TokenItem/index.tsx b/packages/mobile-aelf/js/components/TokenListUnionItem/TokenItem/index.tsx index 241cd65d2d..d98b69370b 100644 --- a/packages/mobile-aelf/js/components/TokenListUnionItem/TokenItem/index.tsx +++ b/packages/mobile-aelf/js/components/TokenListUnionItem/TokenItem/index.tsx @@ -8,12 +8,11 @@ import { StyleSheet, View } from 'react-native'; import { pTd } from 'utils/unit'; import { FontStyles } from 'assets/theme/styles'; import GStyles from 'assets/theme/GStyles'; -import { TokenItemShowType } from '@portkey-wallet/types/types-ca/token'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; +import { TokenItemShowType } from '@portkey-wallet/types/types-eoa/token'; +import { useCurrentNetwork, useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; import fonts from 'assets/theme/fonts'; import { ViewStyleType, TextStyleType } from 'types/styles'; import { formatChainInfoToShow } from '@portkey-wallet/utils'; -import { useWallet } from '@portkey-wallet/hooks/hooks-ca/wallet'; interface TokenListItemType { wrapStyle?: ViewStyleType; @@ -27,7 +26,7 @@ interface TokenListItemType { const TokenItem: React.FC = props => { const { onPress, item, hideBalance = false, wrapStyle, balanceTextStyle, balanceInUseTextStyle } = props; const isMainnet = useIsMainnet(); - const { currentNetwork } = useWallet(); + const currentNetwork = useCurrentNetwork(); return ( onPress?.(item)}> @@ -38,7 +37,7 @@ const TokenItem: React.FC = props => { title={item?.symbol} avatarSize={pTd(40)} imageUrl={item?.imageUrl} - svgName={item?.svgName} + // svgName={item?.svgName} titleStyle={FontStyles.font11} borderStyle={GStyles.hairlineBorder} /> @@ -48,7 +47,7 @@ const TokenItem: React.FC = props => { title={item?.displayChainName} avatarSize={pTd(20)} imageUrl={item?.chainImageUrl} - svgName={item?.chainSvgName} + // svgName={item?.chainSvgName} borderStyle={itemStyle.tokenIconBorder} /> diff --git a/packages/mobile-aelf/js/components/TokenListUnionItem/index.tsx b/packages/mobile-aelf/js/components/TokenListUnionItem/index.tsx index 85029e6087..e4963aa9d9 100644 --- a/packages/mobile-aelf/js/components/TokenListUnionItem/index.tsx +++ b/packages/mobile-aelf/js/components/TokenListUnionItem/index.tsx @@ -1,4 +1,4 @@ -import { useSymbolImages } from '@portkey-wallet/hooks/hooks-ca/useToken'; +import { useSymbolImages } from '@portkey-wallet/hooks/hooks-eoa/useToken'; import { formatAmountUSDShow, formatTokenAmountShowWithDecimals } from '@portkey-wallet/utils/converter'; import { darkColors } from 'assets/theme'; import { FontStyles } from 'assets/theme/styles'; @@ -8,8 +8,8 @@ import TokenItem from './TokenItem'; import React, { memo, useMemo } from 'react'; import { StyleSheet, View } from 'react-native'; import { pTd } from 'utils/unit'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; -import { ITokenSectionResponse } from '@portkey-wallet/types/types-ca/token'; +import { useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; +import { ITokenSectionResponse } from '@portkey-wallet/types/types-eoa/token'; import Touchable from 'components/Touchable'; import GStyles from 'assets/theme/GStyles'; import fonts from 'assets/theme/fonts'; diff --git a/packages/mobile-aelf/js/components/Updater/index.tsx b/packages/mobile-aelf/js/components/Updater/index.tsx index f78667e1c1..0c803b5bec 100644 --- a/packages/mobile-aelf/js/components/Updater/index.tsx +++ b/packages/mobile-aelf/js/components/Updater/index.tsx @@ -1,10 +1,24 @@ import { request } from '@portkey-wallet/api/api-eoa'; -import { useCurrentNetworkInfo } from '@portkey-wallet/hooks/hooks-eoa/network'; +// import { useCurrentNetworkInfo } from '@portkey-wallet/hooks/hooks-eoa/network'; import { useInitChainList } from '@portkey-wallet/hooks/hooks-eoa/network/chain'; import useEffectOnce from 'hooks/useEffectOnce'; import { useLanguage } from 'i18n/hooks'; -import { useMemo } from 'react'; +import { useEffect, useMemo } from 'react'; +import { useRefreshTokenConfig } from '@portkey-wallet/hooks/hooks-ca/api'; +import { useCurrentNetworkInfo } from '@portkey-wallet/hooks/hooks-eoa/network'; +import useLocking from 'hooks/useLocking'; +import { useCaInfoOnChain } from 'hooks/useCaInfoOnChain'; +import { useFetchSymbolImages } from '@portkey-wallet/hooks/hooks-ca/useToken'; +import { useCheckManager } from '@portkey-wallet/hooks/hooks-ca/graphql'; +import { useCheckManagerOnLogout } from 'hooks/useLogOut'; +import { usePhoneCountryCode } from '@portkey-wallet/hooks/hooks-ca/misc'; +import { + useDiscoverGroupList, + useSocialMediaList, + useRememberMeBlackList, + useTabMenuList, +} from '@portkey-wallet/hooks/hooks-ca/cms'; import { exceptionManager } from 'utils/errorHandler/ExceptionHandler'; import { service } from 'api/utils'; @@ -19,25 +33,26 @@ export default function Updater() { changeLanguage('en'); }); - const { apiUrl } = useCurrentNetworkInfo(); - useMemo(() => { - request.set('baseURL', apiUrl); - if (service.defaults.baseURL !== apiUrl) { - service.defaults.baseURL = apiUrl; - } - }, [apiUrl]); + // const { apiUrl } = useCurrentNetworkInfo(); + // useMemo(() => { + // request.set('baseURL', apiUrl); + // if (service.defaults.baseURL !== apiUrl) { + // service.defaults.baseURL = apiUrl; + // } + // }, [apiUrl]); useInitChainList(); // useChainListFetch(); - + const { apiUrl, imApiUrl, imWsUrl, imS3Bucket, eoaApiUrl } = useCurrentNetworkInfo(); // const pin = usePin(); // const onLocking = useLocking(); // const checkManagerOnLogout = useCheckManagerOnLogout(); - // const refreshTokenConfig = useRefreshTokenConfig(); + const refreshTokenConfig = useRefreshTokenConfig(); // const checkCodePushUpdate = useCheckCodePushUpdate(); // const latestCheckCodePushUpdate = useLatestRef(checkCodePushUpdate); // useMemo(async () => { + // console.log('pin=====', pin); // await refreshTokenConfig(pin); // }, [pin, refreshTokenConfig]); @@ -47,7 +62,13 @@ export default function Updater() { // useCheckAndInitNetworkDiscoverMap(); // useFetchSymbolImages(); // useFetchTxFee(); - + useMemo(() => { + console.log('eoaApiUrl===', eoaApiUrl); + request.set('baseURL', eoaApiUrl); + if (service.defaults.baseURL !== eoaApiUrl) { + service.defaults.baseURL = eoaApiUrl; + } + }, [eoaApiUrl]); // useMemo(() => { // im.setUrl({ // apiUrl: imApiUrl || '', diff --git a/packages/mobile-aelf/js/hooks/account.ts b/packages/mobile-aelf/js/hooks/account.ts index 7e38c050e0..74b9458f23 100644 --- a/packages/mobile-aelf/js/hooks/account.ts +++ b/packages/mobile-aelf/js/hooks/account.ts @@ -1,27 +1,32 @@ -import { useCaAddressInfoList, useChainIdList, useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { useCurrentAddressInfos, useChainIdList, useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import { useLatestRef, useThrottleCallback } from '@portkey-wallet/hooks'; -import { useAccountTokenInfo } from '@portkey-wallet/hooks/hooks-ca/assets'; -import { PAGE_SIZE_IN_ACCOUNT_ASSETS, PAGE_SIZE_IN_ACCOUNT_TOKEN } from '@portkey-wallet/constants/constants-ca/assets'; +import { useAccountTokenInfo } from '@portkey-wallet/hooks/hooks-eoa/assets'; +import { + PAGE_SIZE_IN_ACCOUNT_ASSETS, + PAGE_SIZE_IN_ACCOUNT_TOKEN, +} from '@portkey-wallet/constants/constants-eoa/assets'; import useToken from '@portkey-wallet/hooks/hooks-ca/useToken'; export function useGetAccountTokenList() { - const { caAddressList } = useCurrentWalletInfo(); - const caAddressInfoList = useCaAddressInfoList(); + // const addressList = useCurrentAddressInfos(); + const addressInfoList = useCurrentAddressInfos(); const { fetchAccountTokenInfoList } = useAccountTokenInfo(); - const lastCaAddressInfoList = useLatestRef(caAddressInfoList); + const lastCaAddressInfoList = useLatestRef(addressInfoList); return useThrottleCallback( () => { - if (caAddressList?.length === 0) return; + if (addressInfoList?.length === 0) { + return; + } return fetchAccountTokenInfoList({ - caAddressInfos: lastCaAddressInfoList.current || [], + addressInfos: lastCaAddressInfoList.current || [], skipCount: 0, maxResultCount: PAGE_SIZE_IN_ACCOUNT_TOKEN, }); }, // eslint-disable-next-line react-hooks/exhaustive-deps - [caAddressList, caAddressInfoList, lastCaAddressInfoList], + [addressInfoList, addressInfoList, lastCaAddressInfoList], 1000, ); } @@ -29,12 +34,14 @@ export function useGetAccountTokenList() { export function useGetAllTokenInfoList() { const { fetchTokenInfoList } = useToken(); - const caAddressInfoList = useCaAddressInfoList(); + const addressInfoList = useCurrentAddressInfos(); const chainIdList = useChainIdList(); return useThrottleCallback( () => { - if (caAddressInfoList?.length === 0) return; + if (addressInfoList?.length === 0) { + return; + } return fetchTokenInfoList({ chainIdArray: chainIdList, keyword: '', @@ -42,7 +49,7 @@ export function useGetAllTokenInfoList() { maxResultCount: PAGE_SIZE_IN_ACCOUNT_ASSETS, }); }, - [caAddressInfoList?.length, chainIdList, fetchTokenInfoList], + [addressInfoList?.length, chainIdList, fetchTokenInfoList], 1000, ); } diff --git a/packages/mobile-aelf/js/hooks/useNetwork.ts b/packages/mobile-aelf/js/hooks/useNetwork.ts new file mode 100644 index 0000000000..80b9670236 --- /dev/null +++ b/packages/mobile-aelf/js/hooks/useNetwork.ts @@ -0,0 +1,20 @@ +import { useAppCommonDispatch } from '@portkey-wallet/hooks'; +import { useUser } from './store'; +import { useCallback } from 'react'; +import { setNetworkType } from 'store/user/actions'; + +export const useNetwork = () => { + const dispatch = useAppCommonDispatch(); + const { networkType } = useUser(); + const switchNetwork = useCallback(() => { + const changedNetworkType = networkType === 'MAINNET' ? 'TESTNET' : 'MAINNET'; + dispatch(setNetworkType(changedNetworkType)); + }, [dispatch, networkType]); + return { + switchNetwork, + }; +}; +export const useIsMainnet = () => { + const { networkType } = useUser(); + return networkType === 'MAINNET'; +}; diff --git a/packages/mobile-aelf/js/hooks/userExceptionMessage.ts b/packages/mobile-aelf/js/hooks/userExceptionMessage.ts index 92d4fd2c0d..497621f673 100644 --- a/packages/mobile-aelf/js/hooks/userExceptionMessage.ts +++ b/packages/mobile-aelf/js/hooks/userExceptionMessage.ts @@ -1,11 +1,11 @@ -import { useCurrentNetwork, useNetworkList } from '@portkey-wallet/hooks/hooks-ca/network'; -import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { useCurrentNetwork, useNetworkList } from '@portkey-wallet/hooks/hooks-eoa/network'; +// import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import { useCallback } from 'react'; import { exceptionManager } from 'utils/errorHandler/ExceptionHandler'; import * as Application from 'expo-application'; export default function useReportAnalyticsEvent() { - const { caHash } = useCurrentWalletInfo(); + // const { caHash } = useCurrentWalletInfo(); const networkList = useNetworkList(); const currentNetwork = useCurrentNetwork(); return useCallback( @@ -15,7 +15,7 @@ export default function useReportAnalyticsEvent() { exceptionManager.reportAnalyticsEvent({ eventName: eventName, params: { - caHash, + // caHash, networkName, version, currentNetwork, @@ -23,6 +23,6 @@ export default function useReportAnalyticsEvent() { }, }); }, - [caHash, currentNetwork, networkList], + [currentNetwork, networkList], ); } diff --git a/packages/mobile-aelf/js/navigation/Tab.tsx b/packages/mobile-aelf/js/navigation/Tab.tsx index 77062c4124..de372ceed9 100644 --- a/packages/mobile-aelf/js/navigation/Tab.tsx +++ b/packages/mobile-aelf/js/navigation/Tab.tsx @@ -1,17 +1,18 @@ import React, { useMemo } from 'react'; import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; -// import DashBoard from 'pages/DashBoard'; +import DashBoard from 'pages/DashBoard'; import Svg, { IconName } from 'components/Svg'; import { defaultColors } from 'assets/theme'; // import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; // import useLogOut from 'hooks/useLogOut'; // import useInitData from 'hooks/useInitData'; // import DiscoverHome from 'pages/Discover/DiscoverHome'; -// import ActivityListPage from 'pages/Activity/ActivityListPage'; +import ActivityListPage from 'pages/Activity/ActivityListPage'; import { pTd } from 'utils/unit'; // import { resetBadge } from 'utils/notifee'; import { TabRouteNameEnum } from 'types/navigate'; import HomeTab from 'pages/Home/HomeTab'; +import { TextM } from 'components/CommonText'; // import { useIsAccountExist } from '@portkey-wallet/hooks/hooks-eoa/wallet'; const Tab = createBottomTabNavigator(); @@ -29,29 +30,29 @@ export interface IRenderTabMenuItem { // export const tabMenuTypeMap: Record = { export const tabMenuTypeMap: Record = { ['Home']: { - name: TabRouteNameEnum.WALLET, + name: TabRouteNameEnum.TEST, index: 0, label: 'Wallet', icon: 'home', isDefault: true, component: HomeTab, }, - // [TabRouteNameEnum.WALLET]: { - // name: TabRouteNameEnum.WALLET, - // index: 0, - // label: 'Wallet', - // icon: 'home', - // isDefault: true, - // component: DashBoard, - // }, - // [TabRouteNameEnum.ACTIVITY]: { - // name: TabRouteNameEnum.ACTIVITY, - // index: 1, - // label: 'Activity', - // largeIcon: 'clock', - // icon: 'clock', - // component: ActivityListPage, - // }, + [TabRouteNameEnum.WALLET]: { + name: TabRouteNameEnum.WALLET, + index: 0, + label: 'Wallet', + icon: 'home', + isDefault: true, + component: DashBoard, + }, + [TabRouteNameEnum.ACTIVITY]: { + name: TabRouteNameEnum.ACTIVITY, + index: 1, + label: 'Activity', + largeIcon: 'clock', + icon: 'clock', + component: ActivityListPage, + }, // [TabRouteNameEnum.DISCOVER]: { // name: TabRouteNameEnum.DISCOVER, // index: 2, @@ -89,7 +90,7 @@ export default function TabRoot() { return ( ({ tabBarStyle: { paddingTop: 0, diff --git a/packages/mobile-aelf/js/pages/Activity/ActivityListPage/index.tsx b/packages/mobile-aelf/js/pages/Activity/ActivityListPage/index.tsx index 08100539fd..d32d9fc40e 100644 --- a/packages/mobile-aelf/js/pages/Activity/ActivityListPage/index.tsx +++ b/packages/mobile-aelf/js/pages/Activity/ActivityListPage/index.tsx @@ -2,14 +2,15 @@ import React, { useState, useCallback, useRef, useMemo } from 'react'; import { RefreshControl, View } from 'react-native'; import { pTd } from 'utils/unit'; import { useLanguage } from 'i18n/hooks'; -import { getActivityListAsync } from '@portkey-wallet/store/store-ca/activity/action'; -import { useAppCASelector, useAppCommonDispatch } from '@portkey-wallet/hooks'; -import { IActivitiesApiParams } from '@portkey-wallet/store/store-ca/activity/type'; -import { useCaAddressInfoList } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { getActivityListAsync } from '@portkey-wallet/store/store-eoa/activity/action'; +import { useAppCommonDispatch } from '@portkey-wallet/hooks'; +import { useActivity } from '@portkey-wallet/hooks/hooks-eoa/activity'; +import { IActivitiesApiParams } from '@portkey-wallet/store/store-eoa/activity/type'; +import { useCurrentAddressInfos } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import useRouterParams from '@portkey-wallet/hooks/useRouterParams'; -import { ActivityItemType } from '@portkey-wallet/types/types-ca/activity'; +import { ActivityItemType } from '@portkey-wallet/types/types-eoa/activity'; import { getCurrentActivityMapKey } from '@portkey-wallet/utils/activity'; -import { ON_END_REACHED_THRESHOLD } from '@portkey-wallet/constants/constants-ca/activity'; +import { ON_END_REACHED_THRESHOLD } from '@portkey-wallet/constants/constants-eoa/activity'; import ActivityItem from 'components/ActivityItem'; import { sleep } from '@portkey-wallet/utils'; import { FlatListFooterLoading } from 'components/FlatListFooterLoading'; @@ -34,8 +35,8 @@ const ActivityListPage = () => { const { chainId, symbol } = useRouterParams(); const { t } = useLanguage(); const dispatch = useAppCommonDispatch(); - const caAddressInfos = useCaAddressInfoList(); - const activity = useAppCASelector(state => state.activity); + const addressInfos = useCurrentAddressInfos(); + const activity = useActivity(); const currentActivity = useMemo( () => activity?.activityMap?.[getCurrentActivityMapKey(chainId, symbol)], [activity?.activityMap, chainId, symbol], @@ -57,7 +58,7 @@ const ActivityListPage = () => { const params: IActivitiesApiParams = { maxResultCount: maxResultCount, skipCount: isInit ? 0 : skipCount + maxResultCount, - caAddressInfos, + addressInfos, // managerAddresses: address, chainId: chainId, symbol: symbol, @@ -69,7 +70,7 @@ const ActivityListPage = () => { await sleep(250); } }, - [caAddressInfos, chainId, currentActivity, dispatch, symbol], + [addressInfos, chainId, currentActivity, dispatch, symbol], ); const isInitRef = useRef(false); diff --git a/packages/mobile-aelf/js/pages/DashBoard/Card/index.tsx b/packages/mobile-aelf/js/pages/DashBoard/Card/index.tsx index e8be2740be..1dac477a1c 100644 --- a/packages/mobile-aelf/js/pages/DashBoard/Card/index.tsx +++ b/packages/mobile-aelf/js/pages/DashBoard/Card/index.tsx @@ -3,23 +3,25 @@ import { View, Text, StyleProp, ViewStyle, TouchableOpacity } from 'react-native import { getStyles } from './style'; import SendButton from 'components/SendButton'; import ReceiveButton from 'components/ReceiveButton'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; -import { useCurrentUserInfo, useSetHideAssets } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; +import { useCurrentHideAssetsState, useSetHideAssets } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import FaucetButton from 'components/FaucetButton'; import OutlinedButton from 'components/OutlinedButton'; import BuyButton from 'components/BuyButton'; -import { useAppRampEntryShow } from 'hooks/ramp'; +// import { useAppRampEntryShow } from 'hooks/ramp'; import { pTd } from 'utils/unit'; import Svg from 'components/Svg'; -import { useAppSwapButtonShow } from 'hooks/cms'; +// import { useAppSwapButtonShow } from 'hooks/cms'; import navigationService from 'utils/navigationService'; const Card: React.FC<{ title: string }> = ({ title }) => { const isMainnet = useIsMainnet(); - const userInfo = useCurrentUserInfo(); + const hideAssets = useCurrentHideAssetsState(); const setHideAssets = useSetHideAssets(); - const { isRampShow } = useAppRampEntryShow(); - const { isSwapShow } = useAppSwapButtonShow(); + // const { isRampShow } = useAppRampEntryShow(); + // const { isSwapShow } = useAppSwapButtonShow(); + const isRampShow = true; + const isSwapShow = true; const styles = getStyles(); const buttonCount = useMemo(() => { let count = 2; @@ -50,8 +52,8 @@ const Card: React.FC<{ title: string }> = ({ title }) => { }, [buttonCount, styles]); const onHideAssets = useCallback(() => { - setHideAssets(!userInfo.hideAssets); - }, [setHideAssets, userInfo.hideAssets]); + setHideAssets(!hideAssets); + }, [setHideAssets, hideAssets]); const onReceivePress = useCallback(() => { navigationService.navigate('ReceiveSelectToken'); @@ -62,12 +64,12 @@ const Card: React.FC<{ title: string }> = ({ title }) => { {title ? ( - - {userInfo.hideAssets ? '******' : title} + + {hideAssets ? '******' : title} {isMainnet && ( - + )} diff --git a/packages/mobile-aelf/js/pages/DashBoard/CopyUserAddress/index.tsx b/packages/mobile-aelf/js/pages/DashBoard/CopyUserAddress/index.tsx index 0dc641ba1c..2709c54596 100644 --- a/packages/mobile-aelf/js/pages/DashBoard/CopyUserAddress/index.tsx +++ b/packages/mobile-aelf/js/pages/DashBoard/CopyUserAddress/index.tsx @@ -6,8 +6,8 @@ import Touchable from 'components/Touchable'; import Svg from 'components/Svg'; import { pTd } from 'utils/unit'; import { addressFormat, formatStr2EllipsisStr } from '@portkey-wallet/utils'; -import { useCaAddressInfoList } from '@portkey-wallet/hooks/hooks-ca/wallet'; -import { useCurrentChainList } from '@portkey-wallet/hooks/hooks-ca/chainList'; +import { useCurrentAddressInfos } from '@portkey-wallet/hooks/hooks-eoa/wallet'; +import { useCurrentChainList } from '@portkey-wallet/hooks/hooks-eoa/chainList'; import { ChainId } from '@portkey-wallet/types'; import { makeStyles } from '@rneui/themed'; import { formatChainInfoToShow } from '@portkey-wallet/utils'; @@ -17,7 +17,7 @@ import CommonToast from 'components/CommonToast'; import { setStringAsync } from 'expo-clipboard'; const CopyUserAddress: React.FC = () => { - const caAddressInfos = useCaAddressInfoList(); + const addressInfos = useCurrentAddressInfos(); const styles = getStyles(); const currentChainList = useCurrentChainList(); @@ -41,7 +41,7 @@ const CopyUserAddress: React.FC = () => { return ( - {caAddressInfos?.reverse()?.map((item, index) => { + {addressInfos?.reverse()?.map((item, index) => { return ( @@ -49,13 +49,13 @@ const CopyUserAddress: React.FC = () => { {formatChainInfoToShow(item.chainId)} - {formatStr2EllipsisStr(addressFormat(item.caAddress, item?.chainId), 8)} + {formatStr2EllipsisStr(addressFormat(item.address, item?.chainId), 8)} onCopyAddress({ address: item.caAddress, chainId: item.chainId })}> + onPress={() => onCopyAddress({ address: item.address, chainId: item.chainId })}> diff --git a/packages/mobile-aelf/js/pages/DashBoard/DashBoardTab/index.tsx b/packages/mobile-aelf/js/pages/DashBoard/DashBoardTab/index.tsx index e729385bcd..1c4c491c20 100644 --- a/packages/mobile-aelf/js/pages/DashBoard/DashBoardTab/index.tsx +++ b/packages/mobile-aelf/js/pages/DashBoard/DashBoardTab/index.tsx @@ -5,12 +5,12 @@ import CommonTopTab from 'components/CommonTopTab'; import { useLanguage } from 'i18n/hooks'; import { pTd } from 'utils/unit'; import { makeStyles } from '@rneui/themed'; -import { useAccountNFTCollectionInfo, useAccountTokenInfo } from '@portkey-wallet/hooks/hooks-ca/assets'; +import { useAccountNFTCollectionInfo, useAccountTokenInfo } from '@portkey-wallet/hooks/hooks-eoa/assets'; import Svg from 'components/Svg'; import { View } from 'react-native'; import Touchable from 'components/Touchable'; import ModeChangeSelector from '../componets/ModeChangeSelector'; -import { useNFTSection } from '@portkey-wallet/hooks/hooks-ca'; +import { useNFTSection } from '@portkey-wallet/hooks/hooks-eoa'; import navigationService from 'utils/navigationService'; import GStyles from 'assets/theme/GStyles'; diff --git a/packages/mobile-aelf/js/pages/DashBoard/Header/index.tsx b/packages/mobile-aelf/js/pages/DashBoard/Header/index.tsx index f63b9c81aa..e2ef8f5ab9 100644 --- a/packages/mobile-aelf/js/pages/DashBoard/Header/index.tsx +++ b/packages/mobile-aelf/js/pages/DashBoard/Header/index.tsx @@ -13,9 +13,11 @@ import { useQrScanPermissionAndToast } from 'hooks/useQrScan'; import navigationService from 'utils/navigationService'; import { screenWidth } from '@portkey-wallet/utils/mobile/device'; import { makeStyles, useTheme } from '@rneui/themed'; +import { useCurrentAccount } from '@portkey-wallet/hooks/hooks-eoa/wallet'; const DashBoardHeader: React.FC = () => { - const userInfo = useCurrentUserInfo(); + // const userInfo = useCurrentUserInfo(); + const userInfo = useCurrentAccount(); const qrScanPermissionAndToast = useQrScanPermissionAndToast(); const styles = getStyles(); const { theme } = useTheme(); @@ -35,19 +37,19 @@ const DashBoardHeader: React.FC = () => { const leftDom = useMemo(() => { return ( - {userInfo?.nickName ? ( + {userInfo?.name ? ( - {userInfo.nickName} + {userInfo.name} @@ -62,7 +64,19 @@ const DashBoardHeader: React.FC = () => { )} ); - }, [nickNameMaxWidth, onShowAccountSetting, userInfo?.avatar, userInfo.nickName, styles]); + }, [ + styles.leftDomWrap, + styles.leftTouchableDomWrap, + styles.accountNameWrap, + styles.accountName, + styles.arrowIconWrap, + styles.skeletonWrap, + styles.skeletonIcon, + styles.skeletonText, + userInfo?.name, + onShowAccountSetting, + nickNameMaxWidth, + ]); const rightDom = useMemo(() => { return ( diff --git a/packages/mobile-aelf/js/pages/DashBoard/NFTSection/CollectionsModeItem.tsx b/packages/mobile-aelf/js/pages/DashBoard/NFTSection/CollectionsModeItem.tsx index 353b65a914..b3e40dbdb8 100644 --- a/packages/mobile-aelf/js/pages/DashBoard/NFTSection/CollectionsModeItem.tsx +++ b/packages/mobile-aelf/js/pages/DashBoard/NFTSection/CollectionsModeItem.tsx @@ -6,7 +6,7 @@ import { pTd, pTdFloor } from 'utils/unit'; import GStyles from 'assets/theme/GStyles'; import CommonAvatar from 'components/CommonAvatar'; import { TextL } from 'components/CommonText'; -import { NFTCollectionItemShowType } from '@portkey-wallet/types/types-ca/assets'; +import { NFTCollectionItemShowType } from '@portkey-wallet/types/types-eoa/assets'; import Touchable from 'components/Touchable'; import { OpenCollectionObjType } from './index'; import { ChainId } from '@portkey-wallet/types'; diff --git a/packages/mobile-aelf/js/pages/DashBoard/NFTSection/MinStatusComponent.tsx b/packages/mobile-aelf/js/pages/DashBoard/NFTSection/MinStatusComponent.tsx index c38aaf77b1..499fd2ac85 100644 --- a/packages/mobile-aelf/js/pages/DashBoard/NFTSection/MinStatusComponent.tsx +++ b/packages/mobile-aelf/js/pages/DashBoard/NFTSection/MinStatusComponent.tsx @@ -13,19 +13,22 @@ interface MintStatusIconProps { const MinStatusComponent = (props: MintStatusIconProps) => { const { status = MintStatus.Minted } = props; - if (status === MintStatus.Minting) + if (status === MintStatus.Minting) { return ( ); + } - if (status === MintStatus.Minted) + if (status === MintStatus.Minted) { return ( ); - - if (status === MintStatus.MintFailed) return ; + } + if (status === MintStatus.MintFailed) { + return ; + } return null; }; diff --git a/packages/mobile-aelf/js/pages/DashBoard/NFTSection/NFTsModeItem.tsx b/packages/mobile-aelf/js/pages/DashBoard/NFTSection/NFTsModeItem.tsx index ecc3b68898..adbb1c3458 100644 --- a/packages/mobile-aelf/js/pages/DashBoard/NFTSection/NFTsModeItem.tsx +++ b/packages/mobile-aelf/js/pages/DashBoard/NFTSection/NFTsModeItem.tsx @@ -9,7 +9,7 @@ import GStyles from 'assets/theme/GStyles'; import CommonAvatar from 'components/CommonAvatar'; import Svg from 'components/Svg'; import { TextL, TextM, TextS } from 'components/CommonText'; -import { NFTCollectionItemShowType } from '@portkey-wallet/types/types-ca/assets'; +import { NFTCollectionItemShowType } from '@portkey-wallet/types/types-eoa/assets'; import Touchable from 'components/Touchable'; import { CONNECTION_KEY_FLAG, OpenCollectionObjType } from './index'; import { ChainId } from '@portkey-wallet/types'; @@ -21,8 +21,8 @@ import { PortkeyLinearGradientV2 } from 'components/PortkeyLinearGradient'; import { screenWidth } from '@portkey-wallet/utils/mobile/device'; import CommonButton from 'components/CommonButton'; import fonts from 'assets/theme/fonts'; -import { useAccountNFTCollectionInfo } from '@portkey-wallet/hooks/hooks-ca/assets'; -import { useCaAddressInfoList } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { useAccountNFTCollectionInfo } from '@portkey-wallet/hooks/hooks-eoa/assets'; +import { useCurrentAddressInfos } from '@portkey-wallet/hooks/hooks-eoa/wallet'; export enum NoDataMessage { CustomNetWorkNoData = 'No transaction records accessible from the current custom network', @@ -59,7 +59,7 @@ export default function NFTItem(props: NFTItemPropsType) { } = props; const styles = getStyles(); const { fetchAccountNFTItem } = useAccountNFTCollectionInfo(); - const caAddressInfos = useCaAddressInfoList(); + const addressInfos = useCurrentAddressInfos(); const [open, setOpen] = useState(false); const openCollectionInfo = useMemo( @@ -104,10 +104,10 @@ export default function NFTItem(props: NFTItemPropsType) { await fetchAccountNFTItem({ symbol, chainId, - caAddressInfos: caAddressInfos.filter(item => item.chainId === chainId), + addressInfos: addressInfos.filter(item => item.chainId === chainId), pageNum: 0, }); - }, [caAddressInfos, chainId, fetchAccountNFTItem, symbol]); + }, [addressInfos, chainId, fetchAccountNFTItem, symbol]); return ( = function NFTSectionItem(pr } }; -const ListHeaderComponent = ({ - recentStatus, - itemId, - imageUrl, -}: { - recentStatus: FreeMintStatus; - itemId: string; - imageUrl: string; -}) => { - if (recentStatus === FreeMintStatus.PENDING || recentStatus === FreeMintStatus.FAIL) { - return ( - - - - ); - } - return null; -}; +// const ListHeaderComponent = ({ +// recentStatus, +// itemId, +// imageUrl, +// }: { +// recentStatus: FreeMintStatus; +// itemId: string; +// imageUrl: string; +// }) => { +// if (recentStatus === FreeMintStatus.PENDING || recentStatus === FreeMintStatus.FAIL) { +// return ( +// +// +// +// ); +// } +// return null; +// }; const ItemSeparatorComponent = () => { const styles = getStyles(); return ; @@ -90,9 +90,9 @@ const ListEmptyComponent = () => { export default function NFTSection() { const timerRef = useRef(null); - const { recentStatus, itemId, imageUrl, setRecentStatus, setItemId, setImageUrl } = useRecentStatus(); - const getRecentStatus = useGetRecentStatus(); - const caAddressInfos = useCaAddressInfoList(); + // const { recentStatus, itemId, imageUrl, setRecentStatus, setItemId, setImageUrl } = useRecentStatus(); + // const getRecentStatus = useGetRecentStatus(); + const addressInfos = useCurrentAddressInfos(); const { fetchAccountNFTCollectionInfoList, fetchAccountNFTItem, accountNFTList, totalRecordCount } = useAccountNFTCollectionInfo(); const [reFreshing] = useState(false); @@ -111,7 +111,7 @@ export default function NFTSection() { updateNFTSubscription.remove(); refreshHomeListSubscription.remove(); }; - }, [caAddressInfos, fetchAccountNFTItem, nftSectionUiType, openCollectionObj, updateNFTItems]); + }, [addressInfos, fetchAccountNFTItem, nftSectionUiType, openCollectionObj, updateNFTItems]); // const isInitTheFirstFiveItem = useRef(false); // const collectionItemProp = useMemo(() => { // return accountNFTList.slice(0, 2).map(item => ({ @@ -128,12 +128,12 @@ export default function NFTSection() { } console.log('wfs====fetchAccountNFTCollectionInfoList2'); await fetchAccountNFTCollectionInfoList({ - caAddressInfos, + addressInfos, skipCount: isInit ? 0 : accountNFTList.length, maxResultCount: PAGE_SIZE_IN_ACCOUNT_NFT_COLLECTION, }); }, - [accountNFTList.length, caAddressInfos, fetchAccountNFTCollectionInfoList, totalRecordCount], + [accountNFTList.length, addressInfos, fetchAccountNFTCollectionInfoList, totalRecordCount], ); const updateNFTItems = useCallback(() => { if (nftSectionUiType === 'NFTs') { @@ -145,19 +145,19 @@ export default function NFTSection() { await fetchAccountNFTItem({ symbol: parsedKeysItem.symbol, chainId: parsedKeysItem.chainId as ChainId, - caAddressInfos: caAddressInfos.filter(item => item.chainId === parsedKeysItem.chainId), + addressInfos: addressInfos.filter(item => item.chainId === parsedKeysItem.chainId), pageNum: 0, }); }); } - }, [caAddressInfos, fetchAccountNFTItem, nftSectionUiType, openCollectionObj]); + }, [addressInfos, fetchAccountNFTItem, nftSectionUiType, openCollectionObj]); useEffect(() => { const listener = myEvents.updateMintStatus.addListener(async params => { const onlyUpdateRecentStatus = params?.onlyUpdateRecentStatus; - const res = await getRecentStatus(); - setRecentStatus(res.status); - setItemId(res.itemId); - setImageUrl(res.imageUrl); + // const res = await getRecentStatus(); + // setRecentStatus(res.status); + // setItemId(res.itemId); + // setImageUrl(res.imageUrl); console.log('wfs====fetchAccountNFTCollectionInfoList4'); if (!onlyUpdateRecentStatus) { await getNFTCollectionsAsync(true); @@ -167,28 +167,17 @@ export default function NFTSection() { // myEvents.updateNFT.emit(); }); return () => listener.remove(); - }, [ - caAddressInfos, - fetchAccountNFTItem, - getNFTCollectionsAsync, - getRecentStatus, - nftSectionUiType, - openCollectionObj, - setImageUrl, - setItemId, - setRecentStatus, - updateNFTItems, - ]); + }, [addressInfos, fetchAccountNFTItem, getNFTCollectionsAsync, nftSectionUiType, openCollectionObj, updateNFTItems]); useEffect(() => { if (timerRef.current) { clearInterval(timerRef.current); } timerRef.current = setInterval(async () => { - const res = await getRecentStatus(); - setRecentStatus(res.status); - setItemId(res.itemId); - setImageUrl(res.imageUrl); + // const res = await getRecentStatus(); + // setRecentStatus(res.status); + // setItemId(res.itemId); + // setImageUrl(res.imageUrl); setOpenCollectionObj({}); console.log('wfs====fetchAccountNFTCollectionInfoList5'); getNFTCollectionsAsync(true); @@ -198,7 +187,7 @@ export default function NFTSection() { clearInterval(timerRef.current); } }; - }, [setRecentStatus, setItemId, timerRef, getRecentStatus, getNFTCollectionsAsync, setImageUrl]); + }, [timerRef, getNFTCollectionsAsync]); useEffect(() => { console.log('wfs====fetchAccountNFTCollectionInfoList6'); @@ -240,11 +229,11 @@ export default function NFTSection() { await fetchAccountNFTItem({ symbol, chainId, - caAddressInfos: caAddressInfos.filter(item => item.chainId === chainId), + addressInfos: addressInfos.filter(item => item.chainId === chainId), pageNum: 0, }); }, - [caAddressInfos, fetchAccountNFTItem], + [addressInfos, fetchAccountNFTItem], ); // useEffect(() => { // if (isInitTheFirstFiveItem.current) { @@ -262,7 +251,7 @@ export default function NFTSection() { // await fetchAccountNFTItem({ // symbol, // chainId, - // caAddressInfos: caAddressInfos.filter(innerItem => innerItem.chainId === chainId), + // addressInfos: addressInfos.filter(innerItem => innerItem.chainId === chainId), // pageNum: 0, // }); // // const key = `${symbol}${chainId}`; @@ -290,7 +279,7 @@ export default function NFTSection() { // }); // isInitTheFirstFiveItem.current = true; // })(); - // }, [caAddressInfos, collectionItemProp, fetchAccountNFTItem, nftSectionUiType]); + // }, [addressInfos, collectionItemProp, fetchAccountNFTItem, nftSectionUiType]); const loadMoreItem = useCallback( async (symbol: string, chainId: ChainId, pageNum = 0) => { @@ -302,7 +291,7 @@ export default function NFTSection() { fetchAccountNFTItem({ symbol, chainId, - caAddressInfos: caAddressInfos.filter(item => item.chainId === chainId), + addressInfos: addressInfos.filter(item => item.chainId === chainId), pageNum: pageNum, }); @@ -314,7 +303,7 @@ export default function NFTSection() { }, })); }, - [accountNFTList, caAddressInfos, fetchAccountNFTItem, openCollectionObj], + [accountNFTList, addressInfos, fetchAccountNFTItem, openCollectionObj], ); // const handleScroll = (event: NativeSyntheticEvent) => { @@ -363,9 +352,9 @@ export default function NFTSection() { getNFTCollectionsAsync(); }} onEndReachedThreshold={0.5} - ListHeaderComponent={ - - } + // ListHeaderComponent={ + // + // } /> {/* */} diff --git a/packages/mobile-aelf/js/pages/DashBoard/TokenSection/index.tsx b/packages/mobile-aelf/js/pages/DashBoard/TokenSection/index.tsx index 44c5cd27b0..bfd1628265 100644 --- a/packages/mobile-aelf/js/pages/DashBoard/TokenSection/index.tsx +++ b/packages/mobile-aelf/js/pages/DashBoard/TokenSection/index.tsx @@ -1,34 +1,34 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import navigationService from 'utils/navigationService'; import { View, FlatList, Image } from 'react-native'; -import { ITokenSectionResponse } from '@portkey-wallet/types/types-ca/token'; +import { ITokenSectionResponse } from '@portkey-wallet/types/types-eoa/token'; import fonts from 'assets/theme/fonts'; import { pTd } from 'utils/unit'; import TokenListUnionItem from 'components/TokenListUnionItem'; import { useLanguage } from 'i18n/hooks'; -import { PAGE_SIZE_IN_ACCOUNT_TOKEN, REFRESH_TIME } from '@portkey-wallet/constants/constants-ca/assets'; +import { PAGE_SIZE_IN_ACCOUNT_TOKEN, REFRESH_TIME } from '@portkey-wallet/constants/constants-eoa/assets'; import { screenWidth } from '@portkey-wallet/utils/mobile/device'; import Touchable from 'components/Touchable'; -import { useAccountTokenInfo } from '@portkey-wallet/hooks/hooks-ca/assets'; -import { useAccountBalanceUSD } from '@portkey-wallet/hooks/hooks-ca/balances'; +import { useAccountTokenInfo } from '@portkey-wallet/hooks/hooks-eoa/assets'; +import { useAccountBalanceUSD } from '@portkey-wallet/hooks/hooks-eoa/assets'; import { useLatestRef } from '@portkey-wallet/hooks'; -import { useCaAddressInfoList } from '@portkey-wallet/hooks/hooks-ca/wallet'; -import { useCurrentUserInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { useCurrentAddressInfos, useCurrentHideAssetsState } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import useLockCallback from '@portkey-wallet/hooks/useLockCallback'; import { makeStyles } from '@rneui/themed'; import Svg from 'components/Svg'; import { TextL } from 'components/CommonText'; +import { request } from '@portkey-wallet/api/api-did'; export default function TokenSection() { const { t } = useLanguage(); - const userInfo = useCurrentUserInfo(); + const hideAssets = useCurrentHideAssetsState(); const styles = getStyles(); const { accountTokenList, totalRecordCount, fetchAccountTokenInfoList } = useAccountTokenInfo(); const accountBalanceUSD = useAccountBalanceUSD(); const timerRef = useRef(null); - const caAddressInfos = useCaAddressInfoList(); - const caAddressInfosList = useLatestRef(caAddressInfos); + const addressInfos = useCurrentAddressInfos(); + const addressInfosList = useLatestRef(addressInfos); const [extraIndex, setExtraIndex] = useState(0); const [selectedItem] = useState(new Map()); @@ -60,37 +60,37 @@ export default function TokenSection() { item={item} onPress={onNavigate} onExpand={onExpand} - hideBalance={userInfo.hideAssets} + hideBalance={hideAssets} selected={selectedItem.get(item.symbol) ?? false} /> ); }, - [onExpand, onNavigate, selectedItem, userInfo.hideAssets], + [onExpand, onNavigate, selectedItem, hideAssets], ); const getAccountTokenList = useLockCallback( async (isInit: boolean) => { - if (totalRecordCount && accountTokenList.length >= totalRecordCount && !isInit) { + if (totalRecordCount && (accountTokenList?.length || 0) >= totalRecordCount && !isInit) { return; } - + console.log('====abcd', request); try { await fetchAccountTokenInfoList({ - caAddressInfos: caAddressInfosList.current || [], - skipCount: isInit ? 0 : accountTokenList.length, + addressInfos: addressInfosList.current || [], + skipCount: isInit ? 0 : accountTokenList?.length || 0, maxResultCount: PAGE_SIZE_IN_ACCOUNT_TOKEN, }); } catch (error) { console.log(error, '===error'); } }, - [accountTokenList.length, caAddressInfosList, fetchAccountTokenInfoList, totalRecordCount], + [accountTokenList?.length, addressInfosList, fetchAccountTokenInfoList, totalRecordCount], ); useEffect(() => { getAccountTokenList(true); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [caAddressInfosList]); + }, [addressInfosList]); useEffect(() => { if (timerRef.current) { diff --git a/packages/mobile-aelf/js/pages/DashBoard/index.tsx b/packages/mobile-aelf/js/pages/DashBoard/index.tsx index b1a8c9116a..17ab4c9e5d 100644 --- a/packages/mobile-aelf/js/pages/DashBoard/index.tsx +++ b/packages/mobile-aelf/js/pages/DashBoard/index.tsx @@ -10,58 +10,61 @@ import { RootStackName } from 'navigation'; import myEvents from 'utils/deviceEvent'; import useReportAnalyticsEvent from 'hooks/userExceptionMessage'; import { useEffectOnce } from '@portkey-wallet/hooks'; -import { useReferral } from '@portkey-wallet/hooks/hooks-ca/referral'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; -import { useAccountBalanceUSD } from '@portkey-wallet/hooks/hooks-ca/balances'; -import { useGetCurrentAccountTokenPrice } from '@portkey-wallet/hooks/hooks-ca/useTokensPrice'; -import { useAccountTokenInfo, useAccountNFTCollectionInfo } from '@portkey-wallet/hooks/hooks-ca/assets'; +import { useReferral } from '@portkey-wallet/hooks/hooks-eoa/referral'; +import { useAccountBalanceUSD } from '@portkey-wallet/hooks/hooks-eoa/assets'; +import { useGetCurrentAccountTokenPrice } from '@portkey-wallet/hooks/hooks-eoa/useTokensPrice'; +import { useAccountTokenInfo, useAccountNFTCollectionInfo } from '@portkey-wallet/hooks/hooks-eoa/assets'; import { useLatestRef } from '@portkey-wallet/hooks'; -import { useCaAddressInfoList } from '@portkey-wallet/hooks/hooks-ca/wallet'; import { formatAmountUSDShow } from '@portkey-wallet/utils/converter'; -import { useInitCmsBanner } from '@portkey-wallet/hooks/hooks-ca/cms/banner'; -import { useDiscoverData } from '@portkey-wallet/hooks/hooks-ca/cms/discover'; +// import { useInitCmsBanner } from '@portkey-wallet/hooks/hooks-eoa/cms/banner'; +// import { useDiscoverData } from '@portkey-wallet/hooks/hooks-eoa/cms/discover'; import { useTheme } from '@rneui/themed'; import { PAGE_SIZE_IN_ACCOUNT_TOKEN, PAGE_SIZE_IN_ACCOUNT_NFT_COLLECTION, -} from '@portkey-wallet/constants/constants-ca/assets'; +} from '@portkey-wallet/constants/constants-eoa/assets'; +import { useCurrentAddressInfos } from '@portkey-wallet/hooks/hooks-eoa/wallet'; +import { useIsMainnet } from 'hooks/useNetwork'; const DashBoard: React.FC = ({ navigation }) => { + const { theme } = useTheme(); const isMainnet = useIsMainnet(); + const addressInfos = useCurrentAddressInfos(); + console.log('addressInfos===', addressInfos); + const addressInfosList = useLatestRef(addressInfos); const reportAnalyticsEvent = useReportAnalyticsEvent(); - const { getViewReferralStatusStatus, getReferralLink } = useReferral(); + // const { getViewReferralStatusStatus, getReferralLink } = useReferral(); const [, getTokenPrice] = useGetCurrentAccountTokenPrice(); const { fetchAccountTokenInfoList } = useAccountTokenInfo(); const { fetchAccountNFTCollectionInfoList } = useAccountNFTCollectionInfo(); - const caAddressInfos = useCaAddressInfoList(); - const caAddressInfosList = useLatestRef(caAddressInfos); const accountBalanceUSD = useAccountBalanceUSD(); - const { fetchDiscoverTabAsync } = useDiscoverData(); - const { theme } = useTheme(); - useInitCmsBanner(); + // const { fetchDiscoverTabAsync } = useDiscoverData(); + // const { theme } = useTheme(); + // useInitCmsBanner(); const [refreshing, setRefreshing] = useState(false); const onRefresh = useCallback(async () => { + console.log('refresh====!!!'); myEvents.refreshHomeListStart.emit(); setRefreshing(true); getTokenPrice(); console.log('wfs====fetchAccountNFTCollectionInfoList1'); await Promise.all([ fetchAccountTokenInfoList({ - caAddressInfos: caAddressInfosList.current || [], + addressInfos: addressInfosList.current || [], skipCount: 0, maxResultCount: PAGE_SIZE_IN_ACCOUNT_TOKEN, }), fetchAccountNFTCollectionInfoList({ - caAddressInfos, + addressInfos: addressInfosList.current || [], skipCount: 0, maxResultCount: PAGE_SIZE_IN_ACCOUNT_NFT_COLLECTION, }), ]); myEvents.refreshHomeList.emit(); setRefreshing(false); - }, [caAddressInfos, caAddressInfosList, fetchAccountNFTCollectionInfoList, fetchAccountTokenInfoList, getTokenPrice]); + }, [addressInfosList, fetchAccountTokenInfoList, fetchAccountNFTCollectionInfoList, getTokenPrice]); const navToBottomTab = useCallback( (tabName: RootStackName, params: any) => { @@ -74,12 +77,12 @@ const DashBoard: React.FC = ({ navigation }) => { useEffectOnce(() => { reportAnalyticsEvent({ message: 'DashBoard' }); - getViewReferralStatusStatus(); - getReferralLink(); - fetchDiscoverTabAsync(); + // getViewReferralStatusStatus(); + // getReferralLink(); + // fetchDiscoverTabAsync(); }); - // nav's to chat tab + // nav's to target tab useEffect(() => { const listener = myEvents.navToBottomTab.addListener(({ tabName, params }) => navToBottomTab(tabName, params)); return () => listener.remove(); diff --git a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx index 5e96bfa97b..17daeb297a 100644 --- a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx +++ b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx @@ -3,22 +3,27 @@ import SafeAreaBox from 'components/SafeAreaBox'; import { useTheme } from '@rneui/themed'; import { TextM } from 'components/CommonText'; import { ScrollView } from 'react-native'; -import { useCurrentAccount, useWalletListState } from '@portkey-wallet/hooks/hooks-eoa/wallet'; -import CommonButton from 'components/CommonButton'; -import navigationService from 'utils/navigationService'; -import { useCheckSecurityLock } from 'hooks/securityLock'; import { useBackupWalletModal } from '../../Login/hooks/useBackupWalletModal'; import * as Clipboard from 'expo-clipboard'; import { useGetContract, useGetViewContract } from 'hooks/contract'; import { useCurrentNetwork, useSwitchNetwork } from '@portkey-wallet/hooks/hooks-eoa/network'; import { useDAppChain, useDAppChainId, useGetChainInfo } from '@portkey-wallet/hooks/hooks-eoa/network/chain'; +import { useCurrentAccount, useSwitchNetworkType, useWalletListState } from '@portkey-wallet/hooks/hooks-eoa/wallet'; +import CommonButton from 'components/CommonButton'; +import navigationService from 'utils/navigationService'; +import { useCheckSecurityLock } from 'hooks/securityLock'; +import { useAppCommonDispatch, useAppEOASelector } from '@portkey-wallet/hooks'; +import { resetWallet } from '@portkey-wallet/store/store-eoa/wallet/actions'; const HomeTab: React.FC = ({ _ }) => { + const a = useAppEOASelector(state => state); + console.log('a=========', JSON.stringify(a)); const { theme } = useTheme(); const currentAccount = useCurrentAccount(); const walletList = useWalletListState(); + const dispatch = useAppCommonDispatch(); + const switchNetwork = useSwitchNetworkType(); const currentNetwork = useCurrentNetwork(); - useEffect(() => { console.log('currentAccount', currentAccount); console.log('walletList', walletList); @@ -86,7 +91,27 @@ const HomeTab: React.FC = ({ _ }) => { }, [currentAccount?.address, dAppChainId, getChainInfo, getViewContract]); const switchNetwork = useSwitchNetwork(); - + const resetWalletClick = useCallback(async () => { + try { + dispatch(resetWallet()); + navigationService.reset('Referral'); + } catch (error) { + console.log('checkPin error', error); + } + }, [dispatch]); + const switchNetworkClick = useCallback(async () => { + try { + switchNetwork(); + // navigationService.reset('Referral'); + } catch (error) { + console.log('checkPin error', error); + } + }, [switchNetwork]); + useEffect(() => { + if (walletList.length < 1) { + navigationService.reset('Referral'); + } + }, [walletList.length]); return ( @@ -147,6 +172,12 @@ const HomeTab: React.FC = ({ _ }) => { Send ELF + + Reset Wallet + + + Switch NetworkType (current: {currentNetwork}) + ); diff --git a/packages/mobile-aelf/js/pages/NFT/CollectionDetail/index.tsx b/packages/mobile-aelf/js/pages/NFT/CollectionDetail/index.tsx index 2a6696f377..df0c6febbb 100644 --- a/packages/mobile-aelf/js/pages/NFT/CollectionDetail/index.tsx +++ b/packages/mobile-aelf/js/pages/NFT/CollectionDetail/index.tsx @@ -8,17 +8,18 @@ import { TextM, TextXXL } from 'components/CommonText'; import PageContainer from 'components/PageContainer'; import { pTd } from 'utils/unit'; import useRouterParams from '@portkey-wallet/hooks/useRouterParams'; -import { useAccountNFTCollectionInfo } from '@portkey-wallet/hooks/hooks-ca/assets'; -import { useCaAddressInfoList, useWallet } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { useAccountNFTCollectionInfo } from '@portkey-wallet/hooks/hooks-eoa/assets'; +import { useCurrentAddressInfos } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import { ChainId } from '@portkey-wallet/types'; import { Skeleton } from '@rneui/base'; import { PortkeyLinearGradientV2 } from 'components/PortkeyLinearGradient'; import Touchable from 'components/Touchable'; import navigationService from 'utils/navigationService'; -import { NFTItemBaseType } from '@portkey-wallet/types/types-ca/assets'; +import { NFTItemBaseType } from '@portkey-wallet/types/types-eoa/assets'; import { divDecimalsToShow } from '@portkey-wallet/utils/converter'; import { formatChainInfoToShow } from '@portkey-wallet/utils'; import NFTAvatar from 'components/NFTAvatar'; +import { useCurrentNetwork } from '@portkey-wallet/hooks/hooks-eoa/network'; export interface ICollectionDetailProps { name: string; @@ -37,9 +38,9 @@ const CollectionDetail = () => { const [isInit, setIsInit] = useState(true); const pageNumRef = useRef(0); const [isFetching, setIsFetching] = useState(false); - const caAddressInfos = useCaAddressInfoList(); + const addressInfos = useCurrentAddressInfos(); const { fetchAccountNFTItem, accountNFTList } = useAccountNFTCollectionInfo(); - const { currentNetwork } = useWallet(); + const currentNetwork = useCurrentNetwork(); const currentCollectionObj = useMemo(() => { const currentCollection = accountNFTList.find(item => item.symbol === symbol && item.chainId === chainId); if ((currentCollection?.children?.length || 0) === 0) { @@ -50,6 +51,7 @@ const CollectionDetail = () => { } return currentCollection; }, [accountNFTList, chainId, symbol]); + console.log('currentCollectionObj', currentCollectionObj); const [realItemCount, setRealItemCount] = useState(itemCount); useEffect(() => { if (currentCollectionObj?.totalRecordCount && currentCollectionObj?.totalRecordCount !== itemCount) { @@ -67,14 +69,14 @@ const CollectionDetail = () => { await fetchAccountNFTItem({ symbol, chainId, - caAddressInfos: caAddressInfos.filter(item => item.chainId === chainId), + addressInfos: addressInfos.filter(item => item.chainId === chainId), pageNum: 0, }); setIsFetching(false); pageNumRef.current += 1; } })(); - }, [caAddressInfos, chainId, currentCollectionObj?.children?.length, fetchAccountNFTItem, symbol]); + }, [addressInfos, chainId, currentCollectionObj?.children?.length, fetchAccountNFTItem, symbol]); const showChildren = useMemo(() => currentCollectionObj?.children, [currentCollectionObj?.children]); const loadMoreItem = useCallback(async () => { @@ -86,12 +88,12 @@ const CollectionDetail = () => { await fetchAccountNFTItem({ symbol, chainId, - caAddressInfos: caAddressInfos.filter(item => item.chainId === chainId), + addressInfos: addressInfos.filter(item => item.chainId === chainId), pageNum: pageNumRef.current, }); setIsFetching(false); pageNumRef.current += 1; - }, [caAddressInfos, chainId, fetchAccountNFTItem, realItemCount, showChildren?.length, symbol]); + }, [addressInfos, chainId, fetchAccountNFTItem, realItemCount, showChildren?.length, symbol]); const skeletonList: number[] = useMemo(() => { if (!isFetching && !isInit) { return []; diff --git a/packages/mobile-aelf/js/pages/Receive/ReceiveNFTs/index.tsx b/packages/mobile-aelf/js/pages/Receive/ReceiveNFTs/index.tsx index a71afdf388..d3a09064ad 100644 --- a/packages/mobile-aelf/js/pages/Receive/ReceiveNFTs/index.tsx +++ b/packages/mobile-aelf/js/pages/Receive/ReceiveNFTs/index.tsx @@ -9,11 +9,11 @@ import { RECEIVE_HELP_URL } from 'constants/common'; import { openOutLink } from 'utils/link'; import ModeChangeSelector from 'pages/DashBoard/componets/ModeChangeSelector'; import ReceiveQRCode from '../components/ReceiveQRCode'; -import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; -import { useCurrentNetwork as useCurrentNetworkType } from '@portkey-wallet/hooks/hooks-ca/network'; +import { useCurrentNetwork as useCurrentNetworkType } from '@portkey-wallet/hooks/hooks-eoa/network'; import { Text, View } from 'react-native'; import { StyleSheet } from 'react-native'; import fonts from 'assets/theme/fonts'; +import { useCurrentAccount } from '@portkey-wallet/hooks/hooks-eoa/wallet'; const networkList = [ { @@ -32,15 +32,11 @@ export default function ReceiveNFTs() { const styles = getStyles(); const [destinationChain, setDestinationChain] = useState(networkList[0]); const [currentSelectedIndex, setCurrentSelectedIndex] = useState(networkList[0].key); - const currentWallet = useCurrentWalletInfo(); + const { address = '' } = useCurrentAccount() ?? { address: '' }; const currentNetworkType = useCurrentNetworkType(); const destinationChainId = destinationChain.key === 'aelf dAppChain' ? (currentNetworkType === 'MAINNET' ? 'tDVV' : 'tDVW') : 'AELF'; - const currentCaAddress = currentWallet?.[destinationChainId]?.caAddress; - const toCaAddress = useMemo( - () => `ELF_${currentCaAddress}_${destinationChainId}`, - [currentCaAddress, destinationChainId], - ); + const toCaAddress = useMemo(() => `ELF_${address}_${destinationChainId}`, [address, destinationChainId]); const qrcodeAddress = useMemo(() => { return toCaAddress; diff --git a/packages/mobile-aelf/js/pages/Receive/SelectToken/index.tsx b/packages/mobile-aelf/js/pages/Receive/SelectToken/index.tsx index 25c9ed1b64..f07b003bb5 100644 --- a/packages/mobile-aelf/js/pages/Receive/SelectToken/index.tsx +++ b/packages/mobile-aelf/js/pages/Receive/SelectToken/index.tsx @@ -1,7 +1,7 @@ import React, { useState, useCallback, useEffect, useMemo } from 'react'; import { FlatList, View } from 'react-native'; -import { IUserTokenItemResponse } from '@portkey-wallet/types/types-ca/token'; -import { MAIN_CHAIN_ID } from '@portkey-wallet/constants/constants-ca/activity'; +import { IUserTokenItemResponse } from '@portkey-wallet/types/types-eoa/token'; +import { MAIN_CHAIN_ID } from '@portkey-wallet/constants/constants-eoa/activity'; import { defaultColors } from 'assets/theme'; import fonts from 'assets/theme/fonts'; import { pTd } from 'utils/unit'; @@ -9,11 +9,11 @@ import { useLanguage } from 'i18n/hooks'; import { useAppCommonDispatch, useLatestRef } from '@portkey-wallet/hooks'; import useDebounce from 'hooks/useDebounce'; import useEffectOnce from 'hooks/useEffectOnce'; -import { useChainIdList } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { useChainIdList } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import NoData from 'components/NoData'; -import useToken from '@portkey-wallet/hooks/hooks-ca/useToken'; +import useToken from '@portkey-wallet/hooks/hooks-eoa/useToken'; import useLockCallback from '@portkey-wallet/hooks/useLockCallback'; -import { PAGE_SIZE_DEFAULT, PAGE_SIZE_IN_ACCOUNT_ASSETS } from '@portkey-wallet/constants/constants-ca/assets'; +import { PAGE_SIZE_DEFAULT, PAGE_SIZE_IN_ACCOUNT_ASSETS } from '@portkey-wallet/constants/constants-eoa/assets'; import myEvents from 'utils/deviceEvent'; import navigationService from 'utils/navigationService'; import PageContainer from 'components/PageContainer'; @@ -28,6 +28,7 @@ import Svg from 'components/Svg'; import GStyles from 'assets/theme/GStyles'; const SelectToken = () => { + console.log('SelectToken!!!!!'); const { t } = useLanguage(); const { tokenDataShowInMarket = [], totalRecordCount, fetchTokenInfoList } = useToken(); const dispatch = useAppCommonDispatch(); diff --git a/packages/mobile-aelf/js/pages/Token/TokenDetail/index.tsx b/packages/mobile-aelf/js/pages/Token/TokenDetail/index.tsx index 71c4b970f7..2b212f9ef9 100644 --- a/packages/mobile-aelf/js/pages/Token/TokenDetail/index.tsx +++ b/packages/mobile-aelf/js/pages/Token/TokenDetail/index.tsx @@ -3,7 +3,7 @@ import { StyleSheet } from 'react-native'; import PageContainer from 'components/PageContainer'; import { useNavigation } from '@react-navigation/native'; import { useLanguage } from 'i18n/hooks'; -import { ITokenSectionResponse } from '@portkey-wallet/types/types-ca/token'; +import { ITokenSectionResponse } from '@portkey-wallet/types/types-eoa/token'; import useRouterParams from '@portkey-wallet/hooks/useRouterParams'; import { TokenTitle } from 'components/TokenTitle'; import NoData from 'components/NoData'; diff --git a/packages/mobile-aelf/js/pages/Token/components/TokenDetailPage/index.tsx b/packages/mobile-aelf/js/pages/Token/components/TokenDetailPage/index.tsx index ccf2d3f5f4..42e1c497bb 100644 --- a/packages/mobile-aelf/js/pages/Token/components/TokenDetailPage/index.tsx +++ b/packages/mobile-aelf/js/pages/Token/components/TokenDetailPage/index.tsx @@ -7,22 +7,22 @@ import navigationService from 'utils/navigationService'; import { useLanguage } from 'i18n/hooks'; import { FlashList } from '@shopify/flash-list'; import { TextL, TextS } from 'components/CommonText'; -import { TokenItemShowType, ITokenSectionResponse } from '@portkey-wallet/types/types-ca/token'; +import { TokenItemShowType, ITokenSectionResponse } from '@portkey-wallet/types/types-eoa/token'; import { useAppCASelector, useAppCommonDispatch } from '@portkey-wallet/hooks'; -import { useCaAddressInfoList } from '@portkey-wallet/hooks/hooks-ca/wallet'; -import { ActivityItemType } from '@portkey-wallet/types/types-ca/activity'; -import { getActivityListAsync } from '@portkey-wallet/store/store-ca/activity/action'; +import { useCurrentAddressInfos } from '@portkey-wallet/hooks/hooks-eoa/wallet'; +import { ActivityItemType } from '@portkey-wallet/types/types-eoa/activity'; +import { getActivityListAsync } from '@portkey-wallet/store/store-eoa/activity/action'; import { getCurrentActivityMapKey } from '@portkey-wallet/utils/activity'; import { isIOS } from '@portkey-wallet/utils/mobile/device'; -import { IActivitiesApiParams } from '@portkey-wallet/store/store-ca/activity/type'; +import { IActivitiesApiParams } from '@portkey-wallet/store/store-eoa/activity/type'; import { formatAmountUSDShow, formatTokenAmountShowWithDecimals } from '@portkey-wallet/utils/converter'; import fonts from 'assets/theme/fonts'; import { sleep } from '@portkey-wallet/utils'; import BuyButton from 'components/BuyButton'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; -import { ON_END_REACHED_THRESHOLD } from '@portkey-wallet/constants/constants-ca/activity'; +import { useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; +import { ON_END_REACHED_THRESHOLD } from '@portkey-wallet/constants/constants-eoa/activity'; import { checkEnabledFunctionalTypes } from '@portkey-wallet/utils/compass'; -import { useTokenInfoFromStore } from '@portkey-wallet/hooks/hooks-ca/assets'; +import { useTokenInfoFromStore } from '@portkey-wallet/hooks/hooks-eoa/assets'; import ActivityItem from 'components/ActivityItem'; import OutlinedButton from 'components/OutlinedButton'; import { FlatListFooterLoading } from 'components/FlatListFooterLoading'; @@ -31,9 +31,9 @@ import useLockCallback from '@portkey-wallet/hooks/useLockCallback'; import { pTd } from 'utils/unit'; import { useAppRampEntryShow } from 'hooks/ramp'; import { useGetAccountTokenList } from 'hooks/account'; -import { SHOW_RAMP_SYMBOL_LIST } from '@portkey-wallet/constants/constants-ca/ramp'; +import { SHOW_RAMP_SYMBOL_LIST } from '@portkey-wallet/constants/constants-eoa/ramp'; import { useAppSwapButtonShow } from 'hooks/cms'; -import { useDefaultToken } from '@portkey-wallet/hooks/hooks-ca/chainList'; +import { useDefaultToken } from '@portkey-wallet/hooks/hooks-eoa/chainList'; import FaucetButton from 'components/FaucetButton'; import { darkColors } from 'assets/theme'; import { showActivityDetail } from 'components/ActivityOverlay'; @@ -54,24 +54,25 @@ const TokenDetailPage: React.FC = ({ tokenInfo, tokenSection const { t } = useLanguage(); const currentTokenInfo = useTokenInfoFromStore(tokenInfo.symbol, tokenInfo.chainId) || tokenInfo; const isMainnet = useIsMainnet(); - const caAddressInfos = useCaAddressInfoList(); + const addressInfos = useCurrentAddressInfos(); const dispatch = useAppCommonDispatch(); const activity = useAppCASelector(state => state.activity); const defaultToken = useDefaultToken(tokenInfo.chainId); - const { isSwapShow } = useAppSwapButtonShow(); + // const { isSwapShow } = useAppSwapButtonShow(); + const isSwapShow = true; const { buy, swap } = checkEnabledFunctionalTypes(tokenInfo.symbol, tokenInfo.chainId === 'AELF'); - const { isRampShow } = useAppRampEntryShow(); + // const { isRampShow } = useAppRampEntryShow(); const getAccountTokenList = useGetAccountTokenList(); - const isBuyButtonShow = useMemo( - () => - SHOW_RAMP_SYMBOL_LIST.includes(tokenInfo.symbol) && - tokenInfo.chainId === 'AELF' && - isRampShow && - isMainnet && - buy, - [buy, isMainnet, isRampShow, tokenInfo.chainId, tokenInfo.symbol], - ); - + // const isBuyButtonShow = useMemo( + // () => + // SHOW_RAMP_SYMBOL_LIST.includes(tokenInfo.symbol) && + // tokenInfo.chainId === 'AELF' && + // isRampShow && + // isMainnet && + // buy, + // [buy, isMainnet, isRampShow, tokenInfo.chainId, tokenInfo.symbol], + // ); + const isBuyButtonShow = false; const isFaucetButtonShow = useMemo( () => !isMainnet && tokenInfo.symbol === defaultToken.symbol && tokenInfo.chainId === 'AELF', [defaultToken.symbol, isMainnet, tokenInfo.chainId, tokenInfo.symbol], @@ -94,11 +95,11 @@ const TokenDetailPage: React.FC = ({ tokenInfo, tokenSection const fixedParamObj = useMemo( () => ({ - caAddressInfos: caAddressInfos.filter(ele => ele.chainId === tokenInfo.chainId), + addressInfos: addressInfos.filter(ele => ele.chainId === tokenInfo.chainId), symbol: tokenInfo.symbol, chainId: tokenInfo.chainId, }), - [caAddressInfos, tokenInfo.chainId, tokenInfo.symbol], + [addressInfos, tokenInfo.chainId, tokenInfo.symbol], ); const pageInfoRef = useRef({ ...INIT_PAGE_INFO, diff --git a/packages/mobile-aelf/js/pages/Token/components/TokenDetailTopTab/index.tsx b/packages/mobile-aelf/js/pages/Token/components/TokenDetailTopTab/index.tsx index 077a571814..759047fcbb 100644 --- a/packages/mobile-aelf/js/pages/Token/components/TokenDetailTopTab/index.tsx +++ b/packages/mobile-aelf/js/pages/Token/components/TokenDetailTopTab/index.tsx @@ -26,6 +26,7 @@ const TokenDetailTopTab: React.FC = props => { } screenOptions={{ swipeEnabled: false, diff --git a/packages/mobile-aelf/js/store/rootReducer.ts b/packages/mobile-aelf/js/store/rootReducer.ts index 032b1dd0d0..b9cc1fce9c 100644 --- a/packages/mobile-aelf/js/store/rootReducer.ts +++ b/packages/mobile-aelf/js/store/rootReducer.ts @@ -7,6 +7,9 @@ import { walletSlice } from '@portkey-wallet/store/store-eoa/wallet/slice'; import { settingsSlice } from '@portkey-wallet/store/settings/slice'; import chainSlice from '@portkey-wallet/store/network/slice'; import { networkSlice } from '@portkey-wallet/store/store-eoa/network/slice'; +import assetsSlice from '@portkey-wallet/store/store-eoa/assets/slice'; +import tokenManagementSlice from '@portkey-wallet/store/store-eoa/tokenManagement/slice'; +import activitySlice from '@portkey-wallet/store/store-eoa/activity/slice'; const userPersistConfig = { key: userSlice.name, @@ -46,9 +49,9 @@ const rootReducer = combineReducers({ // [miscSlice.name]: miscSlice.reducer, // [guardiansSlice.name]: guardiansSlice.reducer, // [recentSlice.name]: recentSlice.reducer, - // [assetsSlice.name]: assetsSlice.reducer, - // [activitySlice.name]: activitySlice.reducer, - // [tokenManagementSlice.name]: tokenManagementSlice.reducer, + [assetsSlice.name]: assetsSlice.reducer, + [activitySlice.name]: activitySlice.reducer, + [tokenManagementSlice.name]: tokenManagementSlice.reducer, // [dappSlice.name]: dappSlice.reducer, // [cmsSlice.name]: cmsSlice.reducer, diff --git a/packages/mobile-aelf/js/store/user/actions.ts b/packages/mobile-aelf/js/store/user/actions.ts index 457b149058..07459a2306 100644 --- a/packages/mobile-aelf/js/store/user/actions.ts +++ b/packages/mobile-aelf/js/store/user/actions.ts @@ -1,3 +1,3 @@ import userSlice from './slice'; -export const { setCredentials, setBiometrics, resetUser, setUpdateInfo } = userSlice.actions; +export const { setCredentials, setBiometrics, resetUser, setUpdateInfo, setNetworkType } = userSlice.actions; diff --git a/packages/mobile-aelf/js/store/user/slice.ts b/packages/mobile-aelf/js/store/user/slice.ts index c78b21f688..938bda8b6f 100644 --- a/packages/mobile-aelf/js/store/user/slice.ts +++ b/packages/mobile-aelf/js/store/user/slice.ts @@ -1,7 +1,8 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { UserStoreState } from './types'; -const initialState: UserStoreState = {}; +const initialState: UserStoreState = { +}; const userSlice = createSlice({ name: 'user', initialState, diff --git a/packages/mobile-aelf/js/types/navigate.ts b/packages/mobile-aelf/js/types/navigate.ts index 60413addbd..83fd7a6dd1 100644 --- a/packages/mobile-aelf/js/types/navigate.ts +++ b/packages/mobile-aelf/js/types/navigate.ts @@ -30,6 +30,7 @@ export type NavigateMultiLevelParams = { }; export enum TabRouteNameEnum { + TEST = 'Test', WALLET = 'Wallet', DISCOVER = 'Discover', ACTIVITY = 'Activity', diff --git a/packages/mobile-app-did/android/.settings/org.eclipse.buildship.core.prefs b/packages/mobile-app-did/android/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 0000000000..463b1e871a --- /dev/null +++ b/packages/mobile-app-did/android/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments=--init-script /var/folders/m1/wcvsl8_91vq0xhd8qfhdd3dw0000gp/T/db3b08fc4a9ef609cb16b96b200fa13e563f396e9bb1ed0905fdab7bc3bc513b.gradle --init-script /var/folders/m1/wcvsl8_91vq0xhd8qfhdd3dw0000gp/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/packages/store/store-eoa/activity/action.ts b/packages/store/store-eoa/activity/action.ts new file mode 100644 index 0000000000..df38a126ea --- /dev/null +++ b/packages/store/store-eoa/activity/action.ts @@ -0,0 +1,26 @@ +import { createAsyncThunk } from '@reduxjs/toolkit'; +import { fetchActivities } from './api'; +import { ActivityStateMapAttributes, IActivitiesApiParams } from './type'; + +export const getActivityListAsync = createAsyncThunk( + 'activity/getActivityList', + async (params: IActivitiesApiParams): Promise => { + const response = await fetchActivities(params).catch(error => { + if (error?.type) throw Error(error.type); + if (error?.error?.message) throw Error(error.error.message); + throw Error(JSON.stringify(error)); + }); + console.log('=====getActivityListAsync', JSON.stringify(response)); + if (!response?.data || !response?.totalRecordCount) throw Error('No data'); + + return { + data: response.data, + totalRecordCount: response.totalRecordCount, + maxResultCount: params.maxResultCount, + skipCount: params.skipCount, + chainId: params.chainId, + symbol: params.symbol, + hasNextPage: response.hasNextPage, + }; + }, +); diff --git a/packages/store/store-eoa/activity/api.ts b/packages/store/store-eoa/activity/api.ts new file mode 100644 index 0000000000..ee669b200d --- /dev/null +++ b/packages/store/store-eoa/activity/api.ts @@ -0,0 +1,41 @@ +import { request } from '@portkey-wallet/api/api-did'; +import { NFT_MIDDLE_SIZE } from '@portkey-wallet/constants/constants-eoa/assets'; +import { ActivityItemType } from '@portkey-wallet/types/types-eoa/activity'; +import { + IActivityApiParams, + IActivitiesApiParams, + IActivitiesApiResponse, + IActivityListWithAddressApiParams, +} from './type'; + +export function fetchActivities(params: IActivitiesApiParams): Promise { + return request.activity.activityList({ + params: { + ...params, + width: NFT_MIDDLE_SIZE, + height: -1, + }, + }); +} + +export function fetchActivity(params: IActivityApiParams): Promise { + return request.activity.activity({ + params: { + ...params, + width: NFT_MIDDLE_SIZE, + height: -1, + }, + }); +} + +export function fetchRecentContactActivities( + params: IActivityListWithAddressApiParams, +): Promise { + return request.activity.activityListWithAddress({ + params: { + ...params, + width: NFT_MIDDLE_SIZE, + height: -1, + }, + }); +} diff --git a/packages/store/store-eoa/activity/index.test.ts b/packages/store/store-eoa/activity/index.test.ts new file mode 100644 index 0000000000..bc7abcdc5d --- /dev/null +++ b/packages/store/store-eoa/activity/index.test.ts @@ -0,0 +1,320 @@ +import { ChainId, ChainType } from '@portkey-wallet/types'; +import { activitySlice, addFailedActivity, removeFailedActivity, resetActivity } from './slice'; +import { fetchActivities } from './api'; +import { getCurrentActivityMapKey } from '@portkey-wallet/utils/activity'; +import { getActivityListAsync } from './action'; +import { configureStore } from '@reduxjs/toolkit'; +import { TransactionTypes } from '@portkey-wallet/constants/constants-eoa/activity'; + +const reducer = activitySlice.reducer; +const mockInitState = { + activityMap: {}, + isFetchingActivities: false, + failedActivityMap: {}, + isLoading: false, +}; +jest.mock('./api'); +jest.mock('@portkey-wallet/utils/activity'); + +describe('addFailedActivity', () => { + test('Prev failedActivityMap is empty, add a failedActivity', () => { + const mockPayload = { + transactionId: '0x1234567890', + params: { + chainType: 'aelf' as ChainType, + managerAddress: 'mangerAddress', + tokenInfo: { + id: 'id', + chainId: 'AELF' as ChainId, + decimals: 8, + address: 'address', + symbol: 'ELF', + name: 'name', + }, + amount: 0, + toAddress: 'toAddress', + }, + }; + const res = reducer(mockInitState, addFailedActivity(mockPayload)); + expect(res.failedActivityMap[mockPayload.transactionId]).toEqual(mockPayload); + }); +}); + +describe('removeFailedActivity', () => { + const mockState = { + activityMap: {}, + isFetchingActivities: false, + failedActivityMap: { + '0x1234567890': { + transactionId: '0x1234567890', + params: { + chainType: 'aelf' as ChainType, + managerAddress: 'mangerAddress', + tokenInfo: { + id: 'id', + chainId: 'AELF' as ChainId, + decimals: 8, + address: 'address', + symbol: 'ELF', + name: 'name', + }, + amount: 0, + toAddress: 'toAddress', + }, + }, + }, + isLoading: false, + }; + test('The key is not exist', () => { + const mockState = { + activityMap: {}, + isFetchingActivities: false, + failedActivityMap: { + '0x1234567890': { + transactionId: '0x1234567890', + params: { + chainType: 'aelf' as ChainType, + managerAddress: 'mangerAddress', + tokenInfo: { + id: 'id', + chainId: 'AELF' as ChainId, + decimals: 8, + address: 'address', + symbol: 'ELF', + name: 'name', + }, + amount: 0, + toAddress: 'toAddress', + }, + }, + }, + isLoading: false, + }; + const res = reducer(mockState, removeFailedActivity('0x1')); + expect(res.failedActivityMap).toHaveProperty('0x1234567890'); + }); + test('The key exist, will remove successful', () => { + const res = reducer(mockState, removeFailedActivity('0x1234567890')); + expect(res.failedActivityMap).not.toHaveProperty('0x1234567890'); + }); +}); + +describe('resetActivity', () => { + const mockPrevState = { + activityMap: {}, + isFetchingActivities: false, + failedActivityMap: { + '0x1234567890': { + transactionId: '0x1234567890', + params: { + chainType: 'aelf' as ChainType, + managerAddress: 'mangerAddress', + tokenInfo: { + id: 'id', + chainId: 'AELF' as ChainId, + decimals: 8, + address: 'address', + symbol: 'ELF', + name: 'name', + }, + amount: 0, + toAddress: 'toAddress', + }, + }, + }, + isLoading: false, + }; + test('Reset activity', () => { + const res = reducer(mockPrevState, resetActivity()); + expect(res).toEqual(mockInitState); + }); +}); + +describe('activitySlice', () => { + const mockPrevState = { + // activityMap: {}, + isFetchingActivities: false, + failedActivityMap: {}, + isLoading: false, + }; + + const mockStore = configureStore({ reducer, preloadedState: mockPrevState }); + test('ActivityMap is empty, fetch and update activityMap', async () => { + jest.mocked(fetchActivities).mockResolvedValue({ + data: [ + { + chainId: 'AELF', + transactionType: 'SocialRecovery' as TransactionTypes, + transactionName: 'Social Recovery', + from: 'wallet01', + to: 'wallet02', + fromAddress: 'fromAddress', + toAddress: 'toAddress', + fromChainId: 'AELF', + toChainId: 'AELF', + status: '', + transactionId: '', + blockHash: 'blockHash', + timestamp: '', + isReceived: true, + amount: '1', + symbol: '', + transactionFees: [ + { + symbol: 'ELF', + fee: 87385000, + feeInUsd: '0.256879427979178', + decimals: '8', + }, + ], + }, + ], + totalRecordCount: 1, + }); + jest.mocked(getCurrentActivityMapKey).mockReturnValue('AELF_ELF'); + const mockPayload = { + maxResultCount: 1000, + skipCount: 0, + }; + await mockStore.dispatch(getActivityListAsync(mockPayload)); + expect(fetchActivities).toBeCalled(); + expect(getCurrentActivityMapKey).toBeCalled(); + const res = mockStore.getState().activityMap; + expect(res).toHaveProperty('AELF_ELF'); + }); + test('ActivityMap is empty, fetch failed', async () => { + jest.mocked(fetchActivities).mockRejectedValue({ + code: 500, + errMsg: 'Service Error', + }); + const mockPayload = { + maxResultCount: 1000, + skipCount: 0, + }; + await mockStore.dispatch(getActivityListAsync(mockPayload)); + expect(fetchActivities).toBeCalled(); + }); + test('ActivityMap is empty, fetch failed, return error.type', async () => { + jest.mocked(fetchActivities).mockRejectedValue({ + type: 'Service Error', + }); + const mockPayload = { + maxResultCount: 1000, + skipCount: 0, + }; + await mockStore.dispatch(getActivityListAsync(mockPayload)); + expect(fetchActivities).toBeCalled(); + }); + test('ActivityMap is empty, fetch failed, return error.error.type', async () => { + jest.mocked(fetchActivities).mockRejectedValue({ + error: { + message: 'Service Error', + }, + }); + const mockPayload = { + maxResultCount: 1000, + skipCount: 0, + }; + await mockStore.dispatch(getActivityListAsync(mockPayload)); + expect(fetchActivities).toBeCalled(); + }); + + test('ActivityMap is empty, fetch successful, return no data', async () => { + jest.mocked(fetchActivities).mockResolvedValue({ + data: [], + totalRecordCount: 0, + }); + const mockPayload = { + maxResultCount: 1000, + skipCount: 0, + }; + await mockStore.dispatch(getActivityListAsync(mockPayload)); + expect(fetchActivities).toBeCalled(); + }); + test('ActivityMap exist, fetch and will add a new activityItem', async () => { + const mockPrevState = { + activityMap: { + AELF_ELF: { + maxResultCount: 10, + skipCount: 1, + data: [ + { + chainId: 'AELF', + transactionType: 'SocialRecovery' as TransactionTypes, + transactionName: 'Social Recovery', + from: 'wallet01', + to: 'wallet02', + fromAddress: 'fromAddress', + toAddress: 'toAddress', + fromChainId: 'AELF', + toChainId: 'AELF', + status: 'MINED', + transactionId: '', + blockHash: 'blockHash', + timestamp: '1682323412', + isReceived: true, + amount: '1', + symbol: 'ELF', + transactionFees: [ + { + symbol: 'ELF', + fee: 87385000, + feeInUsd: '0.256879427979178', + decimals: '8', + }, + ], + }, + ], + totalRecordCount: 100, + chainId: 'AELF', + symbol: 'ELF', + }, + }, + isFetchingActivities: false, + failedActivityMap: {}, + isLoading: false, + }; + const mockStore = configureStore({ reducer, preloadedState: mockPrevState as any }); + jest.mocked(fetchActivities).mockResolvedValue({ + data: [ + { + chainId: 'AELF', + transactionType: 'SocialRecovery' as TransactionTypes, + transactionName: 'Social Recovery', + from: 'wallet01', + to: 'wallet02', + fromAddress: 'fromAddress', + toAddress: 'toAddress', + fromChainId: 'AELF', + toChainId: 'AELF', + status: '', + transactionId: '', + blockHash: 'blockHash', + timestamp: '', + isReceived: true, + amount: '1', + symbol: '', + transactionFees: [ + { + symbol: 'ELF', + fee: 87385000, + feeInUsd: '0.256879427979178', + decimals: '8', + }, + ], + }, + ], + totalRecordCount: 1, + }); + jest.mocked(getCurrentActivityMapKey).mockReturnValue('AELF_ELF'); + const mockPayload = { + maxResultCount: 10, + skipCount: 1, + }; + await mockStore.dispatch(getActivityListAsync(mockPayload)); + expect(fetchActivities).toBeCalled(); + expect(getCurrentActivityMapKey).toBeCalled(); + const res = mockStore.getState().activityMap; + expect(res['AELF_ELF'].data).toHaveLength(2); + }); +}); diff --git a/packages/store/store-eoa/activity/slice.ts b/packages/store/store-eoa/activity/slice.ts new file mode 100644 index 0000000000..e94e40a57f --- /dev/null +++ b/packages/store/store-eoa/activity/slice.ts @@ -0,0 +1,65 @@ +import { createSlice } from '@reduxjs/toolkit'; +import { the2ThFailedActivityItemType } from '@portkey-wallet/types/types-eoa/activity'; +import { getActivityListAsync } from './action'; +import { ActivityStateType } from './type'; +import { getCurrentActivityMapKey } from '@portkey-wallet/utils/activity'; + +const initialState: ActivityStateType = { + activityMap: {}, + isFetchingActivities: false, + failedActivityMap: {}, + isLoading: false, +}; + +//it automatically uses the immer library to let you write simpler immutable updates with normal mutative code +export const activitySlice = createSlice({ + name: 'activity', + initialState: initialState, + reducers: { + addFailedActivity: (state, { payload }: { payload: the2ThFailedActivityItemType }) => { + state.failedActivityMap[payload?.transactionId] = payload; + }, + removeFailedActivity: (state, { payload }: { payload: string }) => { + delete state.failedActivityMap[payload]; + }, + resetActivity: () => initialState, + }, + extraReducers: builder => { + builder.addCase(getActivityListAsync.fulfilled, (state, action) => { + const { data, totalRecordCount, skipCount, maxResultCount, chainId, symbol, hasNextPage } = action.payload; + const currentMapKey = getCurrentActivityMapKey(chainId, symbol); + + if (!state.activityMap) state.activityMap = {}; + + state.activityMap[currentMapKey] = { + data: skipCount === 0 ? data : [...(state.activityMap[currentMapKey] ?? { data: [] }).data, ...data], + totalRecordCount, + skipCount, + maxResultCount, + chainId, + symbol, + hasNextPage, + }; + // console.log('fetching=====state key', currentMapKey, 'state content======', JSON.stringify({ + // data: skipCount === 0 ? data : [...(state.activityMap[currentMapKey] ?? { data: [] }).data, ...data], + // totalRecordCount, + // skipCount, + // maxResultCount, + // chainId, + // symbol, + // hasNextPage, + // })) + state.isLoading = false; + }); + builder.addCase(getActivityListAsync.pending, state => { + state.isLoading = true; + }); + builder.addCase(getActivityListAsync.rejected, state => { + state.isLoading = false; + }); + }, +}); + +export const { addFailedActivity, removeFailedActivity, resetActivity } = activitySlice.actions; + +export default activitySlice; diff --git a/packages/store/store-eoa/activity/type.ts b/packages/store/store-eoa/activity/type.ts new file mode 100644 index 0000000000..59811496ce --- /dev/null +++ b/packages/store/store-eoa/activity/type.ts @@ -0,0 +1,68 @@ +import { ActivityItemType, the2ThFailedActivityItemType } from '@portkey-wallet/types/types-eoa/activity'; +import { TransactionTypes } from '@portkey-wallet/constants/constants-eoa/activity'; +import { ChainId } from '@portkey-wallet/types'; + +export type ActivityStateType = { + activityMap: ActivityStateMap; + isFetchingActivities: boolean; + failedActivityMap: { [transactionId: string]: the2ThFailedActivityItemType }; + isLoading?: boolean; +}; + +export type ActivityStateMap = { + [key: string]: ActivityStateMapAttributes | undefined; +}; + +export type ActivityStateMapAttributes = { + maxResultCount: number; + skipCount: number; + data: ActivityItemType[]; + totalRecordCount: number; + chainId?: string; + symbol?: string; + hasNextPage?: boolean; +}; + +export interface IActivitiesApiParams { + maxResultCount: number; + skipCount: number; + addressInfos?: { chainId: ChainId; chainName: string; address: string }[]; + managerAddresses?: string[]; + transactionTypes?: TransactionTypes[]; + chainId?: string; + symbol?: string; + width?: number; + height?: number; +} + +export interface IActivitiesApiResponse { + data: ActivityItemType[]; + totalRecordCount: number; + hasNextPage?: boolean; +} + +export enum ActivityTypeEnum { + TRANSFER_CARD = 'transfer-card', +} + +export interface IActivityApiParams { + transactionId: string; + blockHash: string; + addressInfos?: IAddressInfoListItemType[]; + activityType?: ActivityTypeEnum; +} + +export interface IActivityListWithAddressApiParams { + maxResultCount: number; + skipCount: number; + addressInfos: IAddressInfoListItemType[]; + targetAddressInfos: IAddressInfoListItemType[]; +} + +export interface IAddressInfoListItemType { + chainId: ChainId; + chainName: string; + address: string; + displayChainName?: string; + chainImageUrl?: string; +} diff --git a/packages/store/store-eoa/assets/api.ts b/packages/store/store-eoa/assets/api.ts new file mode 100644 index 0000000000..f992b74253 --- /dev/null +++ b/packages/store/store-eoa/assets/api.ts @@ -0,0 +1,226 @@ +import { request } from '@portkey-wallet/api/api-did'; +import { ITokenSectionResponse } from '@portkey-wallet/types/types-ca/token'; +import { IAssetItemType, IAssetNftCollection, IAssetToken } from './type'; +import { + NFT_SMALL_SIZE, + NFT_MIDDLE_SIZE, + NFT_LARGE_SIZE, + NFT_MIDDLE_X_SIZE, +} from '@portkey-wallet/constants/constants-ca/assets'; +import { ICryptoBoxAssetItemType } from '@portkey-wallet/types/types-ca/crypto'; +import { NFTItemBaseType } from '@portkey-wallet/types/types-ca/assets'; +import { ChainId } from '@portkey-wallet/types'; +import { ITokenAllowance } from '@portkey-wallet/types/types-ca/allowance'; +import { SendType } from '@portkey-wallet/types/types-ca/send'; + +export function fetchTokenList({ + // todo maybe remote tokenList change + skipCount = 0, + maxResultCount = 1000, + addressInfos, +}: { + skipCount?: number; + maxResultCount?: number; + addressInfos: { chainId: string; address: string }[]; +}): Promise<{ + data: ITokenSectionResponse[]; + totalRecordCount: number; + totalDisplayCount: number; + totalBalanceInUsd?: string; +}> { + return request.assets.fetchAccountTokenList({ + params: { + addressInfos, + skipCount, + maxResultCount, + version: '1.11.1', + }, + }); +} + +export function fetchAssetList({ + addressInfos, + maxResultCount, + skipCount, + keyword = '', +}: { + maxResultCount: number; + skipCount: number; + keyword: string; + addressInfos: { chainId: string; address: string }[]; +}): Promise<{ data: IAssetItemType[]; totalRecordCount: number }> { + return request.assets.fetchAccountAssetsByKeywords({ + params: { + addressInfos, + skipCount, + maxResultCount, + keyword, + width: NFT_SMALL_SIZE, + height: -1, + }, + }); +} + +export function fetchAssetListV2({ + addressInfos, + maxResultCount = 1000, + skipCount = 0, + keyword = '', +}: { + maxResultCount?: number; + skipCount?: number; + keyword: string; + addressInfos: { chainId: string; address: string }[]; +}): Promise<{ nftInfos: IAssetNftCollection[]; tokenInfos: IAssetToken[]; totalRecordCount: number }> { + console.log('fetchAccountAssetsByKeywordsV2'); + return request.assets.fetchAccountAssetsByKeywordsV2({ + params: { + addressInfos, + skipCount, + maxResultCount, + keyword, + width: NFT_SMALL_SIZE, + height: -1, + }, + }); +} + +export function fetchCryptoBoxAssetList({ + addressInfos, + maxResultCount, + skipCount, + keyword = '', +}: { + maxResultCount: number; + skipCount: number; + keyword: string; + addressInfos: { chainId: string; address: string }[]; +}): Promise<{ data: ICryptoBoxAssetItemType[]; totalRecordCount: number }> { + return request.assets.fetchCryptoBoxAccountAssetsByKeywords({ + params: { + addressInfos, + keyword, + skipCount, + maxResultCount, + width: NFT_SMALL_SIZE, + height: -1, + version: '1.11.1', + }, + }); +} + +export function fetchNFTSeriesList({ + addressInfos, + skipCount = 0, + maxResultCount = 1000, +}: { + skipCount: number; + maxResultCount?: number; + addressInfos: { chainId: string; address: string }[]; +}): Promise<{ data: any[]; totalRecordCount: number; totalNftItemCount: number }> { + console.log('fetch nft list!!'); + return request.assets.fetchAccountNftCollectionList({ + params: { + addressInfos, + skipCount, + maxResultCount, + width: NFT_MIDDLE_X_SIZE, + height: -1, + }, + }); +} + +export function fetchNFTList({ + symbol, + addressInfos, + skipCount = 0, + maxResultCount = 1000, +}: { + symbol: string; + addressInfos: { chainId: string; address: string }[]; + skipCount: number; + maxResultCount: number; +}): Promise<{ data: NFTItemBaseType[]; totalRecordCount: number }> { + return request.assets.fetchAccountNftCollectionItemList({ + params: { addressInfos, symbol, skipCount, maxResultCount, width: NFT_MIDDLE_SIZE, height: -1 }, + }); +} + +export function fetchNFTItem({ + symbol, + addressInfos, +}: { + symbol: string; + addressInfos: { chainId: string; address: string }[]; +}): Promise<{ data: NFTItemBaseType }> { + return request.assets.fetchAccountNftCollectionItem({ + params: { addressInfos, symbol, width: NFT_LARGE_SIZE, height: -1 }, + }); +} + +export function fetchTokenPrices({ + symbols, +}: { + symbols: string[]; +}): Promise<{ items: { symbol: string; priceInUsd: number }[]; totalRecordCount: number }> { + console.log('fetchTokenPrices....'); + + return request.token.fetchTokenPrice({ + params: { + symbols, + }, + }); +} + +export function fetchTokenBalance({ + symbol, + chainId, + currentCaAddress: address, +}: { + symbol: string; + chainId: ChainId; + currentCaAddress: string; +}): Promise<{ + balance: string; + balanceInUsd: string; + decimals: string; +}> { + return request.assets.getTokenBalance({ + params: { + symbol, + chainId, + address, + }, + }); +} +export function getAssetsEstimation({ + symbol, + chainId, + type, +}: { + symbol: string; + chainId: ChainId; + type: SendType; +}): Promise { + return request.assets.getAssetsEstimation({ + params: { + symbol, + chainId, + type, + }, + }); +} + +export function fetchTokenAllowanceList({ + skipCount = 0, + maxResultCount = 1000, + addressInfos, +}: { + addressInfos: { chainId: string; address: string }[]; + skipCount: number; + maxResultCount: number; +}): Promise<{ data: ITokenAllowance[]; totalRecordCount: number }> { + return request.assets.fetchTokenAllowanceList({ + params: { addressInfos, skipCount, maxResultCount }, + }); +} diff --git a/packages/store/store-eoa/assets/index.test.ts b/packages/store/store-eoa/assets/index.test.ts new file mode 100644 index 0000000000..4e674fca4f --- /dev/null +++ b/packages/store/store-eoa/assets/index.test.ts @@ -0,0 +1,561 @@ +import { NEW_CLIENT_MOCK_ELF_LIST } from '@portkey-wallet/constants/constants-ca/assets'; +import { ChainId } from '@portkey-wallet/types'; +import { + assetsSlice, + clearNftCollection, + fetchNFTAsync, + fetchNFTCollectionsAsync, + fetchTokenListAsync, + resetAssets, + fetchAssetAsync, + fetchTokensPriceAsync, +} from './slice'; +import { configureStore } from '@reduxjs/toolkit'; +import { fetchAssetList, fetchNFTSeriesList, fetchNFTList, fetchTokenList, fetchTokenPrices } from './api'; + +const mockInitState = { + accountToken: { + isFetching: false, + skipCount: 0, + maxResultCount: 10, + accountTokenList: NEW_CLIENT_MOCK_ELF_LIST, + totalRecordCount: 0, + }, + accountNFT: { + isFetching: false, + skipCount: 0, + maxResultCount: 10, + accountNFTList: [], + totalRecordCount: 0, + }, + accountAssets: { + isFetching: false, + skipCount: 0, + maxResultCount: 1000, + accountAssetsList: [], + totalRecordCount: 0, + }, + tokenPrices: { + isFetching: false, + tokenPriceObject: {}, + }, + accountBalance: 0, +}; +const reducer = assetsSlice.reducer; +jest.mock('./api'); +describe('resetAssets', () => { + test('reset assets, will equal initState', () => { + const res = reducer(mockInitState, resetAssets()); + expect(res).toEqual(mockInitState); + }); +}); + +describe('clearNftItem', () => { + const newState = { + ...mockInitState, + accountNFT: { + ...mockInitState.accountNFT, + accountNFTList: [ + { + isFetching: false, + skipCount: 1, + maxResultCount: 9, + totalRecordCount: 1, + chainId: 'AELF' as ChainId, + collectionName: 'Nature Elves', + imageUrl: 'https:/294xAUTO/1.jpg', + itemCount: 1, + symbol: 'CARD-0', + decimals: 0, + children: [ + { + alias: 'Forest Warrior', + quantity: '1', + chainId: 'AELF' as ChainId, + imageUrl: 'https:/294xAUTO/1.jpg', + symbol: 'CARD-001', + tokenContractAddress: 'aZSvoAaE', + tokenId: '001', + totalSupply: '', + }, + ], + }, + ], + }, + }; + test('symbol and chainId have exist, will clear nftItem', () => { + const res = reducer(newState, assetsSlice.actions.clearNftItem({ symbol: 'CARD-0', chainId: 'AELF' })); + expect(res.accountNFT.accountNFTList[0].children).toEqual([]); + }); + test('symbol and chainId have not exist, nft item exist', () => { + const res = reducer(newState, assetsSlice.actions.clearNftItem({ symbol: 'CARD-1', chainId: 'AELF' })); + expect(res.accountNFT.accountNFTList[0].children).toHaveLength(1); + }); +}); + +describe('clearNftCollection', () => { + test('nft collection will reset', () => { + const newState = { + ...mockInitState, + accountNFT: { + ...mockInitState.accountNFT, + accountNFTList: [ + { + isFetching: false, + skipCount: 1, + maxResultCount: 9, + totalRecordCount: 1, + chainId: 'AELF' as ChainId, + collectionName: 'Nature Elves', + imageUrl: 'https:/294xAUTO/1.jpg', + itemCount: 1, + symbol: 'CARD-0', + decimals: 0, + children: [ + { + alias: 'Forest Warrior', + quantity: '1', + chainId: 'AELF' as ChainId, + imageUrl: 'https:/294xAUTO/1.jpg', + symbol: 'CARD-001', + tokenContractAddress: 'aZSvoAaE', + tokenId: '001', + totalSupply: '', + }, + ], + }, + ], + }, + }; + const res = reducer(newState, clearNftCollection()); + expect(res.accountNFT).toEqual(mockInitState.accountNFT); + }); +}); + +describe('fetchTokenListAsync', () => { + const mockStore = configureStore({ reducer }); + const mockPayload = { + caAddresses: ['7W99faZSvoAaE'], + caAddressInfos: [ + { + caAddress: '7W99faZSvoAaE', + chainId: 'AELF' as ChainId, + }, + ], + }; + test('fetchTokenListAsync will return accountToken successful', async () => { + jest.mocked(fetchTokenList).mockResolvedValue({ + data: [ + { + balance: '3092810000', + balanceInUsd: undefined, + chainId: 'AELF', + decimals: 8, + imageUrl: 'https://aelf_token_logo.png', + price: 0.291849, + symbol: 'ELF', + tokenContractAddress: '7W99faZSvoAaE', + }, + ], + totalRecordCount: 1, + }); + await mockStore.dispatch(fetchTokenListAsync(mockPayload)); + expect(mockStore.getState().accountToken.accountTokenList).toHaveLength(1); + }); + test('fetchTokenListAsync return empty, accountToken will be set initState', async () => { + jest.mocked(fetchTokenList).mockResolvedValue({ + data: [], + totalRecordCount: 0, + }); + await mockStore.dispatch(fetchTokenListAsync(mockPayload)); + expect(mockStore.getState().accountToken.accountTokenList).toEqual(NEW_CLIENT_MOCK_ELF_LIST); + }); + test('fetchTokenListAsync failed', async () => { + jest.mocked(fetchTokenList).mockRejectedValue({ + error: 'error', + }); + const res = await mockStore.dispatch(fetchTokenListAsync(mockPayload)); + expect(res.type).toEqual('fetchTokenListAsync/rejected'); + }); +}); + +describe('fetchNFTCollectionsAsync', () => { + const mockStore = configureStore({ + reducer: { + assets: assetsSlice.reducer, + }, + preloadedState: { + assets: mockInitState, + }, + }); + const mockPayload = { + caAddresses: ['7W99faZSvoAaE'], + caAddressInfos: [ + { + caAddress: '7W99faZSvoAaE', + chainId: 'AELF' as ChainId, + }, + ], + }; + test('fetchNFTCollectionsAsync will return accountNFT successful', async () => { + jest.mocked(fetchNFTSeriesList).mockResolvedValue({ + data: [ + { + chainId: 'AELF', + collectionName: 'Nature Elves', + imageUrl: 'https://144xAUTO/3.jpg', + itemCount: 1, + symbol: 'CARD-0', + }, + ], + totalRecordCount: 1, + }); + await mockStore.dispatch(fetchNFTCollectionsAsync(mockPayload)); + expect(mockStore.getState().assets.accountNFT.accountNFTList).toHaveLength(1); + }); + test('fetchNFTCollectionsAsync failed', async () => { + jest.mocked(fetchNFTSeriesList).mockRejectedValue({ error: 'error' }); + const res = await mockStore.dispatch(fetchNFTCollectionsAsync(mockPayload)); + expect(res.type).toEqual('fetchNFTCollectionsAsync/rejected'); + }); +}); + +describe('fetchNFTAsync', () => { + const mockPayload = { + caAddresses: ['7W99faZSvoAaE'], + caAddressInfos: [ + { + caAddress: '7W99faZSvoAaE', + chainId: 'AELF' as ChainId, + }, + ], + symbol: 'CARD-0', + chainId: 'AELF' as ChainId, + pageNum: 0, + }; + const mockReturnNftItem = { + alias: 'Forest Warrior', + balance: '1', + chainId: 'AELF', + imageLargeUrl: 'https://1008xAUTO/1.jpg', + imageUrl: 'https://294xAUTO/1.jpg', + symbol: 'CARD-001', + tokenContractAddress: '7W99faZSvoAaE', + tokenId: '001', + totalSupply: '', + }; + const newState = { + ...mockInitState, + accountNFT: { + ...mockInitState.accountNFT, + accountNFTList: [ + { + isFetching: false, + skipCount: 1, + maxResultCount: 9, + totalRecordCount: 1, + chainId: 'AELF' as ChainId, + collectionName: 'Nature Elves', + imageUrl: 'https:/294xAUTO/1.jpg', + itemCount: 1, + symbol: 'CARD-0', + decimals: 0, + children: [], + }, + ], + }, + }; + test('fetchNFTAsync will return nft item successful and nft collection exist', async () => { + const mockStore = configureStore({ + reducer: { + assets: assetsSlice.reducer, + }, + preloadedState: { + assets: newState, + }, + }); + jest.mocked(fetchNFTList).mockResolvedValue({ + data: [mockReturnNftItem], + totalRecordCount: 1, + }); + await mockStore.dispatch(fetchNFTAsync(mockPayload)); + expect(mockStore.getState().assets.accountNFT.accountNFTList[0].children).toHaveLength(1); + }); + test('fetchNFTAsync will return nft item successful and nft collection does not exist', async () => { + const mockStore = configureStore({ + reducer: { + assets: assetsSlice.reducer, + }, + preloadedState: { + assets: newState, + }, + }); + + jest.mocked(fetchNFTList).mockResolvedValue({ + data: [mockReturnNftItem], + totalRecordCount: 1, + }); + await mockStore.dispatch(fetchNFTAsync({ ...mockPayload, symbol: 'CARD-1', chainId: 'tDVV' })); + expect(mockStore.getState().assets.accountNFT.accountNFTList[0].children).toHaveLength(0); + }); + test('repeated fetch multiple times will update once', async () => { + const state = { + ...mockInitState, + accountNFT: { + ...mockInitState.accountNFT, + accountNFTList: [ + { + isFetching: false, + skipCount: 0, + maxResultCount: 2, + totalRecordCount: 1, + chainId: 'AELF' as ChainId, + collectionName: 'Nature Elves', + imageUrl: 'https:/294xAUTO/1.jpg', + itemCount: 1, + symbol: 'CARD-0', + decimals: 0, + children: [ + { + alias: 'Forest Warrior', + quantity: '1', + chainId: 'AELF' as ChainId, + imageLargeUrl: 'https://1008xAUTO/1.jpg', + imageUrl: 'https://294xAUTO/1.jpg', + symbol: 'CARD-001', + tokenContractAddress: '7W99faZSvoAaE', + tokenId: '001', + totalSupply: '', + }, + { + alias: 'Forest', + quantity: '1', + chainId: 'AELF' as ChainId, + imageLargeUrl: 'https://1008xAUTO/1.jpg', + imageUrl: 'https://294xAUTO/1.jpg', + symbol: 'CARD-002', + tokenContractAddress: '7W99faZSvoAaE', + tokenId: '002', + totalSupply: '', + }, + ], + }, + ], + }, + }; + jest.mocked(fetchNFTList).mockResolvedValue({ + data: [mockReturnNftItem], + totalRecordCount: 1, + }); + const mockStore = configureStore({ + reducer: { + assets: assetsSlice.reducer, + }, + preloadedState: { + assets: state, + }, + }); + await mockStore.dispatch(fetchNFTAsync({ ...mockPayload, pageNum: 2 })); + expect(mockStore.getState().assets.accountNFT.accountNFTList[0].children).toHaveLength(2); + }); + test('enough nft items so will not to fetch new nft items', async () => { + const state = { + ...mockInitState, + accountNFT: { + ...mockInitState.accountNFT, + accountNFTList: [ + { + isFetching: false, + skipCount: 1, + maxResultCount: 1, + totalRecordCount: 10, + chainId: 'AELF' as ChainId, + collectionName: 'Nature Elves', + imageUrl: 'https:/294xAUTO/1.jpg', + itemCount: 1, + symbol: 'CARD-0', + decimals: 0, + children: [ + { + alias: 'Forest Warrior', + quantity: '1', + chainId: 'AELF' as ChainId, + imageLargeUrl: 'https://1008xAUTO/1.jpg', + imageUrl: 'https://294xAUTO/1.jpg', + symbol: 'CARD-001', + tokenContractAddress: '7W99faZSvoAaE', + tokenId: '001', + totalSupply: '', + }, + ], + }, + ], + }, + }; + const mockStore = configureStore({ + reducer: { + assets: assetsSlice.reducer, + }, + preloadedState: { + assets: state, + }, + }); + const mockPayload = { + caAddresses: ['7W99faZSvoAaE'], + caAddressInfos: [ + { + caAddress: '7W99faZSvoAaE', + chainId: 'AELF' as ChainId, + }, + ], + symbol: 'CARD-0', + chainId: 'AELF' as ChainId, + pageNum: 0, + }; + await mockStore.dispatch(fetchNFTAsync(mockPayload)); + expect(mockStore.getState().assets.accountNFT.accountNFTList[0].children).toHaveLength(1); + }); + test('have got it all, does not need to get it again', async () => { + const state = { + ...mockInitState, + accountNFT: { + ...mockInitState.accountNFT, + accountNFTList: [ + { + isFetching: false, + skipCount: 1, + maxResultCount: 2, + totalRecordCount: 1, + chainId: 'AELF' as ChainId, + collectionName: 'Nature Elves', + imageUrl: 'https:/294xAUTO/1.jpg', + itemCount: 1, + symbol: 'CARD-0', + decimals: 0, + children: [ + { + alias: 'Forest Warrior', + quantity: '1', + chainId: 'AELF' as ChainId, + imageLargeUrl: 'https://1008xAUTO/1.jpg', + imageUrl: 'https://294xAUTO/1.jpg', + symbol: 'CARD-001', + tokenContractAddress: '7W99faZSvoAaE', + tokenId: '001', + totalSupply: '', + }, + ], + }, + ], + }, + }; + const mockStore = configureStore({ + reducer: { + assets: assetsSlice.reducer, + }, + preloadedState: { + assets: state, + }, + }); + const mockPayload = { + caAddresses: ['7W99faZSvoAaE'], + caAddressInfos: [ + { + caAddress: '7W99faZSvoAaE', + chainId: 'AELF' as ChainId, + }, + ], + symbol: 'CARD-0', + chainId: 'AELF' as ChainId, + }; + await mockStore.dispatch(fetchNFTAsync(mockPayload as any)); + expect(mockStore.getState().assets.accountNFT.accountNFTList[0].children).toHaveLength(1); + }); + test('fetchNFTAsync failed', async () => { + jest.mocked(fetchNFTList).mockRejectedValue({ + error: 'error', + }); + const mockStore = configureStore({ + reducer: { + assets: assetsSlice.reducer, + }, + preloadedState: { + assets: newState, + }, + }); + const res = await mockStore.dispatch(fetchNFTAsync(mockPayload)); + expect(res.type).toEqual('fetchNFTAsync/rejected'); + }); +}); + +describe('fetchAssetsAsync', () => { + const mockStore = configureStore({ + reducer, + preloadedState: mockInitState, + }); + const mockPayload = { + caAddresses: ['7W99faZSvoAaE'], + caAddressInfos: [ + { + caAddress: '7W99faZSvoAaE', + chainId: 'AELF' as ChainId, + }, + ], + keyword: '', + }; + const mockReturnValue = { + data: [ + { + id: 'uniqueId', + address: 'YsB44wJetP29zHRTx9J', + chainId: 'AELF', + nftInfo: undefined, + symbol: 'ELF', + tokenInfo: { + chainId: 'AELF', + balance: '3092810000', + decimals: '8', + balanceInUsd: '9.0899850867', + tokenContractAddress: 'f7W99faZSvoAaE', + }, + }, + ], + totalRecordCount: 0, + }; + test('fetchAssetsAsync will return assets successful', async () => { + jest.mocked(fetchAssetList).mockResolvedValue(mockReturnValue); + await mockStore.dispatch(fetchAssetAsync(mockPayload)); + expect(mockStore.getState().accountAssets.accountAssetsList).toHaveLength(1); + }); + test('fetchAssetsAsync will return assets failed', async () => { + jest.mocked(fetchAssetList).mockRejectedValue({ error: 'error' }); + const res = await mockStore.dispatch(fetchAssetAsync(mockPayload)); + expect(res.type).toEqual('fetchAssetsAsync/rejected'); + }); +}); + +describe('fetchTokensPriceAsync', () => { + const mockStore = configureStore({ + reducer: { + assets: assetsSlice.reducer, + }, + preloadedState: { + assets: mockInitState, + }, + }); + test('fetchTokensPriceAsync will return tokens price successful', async () => { + jest.mocked(fetchTokenPrices).mockResolvedValue({ + items: [{ symbol: 'ELF', priceInUsd: 0.293907 }], + totalRecordCount: 1, + }); + await mockStore.dispatch(fetchTokensPriceAsync({ symbols: undefined })); + expect(mockStore.getState().assets.tokenPrices.tokenPriceObject).toEqual({ ELF: 0.293907 }); + }); + test('fetchTokensPriceAsync failed', async () => { + jest.mocked(fetchTokenPrices).mockRejectedValue({ + error: 'error', + }); + const res = await mockStore.dispatch(fetchTokensPriceAsync({ symbols: ['ELF'] })); + expect(res.type).toEqual('fetchTokensPriceAsync/rejected'); + }); +}); diff --git a/packages/store/store-eoa/assets/slice.ts b/packages/store/store-eoa/assets/slice.ts new file mode 100644 index 0000000000..8aa8d9b4f3 --- /dev/null +++ b/packages/store/store-eoa/assets/slice.ts @@ -0,0 +1,629 @@ +import { createSlice, PayloadAction, createAsyncThunk } from '@reduxjs/toolkit'; +import { NFTCollectionItemShowType } from '@portkey-wallet/types/types-ca/assets'; +import { + fetchAssetList, + fetchAssetListV2, + fetchCryptoBoxAssetList, + fetchNFTSeriesList, + fetchNFTList, + fetchTokenList, + fetchTokenPrices, + fetchTokenBalance, +} from './api'; +import { ITokenSectionResponse, TokenItemShowType } from '@portkey-wallet/types/types-ca/token'; +import { TAssetsState } from './type'; +import { ChainId, NetworkType } from '@portkey-wallet/types'; +import { NEW_CLIENT_MOCK_ELF_LIST, PAGE_SIZE_IN_NFT_ITEM } from '@portkey-wallet/constants/constants-ca/assets'; +// import { WalletState } from '../wallet/type'; + +export const INIT_ACCOUNT_TOKEN_INFO = { + skipCount: 0, + maxResultCount: 10, + accountTokenList: NEW_CLIENT_MOCK_ELF_LIST, + totalRecordCount: 0, + totalDisplayCount: 0, +}; + +export const INIT_ACCOUNT_NFT_INFO = { + skipCount: 0, + maxResultCount: 10, + accountNFTList: [], + totalRecordCount: 0, + totalNftItemCount: 0, +}; + +export const INIT_ACCOUNT_ASSETS_INFO = { + skipCount: 0, + maxResultCount: 1000, + accountAssetsList: [], + totalRecordCount: 0, +}; + +export const INIT_ACCOUNT_ASSETS_INFO_V2 = { + skipCount: 0, + maxResultCount: 1000, + accountAssetsList: { + nftInfos: [], + tokenInfos: [], + }, + totalRecordCount: 0, +}; + +const initialState: TAssetsState = { + accountToken: { + ...INIT_ACCOUNT_TOKEN_INFO, + isFetching: false, + }, + accountNFT: { + ...INIT_ACCOUNT_NFT_INFO, + isFetching: false, + }, + accountAssets: { + ...INIT_ACCOUNT_ASSETS_INFO, + isFetching: false, + }, + accountAssetsV2: { + ...INIT_ACCOUNT_ASSETS_INFO_V2, + isFetching: false, + }, + accountCryptoBoxAssets: { + isFetching: false, + skipCount: 0, + maxResultCount: 1000, + accountAssetsList: [], + totalRecordCount: 0, + }, + tokenPrices: { + isFetching: false, + tokenPriceObject: {}, + }, + accountBalance: {}, + nftSectionUiType: 'Collections', +}; +// fetch tokenList on Dashboard +export const fetchTokenListAsync = createAsyncThunk( + 'fetchTokenListAsync', + async ({ + addressInfos, + skipCount = 0, + maxResultCount = 1000, + identify, + }: { + addressInfos: { chainId: ChainId; address: string }[]; + skipCount?: number; + maxResultCount?: number; + identify: string; + }) => { + const response = await fetchTokenList({ addressInfos, skipCount, maxResultCount }); + // // mock data fro new account + if (response.data.length === 0) { + return { + list: NEW_CLIENT_MOCK_ELF_LIST, + totalRecordCount: NEW_CLIENT_MOCK_ELF_LIST.length, + totalDisplayCount: NEW_CLIENT_MOCK_ELF_LIST[0].tokens?.length || 0, + skipCount, + maxResultCount, + identify, + totalBalanceInUsd: '', + }; + } + return { + list: response.data, + totalRecordCount: response.totalRecordCount, + totalDisplayCount: response.totalDisplayCount, + skipCount, + maxResultCount, + identify, + totalBalanceInUsd: response.totalBalanceInUsd, + }; + }, +); + +// fetch nftCollectionList on Dashboard +export const fetchNFTCollectionsAsync = createAsyncThunk( + 'fetchNFTCollectionsAsync', + async ( + { + addressInfos, + maxNFTCount = PAGE_SIZE_IN_NFT_ITEM, + skipCount = 0, + maxResultCount = 1000, + identify, + }: { + addressInfos: { chainId: ChainId; address: string }[]; + maxNFTCount?: number; + skipCount?: number; + maxResultCount?: number; + identify: string; + }, + { getState }, + ) => { + // const { wallet } = getState() as { wallet: WalletState }; + const response = await fetchNFTSeriesList({ addressInfos, skipCount, maxResultCount }); + return { + list: response.data, + totalRecordCount: response.totalRecordCount, + totalNftItemCount: response.totalNftItemCount, + maxNFTCount, + skipCount, + maxResultCount, + identify, + }; + }, +); + +// fetch current nftItem on Dashboard +export const fetchNFTAsync = createAsyncThunk( + 'fetchNFTAsync', + async ( + { + symbol, + addressInfos, + chainId, + pageNum = 0, + identify, + }: { + symbol: string; + addressInfos: { chainId: ChainId; address: string }[]; + chainId: ChainId; + pageNum: number; + identify: string; + }, + { getState }, + ) => { + const { assets } = getState() as { assets: TAssetsState; }; + const { + accountNFT: { accountNFTInfo }, + } = assets; + const preAccountNFTCollectionList = accountNFTInfo?.[identify]?.accountNFTList || []; + const targetNFTCollection = preAccountNFTCollectionList.find( + item => item.symbol === symbol && item.chainId === chainId, + ); + if (!targetNFTCollection) return; + + const { skipCount, maxResultCount, totalRecordCount, children } = targetNFTCollection; + // has cache data + if ((pageNum + 1) * maxResultCount <= children.length) return; + + if (totalRecordCount === 0 || Number(totalRecordCount) > children.length) { + const response = await fetchNFTList({ symbol, addressInfos, skipCount, maxResultCount }); + return { + symbol, + chainId, + list: response.data, + totalRecordCount: response.totalRecordCount, + skipCount, + identify, + }; + } + return { symbol, chainId, list: [], totalRecordCount, skipCount, identify }; + }, +); + +// fetch current assets when add sent button +export const fetchAssetAsync = createAsyncThunk( + 'fetchAssetsAsync', + async ( + { + keyword, + addressInfos, + skipCount = 0, + maxResultCount = 1000, + identify, + }: { + keyword: string; + addressInfos: { chainId: ChainId; address: string }[]; + skipCount?: number; + maxResultCount?: number; + identify: string; + }, + { getState }, + ) => { + const response = await fetchAssetList({ addressInfos, keyword, skipCount, maxResultCount }); + + return { + list: response.data, + totalRecordCount: response.totalRecordCount, + keyword, + skipCount, + maxResultCount, + identify, + }; + }, +); + +export const fetchAssetV2Async = createAsyncThunk( + 'fetchAssetV2Async', + async ( + { + keyword, + addressInfos, + skipCount = 0, + maxResultCount = 1000, + identify, + }: { + keyword: string; + addressInfos: { chainId: ChainId; address: string }[]; + skipCount?: number; + maxResultCount?: number; + identify: string; + }, + { getState }, + ) => { + const response = await fetchAssetListV2({ addressInfos, keyword, skipCount, maxResultCount }); + + return { + ...response, + keyword, + skipCount, + maxResultCount, + identify, + }; + }, +); + +// fetch current cryptoBox assets when add sent button +export const fetchCryptoBoxAssetAsync = createAsyncThunk( + 'fetchCryptoBoxAssetAsync', + async ({ + keyword, + addressInfos, + }: { + keyword: string; + addressInfos: { chainId: ChainId; address: string }[]; + }) => { + const response = await fetchCryptoBoxAssetList({ addressInfos, keyword, skipCount: 0, maxResultCount: 1000 }); + + return { list: response.data, totalRecordCount: response.totalRecordCount, keyword }; + }, +); + +// fetch current tokenRate +export const fetchTokensPriceAsync = createAsyncThunk( + 'fetchTokensPriceAsync', + async ({ symbols }: { symbols?: string[] }, { getState }) => { + const { + assets: { + accountToken: { accountTokenList }, + }, + } = getState() as { assets: TAssetsState }; + + const response = await fetchTokenPrices({ symbols: symbols || accountTokenList.map(ele => ele.symbol) }); + + return { list: response.items }; + }, +); + +// fetch tokenBalance +export const fetchTargetTokenBalanceAsync = createAsyncThunk( + 'fetchTargetTokenBalanceAsync', + async ({ + symbol, + chainId, + currentCaAddress = '', + identify, + }: { + symbol: string; + chainId: ChainId; + currentCaAddress: string; + identify: string; + }) => { + const response = await fetchTokenBalance({ symbol, chainId, currentCaAddress }); + return { symbol, chainId, response, identify }; + }, +); + +//it automatically uses the immer library to let you write simpler immutable updates with normal mutative code +export const assetsSlice = createSlice({ + name: 'assets', + initialState, + reducers: { + resetAssets: () => initialState, + clearNftItem: (state, action: PayloadAction<{ symbol?: string; chainId?: ChainId; network?: NetworkType }>) => { + const { symbol, chainId, network = 'MAINNET' } = action.payload; + + if (symbol && chainId) { + const preNFTCollection = state.accountNFT?.accountNFTInfo?.[network]?.accountNFTList || []; + const newAccountNFTList = preNFTCollection.map(item => + item.symbol === symbol && item.chainId === chainId + ? { + ...item, + skipCount: 0, + maxResultCount: 9, + totalRecordCount: 0, + children: [], + } + : item, + ); + + state.accountNFT.accountNFTInfo = { + ...state.accountNFT.accountNFTInfo, + [network]: { + ...INIT_ACCOUNT_NFT_INFO, + ...state.accountNFT.accountNFTInfo?.[network], + accountNFTList: newAccountNFTList, + }, + }; + } + }, + // about handle the NFT + clearAccountNftCollectionInfo: (state, action: PayloadAction) => { + const NFTCollectionInfo = state.accountNFT.accountNFTInfo; + if (NFTCollectionInfo?.[action.payload]) delete NFTCollectionInfo[action.payload]; + state.accountNFT.accountNFTInfo = NFTCollectionInfo; + }, + clearAccountTokenInfo: (state, action: PayloadAction) => { + const tokenInfo = state.accountToken.accountTokenInfoV2; + if (tokenInfo?.[action.payload]) delete tokenInfo[action.payload]; + state.accountToken.accountTokenInfoV2 = tokenInfo; + }, + clearAccountAssetsInfo: (state, action: PayloadAction) => { + const assetsInfo = state.accountAssets.accountAssetsInfo; + if (assetsInfo?.[action.payload]) delete assetsInfo[action.payload]; + state.accountAssets.accountAssetsInfo = assetsInfo; + const assetsInfoV2 = state.accountAssetsV2.accountAssetsInfo; + if (assetsInfoV2?.[action.payload]) delete assetsInfoV2[action.payload]; + state.accountAssetsV2.accountAssetsInfo = assetsInfoV2; + }, + changeNftSectionUiType: (state, action: PayloadAction<'Collections' | 'NFTs'>) => { + const payload = action.payload; + state.nftSectionUiType = payload; + }, + }, + extraReducers: builder => { + builder + .addCase(fetchTokenListAsync.pending, state => { + state.accountToken.isFetching = true; + }) + .addCase(fetchTokenListAsync.fulfilled, (state, action) => { + const { + list, + totalRecordCount, + totalDisplayCount, + skipCount, + maxResultCount, + identify, + totalBalanceInUsd = '', + } = action.payload; + const preAccountTokenList = state.accountToken.accountTokenInfoV2?.[identify]?.accountTokenList || []; + if (skipCount !== 0 && preAccountTokenList.length === totalRecordCount) { + state.accountToken.isFetching = false; + return; + } + // get token Price + const priceObj: Record = {}; + list.forEach(ele => { + if (ele.symbol) priceObj[ele.symbol] = ele.price ?? 0; + }); + + state.accountBalance = { + accountBalanceInfo: { + ...(state.accountBalance?.accountBalanceInfo || {}), + [identify]: totalBalanceInUsd, + }, + }; + + const newTokenList = skipCount === 0 ? list : [...preAccountTokenList, ...list]; + state.tokenPrices.tokenPriceObject = { ...state.tokenPrices.tokenPriceObject, ...priceObj }; + + if (!state.accountToken.accountTokenInfoV2) state.accountToken.accountTokenInfoV2 = {}; + state.accountToken.accountTokenInfoV2[identify] = { + accountTokenList: newTokenList as ITokenSectionResponse[], + skipCount, + totalRecordCount, + totalDisplayCount, + maxResultCount, + }; + state.accountToken.isFetching = false; + }) + .addCase(fetchTokenListAsync.rejected, state => { + state.accountToken.isFetching = false; + }) + .addCase(fetchNFTCollectionsAsync.pending, state => { + state.accountNFT.isFetching = true; + }) + .addCase(fetchNFTCollectionsAsync.rejected, state => { + state.accountNFT.isFetching = false; + }) + .addCase(fetchNFTCollectionsAsync.fulfilled, (state, action) => { + const { list, totalRecordCount, totalNftItemCount, maxNFTCount, skipCount, maxResultCount, identify } = + action.payload; + const preAccountNFTCollectionList = state.accountNFT.accountNFTInfo?.[identify]?.accountNFTList || []; + if (skipCount !== 0 && preAccountNFTCollectionList.length === totalRecordCount) { + state.accountNFT.isFetching = false; + return; + } + const newAccountList: NFTCollectionItemShowType[] = list.map(item => { + const targetItem = preAccountNFTCollectionList.find( + preItem => preItem.collectionName === item.collectionName && preItem.chainId === item.chainId, + ); + return { + isFetching: false, + skipCount: 0, + maxResultCount: maxNFTCount, + // prevTotalRecordCount: targetItem?.totalRecordCount || targetItem?.children || 0, + prevChildren: targetItem?.children || targetItem?.prevChildren || [], + totalRecordCount: 0, + children: [], + // children: [], + ...item, + }; + }); + const newAllAccountList = + skipCount === 0 ? newAccountList : [...preAccountNFTCollectionList, ...newAccountList]; + if (!state.accountNFT.accountNFTInfo) state.accountNFT.accountNFTInfo = {}; + state.accountNFT.accountNFTInfo[identify] = { + accountNFTList: newAllAccountList, + skipCount, + totalRecordCount, + totalNftItemCount, + maxResultCount, + }; + state.accountNFT.isFetching = false; + }) + .addCase(fetchNFTAsync.pending, (state, action) => { + if (!action.meta.arg) return; + const { symbol, chainId, identify } = action.meta.arg; + const preNFTCollection = state.accountNFT.accountNFTInfo?.[identify]?.accountNFTList; + const currentNFTSeriesItem = preNFTCollection?.find(ele => ele.symbol === symbol && ele.chainId === chainId); + if (currentNFTSeriesItem) { + currentNFTSeriesItem.isFetching = true; + } + }) + .addCase(fetchNFTAsync.fulfilled, (state, action) => { + if (!action.meta.arg) return; + const { symbol, chainId, identify } = action.meta.arg; + const preNFTCollection = state.accountNFT.accountNFTInfo?.[identify]?.accountNFTList; + const currentNFTSeriesItem = preNFTCollection?.find(ele => ele.symbol === symbol && ele.chainId === chainId); + if (currentNFTSeriesItem) { + currentNFTSeriesItem.isFetching = false; + } + if (!action.payload) return; + const { list, totalRecordCount, skipCount } = action.payload; + if (currentNFTSeriesItem) { + if (currentNFTSeriesItem?.children?.length > skipCount) return; + if (currentNFTSeriesItem.children.length > 0) { + currentNFTSeriesItem.prevChildren = [...currentNFTSeriesItem.children]; + } + currentNFTSeriesItem.children = [...currentNFTSeriesItem.children, ...list]; + currentNFTSeriesItem.skipCount = currentNFTSeriesItem.children.length; + currentNFTSeriesItem.totalRecordCount = totalRecordCount; + currentNFTSeriesItem.isFetching = false; + } + }) + // .addCase(fetchNFTAsync.rejected, state => { + // state.accountNFT.isFetching = false; + // }) + .addCase(fetchAssetAsync.pending, state => { + state.accountAssets.isFetching = true; + }) + .addCase(fetchAssetAsync.fulfilled, (state, action) => { + const { list, totalRecordCount, skipCount, maxResultCount, identify } = action.payload; + const preAccountAssetsList = state.accountAssets.accountAssetsInfo?.[identify]?.accountAssetsList || []; + if (skipCount !== 0 && preAccountAssetsList.length === totalRecordCount) { + state.accountAssets.isFetching = false; + return; + } + const newList = skipCount === 0 ? list : [...preAccountAssetsList, ...list]; + if (!state.accountAssets.accountAssetsInfo) state.accountAssets.accountAssetsInfo = {}; + state.accountAssets.accountAssetsInfo[identify] = { + accountAssetsList: newList, + skipCount, + totalRecordCount, + maxResultCount, + }; + state.accountAssets.isFetching = false; + }) + .addCase(fetchAssetAsync.rejected, state => { + state.accountAssets.isFetching = false; + }) + .addCase(fetchAssetV2Async.pending, state => { + if (!state.accountAssetsV2) { + state.accountAssetsV2 = { + ...INIT_ACCOUNT_ASSETS_INFO_V2, + isFetching: false, + }; + } + state.accountAssetsV2.isFetching = true; + }) + .addCase(fetchAssetV2Async.fulfilled, (state, action) => { + const { nftInfos, tokenInfos, totalRecordCount, skipCount, maxResultCount, identify } = action.payload; + if (!state.accountAssetsV2.accountAssetsInfo) state.accountAssetsV2.accountAssetsInfo = {}; + + state.accountAssetsV2.accountAssetsInfo[identify] = { + accountAssetsList: { nftInfos, tokenInfos }, + skipCount, + totalRecordCount, + maxResultCount, + }; + state.accountAssetsV2.isFetching = false; + }) + .addCase(fetchAssetV2Async.rejected, state => { + state.accountAssetsV2.isFetching = false; + }) + .addCase(fetchCryptoBoxAssetAsync.fulfilled, (state, action) => { + const { list, totalRecordCount } = action.payload; + if (!state.accountCryptoBoxAssets) + state.accountCryptoBoxAssets = { + isFetching: false, + skipCount: 0, + maxResultCount: 1000, + accountAssetsList: [], + totalRecordCount: 0, + }; + + state.accountCryptoBoxAssets.accountAssetsList = list; + state.accountCryptoBoxAssets.totalRecordCount = totalRecordCount; + }) + .addCase(fetchTokensPriceAsync.pending, state => { + state.accountToken.isFetching = true; + }) + .addCase(fetchTokensPriceAsync.fulfilled, (state, action) => { + const { list } = action.payload; + + list.map(ele => { + state.tokenPrices.tokenPriceObject[ele?.symbol] = ele?.priceInUsd; + }); + // state.accountAssets.accountAssetsList = [...state.accountAssets.accountAssetsList, ...list]; + state.accountAssets.skipCount = state.accountAssets.accountAssetsList.length; + state.accountAssets.isFetching = false; + }) + .addCase(fetchTokensPriceAsync.rejected, state => { + state.accountToken.isFetching = false; + }) + .addCase(fetchTargetTokenBalanceAsync.fulfilled, (state, action) => { + const { chainId, symbol, response, identify } = action.payload; + + const newTokens = ({ + tokens, + chainId, + balance, + balanceInUsd, + }: { + tokens?: TokenItemShowType[]; + chainId: ChainId; + balance: string; + balanceInUsd: string; + }) => { + if (!tokens) return []; + return tokens.map(ele => { + if (ele.chainId === chainId && ele.symbol === symbol) { + return { ...ele, balance, balanceInUsd }; + } + return ele; + }); + }; + const tmpList = state.accountToken?.accountTokenInfoV2?.[identify]?.accountTokenList?.map(ele => + ele.symbol === symbol + ? { + ...ele, + tokens: newTokens({ + tokens: ele.tokens, + chainId, + balance: response.balance, + balanceInUsd: response.balanceInUsd, + }), + } + : ele, + ); + state.accountToken.accountTokenInfoV2 = { + ...(state.accountToken.accountTokenInfoV2 || {}), + [identify]: { + ...(state?.accountToken?.accountTokenInfoV2?.[identify] || {}), + accountTokenList: tmpList, + }, + }; + }); + }, +}); + +export const { + clearNftItem, + resetAssets, + clearAccountNftCollectionInfo, + clearAccountAssetsInfo, + clearAccountTokenInfo, + changeNftSectionUiType, +} = assetsSlice.actions; + +export default assetsSlice; diff --git a/packages/store/store-eoa/assets/type.ts b/packages/store/store-eoa/assets/type.ts new file mode 100644 index 0000000000..1715b525a3 --- /dev/null +++ b/packages/store/store-eoa/assets/type.ts @@ -0,0 +1,145 @@ +import { ChainId, NetworkType } from '@portkey-wallet/types'; +import { NFTCollectionItemShowType, SeedTypeEnum } from '@portkey-wallet/types/types-ca/assets'; +import { IAccountCryptoBoxAssetItem, ITokenSectionResponse } from '@portkey-wallet/types/types-ca/token'; + +export interface ITokenInfoType { + balance: string; + decimals: number; + balanceInUsd: string; + tokenContractAddress: string; + imageUrl?: string; +} + +export interface INftInfoType { + imageUrl: string; + alias: string; + tokenId: string; + tokenName?: string; + collectionName?: string; + balance: string; + chainId: string; + decimals: number; + seedType?: SeedTypeEnum; + isSeed?: boolean; + tokenContractAddress?: string; + displayChainName?: string; + chainImageUrl?: string; +} + +export interface IAssetItemType { + chainId: ChainId; + symbol: string; + address: string; + tokenInfo?: ITokenInfoType; + nftInfo?: INftInfoType; + label?: string; + displayChainName?: string; + chainImageUrl?: string; +} + +export interface IAssetToken { + address: string; // user chain address + balance: string; + balanceInUsd: string; + chainId: ChainId; + chainImageUrl: string; + decimals: string; + displayChainName: string; + imageUrl: string; + symbol: string; + tokenContractAddress: string; + label?: string; +} + +export interface IAssetNftCollection { + collectionName: string; + imageUrl: string; + items: INftInfoType[]; +} + +export interface IAssetItemV2 { + nftInfos: IAssetNftCollection[]; + tokenInfos: IAssetToken[]; +} + +export enum AddressCheckError { + invalidAddress = 'Invalid Address', + recipientAddressIsInvalid = 'Recipient address is invalid', + equalIsValid = 'The sender and recipient address are identical', +} + +export type TAccountTokenInfo = { + skipCount?: number; + maxResultCount?: number; + accountTokenList?: ITokenSectionResponse[]; + totalRecordCount?: number; + totalDisplayCount?: number; +}; + +export type TAccountNFTInfo = { + skipCount: number; + maxResultCount: number; + accountNFTList: NFTCollectionItemShowType[]; + totalRecordCount: number; + totalNftItemCount: number; +}; + +export type TAccountAssetsInfo = { + skipCount: number; + maxResultCount: number; + accountAssetsList: IAssetItemType[]; + totalRecordCount: number; +}; + +export type TAccountAssetsInfoV2 = { + skipCount: number; + maxResultCount: number; + accountAssetsList: IAssetItemV2; + totalRecordCount: number; +}; +// asset = token + nft +export type TAssetsState = { + accountToken: TAccountTokenInfo & { + isFetching: boolean; + accountTokenInfoV2?: { + [key in string]?: TAccountTokenInfo; + }; + }; + accountNFT: TAccountNFTInfo & { + isFetching: boolean; + accountNFTInfo?: { + [key in string]?: TAccountNFTInfo; + }; + }; + tokenPrices: { + isFetching: boolean; + tokenPriceObject: { + [symbol: string]: number | string; + }; + }; + accountAssets: TAccountAssetsInfo & { + isFetching: boolean; + accountAssetsInfo?: { + [key in string]?: TAccountAssetsInfo; + }; + }; + accountAssetsV2: TAccountAssetsInfoV2 & { + isFetching: boolean; + accountAssetsInfo?: { + [key in string]?: TAccountAssetsInfoV2; + }; + }; + accountBalance: { + accountBalanceInfo?: { + [key in string]?: string; + }; + }; + accountCryptoBoxAssets: { + isFetching: boolean; + skipCount: number; + maxResultCount: number; + accountAssetsList: IAccountCryptoBoxAssetItem[]; + totalRecordCount: number; + }; + nftSectionUiType: 'Collections' | 'NFTs'; +}; diff --git a/packages/store/store-eoa/tokenManagement/action.ts b/packages/store/store-eoa/tokenManagement/action.ts new file mode 100644 index 0000000000..12bab83f6d --- /dev/null +++ b/packages/store/store-eoa/tokenManagement/action.ts @@ -0,0 +1,80 @@ +import { createAsyncThunk } from '@reduxjs/toolkit'; +import { createAction } from '@reduxjs/toolkit'; +import { HandleTokenArgTypes } from '@portkey-wallet/types/types-eoa/token'; +import { fetchAllTokenList, fetchAllTokenListLegacy } from './api'; +import { request } from '@portkey-wallet/api/api-did'; +import { NetworkType } from '@portkey-wallet/types'; + +export const addTokenInCurrentAccount = createAction('token/addTokenInCurrentAccount'); + +export const deleteTokenInCurrentAccount = createAction('token/deleteTokenInCurrentAccount'); +export const resetTokenInfo = createAction('token/resetTokenInfo'); + +export const fetchAllTokenListAsync = createAsyncThunk( + 'tokenManagement/fetchAllTokenListAsync', + async ({ + keyword = '', + chainIdArray, + skipCount = 0, + maxResultCount = 1000, + identify, + }: { + keyword?: string; + chainIdArray?: string[]; + skipCount?: number; + maxResultCount?: number; + identify: string; + }) => { + const response = await fetchAllTokenListLegacy({ + keyword, + chainIdArray: chainIdArray || [], + skipCount, + maxResultCount, + }); + + return { list: response.items, totalRecordCount: response.totalCount, skipCount, maxResultCount, identify }; + }, +); + +export const fetchAllTokenListV2Async = createAsyncThunk( + 'tokenManagement/fetchAllTokenListV2Async', + async ({ + keyword = '', + chainIdArray, + skipCount = 0, + maxResultCount = 1000, + identify, + }: { + keyword?: string; + chainIdArray?: string[]; + skipCount?: number; + maxResultCount?: number; + identify: string; + }) => { + const response = await fetchAllTokenList({ + keyword, + chainIdArray: chainIdArray || [], + skipCount, + maxResultCount, + }); + console.log('fetchAllTokenListV2Async start:'); + + console.log('response is:', response.data); + return { + list: response.data, + totalRecordCount: response.totalRecordCount, + skipCount, + maxResultCount, + identify, + }; + }, +); +export const getSymbolImagesAsync = createAsyncThunk('tokenManagement/getSymbolImagesAsync', async () => { + try { + const { symbolImages } = await request.assets.getSymbolImages({}); + return symbolImages; + } catch (error) { + console.log('getSymbolImages error', error); + return {}; + } +}); diff --git a/packages/store/store-eoa/tokenManagement/api.ts b/packages/store/store-eoa/tokenManagement/api.ts new file mode 100644 index 0000000000..84e42802ff --- /dev/null +++ b/packages/store/store-eoa/tokenManagement/api.ts @@ -0,0 +1,82 @@ +import { request } from '@portkey-wallet/api/api-did'; +import { ChainId } from '@portkey-wallet/types'; + +export function fetchAllTokenList({ + keyword, + chainIdArray, + skipCount = 0, + maxResultCount = 1000, +}: { + keyword: string; + chainIdArray: string[]; + skipCount?: number; + maxResultCount?: number; +}): Promise<{ + data: { + symbol: string; + imageUrl?: string; + label?: string; + displayStatus?: 'All' | 'Partial' | 'None'; + isDefault?: boolean; + tokens?: { + id: string; + chainId: ChainId; + symbol: string; + imageUrl?: string; + address?: string; + decimals: number; + isDefault: boolean; + isDisplay: boolean; + label?: string; + displayChainName?: string; + chainImageUrl?: string; + }[]; + }[]; + totalRecordCount: number; +}> { + return request.token.fetchPopularTokenV2({ + params: { + chainIds: chainIdArray, + keyword, + skipCount, + maxResultCount, + }, + }); +} + +export function fetchAllTokenListLegacy({ + keyword, + chainIdArray, + skipCount = 0, + maxResultCount = 1000, +}: { + keyword: string; + chainIdArray: string[]; + skipCount?: number; + maxResultCount?: number; +}): Promise<{ + items: { + id: string; + chainId: ChainId; + symbol: string; + decimals: number; + isDefault: boolean; + isDisplay: boolean; + address: string; + imageUrl?: string; + name?: string; + label?: string; + displayChainName?: string; + chainImageUrl?: string; + }[]; + totalCount: number; +}> { + return request.token.fetchPopularToken({ + params: { + chainIds: chainIdArray, + keyword, + skipCount, + maxResultCount, + }, + }); +} diff --git a/packages/store/store-eoa/tokenManagement/index.test.ts b/packages/store/store-eoa/tokenManagement/index.test.ts new file mode 100644 index 0000000000..08581a3a73 --- /dev/null +++ b/packages/store/store-eoa/tokenManagement/index.test.ts @@ -0,0 +1,116 @@ +import { ChainId } from '@portkey-wallet/types'; +import { clearMarketToken, resetToken, tokenManagementSlice } from './slice'; +import { fetchAllTokenList } from './api'; +import { configureStore } from '@reduxjs/toolkit'; +import { fetchAllTokenListAsync, getSymbolImagesAsync } from './action'; +import { request } from '@portkey-wallet/api/api-did'; + +jest.mock('./api'); +jest.mock('@portkey-wallet/api/api-did'); +const reducer = tokenManagementSlice.reducer; +const mockInitState = { + tokenDataShowInMarket: [], + isFetching: false, + skipCount: 0, + maxResultCount: 1000, + totalRecordCount: 0, + symbolImages: {}, +}; + +describe('resetToken', () => { + test('Reset tokenDataShowInMarket successful', () => { + const mockPrevState = { + ...mockInitState, + tokenDataShowInMarket: [ + { + chainId: 'AELF' as ChainId, + decimals: 8, + address: '0', + symbol: 'ELF', + name: 'name', + }, + ], + }; + const newState = reducer(mockPrevState, resetToken()); + expect(newState.tokenDataShowInMarket).toEqual([]); + }); +}); +describe('clearMarketToken', () => { + test('Reset tokenDataShowInMarket successful', () => { + const mockPrevState = { + ...mockInitState, + tokenDataShowInMarket: [ + { + chainId: 'AELF' as ChainId, + decimals: 8, + address: '0', + symbol: 'ELF', + name: 'name', + }, + ], + }; + const newState = reducer(mockPrevState, clearMarketToken()); + expect(newState.tokenDataShowInMarket).toEqual([]); + }); +}); + +describe('fetchAllTokenListAsync', () => { + test('Fetch allTokenList successful, will update tokenDataShowInMarket', async () => { + jest.mocked(fetchAllTokenList).mockResolvedValue({ + items: [ + { + isDisplay: true, + isDefault: true, + id: 'id', + token: { + chainId: 'AELF' as ChainId, + decimals: 8, + address: 'address', + symbol: 'ELF', + id: 'tokenId', + }, + }, + ], + totalRecordCount: 0, + }); + const mockParams = { + keyword: '', + chainIdArray: [], + }; + const mockStore = configureStore({ reducer, preloadedState: mockInitState }); + await mockStore.dispatch(fetchAllTokenListAsync(mockParams)); + expect(mockStore.getState().tokenDataShowInMarket).toHaveLength(1); + }); + test('Fetch allTokenList failed, will throw error', async () => { + jest.mocked(fetchAllTokenList).mockRejectedValue({ + message: 'error', + }); + const mockParams = { + keyword: '', + chainIdArray: [], + }; + const mockStore = configureStore({ reducer, preloadedState: mockInitState }); + const res = await mockStore.dispatch(fetchAllTokenListAsync(mockParams)); + expect(res.type).toEqual('tokenManagement/fetchAllTokenListAsync/rejected'); + }); +}); + +describe('getSymbolImagesAsync', () => { + const mockStore = configureStore({ reducer }); + test('Get symbolImages successful, will update symbolImages', async () => { + jest.mocked(request.assets.getSymbolImages).mockResolvedValue({ + symbolImages: { + ELF: 'https://aelf.io/favicon.ico', + }, + }); + await mockStore.dispatch(getSymbolImagesAsync()); + expect(mockStore.getState().symbolImages).toHaveProperty('ELF'); + }); + test('Get symbolImages failed, will throw error', async () => { + jest.mocked(request.assets.getSymbolImages).mockRejectedValue({ + message: 'error', + }); + const res = await mockStore.dispatch(getSymbolImagesAsync()); + expect(res.type).toEqual('tokenManagement/getSymbolImagesAsync/rejected'); + }); +}); diff --git a/packages/store/store-eoa/tokenManagement/slice.ts b/packages/store/store-eoa/tokenManagement/slice.ts new file mode 100644 index 0000000000..1d0f2ede20 --- /dev/null +++ b/packages/store/store-eoa/tokenManagement/slice.ts @@ -0,0 +1,119 @@ +import { createSlice } from '@reduxjs/toolkit'; +import { IUserTokenItemResponse, TokenItemShowType, TokenState } from '@portkey-wallet/types/types-eoa/token'; +import { fetchAllTokenListAsync, fetchAllTokenListV2Async, getSymbolImagesAsync, resetTokenInfo } from './action'; + +export const INITIAL_TOKEN_INFO = { + tokenDataShowInMarket: [], + skipCount: 0, + maxResultCount: 1000, + totalRecordCount: 0, +}; + +const initialState: TokenState = { + ...INITIAL_TOKEN_INFO, + isFetching: false, + symbolImages: {}, +}; + +//it automatically uses the immer library to let you write simpler immutable updates with normal mutative code +export const tokenManagementSlice = createSlice({ + name: 'tokenManagement', + initialState, + reducers: { + clearMarketToken: state => { + console.log('initCurrentAccountToken'); + state.tokenDataShowInMarket = []; + }, + resetToken: state => { + state.tokenDataShowInMarket = []; + }, + resetTokenManagement: () => initialState, + }, + extraReducers: builder => { + builder + .addCase(fetchAllTokenListAsync.pending, state => { + state.isFetching = true; + }) + .addCase(fetchAllTokenListAsync.fulfilled, (state, action) => { + const { list, totalRecordCount, skipCount, maxResultCount, identify } = action.payload; + const preTokenDataShowInMarket = state.tokenInfo?.[identify]?.tokenDataShowInMarket || []; + if (skipCount !== 0 && preTokenDataShowInMarket?.length === totalRecordCount) return; + const tmpToken: TokenItemShowType[] = list.map(item => ({ + isAdded: item.isDisplay, + isDefault: item.isDefault, + userTokenId: item?.id, + chainId: item.chainId, + decimals: item.decimals, + address: item.address, + symbol: item.symbol, + tokenName: item.symbol, + id: item?.id, + name: item?.symbol, + imageUrl: item.imageUrl, + label: item.label, + displayChainName: item.displayChainName, + chainImageUrl: item.chainImageUrl, + })); + const newList = skipCount === 0 ? tmpToken : [...preTokenDataShowInMarket, ...tmpToken]; + if (!state.tokenInfo) state.tokenInfo = {}; + state.tokenInfo[identify] = { + tokenDataShowInMarket: newList, + totalRecordCount, + skipCount, + maxResultCount, + isFetching: false, + }; + state.isFetching = false; + }) + .addCase(fetchAllTokenListAsync.rejected, state => { + state.isFetching = false; + }) + .addCase(fetchAllTokenListV2Async.pending, state => { + state.isFetching = true; + }) + .addCase(fetchAllTokenListV2Async.fulfilled, (state, action) => { + const { list, totalRecordCount, skipCount, maxResultCount, identify } = action.payload; + const preTokenDataShowInMarket = state.tokenInfoV2?.[identify]?.tokenDataShowInMarket || []; + if (skipCount !== 0 && preTokenDataShowInMarket?.length === totalRecordCount) return; + const tmpToken: IUserTokenItemResponse[] = list.map(item => ({ + tokens: item.tokens, + symbol: item.symbol, + displayStatus: item.displayStatus, + label: item.label, + imageUrl: item.imageUrl, + isDefault: item.isDefault, + })); + const newList = skipCount === 0 ? tmpToken : [...preTokenDataShowInMarket, ...tmpToken]; + if (!state.tokenInfoV2) state.tokenInfoV2 = {}; + state.tokenInfoV2[identify] = { + tokenDataShowInMarket: newList, + totalRecordCount, + skipCount, + maxResultCount, + isFetching: false, + }; + state.isFetching = false; + }) + .addCase(fetchAllTokenListV2Async.rejected, state => { + state.isFetching = false; + }) + .addCase(resetTokenInfo, (state, action) => { + const tokenInfo = state.tokenInfo; + if (tokenInfo?.[action.payload]) delete tokenInfo[action.payload]; + state.tokenInfo = tokenInfo; + }) + .addCase(getSymbolImagesAsync.fulfilled, (state, action) => { + state.symbolImages = { + ...state.symbolImages, + ...action.payload, + }; + }) + .addCase(getSymbolImagesAsync.rejected, (_state, action) => { + console.log('getSymbolImagesAsync:rejected', action); + }); + }, +}); + +export const { clearMarketToken, resetToken, resetTokenManagement } = tokenManagementSlice.actions; + +export default tokenManagementSlice; diff --git a/packages/store/store-eoa/tokenManagement/types.ts b/packages/store/store-eoa/tokenManagement/types.ts new file mode 100644 index 0000000000..ad7e6a7bdc --- /dev/null +++ b/packages/store/store-eoa/tokenManagement/types.ts @@ -0,0 +1 @@ +export const test = 1; diff --git a/packages/store/store-eoa/wallet/actions.ts b/packages/store/store-eoa/wallet/actions.ts index b055bf9535..f4eaf6b449 100644 --- a/packages/store/store-eoa/wallet/actions.ts +++ b/packages/store/store-eoa/wallet/actions.ts @@ -1,5 +1,11 @@ +import { NetworkType } from '@portkey-wallet/types'; +import { RequireAtLeastOne } from '@portkey-wallet/types/common'; import { TAccountInfo, TWalletInfo } from '@portkey-wallet/types/types-eoa/wallet'; -import { createAction } from '@reduxjs/toolkit'; +import { createAction, createAsyncThunk } from '@reduxjs/toolkit'; +import { TWalletState } from './type'; +import { NetworkList } from '@portkey-wallet/constants/constants-ca/network-mainnet-v2'; +import { getChainList } from './api'; +import { IChainItemType } from '@portkey-wallet/types/types-eoa/chain'; export const addWallet = createAction<{ wallet: TWalletInfo; @@ -18,3 +24,25 @@ export const removeAccount = createAction<{ key: string; address: string; }>('wallet/removeAccount'); +export const resetWallet = createAction('wallet/resetWallet'); + +export const setHideAssetsAction = + createAction>('wallet/setHideAssetsAction'); +export const setChainListAction = createAction<{ chainList: IChainItemType[]; networkType: NetworkType }>( + 'wallet/setChainListAction', +); +export const getChainListAsync = createAsyncThunk( + 'wallet/getChainList', + async (type: NetworkType | undefined, { getState, dispatch }) => { + const { + wallet: { networkType }, + } = getState() as { wallet: TWalletState }; + const _networkType = type ? type : networkType; + const baseUrl = NetworkList.find(item => item.networkType === _networkType)?.eoaApiUrl; + if (!baseUrl) throw Error('Unable to obtain the corresponding network'); + const response = await getChainList({ baseUrl }); + if (!response?.items) throw Error('No data'); + dispatch(setChainListAction({ chainList: response.items, networkType: _networkType })); + return [response.items, response.items.find((item: any) => item.chainId === 'AELF')]; + }, +); diff --git a/packages/store/store-eoa/wallet/api.ts b/packages/store/store-eoa/wallet/api.ts new file mode 100644 index 0000000000..9dc28a8b1f --- /dev/null +++ b/packages/store/store-eoa/wallet/api.ts @@ -0,0 +1,11 @@ +import { request } from '@portkey-wallet/api/api-did'; + +export const getChainList = ({ baseUrl }: { baseUrl: string }) => { + try { + return request.es.getChainsInfo({ baseURL: baseUrl }); + } catch (error: any) { + if (error?.type) throw Error(error.type); + if (error?.error?.message) throw Error(error.error.message); + throw Error(JSON.stringify(error)); + } +}; diff --git a/packages/store/store-eoa/wallet/slice.ts b/packages/store/store-eoa/wallet/slice.ts index 5d423e2096..1a32b6f64d 100644 --- a/packages/store/store-eoa/wallet/slice.ts +++ b/packages/store/store-eoa/wallet/slice.ts @@ -1,20 +1,46 @@ -import { createSlice } from '@reduxjs/toolkit'; +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { TWalletState } from './type'; -import { addAccount, addWallet, removeAccount, removeWallet } from './actions'; +import { + addAccount, + addWallet, + removeAccount, + removeWallet, + resetWallet, + setChainListAction, + setHideAssetsAction, +} from './actions'; +import { getNextBIP44Path } from '@portkey-wallet/utils/wallet'; +import { NetworkType } from '@portkey-wallet/types'; const initialState: TWalletState = { walletList: [], privateKeyAccountList: [], currentAccountAddress: undefined, + networkType: 'MAINNET', + hideAssets: false, + chainInfo: {}, }; export const walletSlice = createSlice({ name: 'wallet', initialState, - reducers: {}, + reducers: { + changeNetworkType: (state, action: PayloadAction) => { + state.networkType = action.payload; + }, + }, extraReducers: builder => { builder .addCase(addWallet, (state, action) => { const { wallet } = action.payload; + console.log('wallet======2', JSON.stringify(wallet)); + console.log( + 'wallet======3', + JSON.stringify({ + ...state, + walletList: [...state.walletList, wallet], + currentAccountAddress: wallet.accountList[0]?.address, + }), + ); return { ...state, walletList: [...state.walletList, wallet], @@ -40,6 +66,8 @@ export const walletSlice = createSlice({ wallet.accountList = [...wallet.accountList, account]; // TODO: eoa add currentAccountAddress logic + wallet.nextBIP44Path = getNextBIP44Path(account.BIP44Path); + state.currentAccountAddress = account.address; return { ...state, walletList, @@ -59,6 +87,17 @@ export const walletSlice = createSlice({ ...state, walletList, }; - }); + }) + .addCase(setHideAssetsAction, (state, action) => { + const { hideAssets } = action.payload; + state.hideAssets = hideAssets; + }) + .addCase(setChainListAction, (state, action) => { + const { chainList, networkType } = action.payload; + if (!state.chainInfo) state.chainInfo = { [networkType]: chainList }; + state.chainInfo[networkType] = chainList; + }) + .addCase(resetWallet, () => ({ ...initialState })); }, }); +export const { changeNetworkType } = walletSlice.actions; diff --git a/packages/store/store-eoa/wallet/type.ts b/packages/store/store-eoa/wallet/type.ts index b39a028bfe..801f1bdff2 100644 --- a/packages/store/store-eoa/wallet/type.ts +++ b/packages/store/store-eoa/wallet/type.ts @@ -1,7 +1,25 @@ +import { NetworkType } from '@portkey-wallet/types'; +import { IChainItemType } from '@portkey-wallet/types/types-eoa/chain'; import { TAccountInfo, TWalletInfo } from '@portkey-wallet/types/types-eoa/wallet'; export type TWalletState = { walletList: TWalletInfo[]; privateKeyAccountList: TAccountInfo[]; currentAccountAddress?: TAccountInfo['address']; + networkType: NetworkType; + hideAssets: boolean; + chainInfo?: { [key in NetworkType]?: IChainItemType[] }; }; + +// export interface WalletState { +// walletAvatar: string; // to be scrapped, please use userInfo.avatar +// walletType: WalletType; +// currentNetwork: NetworkType; +// walletInfo?: CAWalletInfoType; +// chainList: IChainItemType[]; +// chainInfo?: { [key in NetworkType]?: IChainItemType[] }; +// originChainId?: ChainId; +// userInfo?: { [key in NetworkType]?: UserInfoType }; +// tmpWalletInfo?: TWalletInfo; +// checkManagerExceedMap?: { [key in NetworkType]?: boolean }; +// } diff --git a/packages/types/types-ca/network.ts b/packages/types/types-ca/network.ts index fac7db8420..c5ac816563 100644 --- a/packages/types/types-ca/network.ts +++ b/packages/types/types-ca/network.ts @@ -38,4 +38,6 @@ export type NetworkItem = { hamsterUrl?: string; zkLoginVerifyUrl?: string; cryptoGiftTgUrl?: string; + eoaApiUrl?: string; + eoaConnectApiUrl?: string; }; diff --git a/packages/types/types-eoa/activity.ts b/packages/types/types-eoa/activity.ts new file mode 100644 index 0000000000..a49d623356 --- /dev/null +++ b/packages/types/types-eoa/activity.ts @@ -0,0 +1,88 @@ +import { TransactionTypes } from '@portkey-wallet/constants/constants-eoa/activity'; +import { ChainId, ChainType } from '..'; +import { BaseToken } from './token'; +import { SeedTypeEnum } from './assets'; + +export type ActivityItemType = { + chainId: string; + transactionType: TransactionTypes; + transactionName?: string; // item title + from: string; // wallet name + to: string; // to user nick name + fromAddress: string; + toAddress: string; + fromChainId: ChainId; + toChainId: ChainId; + status: string; + transactionId: string; + blockHash: string; // The chain may have forks, use transactionId and blockHash to uniquely determine the transaction + timestamp: string; + isReceived: boolean; // Is it a received transaction + amount: string; + symbol: string; + decimals?: string; + priceInUsd?: string; // The unit price at that time + currentPriceInUsd?: string; // Real-time unit price + currentTxPriceInUsd?: string; // Real-time tx price + nftInfo?: NftInfo; + transactionFees: TransactionFees[]; + listIcon?: string; + isDelegated?: boolean; + isSystem?: boolean; + operations?: TDappOperations[]; + dappName?: string; + dappIcon?: string; + fromChainIdUpdated?: string; + toChainIdUpdated?: string; + fromChainIcon?: string; + toChainIcon?: string; + sourceIcon?: string; + statusIcon?: string; +}; + +export type TDappOperations = { + symbol: string; + amount: string; + decimals: string; + icon?: string; + isReceived: true; + nftInfo?: NftInfo; +}; + +export type NftInfo = { + imageUrl: string; + alias: string; + nftId: string; + isSeed?: boolean; + seedType?: SeedTypeEnum; +}; + +export type TransactionFees = { + symbol: string; + fee: number | string; + feeInUsd: string; + decimals: string; +}; + +export type the2ThFailedActivityItemType = { + transactionId: string; + params: { + chainType: ChainType; + managerAddress: string; + tokenInfo: BaseToken; + amount: number | string; + toAddress: string; + memo?: string; + issueChainId: number; + }; +}; + +export enum TransactionStatus { + Conflict = 'CONFLICT', + Failed = 'FAILED', + Mined = 'MINED', + NodeValidationFailed = 'NODE_VALIDATION_FAILED', + NotExisted = 'NOT_EXISTED', + Pending = 'PENDING', + PendingValidation = 'PENDING_VALIDATION', +} diff --git a/packages/types/types-eoa/assets.ts b/packages/types/types-eoa/assets.ts new file mode 100644 index 0000000000..8d058b7d9b --- /dev/null +++ b/packages/types/types-eoa/assets.ts @@ -0,0 +1,76 @@ +import { ChainId } from '..'; + +export enum SeedTypeEnum { + 'None' = 0, + 'Token' = 1, + 'NFT' = 2, +} + +// nft collection types +export type NFTCollectionItemBaseType = { + chainId: ChainId; + collectionName: string; + imageUrl: string; + itemCount: number; + symbol: string; + inscriptionName?: string; + limitPerMint?: number; + isSeed?: boolean; + seedType?: SeedTypeEnum; + expires?: string; + seedOwnedSymbol?: string; + chainImageUrl?: string; + displayChainImage?: boolean; + displayChainName?: string; +}; + +export interface NFTCollectionItemShowType extends NFTCollectionItemBaseType { + isFetching: boolean; + skipCount: number; + maxResultCount: number; + totalRecordCount: string | number; + children: NFTItemBaseType[]; + prevChildren: NFTItemBaseType[]; +} + +// nft item types +export type NFTItemBaseType = { + balance: string; + chainId: ChainId; + symbol: string; + tokenId: string; + alias: string; + quantity: string; + imageUrl: string; + tokenContractAddress: string; + totalSupply: string | number; + decimals?: string | number; + isSeed?: boolean; + seedType?: SeedTypeEnum; + inscriptionName?: string; + limitPerMint?: number; + expires?: string; + seedOwnedSymbol?: string; + circulatingSupply?: number; + collectionSymbol?: string; + imageLargeUrl?: string; + tokenName?: string; + traits?: string; + recommendedRefreshSeconds?: number; + generation?: string; + traitsPercentages?: TraitsPercentType[]; + displayChainName?: string; + chainImageUrl?: string; + description?: string; +}; + +export type TraitsPercentType = { + traitType: string; + value: string; + percent: string; +}; + +export type RateBaseType = { + symbol: string; + priceInUsd: string | number; +}; diff --git a/packages/types/types-eoa/chain.ts b/packages/types/types-eoa/chain.ts index 205cdc221c..c3183b4f65 100644 --- a/packages/types/types-eoa/chain.ts +++ b/packages/types/types-eoa/chain.ts @@ -14,4 +14,5 @@ export interface IChainItemType { explorerUrl: string; defaultToken: DefaultToken; chainImageUrl?: string; + displayChainName?: string; } diff --git a/packages/types/types-eoa/network.ts b/packages/types/types-eoa/network.ts index 2087e4a6e3..a0af0c8620 100644 --- a/packages/types/types-eoa/network.ts +++ b/packages/types/types-eoa/network.ts @@ -25,4 +25,7 @@ export type NetworkItem = { }; hamsterUrl?: string; cryptoGiftTgUrl?: string; + zkLoginVerifyUrl?: string; + eoaApiUrl?: string; + eoaConnectApiUrl?: string; }; diff --git a/packages/types/types-eoa/store.ts b/packages/types/types-eoa/store.ts index 5ab75db3b7..a808b18ced 100644 --- a/packages/types/types-eoa/store.ts +++ b/packages/types/types-eoa/store.ts @@ -3,13 +3,21 @@ import { ChainState } from '@portkey-wallet/store/network/types'; import settingsSlice from '@portkey-wallet/store/settings/slice'; import { SettingsState } from '@portkey-wallet/store/settings/types'; import { walletSlice } from '@portkey-wallet/store/store-eoa/wallet/slice'; +import { assetsSlice } from '@portkey-wallet/store/store-eoa/assets/slice'; import { TWalletState } from '@portkey-wallet/store/store-eoa/wallet/type'; import { networkSlice } from '@portkey-wallet/store/store-eoa/network/slice'; import { TNetworkState } from '@portkey-wallet/store/store-eoa/network/type'; +import { TAssetsState } from '@portkey-wallet/store/store-eoa/assets/type'; +import tokenManagementSlice from '@portkey-wallet/store/store-eoa/tokenManagement/slice'; +import { TokenState } from './token'; +import activitySlice from '@portkey-wallet/store/store-eoa/activity/slice'; +import { ActivityStateType } from '@portkey-wallet/store/store-eoa/activity/type'; export type EOACommonState = { [settingsSlice.name]: SettingsState; [walletSlice.name]: TWalletState; [chainSlice.name]: ChainState; - [networkSlice.name]: TNetworkState; + [assetsSlice.name]: TAssetsState; + [tokenManagementSlice.name]: TokenState; + [activitySlice.name]: ActivityStateType; }; diff --git a/packages/types/types-eoa/token.ts b/packages/types/types-eoa/token.ts index 12bbb3b799..c968cec23c 100644 --- a/packages/types/types-eoa/token.ts +++ b/packages/types/types-eoa/token.ts @@ -1,35 +1,104 @@ -import { ChainItemType } from '@portkey-wallet/types/chain'; -import { AccountType } from '@portkey-wallet/types/wallet'; import { ChainId } from '..'; +import { ChainItemType } from '../chain'; +import { AccountType } from '../wallet'; +import { SeedTypeEnum } from './assets'; export interface BaseToken { id?: string; // id - decimals: number; // 8 + chainId: ChainId; + decimals: number | string; // 8 address: string; // "ArPnUb5FtxG2oXTaWX2DxNZowDEruJLs2TEkhRCzDdrRDfg8B", token address contract address symbol: string; // "ELF" the name showed + imageUrl?: string; + alias?: string; + tokenId?: string; // nft tokenId + isSeed?: boolean; + seedType?: SeedTypeEnum; + inscriptionName?: string; + limitPerMint?: number; + expires?: string; + seedOwnedSymbol?: string; + label?: string; + displayChainName?: string; + chainImageUrl?: string; } export interface TokenItemType extends BaseToken { - isDefault: boolean; // boolean, - tokenName: string; // "ELF" + isDefault?: boolean; // boolean, + tokenName?: string; // "ELF" chainId: ChainId; // string "AELF" } export interface TokenItemShowType extends TokenItemType { isAdded?: boolean; // boolean + tokenContractAddress?: string; + imageUrl?: string; balance?: string; + balanceInUsd?: string; + price?: string | number; + userTokenId?: string; } +export type IUserTokenItem = Omit & { isDisplay?: boolean; address?: string }; -// all Added TokenInfo(all chain all account tokenList) -export interface AddedTokenData { - [rpcUrl: string]: AddedChainTokenDataType; +export type ITokenSectionResponse = { + chainId?: string; + symbol: string; + price?: number; + balance?: string; + decimals?: number; + balanceInUsd?: string; + label?: string; + imageUrl?: string; + displayStatus?: 'All' | 'Partial' | 'None'; + tokens?: TokenItemShowType[]; +}; +export type IUserTokenItemResponse = { + symbol: string; + price?: number; + balance?: string; + decimals?: number; + balanceInUsd?: string; + label?: string; + imageUrl?: string; + isDefault?: boolean; + displayStatus?: 'All' | 'Partial' | 'None'; + tokens?: IUserTokenItem[]; + chainImageUrl?: string; + displayChainName?: string; +}; + +export type UserTokenItemTokenType = Omit & { chainId: string }; + +export interface UserTokenItemType { + userId: string; + id: string; // user-token-id + isDisplay: boolean; + isDefault: boolean; + token: UserTokenItemTokenType; } -export interface AddedChainTokenDataType { - [accountAddress: string]: TokenItemType[]; +// all Added TokenInfo(all chain all account tokenList) +export interface AddedTokenData { + [rpcUrl: string]: TokenItemType[]; } export type TokenListShowInMarketType = TokenItemShowType[]; +// add-token list +export type UserTokenListType = UserTokenItemType[]; + +export interface IAccountCryptoBoxAssetItem { + chainId: ChainId; + address: string; + symbol: string; + label?: string; + imageUrl: string; + decimals: number | string; + alias?: string; + tokenId?: string; + balance?: string; + tokenContractAddress?: string; +} + export type UseTokenListAddType = ( currentChain: ChainItemType, currentAccount: AccountType, @@ -42,10 +111,29 @@ export type UseTokenDeleteType = ( export type FilterTokenList = (token_name: string, address: string) => TokenItemShowType; -export interface TokenState { - addedTokenData: AddedTokenData; - tokenDataShowInMarket: TokenListShowInMarketType; - isFetchingTokenList: Boolean; +export interface ITokenInfo { + isFetching: boolean; + tokenDataShowInMarket: TokenItemShowType[]; + skipCount: number; + maxResultCount: number; + totalRecordCount: number; +} +export interface ITokenInfoV2 { + isFetching: boolean; + tokenDataShowInMarket: IUserTokenItemResponse[]; + skipCount: number; + maxResultCount: number; + totalRecordCount: number; +} + +export interface TokenState extends ITokenInfo { + symbolImages: Record; + tokenInfo?: { + [key in string]?: ITokenInfo; + }; + tokenInfoV2?: { + [key in string]?: ITokenInfoV2; + }; } export interface AccountItemType { @@ -55,11 +143,10 @@ export interface AccountItemType { export interface HandleTokenArgTypes { tokenItem: TokenItemType; - currentChain: ChainItemType; currentAccount: AccountType; } -export type FetchParamsType = Pick & { +export type FetchParamsType = Pick & { pageSize: number; pageNo: number; }; From 994a4ece9bd1a1605bdbceababdd2900625baf8c Mon Sep 17 00:00:00 2001 From: semaphoresentinel <149366454+semaphoresentinel@users.noreply.github.com> Date: Fri, 24 Jan 2025 11:03:34 +0800 Subject: [PATCH 4/6] fix: eoa api url --- packages/api/api-eoa/es/utils/index.ts | 2 +- packages/api/api-eoa/index.ts | 2 +- packages/api/api-eoa/server.ts | 34 +++++++++++--- packages/api/api-eoa/verification/utils.ts | 2 +- packages/hooks/hooks-eoa/network-bakup.ts | 44 +++++++++++++++++++ packages/hooks/hooks-eoa/network.ts | 44 ------------------- packages/hooks/hooks-eoa/network/chain.ts | 2 +- packages/mobile-aelf/App.tsx | 2 - .../js/components/Updater/index.tsx | 10 ++--- .../js/pages/Home/HomeTab/index.tsx | 3 +- packages/store/store-eoa/activity/api.ts | 2 +- packages/store/store-eoa/assets/api.ts | 2 +- packages/store/store-eoa/assets/slice.ts | 2 + .../store/store-eoa/tokenManagement/action.ts | 2 +- .../store/store-eoa/tokenManagement/api.ts | 2 +- .../store-eoa/tokenManagement/index.test.ts | 4 +- packages/store/store-eoa/wallet/api.ts | 2 +- packages/types/types-eoa/store.ts | 1 + 18 files changed, 93 insertions(+), 69 deletions(-) create mode 100644 packages/hooks/hooks-eoa/network-bakup.ts delete mode 100644 packages/hooks/hooks-eoa/network.ts diff --git a/packages/api/api-eoa/es/utils/index.ts b/packages/api/api-eoa/es/utils/index.ts index d388292b30..ebd33e1d0d 100644 --- a/packages/api/api-eoa/es/utils/index.ts +++ b/packages/api/api-eoa/es/utils/index.ts @@ -1,4 +1,4 @@ -import { request } from '@portkey-wallet/api/api-did'; +import { request } from '@portkey-wallet/api/api-eoa'; import { GetContractListApiType } from '@portkey-wallet/types/types-ca/contact'; import { TGetContactListApiType } from '@portkey-wallet/types/types-ca/contactNew'; diff --git a/packages/api/api-eoa/index.ts b/packages/api/api-eoa/index.ts index 961c03b31c..ffc0d6e982 100644 --- a/packages/api/api-eoa/index.ts +++ b/packages/api/api-eoa/index.ts @@ -101,5 +101,5 @@ export interface IRequest extends BASE_REQ_TYPES, EXPAND_REQ_TYPES { } const request = myServer as unknown as IRequest & DidService; - +request.addTransform((result: { data: any }) => result.data); export { request }; diff --git a/packages/api/api-eoa/server.ts b/packages/api/api-eoa/server.ts index c28ef2f028..a09d06d305 100644 --- a/packages/api/api-eoa/server.ts +++ b/packages/api/api-eoa/server.ts @@ -3,18 +3,33 @@ import { customFetch } from '@portkey-wallet/utils/fetch'; import { IExceptionManager, Severity } from '@portkey-wallet/utils/ExceptionManager'; import { BaseConfig, RequestConfig } from '../types'; import { getRequestConfig, spliceUrl } from '../utils'; +import { isValidRefreshTokenConfig, queryAuthorization, RefreshTokenConfig } from './utils/index'; +import { sleep } from '@portkey-wallet/utils'; +import im from '@portkey-wallet/im'; +import { IM_TOKEN_ERROR_ARRAY } from '@portkey-wallet/im/constant'; +import signalrFCM from '@portkey-wallet/socket/socket-fcm'; +const C_T_EVENT_NAME = 'connectTokenChange'; export class DidService extends ServiceInit { + protected refreshTokenConfig?: RefreshTokenConfig; protected onLockApp?: (expired?: boolean) => void; locked?: boolean; exceptionManager?: IExceptionManager; + private transformCallbackList: ((result: any) => any)[] = []; constructor() { super(); } - send = async (base: BaseConfig, config?: RequestConfig): Promise => { + send = async (base: BaseConfig, config?: RequestConfig, reCount = 0): Promise => { try { - return await this.sendOrigin(base, config); + const result = await this.sendOrigin(base, config, reCount); + if (this.transformCallbackList.length > 0) { + const i = this.transformCallbackList.reduce((prevResult, callback) => { + return callback(prevResult); + }, result); + return i; + } + return result; } catch (errResult: any) { const { URL, fetchConfig } = this.getConfig(base, config); this.errorReport(URL, fetchConfig, errResult); @@ -32,14 +47,12 @@ export class DidService extends ServiceInit { fetchConfig, }; }; - - sendOrigin = async (base: BaseConfig, config?: RequestConfig): Promise => { + sendOrigin = async (base: BaseConfig, config?: RequestConfig, reCount = 0): Promise => { const { URL, fetchConfig, method } = this.getConfig(base, config); const fetchResult = await customFetch(URL, { ...fetchConfig, method, }); - return fetchResult; }; setLockCallBack = (callBack: (expired?: boolean) => void) => { @@ -49,6 +62,17 @@ export class DidService extends ServiceInit { setExceptionManager = (exceptionManager: IExceptionManager) => { this.exceptionManager = exceptionManager; }; + + addTransform = (callback: (result: any) => any) => { + if (typeof callback !== 'function') { + return; + } + if (!this.transformCallbackList) { + this.transformCallbackList = []; + } + this.transformCallbackList.push(callback); + }; + errorReport = (url: string, fetchConfig: any, fetchResult: any) => { this.exceptionManager?.reportErrorMessage?.(`${URL} request error`, Severity.Fatal, { req: { diff --git a/packages/api/api-eoa/verification/utils.ts b/packages/api/api-eoa/verification/utils.ts index e619c9ba42..e330356c93 100644 --- a/packages/api/api-eoa/verification/utils.ts +++ b/packages/api/api-eoa/verification/utils.ts @@ -1,5 +1,5 @@ import { IStorage, StorageBaseLoader } from '@portkey-wallet/types/storage'; -import { request } from '@portkey-wallet/api/api-did'; +import { request } from '@portkey-wallet/api/api-eoa'; import { RequestConfig } from '../../types'; import { LoginKeyType } from '@portkey-wallet/types/types-ca/wallet'; import { OperationTypeEnum } from '@portkey-wallet/types/verifier'; diff --git a/packages/hooks/hooks-eoa/network-bakup.ts b/packages/hooks/hooks-eoa/network-bakup.ts new file mode 100644 index 0000000000..6e9da94227 --- /dev/null +++ b/packages/hooks/hooks-eoa/network-bakup.ts @@ -0,0 +1,44 @@ +// // import { useCurrentWallet } from './wallet'; +// import { useMemo } from 'react'; +// import { NetworkList } from '@portkey-wallet/constants/constants-ca/network'; +// import { useAppEOASelector } from './index'; +// import { useWalletState } from './wallet'; +// import { useAppCommonDispatch } from '..'; + +// export function useNetworkList() { +// return NetworkList; +// } + +// export function useCurrentNetwork() { +// const { networkType } = useWalletState(); +// return useMemo(() => networkType || 'TESTNET', [networkType]); +// } + +// export function useCurrentNetworkInfo() { +// const currentNetwork = useCurrentNetwork(); +// const networkList = useNetworkList(); +// return useMemo( +// () => networkList.find(item => item.networkType === currentNetwork) || networkList[0], +// [currentNetwork, networkList], +// ); +// } + +// export function useCurrentApiUrl() { +// const currentNetworkInfo = useCurrentNetworkInfo(); +// return useMemo(() => currentNetworkInfo.eoaApiUrl, [currentNetworkInfo.eoaApiUrl]); +// } + +// // export function useVerifierList() { +// // const { verifierMap } = useAppEOASelector(state => state.guardians); +// // return useMemo(() => (verifierMap ? Object.values(verifierMap) : []), [verifierMap]); +// // } + +// export function useIsMainnet() { +// const currentNetwork = useCurrentNetwork(); +// return useMemo(() => currentNetwork === 'MAINNET', [currentNetwork]); +// } + +// // export function useIsIMServiceExist() { +// // const { imApiUrl, imWsUrl, imS3Bucket } = useCurrentNetworkInfo(); +// // return useMemo(() => !!imApiUrl && !!imWsUrl && !!imS3Bucket, [imApiUrl, imWsUrl, imS3Bucket]); +// // } diff --git a/packages/hooks/hooks-eoa/network.ts b/packages/hooks/hooks-eoa/network.ts deleted file mode 100644 index dad0054afa..0000000000 --- a/packages/hooks/hooks-eoa/network.ts +++ /dev/null @@ -1,44 +0,0 @@ -// import { useCurrentWallet } from './wallet'; -import { useMemo } from 'react'; -import { NetworkList } from '@portkey-wallet/constants/constants-ca/network'; -import { useAppEOASelector } from './index'; -import { useWalletState } from './wallet'; -import { useAppCommonDispatch } from '..'; - -export function useNetworkList() { - return NetworkList; -} - -export function useCurrentNetwork() { - const { networkType } = useWalletState(); - return useMemo(() => networkType || 'TESTNET', [networkType]); -} - -export function useCurrentNetworkInfo() { - const currentNetwork = useCurrentNetwork(); - const networkList = useNetworkList(); - return useMemo( - () => networkList.find(item => item.networkType === currentNetwork) || networkList[0], - [currentNetwork, networkList], - ); -} - -export function useCurrentApiUrl() { - const currentNetworkInfo = useCurrentNetworkInfo(); - return useMemo(() => currentNetworkInfo.eoaApiUrl, [currentNetworkInfo.eoaApiUrl]); -} - -// export function useVerifierList() { -// const { verifierMap } = useAppEOASelector(state => state.guardians); -// return useMemo(() => (verifierMap ? Object.values(verifierMap) : []), [verifierMap]); -// } - -export function useIsMainnet() { - const currentNetwork = useCurrentNetwork(); - return useMemo(() => currentNetwork === 'MAINNET', [currentNetwork]); -} - -// export function useIsIMServiceExist() { -// const { imApiUrl, imWsUrl, imS3Bucket } = useCurrentNetworkInfo(); -// return useMemo(() => !!imApiUrl && !!imWsUrl && !!imS3Bucket, [imApiUrl, imWsUrl, imS3Bucket]); -// } diff --git a/packages/hooks/hooks-eoa/network/chain.ts b/packages/hooks/hooks-eoa/network/chain.ts index dc21f457fc..5e761fd59e 100644 --- a/packages/hooks/hooks-eoa/network/chain.ts +++ b/packages/hooks/hooks-eoa/network/chain.ts @@ -1,7 +1,7 @@ import { useCallback, useEffect, useMemo } from 'react'; import { useChainListMapState, useCurrentNetwork } from './index'; import { ChainId } from '@portkey-wallet/types'; -import { request } from '@portkey-wallet/api/api-did'; +import { request } from '@portkey-wallet/api/api-eoa'; import { NetworkList } from '@portkey-wallet/constants/constants-eoa/network'; import { useAppCommonDispatch } from '../../index'; import { setChainList } from '@portkey-wallet/store/store-eoa/network/actions'; diff --git a/packages/mobile-aelf/App.tsx b/packages/mobile-aelf/App.tsx index f801c04467..523b409c94 100644 --- a/packages/mobile-aelf/App.tsx +++ b/packages/mobile-aelf/App.tsx @@ -35,7 +35,6 @@ import { logBoxTextColorSaver } from 'utils/textColor'; import { CODE_PUSH_OPTIONS } from 'constants/codePush'; import { useEffectOnce } from '@portkey-wallet/hooks'; import { init, track } from './js/utils/amplitude'; -import { request } from '@portkey-wallet/api/api-did'; if (__DEV__) { logBoxTextColorSaver(); @@ -51,7 +50,6 @@ initFCMSignalR(); secureStore.init(Config.PORT_KEY_CODE || 'EXAMPLE_PORT_KEY_CODE'); const persistor = persistStore(store); -request.addTransform(result => result.data); const App = () => { const statusBarProps = useMemo(() => { diff --git a/packages/mobile-aelf/js/components/Updater/index.tsx b/packages/mobile-aelf/js/components/Updater/index.tsx index 0c803b5bec..027c22c706 100644 --- a/packages/mobile-aelf/js/components/Updater/index.tsx +++ b/packages/mobile-aelf/js/components/Updater/index.tsx @@ -63,12 +63,12 @@ export default function Updater() { // useFetchSymbolImages(); // useFetchTxFee(); useMemo(() => { - console.log('eoaApiUrl===', eoaApiUrl); - request.set('baseURL', eoaApiUrl); - if (service.defaults.baseURL !== eoaApiUrl) { - service.defaults.baseURL = eoaApiUrl; + console.log('apiUrl===', apiUrl); + request.set('baseURL', apiUrl); + if (service.defaults.baseURL !== apiUrl) { + service.defaults.baseURL = apiUrl; } - }, [eoaApiUrl]); + }, [apiUrl]); // useMemo(() => { // im.setUrl({ // apiUrl: imApiUrl || '', diff --git a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx index 17daeb297a..d9c6cdc019 100644 --- a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx +++ b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx @@ -8,7 +8,7 @@ import * as Clipboard from 'expo-clipboard'; import { useGetContract, useGetViewContract } from 'hooks/contract'; import { useCurrentNetwork, useSwitchNetwork } from '@portkey-wallet/hooks/hooks-eoa/network'; import { useDAppChain, useDAppChainId, useGetChainInfo } from '@portkey-wallet/hooks/hooks-eoa/network/chain'; -import { useCurrentAccount, useSwitchNetworkType, useWalletListState } from '@portkey-wallet/hooks/hooks-eoa/wallet'; +import { useCurrentAccount, useWalletListState } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import CommonButton from 'components/CommonButton'; import navigationService from 'utils/navigationService'; import { useCheckSecurityLock } from 'hooks/securityLock'; @@ -22,7 +22,6 @@ const HomeTab: React.FC = ({ _ }) => { const currentAccount = useCurrentAccount(); const walletList = useWalletListState(); const dispatch = useAppCommonDispatch(); - const switchNetwork = useSwitchNetworkType(); const currentNetwork = useCurrentNetwork(); useEffect(() => { console.log('currentAccount', currentAccount); diff --git a/packages/store/store-eoa/activity/api.ts b/packages/store/store-eoa/activity/api.ts index ee669b200d..b1f9f5ff18 100644 --- a/packages/store/store-eoa/activity/api.ts +++ b/packages/store/store-eoa/activity/api.ts @@ -1,4 +1,4 @@ -import { request } from '@portkey-wallet/api/api-did'; +import { request } from '@portkey-wallet/api/api-eoa'; import { NFT_MIDDLE_SIZE } from '@portkey-wallet/constants/constants-eoa/assets'; import { ActivityItemType } from '@portkey-wallet/types/types-eoa/activity'; import { diff --git a/packages/store/store-eoa/assets/api.ts b/packages/store/store-eoa/assets/api.ts index f992b74253..6555a672fc 100644 --- a/packages/store/store-eoa/assets/api.ts +++ b/packages/store/store-eoa/assets/api.ts @@ -1,4 +1,4 @@ -import { request } from '@portkey-wallet/api/api-did'; +import { request } from '@portkey-wallet/api/api-eoa'; import { ITokenSectionResponse } from '@portkey-wallet/types/types-ca/token'; import { IAssetItemType, IAssetNftCollection, IAssetToken } from './type'; import { diff --git a/packages/store/store-eoa/assets/slice.ts b/packages/store/store-eoa/assets/slice.ts index 8aa8d9b4f3..0d70979ab3 100644 --- a/packages/store/store-eoa/assets/slice.ts +++ b/packages/store/store-eoa/assets/slice.ts @@ -94,7 +94,9 @@ export const fetchTokenListAsync = createAsyncThunk( maxResultCount?: number; identify: string; }) => { + console.log('fetchTokenList===== start!!'); const response = await fetchTokenList({ addressInfos, skipCount, maxResultCount }); + console.log('fetchTokenList===== end!!', JSON.stringify(response)); // // mock data fro new account if (response.data.length === 0) { return { diff --git a/packages/store/store-eoa/tokenManagement/action.ts b/packages/store/store-eoa/tokenManagement/action.ts index 12bab83f6d..33bf582491 100644 --- a/packages/store/store-eoa/tokenManagement/action.ts +++ b/packages/store/store-eoa/tokenManagement/action.ts @@ -2,7 +2,7 @@ import { createAsyncThunk } from '@reduxjs/toolkit'; import { createAction } from '@reduxjs/toolkit'; import { HandleTokenArgTypes } from '@portkey-wallet/types/types-eoa/token'; import { fetchAllTokenList, fetchAllTokenListLegacy } from './api'; -import { request } from '@portkey-wallet/api/api-did'; +import { request } from '@portkey-wallet/api/api-eoa'; import { NetworkType } from '@portkey-wallet/types'; export const addTokenInCurrentAccount = createAction('token/addTokenInCurrentAccount'); diff --git a/packages/store/store-eoa/tokenManagement/api.ts b/packages/store/store-eoa/tokenManagement/api.ts index 84e42802ff..5592580912 100644 --- a/packages/store/store-eoa/tokenManagement/api.ts +++ b/packages/store/store-eoa/tokenManagement/api.ts @@ -1,4 +1,4 @@ -import { request } from '@portkey-wallet/api/api-did'; +import { request } from '@portkey-wallet/api/api-eoa'; import { ChainId } from '@portkey-wallet/types'; export function fetchAllTokenList({ diff --git a/packages/store/store-eoa/tokenManagement/index.test.ts b/packages/store/store-eoa/tokenManagement/index.test.ts index 08581a3a73..958810f226 100644 --- a/packages/store/store-eoa/tokenManagement/index.test.ts +++ b/packages/store/store-eoa/tokenManagement/index.test.ts @@ -3,10 +3,10 @@ import { clearMarketToken, resetToken, tokenManagementSlice } from './slice'; import { fetchAllTokenList } from './api'; import { configureStore } from '@reduxjs/toolkit'; import { fetchAllTokenListAsync, getSymbolImagesAsync } from './action'; -import { request } from '@portkey-wallet/api/api-did'; +import { request } from '@portkey-wallet/api/api-eoa'; jest.mock('./api'); -jest.mock('@portkey-wallet/api/api-did'); +jest.mock('@portkey-wallet/api/api-eoa'); const reducer = tokenManagementSlice.reducer; const mockInitState = { tokenDataShowInMarket: [], diff --git a/packages/store/store-eoa/wallet/api.ts b/packages/store/store-eoa/wallet/api.ts index 9dc28a8b1f..e0fd029075 100644 --- a/packages/store/store-eoa/wallet/api.ts +++ b/packages/store/store-eoa/wallet/api.ts @@ -1,4 +1,4 @@ -import { request } from '@portkey-wallet/api/api-did'; +import { request } from '@portkey-wallet/api/api-eoa'; export const getChainList = ({ baseUrl }: { baseUrl: string }) => { try { diff --git a/packages/types/types-eoa/store.ts b/packages/types/types-eoa/store.ts index a808b18ced..8f76b19127 100644 --- a/packages/types/types-eoa/store.ts +++ b/packages/types/types-eoa/store.ts @@ -20,4 +20,5 @@ export type EOACommonState = { [assetsSlice.name]: TAssetsState; [tokenManagementSlice.name]: TokenState; [activitySlice.name]: ActivityStateType; + [networkSlice.name]: TNetworkState; }; From a2e0303100389c3da25180a6bdabef628a93e60f Mon Sep 17 00:00:00 2001 From: thomas-portkey Date: Fri, 24 Jan 2025 15:28:26 +0800 Subject: [PATCH 5/6] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20adjust=20swap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{constants-ca => }/awaken/index.ts | 0 .../{constants-ca => }/awaken/limit.ts | 0 .../{constants-ca => }/awaken/swap.ts | 0 packages/constants/index.ts | 8 + packages/hooks/hooks-ca/awaken/index.ts | 2 +- packages/hooks/hooks-ca/awaken/limit.ts | 3 +- packages/hooks/hooks-ca/awaken/state.ts | 8 +- packages/hooks/hooks-eoa/awaken/index.ts | 23 ++ packages/hooks/hooks-eoa/awaken/limit.ts | 133 +++++++++++ packages/hooks/hooks-eoa/awaken/request.ts | 72 ++++++ packages/hooks/hooks-eoa/awaken/state.ts | 207 ++++++++++++++++++ packages/hooks/hooks-eoa/network/chain.ts | 6 + .../js/components/AmountCard/index.tsx | 2 +- .../js/components/CurrencyItem/index.tsx | 2 +- .../js/components/SelectTokenButton/index.tsx | 13 +- packages/mobile-aelf/js/hooks/useLogOut.ts | 2 - .../js/pages/Home/HomeTab/index.tsx | 4 + .../js/pages/Swap/LimitPreview/index.tsx | 4 +- .../js/pages/Swap/SwapPreview/index.tsx | 14 +- .../Swap/components/AmountCard/index.tsx | 8 +- .../Swap/components/AmountCardGroup/index.tsx | 4 +- .../Swap/components/CurrencyItem/index.tsx | 4 +- .../Swap/components/ExpiresSelect/index.tsx | 2 +- .../Swap/components/LimitEnter/index.tsx | 6 +- .../components/PreviewAmountCard/index.tsx | 12 +- .../pages/Swap/components/RateCard/index.tsx | 4 +- .../components/SelectTokenButton/index.tsx | 4 +- .../pages/Swap/components/SwapEnter/index.tsx | 12 +- .../components/SwapSettingButton/index.tsx | 2 +- .../js/components/AmountCard/index.tsx | 2 +- .../js/components/CurrencyItem/index.tsx | 2 +- .../js/components/SelectTokenButton/index.tsx | 13 +- packages/mobile-app-did/js/hooks/useLogOut.ts | 2 +- .../js/pages/Swap/LimitPreview/index.tsx | 4 +- .../js/pages/Swap/SwapPreview/index.tsx | 10 +- .../Swap/components/AmountCard/index.tsx | 4 +- .../Swap/components/AmountCardGroup/index.tsx | 2 +- .../Swap/components/CurrencyItem/index.tsx | 2 +- .../Swap/components/ExpiresSelect/index.tsx | 2 +- .../Swap/components/LimitEnter/index.tsx | 6 +- .../components/PreviewAmountCard/index.tsx | 10 +- .../pages/Swap/components/RateCard/index.tsx | 4 +- .../components/SelectTokenButton/index.tsx | 2 +- .../pages/Swap/components/SwapEnter/index.tsx | 8 +- .../components/SwapSettingButton/index.tsx | 2 +- packages/mobile-app-did/js/store/config.ts | 2 +- .../mobile-app-did/js/store/rootReducer.ts | 2 +- .../store/{store-ca => }/awaken/actions.ts | 4 +- packages/store/{store-ca => }/awaken/slice.ts | 8 +- packages/store/{store-ca => }/awaken/type.ts | 2 +- packages/types/{types-ca => }/awaken/index.ts | 0 packages/types/{types-ca => }/awaken/limit.ts | 0 packages/types/{types-ca => }/awaken/swap.ts | 0 packages/types/types-ca/store.ts | 4 +- packages/types/types-eoa/store.ts | 3 + packages/utils/awaken/index.ts | 4 +- packages/utils/awaken/swap.ts | 2 +- 57 files changed, 551 insertions(+), 116 deletions(-) rename packages/constants/{constants-ca => }/awaken/index.ts (100%) rename packages/constants/{constants-ca => }/awaken/limit.ts (100%) rename packages/constants/{constants-ca => }/awaken/swap.ts (100%) create mode 100644 packages/hooks/hooks-eoa/awaken/index.ts create mode 100644 packages/hooks/hooks-eoa/awaken/limit.ts create mode 100644 packages/hooks/hooks-eoa/awaken/request.ts create mode 100644 packages/hooks/hooks-eoa/awaken/state.ts rename packages/store/{store-ca => }/awaken/actions.ts (90%) rename packages/store/{store-ca => }/awaken/slice.ts (94%) rename packages/store/{store-ca => }/awaken/type.ts (85%) rename packages/types/{types-ca => }/awaken/index.ts (100%) rename packages/types/{types-ca => }/awaken/limit.ts (100%) rename packages/types/{types-ca => }/awaken/swap.ts (100%) diff --git a/packages/constants/constants-ca/awaken/index.ts b/packages/constants/awaken/index.ts similarity index 100% rename from packages/constants/constants-ca/awaken/index.ts rename to packages/constants/awaken/index.ts diff --git a/packages/constants/constants-ca/awaken/limit.ts b/packages/constants/awaken/limit.ts similarity index 100% rename from packages/constants/constants-ca/awaken/limit.ts rename to packages/constants/awaken/limit.ts diff --git a/packages/constants/constants-ca/awaken/swap.ts b/packages/constants/awaken/swap.ts similarity index 100% rename from packages/constants/constants-ca/awaken/swap.ts rename to packages/constants/awaken/swap.ts diff --git a/packages/constants/index.ts b/packages/constants/index.ts index 41972d2299..80416f5bf2 100644 --- a/packages/constants/index.ts +++ b/packages/constants/index.ts @@ -4,3 +4,11 @@ export const SECOND = 1000; export const MINUTE = SECOND * 60; export const HOUR = MINUTE * 60; export const DAY = HOUR * 24; + +export const DEFAULT_TOKEN = { + address: 'JRmBduh4nXWi1aXgdUsj5gJrzeZb2LxmrAbf7W99faZSvoAaE', + decimals: '8', + imageUrl: 'https://portkey-did.s3.ap-northeast-1.amazonaws.com/img/aelf/Coin-ELF.png', + name: 'AELF', + symbol: 'ELF', +}; diff --git a/packages/hooks/hooks-ca/awaken/index.ts b/packages/hooks/hooks-ca/awaken/index.ts index ca46257e65..9a12c068c6 100644 --- a/packages/hooks/hooks-ca/awaken/index.ts +++ b/packages/hooks/hooks-ca/awaken/index.ts @@ -1,5 +1,5 @@ import { useAwakenTokenList, useInitAwakenGasFeeState } from './state'; -import { LIMIT_CONTRACT_ADDRESS, SWAP_HOOK_CONTRACT_ADDRESS_MAP } from '@portkey-wallet/constants/constants-ca/awaken'; +import { LIMIT_CONTRACT_ADDRESS, SWAP_HOOK_CONTRACT_ADDRESS_MAP } from '@portkey-wallet/constants/awaken'; import { useCallback, useEffect, useMemo, useState } from 'react'; import { useCurrentNetwork } from '../network'; import didServer from '@portkey-wallet/api/api-did/server'; diff --git a/packages/hooks/hooks-ca/awaken/limit.ts b/packages/hooks/hooks-ca/awaken/limit.ts index 1643590af0..f54d1f526b 100644 --- a/packages/hooks/hooks-ca/awaken/limit.ts +++ b/packages/hooks/hooks-ca/awaken/limit.ts @@ -2,7 +2,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { useGetPairReserve } from '@portkey-wallet/graphql/awaken/hooks'; import { ZERO } from '@portkey-wallet/constants/misc'; import { useReturnLastCallback } from '../../index'; -import { LIMIT_TIME_INTERVAL } from '@portkey-wallet/constants/constants-ca/awaken/limit'; +import { LIMIT_TIME_INTERVAL } from '@portkey-wallet/constants/awaken/limit'; import { useDAppChainId } from '../chainList'; export type TReserveInfo = { @@ -16,7 +16,6 @@ export const useGetPairMaxReserve = () => { return useCallback( async (symbolIn: string, symbolOut: string): Promise => { - console.log('1111'); const { data: { pairReserve: { syncRecords }, diff --git a/packages/hooks/hooks-ca/awaken/state.ts b/packages/hooks/hooks-ca/awaken/state.ts index f362f1fbc7..0b2231dac9 100644 --- a/packages/hooks/hooks-ca/awaken/state.ts +++ b/packages/hooks/hooks-ca/awaken/state.ts @@ -10,8 +10,8 @@ import { updateAwakenTokenPrices, updateAwakenUserExpiration, updateAwakenUserSlippageTolerance, -} from '@portkey-wallet/store/store-ca/awaken/actions'; -import { DEFAULT_EXPIRATION, DEFAULT_SLIPPAGE_TOLERANCE } from '@portkey-wallet/constants/constants-ca/awaken'; +} from '@portkey-wallet/store/awaken/actions'; +import { DEFAULT_EXPIRATION, DEFAULT_SLIPPAGE_TOLERANCE } from '@portkey-wallet/constants/awaken'; import { useDAppChain, useDAppChainId } from '../chainList'; import { request } from '@portkey-wallet/api/api-did'; import { useCurrentWalletInfo } from '../wallet'; @@ -192,11 +192,11 @@ export const useAwakenTokenList = (isInit = false) => { }); dispatch( updateAwakenTokenList({ - network, + key: network, list: rst.data, }), ); - }, [chainId, dispatch, network]); + }, [chainId, dispatch, network, wallet]); useEffect(() => { if (!isInit) return; diff --git a/packages/hooks/hooks-eoa/awaken/index.ts b/packages/hooks/hooks-eoa/awaken/index.ts new file mode 100644 index 0000000000..315839f42e --- /dev/null +++ b/packages/hooks/hooks-eoa/awaken/index.ts @@ -0,0 +1,23 @@ +import { useAwakenTokenList, useInitAwakenGasFeeState } from './state'; +import { LIMIT_CONTRACT_ADDRESS, SWAP_HOOK_CONTRACT_ADDRESS_MAP } from '@portkey-wallet/constants/awaken'; +import { useEffect, useMemo } from 'react'; +import { useCurrentNetwork } from '../network'; + +export const useInitAwaken = () => { + useInitAwakenGasFeeState(); + const { refresh } = useAwakenTokenList(); + + useEffect(() => { + refresh(); + }, [refresh]); +}; + +export const useSwapHookContractAddress = () => { + const network = useCurrentNetwork(); + return useMemo(() => SWAP_HOOK_CONTRACT_ADDRESS_MAP[network], [network]); +}; + +export const useLimitContractAddress = () => { + const network = useCurrentNetwork(); + return useMemo(() => LIMIT_CONTRACT_ADDRESS[network], [network]); +}; diff --git a/packages/hooks/hooks-eoa/awaken/limit.ts b/packages/hooks/hooks-eoa/awaken/limit.ts new file mode 100644 index 0000000000..b9a3ddb0bb --- /dev/null +++ b/packages/hooks/hooks-eoa/awaken/limit.ts @@ -0,0 +1,133 @@ +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { useGetPairReserve } from '@portkey-wallet/graphql/awaken/hooks'; +import { ZERO } from '@portkey-wallet/constants/misc'; +import { useReturnLastCallback } from '../../index'; +import { LIMIT_TIME_INTERVAL } from '@portkey-wallet/constants/awaken/limit'; +import { useDAppChainId } from '../network/chain'; + +export type TReserveInfo = { + reserveIn: string; + reserveOut: string; +}; + +export const useGetPairMaxReserve = () => { + const getPairReserve = useGetPairReserve(); + const dAppChainId = useDAppChainId(); + + return useCallback( + async (symbolIn: string, symbolOut: string): Promise => { + const { + data: { + pairReserve: { syncRecords }, + }, + } = await getPairReserve({ + dto: { + chainId: dAppChainId, + symbolA: symbolIn, + symbolB: symbolOut, + }, + }); + let reserveIn = '0', + reserveOut = '0', + maxReserveProduct = ZERO; + console.log('useGetPairMaxReserve', syncRecords); + + syncRecords.forEach(item => { + const reserveProduct = ZERO.plus(item.reserveA).times(item.reserveB); + if (reserveProduct.lte(maxReserveProduct)) return; + maxReserveProduct = reserveProduct; + if (item.symbolA === symbolIn) { + reserveIn = item.reserveA; + reserveOut = item.reserveB; + } else { + reserveIn = item.reserveB; + reserveOut = item.reserveA; + } + }); + + return { + reserveIn, + reserveOut, + }; + }, + [dAppChainId, getPairReserve], + ); +}; + +export const usePairMaxReserve = (symbolIn?: string, symbolOut?: string) => { + const _getPairMaxReserve = useGetPairMaxReserve(); + const getPairMaxReserve = useReturnLastCallback(_getPairMaxReserve, [_getPairMaxReserve]); + const [maxReserveMap, setMaxReserve] = useState>({}); + const key = useMemo(() => { + const isReverse = (symbolOut || '') > (symbolIn || ''); + if (isReverse) return `${symbolOut}_${symbolIn}`; + return `${symbolIn}_${symbolOut}`; + }, [symbolIn, symbolOut]); + + const refresh = useCallback(async () => { + const [tokenA, tokenB] = key.split('_'); + if (!tokenA || !tokenB) return; + const result = await getPairMaxReserve(tokenA, tokenB); + setMaxReserve(pre => ({ + ...pre, + [key]: result, + })); + }, [getPairMaxReserve, key]); + + const [isError, setIsError] = useState(false); + const executeCb = useCallback(async () => { + try { + await refresh(); + setIsError(false); + } catch (error: any) { + console.log('usePairMaxReserve error', error); + + if (error.name === 'ApolloError') { + setIsError(true); + } + } + }, [refresh]); + const executeCbRef = useRef(executeCb); + executeCbRef.current = executeCb; + + const timerRef = useRef(); + const clearTimer = useCallback(() => { + if (!timerRef.current) return; + clearInterval(timerRef.current); + timerRef.current = undefined; + console.log('usePairMaxReserve clearTimer'); + }, []); + + const registerTimer = useCallback(() => { + clearTimer(); + if (key === '_') return; + setIsError(false); + executeCbRef.current(); + timerRef.current = setInterval(() => { + executeCbRef.current(); + }, LIMIT_TIME_INTERVAL); + }, [clearTimer, key]); + + useEffect(() => { + registerTimer(); + return () => { + clearTimer(); + }; + }, [clearTimer, registerTimer]); + + const maxReserve = useMemo(() => { + const _maxReserve = maxReserveMap[key]; + const isReverse = (symbolOut || '') > (symbolIn || ''); + if (!_maxReserve) return undefined; + return { + reserveIn: isReverse ? _maxReserve.reserveOut : _maxReserve.reserveIn, + reserveOut: isReverse ? _maxReserve.reserveIn : _maxReserve.reserveOut, + }; + }, [key, maxReserveMap, symbolIn, symbolOut]); + + return { + maxReserve, + refresh, + isError, + }; +}; diff --git a/packages/hooks/hooks-eoa/awaken/request.ts b/packages/hooks/hooks-eoa/awaken/request.ts new file mode 100644 index 0000000000..86b4b748c7 --- /dev/null +++ b/packages/hooks/hooks-eoa/awaken/request.ts @@ -0,0 +1,72 @@ +import { useCallback, useMemo } from 'react'; +import { useCurrentNetworkInfo } from '../network'; +import { request } from '@portkey-wallet/api/api-did'; +import { useDAppChain } from '../network/chain'; + +const useAwakenApiUrl = () => { + const network = useCurrentNetworkInfo(); + return useMemo(() => network.awakenUrl || '', [network.awakenUrl]); +}; + +export type TGetSwapRoutesParams = { + symbolIn: string; + symbolOut: string; + isFocusValueIn: boolean; + amountIn?: string; + amountOut?: string; +}; + +export const useGetSwapRoutes = () => { + const baseURL = useAwakenApiUrl(); + const dAppChain = useDAppChain(); + + return useCallback( + async ({ symbolIn, symbolOut, isFocusValueIn, amountIn, amountOut }: TGetSwapRoutesParams) => { + const res = await request.awakenApi.getSwapRoutes({ + baseURL, + params: { + ChainId: dAppChain?.chainId || '', + symbolIn, + symbolOut, + routeType: isFocusValueIn ? 0 : 1, + amountIn, + amountOut, + }, + }); + if (!res) throw new Error('no swap route'); + return res?.data; + }, + [baseURL, dAppChain?.chainId], + ); +}; + +export const useGetAwakenGasFee = () => { + const baseURL = useAwakenApiUrl(); + + return useCallback(async (): Promise => { + const res = await request.awakenApi.getAwakenGasFee({ + baseURL, + }); + return res?.data?.transactionFee; + }, [baseURL]); +}; + +export type TGetAwakenTokenPriceParams = { + chainId: string; + tokenAddress: string; + symbol: string; +}; +export const useGetAwakenTokenPrice = () => { + const baseURL = useAwakenApiUrl(); + + return useCallback( + async (params: TGetAwakenTokenPriceParams): Promise => { + const res = await request.awakenApi.getAwakenTokenPrice({ + baseURL, + params, + }); + return res.data; + }, + [baseURL], + ); +}; diff --git a/packages/hooks/hooks-eoa/awaken/state.ts b/packages/hooks/hooks-eoa/awaken/state.ts new file mode 100644 index 0000000000..3b8309dcc9 --- /dev/null +++ b/packages/hooks/hooks-eoa/awaken/state.ts @@ -0,0 +1,207 @@ +import { useCallback, useEffect, useMemo, useRef } from 'react'; +import { useAppEOASelector } from '../.'; +import { useGetAwakenGasFee, useGetAwakenTokenPrice } from './request'; +import { handleLoopFetch } from '@portkey-wallet/utils'; +import { useCurrentNetwork } from '../network'; +import { useAppCommonDispatch, useEffectOnce } from '../../index'; +import { + updateAwakenGasFee, + updateAwakenTokenList, + updateAwakenTokenPrices, + updateAwakenUserExpiration, + updateAwakenUserSlippageTolerance, +} from '@portkey-wallet/store/awaken/actions'; +import { DEFAULT_EXPIRATION, DEFAULT_SLIPPAGE_TOLERANCE } from '@portkey-wallet/constants/awaken'; +import { useDAppChain, useDAppChainId } from '../network/chain'; +import { request } from '@portkey-wallet/api/api-eoa'; +import { useCurrentAccount } from '../wallet'; + +export const useAwakenState = () => useAppEOASelector(state => state.awaken); + +export const useAwakenGasFeeState = () => useAppEOASelector(state => state.awaken.gasFee); +export const useAwakenGasFee = () => { + const currentNetwork = useCurrentNetwork(); + const awakenGasFeeState = useAwakenGasFeeState(); + + return useMemo(() => awakenGasFeeState[currentNetwork] || '480000', [awakenGasFeeState, currentNetwork]); +}; + +export const useInitAwakenGasFeeState = () => { + const dispatch = useAppCommonDispatch(); + const getAwakenGasFee = useGetAwakenGasFee(); + const network = useCurrentNetwork(); + const networkRef = useRef(network); + networkRef.current = network; + + const init = useCallback(async () => { + const _network = networkRef.current; + try { + const gasFee = await handleLoopFetch({ + fetch: getAwakenGasFee, + times: 5, + checkIsInvalid: () => _network !== networkRef.current, + }); + if (!gasFee) return; + dispatch( + updateAwakenGasFee({ + network: _network, + gasFee, + }), + ); + } catch (error) { + console.log('useInitAwakenGasFeeState error', error); + } + }, [dispatch, getAwakenGasFee]); + + useEffectOnce(() => { + init(); + }); +}; + +export const useAwakenUserSlippageToleranceState = () => useAppEOASelector(state => state.awaken.userSlippageTolerance); + +export const useAwakenUserSlippageTolerance = () => { + const currentNetwork = useCurrentNetwork(); + const dispatch = useAppCommonDispatch(); + const awakenUserSlippageToleranceState = useAwakenUserSlippageToleranceState(); + + const userSlippageTolerance = useMemo( + () => awakenUserSlippageToleranceState[currentNetwork] || DEFAULT_SLIPPAGE_TOLERANCE, + [awakenUserSlippageToleranceState, currentNetwork], + ); + + const update = useCallback( + (val: string) => { + dispatch( + updateAwakenUserSlippageTolerance({ + network: currentNetwork, + userSlippageTolerance: val, + }), + ); + }, + [currentNetwork, dispatch], + ); + + return { + userSlippageTolerance, + update, + }; +}; + +export const useAwakenUserExpirationState = () => useAppEOASelector(state => state.awaken.userExpiration); + +export const useAwakenUserExpiration = () => { + const currentNetwork = useCurrentNetwork(); + const dispatch = useAppCommonDispatch(); + const awakenUserExpirationState = useAwakenUserExpirationState(); + + const userExpiration = useMemo( + () => awakenUserExpirationState[currentNetwork] || DEFAULT_EXPIRATION, + [awakenUserExpirationState, currentNetwork], + ); + + const update = useCallback( + (val: string) => { + dispatch( + updateAwakenUserExpiration({ + network: currentNetwork, + userExpiration: val, + }), + ); + }, + [currentNetwork, dispatch], + ); + + return { + userExpiration, + update, + }; +}; + +export const useAwakenTokenPricesState = () => useAppEOASelector(state => state.awaken.tokenPrices); + +export type TUseAwakenTokenPricesParams = { + symbol?: string; + isInit?: boolean; +}; +export const useAwakenTokenPrices = ({ symbol, isInit = true }: TUseAwakenTokenPricesParams) => { + const currentNetwork = useCurrentNetwork(); + const dispatch = useAppCommonDispatch(); + const awakenTokenPricesState = useAwakenTokenPricesState(); + const dAppChain = useDAppChain(); + const key = useMemo( + () => `${currentNetwork}_${dAppChain?.chainId}_${symbol}`, + [dAppChain?.chainId, currentNetwork, symbol], + ); + const getAwakenTokenPrice = useGetAwakenTokenPrice(); + + const price = useMemo( + () => (awakenTokenPricesState[currentNetwork] || {})[key] || '0', + [awakenTokenPricesState, currentNetwork, key], + ); + + const refresh = useCallback(async () => { + if (!symbol || !dAppChain) return; + const rst = await getAwakenTokenPrice({ + chainId: dAppChain.chainId, + symbol, + tokenAddress: dAppChain.defaultToken.address, + }); + if (!rst) return; + + dispatch( + updateAwakenTokenPrices({ + network: currentNetwork, + val: { + [key]: rst, + }, + }), + ); + }, [dAppChain, currentNetwork, dispatch, getAwakenTokenPrice, key, symbol]); + + useEffect(() => { + isInit && refresh(); + }, [isInit, refresh]); + + return { + price, + refresh, + }; +}; + +export const useAwakenTokenListState = () => useAppEOASelector(state => state.awaken.tokenList); + +export const useAwakenTokenList = (isInit = false) => { + const awakenTokenListState = useAwakenTokenListState(); + const network = useCurrentNetwork(); + const chainId = useDAppChainId(); + const dispatch = useAppCommonDispatch(); + + const list = useMemo(() => awakenTokenListState[network] || [], [awakenTokenListState, network]); + const account = useCurrentAccount(); + + const refresh = useCallback(async () => { + const rst = await request.assets.getAwakenTokenList({ + params: { + skipCount: 0, + maxResultCount: 1000, + page: 1, + chainId, + caAddress: account?.address || '', + }, + }); + dispatch( + updateAwakenTokenList({ + key: network, + list: rst.data, + }), + ); + }, [account?.address, chainId, dispatch, network]); + + useEffect(() => { + if (!isInit) return; + refresh(); + }, [isInit, refresh]); + + return { list, refresh }; +}; diff --git a/packages/hooks/hooks-eoa/network/chain.ts b/packages/hooks/hooks-eoa/network/chain.ts index dc21f457fc..656e43d4fb 100644 --- a/packages/hooks/hooks-eoa/network/chain.ts +++ b/packages/hooks/hooks-eoa/network/chain.ts @@ -7,6 +7,7 @@ import { useAppCommonDispatch } from '../../index'; import { setChainList } from '@portkey-wallet/store/store-eoa/network/actions'; import { handleLoopFetch } from '@portkey-wallet/utils'; import { MAIN_CHAIN_ID } from '@portkey-wallet/constants/network'; +import { DEFAULT_TOKEN } from '@portkey-wallet/constants'; export const useChainList = () => { const chainListMapState = useChainListMapState(); @@ -73,3 +74,8 @@ export const useDAppChainId = () => { const dAppChain = useDAppChain(); return useMemo(() => dAppChain?.chainId || 'tDVV', [dAppChain?.chainId]); }; + +export function useDefaultToken(_chainId?: ChainId) { + const chainInfo = useChainInfo(_chainId || 'AELF'); + return chainInfo?.defaultToken || DEFAULT_TOKEN; +} diff --git a/packages/mobile-aelf/js/components/AmountCard/index.tsx b/packages/mobile-aelf/js/components/AmountCard/index.tsx index 6cddcd1d2e..8bd195c178 100644 --- a/packages/mobile-aelf/js/components/AmountCard/index.tsx +++ b/packages/mobile-aelf/js/components/AmountCard/index.tsx @@ -8,7 +8,7 @@ import { ViewStyleType } from 'types/styles'; import { getStyles } from './style'; import { ZERO } from '@portkey-wallet/constants/misc'; import { divDecimals } from '@portkey-wallet/utils/converter'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { TextM } from 'components/CommonText'; import { isIOS } from '@rneui/base'; diff --git a/packages/mobile-aelf/js/components/CurrencyItem/index.tsx b/packages/mobile-aelf/js/components/CurrencyItem/index.tsx index 5fc28f7704..b1aa21c2f8 100644 --- a/packages/mobile-aelf/js/components/CurrencyItem/index.tsx +++ b/packages/mobile-aelf/js/components/CurrencyItem/index.tsx @@ -9,7 +9,7 @@ import { FontStyles } from 'assets/theme/styles'; import GStyles from 'assets/theme/GStyles'; import fonts from 'assets/theme/fonts'; import { ViewStyleType, TextStyleType } from 'types/styles'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { makeStyles } from '@rneui/themed'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; diff --git a/packages/mobile-aelf/js/components/SelectTokenButton/index.tsx b/packages/mobile-aelf/js/components/SelectTokenButton/index.tsx index 71a64bd322..04dd6cac84 100644 --- a/packages/mobile-aelf/js/components/SelectTokenButton/index.tsx +++ b/packages/mobile-aelf/js/components/SelectTokenButton/index.tsx @@ -1,16 +1,11 @@ -import React, { memo, useCallback, useMemo, useState } from 'react'; -import { Text, FlatList, View } from 'react-native'; -import OverlayModal from 'components/OverlayModal'; -import { ModalBody } from 'components/ModalBody'; -import CommonInput from 'components/CommonInput'; +import React, { memo } from 'react'; +import { Text, View } from 'react-native'; import CommonAvatar from 'components/CommonAvatar'; import Touchable from 'components/Touchable'; -import { useLanguage } from 'i18n/hooks'; -import { getContentStyles, getButtonStyles } from './style'; +import { getButtonStyles } from './style'; import Svg from 'components/Svg'; import { pTd } from 'utils/unit'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; -import { useAwakenTokenList } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; interface ISelectTokenButtonProps { diff --git a/packages/mobile-aelf/js/hooks/useLogOut.ts b/packages/mobile-aelf/js/hooks/useLogOut.ts index 4981515bdc..10861af362 100644 --- a/packages/mobile-aelf/js/hooks/useLogOut.ts +++ b/packages/mobile-aelf/js/hooks/useLogOut.ts @@ -37,7 +37,6 @@ import { resetBadge } from 'utils/notifee'; import { useLatestRef } from '@portkey-wallet/hooks'; import { useMiscSetting } from '@portkey-wallet/hooks/hooks-ca/misc'; import { reset } from 'utils/amplitude'; -import { resetAwaken } from '@portkey-wallet/store/store-ca/awaken/actions'; import { resetTargetNetworkRecent } from '@portkey-wallet/store/store-ca/recent/slice'; export default function useLogOut() { @@ -64,7 +63,6 @@ export default function useLogOut() { dispatch(resetIm(currentNetwork)); dispatch(resetSecurity(currentNetwork)); dispatch(reSetCheckManagerExceed(currentNetwork)); - dispatch(resetAwaken(currentNetwork)); resetCurrentNetworkSetting(); logoutResetStore(); if (otherNetworkLogged) { diff --git a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx index 5e96bfa97b..d8b801055c 100644 --- a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx +++ b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx @@ -147,6 +147,10 @@ const HomeTab: React.FC = ({ _ }) => { Send ELF + + navigationService.push('Swap')} style={{ marginTop: 20 }}> + Swap + ); diff --git a/packages/mobile-aelf/js/pages/Swap/LimitPreview/index.tsx b/packages/mobile-aelf/js/pages/Swap/LimitPreview/index.tsx index 46af66c811..426518f028 100644 --- a/packages/mobile-aelf/js/pages/Swap/LimitPreview/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/LimitPreview/index.tsx @@ -10,13 +10,13 @@ import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; import { getChainSvgName } from 'utils'; import { pTd } from 'utils/unit'; import { getStyles } from './style'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { LIMIT_LABS_FEE_RATE, LIMIT_PRICE_DECIMAL, LIMIT_RECEIVE_RATE, LimitExpiryEnum, -} from '@portkey-wallet/constants/constants-ca/awaken/limit'; +} from '@portkey-wallet/constants/awaken/limit'; import useRouterParams from '@portkey-wallet/hooks/useRouterParams'; import { useAwakenGasFee, useAwakenTokenPrices } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import moment from 'moment'; diff --git a/packages/mobile-aelf/js/pages/Swap/SwapPreview/index.tsx b/packages/mobile-aelf/js/pages/Swap/SwapPreview/index.tsx index 064405aa64..97c284a643 100644 --- a/packages/mobile-aelf/js/pages/Swap/SwapPreview/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/SwapPreview/index.tsx @@ -5,7 +5,7 @@ import CommonPreviewContainer from 'components/CommonPreviewContainer'; import Svg from 'components/Svg'; import CommonInfoRow from 'components/CommonInfoRow'; import PreviewAmountCard from '../components/PreviewAmountCard'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; +import { useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; import { getChainSvgName } from 'utils'; import { pTd } from 'utils/unit'; import { getStyles } from './style'; @@ -16,19 +16,15 @@ import { useAwakenTokenPrices, useAwakenUserExpiration, useAwakenUserSlippageTolerance, -} from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +} from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; import { LANG_MAX, ONE, TEN_THOUSAND, ZERO } from '@portkey-wallet/constants/misc'; import { bigNumberToString, getDeadline, minimumAmountOut } from '@portkey-wallet/utils/awaken'; import { getContractTotalAmountOut, getPriceImpactWithBuy, sendSwap } from '@portkey-wallet/utils/awaken/swap'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; -import { TContractSwapToken, TSwapRoute } from '@portkey-wallet/types/types-ca/awaken/swap'; +import { TContractSwapToken, TSwapRoute } from '@portkey-wallet/types/awaken/swap'; import BigNumber from 'bignumber.js'; import { divDecimals, timesDecimals } from '@portkey-wallet/utils/converter'; -import { - SWAP_LABS_FEE_RATE, - SWAP_RECEIVE_RATE, - SWAP_TIME_INTERVAL, -} from '@portkey-wallet/constants/constants-ca/awaken/swap'; +import { SWAP_LABS_FEE_RATE, SWAP_RECEIVE_RATE, SWAP_TIME_INTERVAL } from '@portkey-wallet/constants/awaken/swap'; import { useDefaultTokenPrice } from '@portkey-wallet/hooks/hooks-ca/useTokensPrice'; import { formatPriceUsd } from '@portkey-wallet/utils/format'; import { useReturnLastCallback } from '@portkey-wallet/hooks'; @@ -38,7 +34,7 @@ import { useDAppChainId } from '@portkey-wallet/hooks/hooks-ca/chainList'; import { getAllowance } from '@portkey-wallet/utils/contract'; import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; import { useSwapHookContractAddress } from '@portkey-wallet/hooks/hooks-ca/awaken'; -import { AWAKEN_DEFAULT_CID } from '@portkey-wallet/constants/constants-ca/awaken'; +import { AWAKEN_DEFAULT_CID } from '@portkey-wallet/constants/awaken'; import navigationService from 'utils/navigationService'; import { ActionType } from 'types/common'; import ActionSheet from 'components/ActionSheet'; diff --git a/packages/mobile-aelf/js/pages/Swap/components/AmountCard/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/AmountCard/index.tsx index b510658e34..56958859a4 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/AmountCard/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/AmountCard/index.tsx @@ -4,18 +4,18 @@ import { Input, useTheme } from '@rneui/themed'; import CommonButton from 'components/CommonButton'; import Touchable from 'components/Touchable'; import SelectTokenButton from '../SelectTokenButton'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; +import { useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; import { ViewStyleType } from 'types/styles'; import { getStyles } from './style'; -import { useAwakenGasFee } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { useAwakenGasFee } from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; import { ZERO } from '@portkey-wallet/constants/misc'; import { divDecimals } from '@portkey-wallet/utils/converter'; import Bignumber from 'bignumber.js'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { isValidNumberV2 } from '@portkey-wallet/utils/reg'; import { parseInputChange } from '@portkey-wallet/utils/input'; -import { LIMIT_PRICE_DECIMAL } from '@portkey-wallet/constants/constants-ca/awaken/limit'; +import { LIMIT_PRICE_DECIMAL } from '@portkey-wallet/constants/awaken/limit'; import CommonToast from 'components/CommonToast'; interface IAmountCardProps { diff --git a/packages/mobile-aelf/js/pages/Swap/components/AmountCardGroup/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/AmountCardGroup/index.tsx index 2cf8d4386a..36656a3f73 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/AmountCardGroup/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/AmountCardGroup/index.tsx @@ -7,12 +7,12 @@ import { pTd } from 'utils/unit'; import { ViewStyleType } from 'types/styles'; import { getStyles } from './style'; import { TSwapInfo } from '../SwapEnter'; -import { useAwakenTokenPrices } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { useAwakenTokenPrices } from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; import { ZERO } from '@portkey-wallet/constants/misc'; import { useTheme } from '@rneui/themed'; import { TextM } from 'components/CommonText'; import { TBalancesV2 } from 'hooks/awaken'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; interface IAmountCardGroupProps { style?: ViewStyleType; diff --git a/packages/mobile-aelf/js/pages/Swap/components/CurrencyItem/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/CurrencyItem/index.tsx index 7452b39f7c..12554b88d8 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/CurrencyItem/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/CurrencyItem/index.tsx @@ -6,10 +6,10 @@ import Touchable from 'components/Touchable'; import React, { memo } from 'react'; import { StyleSheet, View } from 'react-native'; import { pTd } from 'utils/unit'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; +import { useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; import fonts from 'assets/theme/fonts'; import { ViewStyleType, TextStyleType } from 'types/styles'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { useTheme } from '@rneui/themed'; diff --git a/packages/mobile-aelf/js/pages/Swap/components/ExpiresSelect/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/ExpiresSelect/index.tsx index fd54feacbf..7c29ca1ecd 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/ExpiresSelect/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/ExpiresSelect/index.tsx @@ -5,7 +5,7 @@ import Svg from 'components/Svg'; import SelectOverlay from 'components/SelectOverlay'; import { pTd } from 'utils/unit'; import { getStyles } from './style'; -import { EXPIRY_LIST, LimitExpiryEnum } from '@portkey-wallet/constants/constants-ca/awaken/limit'; +import { EXPIRY_LIST, LimitExpiryEnum } from '@portkey-wallet/constants/awaken/limit'; interface IExpiresSelectProps { selectedValue: LimitExpiryEnum; diff --git a/packages/mobile-aelf/js/pages/Swap/components/LimitEnter/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/LimitEnter/index.tsx index 8b9262097b..3a76ebdd51 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/LimitEnter/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/LimitEnter/index.tsx @@ -8,15 +8,15 @@ import ExpiresSelect from '../ExpiresSelect'; import RateCard, { ILimitRateCard } from '../RateCard'; import CommonInfoRow from 'components/CommonInfoRow'; import { getStyles } from './style'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { useAwakenGasFee, useAwakenTokenList } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import { useCurrencyBalancesV2 } from 'hooks/awaken'; import { usePairMaxReserve } from '@portkey-wallet/hooks/hooks-ca/awaken/limit'; -import { LIMIT_RECEIVE_RATE, LimitExpiryEnum } from '@portkey-wallet/constants/constants-ca/awaken/limit'; +import { LIMIT_RECEIVE_RATE, LimitExpiryEnum } from '@portkey-wallet/constants/awaken/limit'; import { ZERO } from '@portkey-wallet/constants/misc'; import BigNumber from 'bignumber.js'; import { divDecimals } from '@portkey-wallet/utils/converter'; -import { TLimitPairPriceError } from '@portkey-wallet/types/types-ca/awaken/limit'; +import { TLimitPairPriceError } from '@portkey-wallet/types/awaken/limit'; import { useGetLimitOrderRemainingUnfilled } from '@portkey-wallet/graphql/awaken/hooks'; import { useDAppChainId } from '@portkey-wallet/hooks/hooks-ca/chainList'; import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; diff --git a/packages/mobile-aelf/js/pages/Swap/components/PreviewAmountCard/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/PreviewAmountCard/index.tsx index 618151fd38..5d3b9e7796 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/PreviewAmountCard/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/PreviewAmountCard/index.tsx @@ -5,9 +5,9 @@ import { useTheme } from '@rneui/themed'; import { pTd } from 'utils/unit'; import { ViewStyleType } from 'types/styles'; import { getStyles } from './style'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import CurrencyItem from '../CurrencyItem'; -import { useAwakenTokenPrices } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { useAwakenTokenPrices } from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; import { ZERO } from '@portkey-wallet/constants/misc'; import { formatPriceUsd } from '@portkey-wallet/utils/format'; @@ -30,7 +30,9 @@ const AmountRow = ({ item, value }: IAmountRowProps) => { symbol: item.symbol, }); const balanceInUsd = useMemo(() => { - if (!value) return ''; + if (!value) { + return ''; + } return `$${formatPriceUsd(ZERO.plus(value).times(price))}`; }, [price, value]); @@ -50,7 +52,9 @@ const PreviewAmountCard = ({ style, tokenIn, tokenOut, valueIn, valueOut }: IPre const styles = getStyles(); const { theme } = useTheme(); - if (!tokenIn || !tokenOut) return null; + if (!tokenIn || !tokenOut) { + return null; + } return ( diff --git a/packages/mobile-aelf/js/pages/Swap/components/RateCard/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/RateCard/index.tsx index 01049d69dd..f37d5dffef 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/RateCard/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/RateCard/index.tsx @@ -8,11 +8,11 @@ import CommonTagToggleGroup, { TagToggleGroupSize } from 'components/CommonTagTo import { pTd } from 'utils/unit'; import { ViewStyleType } from 'types/styles'; import { getStyles } from './style'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { TReserveInfo } from '@portkey-wallet/hooks/hooks-ca/awaken/limit'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { ONE, ZERO } from '@portkey-wallet/constants/misc'; -import { LIMIT_PRICE_DECIMAL } from '@portkey-wallet/constants/constants-ca/awaken/limit'; +import { LIMIT_PRICE_DECIMAL } from '@portkey-wallet/constants/awaken/limit'; import BigNumber from 'bignumber.js'; import { getPairTokenRatio } from '@portkey-wallet/utils/awaken'; import { divDecimals } from '@portkey-wallet/utils/converter'; diff --git a/packages/mobile-aelf/js/pages/Swap/components/SelectTokenButton/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/SelectTokenButton/index.tsx index 116b8d9e76..f33b0f1dcc 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/SelectTokenButton/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/SelectTokenButton/index.tsx @@ -10,8 +10,8 @@ import { getContentStyles, getButtonStyles } from './style'; import Svg from 'components/Svg'; import { pTd } from 'utils/unit'; import { truncateString } from '@portkey-wallet/utils'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; -import { useAwakenTokenList } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { TCurrency } from '@portkey-wallet/types/awaken'; +import { useAwakenTokenList } from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; import CurrencyItem from '../CurrencyItem'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { ViewStyleType } from 'types/styles'; diff --git a/packages/mobile-aelf/js/pages/Swap/components/SwapEnter/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/SwapEnter/index.tsx index ad2ea31507..9ed51039f7 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/SwapEnter/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/SwapEnter/index.tsx @@ -7,15 +7,11 @@ import CommonInfoRow from 'components/CommonInfoRow'; import { CommonPromptCard, PromptCardType } from 'components/CommonPromptCard'; import { getStyles } from './style'; import { useDebounceCallback, useEffectOnce, useReturnLastCallback } from '@portkey-wallet/hooks'; -import { useGetSwapRoutes } from '@portkey-wallet/hooks/hooks-ca/awaken/request'; -import { useAwakenGasFee, useAwakenTokenList } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { useGetSwapRoutes } from '@portkey-wallet/hooks/hooks-eoa/awaken/request'; +import { useAwakenGasFee, useAwakenTokenList } from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; import { ZERO } from '@portkey-wallet/constants/misc'; import { divDecimals, timesDecimals } from '@portkey-wallet/utils/converter'; -import { - SWAP_RECEIVE_RATE, - SWAP_TIME_INTERVAL, - SwapStatusCodeEnum, -} from '@portkey-wallet/constants/constants-ca/awaken/swap'; +import { SWAP_RECEIVE_RATE, SWAP_TIME_INTERVAL, SwapStatusCodeEnum } from '@portkey-wallet/constants/awaken/swap'; import BigNumber from 'bignumber.js'; import { formatNameWithNoUnderline, sleep } from '@portkey-wallet/utils'; import { formatPrice } from '@portkey-wallet/utils/format'; @@ -23,7 +19,7 @@ import navigationService from 'utils/navigationService'; import { KeyboardSafeArea } from 'components/KeyboardSafeArea'; import { pTd } from 'utils/unit'; import { useCurrencyBalancesV2 } from 'hooks/awaken'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; export type TSwapInfo = { tokenIn?: TCurrency; diff --git a/packages/mobile-aelf/js/pages/Swap/components/SwapSettingButton/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/SwapSettingButton/index.tsx index 68a69aa66a..d0a1d2651b 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/SwapSettingButton/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/SwapSettingButton/index.tsx @@ -9,7 +9,7 @@ import CommonTooltip from 'components/CommonTooltip'; import CommonTagToggleGroup from 'components/CommonTagToggleGroup'; import CommonInput from 'components/CommonInput'; import CommonButton from 'components/CommonButton'; -import { priceImpactList } from '@portkey-wallet/constants/constants-ca/awaken'; +import { priceImpactList } from '@portkey-wallet/constants/awaken'; import { useAwakenUserSlippageTolerance, useAwakenUserExpiration } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import { useLanguage } from 'i18n/hooks'; import { pTd } from 'utils/unit'; diff --git a/packages/mobile-app-did/js/components/AmountCard/index.tsx b/packages/mobile-app-did/js/components/AmountCard/index.tsx index 6cddcd1d2e..8bd195c178 100644 --- a/packages/mobile-app-did/js/components/AmountCard/index.tsx +++ b/packages/mobile-app-did/js/components/AmountCard/index.tsx @@ -8,7 +8,7 @@ import { ViewStyleType } from 'types/styles'; import { getStyles } from './style'; import { ZERO } from '@portkey-wallet/constants/misc'; import { divDecimals } from '@portkey-wallet/utils/converter'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { TextM } from 'components/CommonText'; import { isIOS } from '@rneui/base'; diff --git a/packages/mobile-app-did/js/components/CurrencyItem/index.tsx b/packages/mobile-app-did/js/components/CurrencyItem/index.tsx index 5fc28f7704..b1aa21c2f8 100644 --- a/packages/mobile-app-did/js/components/CurrencyItem/index.tsx +++ b/packages/mobile-app-did/js/components/CurrencyItem/index.tsx @@ -9,7 +9,7 @@ import { FontStyles } from 'assets/theme/styles'; import GStyles from 'assets/theme/GStyles'; import fonts from 'assets/theme/fonts'; import { ViewStyleType, TextStyleType } from 'types/styles'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { makeStyles } from '@rneui/themed'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; diff --git a/packages/mobile-app-did/js/components/SelectTokenButton/index.tsx b/packages/mobile-app-did/js/components/SelectTokenButton/index.tsx index 71a64bd322..04dd6cac84 100644 --- a/packages/mobile-app-did/js/components/SelectTokenButton/index.tsx +++ b/packages/mobile-app-did/js/components/SelectTokenButton/index.tsx @@ -1,16 +1,11 @@ -import React, { memo, useCallback, useMemo, useState } from 'react'; -import { Text, FlatList, View } from 'react-native'; -import OverlayModal from 'components/OverlayModal'; -import { ModalBody } from 'components/ModalBody'; -import CommonInput from 'components/CommonInput'; +import React, { memo } from 'react'; +import { Text, View } from 'react-native'; import CommonAvatar from 'components/CommonAvatar'; import Touchable from 'components/Touchable'; -import { useLanguage } from 'i18n/hooks'; -import { getContentStyles, getButtonStyles } from './style'; +import { getButtonStyles } from './style'; import Svg from 'components/Svg'; import { pTd } from 'utils/unit'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; -import { useAwakenTokenList } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; interface ISelectTokenButtonProps { diff --git a/packages/mobile-app-did/js/hooks/useLogOut.ts b/packages/mobile-app-did/js/hooks/useLogOut.ts index 4981515bdc..04b856af47 100644 --- a/packages/mobile-app-did/js/hooks/useLogOut.ts +++ b/packages/mobile-app-did/js/hooks/useLogOut.ts @@ -37,7 +37,7 @@ import { resetBadge } from 'utils/notifee'; import { useLatestRef } from '@portkey-wallet/hooks'; import { useMiscSetting } from '@portkey-wallet/hooks/hooks-ca/misc'; import { reset } from 'utils/amplitude'; -import { resetAwaken } from '@portkey-wallet/store/store-ca/awaken/actions'; +import { resetAwaken } from '@portkey-wallet/store/awaken/actions'; import { resetTargetNetworkRecent } from '@portkey-wallet/store/store-ca/recent/slice'; export default function useLogOut() { diff --git a/packages/mobile-app-did/js/pages/Swap/LimitPreview/index.tsx b/packages/mobile-app-did/js/pages/Swap/LimitPreview/index.tsx index 46af66c811..426518f028 100644 --- a/packages/mobile-app-did/js/pages/Swap/LimitPreview/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/LimitPreview/index.tsx @@ -10,13 +10,13 @@ import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; import { getChainSvgName } from 'utils'; import { pTd } from 'utils/unit'; import { getStyles } from './style'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { LIMIT_LABS_FEE_RATE, LIMIT_PRICE_DECIMAL, LIMIT_RECEIVE_RATE, LimitExpiryEnum, -} from '@portkey-wallet/constants/constants-ca/awaken/limit'; +} from '@portkey-wallet/constants/awaken/limit'; import useRouterParams from '@portkey-wallet/hooks/useRouterParams'; import { useAwakenGasFee, useAwakenTokenPrices } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import moment from 'moment'; diff --git a/packages/mobile-app-did/js/pages/Swap/SwapPreview/index.tsx b/packages/mobile-app-did/js/pages/Swap/SwapPreview/index.tsx index 064405aa64..7a6d621020 100644 --- a/packages/mobile-app-did/js/pages/Swap/SwapPreview/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/SwapPreview/index.tsx @@ -21,14 +21,10 @@ import { LANG_MAX, ONE, TEN_THOUSAND, ZERO } from '@portkey-wallet/constants/mis import { bigNumberToString, getDeadline, minimumAmountOut } from '@portkey-wallet/utils/awaken'; import { getContractTotalAmountOut, getPriceImpactWithBuy, sendSwap } from '@portkey-wallet/utils/awaken/swap'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; -import { TContractSwapToken, TSwapRoute } from '@portkey-wallet/types/types-ca/awaken/swap'; +import { TContractSwapToken, TSwapRoute } from '@portkey-wallet/types/awaken/swap'; import BigNumber from 'bignumber.js'; import { divDecimals, timesDecimals } from '@portkey-wallet/utils/converter'; -import { - SWAP_LABS_FEE_RATE, - SWAP_RECEIVE_RATE, - SWAP_TIME_INTERVAL, -} from '@portkey-wallet/constants/constants-ca/awaken/swap'; +import { SWAP_LABS_FEE_RATE, SWAP_RECEIVE_RATE, SWAP_TIME_INTERVAL } from '@portkey-wallet/constants/awaken/swap'; import { useDefaultTokenPrice } from '@portkey-wallet/hooks/hooks-ca/useTokensPrice'; import { formatPriceUsd } from '@portkey-wallet/utils/format'; import { useReturnLastCallback } from '@portkey-wallet/hooks'; @@ -38,7 +34,7 @@ import { useDAppChainId } from '@portkey-wallet/hooks/hooks-ca/chainList'; import { getAllowance } from '@portkey-wallet/utils/contract'; import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; import { useSwapHookContractAddress } from '@portkey-wallet/hooks/hooks-ca/awaken'; -import { AWAKEN_DEFAULT_CID } from '@portkey-wallet/constants/constants-ca/awaken'; +import { AWAKEN_DEFAULT_CID } from '@portkey-wallet/constants/awaken'; import navigationService from 'utils/navigationService'; import { ActionType } from 'types/common'; import ActionSheet from 'components/ActionSheet'; diff --git a/packages/mobile-app-did/js/pages/Swap/components/AmountCard/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/AmountCard/index.tsx index b510658e34..db7c4fbfbd 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/AmountCard/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/AmountCard/index.tsx @@ -11,11 +11,11 @@ import { useAwakenGasFee } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import { ZERO } from '@portkey-wallet/constants/misc'; import { divDecimals } from '@portkey-wallet/utils/converter'; import Bignumber from 'bignumber.js'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { isValidNumberV2 } from '@portkey-wallet/utils/reg'; import { parseInputChange } from '@portkey-wallet/utils/input'; -import { LIMIT_PRICE_DECIMAL } from '@portkey-wallet/constants/constants-ca/awaken/limit'; +import { LIMIT_PRICE_DECIMAL } from '@portkey-wallet/constants/awaken/limit'; import CommonToast from 'components/CommonToast'; interface IAmountCardProps { diff --git a/packages/mobile-app-did/js/pages/Swap/components/AmountCardGroup/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/AmountCardGroup/index.tsx index 2cf8d4386a..0bb8fb0cfd 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/AmountCardGroup/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/AmountCardGroup/index.tsx @@ -12,7 +12,7 @@ import { ZERO } from '@portkey-wallet/constants/misc'; import { useTheme } from '@rneui/themed'; import { TextM } from 'components/CommonText'; import { TBalancesV2 } from 'hooks/awaken'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; interface IAmountCardGroupProps { style?: ViewStyleType; diff --git a/packages/mobile-app-did/js/pages/Swap/components/CurrencyItem/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/CurrencyItem/index.tsx index 7452b39f7c..7d9c12389b 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/CurrencyItem/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/CurrencyItem/index.tsx @@ -9,7 +9,7 @@ import { pTd } from 'utils/unit'; import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; import fonts from 'assets/theme/fonts'; import { ViewStyleType, TextStyleType } from 'types/styles'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { useTheme } from '@rneui/themed'; diff --git a/packages/mobile-app-did/js/pages/Swap/components/ExpiresSelect/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/ExpiresSelect/index.tsx index fd54feacbf..7c29ca1ecd 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/ExpiresSelect/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/ExpiresSelect/index.tsx @@ -5,7 +5,7 @@ import Svg from 'components/Svg'; import SelectOverlay from 'components/SelectOverlay'; import { pTd } from 'utils/unit'; import { getStyles } from './style'; -import { EXPIRY_LIST, LimitExpiryEnum } from '@portkey-wallet/constants/constants-ca/awaken/limit'; +import { EXPIRY_LIST, LimitExpiryEnum } from '@portkey-wallet/constants/awaken/limit'; interface IExpiresSelectProps { selectedValue: LimitExpiryEnum; diff --git a/packages/mobile-app-did/js/pages/Swap/components/LimitEnter/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/LimitEnter/index.tsx index 8b9262097b..3a76ebdd51 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/LimitEnter/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/LimitEnter/index.tsx @@ -8,15 +8,15 @@ import ExpiresSelect from '../ExpiresSelect'; import RateCard, { ILimitRateCard } from '../RateCard'; import CommonInfoRow from 'components/CommonInfoRow'; import { getStyles } from './style'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { useAwakenGasFee, useAwakenTokenList } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import { useCurrencyBalancesV2 } from 'hooks/awaken'; import { usePairMaxReserve } from '@portkey-wallet/hooks/hooks-ca/awaken/limit'; -import { LIMIT_RECEIVE_RATE, LimitExpiryEnum } from '@portkey-wallet/constants/constants-ca/awaken/limit'; +import { LIMIT_RECEIVE_RATE, LimitExpiryEnum } from '@portkey-wallet/constants/awaken/limit'; import { ZERO } from '@portkey-wallet/constants/misc'; import BigNumber from 'bignumber.js'; import { divDecimals } from '@portkey-wallet/utils/converter'; -import { TLimitPairPriceError } from '@portkey-wallet/types/types-ca/awaken/limit'; +import { TLimitPairPriceError } from '@portkey-wallet/types/awaken/limit'; import { useGetLimitOrderRemainingUnfilled } from '@portkey-wallet/graphql/awaken/hooks'; import { useDAppChainId } from '@portkey-wallet/hooks/hooks-ca/chainList'; import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; diff --git a/packages/mobile-app-did/js/pages/Swap/components/PreviewAmountCard/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/PreviewAmountCard/index.tsx index 618151fd38..f9e220079d 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/PreviewAmountCard/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/PreviewAmountCard/index.tsx @@ -5,7 +5,7 @@ import { useTheme } from '@rneui/themed'; import { pTd } from 'utils/unit'; import { ViewStyleType } from 'types/styles'; import { getStyles } from './style'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import CurrencyItem from '../CurrencyItem'; import { useAwakenTokenPrices } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import { ZERO } from '@portkey-wallet/constants/misc'; @@ -30,7 +30,9 @@ const AmountRow = ({ item, value }: IAmountRowProps) => { symbol: item.symbol, }); const balanceInUsd = useMemo(() => { - if (!value) return ''; + if (!value) { + return ''; + } return `$${formatPriceUsd(ZERO.plus(value).times(price))}`; }, [price, value]); @@ -50,7 +52,9 @@ const PreviewAmountCard = ({ style, tokenIn, tokenOut, valueIn, valueOut }: IPre const styles = getStyles(); const { theme } = useTheme(); - if (!tokenIn || !tokenOut) return null; + if (!tokenIn || !tokenOut) { + return null; + } return ( diff --git a/packages/mobile-app-did/js/pages/Swap/components/RateCard/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/RateCard/index.tsx index 01049d69dd..f37d5dffef 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/RateCard/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/RateCard/index.tsx @@ -8,11 +8,11 @@ import CommonTagToggleGroup, { TagToggleGroupSize } from 'components/CommonTagTo import { pTd } from 'utils/unit'; import { ViewStyleType } from 'types/styles'; import { getStyles } from './style'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { TReserveInfo } from '@portkey-wallet/hooks/hooks-ca/awaken/limit'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { ONE, ZERO } from '@portkey-wallet/constants/misc'; -import { LIMIT_PRICE_DECIMAL } from '@portkey-wallet/constants/constants-ca/awaken/limit'; +import { LIMIT_PRICE_DECIMAL } from '@portkey-wallet/constants/awaken/limit'; import BigNumber from 'bignumber.js'; import { getPairTokenRatio } from '@portkey-wallet/utils/awaken'; import { divDecimals } from '@portkey-wallet/utils/converter'; diff --git a/packages/mobile-app-did/js/pages/Swap/components/SelectTokenButton/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/SelectTokenButton/index.tsx index 116b8d9e76..9ff9bcfacd 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/SelectTokenButton/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/SelectTokenButton/index.tsx @@ -10,7 +10,7 @@ import { getContentStyles, getButtonStyles } from './style'; import Svg from 'components/Svg'; import { pTd } from 'utils/unit'; import { truncateString } from '@portkey-wallet/utils'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { useAwakenTokenList } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import CurrencyItem from '../CurrencyItem'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; diff --git a/packages/mobile-app-did/js/pages/Swap/components/SwapEnter/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/SwapEnter/index.tsx index ad2ea31507..d2be5f6638 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/SwapEnter/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/SwapEnter/index.tsx @@ -11,11 +11,7 @@ import { useGetSwapRoutes } from '@portkey-wallet/hooks/hooks-ca/awaken/request' import { useAwakenGasFee, useAwakenTokenList } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import { ZERO } from '@portkey-wallet/constants/misc'; import { divDecimals, timesDecimals } from '@portkey-wallet/utils/converter'; -import { - SWAP_RECEIVE_RATE, - SWAP_TIME_INTERVAL, - SwapStatusCodeEnum, -} from '@portkey-wallet/constants/constants-ca/awaken/swap'; +import { SWAP_RECEIVE_RATE, SWAP_TIME_INTERVAL, SwapStatusCodeEnum } from '@portkey-wallet/constants/awaken/swap'; import BigNumber from 'bignumber.js'; import { formatNameWithNoUnderline, sleep } from '@portkey-wallet/utils'; import { formatPrice } from '@portkey-wallet/utils/format'; @@ -23,7 +19,7 @@ import navigationService from 'utils/navigationService'; import { KeyboardSafeArea } from 'components/KeyboardSafeArea'; import { pTd } from 'utils/unit'; import { useCurrencyBalancesV2 } from 'hooks/awaken'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; export type TSwapInfo = { tokenIn?: TCurrency; diff --git a/packages/mobile-app-did/js/pages/Swap/components/SwapSettingButton/index.tsx b/packages/mobile-app-did/js/pages/Swap/components/SwapSettingButton/index.tsx index 68a69aa66a..d0a1d2651b 100644 --- a/packages/mobile-app-did/js/pages/Swap/components/SwapSettingButton/index.tsx +++ b/packages/mobile-app-did/js/pages/Swap/components/SwapSettingButton/index.tsx @@ -9,7 +9,7 @@ import CommonTooltip from 'components/CommonTooltip'; import CommonTagToggleGroup from 'components/CommonTagToggleGroup'; import CommonInput from 'components/CommonInput'; import CommonButton from 'components/CommonButton'; -import { priceImpactList } from '@portkey-wallet/constants/constants-ca/awaken'; +import { priceImpactList } from '@portkey-wallet/constants/awaken'; import { useAwakenUserSlippageTolerance, useAwakenUserExpiration } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; import { useLanguage } from 'i18n/hooks'; import { pTd } from 'utils/unit'; diff --git a/packages/mobile-app-did/js/store/config.ts b/packages/mobile-app-did/js/store/config.ts index bca3d644c7..e3d57433d5 100644 --- a/packages/mobile-app-did/js/store/config.ts +++ b/packages/mobile-app-did/js/store/config.ts @@ -22,7 +22,7 @@ import { rampSlice } from '@portkey-wallet/store/store-ca/ramp/slice'; import { guardiansSlice } from '@portkey-wallet/store/store-ca/guardians/slice'; import { referralSlice } from '@portkey-wallet/store/store-ca/referral/slice'; import cryptoGiftSlice from '@portkey-wallet/store/store-ca/cryptoGift/slice'; -import awakenSlice from '@portkey-wallet/store/store-ca/awaken/slice'; +import awakenSlice from '@portkey-wallet/store/awaken/slice'; import { configSlice } from '@portkey-wallet/store/store-ca/config/slice'; interface ThunkOptions { diff --git a/packages/mobile-app-did/js/store/rootReducer.ts b/packages/mobile-app-did/js/store/rootReducer.ts index bb647fde83..dfbfbb1fc3 100644 --- a/packages/mobile-app-did/js/store/rootReducer.ts +++ b/packages/mobile-app-did/js/store/rootReducer.ts @@ -26,7 +26,7 @@ import securitySlice from '@portkey-wallet/store/store-ca/security/slice'; import { rampSlice } from '@portkey-wallet/store/store-ca/ramp/slice'; import { referralSlice } from '@portkey-wallet/store/store-ca/referral/slice'; import { configSlice } from '@portkey-wallet/store/store-ca/config/slice'; -import awakenSlice from '@portkey-wallet/store/store-ca/awaken/slice'; +import awakenSlice from '@portkey-wallet/store/awaken/slice'; const userPersistConfig = { key: userSlice.name, diff --git a/packages/store/store-ca/awaken/actions.ts b/packages/store/awaken/actions.ts similarity index 90% rename from packages/store/store-ca/awaken/actions.ts rename to packages/store/awaken/actions.ts index 5efa19fd53..3024ceb779 100644 --- a/packages/store/store-ca/awaken/actions.ts +++ b/packages/store/awaken/actions.ts @@ -1,5 +1,5 @@ import { NetworkType } from '@portkey-wallet/types'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; import { createAction } from '@reduxjs/toolkit'; export const updateAwakenGasFee = createAction<{ @@ -23,7 +23,7 @@ export const updateAwakenTokenPrices = createAction<{ }>('awaken/updateAwakenTokenPrices'); export const updateAwakenTokenList = createAction<{ - network: NetworkType; + key: string; list: TCurrency[]; }>('awaken/updateAwakenTokenList'); diff --git a/packages/store/store-ca/awaken/slice.ts b/packages/store/awaken/slice.ts similarity index 94% rename from packages/store/store-ca/awaken/slice.ts rename to packages/store/awaken/slice.ts index 8aabd93b60..54a57a1139 100644 --- a/packages/store/store-ca/awaken/slice.ts +++ b/packages/store/awaken/slice.ts @@ -17,7 +17,7 @@ const initialState: TAwakenState = { tokenPrices: {}, tokenList: {}, }; -export const imSlice = createSlice({ +export const awakenSlice = createSlice({ name: 'awaken', initialState, reducers: {}, @@ -69,13 +69,13 @@ export const imSlice = createSlice({ }; }) .addCase(updateAwakenTokenList, (state, action) => { - const { network, list } = action.payload; + const { key, list } = action.payload; return { ...state, tokenList: { ...state.tokenList, - [network]: list, + [key]: list, }, }; }) @@ -101,4 +101,4 @@ export const imSlice = createSlice({ }, }); -export default imSlice; +export default awakenSlice; diff --git a/packages/store/store-ca/awaken/type.ts b/packages/store/awaken/type.ts similarity index 85% rename from packages/store/store-ca/awaken/type.ts rename to packages/store/awaken/type.ts index 545af1aaf1..d2688adf0c 100644 --- a/packages/store/store-ca/awaken/type.ts +++ b/packages/store/awaken/type.ts @@ -1,5 +1,5 @@ import { NetworkType } from '@portkey-wallet/types'; -import { TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { TCurrency } from '@portkey-wallet/types/awaken'; export type TAwakenState = { gasFee: { diff --git a/packages/types/types-ca/awaken/index.ts b/packages/types/awaken/index.ts similarity index 100% rename from packages/types/types-ca/awaken/index.ts rename to packages/types/awaken/index.ts diff --git a/packages/types/types-ca/awaken/limit.ts b/packages/types/awaken/limit.ts similarity index 100% rename from packages/types/types-ca/awaken/limit.ts rename to packages/types/awaken/limit.ts diff --git a/packages/types/types-ca/awaken/swap.ts b/packages/types/awaken/swap.ts similarity index 100% rename from packages/types/types-ca/awaken/swap.ts rename to packages/types/awaken/swap.ts diff --git a/packages/types/types-ca/store.ts b/packages/types/types-ca/store.ts index 78ed223e64..49dc0a3d9b 100644 --- a/packages/types/types-ca/store.ts +++ b/packages/types/types-ca/store.ts @@ -38,8 +38,8 @@ import { ReferralStateType } from '@portkey-wallet/store/store-ca/referral/type' import { CryptoGiftStateType } from '@portkey-wallet/store/store-ca/cryptoGift/type'; import { configSlice } from '@portkey-wallet/store/store-ca/config/slice'; import { ConfigStateType } from '@portkey-wallet/store/store-ca/config/types'; -import awakenSlice from '@portkey-wallet/store/store-ca/awaken/slice'; -import { TAwakenState } from '@portkey-wallet/store/store-ca/awaken/type'; +import awakenSlice from '@portkey-wallet/store/awaken/slice'; +import { TAwakenState } from '@portkey-wallet/store/awaken/type'; export type CACommonState = RootCommonState & { [tokenManagementSlice.name]: TokenState; diff --git a/packages/types/types-eoa/store.ts b/packages/types/types-eoa/store.ts index 5ab75db3b7..3245b27c0c 100644 --- a/packages/types/types-eoa/store.ts +++ b/packages/types/types-eoa/store.ts @@ -6,10 +6,13 @@ import { walletSlice } from '@portkey-wallet/store/store-eoa/wallet/slice'; import { TWalletState } from '@portkey-wallet/store/store-eoa/wallet/type'; import { networkSlice } from '@portkey-wallet/store/store-eoa/network/slice'; import { TNetworkState } from '@portkey-wallet/store/store-eoa/network/type'; +import { awakenSlice } from '@portkey-wallet/store/awaken/slice'; +import { TAwakenState } from '@portkey-wallet/store/awaken/type'; export type EOACommonState = { [settingsSlice.name]: SettingsState; [walletSlice.name]: TWalletState; [chainSlice.name]: ChainState; [networkSlice.name]: TNetworkState; + [awakenSlice.name]: TAwakenState; }; diff --git a/packages/utils/awaken/index.ts b/packages/utils/awaken/index.ts index ee99a05b29..05d076992f 100644 --- a/packages/utils/awaken/index.ts +++ b/packages/utils/awaken/index.ts @@ -1,8 +1,8 @@ -import { DEFAULT_EXPIRATION, DEFAULT_SLIPPAGE_TOLERANCE } from '@portkey-wallet/constants/constants-ca/awaken'; +import { DEFAULT_EXPIRATION, DEFAULT_SLIPPAGE_TOLERANCE } from '@portkey-wallet/constants/awaken'; import BigNumber from 'bignumber.js'; import { divDecimals, timesDecimals } from '../converter'; import { ONE } from '@portkey-wallet/constants/misc'; -import { PBTimestamp, TCurrency } from '@portkey-wallet/types/types-ca/awaken'; +import { PBTimestamp, TCurrency } from '@portkey-wallet/types/awaken'; export function valueToPercentage(input?: BigNumber.Value) { return BigNumber.isBigNumber(input) ? input.times(100) : timesDecimals(input, 2); diff --git a/packages/utils/awaken/swap.ts b/packages/utils/awaken/swap.ts index 6b757a043c..c32d2dbbb4 100644 --- a/packages/utils/awaken/swap.ts +++ b/packages/utils/awaken/swap.ts @@ -1,6 +1,6 @@ import { TEN_THOUSAND, ZERO } from '@portkey-wallet/constants/misc'; import { ContractBasic } from '@portkey-wallet/contracts/utils/ContractBasic'; -import { TContractSwapToken, TSwapRoute } from '@portkey-wallet/types/types-ca/awaken/swap'; +import { TContractSwapToken, TSwapRoute } from '@portkey-wallet/types/awaken/swap'; import BigNumber from 'bignumber.js'; export type TGetContractAmountOutParams = { From 4cd3065c3d1d758d3e9ea6e0d6d05823c9cf62ff Mon Sep 17 00:00:00 2001 From: thomas-portkey Date: Fri, 24 Jan 2025 17:31:00 +0800 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20swap=20hook=20adjust?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hooks/hooks-eoa/awaken/index.ts | 1 + packages/hooks/hooks-eoa/awaken/state.ts | 34 ++++++++------ packages/hooks/hooks-eoa/useTokensPrice.ts | 15 +++--- .../CommonPreviewContainer/index.tsx | 12 +++-- .../js/components/Updater/index.tsx | 4 +- packages/mobile-aelf/js/hooks/awaken/index.ts | 19 ++++---- .../js/pages/Home/HomeTab/index.tsx | 2 +- .../js/pages/Swap/LimitPreview/index.tsx | 46 +++++++++---------- .../js/pages/Swap/SwapHome/index.tsx | 2 +- .../js/pages/Swap/SwapPreview/index.tsx | 46 +++++++++---------- .../Swap/components/LimitEnter/index.tsx | 14 +++--- .../pages/Swap/components/RateCard/index.tsx | 2 +- .../components/SwapSettingButton/index.tsx | 2 +- packages/mobile-aelf/js/store/config.ts | 3 +- packages/mobile-aelf/js/store/rootReducer.ts | 3 +- packages/utils/awaken/limit.ts | 22 +++++++++ packages/utils/awaken/swap.ts | 16 +++++++ 17 files changed, 145 insertions(+), 98 deletions(-) diff --git a/packages/hooks/hooks-eoa/awaken/index.ts b/packages/hooks/hooks-eoa/awaken/index.ts index 315839f42e..54b1874ffa 100644 --- a/packages/hooks/hooks-eoa/awaken/index.ts +++ b/packages/hooks/hooks-eoa/awaken/index.ts @@ -5,6 +5,7 @@ import { useCurrentNetwork } from '../network'; export const useInitAwaken = () => { useInitAwakenGasFeeState(); + const { refresh } = useAwakenTokenList(); useEffect(() => { diff --git a/packages/hooks/hooks-eoa/awaken/state.ts b/packages/hooks/hooks-eoa/awaken/state.ts index 3b8309dcc9..303543c713 100644 --- a/packages/hooks/hooks-eoa/awaken/state.ts +++ b/packages/hooks/hooks-eoa/awaken/state.ts @@ -181,21 +181,25 @@ export const useAwakenTokenList = (isInit = false) => { const account = useCurrentAccount(); const refresh = useCallback(async () => { - const rst = await request.assets.getAwakenTokenList({ - params: { - skipCount: 0, - maxResultCount: 1000, - page: 1, - chainId, - caAddress: account?.address || '', - }, - }); - dispatch( - updateAwakenTokenList({ - key: network, - list: rst.data, - }), - ); + try { + const rst = await request.assets.getAwakenTokenList({ + params: { + skipCount: 0, + maxResultCount: 1000, + page: 1, + chainId, + caAddress: account?.address || '', + }, + }); + dispatch( + updateAwakenTokenList({ + key: network, + list: rst.data, + }), + ); + } catch (error) { + console.log('useAwakenTokenList refresh error', error); + } }, [account?.address, chainId, dispatch, network]); useEffect(() => { diff --git a/packages/hooks/hooks-eoa/useTokensPrice.ts b/packages/hooks/hooks-eoa/useTokensPrice.ts index 54feede4cd..11508d7f8f 100644 --- a/packages/hooks/hooks-eoa/useTokensPrice.ts +++ b/packages/hooks/hooks-eoa/useTokensPrice.ts @@ -4,14 +4,14 @@ import { divDecimals, formatAmountUSDShow } from '@portkey-wallet/utils/converte import { useCallback, useEffect, useRef } from 'react'; import { useAppEOASelector, useAppCommonDispatch } from '../index'; import { useIsMainnet } from './network'; -// import { useDefaultToken } from './chainList'; +import { useDefaultToken } from './chainList'; import { useSymbolList } from './useToken'; -// export function useDefaultTokenPrice() { -// const defaultToken = useDefaultToken(); -// const [tokenPriceObject] = useGetCurrentAccountTokenPrice(); -// return tokenPriceObject?.[defaultToken.symbol] || 0; -// } +export function useDefaultTokenPrice() { + const defaultToken = useDefaultToken(); + const [tokenPriceObject] = useGetCurrentAccountTokenPrice(); + return tokenPriceObject?.[defaultToken.symbol] || 0; +} export function useGetCurrentAccountTokenPrice(): [ Record, @@ -19,9 +19,6 @@ export function useGetCurrentAccountTokenPrice(): [ (symbols: string[]) => void, ] { const assets = useAppEOASelector(state => state.assets); - // const { - // tokenPrices: { tokenPriceObject }, - // } = assets; const dispatch = useAppCommonDispatch(); const symbols = useSymbolList(); diff --git a/packages/mobile-aelf/js/components/CommonPreviewContainer/index.tsx b/packages/mobile-aelf/js/components/CommonPreviewContainer/index.tsx index 3f3aced372..7f685f0d8f 100644 --- a/packages/mobile-aelf/js/components/CommonPreviewContainer/index.tsx +++ b/packages/mobile-aelf/js/components/CommonPreviewContainer/index.tsx @@ -1,7 +1,6 @@ import React, { useCallback } from 'react'; import { Text, View, TouchableWithoutFeedback, GestureResponderEvent } from 'react-native'; import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'; -import { useLanguage } from 'i18n/hooks'; import PageContainer from 'components/PageContainer'; import Svg from 'components/Svg'; import CommonButton, { CommonButtonProps } from 'components/CommonButton'; @@ -29,13 +28,14 @@ const CommonPreviewContainer: React.FC = ({ isLoading, children, }) => { - const { t } = useLanguage(); const styles = getStyles(); const { theme } = useTheme(); const handleButtonPress = useCallback( (event: GestureResponderEvent) => { - if (isLoading) return; + if (isLoading) { + return; + } buttonProps.onPress?.(event); }, [isLoading, buttonProps], @@ -43,14 +43,16 @@ const CommonPreviewContainer: React.FC = ({ return ( { - if (isLoading || !helpUrl) return; + if (isLoading || !helpUrl) { + return; + } await openOutLink(helpUrl); }}> { // im.setUrl({ // apiUrl: imApiUrl || '', @@ -123,6 +125,6 @@ export default function Updater() { // useRememberMeBlackList(true); // useCheckContactMap(); // useInitDappWhiteListData(); - // useInitAwaken(); + useInitAwaken(); return null; } diff --git a/packages/mobile-aelf/js/hooks/awaken/index.ts b/packages/mobile-aelf/js/hooks/awaken/index.ts index 65c3e0e59c..7abe70853a 100644 --- a/packages/mobile-aelf/js/hooks/awaken/index.ts +++ b/packages/mobile-aelf/js/hooks/awaken/index.ts @@ -1,11 +1,11 @@ import { useCallback, useMemo, useState } from 'react'; -import { useSwapHookContractAddress } from '@portkey-wallet/hooks/hooks-ca/awaken'; +import { useSwapHookContractAddress } from '@portkey-wallet/hooks/hooks-eoa/awaken'; import { useGetTokenContract, useGetViewContract } from '../contract'; -import { useDAppChainId } from '@portkey-wallet/hooks/hooks-ca/chainList'; +import { useDAppChainId } from '@portkey-wallet/hooks/hooks-eoa/network/chain'; import BigNumber from 'bignumber.js'; import useInterval from '@portkey-wallet/hooks/useInterval'; import { ZERO } from '@portkey-wallet/constants/misc'; -import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { useCurrentAccount } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import { getELFChainBalance } from '@portkey-wallet/utils/balance'; export const useGetSwapHookViewContract = () => { @@ -32,7 +32,9 @@ export const useBalancesV2 = ( delay: null | number = 10000, ): [TBalancesV2, () => void] => { const deArr: TBalancesV2 | undefined = useMemo(() => { - if (!tokens) return; + if (!tokens) { + return; + } if (Array.isArray(tokens)) { return tokens.reduce((acc: any, symbol) => { if (symbol) { @@ -47,8 +49,7 @@ export const useBalancesV2 = ( const [balances, setBalances] = useState(deArr); const chainId = useDAppChainId(); const getTokenContract = useGetTokenContract(); - const wallet = useCurrentWalletInfo(); - const account = useMemo(() => wallet[chainId]?.caAddress, [chainId, wallet]); + const account = useCurrentAccount(); const onGetBalance = useCallback(async () => { const tokensList = Array.isArray(tokens) ? tokens : [tokens]; @@ -66,12 +67,14 @@ export const useBalancesV2 = ( } // elf chain const contract = await getTokenContract(chainId); - if (!contract) return; + if (!contract) { + return; + } const bs: TBalancesV2 = {}; const promise = tokensList.map(async symbol => { if (symbol) { const _symbol = symbol; - const balance = await getELFChainBalance(contract, _symbol, account); + const balance = await getELFChainBalance(contract, _symbol, account.address); bs[_symbol] = ZERO.plus(balance ?? ''); } }); diff --git a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx index 57be665c6e..15bb2e450e 100644 --- a/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx +++ b/packages/mobile-aelf/js/pages/Home/HomeTab/index.tsx @@ -178,7 +178,7 @@ const HomeTab: React.FC = ({ _ }) => { Switch NetworkType (current: {currentNetwork}) - navigationService.push('Swap')} style={{ marginTop: 20 }}> + navigationService.push('SwapHome')} style={{ marginTop: 20 }}> Swap diff --git a/packages/mobile-aelf/js/pages/Swap/LimitPreview/index.tsx b/packages/mobile-aelf/js/pages/Swap/LimitPreview/index.tsx index 426518f028..8b7be9a4f6 100644 --- a/packages/mobile-aelf/js/pages/Swap/LimitPreview/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/LimitPreview/index.tsx @@ -6,7 +6,7 @@ import Svg from 'components/Svg'; import CommonInfoRow from 'components/CommonInfoRow'; import { CommonPromptCard, PromptCardType } from 'components/CommonPromptCard'; import PreviewAmountCard from '../components/PreviewAmountCard'; -import { useIsMainnet } from '@portkey-wallet/hooks/hooks-ca/network'; +import { useIsMainnet } from '@portkey-wallet/hooks/hooks-eoa/network'; import { getChainSvgName } from 'utils'; import { pTd } from 'utils/unit'; import { getStyles } from './style'; @@ -18,21 +18,21 @@ import { LimitExpiryEnum, } from '@portkey-wallet/constants/awaken/limit'; import useRouterParams from '@portkey-wallet/hooks/useRouterParams'; -import { useAwakenGasFee, useAwakenTokenPrices } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { useAwakenGasFee, useAwakenTokenPrices } from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; import moment from 'moment'; import { divDecimals, timesDecimals } from '@portkey-wallet/utils/converter'; import { LANG_MAX, TEN_THOUSAND, ZERO } from '@portkey-wallet/constants/misc'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import BigNumber from 'bignumber.js'; -import { useGetCAContract, useGetTokenViewContract } from 'hooks/contract'; -import { useDAppChainId } from '@portkey-wallet/hooks/hooks-ca/chainList'; -import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; +import { useGetContract, useGetTokenContract, useGetTokenViewContract } from 'hooks/contract'; +import { useDAppChainId } from '@portkey-wallet/hooks/hooks-eoa/network/chain'; +import { useCurrentAccount } from '@portkey-wallet/hooks/hooks-eoa/wallet'; import { getAllowance } from '@portkey-wallet/utils/contract'; -import { useLimitContractAddress } from '@portkey-wallet/hooks/hooks-ca/awaken'; +import { useLimitContractAddress } from '@portkey-wallet/hooks/hooks-eoa/awaken'; import { getDeadlineWithSec } from '@portkey-wallet/utils/awaken'; import { formatPriceUsd } from '@portkey-wallet/utils/format'; -import { useDefaultTokenPrice } from '@portkey-wallet/hooks/hooks-ca/useTokensPrice'; -import { sendLimit } from '@portkey-wallet/utils/awaken/limit'; +import { useDefaultTokenPrice } from '@portkey-wallet/hooks/hooks-eoa/useTokensPrice'; +import { sendEOALimit } from '@portkey-wallet/utils/awaken/limit'; import navigationService from 'utils/navigationService'; import { ActionType } from 'types/common'; import CommonToast from 'components/CommonToast'; @@ -74,10 +74,11 @@ const SwapPreview = () => { const [isLoading, setIsLoading] = useState(false); const isLoadingRef = useRef(false); - const getCAContract = useGetCAContract(); + const getTokenContract = useGetTokenContract(); + const getContract = useGetContract(); const getTokenViewContract = useGetTokenViewContract(); const dAppChainId = useDAppChainId(); - const wallet = useCurrentWalletInfo(); + const account = useCurrentAccount(); const limitContractAddress = useLimitContractAddress(); const handlePress = useCallback(async () => { if (!requireApproveAmount) { @@ -86,7 +87,7 @@ const SwapPreview = () => { setIsLoading(true); isLoadingRef.current = true; - const caAddress = wallet[dAppChainId]?.caAddress || ''; + const accountAddress = account?.address || ''; try { // const maxBufferPrice = await getContractMaxBufferPrice({ // contract: hookContract, @@ -113,15 +114,14 @@ const SwapPreview = () => { const allowance = await getAllowance(tokenViewContract, { symbol: tokenIn.symbol, - owner: caAddress, + owner: accountAddress, spender: limitContractAddress, }); - const caContract = await getCAContract(dAppChainId); + const tokenContract = await getTokenContract(dAppChainId); if (valueInAmountBN.gt(allowance)) { console.log('allowance', allowance); - const approveResult = await caContract.callSendMethod('ManagerApprove', wallet.address, { - caHash: wallet.caHash, + const approveResult = await tokenContract.callSendMethod('Approve', accountAddress, { spender: limitContractAddress, symbol: tokenIn.symbol, amount: LANG_MAX.toFixed(), @@ -155,11 +155,10 @@ const SwapPreview = () => { // onCancel(); // return true; // } - const req = await sendLimit({ - contract: caContract, - managerAddress: wallet.address, - caHash: wallet.caHash || '', - contractAddress: limitContractAddress, + const contract = await getContract(dAppChainId, limitContractAddress); + const req = await sendEOALimit({ + contract, + address: accountAddress, args, }); if (req?.error) { @@ -178,18 +177,19 @@ const SwapPreview = () => { } }, [ requireApproveAmount, - wallet, - dAppChainId, + account?.address, getTokenViewContract, + dAppChainId, tokenIn.decimals, tokenIn.symbol, limitContractAddress, - getCAContract, + getTokenContract, valueOut, tokenOut.decimals, tokenOut.symbol, valueIn, expiryValue, + getContract, ]); const limitFeeBN = useMemo(() => { diff --git a/packages/mobile-aelf/js/pages/Swap/SwapHome/index.tsx b/packages/mobile-aelf/js/pages/Swap/SwapHome/index.tsx index c36a550f0b..cda080f6f8 100644 --- a/packages/mobile-aelf/js/pages/Swap/SwapHome/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/SwapHome/index.tsx @@ -4,7 +4,7 @@ import SwapEnter from '../components/SwapEnter/index'; import LimitEnter from '../components/LimitEnter/index'; import SwapSettingButton from '../components/SwapSettingButton/index'; import { getStyles } from './style'; -import { useAwakenTokenList } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { useAwakenTokenList } from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; enum SwapHomeTabType { SWAP = 'Swap', diff --git a/packages/mobile-aelf/js/pages/Swap/SwapPreview/index.tsx b/packages/mobile-aelf/js/pages/Swap/SwapPreview/index.tsx index 97c284a643..b414f94dd3 100644 --- a/packages/mobile-aelf/js/pages/Swap/SwapPreview/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/SwapPreview/index.tsx @@ -1,6 +1,5 @@ import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { View } from 'react-native'; -import { useLanguage } from 'i18n/hooks'; import CommonPreviewContainer from 'components/CommonPreviewContainer'; import Svg from 'components/Svg'; import CommonInfoRow from 'components/CommonInfoRow'; @@ -19,21 +18,21 @@ import { } from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; import { LANG_MAX, ONE, TEN_THOUSAND, ZERO } from '@portkey-wallet/constants/misc'; import { bigNumberToString, getDeadline, minimumAmountOut } from '@portkey-wallet/utils/awaken'; -import { getContractTotalAmountOut, getPriceImpactWithBuy, sendSwap } from '@portkey-wallet/utils/awaken/swap'; +import { getContractTotalAmountOut, getPriceImpactWithBuy, sendEOASwap } from '@portkey-wallet/utils/awaken/swap'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { TContractSwapToken, TSwapRoute } from '@portkey-wallet/types/awaken/swap'; import BigNumber from 'bignumber.js'; import { divDecimals, timesDecimals } from '@portkey-wallet/utils/converter'; import { SWAP_LABS_FEE_RATE, SWAP_RECEIVE_RATE, SWAP_TIME_INTERVAL } from '@portkey-wallet/constants/awaken/swap'; -import { useDefaultTokenPrice } from '@portkey-wallet/hooks/hooks-ca/useTokensPrice'; +import { useDefaultTokenPrice } from '@portkey-wallet/hooks/hooks-eoa/useTokensPrice'; import { formatPriceUsd } from '@portkey-wallet/utils/format'; import { useReturnLastCallback } from '@portkey-wallet/hooks'; import { useGetSwapHookViewContract } from 'hooks/awaken'; -import { useGetCAContract, useGetTokenViewContract } from 'hooks/contract'; -import { useDAppChainId } from '@portkey-wallet/hooks/hooks-ca/chainList'; +import { useGetContract, useGetTokenContract, useGetTokenViewContract } from 'hooks/contract'; +import { useDAppChainId } from '@portkey-wallet/hooks/hooks-eoa/network/chain'; import { getAllowance } from '@portkey-wallet/utils/contract'; -import { useCurrentWalletInfo } from '@portkey-wallet/hooks/hooks-ca/wallet'; -import { useSwapHookContractAddress } from '@portkey-wallet/hooks/hooks-ca/awaken'; +import { useCurrentAccount } from '@portkey-wallet/hooks/hooks-eoa/wallet'; +import { useSwapHookContractAddress } from '@portkey-wallet/hooks/hooks-eoa/awaken'; import { AWAKEN_DEFAULT_CID } from '@portkey-wallet/constants/awaken'; import navigationService from 'utils/navigationService'; import { ActionType } from 'types/common'; @@ -50,7 +49,6 @@ const SwapPreview = () => { const { swapInfo: swapInfoProp, swapRoute, priceLabel } = useRouterParams(); const [swapInfo, setSwapInfo] = useState(swapInfoProp); - const { t } = useLanguage(); const styles = getStyles(); const isMainnet = useIsMainnet(); @@ -240,9 +238,10 @@ const SwapPreview = () => { const swapHookContractAddress = useSwapHookContractAddress(); const getTokenViewContract = useGetTokenViewContract(); - const getCAContract = useGetCAContract(); + const getTokenContract = useGetTokenContract(); + const getContract = useGetContract(); const dAppChainId = useDAppChainId(); - const wallet = useCurrentWalletInfo(); + const account = useCurrentAccount(); const { userExpiration } = useAwakenUserExpiration(); const handlePress = useCallback(async () => { @@ -254,7 +253,7 @@ const SwapPreview = () => { if (!tokenIn || !tokenOut || !valueIn || !valueOut) { return; } - const caAddress = wallet[dAppChainId]?.caAddress || ''; + const accountAddress = account?.address || ''; setIsSwapping(true); try { @@ -263,15 +262,14 @@ const SwapPreview = () => { const valueInAmountBN = timesDecimals(valueIn, tokenIn.decimals); const allowance = await getAllowance(tokenViewContract, { symbol: tokenIn.symbol, - owner: caAddress, + owner: accountAddress, spender: swapHookContractAddress, }); - const caContract = await getCAContract(dAppChainId); + const tokenContract = await getTokenContract(dAppChainId); if (valueInAmountBN.gt(allowance)) { console.log('allowance', allowance); - const approveResult = await caContract.callSendMethod('ManagerApprove', wallet.address, { - caHash: wallet.caHash, + const approveResult = await tokenContract.callSendMethod('Approve', accountAddress, { spender: swapHookContractAddress, symbol: tokenIn.symbol, amount: LANG_MAX.toFixed(), @@ -324,16 +322,15 @@ const SwapPreview = () => { channel, deadline, path: item.tokens.map(token => token.symbol), - to: caAddress, + to: accountAddress, feeRates: item.feeRates.map(fee => ZERO.plus(TEN_THOUSAND).times(fee).toNumber()), }; }); - const req = await sendSwap({ - contract: caContract, - managerAddress: wallet.address, - caHash: wallet.caHash || '', - contractAddress: swapHookContractAddress, + const contract = await getContract(dAppChainId, swapHookContractAddress); + const req = await sendEOASwap({ + contract, + address: accountAddress, args: { swapTokens, labsFeeRate: SWAP_LABS_FEE_RATE, @@ -355,21 +352,22 @@ const SwapPreview = () => { setIsSwapping(false); } }, [ + account?.address, dAppChainId, - getCAContract, + getContract, + getTokenContract, getTokenViewContract, swapHookContractAddress, swapInfo, userExpiration, userSlippageTolerance, - wallet, ]); return ( } - buttonProps={{ title: t('Swap'), onPress: handlePress }} + buttonProps={{ title: 'Swap', onPress: handlePress }} isLoading={isSwapping} helpUrl={HELP_URL}> { const getUnfilled = useGetLimitOrderRemainingUnfilled(); const dAppChainId = useDAppChainId(); - const wallet = useCurrentWalletInfo(); + const account = useCurrentAccount(); const onSwapClick = useCallback(async () => { const { tokenIn, tokenOut, valueIn, valueOut } = limitInfo; if (!tokenIn || !tokenOut || isReserveError) { @@ -331,7 +331,7 @@ const LimitEnter = () => { const result = await getUnfilled({ dto: { chainId: dAppChainId, - makerAddress: wallet[dAppChainId]?.caAddress || '', + makerAddress: account?.address || '', tokenSymbol: tokenIn.symbol, }, }); @@ -350,7 +350,7 @@ const LimitEnter = () => { } finally { setIsLoading(false); } - }, [dAppChainId, expiryValue, getUnfilled, isReserveError, limitInfo, tokenPriceInfo.isReverse, wallet]); + }, [account?.address, dAppChainId, expiryValue, getUnfilled, isReserveError, limitInfo, tokenPriceInfo.isReverse]); const actionButtonTitle = useMemo(() => { if (!currencyBalances || Object.keys(currencyBalances).length === 0) { diff --git a/packages/mobile-aelf/js/pages/Swap/components/RateCard/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/RateCard/index.tsx index f37d5dffef..f900a754f0 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/RateCard/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/RateCard/index.tsx @@ -9,7 +9,7 @@ import { pTd } from 'utils/unit'; import { ViewStyleType } from 'types/styles'; import { getStyles } from './style'; import { TCurrency } from '@portkey-wallet/types/awaken'; -import { TReserveInfo } from '@portkey-wallet/hooks/hooks-ca/awaken/limit'; +import { TReserveInfo } from '@portkey-wallet/hooks/hooks-eoa/awaken/limit'; import { formatNameWithNoUnderline } from '@portkey-wallet/utils'; import { ONE, ZERO } from '@portkey-wallet/constants/misc'; import { LIMIT_PRICE_DECIMAL } from '@portkey-wallet/constants/awaken/limit'; diff --git a/packages/mobile-aelf/js/pages/Swap/components/SwapSettingButton/index.tsx b/packages/mobile-aelf/js/pages/Swap/components/SwapSettingButton/index.tsx index d0a1d2651b..721249f0ed 100644 --- a/packages/mobile-aelf/js/pages/Swap/components/SwapSettingButton/index.tsx +++ b/packages/mobile-aelf/js/pages/Swap/components/SwapSettingButton/index.tsx @@ -10,7 +10,7 @@ import CommonTagToggleGroup from 'components/CommonTagToggleGroup'; import CommonInput from 'components/CommonInput'; import CommonButton from 'components/CommonButton'; import { priceImpactList } from '@portkey-wallet/constants/awaken'; -import { useAwakenUserSlippageTolerance, useAwakenUserExpiration } from '@portkey-wallet/hooks/hooks-ca/awaken/state'; +import { useAwakenUserSlippageTolerance, useAwakenUserExpiration } from '@portkey-wallet/hooks/hooks-eoa/awaken/state'; import { useLanguage } from 'i18n/hooks'; import { pTd } from 'utils/unit'; import { ViewStyleType } from 'types/styles'; diff --git a/packages/mobile-aelf/js/store/config.ts b/packages/mobile-aelf/js/store/config.ts index 74a9e0c458..923ad9ed0a 100644 --- a/packages/mobile-aelf/js/store/config.ts +++ b/packages/mobile-aelf/js/store/config.ts @@ -6,6 +6,7 @@ import { import { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from 'redux-persist'; import { walletSlice } from '@portkey-wallet/store/store-eoa/wallet/slice'; import { networkSlice } from '@portkey-wallet/store/store-eoa/network/slice'; +import awakenSlice from '@portkey-wallet/store/awaken/slice'; interface ThunkOptions { extraArgument: E; @@ -25,7 +26,7 @@ const reduxPersistConfig = { // Optionally, just specify the keys you DO want stored to persistence. // An empty array means 'don't store any reducers' -> infinite-red/ignite#409 - whitelist: [walletSlice.name, networkSlice.name], + whitelist: [walletSlice.name, networkSlice.name, awakenSlice.name], // More info here: https://shift.infinite.red/shipping-persistant-reducers-7341691232b1 // transforms: [immutablePersistenceTransform], diff --git a/packages/mobile-aelf/js/store/rootReducer.ts b/packages/mobile-aelf/js/store/rootReducer.ts index b9cc1fce9c..0565a5f5d8 100644 --- a/packages/mobile-aelf/js/store/rootReducer.ts +++ b/packages/mobile-aelf/js/store/rootReducer.ts @@ -10,6 +10,7 @@ import { networkSlice } from '@portkey-wallet/store/store-eoa/network/slice'; import assetsSlice from '@portkey-wallet/store/store-eoa/assets/slice'; import tokenManagementSlice from '@portkey-wallet/store/store-eoa/tokenManagement/slice'; import activitySlice from '@portkey-wallet/store/store-eoa/activity/slice'; +import awakenSlice from '@portkey-wallet/store/awaken/slice'; const userPersistConfig = { key: userSlice.name, @@ -62,7 +63,7 @@ const rootReducer = combineReducers({ // [securitySlice.name]: securitySlice.reducer, // [chatSlice.name]: chatSlice.reducer, // [rampSlice.name]: rampSlice.reducer, - // [awakenSlice.name]: awakenSlice.reducer, + [awakenSlice.name]: awakenSlice.reducer, // [referralSlice.name]: referralSlice.reducer, // [configSlice.name]: configSlice.reducer, }); diff --git a/packages/utils/awaken/limit.ts b/packages/utils/awaken/limit.ts index 93be9e8c6c..d5b89e853b 100644 --- a/packages/utils/awaken/limit.ts +++ b/packages/utils/awaken/limit.ts @@ -30,3 +30,25 @@ export const sendLimit = async ({ contract, managerAddress, contractAddress, caH } return result; }; + +export type TSendEOALimitParams = { + contract: ContractBasic; + address: string; + args: { + amountIn: string; + symbolIn: string; + amountOut: string; + symbolOut: string; + deadline: { + seconds: number; + nanos: number; + }; + }; +}; +export const sendEOALimit = async ({ contract, address, args }: TSendEOALimitParams) => { + const result = await contract.callSendMethod('CommitLimitOrder', address, args); + if (result.error) { + throw result.error; + } + return result; +}; diff --git a/packages/utils/awaken/swap.ts b/packages/utils/awaken/swap.ts index c32d2dbbb4..4398aa9e9c 100644 --- a/packages/utils/awaken/swap.ts +++ b/packages/utils/awaken/swap.ts @@ -87,3 +87,19 @@ export const sendSwap = async ({ contract, managerAddress, contractAddress, caHa } return result; }; + +export type TSendEOASwapParams = { + contract: ContractBasic; + address: string; + args: { + swapTokens: TContractSwapToken[]; + labsFeeRate: number; + }; +}; +export const sendEOASwap = async ({ contract, address, args }: TSendEOASwapParams) => { + const result = await contract.callSendMethod('SwapExactTokensForTokens', address, args); + if (result.error) { + throw result.error; + } + return result; +};