diff --git a/package.json b/package.json index 8c5e017ddb..4f2e5b32cf 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "lodash.uniqby": "4.7.0", "mixpanel-react-native": "2.3.1", "moment": "2.29.1", - "moralis": "2.14.3", + "moralis": "2.25.2", "papaparse": "5.3.2", "path-browserify": "1.0.1", "react": "18.2.0", diff --git a/scripts/allowed-url-prefixes.js b/scripts/allowed-url-prefixes.js index af2d213c6e..a3d67abede 100644 --- a/scripts/allowed-url-prefixes.js +++ b/scripts/allowed-url-prefixes.js @@ -51,6 +51,7 @@ const allowedUrlPrefixes = [ 'https://api.zenledger.io/', 'https://api.blockcypher.com/v1/', 'https://api.fullstack.cash/v5/', + 'https://deep-index.moralis.io/api/v2.2/', ].concat(developmentOnlyAllowedUrlPrefixes); const allowedUrlPrefixString = allowedUrlPrefixes.join(','); diff --git a/src/store/buy-crypto/buy-crypto.effects.ts b/src/store/buy-crypto/buy-crypto.effects.ts index fe6f53f65f..b2ad42b3b0 100644 --- a/src/store/buy-crypto/buy-crypto.effects.ts +++ b/src/store/buy-crypto/buy-crypto.effects.ts @@ -49,7 +49,12 @@ export const calculateAltFiatToUsd = }; export const calculateUsdToAltFiat = - (usdAmount: number, altFiatCurrency: string): Effect => + ( + usdAmount: number, + altFiatCurrency: string, + decimalPrecision: number = 2, + shouldSkipLogging?: boolean, + ): Effect => (dispatch, getState) => { const state = getState(); const allRates = state.RATE.rates; @@ -63,12 +68,16 @@ export const calculateUsdToAltFiat = if (rateBtcAlt && rateBtcUsd?.rate && rateBtcUsd?.rate > 0) { const rateAltUsd = rateBtcAlt.rate / rateBtcUsd.rate; - const equivalentAmount = +(usdAmount * rateAltUsd).toFixed(2); - dispatch( - LogActions.debug( - `${usdAmount} USD => ${equivalentAmount} ${altFiatCurrency}`, - ), + const equivalentAmount = +(usdAmount * rateAltUsd).toFixed( + decimalPrecision, ); + if (!shouldSkipLogging) { + dispatch( + LogActions.debug( + `${usdAmount} USD => ${equivalentAmount} ${altFiatCurrency}`, + ), + ); + } return equivalentAmount; } else { dispatch( diff --git a/src/store/moralis/moralis.effects.ts b/src/store/moralis/moralis.effects.ts index 5dabf6cbde..0a9fdded9b 100644 --- a/src/store/moralis/moralis.effects.ts +++ b/src/store/moralis/moralis.effects.ts @@ -1,5 +1,10 @@ import Moralis from 'moralis'; -import {EvmChain} from '@moralisweb3/common-evm-utils'; +import { + EvmChain, + EvmTokenPriceItemInput, + GetMultipleTokenPricesOperationResponseJSON, + GetMultipleTokenPricesOperationRequest, +} from '@moralisweb3/common-evm-utils'; import {LogActions} from '../log'; import {Effect} from '..'; import axios from 'axios'; @@ -395,6 +400,48 @@ export const getERC20TokenPrice = } }; +export const getMultipleTokenPrices = + ({ + addresses, + chain, + }: { + addresses: EvmTokenPriceItemInput[]; + chain: string; + }): Effect> => + async dispatch => { + try { + const query = { + chain: MORALIS_EVM_CHAIN[chain], + include: 'percent_change', + } as GetMultipleTokenPricesOperationRequest; + const body = {tokens: addresses}; + const {raw} = await Moralis.EvmApi.token.getMultipleTokenPrices( + query, + body, + ); + + dispatch( + LogActions.info( + '[moralis/getMultipleTokenPrices]: get ERC20 token price successfully', + ), + ); + return raw; + } catch (e) { + let errorStr; + if (e instanceof Error) { + errorStr = e.message; + } else { + errorStr = JSON.stringify(e); + } + dispatch( + LogActions.error( + `[moralis/getMultipleTokenPrices]: an error occurred while getting ERC20 token price: ${errorStr}`, + ), + ); + throw e; + } + }; + export const getERC20TokenBalanceByWallet = ({address, chain}: {address: string; chain: string}): Effect> => async dispatch => { diff --git a/src/store/wallet/effects/rates/rates.ts b/src/store/wallet/effects/rates/rates.ts index d8b67ebf23..76bd022a13 100644 --- a/src/store/wallet/effects/rates/rates.ts +++ b/src/store/wallet/effects/rates/rates.ts @@ -38,6 +38,12 @@ import { getCurrencyAbbreviation, addTokenChainSuffix, } from '../../../../utils/helper-methods'; +import {getMultipleTokenPrices} from '../../../../store/moralis/moralis.effects'; +import { + EvmTokenPriceItemInput, + EvmErc20PriceJSON, +} from '@moralisweb3/common-evm-utils'; +import {calculateUsdToAltFiat} from '../../../../store/buy-crypto/buy-crypto.effects'; export const getPriceHistory = (defaultAltCurrencyIsoCode: string): Effect => @@ -210,6 +216,8 @@ export const getTokenRates = let tokenRates: {[key in string]: any} = {}; let tokenLastDayRates: {[key in string]: any} = {}; + const shouldSkipLogging = true; + const decimalPrecision = 6; try { const { @@ -229,7 +237,7 @@ export const getTokenRates = const altCurrencies = altCurrencyList.map(altCurrency => altCurrency.isoCode.toLowerCase(), ); - const chunkArray = (array: string[], size: number) => { + const chunkArray = (array: EvmTokenPriceItemInput[], size: number) => { const chunked_arr = []; for (let i = 0; i < array.length; i += size) { chunked_arr.push(array.slice(i, i + size)); @@ -240,27 +248,29 @@ export const getTokenRates = for (const chain of SUPPORTED_EVM_COINS) { const contractAddresses = dispatch(getContractAddresses(chain)); if (contractAddresses?.length > 0) { - const chunks = chunkArray(contractAddresses, 5); + const formattedAddresses = contractAddresses.map(address => ({ + tokenAddress: address, + })) as EvmTokenPriceItemInput[]; // format addresses for Moralis + const chunks = chunkArray(formattedAddresses, 25); for (const chunk of chunks) { - const url = `${BASE_BWS_URL}/v1/service/coinGecko/getRates/${chunk.join( - ',', - )}/${altCurrencies.join(',')}/${chain}`; - dispatch( - LogActions.debug(`getTokenRates: get request to: ${url}`), + const data = await dispatch( + getMultipleTokenPrices({addresses: chunk, chain}), ); - const {data} = await axios.get(url); - if (data?.error_code) { - dispatch( - LogActions.warn( - `Request Error ${data?.error_code}: ${data?.status?.error_message}`, - ), - ); - return resolve({tokenRates, tokenLastDayRates}); - } - dispatch(LogActions.debug('getTokenRates: success get request')); - Object.entries(data).map(([key, value]: [string, any]) => { - const formattedTokenAddress = addTokenChainSuffix(key, chain); + data.forEach((tokenInfo: EvmErc20PriceJSON) => { + const { + usdPrice, + tokenAddress, + '24hrPercentChange': percentChange, + } = tokenInfo; + const lastUpdate = Date.now(); + if (!usdPrice || !tokenAddress || !percentChange) { + return; + } + const formattedTokenAddress = addTokenChainSuffix( + tokenAddress.toLowerCase(), + chain, + ); // only save token rates if exist in tokens list if (tokensOptsByAddress[formattedTokenAddress]) { const tokenName = getCurrencyAbbreviation( @@ -271,27 +281,32 @@ export const getTokenRates = tokenLastDayRates[tokenName] = []; altCurrencies.forEach(altCurrency => { + const rate = + dispatch( + calculateUsdToAltFiat( + usdPrice, + altCurrency, + decimalPrecision, + shouldSkipLogging, + ), + ) || 0; tokenRates[tokenName].push({ code: altCurrency.toUpperCase(), - fetchedOn: value.last_updated_at, + fetchedOn: lastUpdate, name: tokensOptsByAddress[formattedTokenAddress]?.symbol, - rate: value[altCurrency], - ts: value.last_updated_at, + rate, + ts: lastUpdate, }); const yesterday = moment - .unix(value.last_updated_at) + .unix(lastUpdate) .subtract(1, 'days') .unix(); tokenLastDayRates[tokenName].push({ code: altCurrency.toUpperCase(), fetchedOn: yesterday, name: tokensOptsByAddress[formattedTokenAddress]?.symbol, - rate: - value[altCurrency] + - (value[altCurrency] * - value[`${altCurrency}_24h_change`]) / - 100, + rate: Number(percentChange) * rate, ts: yesterday, }); }); diff --git a/yarn.lock b/yarn.lock index 56b4a74933..9d5397cabd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2532,121 +2532,130 @@ bignumber.js "^9.1.1" rxjs "6" -"@moralisweb3/api-utils@^2.14.3", "@moralisweb3/api-utils@^2.18.4": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/api-utils/-/api-utils-2.18.4.tgz#ca873324c414d86a6aacd8508b21f3d7b75f8ab7" - integrity sha512-lUc5DOOlDdibSfRBhxxZFCHR1yTZhMEkj7Iw234PUh6ZLfnO4JV5XmTFKHUSZ8Nkxf6KBJZpdYqBjvSLq66ncA== +"@moralisweb3/api-utils@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/api-utils/-/api-utils-2.25.2.tgz#586775f142ce3f8376b077ba092937bffe855dcb" + integrity sha512-qeynKo7WN/vZEPV7suE5UKoJpNyJ/qPzhH7/AQ+9s5A/rKROdskN37FxtKRudVy1ebWvZsE8v7CvpPcIVgfIYQ== dependencies: - "@moralisweb3/common-core" "^2.18.4" - "@moralisweb3/common-evm-utils" "^2.18.4" + "@moralisweb3/common-core" "^2.25.2" + "@moralisweb3/common-evm-utils" "^2.25.2" axios "^1.2.1" -"@moralisweb3/auth@^2.14.3": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/auth/-/auth-2.18.4.tgz#2409a8da53a3c6f2f471a1802e11a176de56bf25" - integrity sha512-Gs9k1Gkuwx985NFu+9Nu9XJMER8b7MQw2IuUlbBk5IpNKqzYs5qeoryUc0H1YGReM77lSrDlIvEtltgSjziYpg== - dependencies: - "@moralisweb3/api-utils" "^2.18.4" - "@moralisweb3/common-aptos-utils" "^2.18.4" - "@moralisweb3/common-auth-utils" "^2.18.4" - "@moralisweb3/common-core" "^2.18.4" - "@moralisweb3/common-evm-utils" "^2.18.4" - "@moralisweb3/common-sol-utils" "^2.18.4" - -"@moralisweb3/common-aptos-utils@^2.18.4": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/common-aptos-utils/-/common-aptos-utils-2.18.4.tgz#78e3c44e8d677ee2ea6ff4c0bc348ee9cf0b157e" - integrity sha512-lM+5zB3momePSGtMHm107GRJHWabQCSD0YHz2B6pywEuolimHu5Or6t5xIPs8iwa8xQwx8b2IKQJNd+7CSi9Tw== - dependencies: - "@moralisweb3/common-core" "^2.18.4" +"@moralisweb3/aptos-api@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/aptos-api/-/aptos-api-2.25.2.tgz#e85a0d3f2499e617892b19938cca03374239cffe" + integrity sha512-KDcyA8iGUShKDgzap+IYOlEfnxXg85JRpTyi2p1pfzXl5IVwgOQDYxxsmC0YWQFWCzKyUH7DCphAL5k1JXAVXw== + dependencies: + "@moralisweb3/api-utils" "^2.25.2" + "@moralisweb3/common-aptos-utils" "^2.25.2" + "@moralisweb3/common-core" "^2.25.2" + +"@moralisweb3/auth@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/auth/-/auth-2.25.2.tgz#45afa98d98cf58a05d7b907d9f5d05cc8a97b2e4" + integrity sha512-cfYKptZXsbVXLn2Zdyg2X03EeQAKXdRJBWQK0+ovOCpIGW23XjKzG2HTqhaXVULE1HqxoSZKXHSUkwXBFCHWhQ== + dependencies: + "@moralisweb3/api-utils" "^2.25.2" + "@moralisweb3/common-aptos-utils" "^2.25.2" + "@moralisweb3/common-auth-utils" "^2.25.2" + "@moralisweb3/common-core" "^2.25.2" + "@moralisweb3/common-evm-utils" "^2.25.2" + "@moralisweb3/common-sol-utils" "^2.25.2" + +"@moralisweb3/common-aptos-utils@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/common-aptos-utils/-/common-aptos-utils-2.25.2.tgz#de7dcc921dda76fd85b7ede0541cc520d8352f42" + integrity sha512-qUNPVM4G7Fmr1ICVFCKigjd0OmzwzoniZKK7RRTJt6/I3egyboCrWdeTmSHb2ngLNwvUWhPVgdRqDpq3HtlYeA== + dependencies: + "@moralisweb3/common-core" "^2.25.2" "@noble/hashes" "^1.2.0" -"@moralisweb3/common-auth-utils@^2.14.3", "@moralisweb3/common-auth-utils@^2.18.4": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/common-auth-utils/-/common-auth-utils-2.18.4.tgz#54804c6fc02e12ecf017e9c6ace0c29d80979dc5" - integrity sha512-SRxh6NNxDjYdgxOPUswwr6PV9Z+GTQHNeyewJHq9cVyFJQAQOwE3YGmeUB8otVgyyd0TTdrJcUSUMnJbNsg+UA== +"@moralisweb3/common-auth-utils@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/common-auth-utils/-/common-auth-utils-2.25.2.tgz#678bd8e06aa109bbbbdb6ab1a36ec4e1b1658857" + integrity sha512-wHxB71/aj9uAHaf+Tj+imtaVi061JvZJbd4RV68Buo19brCPNJ+pLE5lXXLeiCHKpJikHdFEW7Mf7rD+dh2/eQ== dependencies: "@ethersproject/abi" "^5.7.0" - "@moralisweb3/common-aptos-utils" "^2.18.4" - "@moralisweb3/common-core" "^2.18.4" - "@moralisweb3/common-evm-utils" "^2.18.4" - "@moralisweb3/common-sol-utils" "^2.18.4" + "@moralisweb3/common-aptos-utils" "^2.25.2" + "@moralisweb3/common-core" "^2.25.2" + "@moralisweb3/common-evm-utils" "^2.25.2" + "@moralisweb3/common-sol-utils" "^2.25.2" "@moralisweb3/streams-typings" "^1.0.6" -"@moralisweb3/common-core@^2.14.3", "@moralisweb3/common-core@^2.18.4": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/common-core/-/common-core-2.18.4.tgz#bfeb2e5095e62f653a2bc6c414415caf80de4926" - integrity sha512-O4dhaUnAt6xsK0MeFu/SMXGi/VHjyXqSahpR06aKQoaFBQTD7TGyY0EHYTMkKUYjlgULWBYu8S4XUzI7o2aLMA== +"@moralisweb3/common-core@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/common-core/-/common-core-2.25.2.tgz#5f5a590dfbaef0373828c21dd689ddf3470e3048" + integrity sha512-qfrTRl/Nv2lX74fmEg/it9vYjahf/yFRctqwZKeI9AibOmWOKAfYe+nVVJw3kkxl/cxQtRWmhWJA3cllL/kDDA== dependencies: axios "^1.2.1" -"@moralisweb3/common-evm-utils@^2.14.3", "@moralisweb3/common-evm-utils@^2.18.4": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/common-evm-utils/-/common-evm-utils-2.18.4.tgz#8cdcf560ec194234cc5ac95b2191ddb515205344" - integrity sha512-FVgR2VkZL93oM+kJU9zBJo7RQRavf48xQKsIwVsgr/ERUEkuDnM0J36QjtCXzdtUD1NfcmiCt8VbOUwqnLH5oA== +"@moralisweb3/common-evm-utils@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/common-evm-utils/-/common-evm-utils-2.25.2.tgz#1b493efeb3214c70636120520ae5ffd1fda118b3" + integrity sha512-poWO6FymAFdInw+PUIDiGz839bLJqStCiIYoBl/HjK2G2gOC2nYjGh6S4dHCc1i3oXC/CpdaJyM/p5gl+i59Mg== dependencies: "@ethersproject/address" "^5.7.0" "@ethersproject/bytes" "^5.7.0" "@ethersproject/transactions" "^5.7.0" - "@moralisweb3/common-core" "^2.18.4" + "@moralisweb3/common-core" "^2.25.2" -"@moralisweb3/common-sol-utils@^2.14.3", "@moralisweb3/common-sol-utils@^2.18.4": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/common-sol-utils/-/common-sol-utils-2.18.4.tgz#a10227f7ffe408278011777ffd29bc98b2cef647" - integrity sha512-RiBQF7FfX5TMw2U0CwryR6N/KBRe+6NwonwB1uYmCRGhn3KEi7zYy1QIjIyN1qHqExledWGcKOFiqiooosjUEA== +"@moralisweb3/common-sol-utils@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/common-sol-utils/-/common-sol-utils-2.25.2.tgz#42a0400d500ad979c7de902c972a6f2c4986c12c" + integrity sha512-SacSZFJiZsAJECnuRV4GXV2Zh+DlTWE+tczCe+OWsmc+EOL2VD46fUPCLHGAkkmSAd+O8k7CNU1jsUTVT36mfw== dependencies: - "@moralisweb3/common-core" "^2.18.4" + "@moralisweb3/common-core" "^2.25.2" bn.js "^5.2.1" bs58 "^5.0.0" buffer "^6.0.3" -"@moralisweb3/common-streams-utils@^2.14.3", "@moralisweb3/common-streams-utils@^2.18.4": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/common-streams-utils/-/common-streams-utils-2.18.4.tgz#a8e7c6472c35eff269bb8e0970f250af46637121" - integrity sha512-RlLRspgMhbQsP5N/jmoTPKmUi+GkorDO8IhnDDzgT9/EvThANjCBJNNb3+JIq40TbpF4JPsvAG0J101JtJwy6w== +"@moralisweb3/common-streams-utils@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/common-streams-utils/-/common-streams-utils-2.25.2.tgz#75c7fc9b05241467370b18e5308bda6614251d55" + integrity sha512-1WDvN9VkgzYC0dtSDEe2o2yD4vBo6VBDew6h8qhCaHHIZKRLjFNGWOauU4FWuayDj5h6IMSkqMcwgyTMC4nLaw== dependencies: "@ethersproject/abi" "^5.7.0" - "@moralisweb3/common-aptos-utils" "^2.18.4" - "@moralisweb3/common-core" "^2.18.4" - "@moralisweb3/common-evm-utils" "^2.18.4" + "@moralisweb3/common-aptos-utils" "^2.25.2" + "@moralisweb3/common-core" "^2.25.2" + "@moralisweb3/common-evm-utils" "^2.25.2" "@moralisweb3/streams-typings" "^1.0.7" -"@moralisweb3/evm-api@^2.14.3": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/evm-api/-/evm-api-2.18.4.tgz#df145c1b4c387ec4edf70065c6ec0bfa3aeef66c" - integrity sha512-rpoHJfVhDnTzDDJDxuk18qFu5mWkAO6987pwbyRnuzt5r8Sg+7T8vIfMPMXcovDKAyyRhh7ZUbf94A9T9DS/0g== +"@moralisweb3/evm-api@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/evm-api/-/evm-api-2.25.2.tgz#8b3e97916e2fc9cb9abbce307a8dae589bf1659d" + integrity sha512-/pD+8FLQjKpMNBQQrdMzxmPtOxYawyF6PKm5kJF0vrC+0wHH6JngZo0boC6FnJERLmz5c4eOffADUGc7Ri37Aw== dependencies: - "@moralisweb3/api-utils" "^2.18.4" - "@moralisweb3/common-core" "^2.18.4" - "@moralisweb3/common-evm-utils" "^2.18.4" + "@moralisweb3/api-utils" "^2.25.2" + "@moralisweb3/common-core" "^2.25.2" + "@moralisweb3/common-evm-utils" "^2.25.2" -"@moralisweb3/sol-api@^2.14.3": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/sol-api/-/sol-api-2.18.4.tgz#118a5f8214f920b093d3a742c60bb201c38cefd5" - integrity sha512-BUhfErEllot+zKzpABEDn+GhfVJWKc4DQO2XFXXnP28ki4V0WuU+YCoihgfxYQ+dvkt7fev9u4zhv4M2XO5xPA== +"@moralisweb3/sol-api@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/sol-api/-/sol-api-2.25.2.tgz#54a614fac950223b49fcd6414c1cd17bc53fea25" + integrity sha512-/4NMUC2DxQy59D6Z0RlvabAkPHTL2UsOZyCfa/lInW8gxFrJ0EByQdyWTlvl6ydRvolWN1nmJkl3Lnq9Misucw== dependencies: - "@moralisweb3/api-utils" "^2.18.4" - "@moralisweb3/common-core" "^2.18.4" - "@moralisweb3/common-sol-utils" "^2.18.4" + "@moralisweb3/api-utils" "^2.25.2" + "@moralisweb3/common-core" "^2.25.2" + "@moralisweb3/common-sol-utils" "^2.25.2" "@moralisweb3/streams-typings@^1.0.6", "@moralisweb3/streams-typings@^1.0.7": version "1.0.7" resolved "https://registry.yarnpkg.com/@moralisweb3/streams-typings/-/streams-typings-1.0.7.tgz#d8bec1f874f4a1db2f628bd389cd89a4d5736c09" integrity sha512-ShbVqil0KLOTyTjO6z9JewPcVVE3S6kzkQFnW2flGBRsGdKucpkUdOx1HijOLoaikz/9gH92n+lzTvRFIj0AoA== -"@moralisweb3/streams@^2.14.3": - version "2.18.4" - resolved "https://registry.yarnpkg.com/@moralisweb3/streams/-/streams-2.18.4.tgz#7764c4e71caacd372335c0b2f4769a6f910c3e6b" - integrity sha512-pQZuLFr5w8c/3yr0IRQib5hc3ldo54ht8eGh1JikA/wLXBMgG5NDPvTzCHlMC5f/HXbh5goNGLNxlp4NphrlQA== +"@moralisweb3/streams@^2.25.2": + version "2.25.2" + resolved "https://registry.yarnpkg.com/@moralisweb3/streams/-/streams-2.25.2.tgz#b3072bbdf9ea5b95c731e924a07acbf180090367" + integrity sha512-aVZ1RnHyPlCJCy7t8y4Y7+Ggjl+ZRWAgFFFvVPPs2q3AF+RM905Ij2BxwfWavfNKXkPIki8pJU4me2xl3ZrH3w== dependencies: "@ethersproject/abi" "^5.7.0" "@ethersproject/bignumber" "^5.7.0" "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" - "@moralisweb3/api-utils" "^2.18.4" - "@moralisweb3/common-core" "^2.18.4" - "@moralisweb3/common-evm-utils" "^2.18.4" - "@moralisweb3/common-streams-utils" "^2.18.4" + "@moralisweb3/api-utils" "^2.25.2" + "@moralisweb3/common-core" "^2.25.2" + "@moralisweb3/common-evm-utils" "^2.25.2" + "@moralisweb3/common-streams-utils" "^2.25.2" "@moralisweb3/streams-typings" "^1.0.7" ethereumjs-util "^7.1.0" web3-eth-abi "^1.8.0" @@ -12210,22 +12219,24 @@ moment@2.29.1: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== -moralis@2.14.3: - version "2.14.3" - resolved "https://registry.yarnpkg.com/moralis/-/moralis-2.14.3.tgz#17efd199cd8c6b497314a4ad343581978f632f0d" - integrity sha512-NyM/bcHBM0zay1f+YFzVkjkSVMleBI3xxgjpwQTNohNTHGaiiPRyJcE10GCAZANaBgvYsgljbUwpm2DaJvsxzg== - dependencies: - "@moralisweb3/api-utils" "^2.14.3" - "@moralisweb3/auth" "^2.14.3" - "@moralisweb3/common-auth-utils" "^2.14.3" - "@moralisweb3/common-core" "^2.14.3" - "@moralisweb3/common-evm-utils" "^2.14.3" - "@moralisweb3/common-sol-utils" "^2.14.3" - "@moralisweb3/common-streams-utils" "^2.14.3" - "@moralisweb3/evm-api" "^2.14.3" - "@moralisweb3/sol-api" "^2.14.3" - "@moralisweb3/streams" "^2.14.3" - "@moralisweb3/streams-typings" "^1.0.6" +moralis@2.25.2: + version "2.25.2" + resolved "https://registry.yarnpkg.com/moralis/-/moralis-2.25.2.tgz#b47d29674b75c0cd5772264730579d5d561d541e" + integrity sha512-S/94zl2Z8cILJ7oWMlj9RiRPXpFRaoyLDVdR0n/QhU6KIFT8sBacWvDq5ovkqCbap+C1QZek0C74D22WP7vdaw== + dependencies: + "@moralisweb3/api-utils" "^2.25.2" + "@moralisweb3/aptos-api" "^2.25.2" + "@moralisweb3/auth" "^2.25.2" + "@moralisweb3/common-aptos-utils" "^2.25.2" + "@moralisweb3/common-auth-utils" "^2.25.2" + "@moralisweb3/common-core" "^2.25.2" + "@moralisweb3/common-evm-utils" "^2.25.2" + "@moralisweb3/common-sol-utils" "^2.25.2" + "@moralisweb3/common-streams-utils" "^2.25.2" + "@moralisweb3/evm-api" "^2.25.2" + "@moralisweb3/sol-api" "^2.25.2" + "@moralisweb3/streams" "^2.25.2" + "@moralisweb3/streams-typings" "^1.0.7" ms@2.0.0: version "2.0.0"