From 5be22db77130633fe5c37c46b78df491a52672dd Mon Sep 17 00:00:00 2001 From: DarkRoku12 Date: Tue, 23 Apr 2024 22:17:49 -0400 Subject: [PATCH 001/237] Add Umoja to Options & Fees dashboard. --- fees/umoja/index.ts | 32 ++++++++++++++++++++++++++++++++ options/umoja/constants.ts | 9 +++++++++ options/umoja/index.ts | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 fees/umoja/index.ts create mode 100644 options/umoja/constants.ts create mode 100644 options/umoja/index.ts diff --git a/fees/umoja/index.ts b/fees/umoja/index.ts new file mode 100644 index 0000000000..96356a0ce2 --- /dev/null +++ b/fees/umoja/index.ts @@ -0,0 +1,32 @@ +import * as Fetch from "../../utils/fetchURL"; +import * as Chains from "../../helpers/chains"; +import * as Adapters from "../../adapters/types"; +import * as C from "../../options/umoja/constants"; + +const get_data = async (timestamp: number) => { + const url = `${C.base_endpoint}/tokens/performance/d-llama`; + const date = new Date(timestamp * 1000).toISOString(); + const params = { date: date, range: 24 * 60 * 60, token: "*" }; + const result = await Fetch.httpGet(url, { params: params }, { withMetadata: false }); + + return { + timestamp: timestamp, + dailyFees: result.fees, + totalFees: result.fees_to_date, + }; +}; + +const adapter: Adapters.SimpleAdapter = { + adapter: { + [Chains.ARBITRUM]: { + fetch: get_data, + start: async () => new Date(C.min_start_date).getTime() / 1000, + meta: { + methodology: C.methodology, + hallmarks: C.hallmarks, + }, + }, + }, +}; + +export default adapter; diff --git a/options/umoja/constants.ts b/options/umoja/constants.ts new file mode 100644 index 0000000000..9b54e28e78 --- /dev/null +++ b/options/umoja/constants.ts @@ -0,0 +1,9 @@ +const get_timestamp = (date: string) => new Date(date).getTime() / 1000; + +export const min_start_date = "2024-02-05"; +export const base_endpoint = "https://api.protocol.umoja.xyz"; +export const hallmarks: [[number, string]] = [[get_timestamp("2024-02-05"), "Beta Launch"]]; +export const methodology = { + Revenue: "All revenue generated comes from user fees.", + Fees: "All fees comes from synthetic option activation, which are about 1% of the notional value of option.", +}; diff --git a/options/umoja/index.ts b/options/umoja/index.ts new file mode 100644 index 0000000000..5f728109f0 --- /dev/null +++ b/options/umoja/index.ts @@ -0,0 +1,34 @@ +import * as Fetch from "../../utils/fetchURL"; +import * as Chains from "../../helpers/chains"; +import * as Adapters from "../../adapters/types"; +import * as C from "./constants"; + +const get_data = async (timestamp: number) => { + const url = `${C.base_endpoint}/tokens/performance/d-llama`; + const date = new Date(timestamp * 1000).toISOString(); + const params = { date: date, range: 24 * 60 * 60, token: "*" }; + const result = await Fetch.httpGet(url, { params: params }, { withMetadata: false }); + + return { + timestamp: timestamp, + totalPremiumVolume: result.fees_to_date, + totalNotionalVolume: result.notional_to_date, + dailyPremiumVolume: result.fees, + dailyNotionalVolume: result.notional, + }; +}; + +const adapter: Adapters.SimpleAdapter = { + adapter: { + [Chains.ARBITRUM]: { + fetch: get_data, + start: async () => new Date(C.min_start_date).getTime() / 1000, + meta: { + methodology: C.methodology, + hallmarks: C.hallmarks, + }, + }, + }, +}; + +export default adapter; From e4430af25fbb10989705f7bdd512774a80617025 Mon Sep 17 00:00:00 2001 From: Nicholas Maselli Date: Thu, 25 Jul 2024 00:59:27 -0400 Subject: [PATCH 002/237] adding saturn swap volume adaptor to defillama --- dexs/saturnswap/index.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 dexs/saturnswap/index.ts diff --git a/dexs/saturnswap/index.ts b/dexs/saturnswap/index.ts new file mode 100644 index 0000000000..d90d82d50d --- /dev/null +++ b/dexs/saturnswap/index.ts @@ -0,0 +1,27 @@ +import fetchURL from "../../utils/fetchURL"; +import { CHAIN } from "../../helpers/chains"; +import { FetchResultVolume, SimpleAdapter } from "../../adapters/types"; + +const fetch = async (timestamp: any): Promise => { + const startOfDay = timestamp.startOfDay; + const response: any = await fetchURL( + `https://api.saturnswap.io/v1/defillama/volume?timestamp=${startOfDay}` + ); + const dailyVolume = response.volume.volume; + return { + dailyVolume: `${dailyVolume}`, + timestamp: startOfDay, + }; +}; + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.CARDANO]: { + fetch, + start: 1718251200, + }, + }, +}; + +export default adapter; From 630168c5157838b2d0c545c8a30d9bcb319d9a4d Mon Sep 17 00:00:00 2001 From: CarterKraken <78686465+surfarosa@users.noreply.github.com> Date: Thu, 1 Aug 2024 01:34:27 +0700 Subject: [PATCH 003/237] addedSpaceWhaleDEX --- dexs/spacewhale/index.ts | 46 ++++++++++++++++++++++++++++++++++++ fees/spacewhale/index.ts | 51 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 dexs/spacewhale/index.ts create mode 100644 fees/spacewhale/index.ts diff --git a/dexs/spacewhale/index.ts b/dexs/spacewhale/index.ts new file mode 100644 index 0000000000..3b46b3e996 --- /dev/null +++ b/dexs/spacewhale/index.ts @@ -0,0 +1,46 @@ +import ADDRESSES from '../../helpers/coreAssets.json' +import { FetchResult, SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { gql, request } from "graphql-request"; +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; +import * as sdk from "@defillama/sdk"; + +interface IGraph { + volumeEth: string; + volumeUsdc: string; + id: string; +} + +const URL = 'https://api.studio.thegraph.com/query/84618/spacewhale1/0.0.4'; +const fetch = async (timestamp: number): Promise => { + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); + const chain = CHAIN.ARBITRUM; + const balances = new sdk.Balances({ chain, timestamp }) + const query = gql` + { + dayData(id: ${dayTimestamp * 1000}) { + volumeEth + volumeUsdc + } + }`; + const response: IGraph = (await request(URL, query)).dayData; + const element = response; + balances._add(ADDRESSES.arbitrum.USDC_CIRCLE, element.volumeUsdc); + balances._add(ADDRESSES.arbitrum.WETH, element.volumeEth); + + return { + dailyVolume: await balances.getUSDString(), + timestamp: dayTimestamp, + }; +} + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.ARBITRUM]: { + fetch: fetch, + start: async () => 1712109600, + }, + }, +}; + +export default adapter; diff --git a/fees/spacewhale/index.ts b/fees/spacewhale/index.ts new file mode 100644 index 0000000000..1d996ef0cf --- /dev/null +++ b/fees/spacewhale/index.ts @@ -0,0 +1,51 @@ +import ADDRESSES from '../../helpers/coreAssets.json' +import { FetchResult, SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { gql, request } from "graphql-request"; +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; +import * as sdk from "@defillama/sdk"; + +interface IGraph { + totalFeesEth: string; + totalFeesUsdc: string; + id: string; +} + +const URL = 'https://api.studio.thegraph.com/query/84618/spacewhale1/0.0.5'; + +const fetch = async (timestamp: number): Promise => { + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); + const chain = CHAIN.ARBITRUM; + const balances = new sdk.Balances({ chain, timestamp }); + const query = gql` + { + dayData(id: ${dayTimestamp * 1000}) { + totalFeesEth + totalFeesUsdc + id + } + }` + + const response: IGraph = (await request(URL, query)).dayData; + const element = response; + + balances._add(ADDRESSES.arbitrum.USDC_CIRCLE, element.totalFeesUsdc); + balances._add(ADDRESSES.arbitrum.WETH, element.totalFeesEth); + + return { + dailyFees: await balances.getUSDString(), + timestamp: dayTimestamp, + }; +} + +const adapter: SimpleAdapter = { + version: 1, + adapter: { + [CHAIN.ARBITRUM]: { + fetch: fetch, + start: async () => 1712109600, + }, + }, +}; + +export default adapter; \ No newline at end of file From fafa5a361265ea5d05a7c187199028398503a946 Mon Sep 17 00:00:00 2001 From: CarterKraken <78686465+surfarosa@users.noreply.github.com> Date: Thu, 1 Aug 2024 01:43:34 +0700 Subject: [PATCH 004/237] subGraphVersion --- dexs/spacewhale/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/spacewhale/index.ts b/dexs/spacewhale/index.ts index 3b46b3e996..ff7621824d 100644 --- a/dexs/spacewhale/index.ts +++ b/dexs/spacewhale/index.ts @@ -11,7 +11,7 @@ interface IGraph { id: string; } -const URL = 'https://api.studio.thegraph.com/query/84618/spacewhale1/0.0.4'; +const URL = 'https://api.studio.thegraph.com/query/84618/spacewhale1/0.0.5'; const fetch = async (timestamp: number): Promise => { const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); const chain = CHAIN.ARBITRUM; From 587fec60745928f661df416741eef0b5310a85a1 Mon Sep 17 00:00:00 2001 From: sdasda1z Date: Thu, 1 Aug 2024 14:18:58 +0800 Subject: [PATCH 005/237] fix: add cetus-aggregator --- aggregators/cetus-aggregator/index.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 aggregators/cetus-aggregator/index.ts diff --git a/aggregators/cetus-aggregator/index.ts b/aggregators/cetus-aggregator/index.ts new file mode 100644 index 0000000000..40752565fe --- /dev/null +++ b/aggregators/cetus-aggregator/index.ts @@ -0,0 +1,23 @@ +import { CHAIN } from "../../helpers/chains"; +import { httpGet } from "../../utils/fetchURL"; +import { FetchOptions } from "../../adapters/types"; + +const fetchVolume = async (options: FetchOptions) => { + const url = `https://api-sui.cetus.zone/v2/sui/aggregator_vol?startTimestamp=${options.startOfDay}&endTimestamp=${options.startOfDay}`; + const res = await httpGet(url); + return { + dailyVolume: res.data.list[0].totalUSD, + } +}; + +const adapter: any = { + version: 2, + adapter: { + [CHAIN.SUI]: { + fetch: fetchVolume, + start: 1721260800, + }, + }, +}; + +export default adapter; \ No newline at end of file From 801b57e93338dc00b48a9f6ff01ae94ec8202596 Mon Sep 17 00:00:00 2001 From: Pavel Shuvalov Date: Thu, 1 Aug 2024 11:31:06 +0200 Subject: [PATCH 006/237] Add DeDust fees --- fees/dedust/index.ts | 99 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 fees/dedust/index.ts diff --git a/fees/dedust/index.ts b/fees/dedust/index.ts new file mode 100644 index 0000000000..d9eef279e8 --- /dev/null +++ b/fees/dedust/index.ts @@ -0,0 +1,99 @@ +import { CHAIN } from '../../helpers/chains' +import { postURL } from "../../utils/fetchURL" + +const GRAPHQL_ENDPOINT = 'https://api.dedust.io/v3/graphql'; + +const POOLS_QUERY = ` +query GetPools($filter: PoolsFiltersInput) { + pools(filter: $filter) { + address + totalSupply + type + tradeFee + assets + reserves + fees + volume + } + } +`; + +const ASSETS_QUERY = ` +query GetAssets { + assets { + type + address + symbol + decimals + price + } + } +`; + +// LPs get 80% of fees +const FEES_PERCENT_TO_LP = 0.8; + +export default { + version: 2, + adapter: { + [CHAIN.TON]: { + runAtCurrTime: true, + start: 1700000000, + meta: { + methodology: { + UserFees: "User pays fee on each swap (depends on pool, 0.1% - 1%).", + Revenue: "Protocol receives 20% of fees, it is distributed among SCALE stakers.", + SupplySideRevenue: "80% of user fees are distributed among LPs.", + }, + }, + fetch: async () => { + console.log("Requesting assets list") + const assetsList = (await postURL(GRAPHQL_ENDPOINT, { + query: ASSETS_QUERY, + operationName: 'GetAssets' + })).data.assets; + + const assetInfo = {}; + for (const asset of assetsList) { + const address = asset.type == 'native' ? 'native' : 'jetton:' + asset.address; + assetInfo[address] = { + decimals: asset.decimals, + price: Number(asset.price), + symbol: asset.symbol + } + } + console.log(`Inited ${Object.keys(assetInfo).length} assets`); + + console.log("Requesting pools list") + const poolsList = (await postURL(GRAPHQL_ENDPOINT, { + query: POOLS_QUERY, + operationName: 'GetPools' + })).data.pools; + + let dailyFees = 0; + for (const pool of poolsList) { + const address = pool.address; + const leftAddr = pool.assets[0]; + const rightAddr = pool.assets[1]; + if (!(leftAddr in assetInfo && rightAddr in assetInfo)) { + console.warn("No assets info for pool", pool); + continue; + } + const left = assetInfo[leftAddr]; + const right = assetInfo[rightAddr]; + + dailyFees += (left.price * Number(pool.fees[0]) / Math.pow(10, left.decimals) + + right.price * Number(pool.fees[1]) / Math.pow(10, right.decimals)) / 2; + } + + + return { + dailyUserFees: dailyFees, + dailyFees: dailyFees, + dailySupplySideRevenue: dailyFees * FEES_PERCENT_TO_LP, + dailyRevenue: dailyFees * (1 - FEES_PERCENT_TO_LP) + } + }, + }, + }, +} From f42e284f3c8a754ce6f6b4bf23b571606712fefb Mon Sep 17 00:00:00 2001 From: roderick Date: Thu, 1 Aug 2024 18:34:07 +0800 Subject: [PATCH 007/237] feat: apex-omni --- dexs/apex-omni/index.ts | 66 +++++++++++++++++++++++++++++++++++++++++ fees/apex-omni.ts | 30 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 dexs/apex-omni/index.ts create mode 100644 fees/apex-omni.ts diff --git a/dexs/apex-omni/index.ts b/dexs/apex-omni/index.ts new file mode 100644 index 0000000000..8a8d575c65 --- /dev/null +++ b/dexs/apex-omni/index.ts @@ -0,0 +1,66 @@ +import fetchURL from "../../utils/fetchURL" +import { SimpleAdapter, Fetch } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; + +const historicalVolumeEndpoint = (symbol: string, endTime: number) => `https://omni.apex.exchange/api/v3/klines?end=${endTime}&interval=D&start=1718380800&symbol=${symbol}&limit=10` +const allTiker = (symbol: string) => `https://omni.apex.exchange/api/v3/ticker?symbol=${symbol}` +const getSumbols = async ()=>{ + const res = await fetchURL('https://omni.apex.exchange/api/v3/symbols') + const symbol = res?.data?.contractConfig?.perpetualContract?.map((i: any)=>i?.crossSymbolName) + return symbol || [] +} +interface IVolumeall { + id: string; + volume: string; + timestamp: number; + price: string; + volumeUSD: number; +} + +interface IOpenInterest { + id: string; + openInterest: string; + lastPrice: string; +} + +const getVolume = async (timestamp: number) => { + const _symbol: string[] = await getSumbols() + const symbol = [...new Set(_symbol)] + + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)) + const historical: any[] = (await Promise.all(symbol.map((coins: string) => fetchURL(historicalVolumeEndpoint(coins, dayTimestamp + 60 * 60 * 24))))) + .map((e: any) => Object.values(e.data)).flat().flat() + .map((e: any) => { return { timestamp: e.t / 1000, volume: e.v, price: e.c } }); + const openInterestHistorical: IOpenInterest[] = (await Promise.all(symbol.map((coins: string) => fetchURL(allTiker(coins))))) + .map((e: any) => e.data).flat().map((e: any) => { return { id: e.symbol, openInterest: e.openInterest, lastPrice: e.lastPrice } }); + const dailyOpenInterest = openInterestHistorical.reduce((a: number, { openInterest, lastPrice }) => a + Number(openInterest) * Number(lastPrice), 0); + const historicalUSD = historical.map((e: IVolumeall) => { + return { + ...e, + volumeUSD: Number(e.volume) * Number(e.price) + } + }); + const dailyVolume = historicalUSD.filter((e: IVolumeall) => e.timestamp === dayTimestamp) + .reduce((a: number, { volumeUSD }) => a + volumeUSD, 0); + const totalVolume = historicalUSD.filter((e: IVolumeall) => e.timestamp <= dayTimestamp) + .reduce((a: number, { volumeUSD }) => a + volumeUSD, 0); + + return { + totalVolume: `${totalVolume}`, + dailyOpenInterest: `${dailyOpenInterest}`, + dailyVolume: dailyVolume ? `${dailyVolume}` : undefined, + timestamp: dayTimestamp, + }; +}; + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.ETHEREUM]: { + fetch: getVolume, + start: 1718380800, + } + }, +}; + +export default adapter; diff --git a/fees/apex-omni.ts b/fees/apex-omni.ts new file mode 100644 index 0000000000..3fcc912dba --- /dev/null +++ b/fees/apex-omni.ts @@ -0,0 +1,30 @@ +import { FetchResultFees, SimpleAdapter } from "../adapters/types" +import { CHAIN } from "../helpers/chains"; +import { getTimestampAtStartOfDayUTC } from "../utils/date" +import fetchURL from "../utils/fetchURL" + + +interface IFees { + feeOfDate: string; +} +const fees = async (timestamp: number): Promise => { + const todaysTimestamp = getTimestampAtStartOfDayUTC(timestamp) * 1000; + const url = `https://omni.apex.exchange/api/v3/data/fee-by-date?time=${todaysTimestamp}`; + const feesData: IFees = (await fetchURL(url)).data; + const dailyFees = feesData?.feeOfDate || '0'; + return { + dailyFees: dailyFees, + dailyUserFees: dailyFees, + timestamp + } +} +const adapter: SimpleAdapter = { + version: 1, + adapter: { + [CHAIN.ETHEREUM]: { + fetch: fees, + start: 1693440000, + } + } +} +export default adapter; From fcb44bf0337fb2e14171633cfe141493f1d337e8 Mon Sep 17 00:00:00 2001 From: roderick Date: Fri, 2 Aug 2024 00:56:47 +0800 Subject: [PATCH 008/237] fix: ticker server --- dexs/apex-omni/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dexs/apex-omni/index.ts b/dexs/apex-omni/index.ts index 8a8d575c65..0bf1e56fd8 100644 --- a/dexs/apex-omni/index.ts +++ b/dexs/apex-omni/index.ts @@ -6,8 +6,8 @@ import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume const historicalVolumeEndpoint = (symbol: string, endTime: number) => `https://omni.apex.exchange/api/v3/klines?end=${endTime}&interval=D&start=1718380800&symbol=${symbol}&limit=10` const allTiker = (symbol: string) => `https://omni.apex.exchange/api/v3/ticker?symbol=${symbol}` const getSumbols = async ()=>{ - const res = await fetchURL('https://omni.apex.exchange/api/v3/symbols') - const symbol = res?.data?.contractConfig?.perpetualContract?.map((i: any)=>i?.crossSymbolName) + const res = await fetchURL('https://omni.apex.exchange/api/v3/all-open-tickers') + const symbol = res?.data?.map((i: any)=>i?.ticker_id) return symbol || [] } interface IVolumeall { From 79a6daf976eae70820b3783e8c6e9f5b6a1630b5 Mon Sep 17 00:00:00 2001 From: MevX Date: Fri, 2 Aug 2024 00:16:39 +0700 Subject: [PATCH 009/237] Add MevX fee trackers Add MevX fee trackers --- fees/mevx.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 fees/mevx.ts diff --git a/fees/mevx.ts b/fees/mevx.ts new file mode 100644 index 0000000000..42024d69ed --- /dev/null +++ b/fees/mevx.ts @@ -0,0 +1,27 @@ +import { FetchOptions, SimpleAdapter } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import { queryDune } from "../helpers/dune"; + +const fetch: any = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const value = (await queryDune("3958680", { + start: options.startTimestamp, + end: options.endTimestamp, + })); + dailyFees.add('So11111111111111111111111111111111111111112', value[0].fee_token_amount); + + return { dailyFees, dailyRevenue: dailyFees } +} + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.SOLANA]: { + fetch: fetch, + start: 0, + }, + }, + isExpensiveAdapter: true +}; + +export default adapter; \ No newline at end of file From 5d6c6c362406041cc7bf0fee4b4ceec4d14f762b Mon Sep 17 00:00:00 2001 From: Mario Reder Date: Fri, 2 Aug 2024 13:38:56 +0200 Subject: [PATCH 010/237] feat: orderly fee adapter --- fees/orderly/index.ts | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 fees/orderly/index.ts diff --git a/fees/orderly/index.ts b/fees/orderly/index.ts new file mode 100644 index 0000000000..fcee791643 --- /dev/null +++ b/fees/orderly/index.ts @@ -0,0 +1,37 @@ +import type { Adapter, FetchOptions } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; +import fetchURL from "../../utils/fetchURL"; + +const apiEVM = "https://api-evm.orderly.org/md/volume/daily_stats"; + +type DailyStats = { + volume: string; + date: string; + netFee: number; + dateString: string; + createdAt: string; + updatedAt: string; +}; + +const adapter: Adapter = { + adapter: { + [CHAIN.ARBITRUM]: { + start: async () => 1698278400, + fetch: async (__t: number, _: any, { startOfDay }: FetchOptions) => { + const t = getUniqStartOfTodayTimestamp(new Date(startOfDay * 1000)); + const data: DailyStats[] = await fetchURL(apiEVM); + const totalFee = data.reduce((acc, { netFee }) => acc + netFee, 0); + return { + timestamp: t, + dailyFee: data.find( + ({ createdAt }) => new Date(createdAt).valueOf() / 1_000 === t + )?.netFee, + totalFee, + }; + }, + }, + }, +}; + +export default adapter; From e7c9b7e7ab56072f8b65aa8a63a1a3b805faf640 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Fri, 2 Aug 2024 15:25:48 +0000 Subject: [PATCH 011/237] fix cetus --- .../cetus}/cetus-aggregator/index.ts | 12 ++++--- dexs/cetus/index.ts | 32 +++++++++++-------- 2 files changed, 26 insertions(+), 18 deletions(-) rename {aggregators => dexs/cetus}/cetus-aggregator/index.ts (65%) diff --git a/aggregators/cetus-aggregator/index.ts b/dexs/cetus/cetus-aggregator/index.ts similarity index 65% rename from aggregators/cetus-aggregator/index.ts rename to dexs/cetus/cetus-aggregator/index.ts index 40752565fe..2b99bdf473 100644 --- a/aggregators/cetus-aggregator/index.ts +++ b/dexs/cetus/cetus-aggregator/index.ts @@ -1,6 +1,6 @@ -import { CHAIN } from "../../helpers/chains"; -import { httpGet } from "../../utils/fetchURL"; -import { FetchOptions } from "../../adapters/types"; +import { CHAIN } from "../../../helpers/chains"; +import { httpGet } from "../../../utils/fetchURL"; +import { FetchOptions } from "../../../adapters/types"; const fetchVolume = async (options: FetchOptions) => { const url = `https://api-sui.cetus.zone/v2/sui/aggregator_vol?startTimestamp=${options.startOfDay}&endTimestamp=${options.startOfDay}`; @@ -10,7 +10,7 @@ const fetchVolume = async (options: FetchOptions) => { } }; -const adapter: any = { +const adapter_agge: any = { version: 2, adapter: { [CHAIN.SUI]: { @@ -20,4 +20,6 @@ const adapter: any = { }, }; -export default adapter; \ No newline at end of file +export { + adapter_agge, +} diff --git a/dexs/cetus/index.ts b/dexs/cetus/index.ts index c1055d7c72..d2edb27f07 100644 --- a/dexs/cetus/index.ts +++ b/dexs/cetus/index.ts @@ -1,8 +1,9 @@ import fetchURL from "../../utils/fetchURL" import { Chain } from "@defillama/sdk/build/general"; -import { SimpleAdapter } from "../../adapters/types"; +import { BreakdownAdapter, FetchOptions, SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; +import { adapter_agge } from './cetus-aggregator/index' type IUrl = { [s: string]: string; @@ -19,8 +20,8 @@ interface IVolumeall { } const fetch = (chain: Chain) => { - return async (timestamp: number) => { - const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)) + return async (options: FetchOptions) => { + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(options.endTimestamp * 1000)) const historicalVolume: IVolumeall[] = (await fetchURL(url[chain])).data.list; const totalVolume = historicalVolume .filter(volItem => (new Date(volItem.date.split('T')[0]).getTime() / 1000) <= dayTimestamp) @@ -39,17 +40,22 @@ const fetch = (chain: Chain) => { -const adapter: SimpleAdapter = { - adapter: { - [CHAIN.APTOS]: { - fetch: fetch(CHAIN.APTOS), - start: 1666224000, +const adapter: BreakdownAdapter = { + version: 2, + breakdown: { + cetus: { + [CHAIN.APTOS]: { + fetch: fetch(CHAIN.APTOS), + start: 1666224000, + }, + [CHAIN.SUI]: { + fetch: fetch(CHAIN.SUI), + start: 1682985600, + } }, - [CHAIN.SUI]: { - fetch: fetch(CHAIN.SUI), - start: 1682985600, - } - }, + "cetus-aggregator": adapter_agge.adapter + } + }; export default adapter; From 1303b61e97cc60af5f07e8f6e18ee6326e30eceb Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Fri, 2 Aug 2024 16:03:47 +0000 Subject: [PATCH 012/237] fix naming --- fees/orderly/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fees/orderly/index.ts b/fees/orderly/index.ts index fcee791643..f3c983e12a 100644 --- a/fees/orderly/index.ts +++ b/fees/orderly/index.ts @@ -24,10 +24,10 @@ const adapter: Adapter = { const totalFee = data.reduce((acc, { netFee }) => acc + netFee, 0); return { timestamp: t, - dailyFee: data.find( + dailyFees: data.find( ({ createdAt }) => new Date(createdAt).valueOf() / 1_000 === t )?.netFee, - totalFee, + totalFees: totalFee, }; }, }, From a1db41846d482716072fd0740175d81b45d1966b Mon Sep 17 00:00:00 2001 From: Matias Hermida <158588059+MatHermida@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:41:20 -0300 Subject: [PATCH 013/237] Add C3 Exchange Volumes --- dexs/c3-exchange/index.ts | 69 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 dexs/c3-exchange/index.ts diff --git a/dexs/c3-exchange/index.ts b/dexs/c3-exchange/index.ts new file mode 100644 index 0000000000..a98a24de66 --- /dev/null +++ b/dexs/c3-exchange/index.ts @@ -0,0 +1,69 @@ +import { + Adapter, + FetchOptions, + FetchResultV2, + FetchV2, +} from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import fetchURL from "../../utils/fetchURL"; + +const barsEndpoint = "https://api.c3.io/v1/markets/{id}/bars"; + +const ONE_DAY_IN_MILISECONDS = 60 * 60 * 24 * 1000; +const HALF_DAY_IN_MILISECONDS = ONE_DAY_IN_MILISECONDS / 2; + +const marketsOfChains = { + [CHAIN.ALGORAND]: ["ALGO-USDC"], + [CHAIN.AVAX]: ["AVAX-USDC"], + [CHAIN.BITCOIN]: ["WBTC-USDC"], + [CHAIN.ETHEREUM]: ["ETH-USDC"], + [CHAIN.ARBITRUM]: ["ARB-USDC"], + [CHAIN.BSC]: ["BNB-USDC"], + [CHAIN.SOLANA]: ["SOL-USDC", "PYTH-USDC", "W-USDC"], +}; + +async function fetchVolume({ chain, startOfDay }: FetchOptions): Promise { + const markets = marketsOfChains[chain]; + + const from = Math.floor(startOfDay) * 1000 - HALF_DAY_IN_MILISECONDS; + const to = Math.floor(startOfDay) * 1000 + HALF_DAY_IN_MILISECONDS; + const barsPromises = markets.map((market) => { + const endpoint = barsEndpoint.replace("{id}", market); + const url = `${endpoint}?from=${from}&to=${to}&granularity=1D`; + return fetchURL(url); + }); + + const volume24h = (await Promise.all(barsPromises)).reduce((acc, bars) => { + const last = bars[bars.length - 1]; + const quoteVolume = last?.quoteVolume ?? 0; + return acc + +quoteVolume; + }, 0); + + return { + dailyVolume: Math.round(volume24h), + timestamp: startOfDay, + }; +} + +function adapterConstructor(fetchVolumeFunc: FetchV2, chains: string[]): Adapter { + const chainVolumes = chains.reduce( + (obj, chain) => ({ + ...obj, + [chain]: { + fetch: fetchVolumeFunc, + start: 1688169600, // 2023-7-1 00:00:00 GMT + // runAtCurrTime: false, + }, + }), + {} + ); + + return { + version: 2, + adapter: chainVolumes, + }; +} + +const adapter: Adapter = adapterConstructor(fetchVolume, Object.keys(marketsOfChains)); + +export default adapter; From 6c90de9323525b6430b0b07854a517b4dacc41a0 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sat, 3 Aug 2024 15:56:00 +0000 Subject: [PATCH 014/237] fix filter pool tvl more than 100k --- dexs/orca/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dexs/orca/index.ts b/dexs/orca/index.ts index c82d735214..ba1a8bb646 100644 --- a/dexs/orca/index.ts +++ b/dexs/orca/index.ts @@ -5,7 +5,9 @@ const wpEndpoint = "https://api.mainnet.orca.so/v1/whirlpool/list"; async function fetch(timestamp: number) { const [whirlpools] = await Promise.all([httpGet(wpEndpoint)]); - const wpVol = whirlpools.whirlpools.reduce((sum: number, pool: any) => + const wpVol = whirlpools.whirlpools + .filter((pool: any) => pool?.tvl > 100_000) + .reduce((sum: number, pool: any) => sum + (pool?.volume?.day || 0) , 0); return { From 7e8fb8892272377777b3e737f0f4c2885ee3ddba Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 4 Aug 2024 14:36:38 +0000 Subject: [PATCH 015/237] allow run current --- fees/dedust/index.ts | 96 ++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/fees/dedust/index.ts b/fees/dedust/index.ts index d9eef279e8..2c3f01b6bf 100644 --- a/fees/dedust/index.ts +++ b/fees/dedust/index.ts @@ -1,3 +1,4 @@ +import { FetchResultV2 } from '../../adapters/types'; import { CHAIN } from '../../helpers/chains' import { postURL } from "../../utils/fetchURL" @@ -32,12 +33,56 @@ query GetAssets { // LPs get 80% of fees const FEES_PERCENT_TO_LP = 0.8; +const fetchFees = async (): Promise => { + const assetsList = (await postURL(GRAPHQL_ENDPOINT, { + query: ASSETS_QUERY, + operationName: 'GetAssets' + })).data.assets; + + const assetInfo = {}; + for (const asset of assetsList) { + const address = asset.type == 'native' ? 'native' : 'jetton:' + asset.address; + assetInfo[address] = { + decimals: asset.decimals, + price: Number(asset.price), + symbol: asset.symbol + } + } + + const poolsList = (await postURL(GRAPHQL_ENDPOINT, { + query: POOLS_QUERY, + operationName: 'GetPools' + })).data.pools; + + let dailyFees = 0; + for (const pool of poolsList) { + const address = pool.address; + const leftAddr = pool.assets[0]; + const rightAddr = pool.assets[1]; + if (!(leftAddr in assetInfo && rightAddr in assetInfo)) { + console.warn("No assets info for pool", pool); + continue; + } + const left = assetInfo[leftAddr]; + const right = assetInfo[rightAddr]; + + dailyFees += (left.price * Number(pool.fees[0]) / Math.pow(10, left.decimals) + + right.price * Number(pool.fees[1]) / Math.pow(10, right.decimals)) / 2; + } + + + return { + dailyUserFees: dailyFees, + dailyFees: dailyFees, + dailySupplySideRevenue: dailyFees * FEES_PERCENT_TO_LP, + dailyRevenue: dailyFees * (1 - FEES_PERCENT_TO_LP) + } +} export default { version: 2, adapter: { [CHAIN.TON]: { - runAtCurrTime: true, start: 1700000000, meta: { methodology: { @@ -46,54 +91,7 @@ export default { SupplySideRevenue: "80% of user fees are distributed among LPs.", }, }, - fetch: async () => { - console.log("Requesting assets list") - const assetsList = (await postURL(GRAPHQL_ENDPOINT, { - query: ASSETS_QUERY, - operationName: 'GetAssets' - })).data.assets; - - const assetInfo = {}; - for (const asset of assetsList) { - const address = asset.type == 'native' ? 'native' : 'jetton:' + asset.address; - assetInfo[address] = { - decimals: asset.decimals, - price: Number(asset.price), - symbol: asset.symbol - } - } - console.log(`Inited ${Object.keys(assetInfo).length} assets`); - - console.log("Requesting pools list") - const poolsList = (await postURL(GRAPHQL_ENDPOINT, { - query: POOLS_QUERY, - operationName: 'GetPools' - })).data.pools; - - let dailyFees = 0; - for (const pool of poolsList) { - const address = pool.address; - const leftAddr = pool.assets[0]; - const rightAddr = pool.assets[1]; - if (!(leftAddr in assetInfo && rightAddr in assetInfo)) { - console.warn("No assets info for pool", pool); - continue; - } - const left = assetInfo[leftAddr]; - const right = assetInfo[rightAddr]; - - dailyFees += (left.price * Number(pool.fees[0]) / Math.pow(10, left.decimals) - + right.price * Number(pool.fees[1]) / Math.pow(10, right.decimals)) / 2; - } - - - return { - dailyUserFees: dailyFees, - dailyFees: dailyFees, - dailySupplySideRevenue: dailyFees * FEES_PERCENT_TO_LP, - dailyRevenue: dailyFees * (1 - FEES_PERCENT_TO_LP) - } - }, + fetch: fetchFees, }, }, } From b3fa23db247f72c521bfe7af84f80b78830ccb31 Mon Sep 17 00:00:00 2001 From: sdasda1z Date: Mon, 5 Aug 2024 15:39:25 +0800 Subject: [PATCH 016/237] fix: update cetus --- dexs/cetus/index.ts | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/dexs/cetus/index.ts b/dexs/cetus/index.ts index d2edb27f07..ce4ab0f8d1 100644 --- a/dexs/cetus/index.ts +++ b/dexs/cetus/index.ts @@ -6,14 +6,25 @@ import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume import { adapter_agge } from './cetus-aggregator/index' type IUrl = { - [s: string]: string; + [s: string]: { + countUrl: string, + histogramUrl: string, + }; } + const url: IUrl = { - [CHAIN.APTOS]: "https://api.cetus.zone/v1/histogram?date_type=day&typ=vol", - [CHAIN.SUI]: "https://api-sui.cetus.zone/v2/sui/histogram?date_type=day&typ=vol" + [CHAIN.APTOS]: { + countUrl: 'https://api.cetus.zone/v2/swap/count', + histogramUrl: "https://api.cetus.zone/v2/histogram?date_type=day&typ=vol&limit=99999", + }, + [CHAIN.SUI]: { + countUrl: 'https://api-sui.cetus.zone/v2/sui/swap/count/v3', + histogramUrl: "https://api-sui.cetus.zone/v2/sui/histogram?date_type=day&typ=vol&limit=99999" + } } + interface IVolumeall { num: string; date: string; @@ -22,14 +33,10 @@ interface IVolumeall { const fetch = (chain: Chain) => { return async (options: FetchOptions) => { const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(options.endTimestamp * 1000)) - const historicalVolume: IVolumeall[] = (await fetchURL(url[chain])).data.list; - const totalVolume = historicalVolume - .filter(volItem => (new Date(volItem.date.split('T')[0]).getTime() / 1000) <= dayTimestamp) - .reduce((acc, { num }) => acc + Number(num), 0) - + const historicalVolume: IVolumeall[] = (await fetchURL(url[chain].histogramUrl)).data.list; + const totalVolume = (await fetchURL(url[chain].countUrl)).data.vol_in_usd const dailyVolume = historicalVolume .find(dayItem => (new Date(dayItem.date.split('T')[0]).getTime() / 1000) === dayTimestamp)?.num - return { totalVolume: `${totalVolume}`, dailyVolume: dailyVolume ? `${dailyVolume}` : undefined, @@ -40,6 +47,7 @@ const fetch = (chain: Chain) => { + const adapter: BreakdownAdapter = { version: 2, breakdown: { @@ -58,4 +66,4 @@ const adapter: BreakdownAdapter = { }; -export default adapter; +export default adapter; \ No newline at end of file From 034ea465cea0db3661ee711ac57404acb9e1a091 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Mon, 5 Aug 2024 12:21:57 +0100 Subject: [PATCH 017/237] rewrite ethena not to use indexer --- fees/ethena.ts | 64 ++++++++++++++++++++------------------------------ 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/fees/ethena.ts b/fees/ethena.ts index 90f5e031a3..31d7047383 100644 --- a/fees/ethena.ts +++ b/fees/ethena.ts @@ -1,6 +1,8 @@ +import { ethers } from "ethers"; import { FetchOptions, SimpleAdapter } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; -import { queryIndexer } from "../helpers/indexer"; + +const usdt = "0xdac17f958d2ee523a2206206994597c13d831ec7" const mint_event = "event Mint( address indexed minter,address indexed benefactor,address indexed beneficiary,address collateral_asset,uint256 collateral_amount,uint256 usde_amount)"; @@ -9,50 +11,36 @@ const fetch = async (options: FetchOptions) => { eventAbi: mint_event, target: "0x2cc440b721d2cafd6d64908d6d8c4acc57f8afc3", }); - const in_flow = await queryIndexer( - ` - SELECT - '0x' || encode(data, 'hex') AS data, - '0x' || encode(contract_address, 'hex') AS token - FROM - ethereum.event_logs - WHERE - block_number > 18637861 - AND contract_address NOT IN ('\\x4c9edd5852cd905f086c759e8383e09bff1e68b3') - AND topic_0 = '\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef' - AND topic_1 NOT IN ('\\x00000000000000000000000071e4f98e8f20c88112489de3dded4489802a3a87', '\\x0000000000000000000000002b5ab59163a6e93b4486f6055d33ca4a115dd4d5') - AND topic_2 in ('\\x00000000000000000000000071e4f98e8f20c88112489de3dded4489802a3a87', '\\x0000000000000000000000002b5ab59163a6e93b4486f6055d33ca4a115dd4d5') - AND block_time BETWEEN llama_replace_date_range; -`, - options - ); + const in_flow = (await options.getLogs({ + targets: [usdt], + flatten: false, + eventAbi: 'event Transfer (address indexed from, address indexed to, uint256 value)', + topics: ['0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', null, [ + ethers.zeroPadValue("0x71e4f98e8f20c88112489de3dded4489802a3a87", 32), + ethers.zeroPadValue("0x2b5ab59163a6e93b4486f6055d33ca4a115dd4d5", 32), + ]] as any, + }))[0].filter((log:any[])=>!["0x71e4f98e8f20c88112489de3dded4489802a3a87", "0x2b5ab59163a6e93b4486f6055d33ca4a115dd4d5"] + .some(a=>a.toLowerCase() === log[0].toLowerCase())) + + const out_flow = (await options.getLogs({ + targets: [usdt], + flatten: false, + eventAbi: 'event Transfer (address indexed from, address indexed to, uint256 value)', + topics: ['0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', null, [ + ethers.zeroPadValue("0xf2fa332bd83149c66b09b45670bce64746c6b439", 32), + ]] as any, + }))[0] - const out_flow = await queryIndexer( - ` - SELECT - '0x' || encode(data, 'hex') AS data, - '0x' || encode(contract_address, 'hex') AS token - FROM - ethereum.event_logs - WHERE - block_number > 18637861 - AND contract_address NOT IN ('\\x4c9edd5852cd905f086c759e8383e09bff1e68b3') - AND topic_0 = '\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef' - AND topic_2 in ('\\x000000000000000000000000f2fa332bd83149c66b09b45670bce64746c6b439') - AND block_time BETWEEN llama_replace_date_range; -`, - options - ); const dailyFeesInflow = options.createBalances(); const supplyRewards = options.createBalances(); in_flow.map((log: any) => { - const amount = Number(log.data); - dailyFeesInflow.add(log.token, amount); + const amount = Number(log.value); + dailyFeesInflow.add(usdt, amount); }); out_flow.map((log: any) => { - const amount = Number(log.data); - supplyRewards.add(log.token, amount); + const amount = Number(log.value); + supplyRewards.add(usdt, amount); }); const dailyFeesMint = options.createBalances(); logs.map((log) => { From dd642bd612d627856646019f796ee6c5e87474ef Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Mon, 5 Aug 2024 12:30:20 +0100 Subject: [PATCH 018/237] use v1 --- fees/ethena.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/ethena.ts b/fees/ethena.ts index 31d7047383..7de8454b4a 100644 --- a/fees/ethena.ts +++ b/fees/ethena.ts @@ -58,7 +58,7 @@ const fetch = async (options: FetchOptions) => { }; const adapters: SimpleAdapter = { - version: 2, + // version v1 because if we track expenses but not income it leads to wrong data, need to include both adapter: { [CHAIN.ETHEREUM]: { fetch: fetch, From 26149d1b002e368d10dcfc3f0e67121386cb8fba Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Mon, 5 Aug 2024 12:40:38 +0100 Subject: [PATCH 019/237] fix for v1 --- fees/ethena.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fees/ethena.ts b/fees/ethena.ts index 7de8454b4a..3cef12538e 100644 --- a/fees/ethena.ts +++ b/fees/ethena.ts @@ -1,12 +1,12 @@ import { ethers } from "ethers"; -import { FetchOptions, SimpleAdapter } from "../adapters/types"; +import { FetchOptions } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; const usdt = "0xdac17f958d2ee523a2206206994597c13d831ec7" const mint_event = "event Mint( address indexed minter,address indexed benefactor,address indexed beneficiary,address collateral_asset,uint256 collateral_amount,uint256 usde_amount)"; -const fetch = async (options: FetchOptions) => { +const fetch = async (toTimestamp:number, chainBlocks:any, options: FetchOptions) => { const logs = await options.getLogs({ eventAbi: mint_event, target: "0x2cc440b721d2cafd6d64908d6d8c4acc57f8afc3", @@ -57,7 +57,7 @@ const fetch = async (options: FetchOptions) => { }; }; -const adapters: SimpleAdapter = { +const adapters = { // version v1 because if we track expenses but not income it leads to wrong data, need to include both adapter: { [CHAIN.ETHEREUM]: { From e315f1c7e0da1639efd444254467b5a77a0030c1 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 5 Aug 2024 15:03:02 +0000 Subject: [PATCH 020/237] fix stuck --- dexs/meteora/index.ts | 14 +++++++------- fees/apex-omni.ts | 12 ++++++------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dexs/meteora/index.ts b/dexs/meteora/index.ts index 741f360d68..82f0694c05 100644 --- a/dexs/meteora/index.ts +++ b/dexs/meteora/index.ts @@ -19,18 +19,18 @@ async function fetch(timestamp: number): Promise { let dailyVolume = 0; let page = 0; try { - while (true) { - const url = `${meteoraStatsEndpoint}?page=${page}&size=500`; + // while (true) { + const url = `${meteoraStatsEndpoint}?page=${page}&size=100000`; const response:Pool = (await httpGet(url)); response.data.forEach(pool => { dailyVolume += pool.trading_volume; }) - if (response.data.length < 500) { - break; - } - if (page > 50) break; + // if (response.data.length < 500) { + // break; + // } + // if (page > 50) break; page++; - } + // } return { dailyVolume: dailyVolume, timestamp: timestamp diff --git a/fees/apex-omni.ts b/fees/apex-omni.ts index 3fcc912dba..f5180359be 100644 --- a/fees/apex-omni.ts +++ b/fees/apex-omni.ts @@ -1,21 +1,21 @@ -import { FetchResultFees, SimpleAdapter } from "../adapters/types" +import { FetchOptions, FetchResultFees, SimpleAdapter } from "../adapters/types" import { CHAIN } from "../helpers/chains"; import { getTimestampAtStartOfDayUTC } from "../utils/date" -import fetchURL from "../utils/fetchURL" +import fetchURL, { httpGet } from "../utils/fetchURL" interface IFees { feeOfDate: string; } -const fees = async (timestamp: number): Promise => { - const todaysTimestamp = getTimestampAtStartOfDayUTC(timestamp) * 1000; +const fees = async (_:any, _b: any, options: FetchOptions): Promise => { + const todaysTimestamp = getTimestampAtStartOfDayUTC(options.startOfDay) * 1000; const url = `https://omni.apex.exchange/api/v3/data/fee-by-date?time=${todaysTimestamp}`; - const feesData: IFees = (await fetchURL(url)).data; + const feesData: IFees = (await httpGet(url, { timeout: 10000 })).data; const dailyFees = feesData?.feeOfDate || '0'; return { dailyFees: dailyFees, dailyUserFees: dailyFees, - timestamp + timestamp: todaysTimestamp } } const adapter: SimpleAdapter = { From 5bbf8a3633a04c6d89a43898bf90939d54c4981f Mon Sep 17 00:00:00 2001 From: MatHermida Date: Mon, 5 Aug 2024 12:40:25 -0300 Subject: [PATCH 021/237] add methodology --- dexs/c3-exchange/index.ts | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/dexs/c3-exchange/index.ts b/dexs/c3-exchange/index.ts index a98a24de66..fae2cae3a2 100644 --- a/dexs/c3-exchange/index.ts +++ b/dexs/c3-exchange/index.ts @@ -1,5 +1,6 @@ import { Adapter, + BaseAdapter, FetchOptions, FetchResultV2, FetchV2, @@ -22,7 +23,10 @@ const marketsOfChains = { [CHAIN.SOLANA]: ["SOL-USDC", "PYTH-USDC", "W-USDC"], }; -async function fetchVolume({ chain, startOfDay }: FetchOptions): Promise { +async function fetchVolume({ + chain, + startOfDay, +}: FetchOptions): Promise { const markets = marketsOfChains[chain]; const from = Math.floor(startOfDay) * 1000 - HALF_DAY_IN_MILISECONDS; @@ -45,14 +49,22 @@ async function fetchVolume({ chain, startOfDay }: FetchOptions): Promise ({ ...obj, [chain]: { fetch: fetchVolumeFunc, start: 1688169600, // 2023-7-1 00:00:00 GMT // runAtCurrTime: false, + meta: { + methodology: { + dailyVolume: "Volume is calculated by summing the quote token volume of all trades settled on the protocol that day.", + } + }, }, }), {} @@ -64,6 +76,9 @@ function adapterConstructor(fetchVolumeFunc: FetchV2, chains: string[]): Adapter }; } -const adapter: Adapter = adapterConstructor(fetchVolume, Object.keys(marketsOfChains)); +const adapter: Adapter = adapterConstructor( + fetchVolume, + Object.keys(marketsOfChains) +); export default adapter; From dfc2a420da6e26b82f051c27d87f6e172065d9c6 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 5 Aug 2024 15:48:21 +0000 Subject: [PATCH 022/237] allow runcurrent --- dexs/drift-protocol/index.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/dexs/drift-protocol/index.ts b/dexs/drift-protocol/index.ts index 693caf35cf..e4155afe5f 100644 --- a/dexs/drift-protocol/index.ts +++ b/dexs/drift-protocol/index.ts @@ -104,14 +104,12 @@ const adapter: BreakdownAdapter = { swap: { [CHAIN.SOLANA]: { fetch: () => fetch("spot"), - runAtCurrTime: true, start: 1690239600, }, }, derivatives: { [CHAIN.SOLANA]: { fetch: () => fetch("perp"), - runAtCurrTime: true, start: 1690239600, }, }, From dc6c7c4d19fca0944dddd25718c5b31f27f0085f Mon Sep 17 00:00:00 2001 From: K-Lascar <36436810+K-Lascar@users.noreply.github.com> Date: Tue, 6 Aug 2024 15:01:52 +1000 Subject: [PATCH 023/237] Update GMX V2 Volume and Swaps Tracking --- dexs/gmx-v2/index.ts | 130 +++++++++++++++++++++++-------------------- 1 file changed, 71 insertions(+), 59 deletions(-) diff --git a/dexs/gmx-v2/index.ts b/dexs/gmx-v2/index.ts index 2f7ef9892c..8852dcd96d 100644 --- a/dexs/gmx-v2/index.ts +++ b/dexs/gmx-v2/index.ts @@ -1,77 +1,89 @@ -import { BreakdownAdapter, FetchOptions, FetchResultV2, FetchResultVolume } from "../../adapters/types"; +import request, { gql } from "graphql-request"; +import { BreakdownAdapter, Fetch, SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; -import { Chain } from "@defillama/sdk/build/general"; -import { adapter_trade } from './gmx-v2-trade/index' +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; - -interface ILog { - data: string; - transactionHash: string; - topics: string[]; +const endpoints: { [key: string]: string } = { + [CHAIN.ARBITRUM]: "https://subgraph.satsuma-prod.com/3b2ced13c8d9/gmx/synthetics-arbitrum-stats/api", + [CHAIN.AVAX]: "https://subgraph.satsuma-prod.com/3b2ced13c8d9/gmx/synthetics-avalanche-stats/api", } -const topic0_ins = '0x137a44067c8961cd7e1d876f4754a5a3a75989b4552f1843fc69c3b372def160'; -const topic1_ins = '0xf35c99b746450c623be607459294d15f458678f99d535718db6cfcbccb117c09'; - -interface IToken { - amount: number; - token: string; -} +const historicalDataSwap = gql` + query get_volume($period: String!, $id: String!) { + volumeInfos(where: {period: $period, id: $id}) { + swapVolumeUsd + } + } +` -type TChain = { - [s: Chain | string]: string; -} +const historicalDataDerivatives = gql` + query get_volume($period: String!, $id: String!) { + volumeStats(where: {period: $period, id: $id}) { + marginVolumeUsd + } + } +` -const contract: TChain = { - [CHAIN.ARBITRUM]: '0xc8ee91a54287db53897056e12d9819156d3822fb', - [CHAIN.AVAX]: '0xdb17b211c34240b014ab6d61d4a31fa0c0e20c26' +interface IGraphResponse { + volumeStats: Array<{ + marginVolumeUsd: string, + swapVolumeUsd: string, + }> } -const fetch = async (options: FetchOptions): Promise => { - const dailyVolume = options.createBalances(); - const swap_logs: ILog[] = await options.getLogs({ - target: contract[options.chain], - topics: [topic0_ins, topic1_ins], - }); - const raw_in = swap_logs.map((e: ILog) => { - const data = e.data.replace('0x', ''); - const volume = Number('0x' + data.slice(53 * 64, (53 * 64) + 64)); - const address = data.slice(27 * 64, (27 * 64) + 64); - const contract_address = '0x' + address.slice(24, address.length); - return { - amount: volume, - token: contract_address, - } as IToken - }) - - raw_in.map((e: IToken) => { - dailyVolume.add(e.token, e.amount) - }) +const getFetch = (query: string)=> (chain: string): Fetch => async (timestamp: number) => { + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date((timestamp * 1000))) + const dailyData: IGraphResponse = await request(endpoints[chain], query, { + id: '1d:' + chain === CHAIN.ARBITRUM + ? String(dayTimestamp) + : String(dayTimestamp), + period: '1d', + }) + const totalData: IGraphResponse = await request(endpoints[chain], query, { + id: 'total', + period: 'total', + }) - return { - dailyVolume: dailyVolume, - } + return { + timestamp: dayTimestamp, + dailyVolume: + dailyData.volumeStats.length == 1 + ? String(Number(Object.values(dailyData.volumeStats[0]).reduce((sum, element) => String(Number(sum) + Number(element)))) * 10 ** -30) + : undefined, + totalVolume: + totalData.volumeStats.length == 1 + ? String(Number(Object.values(totalData.volumeStats[0]).reduce((sum, element) => String(Number(sum) + Number(element)))) * 10 ** -30) + : undefined, + } } - -const adapter: any = { - adapter: { - [CHAIN.ARBITRUM]: { - fetch: fetch, - start: 1688428800, - }, - [CHAIN.AVAX]: { - fetch: fetch, - start: 1688428800, - }, - }, -}; +const startTimestamps: { [chain: string]: number } = { + [CHAIN.ARBITRUM]: 1630368000, + [CHAIN.AVAX]: 1640131200, +} const adapters: BreakdownAdapter = { version: 2, breakdown: { - "gmx-v2-swap": adapter["adapter"], - "gmx-v2-trade": adapter_trade["adapter"], + "swap": Object.keys(endpoints).reduce((acc, chain) => { + return { + ...acc, + [chain]: { + fetch: getFetch(historicalDataSwap)(chain), + start: startTimestamps[chain] + } + } + }, {}), + "derivatives": Object.keys(endpoints).reduce((acc, chain) => { + return { + ...acc, + [chain]: { + fetch: getFetch(historicalDataDerivatives)(chain), + start: startTimestamps[chain] + } + } + }, {}) } } + export default adapters; From 76e5e40d5d28a3c89fb0f5e7f657105b4adae5c8 Mon Sep 17 00:00:00 2001 From: K-Lascar <36436810+K-Lascar@users.noreply.github.com> Date: Tue, 6 Aug 2024 15:02:09 +1000 Subject: [PATCH 024/237] Delete dexs/gmx-v2/gmx-v2-trade directory --- dexs/gmx-v2/gmx-v2-trade/index.ts | 59 ------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 dexs/gmx-v2/gmx-v2-trade/index.ts diff --git a/dexs/gmx-v2/gmx-v2-trade/index.ts b/dexs/gmx-v2/gmx-v2-trade/index.ts deleted file mode 100644 index 2d3c0d96ef..0000000000 --- a/dexs/gmx-v2/gmx-v2-trade/index.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { FetchOptions, FetchResultV2 } from "../../../adapters/types"; -import { CHAIN } from "../../../helpers/chains"; -import { Chain } from "@defillama/sdk/build/general"; - -interface ILog { - data: string; - transactionHash: string; - topics: string[]; -} - -const topic0_trades = '0x137a44067c8961cd7e1d876f4754a5a3a75989b4552f1843fc69c3b372def160'; -const topic1_trades = '0xe096982abd597114bdaa4a60612f87fabfcc7206aa12d61c50e7ba1e6c291100'; - -type TChain = { - [s: Chain | string]: string; -} - -const contract: TChain = { - [CHAIN.ARBITRUM]: '0xc8ee91a54287db53897056e12d9819156d3822fb', - [CHAIN.AVAX]: '0xdb17b211c34240b014ab6d61d4a31fa0c0e20c26' -} - -const fetch = async (options: FetchOptions): Promise => { - const trade_logs = await options.getLogs({ - target: contract[options.chain], - topics: [topic0_trades, topic1_trades] - }); - - let hash: string[] = []; - const raw_trades = trade_logs.map((e: ILog) => { - const data = e.data.replace('0x', ''); - const volume = data.slice(81 * 64, (81 * 64) + 64); - return Number('0x' + volume) / 1e30; - }) - - const dailyVolume: number = [...raw_trades] - .reduce((a: number, b: number) => a + b, 0); - - return { - dailyVolume: `${dailyVolume}`, - } -} - - -const adapter_trade: any = { - adapter: { - [CHAIN.ARBITRUM]: { - fetch: fetch, - start: 1688428800, - }, - [CHAIN.AVAX]: { - fetch: fetch, - start: 1688428800, - }, - }, -}; -export { - adapter_trade -} From cf665f2746a1c635e6dced3b82793f4c4bae01da Mon Sep 17 00:00:00 2001 From: K-Lascar <36436810+K-Lascar@users.noreply.github.com> Date: Tue, 6 Aug 2024 15:15:23 +1000 Subject: [PATCH 025/237] Fix interface --- dexs/gmx-v2/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dexs/gmx-v2/index.ts b/dexs/gmx-v2/index.ts index 8852dcd96d..3daa5ec2f1 100644 --- a/dexs/gmx-v2/index.ts +++ b/dexs/gmx-v2/index.ts @@ -18,14 +18,14 @@ const historicalDataSwap = gql` const historicalDataDerivatives = gql` query get_volume($period: String!, $id: String!) { - volumeStats(where: {period: $period, id: $id}) { + volumeInfos(where: {period: $period, id: $id}) { marginVolumeUsd } } ` interface IGraphResponse { - volumeStats: Array<{ + volumeInfos: Array<{ marginVolumeUsd: string, swapVolumeUsd: string, }> @@ -62,7 +62,7 @@ const startTimestamps: { [chain: string]: number } = { [CHAIN.AVAX]: 1640131200, } -const adapters: BreakdownAdapter = { +const adapter: BreakdownAdapter = { version: 2, breakdown: { "swap": Object.keys(endpoints).reduce((acc, chain) => { @@ -86,4 +86,4 @@ const adapters: BreakdownAdapter = { } } -export default adapters; +export default adapter; From f589b8066097f2883b648e0bfb018f69da34b708 Mon Sep 17 00:00:00 2001 From: K-Lascar <36436810+K-Lascar@users.noreply.github.com> Date: Tue, 6 Aug 2024 15:19:23 +1000 Subject: [PATCH 026/237] Update index.ts --- dexs/gmx-v2/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dexs/gmx-v2/index.ts b/dexs/gmx-v2/index.ts index 3daa5ec2f1..8ce6dc69b4 100644 --- a/dexs/gmx-v2/index.ts +++ b/dexs/gmx-v2/index.ts @@ -48,11 +48,11 @@ const getFetch = (query: string)=> (chain: string): Fetch => async (timestamp: n timestamp: dayTimestamp, dailyVolume: dailyData.volumeStats.length == 1 - ? String(Number(Object.values(dailyData.volumeStats[0]).reduce((sum, element) => String(Number(sum) + Number(element)))) * 10 ** -30) + ? String(Number(Object.values(dailyData.volumeInfos[0]).reduce((sum, element) => String(Number(sum) + Number(element)))) * 10 ** -30) : undefined, totalVolume: totalData.volumeStats.length == 1 - ? String(Number(Object.values(totalData.volumeStats[0]).reduce((sum, element) => String(Number(sum) + Number(element)))) * 10 ** -30) + ? String(Number(Object.values(totalData.volumeInfos[0]).reduce((sum, element) => String(Number(sum) + Number(element)))) * 10 ** -30) : undefined, } } From 87dac85e983a27cd40d60ea76212424ffc22ea36 Mon Sep 17 00:00:00 2001 From: K-Lascar <36436810+K-Lascar@users.noreply.github.com> Date: Tue, 6 Aug 2024 15:21:01 +1000 Subject: [PATCH 027/237] Fix dailyData pulling from volumeInfo --- dexs/gmx-v2/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dexs/gmx-v2/index.ts b/dexs/gmx-v2/index.ts index 8ce6dc69b4..e4b7b75235 100644 --- a/dexs/gmx-v2/index.ts +++ b/dexs/gmx-v2/index.ts @@ -47,11 +47,11 @@ const getFetch = (query: string)=> (chain: string): Fetch => async (timestamp: n return { timestamp: dayTimestamp, dailyVolume: - dailyData.volumeStats.length == 1 + dailyData.volumeInfos.length == 1 ? String(Number(Object.values(dailyData.volumeInfos[0]).reduce((sum, element) => String(Number(sum) + Number(element)))) * 10 ** -30) : undefined, totalVolume: - totalData.volumeStats.length == 1 + totalData.volumeInfos.length == 1 ? String(Number(Object.values(totalData.volumeInfos[0]).reduce((sum, element) => String(Number(sum) + Number(element)))) * 10 ** -30) : undefined, } From 0b1aeacd22ce2354d12a908dbda1d5578dbd1179 Mon Sep 17 00:00:00 2001 From: K-Lascar <36436810+K-Lascar@users.noreply.github.com> Date: Tue, 6 Aug 2024 15:31:46 +1000 Subject: [PATCH 028/237] Add methodology. --- dexs/gmx-v2/index.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dexs/gmx-v2/index.ts b/dexs/gmx-v2/index.ts index e4b7b75235..2b65432774 100644 --- a/dexs/gmx-v2/index.ts +++ b/dexs/gmx-v2/index.ts @@ -62,6 +62,13 @@ const startTimestamps: { [chain: string]: number } = { [CHAIN.AVAX]: 1640131200, } +const methodology = { + dailyVolume: + "Sum of daily total volume for all markets on a given day.", + totalVolume: + "Sum of overall total volume for all markets since inception." +} + const adapter: BreakdownAdapter = { version: 2, breakdown: { @@ -70,7 +77,8 @@ const adapter: BreakdownAdapter = { ...acc, [chain]: { fetch: getFetch(historicalDataSwap)(chain), - start: startTimestamps[chain] + start: startTimestamps[chain], + meta: {methodology} } } }, {}), @@ -79,7 +87,8 @@ const adapter: BreakdownAdapter = { ...acc, [chain]: { fetch: getFetch(historicalDataDerivatives)(chain), - start: startTimestamps[chain] + start: startTimestamps[chain], + meta: {methodology} } } }, {}) From d8c30fd170913c6e10eaa3f9f183b08c4eae221c Mon Sep 17 00:00:00 2001 From: K-Lascar <36436810+K-Lascar@users.noreply.github.com> Date: Tue, 6 Aug 2024 18:16:23 +1000 Subject: [PATCH 029/237] Add in Base Fees for Radiant --- fees/radiant.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fees/radiant.ts b/fees/radiant.ts index 3fa4c2506c..bd84077234 100644 --- a/fees/radiant.ts +++ b/fees/radiant.ts @@ -14,7 +14,8 @@ type TAddress = { const address: TAddress = { [CHAIN.ARBITRUM]: '0xE10997B8d5C6e8b660451f61accF4BBA00bc901f', [CHAIN.BSC]: '0xcebdff400A23E5Ad1CDeB11AfdD0087d5E9dFed8', - [CHAIN.ETHEREUM]: '0x28E395a54a64284DBA39652921Cd99924f4e3797' + [CHAIN.ETHEREUM]: '0x28E395a54a64284DBA39652921Cd99924f4e3797', + [CHAIN.BASE]: '0xC49b4D1e6CbbF4cAEf542f297449696d8B47E411' } interface ITx { @@ -86,6 +87,10 @@ const adapter: Adapter = { fetch: fetch(CHAIN.ETHEREUM), start: 1698796800, }, + [CHAIN.BASE]: { + fetch: fetch(CHAIN.BASE), + start: 1719592253, + }, } } From 68b88a87c68d2827265cef6a9a6e703283bce0c4 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 6 Aug 2024 12:39:07 +0000 Subject: [PATCH 030/237] fix woofi --- dexs/woofi/index.ts | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/dexs/woofi/index.ts b/dexs/woofi/index.ts index 3af651b47a..bcc37ab5ec 100644 --- a/dexs/woofi/index.ts +++ b/dexs/woofi/index.ts @@ -3,6 +3,7 @@ import { Chain } from "@defillama/sdk/build/general"; import { FetchOptions, SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getChainVolume } from "../../helpers/getUniSubgraphVolume"; +import request, { gql } from "graphql-request"; const endpoints = { @@ -55,14 +56,33 @@ const graphs = getChainVolume({ }, }); +const dailyQuery = gql` + query getDailyVolume($Id: Int!) { + dayData(id: $Id) { + volumeUSD + }, + globalVariables { + totalVolumeUSD + } + } +` + +interface FetchResult { + dayData: { + volumeUSD: string; + } + globalVariables: Array<{ + totalVolumeUSD: string; + }> +} const fetch = async (options: FetchOptions) => { try { - const result = await graphs(options.chain)(options); - if (!result) return {}; + const dateId = Math.floor(options.endTimestamp / 86400); + const response: FetchResult = await request(endpoints[options.chain], dailyQuery, { Id: dateId }); + if (!response) return {}; return { - ...result, - totalVolume: `${(result?.totalVolume || 0) / 10 ** 18}`, - dailyVolume: `${(result?.dailyVolume || 0) / 10 ** 18}` + dailyVolume: Number(response?.dayData?.volumeUSD || 0) / 1e18, + totalVolume: Number(response?.globalVariables[0]?.totalVolumeUSD || 0) / 1e18, }; } catch (error) { console.error(error); From cbea600e0f7c5bfb5e2d22a6e596571022d540cd Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 6 Aug 2024 12:59:32 +0000 Subject: [PATCH 031/237] fix symbol --- dexs/apex-omni/index.ts | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/dexs/apex-omni/index.ts b/dexs/apex-omni/index.ts index 0bf1e56fd8..6bd9264dcf 100644 --- a/dexs/apex-omni/index.ts +++ b/dexs/apex-omni/index.ts @@ -1,5 +1,5 @@ -import fetchURL from "../../utils/fetchURL" -import { SimpleAdapter, Fetch } from "../../adapters/types"; +import fetchURL, { httpGet } from "../../utils/fetchURL"; +import { SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; @@ -25,14 +25,28 @@ interface IOpenInterest { } const getVolume = async (timestamp: number) => { - const _symbol: string[] = await getSumbols() - const symbol = [...new Set(_symbol)] + const symbol = [ + 'BTCUSDT', 'ETHUSDT', 'SOLUSDT', + 'TONUSDT', 'NEARUSDT', 'XRPUSDT', + 'ADAUSDT', 'SUIUSDT', 'AVAXUSDT', + 'BCHUSDT', 'LTCUSDT', 'MATICUSDT', + 'ARBUSDT', 'OPUSDT', 'STXUSDT', + 'DOGEUSDT', '1000SHIBUSDT', '1000PEPEUSDT', + '1000BONKUSDT', 'WIFUSDT', 'ORDIUSDT', + 'PEOPLEUSDT', 'WLDUSDT', 'RNDRUSDT', + 'ONDOUSDT', 'LINKUSDT', 'ENSUSDT', + 'UNIUSDT', 'ENAUSDT', 'PENDLEUSDT', + 'LDOUSDT', 'JUPUSDT', 'RONUSDT', + 'FILUSDT', 'ARUSDT', 'ZKUSDT', + 'IOUSDT', 'NOTUSDT', 'ZROUSDT', + 'BLASTUSDT' + ] const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)) - const historical: any[] = (await Promise.all(symbol.map((coins: string) => fetchURL(historicalVolumeEndpoint(coins, dayTimestamp + 60 * 60 * 24))))) + const historical: any[] = (await Promise.all(symbol.map((coins: string) => httpGet(historicalVolumeEndpoint(coins, dayTimestamp + 60 * 60 * 24), { timeout: 10000 })))) .map((e: any) => Object.values(e.data)).flat().flat() .map((e: any) => { return { timestamp: e.t / 1000, volume: e.v, price: e.c } }); - const openInterestHistorical: IOpenInterest[] = (await Promise.all(symbol.map((coins: string) => fetchURL(allTiker(coins))))) + const openInterestHistorical: IOpenInterest[] = (await Promise.all(symbol.map((coins: string) => httpGet(allTiker(coins), { timeout: 10000 })))) .map((e: any) => e.data).flat().map((e: any) => { return { id: e.symbol, openInterest: e.openInterest, lastPrice: e.lastPrice } }); const dailyOpenInterest = openInterestHistorical.reduce((a: number, { openInterest, lastPrice }) => a + Number(openInterest) * Number(lastPrice), 0); const historicalUSD = historical.map((e: IVolumeall) => { @@ -45,7 +59,7 @@ const getVolume = async (timestamp: number) => { .reduce((a: number, { volumeUSD }) => a + volumeUSD, 0); const totalVolume = historicalUSD.filter((e: IVolumeall) => e.timestamp <= dayTimestamp) .reduce((a: number, { volumeUSD }) => a + volumeUSD, 0); - + return { totalVolume: `${totalVolume}`, dailyOpenInterest: `${dailyOpenInterest}`, From d1c9fe3e94037c5d498dad71df95c9e54f6a9a4f Mon Sep 17 00:00:00 2001 From: MevX Date: Tue, 6 Aug 2024 20:02:19 +0700 Subject: [PATCH 032/237] Update query --- fees/mevx.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fees/mevx.ts b/fees/mevx.ts index 42024d69ed..3053a5201b 100644 --- a/fees/mevx.ts +++ b/fees/mevx.ts @@ -4,7 +4,7 @@ import { queryDune } from "../helpers/dune"; const fetch: any = async (options: FetchOptions) => { const dailyFees = options.createBalances(); - const value = (await queryDune("3958680", { + const value = (await queryDune("3967214", { start: options.startTimestamp, end: options.endTimestamp, })); @@ -24,4 +24,4 @@ const adapter: SimpleAdapter = { isExpensiveAdapter: true }; -export default adapter; \ No newline at end of file +export default adapter; From a8719c63be0d63a2a7237400381ef621915a335d Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 6 Aug 2024 13:34:56 +0000 Subject: [PATCH 033/237] fix linting --- fees/ethena.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/ethena.ts b/fees/ethena.ts index 3cef12538e..04f1c0332b 100644 --- a/fees/ethena.ts +++ b/fees/ethena.ts @@ -6,7 +6,7 @@ const usdt = "0xdac17f958d2ee523a2206206994597c13d831ec7" const mint_event = "event Mint( address indexed minter,address indexed benefactor,address indexed beneficiary,address collateral_asset,uint256 collateral_amount,uint256 usde_amount)"; -const fetch = async (toTimestamp:number, chainBlocks:any, options: FetchOptions) => { +const fetch = async (_t:number, _c:any, options: FetchOptions) => { const logs = await options.getLogs({ eventAbi: mint_event, target: "0x2cc440b721d2cafd6d64908d6d8c4acc57f8afc3", From 06eb17ec22626fd2201707a376a3ab67315d84a0 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 6 Aug 2024 13:38:50 +0000 Subject: [PATCH 034/237] fix breakdown key --- dexs/gmx-v2/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dexs/gmx-v2/index.ts b/dexs/gmx-v2/index.ts index 2b65432774..70dd58952d 100644 --- a/dexs/gmx-v2/index.ts +++ b/dexs/gmx-v2/index.ts @@ -72,7 +72,7 @@ const methodology = { const adapter: BreakdownAdapter = { version: 2, breakdown: { - "swap": Object.keys(endpoints).reduce((acc, chain) => { + "gmx-v2-swap": Object.keys(endpoints).reduce((acc, chain) => { return { ...acc, [chain]: { @@ -82,7 +82,7 @@ const adapter: BreakdownAdapter = { } } }, {}), - "derivatives": Object.keys(endpoints).reduce((acc, chain) => { + "gmx-v2-trade": Object.keys(endpoints).reduce((acc, chain) => { return { ...acc, [chain]: { From 623599f6ddab378246320e8dd7d0eb084a9bfc4f Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 6 Aug 2024 14:02:55 +0000 Subject: [PATCH 035/237] enable metaplex --- fees/metaplex.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 fees/metaplex.ts diff --git a/fees/metaplex.ts b/fees/metaplex.ts new file mode 100644 index 0000000000..17f780f095 --- /dev/null +++ b/fees/metaplex.ts @@ -0,0 +1,34 @@ +import { FetchOptions, SimpleAdapter } from "../adapters/types" +import { CHAIN } from "../helpers/chains" +import { httpGet } from "../utils/fetchURL" + +const METAPLEX_API_KEY = process.env.METAPLEX_API_KEY +const url = `https://analytics.topledger.xyz/metaplex/api/queries/10849/results.json?api_key=${METAPLEX_API_KEY}` + +interface IFees { + block_date: string; + revenue_in_usd: number; + cumulative_revenue_in_usd: number; +} +const fetchFees = async (timestamp: number, _t: any, options: FetchOptions) => { + const res: IFees[] = (await httpGet(url)).query_result.data.rows; + const dateStr = new Date(options.endTimestamp * 1000).toISOString().split('T')[0] + const dailyItem = res.find(item => item.block_date === dateStr) + return { + dailyFees: dailyItem?.revenue_in_usd || 0, + totalFees: dailyItem?.cumulative_revenue_in_usd || 0, + dailyRevenue: dailyItem?.revenue_in_usd || 0, + totalRevenue: dailyItem?.cumulative_revenue_in_usd || 0, + timestamp, + } +} + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.SOLANA]: { + fetch: fetchFees, + start: 1631952000, + } + } +} +export default adapter From f1788b76079dd2f7c04c1c1e667198eb4be3a7b8 Mon Sep 17 00:00:00 2001 From: ideapacito Date: Tue, 6 Aug 2024 21:12:27 +0700 Subject: [PATCH 036/237] update fwx baseUrl --- dexs/fwx/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/fwx/index.ts b/dexs/fwx/index.ts index d6b872fd72..dbd9a63329 100644 --- a/dexs/fwx/index.ts +++ b/dexs/fwx/index.ts @@ -14,7 +14,7 @@ interface IRes { data: IDailyData[]; } -const baseUrl = "https://app.fwx.finance/api/v2"; +const baseUrl = "https://analytics.fwx.finance"; interface IEndpoint { tradingVolume: string; From 99e5b3967cd79faa0296e2b50497e033abde503d Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 6 Aug 2024 15:09:25 +0000 Subject: [PATCH 037/237] fix cow protocol --- fees/cow-protocol.ts | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/fees/cow-protocol.ts b/fees/cow-protocol.ts index b2aefd1254..6f42fd81f5 100644 --- a/fees/cow-protocol.ts +++ b/fees/cow-protocol.ts @@ -1,6 +1,7 @@ import { Adapter, FetchOptions } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; import { Chain, } from "@defillama/sdk/build/general"; +import { queryDune } from "../helpers/dune"; type TAddress = { [l: string | Chain]: string; @@ -11,18 +12,24 @@ const address: TAddress = { } -const fetch = (chain: Chain) => { +const fetch = (_: Chain) => { return async (options: FetchOptions) => { - const logs = await options.getLogs({ - target: address[chain], - eventAbi: "event Trade (address indexed owner, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 feeAmount, bytes orderUid)", - }) const dailyFees = options.createBalances(); - logs.forEach((tx: any) => { - dailyFees.add(tx.sellToken, tx.feeAmount) - }) - const dailyRevenue = dailyFees.clone() - return { dailyUserFees: dailyFees, dailyFees, dailyRevenue } + try { + const value = (await queryDune("3968762")); + const dateStr = new Date(options.endTimestamp * 1000).toISOString().split("T")[0]; + const dayItem = value.find((item: any) => item.time.split(' ')[0] === dateStr); + dailyFees.addGasToken((dayItem?.total_revenue) * 1e18 || 0) + return { + dailyFees: dailyFees, + dailyRevenue: dailyFees, + } + } catch (e) { + return { + dailyFees: dailyFees, + dailyRevenue: dailyFees, + } + } } } @@ -49,7 +56,8 @@ const adapter: Adapter = { // methodology // } // } - } + }, + isExpensiveAdapter: true, } export default adapter; From f6f1dbb7a830bb2ea23af52fef35e436d01dd32c Mon Sep 17 00:00:00 2001 From: Jaimi Patel Date: Tue, 6 Aug 2024 17:21:38 +0100 Subject: [PATCH 038/237] add dexalot chain --- helpers/chains.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/helpers/chains.ts b/helpers/chains.ts index 38e1556ee2..5b43632433 100644 --- a/helpers/chains.ts +++ b/helpers/chains.ts @@ -160,6 +160,7 @@ export enum CHAIN { SKALE_EUROPA = "skale_europa", IOTAEVM = "iotaevm", ZKLINK = "zklink", + DEXALOT = "dexalot", } // Don´t use From 7a4692576b1c2cee1fe502064473674904e962d2 Mon Sep 17 00:00:00 2001 From: Jaimi Patel Date: Tue, 6 Aug 2024 17:21:59 +0100 Subject: [PATCH 039/237] get dexalot volumes by chain via api --- dexs/dexalot/index.ts | 87 +++++++++++++++++++++++++++++-------------- 1 file changed, 60 insertions(+), 27 deletions(-) diff --git a/dexs/dexalot/index.ts b/dexs/dexalot/index.ts index 3d12c94acf..570ccb05dd 100644 --- a/dexs/dexalot/index.ts +++ b/dexs/dexalot/index.ts @@ -1,43 +1,76 @@ -import { FetchOptions, SimpleAdapter } from "../../adapters/types"; +import { BaseAdapter, BreakdownAdapter, FetchOptions, FetchResultV2 } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; +import { httpGet } from "../../utils/fetchURL"; + +const historicalVolumeEndpoint = "https://api.dexalot.com/api/stats/chaindailyvolumes" interface IVolumeall { volumeusd: string; date: number; } -const address: any = { - [CHAIN.ARBITRUM]: "0x010224949cCa211Fb5dDfEDD28Dc8Bf9D2990368", - [CHAIN.AVAX]: "0xEed3c159F3A96aB8d41c8B9cA49EE1e5071A7cdD" +const swapChains = [CHAIN.AVAX, CHAIN.ARBITRUM, CHAIN.BASE] + +const chainToEnv = (chain: CHAIN) => { + switch (chain) { + case CHAIN.AVAX: + return "production-multi-avax" + case CHAIN.ARBITRUM: + return "production-multi-arb" + case CHAIN.BASE: + return "production-multi-base" + default: + return "production-multi-subnet" + } } -const event = "event SwapExecuted(uint256 indexed nonceAndMeta,address taker,address destTrader,uint256 destChainId,address srcAsset,address destAsset,uint256 srcAmount,uint256 destAmount)" - -const fetch = async (options: FetchOptions) => { - const dailyVolume = options.createBalances(); - const logs = await options.getLogs({ - target: address[options.chain], - eventAbi: event - }) - logs.forEach(log => { - dailyVolume.add(log.destAsset, log.destAmount) - }) - return { dailyVolume } +const fetchFromChain = (chain: CHAIN) => { + const endpoint = `${historicalVolumeEndpoint}?env=${chainToEnv(chain)}` + + return async (options: FetchOptions): Promise => { + const dayTimestamp = new Date(options.startOfDay * 1000) + const historicalVolume: IVolumeall[] = await httpGet(endpoint) + + const totalVolume = historicalVolume + .filter(volItem => new Date(volItem.date) <= dayTimestamp) + .reduce((acc, { volumeusd }) => acc + Number(volumeusd), 0) + const dailyVolume = historicalVolume + .find(dayItem => new Date(dayItem.date) === dayTimestamp)?.volumeusd + + return { + totalVolume: `${totalVolume}`, + dailyVolume: dailyVolume ? `${dailyVolume}` : undefined, + }; + } }; +const getStartTimestamp = (chain: CHAIN) => { + const endpoint = `${historicalVolumeEndpoint}?env=${chainToEnv(chain)}` + return async () => { + const historicalVolume: IVolumeall[] = await httpGet(endpoint) + return (new Date(historicalVolume[0].date).getTime()) / 1000 + } +} -const adapter: SimpleAdapter = { +const adapter: BreakdownAdapter = { version: 2, - adapter: { - [CHAIN.AVAX]: { - fetch: fetch, - start: 0, - }, - [CHAIN.ARBITRUM]: { - fetch: fetch, - start: 0, - }, - }, + breakdown: { + swap: swapChains.reduce((acc, chain) => { + return { + ...acc, + [chain]: { + fetch: fetchFromChain(chain), + start: getStartTimestamp(chain), + } + } + }, {} as BaseAdapter), + spot: { + [CHAIN.DEXALOT]: { + fetch: fetchFromChain(CHAIN.DEXALOT), + start: getStartTimestamp(CHAIN.DEXALOT), + } + } + } }; export default adapter; From 4a6830d8e55aa7f14d8023b799a6092e40cad5ca Mon Sep 17 00:00:00 2001 From: ethzoomer Date: Tue, 6 Aug 2024 22:19:03 -0500 Subject: [PATCH 040/237] perf: event getLogs pagination --- dexs/aerodrome/index.ts | 52 +++++++++++++++++++++++++++++++++-------- dexs/velodrome/v2.ts | 43 +++++++++++++++++++++++++++++----- 2 files changed, 79 insertions(+), 16 deletions(-) diff --git a/dexs/aerodrome/index.ts b/dexs/aerodrome/index.ts index 2c69be1647..82c9027115 100644 --- a/dexs/aerodrome/index.ts +++ b/dexs/aerodrome/index.ts @@ -57,11 +57,27 @@ const fetch = async (options: FetchOptions): Promise => { const targets = allForSwaps.map((forSwap: IForSwap) => forSwap.lp) - const logs: ILog[][] = await options.getLogs({ - targets, - eventAbi: event_swap, - flatten: false, - }) + let logs: ILog[][] = []; + const targetChunkSize = 5; + let currentTargetOffset = 0; + unfinished = true; + + while (unfinished) { + let endOffset = currentTargetOffset + targetChunkSize; + if (endOffset >= targets.length) { + unfinished = false; + endOffset = targets.length; + } + + let currentLogs: ILog[][] = await options.getLogs({ + targets: targets.slice(currentTargetOffset, endOffset), + eventAbi: event_swap, + flatten: false, + }) + + logs.push(...currentLogs); + currentTargetOffset += targetChunkSize; + } logs.forEach((logs: ILog[], idx: number) => { const { token0, token1, pool_fee } = allForSwaps[idx] @@ -91,11 +107,27 @@ const fetch = async (options: FetchOptions): Promise => { const targets = forSwapsOld.map((forSwap: IForSwap) => forSwap.lp) - const logs: ILog[][] = await options.getLogs({ - targets, - eventAbi: event_swap, - flatten: false, - }) + let logs: ILog[][] = []; + const targetChunkSize = 5; + let currentTargetOffset = 0; + unfinished = true; + + while (unfinished) { + let endOffset = currentTargetOffset + targetChunkSize; + if (endOffset >= targets.length) { + unfinished = false; + endOffset = targets.length; + } + + let currentLogs: ILog[][] = await options.getLogs({ + targets: targets.slice(currentTargetOffset, endOffset), + eventAbi: event_swap, + flatten: false, + }) + + logs.push(...currentLogs); + currentTargetOffset += targetChunkSize; + } logs.forEach((logs: ILog[], idx: number) => { const { token0, token1, pool_fee } = forSwapsOld[idx] diff --git a/dexs/velodrome/v2.ts b/dexs/velodrome/v2.ts index 32d0c3a575..e474df42aa 100644 --- a/dexs/velodrome/v2.ts +++ b/dexs/velodrome/v2.ts @@ -57,11 +57,27 @@ while (unfinished) { const targets = allForSwaps.map((forSwap: IForSwap) => forSwap.lp) -const logs: ILog[][] = await getLogs({ - targets, +let logs: ILog[][] = []; +const targetChunkSize = 5; +let currentTargetOffset = 0; +unfinished = true; + +while (unfinished) { + let endOffset = currentTargetOffset + targetChunkSize; + if (endOffset >= targets.length) { + unfinished = false; + endOffset = targets.length; + } + + let currentLogs: ILog[][] = await getLogs({ + targets: targets.slice(currentTargetOffset, endOffset), eventAbi: event_swap, flatten: false, -}) + }) + + logs.push(...currentLogs); + currentTargetOffset += targetChunkSize; +} logs.forEach((logs: ILog[], idx: number) => { const { token0, token1, pool_fee } = allForSwaps[idx] @@ -73,11 +89,26 @@ logs.forEach((logs: ILog[], idx: number) => { }) }) -const slipstreamLogs: ILog[][] = await getLogs({ - targets, +let slipstreamLogs: ILog[][] = []; +currentTargetOffset = 0; +unfinished = true; + +while (unfinished) { + let endOffset = currentTargetOffset + targetChunkSize; + if (endOffset >= targets.length) { + unfinished = false; + endOffset = targets.length; + } + + let currentSlipstreamLogs: ILog[][] = await getLogs({ + targets: targets.slice(currentTargetOffset, endOffset), eventAbi: event_swap_slipstream, flatten: false, -}) + }) + + slipstreamLogs.push(...currentSlipstreamLogs); + currentTargetOffset += targetChunkSize; +} slipstreamLogs.forEach((logs: ILog[], idx: number) => { const { token1, pool_fee } = allForSwaps[idx] From 96d05d7c290947ca8ef06daf8ad6a78a13719123 Mon Sep 17 00:00:00 2001 From: ideapacito Date: Wed, 7 Aug 2024 15:19:49 +0700 Subject: [PATCH 041/237] fix baseUrl & map chain id --- dexs/fwx/index.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/dexs/fwx/index.ts b/dexs/fwx/index.ts index dbd9a63329..ee6560aede 100644 --- a/dexs/fwx/index.ts +++ b/dexs/fwx/index.ts @@ -14,16 +14,19 @@ interface IRes { data: IDailyData[]; } -const baseUrl = "https://analytics.fwx.finance"; - interface IEndpoint { tradingVolume: string; openInterest: string; } + +const CHAIN_ID = { + [CHAIN.AVAX]: 43114, +}; + const endpoints: Record = { [CHAIN.AVAX]: { - tradingVolume: `${baseUrl}/trade/volume`, - openInterest: `${baseUrl}/trade/daily-open-interest`, + tradingVolume: `https://app.fwx.finance/api/v2/trade/volume`, + openInterest: `https://analytics.fwx.finance/trade/daily-open-interest`, }, }; @@ -39,7 +42,7 @@ const fetch = (chain: Chain) => { const tradingVolumeRes = await httpPost(endpoints[chain].tradingVolume, { from_date: formattedDate, to_date: formattedDate, - chain_id: 43114, + chain_id: CHAIN_ID[chain], }); const tradingVolume = tradingVolumeRes as IRes; const dailyVolumeData = tradingVolume?.data.find( From 7820fe2bff9a448ccdeb8167f03da074d1f19048 Mon Sep 17 00:00:00 2001 From: sean35809 Date: Wed, 7 Aug 2024 17:28:43 +0800 Subject: [PATCH 042/237] Add edgeX volume --- dexs/edgeX/index.ts | 61 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 dexs/edgeX/index.ts diff --git a/dexs/edgeX/index.ts b/dexs/edgeX/index.ts new file mode 100644 index 0000000000..40e51aedec --- /dev/null +++ b/dexs/edgeX/index.ts @@ -0,0 +1,61 @@ +import fetchURL from "../../utils/fetchURL" +import { FetchResultVolume, SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; + +const metaDataEndpoint = "https://pro.edgex.exchange/api/v1/public/meta/getMetaData" +const klineDailyEndpoint = (contractId: string, startTime: number, endTime: number) => `https://pro.edgex.exchange/api/v1/public/quote/getKline?contractId=${contractId}&klineType=DAY_1&filterBeginKlineTimeInclusive=${startTime}&filterEndKlineTimeExclusive=${endTime}&priceType=LAST_PRICE` + +interface KlineData { + contractId: string; + contractName: string; + klineType: string; + klineTime: string; + priceType: string; + trades: string; + size: string; + value: string; +} + +interface ResponseData { + dataList: KlineData[]; +} + +interface ApiResponse { + code: string; + data: ResponseData; + msg: string | null; + errorParam: string | null; +} + +function parseContractIds(response: any): string[] { + return response.data.contractList.map(contract => contract.contractId); +} + + +const fetch = async (timestamp: number): Promise => { + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)) * 1000 + const toTimestamp = dayTimestamp + 60 * 60 * 24 * 1000; + const contractIds: string[] = parseContractIds(await fetchURL(metaDataEndpoint)); + const klines = await Promise.all(contractIds.map(async (contractId) => { + const response: ApiResponse = await fetchURL(klineDailyEndpoint(contractId, dayTimestamp, toTimestamp)); + return response.data.dataList; + } + )); + const volumes = klines + .flat() + .map(kline => parseFloat(kline.value)) + .reduce((acc, value) => acc + value, 0); + return { dailyVolume: volumes, timestamp: toTimestamp / 1000 - 1 }; +}; + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.ETHEREUM]: { + fetch, + start: 1722902400, + }, + }, +}; + +export default adapter; From a98a51691de8e2757f27e6351f6a22e61aa76ae7 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 7 Aug 2024 12:35:32 +0000 Subject: [PATCH 043/237] fix metaplex --- fees/metaplex.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/metaplex.ts b/fees/metaplex.ts index 17f780f095..89c9443939 100644 --- a/fees/metaplex.ts +++ b/fees/metaplex.ts @@ -12,7 +12,7 @@ interface IFees { } const fetchFees = async (timestamp: number, _t: any, options: FetchOptions) => { const res: IFees[] = (await httpGet(url)).query_result.data.rows; - const dateStr = new Date(options.endTimestamp * 1000).toISOString().split('T')[0] + const dateStr = new Date(options.startOfDay * 1000).toISOString().split('T')[0] const dailyItem = res.find(item => item.block_date === dateStr) return { dailyFees: dailyItem?.revenue_in_usd || 0, From 79897db765d93a4a6dc5167257a813ea013e6e3e Mon Sep 17 00:00:00 2001 From: Jaimi Patel Date: Wed, 7 Aug 2024 14:26:59 +0100 Subject: [PATCH 044/237] revert dexalot from breakdown to simple adapter --- dexs/dexalot/index.ts | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/dexs/dexalot/index.ts b/dexs/dexalot/index.ts index 570ccb05dd..9457de19d0 100644 --- a/dexs/dexalot/index.ts +++ b/dexs/dexalot/index.ts @@ -1,4 +1,4 @@ -import { BaseAdapter, BreakdownAdapter, FetchOptions, FetchResultV2 } from "../../adapters/types"; +import { BaseAdapter, FetchOptions, FetchResultV2, SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { httpGet } from "../../utils/fetchURL"; @@ -9,7 +9,7 @@ interface IVolumeall { date: number; } -const swapChains = [CHAIN.AVAX, CHAIN.ARBITRUM, CHAIN.BASE] +const supportedChains = [CHAIN.DEXALOT, CHAIN.AVAX, CHAIN.ARBITRUM, CHAIN.BASE] const chainToEnv = (chain: CHAIN) => { switch (chain) { @@ -52,25 +52,17 @@ const getStartTimestamp = (chain: CHAIN) => { } } -const adapter: BreakdownAdapter = { +const adapter: SimpleAdapter = { version: 2, - breakdown: { - swap: swapChains.reduce((acc, chain) => { - return { - ...acc, - [chain]: { - fetch: fetchFromChain(chain), - start: getStartTimestamp(chain), - } - } - }, {} as BaseAdapter), - spot: { - [CHAIN.DEXALOT]: { - fetch: fetchFromChain(CHAIN.DEXALOT), - start: getStartTimestamp(CHAIN.DEXALOT), + adapter: supportedChains.reduce((acc, chain) => { + return { + ...acc, + [chain]: { + fetch: fetchFromChain(chain), + start: getStartTimestamp(chain), } } - } + }, {} as BaseAdapter), }; export default adapter; From 79b14516e0fe354e90a3d21561736754a2984d5a Mon Sep 17 00:00:00 2001 From: Alexander Gotovets Date: Wed, 7 Aug 2024 15:33:09 +0200 Subject: [PATCH 045/237] CSPT-454 Added Chainspot adapter --- aggregators/chainspot/index.ts | 102 +++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 aggregators/chainspot/index.ts diff --git a/aggregators/chainspot/index.ts b/aggregators/chainspot/index.ts new file mode 100644 index 0000000000..9420b4bdcd --- /dev/null +++ b/aggregators/chainspot/index.ts @@ -0,0 +1,102 @@ +import fetchURL from "../../utils/fetchURL"; +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; +import { CHAIN } from "../../helpers/chains"; + +const chains = [ + CHAIN.ETHEREUM, + CHAIN.POLYGON, + CHAIN.BSC, + CHAIN.AVAX, + CHAIN.OPTIMISM, + CHAIN.FANTOM, + CHAIN.ARBITRUM, + CHAIN.AURORA, + CHAIN.CELO, + CHAIN.BOBA, + CHAIN.XDAI, + CHAIN.TELOS, + CHAIN.BASE, + CHAIN.LINEA, + CHAIN.MANTLE, + CHAIN.MOONBEAM, + CHAIN.CRONOS, + CHAIN.BLAST, + CHAIN.EVMOS, + CHAIN.FUSE, + CHAIN.HARMONY, + CHAIN.KAVA, + CHAIN.MOONRIVER, + CHAIN.OKEXCHAIN, + CHAIN.SCROLL, + CHAIN.TRON, + CHAIN.TON, + CHAIN.WAN, + CHAIN.ZKLINK, + CHAIN.ZKSYNC, +]; + +const chainToId: Record = { + [CHAIN.ETHEREUM]: 1, + [CHAIN.POLYGON]: 137, + [CHAIN.BSC]: 56, + [CHAIN.AVAX]: 43114, + [CHAIN.OPTIMISM]: 10, + [CHAIN.FANTOM]: 250, + [CHAIN.ARBITRUM]: 42161, + [CHAIN.AURORA]: 1313161554, + [CHAIN.CELO]: 42220, + [CHAIN.BOBA]: 288, + [CHAIN.XDAI]: 100, + [CHAIN.TELOS]: 40, + [CHAIN.BASE]: 8453, + [CHAIN.LINEA]: 59144, + [CHAIN.MANTLE]: 5000, + [CHAIN.MOONBEAM]: 1284, + [CHAIN.CRONOS]: 25, + [CHAIN.BLAST]: 81457, + [CHAIN.EVMOS]: 9001, + [CHAIN.FUSE]: 122, + [CHAIN.HARMONY]: 1666600000, + [CHAIN.KAVA]: 2222, + [CHAIN.MOONRIVER]: 1285, + [CHAIN.OKEXCHAIN]: 66, + [CHAIN.SCROLL]: 534352, + [CHAIN.TRON]: 728126428, + [CHAIN.TON]: -239, + [CHAIN.WAN]: 888, + [CHAIN.ZKLINK]: 810180, + [CHAIN.ZKSYNC]: 324, +}; + +const fetch = (chain: string) => async (timestamp: number) => { + const unixTimestamp = getUniqStartOfTodayTimestamp( + new Date(timestamp * 1000) + ); + + const volume = ( + await fetchURL( + `https://app.chainspot.io/api/2.0/statistic/daily-volume?chainId=${chainToId[chain]}×tamp=${unixTimestamp}` + ) + )?.volume; + + return { + dailyVolume: volume, + timestamp: unixTimestamp, + }; +}; + +const adapter: any = { + adapter: { + ...chains.reduce((acc, chain) => { + return { + ...acc, + [chain]: { + fetch: fetch(chain), + start: 1704067200, + }, + }; + }, {}), + }, +}; + +export default adapter; From 20bdbbaa3340bd03895729054010145f107c51a7 Mon Sep 17 00:00:00 2001 From: Maxence Raballand Date: Wed, 7 Aug 2024 16:33:14 +0200 Subject: [PATCH 046/237] feat: add mangrove on arbitrum --- dexs/mangrove/index.ts | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/dexs/mangrove/index.ts b/dexs/mangrove/index.ts index 387daf307b..4ebcde2913 100644 --- a/dexs/mangrove/index.ts +++ b/dexs/mangrove/index.ts @@ -1,6 +1,7 @@ import type { ChainApi } from "@defillama/sdk"; import type { Adapter, + BaseAdapter, FetchOptions, FetchResultV2, } from "../../adapters/types"; @@ -8,11 +9,17 @@ import { CHAIN } from "../../helpers/chains"; type ChainConfig = { core: string; + start: number; }; const mangrove: Record = { [CHAIN.BLAST]: { core: "0xb1a49C54192Ea59B233200eA38aB56650Dfb448C", + start: 1708992000, + }, + [CHAIN.ARBITRUM]: { + core: "0x109d9CDFA4aC534354873EF634EF63C235F93f61", + start: 1721664539, }, }; @@ -76,15 +83,18 @@ async function fetch({ const adapter: Adapter = { version: 2, adapter: { - [CHAIN.BLAST]: { - meta: { - methodology: { - dailyVolume: "Sum of all offers taken in the last 24hrs", + ...Object.entries(mangrove).reduce((acc, [key, config]) => { + acc[key] = { + meta: { + methodology: { + dailyVolume: "Sum of all offers taken in the last 24hrs", + }, }, - }, - fetch, - start: 1708992000, - }, + fetch, + start: config.start, + }; + return acc; + }, {} as BaseAdapter), }, }; From 3887d0da7710bc005d708216c7684044ac70ec9e Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 7 Aug 2024 16:17:33 +0000 Subject: [PATCH 047/237] fix query --- fees/gmx-v2/index.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/fees/gmx-v2/index.ts b/fees/gmx-v2/index.ts index ba32f49562..1ffbeb04ed 100644 --- a/fees/gmx-v2/index.ts +++ b/fees/gmx-v2/index.ts @@ -1,5 +1,5 @@ import { Chain } from "@defillama/sdk/build/general"; -import { Adapter, FetchResultFees } from "../../adapters/types"; +import { Adapter, FetchOptions, FetchResultFees } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { queryDune } from "../../helpers/dune"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; @@ -12,12 +12,12 @@ interface IFee { } const fetch = (chain: Chain) => { - return async (timestamp: number): Promise => { + return async (timestamp: number, _t: any, options: FetchOptions): Promise => { const fees: IFee[] = (await queryDune(chain === CHAIN.ARBITRUM ? "3464532" : "3464559")) // const queryId = chain === CHAIN.ARBITRUM ? "3186689" : "3186714"; // const fees: IFee[] = (await fetchURLWithRetry(`https://api.dune.com/api/v1/query/${queryId}/results`)).result.rows; // const fees: IFee[] = require(`./${chain}.json`); - const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(options.endTimestamp * 1000)); const dateString = new Date(dayTimestamp * 1000).toISOString().split("T")[0]; const daily = fees.find(fee => fee.time.split(' ')[0] === dateString); const dailyFees = daily?.v2_fees || 0 @@ -39,12 +39,10 @@ const adapter: Adapter = { [CHAIN.ARBITRUM]: { fetch: fetch(CHAIN.ARBITRUM), start: 1690848000, - runAtCurrTime: true, }, [CHAIN.AVAX]: { fetch: fetch(CHAIN.AVAX), start: 1692835200, - runAtCurrTime: true, }, }, isExpensiveAdapter: true, From 94690cb103cd5d1a9f56dfdc6f88f2b8ccf2c812 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 7 Aug 2024 17:31:53 +0000 Subject: [PATCH 048/237] fix gmx --- fees/gmx-v2/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/gmx-v2/index.ts b/fees/gmx-v2/index.ts index 1ffbeb04ed..930c1bc4cd 100644 --- a/fees/gmx-v2/index.ts +++ b/fees/gmx-v2/index.ts @@ -13,7 +13,7 @@ interface IFee { const fetch = (chain: Chain) => { return async (timestamp: number, _t: any, options: FetchOptions): Promise => { - const fees: IFee[] = (await queryDune(chain === CHAIN.ARBITRUM ? "3464532" : "3464559")) + const fees: IFee[] = (await queryDune(chain === CHAIN.ARBITRUM ? "3971843" : "3971936")) // const queryId = chain === CHAIN.ARBITRUM ? "3186689" : "3186714"; // const fees: IFee[] = (await fetchURLWithRetry(`https://api.dune.com/api/v1/query/${queryId}/results`)).result.rows; // const fees: IFee[] = require(`./${chain}.json`); From 7bed6414c14188ac718c99016c8927804cf23103 Mon Sep 17 00:00:00 2001 From: "naijia.zheng" Date: Thu, 8 Aug 2024 13:32:48 +0800 Subject: [PATCH 049/237] update ktx subgraph endpoints --- dexs/ktx/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dexs/ktx/index.ts b/dexs/ktx/index.ts index 0f38b3aff2..56c2a9b140 100644 --- a/dexs/ktx/index.ts +++ b/dexs/ktx/index.ts @@ -4,9 +4,9 @@ import { CHAIN } from "../../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; const endpoints: { [key: string]: string } = { - [CHAIN.BSC]: "https://subgraph.ktx.finance/subgraphs/name/ktx", - [CHAIN.MANTLE]: "https://mantlesubgraph.ktx.finance/subgraphs/name/ktx", - [CHAIN.ARBITRUM]: "https://arbisubgraph.ktx.systems/subgraphs/name/ktx", + [CHAIN.BSC]: "https://subgraph.satsuma-prod.com/dff088b6cd75/kesters-team/bsc_stats/api", + [CHAIN.MANTLE]: "https://subgraph.satsuma-prod.com/dff088b6cd75/kesters-team/mantle_stats/api", + [CHAIN.ARBITRUM]: "https://subgraph.satsuma-prod.com/dff088b6cd75/kesters-team/ktx_stats/api", }; const historicalDataSwap = gql` From dab5632aeaf712ee69b328cf7ff79bac84f2359e Mon Sep 17 00:00:00 2001 From: 0xMasayoshi <0xMasayoshi@protonmail.com> Date: Thu, 8 Aug 2024 19:51:55 +0700 Subject: [PATCH 050/237] feat: add RouteProcessor5 to sushiswap aggregator adapter --- dexs/sushiswap/swap.ts | 45 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/dexs/sushiswap/swap.ts b/dexs/sushiswap/swap.ts index 1360df814c..147a0953ee 100644 --- a/dexs/sushiswap/swap.ts +++ b/dexs/sushiswap/swap.ts @@ -76,6 +76,42 @@ const RP4_ADDRESS = { [CHAIN.ROOTSTOCK]: '0xb46e319390De313B8cc95EA5aa30C7bBFD79Da94', } +const RP5_ADDRESS = { + [CHAIN.ETHEREUM]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.ARBITRUM]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.OPTIMISM]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.BASE]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.POLYGON]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.AVAX]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.BSC]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.LINEA]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.ARBITRUM_NOVA]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.XDAI]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.FANTOM]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.BITTORRENT]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.CELO]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.FILECOIN]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.HAQQ]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.KAVA]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.METIS]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.THUNDERCORE]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.SCROLL]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.ZETA]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.MOONBEAM]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.MOONRIVER]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.POLYGON_ZKEVM]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.FUSE]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.HARMONY]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.TELOS]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.BOBA]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.BOBA_BNB]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.CORE]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.CRONOS]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.BLAST]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.SKALE_EUROPA]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', + [CHAIN.ROOTSTOCK]: '0xf2614A233c7C3e7f08b1F887Ba133a13f1eb2c55', +} + const WNATIVE_ADDRESS = { [CHAIN.ETHEREUM]: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', [CHAIN.ARBITRUM]: '0x82af49447d8a07e3bd95bd0d56f35241523fbab1', @@ -118,8 +154,13 @@ const useSushiAPIPrice = (chain) => [ ].includes(chain) const fetch: FetchV2 = async ({ getLogs, createBalances, chain, }): Promise => { + const logs = await Promise.all([ + getLogs({ target: RP4_ADDRESS[chain], eventAbi: ROUTE_EVENT }), + getLogs({ target: RP5_ADDRESS[chain], eventAbi: ROUTE_EVENT }) + ]).then(([rp4Logs, rp5Logs]) => [...rp4Logs, ...rp5Logs]) + if (useSushiAPIPrice(chain)) { - const [tokensQuery, pricesQuery, logs] = await Promise.all([ + const [tokensQuery, pricesQuery] = await Promise.all([ axios.get(`https://tokens.sushi.com/v0/${CHAIN_ID[chain]}`) .then(response => response.data), axios.get(`https://api.sushi.com/price/v1/${CHAIN_ID[chain]}`) @@ -130,7 +171,6 @@ const fetch: FetchV2 = async ({ getLogs, createBalances, chain, }): Promise { @@ -156,7 +196,6 @@ const fetch: FetchV2 = async ({ getLogs, createBalances, chain, }): Promise { if (log.tokenIn === '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE') From 2819289cb06945740f8c63c19fa200f726b949c0 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Thu, 8 Aug 2024 16:02:58 +0000 Subject: [PATCH 051/237] fix cetus --- .../cetus-aggregator/index.ts | 10 ++++------ dexs/cetus/index.ts | 15 +++++---------- 2 files changed, 9 insertions(+), 16 deletions(-) rename {dexs/cetus => aggregators}/cetus-aggregator/index.ts (70%) diff --git a/dexs/cetus/cetus-aggregator/index.ts b/aggregators/cetus-aggregator/index.ts similarity index 70% rename from dexs/cetus/cetus-aggregator/index.ts rename to aggregators/cetus-aggregator/index.ts index 2b99bdf473..7132e7c6b0 100644 --- a/dexs/cetus/cetus-aggregator/index.ts +++ b/aggregators/cetus-aggregator/index.ts @@ -1,6 +1,6 @@ -import { CHAIN } from "../../../helpers/chains"; -import { httpGet } from "../../../utils/fetchURL"; -import { FetchOptions } from "../../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { httpGet } from "../../utils/fetchURL"; +import { FetchOptions } from "../../adapters/types"; const fetchVolume = async (options: FetchOptions) => { const url = `https://api-sui.cetus.zone/v2/sui/aggregator_vol?startTimestamp=${options.startOfDay}&endTimestamp=${options.startOfDay}`; @@ -20,6 +20,4 @@ const adapter_agge: any = { }, }; -export { - adapter_agge, -} +export default adapter_agge; diff --git a/dexs/cetus/index.ts b/dexs/cetus/index.ts index ce4ab0f8d1..f041c58e8b 100644 --- a/dexs/cetus/index.ts +++ b/dexs/cetus/index.ts @@ -1,9 +1,8 @@ -import fetchURL from "../../utils/fetchURL" +import fetchURL from "../../utils/fetchURL"; import { Chain } from "@defillama/sdk/build/general"; -import { BreakdownAdapter, FetchOptions, SimpleAdapter } from "../../adapters/types"; +import { FetchOptions, SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; -import { adapter_agge } from './cetus-aggregator/index' type IUrl = { [s: string]: { @@ -48,10 +47,9 @@ const fetch = (chain: Chain) => { -const adapter: BreakdownAdapter = { +const adapter: SimpleAdapter = { version: 2, - breakdown: { - cetus: { + adapter: { [CHAIN.APTOS]: { fetch: fetch(CHAIN.APTOS), start: 1666224000, @@ -60,10 +58,7 @@ const adapter: BreakdownAdapter = { fetch: fetch(CHAIN.SUI), start: 1682985600, } - }, - "cetus-aggregator": adapter_agge.adapter } - }; -export default adapter; \ No newline at end of file +export default adapter; From b1d5f0c2c58854931ef6db02ccdae7388ea14fd9 Mon Sep 17 00:00:00 2001 From: Dongminh1997 Date: Fri, 9 Aug 2024 00:25:57 +0700 Subject: [PATCH 052/237] Update data endpoint --- aggregators/magpie/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aggregators/magpie/index.ts b/aggregators/magpie/index.ts index a633797290..4c0f876f1d 100644 --- a/aggregators/magpie/index.ts +++ b/aggregators/magpie/index.ts @@ -6,7 +6,7 @@ import { CHAIN } from "../../helpers/chains"; const fetch = async (timestamp: number, _: ChainBlocks, {chain}: FetchOptions): Promise => { const unixTimestamp= getTimestampAtStartOfDayUTC(timestamp) console.log(chain, unixTimestamp) - const data = await postURL(`https://nj4rp6s90f.execute-api.us-west-1.amazonaws.com/v1/llama`, {timestamp: unixTimestamp, chain:chain}, 10); + const data = await postURL(`https://prewimvk04.execute-api.us-west-1.amazonaws.com/prod/llama`, {timestamp: unixTimestamp, chain:chain}, 10); const chainData = data.result if (chainData === undefined ) { return { From d91ae2648080af00ec7e75dc9bf061339f1cfad1 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Fri, 9 Aug 2024 13:33:04 +0000 Subject: [PATCH 053/237] swith to version 1 --- dexs/woofi/index.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dexs/woofi/index.ts b/dexs/woofi/index.ts index bcc37ab5ec..fe5ba6784c 100644 --- a/dexs/woofi/index.ts +++ b/dexs/woofi/index.ts @@ -75,9 +75,10 @@ interface FetchResult { totalVolumeUSD: string; }> } -const fetch = async (options: FetchOptions) => { +const fetch = async (_t: any, _c: any,options: FetchOptions) => { try { - const dateId = Math.floor(options.endTimestamp / 86400); + console.log('fetching volume for', options.startOfDay); + const dateId = Math.floor(options.startOfDay / 86400); const response: FetchResult = await request(endpoints[options.chain], dailyQuery, { Id: dateId }); if (!response) return {}; return { @@ -102,7 +103,7 @@ const volume = Object.keys(endpoints).reduce( ); const adapter: SimpleAdapter = { - version: 2, + version: 1, adapter: volume, }; export default adapter; From 756225b6326fc1d6bff734aee061403c649b0020 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Fri, 9 Aug 2024 13:49:08 +0000 Subject: [PATCH 054/237] enable polygon --- protocols/uniswap/index.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/protocols/uniswap/index.ts b/protocols/uniswap/index.ts index 1312f71932..10117aef27 100644 --- a/protocols/uniswap/index.ts +++ b/protocols/uniswap/index.ts @@ -63,13 +63,11 @@ const blacklisted = { ] } -const KEY = 'a265c39f5a123ab2d40b25dc352adc22' - const v3Endpoints = { [CHAIN.ETHEREUM]: sdk.graph.modifyEndpoint('5AXe97hGLfjgFAc6Xvg6uDpsD5hqpxrxcma9MoxG7j7h'), [CHAIN.OPTIMISM]: sdk.graph.modifyEndpoint('Jhu62RoQqrrWoxUUhWFkiMHDrqsTe7hTGb3NGiHPuf9'), [CHAIN.ARBITRUM]: "https://api.thegraph.com/subgraphs/id/QmZ5uwhnwsJXAQGYEF8qKPQ85iVhYAcVZcZAPfrF7ZNb9z", - // [CHAIN.POLYGON]: "https://gateway-arbitrum.network.thegraph.com/api/"+KEY+"/subgraphs/id/3hCPRGf4z88VC5rsBKU5AA9FBBq5nF3jbKJG7VZCbhjm", + [CHAIN.POLYGON]: sdk.graph.modifyEndpoint('3hCPRGf4z88VC5rsBKU5AA9FBBq5nF3jbKJG7VZCbhjm'), // [CHAIN.CELO]: sdk.graph.modifyEndpoint('ESdrTJ3twMwWVoQ1hUE2u7PugEHX3QkenudD6aXCkDQ4'), [CHAIN.BSC]: sdk.graph.modifyEndpoint('F85MNzUGYqgSHSHRGgeVMNsdnW1KtZSVgFULumXRZTw2'), // [CHAIN.AVAX]: sdk.graph.modifyEndpoint('4gTHdWa9PbqUugt9vsMmpzUowmjb6eRiFRnUSrYLeSJF'), From 9a0618e1ef27645e219045ec81b31af5c1445a4a Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sat, 10 Aug 2024 15:15:05 +0000 Subject: [PATCH 055/237] fix magpie --- aggregators/magpie/index.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/aggregators/magpie/index.ts b/aggregators/magpie/index.ts index 4c0f876f1d..3b3a04638a 100644 --- a/aggregators/magpie/index.ts +++ b/aggregators/magpie/index.ts @@ -3,9 +3,8 @@ import { ChainBlocks, FetchOptions, FetchResult, SimpleAdapter } from "../../ada import { getTimestampAtStartOfDayUTC } from "../../utils/date" import { CHAIN } from "../../helpers/chains"; -const fetch = async (timestamp: number, _: ChainBlocks, {chain}: FetchOptions): Promise => { - const unixTimestamp= getTimestampAtStartOfDayUTC(timestamp) - console.log(chain, unixTimestamp) +const fetch = async (_t: number, _: ChainBlocks, {chain, startOfDay}: FetchOptions): Promise => { + const unixTimestamp= getTimestampAtStartOfDayUTC(startOfDay) const data = await postURL(`https://prewimvk04.execute-api.us-west-1.amazonaws.com/prod/llama`, {timestamp: unixTimestamp, chain:chain}, 10); const chainData = data.result if (chainData === undefined ) { @@ -94,7 +93,7 @@ const fetch = async (timestamp: number, _: ChainBlocks, {chain}: FetchOptions): start: 1662595200, }, }, - isExpensiveAdapter: true, + // isExpensiveAdapter: true, }; export default adapter; From 4b79100c75024e987c27d0bc9fae49b4a662df95 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 11 Aug 2024 15:03:45 +0000 Subject: [PATCH 056/237] limit offset --- dexs/aerodrome/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dexs/aerodrome/index.ts b/dexs/aerodrome/index.ts index 82c9027115..cf67048447 100644 --- a/dexs/aerodrome/index.ts +++ b/dexs/aerodrome/index.ts @@ -35,7 +35,7 @@ const fetch = async (options: FetchOptions): Promise => { if (options.startOfDay > 1714743000) { - while (unfinished) { + while (unfinished && currentOffset < 970) { const forSwaps: IForSwap[] = (await options.api.call({ target: sugar, params: [chunkSize, currentOffset], @@ -52,10 +52,13 @@ const fetch = async (options: FetchOptions): Promise => { unfinished = forSwaps.length !== 0; currentOffset += chunkSize; + if (currentOffset > 970) { // slipstream launched after ~970 v2 then we need to start from the beginning + currentOffset = 970; + } allForSwaps.push(...forSwaps); } - const targets = allForSwaps.map((forSwap: IForSwap) => forSwap.lp) + const targets = [...new Set(allForSwaps.map((forSwap: IForSwap) => forSwap.lp))] let logs: ILog[][] = []; const targetChunkSize = 5; From 70b8c1a17c8ecfec864add2943fb0188a946c863 Mon Sep 17 00:00:00 2001 From: kinglee Date: Mon, 12 Aug 2024 14:55:05 +0800 Subject: [PATCH 057/237] add arbitrum --- dexs/satori/index.ts | 49 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/dexs/satori/index.ts b/dexs/satori/index.ts index 4899861d61..f78c3807d2 100644 --- a/dexs/satori/index.ts +++ b/dexs/satori/index.ts @@ -3,11 +3,12 @@ import { SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; -const ZKEVM_URL = 'https://zksync.satori.finance/api/data-center/pub/overview/integration' +const ZKEVM_URL = 'https://zkevm.satori.finance/api/data-center/pub/overview/integration' const ZkSYNC_URL = 'https://zksync.satori.finance/api/data-center/pub/overview/integration' const SCROLL_URL = 'https://scroll.satori.finance/api/data-center/pub/overview/integration' const LINEA_URL = 'https://linea.satori.finance/api/data-center/pub/overview/integration' - +const BASE_URL = 'https://base.satori.finance/api/data-center/pub/overview/integration' +const ARBITRUM_URL = 'https://arbitrum.satori.finance/api/data-center/pub/overview/integration' interface VolumeInfo { fee24h: string; tradVol24h: string; @@ -28,6 +29,12 @@ const scroll = { const linea = { "exchange":"linea" } +const base = { + "exchange":"base" +} +const arbitrum = { + "exchange":"arbitrum-one" +} const evm_fetch = async (_timestamp: number) => { const volumeData: VolumeInfo = (await postURL(ZKEVM_URL,zk_evm)).data; @@ -53,7 +60,7 @@ const era_fetch = async (_timestamp: number) => { }; const linea_fetch = async (_timestamp: number) => { - const volumeData: VolumeInfo = (await postURL(ZkSYNC_URL,linea)).data; + const volumeData: VolumeInfo = (await postURL(LINEA_URL,linea)).data; return { totalVolume: volumeData.totalTradVol, @@ -65,7 +72,31 @@ const linea_fetch = async (_timestamp: number) => { }; const scroll_fetch = async (_timestamp: number) => { - const volumeData: VolumeInfo = (await postURL(ZkSYNC_URL,scroll)).data; + const volumeData: VolumeInfo = (await postURL(SCROLL_URL,scroll)).data; + + return { + totalVolume: volumeData.totalTradVol, + dailyVolume: volumeData.tradVol24h, + dailyFees: volumeData.fee24h, + dailyRevenue : volumeData.fee24h, + timestamp: parseInt(volumeData.time), + }; +}; + +const base_fetch = async (_timestamp: number) => { + const volumeData: VolumeInfo = (await postURL(BASE_URL,base)).data; + + return { + totalVolume: volumeData.totalTradVol, + dailyVolume: volumeData.tradVol24h, + dailyFees: volumeData.fee24h, + dailyRevenue : volumeData.fee24h, + timestamp: parseInt(volumeData.time), + }; +}; + +const arbitrum_fetch = async (_timestamp: number) => { + const volumeData: VolumeInfo = (await postURL(ARBITRUM_URL,arbitrum)).data; return { totalVolume: volumeData.totalTradVol, @@ -96,6 +127,16 @@ const adapter: SimpleAdapter = { fetch:scroll_fetch, runAtCurrTime: true, start: 1684003134, + }, + [CHAIN.BASE]: { + fetch:base_fetch, + runAtCurrTime: true, + start: 1684003134, + }, + [CHAIN.ARBITRUM]: { + fetch:arbitrum_fetch, + runAtCurrTime: true, + start: 1684003134, } }, }; From c6eb1ba946791cc8c2a7fdcadde8c159a7485720 Mon Sep 17 00:00:00 2001 From: kinglee Date: Mon, 12 Aug 2024 15:07:58 +0800 Subject: [PATCH 058/237] add xlayer --- dexs/satori/index.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/dexs/satori/index.ts b/dexs/satori/index.ts index f78c3807d2..f5ec32d2b3 100644 --- a/dexs/satori/index.ts +++ b/dexs/satori/index.ts @@ -9,6 +9,7 @@ const SCROLL_URL = 'https://scroll.satori.finance/api/data-center/pub/overview/i const LINEA_URL = 'https://linea.satori.finance/api/data-center/pub/overview/integration' const BASE_URL = 'https://base.satori.finance/api/data-center/pub/overview/integration' const ARBITRUM_URL = 'https://arbitrum.satori.finance/api/data-center/pub/overview/integration' +const XLARY_URL = 'https://xlayer.satori.finance/api/data-center/pub/overview/integration' interface VolumeInfo { fee24h: string; tradVol24h: string; @@ -35,6 +36,9 @@ const base = { const arbitrum = { "exchange":"arbitrum-one" } +const xlayer = { + "exchange":"xlayer" +} const evm_fetch = async (_timestamp: number) => { const volumeData: VolumeInfo = (await postURL(ZKEVM_URL,zk_evm)).data; @@ -106,6 +110,18 @@ const arbitrum_fetch = async (_timestamp: number) => { timestamp: parseInt(volumeData.time), }; }; + +const xlayer_fetch = async (_timestamp: number) => { + const volumeData: VolumeInfo = (await postURL(XLARY_URL,xlayer)).data; + + return { + totalVolume: volumeData.totalTradVol, + dailyVolume: volumeData.tradVol24h, + dailyFees: volumeData.fee24h, + dailyRevenue : volumeData.fee24h, + timestamp: parseInt(volumeData.time), + }; +}; const adapter: SimpleAdapter = { adapter: { [CHAIN.POLYGON_ZKEVM]: { @@ -137,6 +153,11 @@ const adapter: SimpleAdapter = { fetch:arbitrum_fetch, runAtCurrTime: true, start: 1684003134, + }, + [CHAIN.XLAYER]: { + fetch:xlayer_fetch, + runAtCurrTime: true, + start: 1684003134, } }, }; From 5516c53e7ad24192709811f338e88b3cd177c447 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 12 Aug 2024 08:16:12 +0000 Subject: [PATCH 059/237] fix contract id --- dexs/edgeX/index.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/dexs/edgeX/index.ts b/dexs/edgeX/index.ts index 40e51aedec..12670dee6e 100644 --- a/dexs/edgeX/index.ts +++ b/dexs/edgeX/index.ts @@ -36,12 +36,15 @@ function parseContractIds(response: any): string[] { const fetch = async (timestamp: number): Promise => { const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)) * 1000 const toTimestamp = dayTimestamp + 60 * 60 * 24 * 1000; - const contractIds: string[] = parseContractIds(await fetchURL(metaDataEndpoint)); - const klines = await Promise.all(contractIds.map(async (contractId) => { - const response: ApiResponse = await fetchURL(klineDailyEndpoint(contractId, dayTimestamp, toTimestamp)); - return response.data.dataList; - } - )); + const contractIds: string[] = [ + '10000001', '10000002', + '10000003', '10000004', + '10000005', '10000006', + '10000007', '10000008', + '10000009', '10000010' + ] + const klines = (await Promise.all(contractIds.map(async (contractId) => fetchURL(klineDailyEndpoint(contractId, dayTimestamp, toTimestamp))))) + .map((response: ApiResponse) => response.data.dataList); const volumes = klines .flat() .map(kline => parseFloat(kline.value)) From e94dd50bccbca932c58713556fcf952e1725e11a Mon Sep 17 00:00:00 2001 From: TechRiderWR Date: Mon, 12 Aug 2024 16:12:03 +0600 Subject: [PATCH 060/237] Update WingRiders adapter --- dexs/wingriders/index.ts | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/dexs/wingriders/index.ts b/dexs/wingriders/index.ts index 13cce6283d..ca2b95d9e8 100644 --- a/dexs/wingriders/index.ts +++ b/dexs/wingriders/index.ts @@ -1,14 +1,28 @@ import { Adapter, ChainBlocks, FetchOptions } from "../../adapters/types" import { CHAIN } from "../../helpers/chains"; -import { httpPost } from "../../utils/fetchURL"; +import request, { gql } from "graphql-request"; -const volUrl = 'https://aggregator.mainnet.wingriders.com/volumeInAda'; +const url = 'https://api.mainnet.wingriders.com/graphql'; + +const query = gql` +query Volume($input: VolumeInput!) { + volume(input: $input) +} +` + +interface IResponse { + volume: number +} async function fetchVolume(timestamp: number , _: ChainBlocks, { createBalances }: FetchOptions) { const dailyVolume = createBalances() - const last24hVolInAda = await httpPost(volUrl, { "lastNHours": 24 }); - // const totalVolumeInAda = await httpPost(volUrl, {}); - dailyVolume.addGasToken(last24hVolInAda * 1e6); + const response: IResponse = await request(url, query, { + input: { + lastNHours: 24, + baseCurrency: "ADA" + } + }); + dailyVolume.addGasToken(response.volume * 1e6); return { dailyVolume, timestamp From 3b7cbc2b185a2ec210d4858f98173276c9dc189c Mon Sep 17 00:00:00 2001 From: Mr-Lucky Date: Mon, 12 Aug 2024 19:09:41 +0800 Subject: [PATCH 061/237] add new fees --- fees/secwarex.ts | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 fees/secwarex.ts diff --git a/fees/secwarex.ts b/fees/secwarex.ts new file mode 100644 index 0000000000..11db869f1c --- /dev/null +++ b/fees/secwarex.ts @@ -0,0 +1,68 @@ +import { FetchOptions, SimpleAdapter } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import BigNumber from "bignumber.js"; + +const USDT_MINT = "0x55d398326f99059ff775485246999027b3197955"; +const SECWAREX_FOUNDATION = "0x34ebddd30ccbd3f1e385b41bdadb30412323e34f"; +const SECWAREX_REVENUE_POOL = "0x648d7f4ad39186949e37e9223a152435ab97706c"; + +const BALANCE_ABI = 'erc20:balanceOf'; + +const fetch = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const totalFees = options.createBalances(); + const dailyProtocolRevenue = options.createBalances(); + const totalProtocolRevenue = options.createBalances(); + const [foundationBalanceStart, revenueBalanceStart] = await options.fromApi.multiCall({ + abi: BALANCE_ABI, + calls: [ + { + target: USDT_MINT, + params: [SECWAREX_FOUNDATION] + }, + { + target: USDT_MINT, + params: [SECWAREX_REVENUE_POOL] + }, + ] + }); + const [foundationBalanceEnd, revenueBalanceEnd] = await options.toApi.multiCall({ + abi: BALANCE_ABI, + calls: [ + { + target: USDT_MINT, + params: [SECWAREX_FOUNDATION] + }, + { + target: USDT_MINT, + params: [SECWAREX_REVENUE_POOL] + }, + ] + }); + const dailyFoundationReceived = BigNumber(foundationBalanceEnd).minus(BigNumber(foundationBalanceStart)); + const dailyRevenueReceived = BigNumber(revenueBalanceEnd).minus(BigNumber(revenueBalanceStart)); + const dailyTotal = dailyFoundationReceived.plus(dailyRevenueReceived).toFixed(0); + dailyFees.add(USDT_MINT, dailyTotal); + totalFees.add(USDT_MINT, BigNumber(foundationBalanceEnd).plus(BigNumber(revenueBalanceEnd)).toFixed(0)); + dailyProtocolRevenue.add(USDT_MINT, dailyFoundationReceived.toFixed(0)); + totalProtocolRevenue.add(USDT_MINT, foundationBalanceEnd); + return { dailyFees, totalFees, dailyProtocolRevenue, totalProtocolRevenue }; +}; + +const adapter: SimpleAdapter = { + version: 1, + adapter: { + [CHAIN.BSC]: { + fetch: fetch, + start: 36724659, + meta: { + methodology: { + ProtocolRevenue: "Treasury receives 30% of each purchase.", + Fees: "All fees comes from users for transaction security." + } + } + }, + }, +}; + +export default adapter; From 4ddd965d30d5585a5c61c3d04359b4b1afe966ab Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 12 Aug 2024 15:32:25 +0000 Subject: [PATCH 062/237] fix shuff --- dexs/aerodrome/index.ts | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/dexs/aerodrome/index.ts b/dexs/aerodrome/index.ts index cf67048447..dd4288e316 100644 --- a/dexs/aerodrome/index.ts +++ b/dexs/aerodrome/index.ts @@ -1,5 +1,5 @@ -import { FetchOptions, FetchResult, FetchResultV2, SimpleAdapter } from "../../adapters/types" -import { CHAIN } from "../../helpers/chains" +import { FetchOptions, FetchResultV2, SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; const sugar = '0xe521fc2C55AF632cdcC3D69E7EFEd93d56c89015'; const sugarOld = '0x2073D8035bB2b0F2e85aAF5a8732C6f397F9ff9b'; @@ -28,7 +28,7 @@ const event_swap = 'event Swap(address indexed sender,address indexed to,uint256 const fetch = async (options: FetchOptions): Promise => { const dailyVolume = options.createBalances() const dailyFees = options.createBalances() - const chunkSize = 400; + const chunkSize = 500; let currentOffset = 0; const allForSwaps: IForSwap[] = []; let unfinished = true; @@ -55,44 +55,43 @@ const fetch = async (options: FetchOptions): Promise => { if (currentOffset > 970) { // slipstream launched after ~970 v2 then we need to start from the beginning currentOffset = 970; } - allForSwaps.push(...forSwaps); + allForSwaps.push(...forSwaps.sort(() => Math.random() - 0.5)); // shuffle the array to avoid getting stuck on a single pool } const targets = [...new Set(allForSwaps.map((forSwap: IForSwap) => forSwap.lp))] + console.log(targets[0]) let logs: ILog[][] = []; - const targetChunkSize = 5; + const targetChunkSize = 10; let currentTargetOffset = 0; unfinished = true; while (unfinished) { - let endOffset = currentTargetOffset + targetChunkSize; + const randomNumber = Math.floor(Math.random() * 5); + let endOffset = currentTargetOffset + targetChunkSize + randomNumber; if (endOffset >= targets.length) { unfinished = false; endOffset = targets.length; } - let currentLogs: ILog[][] = await options.getLogs({ + const currentLogs: ILog[][] = await options.getLogs({ targets: targets.slice(currentTargetOffset, endOffset), eventAbi: event_swap, flatten: false, }) - logs.push(...currentLogs); - currentTargetOffset += targetChunkSize; + currentTargetOffset += targetChunkSize + randomNumber; } logs.forEach((logs: ILog[], idx: number) => { - const { token0, token1, pool_fee } = allForSwaps[idx] + const { token0, token1 } = allForSwaps[idx] logs.forEach((log: any) => { - dailyVolume.add(token0, BigInt(Math.abs(Number(log.amount0In)))) - dailyVolume.add(token1, BigInt(Math.abs(Number(log.amount1In)))) - dailyFees.add(token0, BigInt( Math.round((((Math.abs(Number(log.amount0In))) * Number(pool_fee)) / 10000)))) // 1% fee represented as pool_fee=100 - dailyFees.add(token1, BigInt( Math.round((((Math.abs(Number(log.amount1In))) * Number(pool_fee)) / 10000)))) + dailyVolume.add(token0, log.amount0Out) + dailyVolume.add(token1, log.amount1Out) }) }) - return { dailyVolume, dailyFees, dailyRevenue: dailyFees, dailyHoldersRevenue: dailyFees } + return { dailyVolume } } else { const forSwapsOld: IForSwap[] = (await options.api.call({ From 96241ba771555e315eb73ea76be61972de98268a Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Mon, 12 Aug 2024 17:39:03 +0200 Subject: [PATCH 063/237] feat:Adapter, Factor --- fees/factor/index.ts | 46 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 fees/factor/index.ts diff --git a/fees/factor/index.ts b/fees/factor/index.ts new file mode 100644 index 0000000000..06a33692fc --- /dev/null +++ b/fees/factor/index.ts @@ -0,0 +1,46 @@ +// https://docs.factor.fi/governance/factordao/platform-fees#harvest-fees +// https://docs.factor.fi/factor-sdk/rest-apis/utility-apis/stats + +import axios from "axios"; +import { Adapter, FetchResultFees } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; + +const url = "https://factor-stats-api.fly.dev/stats/dao-revenues/"; + +interface Date { + year: number; + month: number; + day: number; +} + +const getFormattedDate = (timestamp: number): Date => { + const date = new Date(timestamp * 1000); + const year = date.getFullYear(); + const month = date.getMonth() + 1; + const day = date.getDate(); + return { year, month, day }; +}; + +const fetch = async (timestamp: number): Promise => { + const { year, month, day } = getFormattedDate(timestamp); + const { data } = await axios.get(`${url}${year}/${month}`); + const dateKey = `${year}-${month}-${day}`; + const relevantData = data[dateKey]; + + return { + timestamp, + dailyFees: relevantData.todayIncome, + dailyRevenue: relevantData.todayIncome / 2, + }; +}; +const adapter: Adapter = { + adapter: { + [CHAIN.ARBITRUM]: { + fetch, + start: 1714687200, + runAtCurrTime: false, + }, + }, +}; + +export default adapter; From 7d3ee4c3c31b23607e33074e51ade84616a1e27e Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 12 Aug 2024 16:27:32 +0000 Subject: [PATCH 064/237] remove logs --- dexs/aerodrome/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/dexs/aerodrome/index.ts b/dexs/aerodrome/index.ts index dd4288e316..3c0866a016 100644 --- a/dexs/aerodrome/index.ts +++ b/dexs/aerodrome/index.ts @@ -59,7 +59,6 @@ const fetch = async (options: FetchOptions): Promise => { } const targets = [...new Set(allForSwaps.map((forSwap: IForSwap) => forSwap.lp))] - console.log(targets[0]) let logs: ILog[][] = []; const targetChunkSize = 10; From 4569f8fb1a8882eec6454e47949b4e36addfd683 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 12 Aug 2024 17:08:17 +0000 Subject: [PATCH 065/237] add filter out pool is less than 1000 usd tvl --- dexs/aerodrome/index.ts | 49 ++++++++++++++--------------------------- 1 file changed, 17 insertions(+), 32 deletions(-) diff --git a/dexs/aerodrome/index.ts b/dexs/aerodrome/index.ts index 3c0866a016..7969dc22d4 100644 --- a/dexs/aerodrome/index.ts +++ b/dexs/aerodrome/index.ts @@ -1,5 +1,7 @@ -import { FetchOptions, FetchResultV2, SimpleAdapter } from "../../adapters/types"; +import { FetchOptions, FetchResultV2, IJSON, SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; +import { addOneToken } from "../../helpers/prices"; +import { filterPools } from "../../helpers/uniswap"; const sugar = '0xe521fc2C55AF632cdcC3D69E7EFEd93d56c89015'; const sugarOld = '0x2073D8035bB2b0F2e85aAF5a8732C6f397F9ff9b'; @@ -58,38 +60,21 @@ const fetch = async (options: FetchOptions): Promise => { allForSwaps.push(...forSwaps.sort(() => Math.random() - 0.5)); // shuffle the array to avoid getting stuck on a single pool } - const targets = [...new Set(allForSwaps.map((forSwap: IForSwap) => forSwap.lp))] - - let logs: ILog[][] = []; - const targetChunkSize = 10; - let currentTargetOffset = 0; - unfinished = true; - - while (unfinished) { - const randomNumber = Math.floor(Math.random() * 5); - let endOffset = currentTargetOffset + targetChunkSize + randomNumber; - if (endOffset >= targets.length) { - unfinished = false; - endOffset = targets.length; - } - - const currentLogs: ILog[][] = await options.getLogs({ - targets: targets.slice(currentTargetOffset, endOffset), - eventAbi: event_swap, - flatten: false, - }) - logs.push(...currentLogs); - currentTargetOffset += targetChunkSize + randomNumber; - } - - logs.forEach((logs: ILog[], idx: number) => { - const { token0, token1 } = allForSwaps[idx] - logs.forEach((log: any) => { - dailyVolume.add(token0, log.amount0Out) - dailyVolume.add(token1, log.amount1Out) - }) + const pairObject: IJSON = {} + const pairs = allForSwaps.map((forSwap: IForSwap) => forSwap.lp) + pairs.forEach((pair: string, i: number) => { + pairObject[pair] = [allForSwaps[i].token0, allForSwaps[i].token1] }) - + // filter out the pairs with less than 1000 USD pooled value + const filteredPairs = await filterPools({ api: options.api, pairs: pairObject, createBalances: options.createBalances }) + const dailyVolume = options.createBalances() + await Promise.all(Object.keys(filteredPairs).map(async (pair) => { + const [token0, token1] = pairObject[pair] + const logs = await options.getLogs({ target: pair, eventAbi: event_swap }) + logs.forEach(log => { + addOneToken({ chain: options.chain, balances: dailyVolume, token0, token1, amount0: log.amount0Out, amount1: log.amount1Out }) + }) + })) return { dailyVolume } } else { From 93b6af2d3ffd2b4b24a0785c96539a684ecd14c0 Mon Sep 17 00:00:00 2001 From: "naijia.zheng" Date: Tue, 13 Aug 2024 13:14:41 +0800 Subject: [PATCH 066/237] fix ktx subgraph url --- fees/ktx.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fees/ktx.ts b/fees/ktx.ts index 69b8c6442f..8e3b60ece3 100644 --- a/fees/ktx.ts +++ b/fees/ktx.ts @@ -6,9 +6,9 @@ import { Chain } from "@defillama/sdk/build/general"; import { getTimestampAtStartOfDayUTC } from "../utils/date"; const endpoints = { - [BSC]: "https://subgraph.ktx.finance/subgraphs/name/ktx", - [MANTLE]: "https://mantlesubgraph.ktx.finance/subgraphs/name/ktx", - [ARBITRUM]: "https://arbisubgraph.ktx.systems/subgraphs/name/ktx", + [BSC]: "https://subgraph.satsuma-prod.com/dff088b6cd75/kesters-team/bsc_stats/api", + [MANTLE]: "https://subgraph.satsuma-prod.com/dff088b6cd75/kesters-team/mantle_stats/api", + [ARBITRUM]: "https://subgraph.satsuma-prod.com/dff088b6cd75/kesters-team/ktx_stats/api", }; const methodology = { From eacebd55eec69e5b0ed163da6c80208cf6f85f05 Mon Sep 17 00:00:00 2001 From: 0xbeekeeper Date: Tue, 13 Aug 2024 15:00:41 +0800 Subject: [PATCH 067/237] chore: rename the address const --- fees/secwarex.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fees/secwarex.ts b/fees/secwarex.ts index 11db869f1c..24e10e0a1a 100644 --- a/fees/secwarex.ts +++ b/fees/secwarex.ts @@ -3,8 +3,8 @@ import { CHAIN } from "../helpers/chains"; import BigNumber from "bignumber.js"; const USDT_MINT = "0x55d398326f99059ff775485246999027b3197955"; -const SECWAREX_FOUNDATION = "0x34ebddd30ccbd3f1e385b41bdadb30412323e34f"; -const SECWAREX_REVENUE_POOL = "0x648d7f4ad39186949e37e9223a152435ab97706c"; +const GOPLUS_FOUNDATION = "0x34ebddd30ccbd3f1e385b41bdadb30412323e34f"; +const GOPLUS_REVENUE_POOL = "0x648d7f4ad39186949e37e9223a152435ab97706c"; const BALANCE_ABI = 'erc20:balanceOf'; @@ -18,11 +18,11 @@ const fetch = async (options: FetchOptions) => { calls: [ { target: USDT_MINT, - params: [SECWAREX_FOUNDATION] + params: [GOPLUS_FOUNDATION] }, { target: USDT_MINT, - params: [SECWAREX_REVENUE_POOL] + params: [GOPLUS_REVENUE_POOL] }, ] }); @@ -31,11 +31,11 @@ const fetch = async (options: FetchOptions) => { calls: [ { target: USDT_MINT, - params: [SECWAREX_FOUNDATION] + params: [GOPLUS_FOUNDATION] }, { target: USDT_MINT, - params: [SECWAREX_REVENUE_POOL] + params: [GOPLUS_REVENUE_POOL] }, ] }); @@ -57,8 +57,8 @@ const adapter: SimpleAdapter = { start: 36724659, meta: { methodology: { - ProtocolRevenue: "Treasury receives 30% of each purchase.", - Fees: "All fees comes from users for transaction security." + ProtocolRevenue: "Treasury receives 30% of each security service purchase.", + Fees: "All fees comes from users for security service provided by GoPlus Network." } } }, From 64eb236924058af5253f57fefc07c1ffb193052a Mon Sep 17 00:00:00 2001 From: Mr-Lucky Date: Tue, 13 Aug 2024 18:23:27 +0800 Subject: [PATCH 068/237] fix --- fees/{secwarex.ts => goplus.ts} | 34 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 21 deletions(-) rename fees/{secwarex.ts => goplus.ts} (81%) diff --git a/fees/secwarex.ts b/fees/goplus.ts similarity index 81% rename from fees/secwarex.ts rename to fees/goplus.ts index 24e10e0a1a..2991f151cf 100644 --- a/fees/secwarex.ts +++ b/fees/goplus.ts @@ -7,6 +7,16 @@ const GOPLUS_FOUNDATION = "0x34ebddd30ccbd3f1e385b41bdadb30412323e34f"; const GOPLUS_REVENUE_POOL = "0x648d7f4ad39186949e37e9223a152435ab97706c"; const BALANCE_ABI = 'erc20:balanceOf'; +const CALLS = [ + { + target: USDT_MINT, + params: [GOPLUS_FOUNDATION] + }, + { + target: USDT_MINT, + params: [GOPLUS_REVENUE_POOL] + }, + ]; const fetch = async (options: FetchOptions) => { const dailyFees = options.createBalances(); @@ -15,29 +25,11 @@ const fetch = async (options: FetchOptions) => { const totalProtocolRevenue = options.createBalances(); const [foundationBalanceStart, revenueBalanceStart] = await options.fromApi.multiCall({ abi: BALANCE_ABI, - calls: [ - { - target: USDT_MINT, - params: [GOPLUS_FOUNDATION] - }, - { - target: USDT_MINT, - params: [GOPLUS_REVENUE_POOL] - }, - ] + calls: CALLS }); const [foundationBalanceEnd, revenueBalanceEnd] = await options.toApi.multiCall({ abi: BALANCE_ABI, - calls: [ - { - target: USDT_MINT, - params: [GOPLUS_FOUNDATION] - }, - { - target: USDT_MINT, - params: [GOPLUS_REVENUE_POOL] - }, - ] + calls: CALLS }); const dailyFoundationReceived = BigNumber(foundationBalanceEnd).minus(BigNumber(foundationBalanceStart)); const dailyRevenueReceived = BigNumber(revenueBalanceEnd).minus(BigNumber(revenueBalanceStart)); @@ -50,7 +42,7 @@ const fetch = async (options: FetchOptions) => { }; const adapter: SimpleAdapter = { - version: 1, + version: 2, adapter: { [CHAIN.BSC]: { fetch: fetch, From c468cda4f6461b811218e6af7426cfbec9f9d076 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 13 Aug 2024 15:25:02 +0000 Subject: [PATCH 069/237] fix rev --- fees/goplus.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fees/goplus.ts b/fees/goplus.ts index 2991f151cf..5074bacb7a 100644 --- a/fees/goplus.ts +++ b/fees/goplus.ts @@ -38,7 +38,7 @@ const fetch = async (options: FetchOptions) => { totalFees.add(USDT_MINT, BigNumber(foundationBalanceEnd).plus(BigNumber(revenueBalanceEnd)).toFixed(0)); dailyProtocolRevenue.add(USDT_MINT, dailyFoundationReceived.toFixed(0)); totalProtocolRevenue.add(USDT_MINT, foundationBalanceEnd); - return { dailyFees, totalFees, dailyProtocolRevenue, totalProtocolRevenue }; + return { dailyFees, totalFees, dailyProtocolRevenue, dailyRevenue: dailyProtocolRevenue, totalProtocolRevenue }; }; const adapter: SimpleAdapter = { @@ -46,7 +46,7 @@ const adapter: SimpleAdapter = { adapter: { [CHAIN.BSC]: { fetch: fetch, - start: 36724659, + start: 1717200000, meta: { methodology: { ProtocolRevenue: "Treasury receives 30% of each security service purchase.", From 9676ad9e1ee000bb2e43bde710a3f0bd7d4f3538 Mon Sep 17 00:00:00 2001 From: dementedgames Date: Tue, 13 Aug 2024 12:30:25 -0300 Subject: [PATCH 070/237] Add demented-games to fees dashboard --- fees/demented-games/abi.ts | 16 +++++++++++++ fees/demented-games/index.ts | 44 ++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 fees/demented-games/abi.ts create mode 100644 fees/demented-games/index.ts diff --git a/fees/demented-games/abi.ts b/fees/demented-games/abi.ts new file mode 100644 index 0000000000..cdd290362c --- /dev/null +++ b/fees/demented-games/abi.ts @@ -0,0 +1,16 @@ +export const commonAbi = [ + { + constant: true, + inputs: [], + name: 'accumulatedFees', + outputs: [ + { + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + ]; \ No newline at end of file diff --git a/fees/demented-games/index.ts b/fees/demented-games/index.ts new file mode 100644 index 0000000000..a3458ffb03 --- /dev/null +++ b/fees/demented-games/index.ts @@ -0,0 +1,44 @@ +import { ETHER_ADDRESS } from '@defillama/sdk/build/general'; +import { Adapter, FetchOptions } from '../../adapters/types'; +import { CHAIN } from '../../helpers/chains'; +import { commonAbi } from './abi'; + +const ROULETTE_ADDRESS = '0x94ba26ee118ef6c407c75dbb23385b1ad71a4547'; +const PUMP_OR_REKT_ADDRESS = '0xcbc003cb76c5d218cba2dfb3a2b2f101950ed7e7'; + +async function fetch({ createBalances, api }: FetchOptions) { + const totalFees = createBalances(); + + const pumpOrRektFees = await api.call({ + abi: commonAbi[0], + target: ROULETTE_ADDRESS, + }); + + const roulletteFees = await api.call({ + abi: commonAbi[0], + target: PUMP_OR_REKT_ADDRESS, + }); + + totalFees.add(ETHER_ADDRESS, pumpOrRektFees); + totalFees.add(ETHER_ADDRESS, roulletteFees); + + return { totalFees }; +} + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.FUSE]: { + fetch, + runAtCurrTime: true, + start: 1720396800, + meta: { + methodology: { + Fees: 'Sum of all fees from each game on the Demented Games platform.', + }, + }, + }, + }, +}; + +export default adapter; From 4a280039e79c0319a4e1c8a6f36ceeb753371527 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Tue, 13 Aug 2024 17:13:08 +0100 Subject: [PATCH 071/237] photon fees --- fees/photon.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 fees/photon.ts diff --git a/fees/photon.ts b/fees/photon.ts new file mode 100644 index 0000000000..14f8d53380 --- /dev/null +++ b/fees/photon.ts @@ -0,0 +1,29 @@ +import { FetchOptions, SimpleAdapter } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import { queryDune } from "../helpers/dune"; + +const fetch: any = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const value = (await queryDune("3521814", { + start: options.startTimestamp, + end: options.endTimestamp, + receiver: 'AVUCZyuT35YSuj4RH7fwiyPu82Djn2Hfg7y2ND2XcnZH' + })); + dailyFees.add('So11111111111111111111111111111111111111112', value[0].fee_token_amount); + + return { dailyFees, dailyRevenue: dailyFees } + +} + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.SOLANA]: { + fetch: fetch, + start: 0, + }, + }, + isExpensiveAdapter: true +}; + +export default adapter; \ No newline at end of file From dcb428f04b75e34aa8919a446bd835bbfa015dbd Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 13 Aug 2024 16:20:23 +0000 Subject: [PATCH 072/237] fix jupiter-perpetual --- dexs/jupiter-perpetual/index.ts | 39 ++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/dexs/jupiter-perpetual/index.ts b/dexs/jupiter-perpetual/index.ts index 7c49506af9..e5b70d1ddc 100644 --- a/dexs/jupiter-perpetual/index.ts +++ b/dexs/jupiter-perpetual/index.ts @@ -1,19 +1,40 @@ +import { version } from "os"; import { FetchResult } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; -import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; -import { queryDune } from "../../helpers/dune"; +import { httpGet } from "../../utils/fetchURL"; + +const list_of_mints: string[] = [ + "So11111111111111111111111111111111111111112", + "3NZ9JMVBmGAqocybic2c7LQCJScmgsAZ6vQqTDzcqmJh", + "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs", +] const fetch = async (timestamp: number): Promise => { - const unixTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); - // 3385640 old query id - const data = await queryDune("3391484", { endTime: unixTimestamp + 86400 }); + const header_user = { + "accept": "*/*", + "accept-language": "en-US,en;q=0.9", + "content-type": "application/json", + "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"90\", \"Google Chrome\";v=\"90\"", + "sec-ch-ua-mobile": "?0", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "sec-gpc": "1", + "referrer": "https://www.jup.ag/", + "referrerPolicy": "strict-origin-when-cross-origin", + "mode": "cors", + } + const url = (token: string) => `https://perp-api.jup.ag/trpc/tradeVolume?batch=1&input={"0":{"json":{"mint":"${token}"}}}` + const fetches = (await Promise.all(list_of_mints.map(token => httpGet(url(token), { headers: header_user })))).flat(); + const dailyVolume = fetches.reduce((acc, { result }) => acc + result.data.json.volume, 0); return { - dailyVolume: data[0].volume, - timestamp: unixTimestamp, + dailyVolume: dailyVolume, + timestamp: timestamp, }; }; const adapter = { + version: 2, breakdown: { derivatives: { [CHAIN.SOLANA]: { @@ -22,8 +43,6 @@ const adapter = { start: 1705968000, }, }, - }, - isExpensiveAdapter: true, + } }; - export default adapter; From 6ad478fa6f2a64ac55e896d4e6c7eb933220e195 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 13 Aug 2024 16:23:21 +0000 Subject: [PATCH 073/237] remove not use --- dexs/jupiter-perpetual/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/dexs/jupiter-perpetual/index.ts b/dexs/jupiter-perpetual/index.ts index e5b70d1ddc..d3a7a20a96 100644 --- a/dexs/jupiter-perpetual/index.ts +++ b/dexs/jupiter-perpetual/index.ts @@ -1,4 +1,3 @@ -import { version } from "os"; import { FetchResult } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { httpGet } from "../../utils/fetchURL"; From 035589fa7434a983b9a61ff8cc2ca048e18c0ba0 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 13 Aug 2024 16:24:03 +0000 Subject: [PATCH 074/237] add header --- dexs/jupiter-perpetual/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/dexs/jupiter-perpetual/index.ts b/dexs/jupiter-perpetual/index.ts index d3a7a20a96..ee3cf5cd74 100644 --- a/dexs/jupiter-perpetual/index.ts +++ b/dexs/jupiter-perpetual/index.ts @@ -22,6 +22,7 @@ const fetch = async (timestamp: number): Promise => { "referrer": "https://www.jup.ag/", "referrerPolicy": "strict-origin-when-cross-origin", "mode": "cors", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", } const url = (token: string) => `https://perp-api.jup.ag/trpc/tradeVolume?batch=1&input={"0":{"json":{"mint":"${token}"}}}` const fetches = (await Promise.all(list_of_mints.map(token => httpGet(url(token), { headers: header_user })))).flat(); From 7cfcd7e6bf67564e178af46007a55020980f7a28 Mon Sep 17 00:00:00 2001 From: khaled grira Date: Tue, 13 Aug 2024 19:30:43 +0200 Subject: [PATCH 075/237] Allez Labs: Adding Fee data for Kamino lending, this includes Interest, Liquidation and origination revenue as well as interest generated data --- fees/kamino-lending/index.ts | 57 ++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 fees/kamino-lending/index.ts diff --git a/fees/kamino-lending/index.ts b/fees/kamino-lending/index.ts new file mode 100644 index 0000000000..1e93b36f95 --- /dev/null +++ b/fees/kamino-lending/index.ts @@ -0,0 +1,57 @@ +import { Adapter, FetchV2 } from "../../adapters/types"; +import fetchURL from "../../utils/fetchURL"; +import { CHAIN } from "../../helpers/chains"; +import { getTimestampAtStartOfPreviousDayUTC } from "../../utils/date"; + +// Define the URL of the endpoint +const AllezLabsKaminoFeeEndpoint = 'https://allez-xyz--kamino-fees-api-get-fees-lifetime-kamino.modal.run'; +const KaminoStartTimestamp = 1697068700; + +// Function to make the GET request +const fetch: FetchV2 = async ({ endTimestamp }) => { + const dayTimestamp = getTimestampAtStartOfPreviousDayUTC(endTimestamp); + const historicalFeesRes = (await fetchURL(AllezLabsKaminoFeeEndpoint)); + + const totalFee = historicalFeesRes['data'] + .filter(row => row.timestamp <= dayTimestamp) + .reduce((acc, {KlendFeesUsd}) => acc + KlendFeesUsd, 0); + + const totalRevenue = historicalFeesRes['data'] + .filter(row => row.timestamp <= dayTimestamp) + .reduce((acc, {KlendRevenueUsd}) => acc + KlendRevenueUsd, 0); + + + const dailyFee = historicalFeesRes['data'] + .find(row => Math.abs(row.timestamp - dayTimestamp) < 3600*24 - 1)?.KlendFeesUsd; + + const dailyRevenue = historicalFeesRes['data'] + .find(row => Math.abs(row.timestamp - dayTimestamp) < 3600*24 - 1)?.KlendRevenueUsd; + + return { + timestamp: dayTimestamp, + totalFees: `${totalFee}`, + dailyFees: `${dailyFee}`, + totalRevenue: `${totalRevenue}`, + dailyRevenue: `${dailyRevenue}` + }; +}; +const methodology = { + Fees: "Fees are aggregated by Allez Labs using the Kamino API" +} + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.SOLANA]: { + fetch, + runAtCurrTime: true, + start: 1697068700, + meta: { + methodology + } + } + } +} +export default adapter; + + From eab682ab03cff924b7ffe2c3d7e5b842e68aadce Mon Sep 17 00:00:00 2001 From: bergben Date: Tue, 13 Aug 2024 21:45:38 +0200 Subject: [PATCH 076/237] fluid: add base --- fees/fluid/index.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/fees/fluid/index.ts b/fees/fluid/index.ts index 1c681d31b9..e1d867369d 100644 --- a/fees/fluid/index.ts +++ b/fees/fluid/index.ts @@ -56,6 +56,9 @@ const revenueResolver = async (api: sdk.ChainApi) => { case CHAIN.ARBITRUM: address = "0xFe4affaD55c7AeC012346195654634F7C786fA2c"; break; + case CHAIN.BASE: + address = "0xFe4affaD55c7AeC012346195654634F7C786fA2c"; + break; } return { @@ -110,6 +113,9 @@ const liquidityResolver = async (api: sdk.ChainApi) => { case CHAIN.ARBITRUM: address = "0x46859d33E662d4bF18eEED88f74C36256E606e44"; break; + case CHAIN.BASE: + address = "0x35A915336e2b3349FA94c133491b915eD3D3b0cd"; + break; } return { @@ -176,6 +182,9 @@ const vaultResolver = async (api: sdk.ChainApi) => { case CHAIN.ARBITRUM: address = "0x77648D39be25a1422467060e11E5b979463bEA3d"; break; + case CHAIN.BASE: + address = "0x94695A9d0429aD5eFec0106a467aDEaDf71762F9"; + break; } return { @@ -222,6 +231,14 @@ const config = { vaultResolverExistAfterTimestamp: 1720018637, vaultResolverExistAfterBlock: 228361632, }, + base: { + dataStartTimestamp: 1723484700, // ~ before any activity started (block 18347681) + + revenueResolverExistAfterBlock: 18347681, + // vault resolver related revenue only exists after this timestamp. revenue / fees before are negligible + vaultResolverExistAfterTimestamp: 1723484700, + vaultResolverExistAfterBlock: 18347681, + }, }; const methodologyFluid = { @@ -262,6 +279,13 @@ const adapter: Adapter = { methodology: methodologyFluid, }, }, + [CHAIN.BASE]: { + fetch, + start: config.base.dataStartTimestamp, + meta: { + methodology: methodologyFluid, + }, + }, }, }; From 70282ab59e1dae6234e9141094ff84d1ade6fd99 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Wed, 14 Aug 2024 01:34:10 +0100 Subject: [PATCH 077/237] add dexscreener fees --- fees/dexscreener.ts | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 fees/dexscreener.ts diff --git a/fees/dexscreener.ts b/fees/dexscreener.ts new file mode 100644 index 0000000000..d3e307683a --- /dev/null +++ b/fees/dexscreener.ts @@ -0,0 +1,52 @@ +import { Adapter, FetchOptions } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import coreAssets from "../helpers/coreAssets.json"; +import { queryDune } from "../helpers/dune"; +import { addTokensReceived } from '../helpers/token'; + +const USDC = { + ethereum: coreAssets.ethereum.USDC, + polygon: coreAssets.polygon.USDC_CIRCLE, + base: coreAssets.base.USDC, +} as any + +const eth = async (options: FetchOptions) => { + const dailyFees = await addTokensReceived({ options, tokens: [USDC[options.chain]], target: '0xbf07aFF5114BAd83720A8b9Fc7585aFd2ef9E4C2' }) + return { + dailyFees, + dailyRevenue: dailyFees, + } +} + +const sol = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const value = (await queryDune("3986808", { + start: options.startTimestamp, + end: options.endTimestamp, + receiver: '23vEM5NAmK68uBHFM52nfNtZn7CgpHDSmAGWebsjg5ft', + token_mint_address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' + })); + dailyFees.add('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', value[0].received*1e6); + return { + dailyFees, + dailyRevenue: dailyFees, + } +} + +const adapter: Adapter = { + version: 2, + adapter: [CHAIN.ETHEREUM, CHAIN.BASE, CHAIN.POLYGON].reduce((all, chain) => ({ + ...all, + [chain]: { + fetch: eth, + start: 0, + } + }), { + [CHAIN.SOLANA]: { + fetch: sol, + start: 0 + } + }) +} + +export default adapter; \ No newline at end of file From b54d4cd39a2ce00ff928ca033a656656cb6b79a5 Mon Sep 17 00:00:00 2001 From: Pavel Shuvalov Date: Wed, 14 Aug 2024 08:59:29 +0400 Subject: [PATCH 078/237] Add Ston.fi fees and revenue calculations --- fees/ston/index.ts | 87 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 fees/ston/index.ts diff --git a/fees/ston/index.ts b/fees/ston/index.ts new file mode 100644 index 0000000000..715505a13f --- /dev/null +++ b/fees/ston/index.ts @@ -0,0 +1,87 @@ +import { CHAIN } from '../../helpers/chains' +import postURL from "../../utils/fetchURL" +import fetchURL from "../../utils/fetchURL" +import { FetchOptions } from "../../adapters/types"; + + +const endpoint = "https://api.ston.fi/v1/stats/operations?" + + +const fetchFees = async (options: FetchOptions) => { + console.log("Requesting pools list") + const pool_list = (await fetchURL('https://api.ston.fi/v1/pools')).pool_list; + // store pools info for each asset to calculate weigthed price later + const asset2pools = {}; + const add_pool = (address: string, tvl: number, reserve: number) => { + if (!asset2pools[address]) { + asset2pools[address] = [] + } + asset2pools[address].push({tvl, reserve}) + } + for (const pool of pool_list) { + // ignore pools with low liquidity + if (pool['lp_total_supply_usd'] < 1000) { + continue + } + add_pool(pool['token0_address'], Number(pool['lp_total_supply_usd']) / 2, Number(pool['reserve0'])) + add_pool(pool['token1_address'], Number(pool['lp_total_supply_usd']) / 2, Number(pool['reserve1'])) + } + // price is calculated as total tvl / total reserve across all pools + const asset_prices = {} + for (const asset in asset2pools) { + const pools = asset2pools[asset] + const price = pools.map((pool) => pool.tvl).reduce((a, b) => a + b, 0) / pools.map((pool) => pool.reserve).reduce((a, b) => a + b, 0) + asset_prices[asset] = price + } + // explicitly set price for pTON based on TON price + asset_prices['EQCM3B12QK1e4yZSf8GtBRT0aLMNyEsBc_DhVfRRtOEffLez'] = asset_prices['EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c'] + + const startTime = new Date(options.startTimestamp * 1000).toISOString().split(".")[0] + const endTime = new Date(options.endTimestamp * 1000).toISOString().split(".")[0] + console.log(`Requesting last day operations: ${startTime}, ${endTime}`) + const res = await postURL(`${endpoint}since=${startTime}&until=${endTime}`) + + let total_lp_fees = 0 + let total_protocol_fees = 0 + + // go through all operations and calculate fees based on the current prices + for (const item of res['operations']) { + const operation = item.operation + if (operation.success && operation.operation_type == 'swap' && operation.exit_code == 'swap_ok' ) { + if (operation.fee_asset_address in asset_prices) { + const price = asset_prices[operation.fee_asset_address] + total_lp_fees += operation.lp_fee_amount * price + total_protocol_fees += operation.protocol_fee_amount * price + } else { + console.log("Fee asset not found", operation.fee_asset_address) + continue + } + } + } + + return { + dailyUserFees: total_lp_fees + total_protocol_fees, + dailyFees: total_lp_fees + total_protocol_fees, + dailySupplySideRevenue: total_lp_fees, + dailyRevenue: total_protocol_fees + } + + }; + +export default { + version: 2, + runAtCurrTime: true, + adapter: { + [CHAIN.TON]: { + start: 1700000000, + meta: { + methodology: { + UserFees: "User pays fee on each swap.", + Revenue: "Protocol receives 1/3 of fees paid by users.", + SupplySideRevenue: "2/3 of user fees are distributed among LPs.", + }, + }, + fetch: fetchFees, + }, + }, +} From ae35c067820a2c9afe0dbcc8d11c7eb28e1a50ea Mon Sep 17 00:00:00 2001 From: MonkeyD1uffy <34332336+MonkeyD1uffy@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:08:15 +0700 Subject: [PATCH 079/237] Update lifinity.ts Update API URL --- fees/lifinity.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/lifinity.ts b/fees/lifinity.ts index 4125c7ffc1..e9dcd3371b 100644 --- a/fees/lifinity.ts +++ b/fees/lifinity.ts @@ -4,7 +4,7 @@ import { CHAIN } from "../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../helpers/getUniSubgraphVolume"; import fetchURL from "../utils/fetchURL"; -const historicalVolumeEndpoint = "https://lifinity.io/api/dashboard/volume" +const historicalVolumeEndpoint = "https://api.lifinity.io/api/dashboard/volume" interface IVolumeall { fees: number; From 262183a7ebaf2387bae8823c020aa86e07a414d0 Mon Sep 17 00:00:00 2001 From: rasplarry Date: Wed, 14 Aug 2024 19:59:40 +0900 Subject: [PATCH 080/237] feat: Implement seiyan-fun adapter --- dexs/seiyan-fun/index.ts | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 dexs/seiyan-fun/index.ts diff --git a/dexs/seiyan-fun/index.ts b/dexs/seiyan-fun/index.ts new file mode 100644 index 0000000000..aa93c63714 --- /dev/null +++ b/dexs/seiyan-fun/index.ts @@ -0,0 +1,37 @@ +import fetchURL from "../../utils/fetchURL"; +import { CHAIN } from "../../helpers/chains"; +import { + getTimestampAtStartOfDayUTC, + getTimestampAtStartOfNextDayUTC, +} from "../../utils/date"; + +const SEIYAN_FUN_BASE_URL = "https://seiyan.fun/api/public/v1"; +const SEI_PACIFIC_CAIP_CHAIN_ID = "cosmos:sei-pacific-1"; +const SEIYAN_FUN_INITIAL_TIMESTAMP = 1722510000; // 2024-08-01 11:00:00 UTC + +const buildTradingVolumeUrl = (startAt: number, endAt: number) => + `${SEIYAN_FUN_BASE_URL}/trading-volume?caipChainID=${SEI_PACIFIC_CAIP_CHAIN_ID}&startAt=${startAt}&endAt=${endAt}`; + +const fetch = async (timestamp: number) => { + const dayStart = getTimestampAtStartOfDayUTC(timestamp); + const nextDayStart = getTimestampAtStartOfNextDayUTC(timestamp); + const url = buildTradingVolumeUrl(dayStart, nextDayStart); + + const { volume } = await fetchURL(url); + + return { + dailyVolume: volume, + timestamp, + }; +}; + +const adapter = { + adapter: { + [CHAIN.SEI]: { + fetch, + start: SEIYAN_FUN_INITIAL_TIMESTAMP, + }, + }, +}; + +export default adapter; From 501b1ff257053e0294a4c8d56ebe30483bbe5bc9 Mon Sep 17 00:00:00 2001 From: Pavel Shuvalov Date: Wed, 14 Aug 2024 15:11:00 +0400 Subject: [PATCH 081/237] Add referral fees --- fees/ston/index.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fees/ston/index.ts b/fees/ston/index.ts index 715505a13f..1beaf36fe7 100644 --- a/fees/ston/index.ts +++ b/fees/ston/index.ts @@ -43,6 +43,8 @@ const fetchFees = async (options: FetchOptions) => { let total_lp_fees = 0 let total_protocol_fees = 0 + let referral_fees = 0 + // go through all operations and calculate fees based on the current prices for (const item of res['operations']) { @@ -52,16 +54,17 @@ const fetchFees = async (options: FetchOptions) => { const price = asset_prices[operation.fee_asset_address] total_lp_fees += operation.lp_fee_amount * price total_protocol_fees += operation.protocol_fee_amount * price + referral_fees += (operation.referral_fee_amount || 0) * price } else { - console.log("Fee asset not found", operation.fee_asset_address) + // console.log("Fee asset not found", operation.fee_asset_address) continue } } } return { - dailyUserFees: total_lp_fees + total_protocol_fees, - dailyFees: total_lp_fees + total_protocol_fees, + dailyUserFees: total_lp_fees + total_protocol_fees + referral_fees, + dailyFees: total_lp_fees + total_protocol_fees + referral_fees, dailySupplySideRevenue: total_lp_fees, dailyRevenue: total_protocol_fees } @@ -76,9 +79,9 @@ export default { start: 1700000000, meta: { methodology: { - UserFees: "User pays fee on each swap.", - Revenue: "Protocol receives 1/3 of fees paid by users.", - SupplySideRevenue: "2/3 of user fees are distributed among LPs.", + UserFees: "User pays fee on each swap. Fees go to the protocol, LPs and optinally to the referral address.", + Revenue: "Protocol receives 1/3 of fees paid by users (not including referral fees).", + SupplySideRevenue: "2/3 of user fees are distributed among LPs (not including referral fees).", }, }, fetch: fetchFees, From b5712cfa12c59683ab151336a26079bf78a8cbc2 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 14 Aug 2024 14:57:25 +0000 Subject: [PATCH 082/237] fix ragage --- fees/gmx-v2/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fees/gmx-v2/index.ts b/fees/gmx-v2/index.ts index 930c1bc4cd..921d669609 100644 --- a/fees/gmx-v2/index.ts +++ b/fees/gmx-v2/index.ts @@ -12,12 +12,12 @@ interface IFee { } const fetch = (chain: Chain) => { - return async (timestamp: number, _t: any, options: FetchOptions): Promise => { + return async (timestamp: number, _t: any, _: FetchOptions): Promise => { const fees: IFee[] = (await queryDune(chain === CHAIN.ARBITRUM ? "3971843" : "3971936")) // const queryId = chain === CHAIN.ARBITRUM ? "3186689" : "3186714"; // const fees: IFee[] = (await fetchURLWithRetry(`https://api.dune.com/api/v1/query/${queryId}/results`)).result.rows; // const fees: IFee[] = require(`./${chain}.json`); - const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(options.endTimestamp * 1000)); + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); const dateString = new Date(dayTimestamp * 1000).toISOString().split("T")[0]; const daily = fees.find(fee => fee.time.split(' ')[0] === dateString); const dailyFees = daily?.v2_fees || 0 From 62bf03c58f00fa5d5a24190a8e3741366e9be0ac Mon Sep 17 00:00:00 2001 From: dementedgames Date: Wed, 14 Aug 2024 14:57:33 -0300 Subject: [PATCH 083/237] Add dailyFees --- fees/demented-games/index.ts | 45 ++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/fees/demented-games/index.ts b/fees/demented-games/index.ts index a3458ffb03..ad0d412bfc 100644 --- a/fees/demented-games/index.ts +++ b/fees/demented-games/index.ts @@ -1,4 +1,5 @@ import { ETHER_ADDRESS } from '@defillama/sdk/build/general'; +import BigNumber from 'bignumber.js'; import { Adapter, FetchOptions } from '../../adapters/types'; import { CHAIN } from '../../helpers/chains'; import { commonAbi } from './abi'; @@ -6,23 +7,37 @@ import { commonAbi } from './abi'; const ROULETTE_ADDRESS = '0x94ba26ee118ef6c407c75dbb23385b1ad71a4547'; const PUMP_OR_REKT_ADDRESS = '0xcbc003cb76c5d218cba2dfb3a2b2f101950ed7e7'; +const startDate = new Date('2024-07-26T00:00:00.000Z').getTime(); +const currentDate = new Date().getTime(); +const differenceInTime = currentDate - startDate; +const totalDays = Math.floor(differenceInTime / (1000 * 60 * 60 * 24)); + async function fetch({ createBalances, api }: FetchOptions) { const totalFees = createBalances(); - - const pumpOrRektFees = await api.call({ - abi: commonAbi[0], - target: ROULETTE_ADDRESS, - }); - - const roulletteFees = await api.call({ - abi: commonAbi[0], - target: PUMP_OR_REKT_ADDRESS, - }); - - totalFees.add(ETHER_ADDRESS, pumpOrRektFees); - totalFees.add(ETHER_ADDRESS, roulletteFees); - - return { totalFees }; + const dailyFees = createBalances(); + + const pumpOrRektFees = BigNumber( + await api.call({ + abi: commonAbi[0], + target: ROULETTE_ADDRESS, + }) + ); + const roulletteFees = BigNumber( + await api.call({ + abi: commonAbi[0], + target: PUMP_OR_REKT_ADDRESS, + }) + ); + + const total = pumpOrRektFees.plus(roulletteFees); + + totalFees.add(ETHER_ADDRESS, total); + dailyFees.add(ETHER_ADDRESS, total.dividedToIntegerBy(totalDays)); + + return { + totalFees, + dailyFees, + }; } const adapter: Adapter = { From c1f75579d851b96473c3736f45df5e8c8ccfbf23 Mon Sep 17 00:00:00 2001 From: Leonardo Nagasaki <56836200+Leoakin43@users.noreply.github.com> Date: Wed, 14 Aug 2024 16:08:51 -0300 Subject: [PATCH 084/237] add moonwell fees --- fees/moonwell/index.ts | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 fees/moonwell/index.ts diff --git a/fees/moonwell/index.ts b/fees/moonwell/index.ts new file mode 100644 index 0000000000..9d622a01ee --- /dev/null +++ b/fees/moonwell/index.ts @@ -0,0 +1,8 @@ +import { compoundV2Export, } from "../../helpers/compoundV2"; + +const baseUnitroller = "0xfBb21d0380beE3312B33c4353c8936a0F13EF26C"; +const moonbeamUnitroller = "0x8E00D5e02E65A19337Cdba98bbA9F84d4186a180"; +const moonriverUnitroller = "0x0b7a0EAA884849c6Af7a129e899536dDDcA4905E"; +const optimismUnitroller = "0xCa889f40aae37FFf165BccF69aeF1E82b5C511B9"; + +export default compoundV2Export({ base: baseUnitroller, moonbeam: moonbeamUnitroller, moonriver: moonriverUnitroller, optimism: optimismUnitroller }); From 2c272116de76bf929fb3a5ff0fa1867b996e4fdb Mon Sep 17 00:00:00 2001 From: Define101 Date: Wed, 14 Aug 2024 21:28:09 +0100 Subject: [PATCH 085/237] add sei to vertex --- fees/vertex-protocol.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fees/vertex-protocol.ts b/fees/vertex-protocol.ts index 554461f8e6..358a94f729 100644 --- a/fees/vertex-protocol.ts +++ b/fees/vertex-protocol.ts @@ -13,6 +13,7 @@ interface MarketSnapshots { interface QueryBody { market_snapshots: MarketSnapshots; } + interface IData { [s: string]: string; } @@ -27,6 +28,7 @@ interface Response { const archiveBaseUrl = "https://archive.prod.vertexprotocol.com/v1"; const archiveMatleBaseUrl = "https://archive.mantle-prod.vertexprotocol.com/v1"; +const archiveSeiBaseUrl = "https://archive.sei-prod.vertexprotocol.com/v1"; type TURL = { [s: string]: string; @@ -35,6 +37,7 @@ type TURL = { const url: TURL = { [CHAIN.ARBITRUM]: archiveBaseUrl, [CHAIN.MANTLE]: archiveMatleBaseUrl, + [CHAIN.SEI]: archiveSeiBaseUrl, // Added Sei chain URL }; const query = async (max_time: number, fetchOptions: FetchOptions): Promise => { @@ -48,7 +51,6 @@ const query = async (max_time: number, fetchOptions: FetchOptions): Promise Date: Wed, 14 Aug 2024 21:35:17 +0100 Subject: [PATCH 086/237] add derivatives and volume sei vertex --- dexs/vertex-protocol/index.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/dexs/vertex-protocol/index.ts b/dexs/vertex-protocol/index.ts index 1b094dc0cd..25ab8c8b83 100644 --- a/dexs/vertex-protocol/index.ts +++ b/dexs/vertex-protocol/index.ts @@ -14,6 +14,9 @@ const archiveBaseUrl = "https://archive.prod.vertexprotocol.com/v1"; const gatewayMatleBaseUrl = "https://gateway.mantle-prod.vertexprotocol.com/v1"; const archiveMatleBaseUrl = "https://archive.mantle-prod.vertexprotocol.com/v1"; +const gatewaySeiBaseUrl = "https://gateway.sei-prod.vertexprotocol.com/v1"; +const archiveSeiBaseUrl = "https://archive.sei-prod.vertexprotocol.com/v1"; + type TURL = { [s: string]: { gateway: string; @@ -28,7 +31,11 @@ const url: TURL = { [CHAIN.MANTLE]: { gateway: gatewayMatleBaseUrl, archive: archiveMatleBaseUrl, - } + }, + [CHAIN.SEI]: { + gateway: gatewaySeiBaseUrl, + archive: archiveSeiBaseUrl, + }, } const fetchValidSymbols = async (fetchOptions: FetchOptions): Promise => { @@ -105,6 +112,7 @@ const fetchPerps = async (timeStamp: number, _: any, fetchOptions: FetchOptions) }; const startTime = 1682514000; +const seiStartTime = 1723649209 const adapter: BreakdownAdapter = { breakdown: { @@ -116,6 +124,10 @@ const adapter: BreakdownAdapter = { [CHAIN.MANTLE]: { fetch: fetchSpots, start: startTime, + }, + [CHAIN.SEI]: { + fetch: fetchSpots, + start: seiStartTime, } }, derivatives: { @@ -126,6 +138,10 @@ const adapter: BreakdownAdapter = { [CHAIN.MANTLE]: { fetch: fetchPerps, start: 1718841600, + }, + [CHAIN.SEI]: { + fetch: fetchSpots, + start: seiStartTime, } }, }, From 961753f16df4bcc1ad4c5f8fd75e96cfcd8c2d4c Mon Sep 17 00:00:00 2001 From: Leonardo Nagasaki <56836200+Leoakin43@users.noreply.github.com> Date: Wed, 14 Aug 2024 19:02:47 -0300 Subject: [PATCH 087/237] Add ReservesAdded event --- fees/moonwell/index.ts | 91 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 2 deletions(-) diff --git a/fees/moonwell/index.ts b/fees/moonwell/index.ts index 9d622a01ee..1617478590 100644 --- a/fees/moonwell/index.ts +++ b/fees/moonwell/index.ts @@ -1,8 +1,95 @@ -import { compoundV2Export, } from "../../helpers/compoundV2"; +import ADDRESSES from '../../helpers/coreAssets.json' +import { BaseAdapter, FetchOptions, IJSON, SimpleAdapter } from "../../adapters/types"; +import * as sdk from "@defillama/sdk"; + +const comptrollerABI = { + underlying: "address:underlying", + getAllMarkets: "address[]:getAllMarkets", + accrueInterest: "event AccrueInterest(uint256 cashPrior,uint256 interestAccumulated,uint256 borrowIndex,uint256 totalBorrows)", + reservesAdded: "event ReservesAdded(address benefactor,uint256 addAmount,uint256 newTotalReserves)", + reserveFactor: "uint256:reserveFactorMantissa", +}; const baseUnitroller = "0xfBb21d0380beE3312B33c4353c8936a0F13EF26C"; const moonbeamUnitroller = "0x8E00D5e02E65A19337Cdba98bbA9F84d4186a180"; const moonriverUnitroller = "0x0b7a0EAA884849c6Af7a129e899536dDDcA4905E"; const optimismUnitroller = "0xCa889f40aae37FFf165BccF69aeF1E82b5C511B9"; -export default compoundV2Export({ base: baseUnitroller, moonbeam: moonbeamUnitroller, moonriver: moonriverUnitroller, optimism: optimismUnitroller }); +async function getFees(market: string, { createBalances, api, getLogs, }: FetchOptions, { + dailyFees, + dailyRevenue, + abis = {}, +}: { + dailyFees?: sdk.Balances, + dailyRevenue?: sdk.Balances, + abis?: any +}) { + if (!dailyFees) dailyFees = createBalances() + if (!dailyRevenue) dailyRevenue = createBalances() + const markets = await api.call({ target: market, abi: comptrollerABI.getAllMarkets, }) + const underlyings = await api.multiCall({ calls: markets, abi: comptrollerABI.underlying, permitFailure: true, }); + underlyings.forEach((underlying, index) => { + if (!underlying) underlyings[index] = ADDRESSES.null + }) + const reserveFactors = await api.multiCall({ calls: markets, abi: abis.reserveFactor ?? comptrollerABI.reserveFactor, }); + const logs: any[] = (await getLogs({ + targets: markets, + flatten: false, + eventAbi: comptrollerABI.accrueInterest, + })).map((log: any, index: number) => { + return log.map((i: any) => ({ + ...i, + interestAccumulated: Number(i.interestAccumulated), + marketIndex: index, + })); + }).flat() + + const reservesAddedLogs: any[] = (await getLogs({ + targets: markets, + flatten: false, + eventAbi: comptrollerABI.reservesAdded, + })).map((log: any, index: number) => { + return log.map((i: any) => ({ + ...i, + addAmount: Number(i.addAmount), + marketIndex: index, + })); + }).flat() + + logs.forEach((log: any) => { + const marketIndex = log.marketIndex; + const underlying = underlyings[marketIndex] + dailyFees!.add(underlying, log.interestAccumulated); + dailyRevenue!.add(underlying, log.interestAccumulated * Number(reserveFactors[marketIndex]) / 1e18); + }) + + reservesAddedLogs.forEach((log: any) => { + const marketIndex = log.marketIndex; + const underlying = underlyings[marketIndex] + dailyRevenue!.add(underlying, log.addAmount / 1e18); + }) + + return { dailyFees, dailyRevenue } +} + +function moonwellExport(config: IJSON) { + const exportObject: BaseAdapter = {} + Object.entries(config).map(([chain, market]) => { + exportObject[chain] = { + fetch: (async (options: FetchOptions) => { + const { dailyFees, dailyRevenue } = await getFees(market, options, {}) + const dailyHoldersRevenue = dailyRevenue + const dailySupplySideRevenue = options.createBalances() + dailySupplySideRevenue.addBalances(dailyFees) + Object.entries(dailyRevenue.getBalances()).forEach(([token, balance]) => { + dailySupplySideRevenue.addTokenVannila(token, Number(balance) * -1) + }) + return { dailyFees, dailyRevenue, dailyHoldersRevenue, dailySupplySideRevenue } + }), + start: 0, + } + }) + return { adapter: exportObject, version: 2 } as SimpleAdapter +} + +export default moonwellExport({ base: baseUnitroller, moonbeam: moonbeamUnitroller, moonriver: moonriverUnitroller, optimism: optimismUnitroller }); \ No newline at end of file From ddd4f598e8bd49556f2a29bd4e10135039bc94a8 Mon Sep 17 00:00:00 2001 From: g1nt0ki <99907941+g1nt0ki@users.noreply.github.com> Date: Thu, 15 Aug 2024 13:16:46 +0200 Subject: [PATCH 088/237] fix start time --- dexs/vertex-protocol/index.ts | 2 +- fees/vertex-protocol.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dexs/vertex-protocol/index.ts b/dexs/vertex-protocol/index.ts index 25ab8c8b83..edfeed8c5c 100644 --- a/dexs/vertex-protocol/index.ts +++ b/dexs/vertex-protocol/index.ts @@ -112,7 +112,7 @@ const fetchPerps = async (timeStamp: number, _: any, fetchOptions: FetchOptions) }; const startTime = 1682514000; -const seiStartTime = 1723649209 +const seiStartTime = 1723547681 const adapter: BreakdownAdapter = { breakdown: { diff --git a/fees/vertex-protocol.ts b/fees/vertex-protocol.ts index 358a94f729..ccc4f92036 100644 --- a/fees/vertex-protocol.ts +++ b/fees/vertex-protocol.ts @@ -147,7 +147,7 @@ const adapter: Adapter = { [CHAIN.SEI]: { fetch: fetch, runAtCurrTime: true, - start: 1723649209 + start: 1723547681 }, }, }; From 53b1061c421af06bfa4639b6580f87a97202f967 Mon Sep 17 00:00:00 2001 From: g1nt0ki <99907941+g1nt0ki@users.noreply.github.com> Date: Thu, 15 Aug 2024 13:32:14 +0200 Subject: [PATCH 089/237] print message if a chain is skipped --- adapters/utils/runAdapter.ts | 9 +++++++-- cli/testAdapter.ts | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/adapters/utils/runAdapter.ts b/adapters/utils/runAdapter.ts index 4ab8ba45e5..ea3dd2863b 100644 --- a/adapters/utils/runAdapter.ts +++ b/adapters/utils/runAdapter.ts @@ -10,7 +10,8 @@ function getUnixTimeNow() { } export default async function runAdapter(volumeAdapter: BaseAdapter, cleanCurrentDayTimestamp: number, chainBlocks: ChainBlocks, id?: string, version?: string, { - adapterVersion = 1 + adapterVersion = 1, + isTest = false, }: any = {}) { const closeToCurrentTime = Math.trunc(Date.now() / 1000) - cleanCurrentDayTimestamp < 24 * 60 * 60 // 12 hours @@ -23,7 +24,11 @@ export default async function runAdapter(volumeAdapter: BaseAdapter, cleanCurren } await Promise.all(chains.map(setChainValidStart)) - const response = await Promise.all(chains.filter(chain => validStart[chain]?.canRun).map(getChainResult)) + const response = await Promise.all(chains.filter(chain => { + const res = validStart[chain]?.canRun + if (isTest && !res) console.log(`Skipping ${chain} because the configured start time is ${new Date(validStart[chain]?.startTimestamp * 1e3).toUTCString()} \n\n`) + return validStart[chain]?.canRun + }).map(getChainResult)) return response async function getChainResult(chain: string) { diff --git a/cli/testAdapter.ts b/cli/testAdapter.ts index 600d6aaa76..dfb50e5fa3 100644 --- a/cli/testAdapter.ts +++ b/cli/testAdapter.ts @@ -82,6 +82,7 @@ const passedFile = path.resolve(process.cwd(), `./${adapterType}/${process.argv[ const allVolumes = await Promise.all(Object.entries(breakdownAdapter).map(([version, adapter]) => runAdapter(adapter, endTimestamp, chainBlocks, undefined, undefined, { adapterVersion, + isTest: true, }).then(res => ({ version, res })) )) allVolumes.forEach(({ version, res }) => { From 9b0b42859c45346fed7cbb445417828ddbe52347 Mon Sep 17 00:00:00 2001 From: Timan Rebel Date: Thu, 15 Aug 2024 14:00:33 +0200 Subject: [PATCH 090/237] add astrolescent volume --- dexs/astrolescent/index.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 dexs/astrolescent/index.ts diff --git a/dexs/astrolescent/index.ts b/dexs/astrolescent/index.ts new file mode 100644 index 0000000000..c7fc2fa492 --- /dev/null +++ b/dexs/astrolescent/index.ts @@ -0,0 +1,27 @@ +import { FetchResultFees, FetchResultVolume, SimpleAdapter } from "../../adapters/types" +import { CHAIN } from "../../helpers/chains" +import fetchURL from "../../utils/fetchURL" + +interface AstrolescentStats { + volumeUSD: number; +} +const fetchVolume = async (timestamp: number): Promise => { + const response: AstrolescentStats = (await fetchURL(`https://api.astrolescent.com/stats/history?timestamp=${timestamp}`)); + const dailyVolume = Number(response?.volumeUSD); + + return { + dailyVolume, + timestamp + } +} + +const adapters: SimpleAdapter = { + adapter: { + [CHAIN.RADIXDLT]: { + fetch: fetchVolume, + start: 1698624000, + runAtCurrTime: false + } + } +} +export default adapters; From 62fb49e51f9ed6bf64787ba71cdd572e8c149fba Mon Sep 17 00:00:00 2001 From: Timan Rebel Date: Thu, 15 Aug 2024 14:05:07 +0200 Subject: [PATCH 091/237] add custom backfill to Astrolescent --- dexs/astrolescent/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dexs/astrolescent/index.ts b/dexs/astrolescent/index.ts index c7fc2fa492..58c930f176 100644 --- a/dexs/astrolescent/index.ts +++ b/dexs/astrolescent/index.ts @@ -1,6 +1,7 @@ import { FetchResultFees, FetchResultVolume, SimpleAdapter } from "../../adapters/types" import { CHAIN } from "../../helpers/chains" import fetchURL from "../../utils/fetchURL" +import customBackfill from "../../helpers/customBackfill"; interface AstrolescentStats { volumeUSD: number; @@ -20,6 +21,7 @@ const adapters: SimpleAdapter = { [CHAIN.RADIXDLT]: { fetch: fetchVolume, start: 1698624000, + customBackfill: customBackfill(CHAIN.RADIXDLT, () => fetchVolume), runAtCurrTime: false } } From 2388dd7bd4fecb22c2fcd6405ffdd2d3ca2c067f Mon Sep 17 00:00:00 2001 From: waynebruce0x Date: Thu, 15 Aug 2024 16:27:06 +0100 Subject: [PATCH 092/237] patch --- helpers/getUniSubgraph/index.ts | 94 +++++++++++---------------------- 1 file changed, 31 insertions(+), 63 deletions(-) diff --git a/helpers/getUniSubgraph/index.ts b/helpers/getUniSubgraph/index.ts index 6a10e2aa29..047d182166 100644 --- a/helpers/getUniSubgraph/index.ts +++ b/helpers/getUniSubgraph/index.ts @@ -3,14 +3,14 @@ import { request, gql } from "graphql-request"; import { BaseAdapter, FetchOptions, FetchResultGeneric, IJSON, SimpleAdapter } from "../../adapters/types"; import { DEFAULT_DAILY_FEES_FACTORY, DEFAULT_DAILY_FEES_FIELD, DEFAULT_TOTAL_FEES_FACTORY, DEFAULT_TOTAL_FEES_FIELD } from "../getUniSubgraphFees"; import BigNumber from "bignumber.js"; -import { getUniqStartOfTodayTimestamp, getUniswapDateId, handle200Errors } from "./utils"; +import { handle200Errors } from "./utils"; import { getStartTimestamp } from "../getStartTimestamp"; const DEFAULT_TOTAL_VOLUME_FACTORY = "uniswapFactories"; const DEFAULT_TOTAL_VOLUME_FIELD = "totalVolumeUSD"; -const DEFAULT_DAILY_VOLUME_FACTORY = "uniswapDayData"; -const DEFAULT_DAILY_VOLUME_FIELD = "dailyVolumeUSD"; +const DEFAULT_DAILY_VOLUME_FACTORY = "uniswapFactories"; +const DEFAULT_DAILY_VOLUME_FIELD = "totalVolumeUSD"; const DEFAULT_DAILY_DATE_FIELD = "date"; const DEFAULT_DAILY_PAIR_FACTORY = "pairDayDatas"; @@ -96,6 +96,7 @@ function getGraphDimensions({ feesPercent, blacklistTokens = {} }: IGetChainVolumeParams) { + dailyFees; getCustomBlock; // DAILY VOLUME // Graph fields const graphFieldsDailyVolume = { @@ -105,21 +106,6 @@ function getGraphDimensions({ pairs: dailyVolume.pairs ?? DEFAULT_DAILY_PAIR_FACTORY, idGraphType: dailyVolume.idGraphType ?? DEFAULT_ID_TYPE } - // Queries - const dailyVolumeQuery = gql` - query daily_volume ($id: ${graphFieldsDailyVolume.idGraphType}) { - ${graphFieldsDailyVolume.factory} (id: $id) { - ${graphFieldsDailyVolume.field} - } - }`; - const alternativeDailyQuery = gql` - query daily_volume_alternative ($timestamp: Int) { - ${graphFieldsDailyVolume.factory}s (where: {${graphFieldsDailyVolume.dateField}: $timestamp}) { - ${graphFieldsDailyVolume.dateField} - ${graphFieldsDailyVolume.field} - } - }`; - // TOTAL VOLUME // Graph fields const graphFieldsTotalVolume = { @@ -135,20 +121,6 @@ function getGraphDimensions({ } }`; - // DAILY FEES - // Graph fields - const graphFieldsDailyFees = { - factory: dailyFees.factory ?? DEFAULT_DAILY_FEES_FACTORY, - field: dailyFees.field ?? DEFAULT_DAILY_FEES_FIELD - } - // Query - const dailyFeesQuery = gql` - query daily_fees ($id: ID!) { - ${graphFieldsDailyFees.factory}(id: $id) { - ${graphFieldsDailyFees.field} - } - }`; - // TOTAL FEES // Graph fields const graphFieldsTotalFees = { @@ -157,8 +129,8 @@ function getGraphDimensions({ } // Query const totalFeesQuery = gql` - query total_fees { - ${graphFieldsTotalFees.factory} { + query total_fees ($block: ${graphFieldsTotalVolume.blockGraphType}) { + ${graphFieldsTotalFees.factory}(block: { number: $block }) { ${graphFieldsTotalFees.field} } }`; @@ -183,17 +155,15 @@ function getGraphDimensions({ ` : undefined; return async (options: FetchOptions) => { - const { endTimestamp, getEndBlock } = options; - // ts-node --transpile-only cli/testAdapter.ts protocols uniswap - const customBlockFunc = getCustomBlock ? getCustomBlock : getEndBlock; - const block = - (await customBlockFunc(endTimestamp).catch((e: any) => + const { endTimestamp, startTimestamp, getEndBlock, getStartBlock } = options; + + const endBlock = (await getEndBlock().catch((e: any) => + console.log(wrapGraphError(e).message), + )) ?? undefined; + const startBlock = (await getStartBlock().catch((e: any) => console.log(wrapGraphError(e).message), )) ?? undefined; - // Get params - const id = String(getUniswapDateId(new Date(endTimestamp * 1000))); - // Execute queries - // DAILY VOLUME + let graphResDailyVolume; let dailyVolume: any; if (dailyVolumePairsQuery) { @@ -202,7 +172,7 @@ function getGraphDimensions({ graphUrls[chain], dailyVolumePairsQuery, { - timestamp_gt: endTimestamp - 3600 * 24, + timestamp_gt: startTimestamp, timestamp_lte: endTimestamp, }, graphRequestHeaders?.[chain], @@ -229,38 +199,36 @@ function getGraphDimensions({ } return acc }, undefined as number | undefined) - } else { - graphResDailyVolume = await request(graphUrls[chain], dailyVolumeQuery, { id }, graphRequestHeaders?.[chain]).catch(handle200Errors).catch(e => console.error(`GraphFetchError: Failed to get daily volume on ${chain} with graph ${graphUrls[chain]}: ${wrapGraphError(e).message}`)) - dailyVolume = graphResDailyVolume?.[graphFieldsDailyVolume.factory]?.[graphFieldsDailyVolume.field] - if (!graphResDailyVolume || !dailyVolume) { - console.info("Attempting with alternative query...") - graphResDailyVolume = await request(graphUrls[chain], alternativeDailyQuery, { timestamp: getUniqStartOfTodayTimestamp(new Date(endTimestamp * 1000)) }, graphRequestHeaders?.[chain]).catch(handle200Errors).catch(e => console.error(`Failed to get alternative daily volume on ${chain} with graph ${graphUrls[chain]}: ${wrapGraphError(e).message}`)) - const factory = graphFieldsDailyVolume.factory.toLowerCase().charAt(graphFieldsDailyVolume.factory.length - 1) === 's' ? graphFieldsDailyVolume.factory : `${graphFieldsDailyVolume.factory}s` - dailyVolume = graphResDailyVolume?.[factory].reduce((p: any, c: any) => p + Number(c[graphFieldsDailyVolume.field]), 0); - } } - // TOTAL VOLUME - const graphResTotalVolume = await request(graphUrls[chain], totalVolumeQuery, { block }, graphRequestHeaders?.[chain]).catch(handle200Errors).catch(e => console.error(`GraphFetchError: Failed to get total volume on ${chain} with graph ${graphUrls[chain]}: ${wrapGraphError(e).message}`)); + const graphResTotalVolume = await request(graphUrls[chain], totalVolumeQuery, { block: endBlock }, graphRequestHeaders?.[chain]).catch(handle200Errors).catch(e => console.error(`GraphFetchError: Failed to get total volume on ${chain} with graph ${graphUrls[chain]}: ${wrapGraphError(e).message}`)); const totalVolume = graphResTotalVolume?.[graphFieldsTotalVolume.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalVolume.field]), 0)?.toString() - // DAILY FEES - const graphResDailyFees = await request(graphUrls[chain], dailyFeesQuery, { id }, graphRequestHeaders?.[chain]).catch(_e => { - if (dailyVolume === undefined || feesPercent?.Fees === undefined) - console.error(`Unable to get daily fees on ${chain} from graph.`) - }); - const dailyFees = graphResDailyFees?.[graphFieldsDailyFees.factory]?.[graphFieldsDailyFees.field] + // PREV TOTAL VOLUME + const graphResPrevTotalVolume = await request(graphUrls[chain], totalVolumeQuery, { block: startBlock }, graphRequestHeaders?.[chain]).catch(handle200Errors).catch(e => console.error(`GraphFetchError: Failed to get total volume on ${chain} with graph ${graphUrls[chain]}: ${wrapGraphError(e).message}`)); + const prevTotalVolume = graphResPrevTotalVolume?.[graphFieldsTotalVolume.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalVolume.field]), 0)?.toString() + dailyVolume = totalVolume - prevTotalVolume // TOTAL FEES - const graphResTotalFees = await request(graphUrls[chain], totalFeesQuery, { id }, graphRequestHeaders?.[chain]).catch(_e => { + const graphResTotalFees = await request(graphUrls[chain], totalFeesQuery, { block: endBlock }, graphRequestHeaders?.[chain]).catch(_e => { if (totalVolume === undefined || feesPercent?.Fees === undefined) console.error(`Unable to get total fees on ${chain} from graph.`) }); const totalFees = graphResTotalFees?.[graphFieldsTotalFees.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalFees.field]), 0) + // PREV TOTAL FEES + const graphResPrevTotalFees = await request(graphUrls[chain], totalFeesQuery, { block: startBlock }, graphRequestHeaders?.[chain]).catch(_e => { + if (totalVolume === undefined || feesPercent?.Fees === undefined) + console.error(`Unable to get total fees on ${chain} from graph.`) + }); + const prevTotalFees = graphResPrevTotalFees?.[graphFieldsTotalFees.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalFees.field]), 0) + + const dailyFees = totalFees - prevTotalFees + + // ts-node --transpile-only cli/testAdapter.ts protocols uniswap const response: FetchResultGeneric = { timestamp: endTimestamp, - block, + block: endBlock, totalVolume, dailyVolume, dailyFees, From 0aa2fae9f5531728b178de709182433ab67507a8 Mon Sep 17 00:00:00 2001 From: waynebruce0x Date: Thu, 15 Aug 2024 16:29:56 +0100 Subject: [PATCH 093/237] custom block --- helpers/getUniSubgraph/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/helpers/getUniSubgraph/index.ts b/helpers/getUniSubgraph/index.ts index 047d182166..2a659a4db5 100644 --- a/helpers/getUniSubgraph/index.ts +++ b/helpers/getUniSubgraph/index.ts @@ -96,7 +96,7 @@ function getGraphDimensions({ feesPercent, blacklistTokens = {} }: IGetChainVolumeParams) { - dailyFees; getCustomBlock; + dailyFees; // DAILY VOLUME // Graph fields const graphFieldsDailyVolume = { @@ -157,10 +157,10 @@ function getGraphDimensions({ return async (options: FetchOptions) => { const { endTimestamp, startTimestamp, getEndBlock, getStartBlock } = options; - const endBlock = (await getEndBlock().catch((e: any) => + const endBlock = (await (getCustomBlock ? getCustomBlock(endTimestamp) : getEndBlock()).catch((e: any) => console.log(wrapGraphError(e).message), )) ?? undefined; - const startBlock = (await getStartBlock().catch((e: any) => + const startBlock = (await (getCustomBlock ? getCustomBlock(startTimestamp) :getStartBlock()).catch((e: any) => console.log(wrapGraphError(e).message), )) ?? undefined; From 39f77fc80f9679946c68be3e8bc4be11b4a6bf7c Mon Sep 17 00:00:00 2001 From: waynebruce0x Date: Thu, 15 Aug 2024 16:51:19 +0100 Subject: [PATCH 094/237] pendle active addresses --- users/routers/routerAddresses.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/users/routers/routerAddresses.ts b/users/routers/routerAddresses.ts index e3de6e6d92..e677c446f0 100644 --- a/users/routers/routerAddresses.ts +++ b/users/routers/routerAddresses.ts @@ -2396,5 +2396,17 @@ export default ( ], }, }, + { + "id":"382", + "name": "Pendle", + "addresses":{ + // routers + ethereum: ["0x888888888889758F76e7103c6CbF23ABbF58F946"], + arbitrum: ["0x888888888889758F76e7103c6CbF23ABbF58F946"], + optimism: ["0x888888888889758F76e7103c6CbF23ABbF58F946"], + mantle: ["0x888888888889758F76e7103c6CbF23ABbF58F946"], + bsc: ["0x888888888889758F76e7103c6CbF23ABbF58F946"], + } + }, ] as ProtocolAddresses[] ).filter(isAddressesUsable); From 768943e674d051b9f1b883e7a26ab70de9e9f891 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Thu, 15 Aug 2024 17:14:46 +0000 Subject: [PATCH 095/237] switch too v1 --- aggregators/akka/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aggregators/akka/index.ts b/aggregators/akka/index.ts index 528cc4181c..0a24fc2158 100644 --- a/aggregators/akka/index.ts +++ b/aggregators/akka/index.ts @@ -23,10 +23,11 @@ const fetch = async (timestamp: number): Promise => { } const adapter: SimpleAdapter = { - version: 2, + version: 1, adapter: { [CHAIN.CORE]: { fetch, + runAtCurrTime: true, start: startTimestamp, }, }, From 5a1c3e2f99a68730b99c11d1cb155c3429af68ee Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Fri, 16 Aug 2024 01:37:56 +0000 Subject: [PATCH 096/237] add pancake optiobs --- options/pancakeswap-options/index.ts | 49 ++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 options/pancakeswap-options/index.ts diff --git a/options/pancakeswap-options/index.ts b/options/pancakeswap-options/index.ts new file mode 100644 index 0000000000..c44557de1e --- /dev/null +++ b/options/pancakeswap-options/index.ts @@ -0,0 +1,49 @@ +import request, { gql } from "graphql-request"; +import { CHAIN } from "../../helpers/chains"; +import { FetchOptions, SimpleAdapter } from "../../adapters/types"; + +const url: { [s: string]: string } = { + [CHAIN.ARBITRUM]: "https://api.0xgraph.xyz/api/public/e2146f32-5728-4755-b1d1-84d17708c119/subgraphs/dopex-v2-clamm-public/v0.0.2/gn" +} + +const query = gql` + query getVolume($startTimestamp: BigInt!, $endTimestamp: BigInt!) { + optionMarketDailyStats(where: { startTimestamp_gte: $startTimestamp, startTimestamp_lte: $endTimestamp }) { + startTimestamp + volume + premium + fees + } + } +` +interface IData { + optionMarketDailyStats:Array<{ + startTimestamp: number; + volume: string; + premium: string; + fees: string; + }> +} +const fetchOptions = async (fetchOptions: FetchOptions): Promise => { + const today = fetchOptions.startOfDay; + const end = today + 86400; + const data: IData = await request(url[fetchOptions.chain], query, { startTimestamp: today, endTimestamp: end }); + const daily_premium = data.optionMarketDailyStats.reduce((acc, { premium }) => acc + Number(premium), 0); + const daily_volume = data.optionMarketDailyStats.reduce((acc, { volume }) => acc + Number(volume), 0); + return { + dailyNotionalVolume: daily_volume, + dailyPremiumVolume: daily_premium, + } +} + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.ARBITRUM]: { + fetch: fetchOptions, + start: 1713205800, + }, + } +} + +export default adapter; From 1d4dffc54c8911b6ecaf36af3515f9567e27fbf4 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Fri, 16 Aug 2024 01:43:42 +0000 Subject: [PATCH 097/237] fix timestamp --- options/pancakeswap-options/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/options/pancakeswap-options/index.ts b/options/pancakeswap-options/index.ts index c44557de1e..27bfb4001e 100644 --- a/options/pancakeswap-options/index.ts +++ b/options/pancakeswap-options/index.ts @@ -41,7 +41,7 @@ const adapter: SimpleAdapter = { adapter: { [CHAIN.ARBITRUM]: { fetch: fetchOptions, - start: 1713205800, + start: 1699660800, }, } } From e8cce364fa43a82b697b6be45760a6d4bf4d077f Mon Sep 17 00:00:00 2001 From: trungbach Date: Fri, 16 Aug 2024 18:20:26 +0700 Subject: [PATCH 098/237] orai: add volume for oraidex v3 --- dexs/oraidex-v3/index.ts | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 dexs/oraidex-v3/index.ts diff --git a/dexs/oraidex-v3/index.ts b/dexs/oraidex-v3/index.ts new file mode 100644 index 0000000000..1067b3a869 --- /dev/null +++ b/dexs/oraidex-v3/index.ts @@ -0,0 +1,42 @@ +import { gql, GraphQLClient } from "graphql-request"; +import { SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; + +const historicalVolumeEndpoint = "https://staging-ammv3-indexer.oraidex.io/"; +const fetch = async (timestamp: number) => { + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); + const dayIndex = Math.floor(dayTimestamp / 86400000) - 1; + const query = gql` + query PoolDayData { + poolDayData( + filter: { + dayIndex: { equalTo: ${dayIndex} } + } + ) { + aggregates { + sum { + volumeInUSD + } + } + } + }`; + + const res = await new GraphQLClient(historicalVolumeEndpoint).request(query); + const dailyVolume = res.poolDayData.aggregates.sum.volumeInUSD; + return { + dailyVolume: dailyVolume ? `${dailyVolume}` : undefined, + timestamp: dayTimestamp, + }; +}; + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.ORAI]: { + fetch, + start: 1722587676, + }, + }, +}; + +export default adapter; From 84913ca3ea83cdb1f1ac36854661107706d00a41 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Fri, 16 Aug 2024 12:36:53 +0100 Subject: [PATCH 099/237] change query --- fees/pumpdotfun.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fees/pumpdotfun.ts b/fees/pumpdotfun.ts index 0c2bc80820..54eda8844b 100644 --- a/fees/pumpdotfun.ts +++ b/fees/pumpdotfun.ts @@ -4,10 +4,9 @@ import { queryDune } from "../helpers/dune"; const fetch: any = async (options: FetchOptions) => { const dailyFees = options.createBalances(); - const value = (await queryDune("3521814", { + const value = (await queryDune("3993882", { start: options.startTimestamp, end: options.endTimestamp, - receiver: 'CebN5WGQ4jvEPvsVU4EoHEpgzq1VV7AbicfhtW4xC9iM' })); dailyFees.add('So11111111111111111111111111111111111111112', value[0].fee_token_amount); From 256bd6b20ec40bdfa9efd7d65cb1845c389721fa Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Fri, 16 Aug 2024 14:31:34 +0200 Subject: [PATCH 100/237] feat:Adapter, Spiko Fees --- fees/spiko/index.ts | 100 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 fees/spiko/index.ts diff --git a/fees/spiko/index.ts b/fees/spiko/index.ts new file mode 100644 index 0000000000..1ef6b2a42b --- /dev/null +++ b/fees/spiko/index.ts @@ -0,0 +1,100 @@ +// https://docs.spiko.xyz/spiko-mmfs/fees + +import { Adapter, FetchOptions, FetchResultV2 } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; + +type IFunds = { + [s: string]: string; +}; + +type IAddress = { + [key: string]: IFunds; +}; + +const funds: IAddress = { + [CHAIN.ETHEREUM]: { + EUTBL: "0xa0769f7A8fC65e47dE93797b4e21C073c117Fc80", + USTBL: "0xe4880249745eAc5F1eD9d8F7DF844792D560e750", + }, + [CHAIN.POLYGON]: { + EUTBL: "0xa0769f7A8fC65e47dE93797b4e21C073c117Fc80", + USTBL: "0xe4880249745eAc5F1eD9d8F7DF844792D560e750", + }, +}; + +const calcFees = (totalSupply: number, isEUTBL: boolean) => { + const baseFeeRate = 0.1; + const performanceFeeRate = 0.3; + const revenueRate = 0.15; + const minAumForFees = 100 * 1e6; + + const managementFee = + isEUTBL && totalSupply <= minAumForFees ? 0 : baseFeeRate; + const totalFeesBalance = + (totalSupply * (managementFee + performanceFeeRate)) / 100; + const totalRevenuesBalance = + (totalSupply * + (isEUTBL && totalSupply <= minAumForFees ? 0 : revenueRate)) / + 100; + + return { + fees: totalFeesBalance, + revenues: totalRevenuesBalance, + }; +}; + +async function getFundsFees( + funds: IFunds, + { api, createBalances }: FetchOptions +): Promise { + const dailyFees = createBalances(); + const dailyRevenues = createBalances(); + const totalFees = createBalances(); + const totalRevenues = createBalances(); + const { EUTBL, USTBL } = funds; + + const totalSupplies = await api.multiCall({ + calls: [EUTBL, USTBL], + abi: "erc20:totalSupply", + }); + + const [eutlbSupply, ustblSupply] = [EUTBL, USTBL].map((fund, index) => { + const totalSupply: number = totalSupplies[index]; + return { fund, totalSupply }; + }); + + const ustblFees = calcFees(ustblSupply.totalSupply, false); + const eutblFees = calcFees(eutlbSupply.totalSupply, true); + + const feesDatas = [ + { ...ustblFees, fund: ustblSupply.fund }, + { ...eutblFees, fund: eutlbSupply.fund }, + ]; + + feesDatas.forEach(({ fund, fees, revenues }) => { + dailyFees.add(fund, fees / 365); + totalFees.add(fund, fees); + dailyRevenues.add(fund, revenues / 365); + totalRevenues.add(fund, revenues); + }); + + return { dailyFees, dailyRevenues, totalFees, totalRevenues }; +} + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.ETHEREUM]: { + start: 1714514400, + fetch: (options: FetchOptions) => + getFundsFees(funds[CHAIN.ETHEREUM], options), + }, + [CHAIN.POLYGON]: { + start: 1713564000, + fetch: (options: FetchOptions) => + getFundsFees(funds[CHAIN.POLYGON], options), + }, + }, +}; + +export default adapter; From 742deebe9a00989d72793020dd03825c909a6f7b Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Fri, 16 Aug 2024 12:58:46 +0000 Subject: [PATCH 101/237] fix default value --- aggregators/chainspot/index.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/aggregators/chainspot/index.ts b/aggregators/chainspot/index.ts index 9420b4bdcd..4638726942 100644 --- a/aggregators/chainspot/index.ts +++ b/aggregators/chainspot/index.ts @@ -1,6 +1,7 @@ -import fetchURL from "../../utils/fetchURL"; +import { httpGet } from "../../utils/fetchURL"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; import { CHAIN } from "../../helpers/chains"; +import { FetchOptions } from "../../adapters/types"; const chains = [ CHAIN.ETHEREUM, @@ -68,19 +69,19 @@ const chainToId: Record = { [CHAIN.ZKSYNC]: 324, }; -const fetch = (chain: string) => async (timestamp: number) => { +const fetch = async (_at: number, _t: any, options: FetchOptions) => { const unixTimestamp = getUniqStartOfTodayTimestamp( - new Date(timestamp * 1000) + new Date(options.startOfDay * 1000) ); const volume = ( - await fetchURL( - `https://app.chainspot.io/api/2.0/statistic/daily-volume?chainId=${chainToId[chain]}×tamp=${unixTimestamp}` + await httpGet( + `https://app.chainspot.io/api/2.0/statistic/daily-volume?chainId=${chainToId[options.chain]}×tamp=${unixTimestamp}` ) )?.volume; return { - dailyVolume: volume, + dailyVolume: volume || 0, timestamp: unixTimestamp, }; }; @@ -91,7 +92,7 @@ const adapter: any = { return { ...acc, [chain]: { - fetch: fetch(chain), + fetch: fetch, start: 1704067200, }, }; From 10b4646c754c4ba807adf3d8a252e8901e37fc4c Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Fri, 16 Aug 2024 14:57:03 +0000 Subject: [PATCH 102/237] fix ston fees --- fees/ston/index.ts | 149 ++++++++++++++++++++++----------------------- 1 file changed, 73 insertions(+), 76 deletions(-) diff --git a/fees/ston/index.ts b/fees/ston/index.ts index 1beaf36fe7..807b407648 100644 --- a/fees/ston/index.ts +++ b/fees/ston/index.ts @@ -1,90 +1,87 @@ -import { CHAIN } from '../../helpers/chains' -import postURL from "../../utils/fetchURL" -import fetchURL from "../../utils/fetchURL" -import { FetchOptions } from "../../adapters/types"; - - -const endpoint = "https://api.ston.fi/v1/stats/operations?" +import { CHAIN } from "../../helpers/chains"; +import postURL from "../../utils/fetchURL"; +import fetchURL from "../../utils/fetchURL"; +import { FetchOptions, SimpleAdapter } from "../../adapters/types"; +const endpoint = "https://api.ston.fi/v1/stats/operations?"; const fetchFees = async (options: FetchOptions) => { - console.log("Requesting pools list") - const pool_list = (await fetchURL('https://api.ston.fi/v1/pools')).pool_list; - // store pools info for each asset to calculate weigthed price later - const asset2pools = {}; - const add_pool = (address: string, tvl: number, reserve: number) => { - if (!asset2pools[address]) { - asset2pools[address] = [] - } - asset2pools[address].push({tvl, reserve}) - } - for (const pool of pool_list) { - // ignore pools with low liquidity - if (pool['lp_total_supply_usd'] < 1000) { - continue - } - add_pool(pool['token0_address'], Number(pool['lp_total_supply_usd']) / 2, Number(pool['reserve0'])) - add_pool(pool['token1_address'], Number(pool['lp_total_supply_usd']) / 2, Number(pool['reserve1'])) + const pool_list = (await fetchURL("https://api.ston.fi/v1/pools")).pool_list; + // store pools info for each asset to calculate weigthed price later + const asset2pools = {}; + const add_pool = (address: string, tvl: number, reserve: number) => { + if (!asset2pools[address]) { + asset2pools[address] = []; } - // price is calculated as total tvl / total reserve across all pools - const asset_prices = {} - for (const asset in asset2pools) { - const pools = asset2pools[asset] - const price = pools.map((pool) => pool.tvl).reduce((a, b) => a + b, 0) / pools.map((pool) => pool.reserve).reduce((a, b) => a + b, 0) - asset_prices[asset] = price + asset2pools[address].push({ tvl, reserve }); + }; + for (const pool of pool_list) { + // ignore pools with low liquidity + if (pool["lp_total_supply_usd"] < 1000) { + continue; } - // explicitly set price for pTON based on TON price - asset_prices['EQCM3B12QK1e4yZSf8GtBRT0aLMNyEsBc_DhVfRRtOEffLez'] = asset_prices['EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c'] - - const startTime = new Date(options.startTimestamp * 1000).toISOString().split(".")[0] - const endTime = new Date(options.endTimestamp * 1000).toISOString().split(".")[0] - console.log(`Requesting last day operations: ${startTime}, ${endTime}`) - const res = await postURL(`${endpoint}since=${startTime}&until=${endTime}`) + add_pool(pool["token0_address"], Number(pool["lp_total_supply_usd"]) / 2, Number(pool["reserve0"])); + add_pool(pool["token1_address"], Number(pool["lp_total_supply_usd"]) / 2, Number(pool["reserve1"])); + } + // price is calculated as total tvl / total reserve across all pools + const asset_prices = {}; + for (const asset in asset2pools) { + const pools = asset2pools[asset]; + const price = + pools.map((pool) => pool.tvl).reduce((a, b) => a + b, 0) / + pools.map((pool) => pool.reserve).reduce((a, b) => a + b, 0); + asset_prices[asset] = price; + } + // explicitly set price for pTON based on TON price + asset_prices["EQCM3B12QK1e4yZSf8GtBRT0aLMNyEsBc_DhVfRRtOEffLez"] = + asset_prices["EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c"]; - let total_lp_fees = 0 - let total_protocol_fees = 0 - let referral_fees = 0 - + const startTime = new Date(options.startTimestamp * 1000).toISOString().split(".")[0]; + const endTime = new Date(options.endTimestamp * 1000).toISOString().split(".")[0]; + const res = await postURL(`${endpoint}since=${startTime}&until=${endTime}`); - // go through all operations and calculate fees based on the current prices - for (const item of res['operations']) { - const operation = item.operation - if (operation.success && operation.operation_type == 'swap' && operation.exit_code == 'swap_ok' ) { - if (operation.fee_asset_address in asset_prices) { - const price = asset_prices[operation.fee_asset_address] - total_lp_fees += operation.lp_fee_amount * price - total_protocol_fees += operation.protocol_fee_amount * price - referral_fees += (operation.referral_fee_amount || 0) * price - } else { - // console.log("Fee asset not found", operation.fee_asset_address) - continue - } - } - } + let total_lp_fees = 0; + let total_protocol_fees = 0; + let referral_fees = 0; - return { - dailyUserFees: total_lp_fees + total_protocol_fees + referral_fees, - dailyFees: total_lp_fees + total_protocol_fees + referral_fees, - dailySupplySideRevenue: total_lp_fees, - dailyRevenue: total_protocol_fees + // go through all operations and calculate fees based on the current prices + for (const item of res["operations"]) { + const operation = item.operation; + if (operation.success && operation.operation_type == "swap" && operation.exit_code == "swap_ok") { + if (operation.fee_asset_address in asset_prices) { + const price = asset_prices[operation.fee_asset_address]; + total_lp_fees += operation.lp_fee_amount * price; + total_protocol_fees += operation.protocol_fee_amount * price; + referral_fees += (operation.referral_fee_amount || 0) * price; + } else { + // console.log("Fee asset not found", operation.fee_asset_address) + continue; + } } + } + return { + dailyUserFees: total_lp_fees + total_protocol_fees + referral_fees, + dailyFees: total_lp_fees + total_protocol_fees + referral_fees, + dailySupplySideRevenue: total_lp_fees, + dailyRevenue: total_protocol_fees, }; +}; -export default { - version: 2, - runAtCurrTime: true, - adapter: { - [CHAIN.TON]: { - start: 1700000000, - meta: { - methodology: { - UserFees: "User pays fee on each swap. Fees go to the protocol, LPs and optinally to the referral address.", - Revenue: "Protocol receives 1/3 of fees paid by users (not including referral fees).", - SupplySideRevenue: "2/3 of user fees are distributed among LPs (not including referral fees).", - }, - }, - fetch: fetchFees, +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.TON]: { + start: 1700000000, + meta: { + methodology: { + UserFees: "User pays fee on each swap. Fees go to the protocol, LPs and optinally to the referral address.", + Revenue: "Protocol receives 1/3 of fees paid by users (not including referral fees).", + SupplySideRevenue: "2/3 of user fees are distributed among LPs (not including referral fees).", }, + }, + fetch: fetchFees, }, -} + }, +}; +export default adapter; From fd1a28b1a684a9e72eb3971a609df66848399388 Mon Sep 17 00:00:00 2001 From: daedboi <87483308+daedboi@users.noreply.github.com> Date: Fri, 16 Aug 2024 22:08:53 +0300 Subject: [PATCH 103/237] fix: Update subgraph links --- dexs/bmx/index.ts | 4 +++- fees/bmx.ts | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/dexs/bmx/index.ts b/dexs/bmx/index.ts index 1b3746e486..8ea9c5bab3 100644 --- a/dexs/bmx/index.ts +++ b/dexs/bmx/index.ts @@ -5,7 +5,9 @@ import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume const endpoints: { [key: string]: string } = { [CHAIN.BASE]: - "https://api.thegraph.com/subgraphs/name/morphex-labs/bmx-base-stats", + "https://api.studio.thegraph.com/query/71696/bmx-base-stats/version/latest", + [CHAIN.MODE]: + "https://api.studio.thegraph.com/query/42444/bmx-mode-stats/version/latest", }; const historicalDataSwap = gql` diff --git a/fees/bmx.ts b/fees/bmx.ts index 06563fed28..aa68412672 100644 --- a/fees/bmx.ts +++ b/fees/bmx.ts @@ -5,7 +5,9 @@ import { getTimestampAtStartOfDayUTC } from "../utils/date"; const endpoints: { [key: string]: string } = { [CHAIN.BASE]: - "https://api.thegraph.com/subgraphs/name/morphex-labs/bmx-base-stats", + "https://api.studio.thegraph.com/query/71696/bmx-base-stats/version/latest", + [CHAIN.MODE]: + "https://api.studio.thegraph.com/query/42444/bmx-mode-stats/version/latest", }; const methodology = { @@ -64,6 +66,13 @@ const adapter: Adapter = { methodology, }, }, + [CHAIN.MODE]: { + fetch: graphs(CHAIN.MODE), + start: 1720627435, + meta: { + methodology, + }, + } }, }; From 95babb2f986e612158aefe751bd22e42275807c6 Mon Sep 17 00:00:00 2001 From: daedboi <87483308+daedboi@users.noreply.github.com> Date: Sat, 17 Aug 2024 13:35:37 +0300 Subject: [PATCH 104/237] Add historical OI + Freestyle volume for BMX --- dexs/bmx/index.ts | 178 +++++++++++++++++++++++++++++++++++++++++++--- fees/bmx.ts | 15 ++-- 2 files changed, 175 insertions(+), 18 deletions(-) diff --git a/dexs/bmx/index.ts b/dexs/bmx/index.ts index 8ea9c5bab3..d4d8985683 100644 --- a/dexs/bmx/index.ts +++ b/dexs/bmx/index.ts @@ -1,14 +1,33 @@ import request, { gql } from "graphql-request"; -import { BreakdownAdapter, Fetch } from "../../adapters/types"; +import { + BreakdownAdapter, + Fetch, + FetchResultVolume, +} from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; +import BigNumber from "bignumber.js"; +const ONE_DAY_IN_SECONDS = 60 * 60 * 24; +const toString = (x: BigNumber) => { + if (x.isEqualTo(0)) return undefined; + return x.toString(); +}; + +const startTimestamps: { [chain: string]: number } = { + [CHAIN.BASE]: 1694304000, + [CHAIN.MODE]: 1720627435, +}; const endpoints: { [key: string]: string } = { [CHAIN.BASE]: "https://api.studio.thegraph.com/query/71696/bmx-base-stats/version/latest", [CHAIN.MODE]: "https://api.studio.thegraph.com/query/42444/bmx-mode-stats/version/latest", }; +const freestyleEndpoints: { [key: string]: string } = { + [CHAIN.BASE]: + "https://api.studio.thegraph.com/query/62454/analytics_base_8_2/version/latest", +}; const historicalDataSwap = gql` query get_volume($period: String!, $id: String!) { @@ -17,7 +36,6 @@ const historicalDataSwap = gql` } } `; - const historicalDataDerivatives = gql` query get_volume($period: String!, $id: String!) { volumeStats(where: { period: $period, id: $id }) { @@ -26,6 +44,39 @@ const historicalDataDerivatives = gql` } } `; +const historicalOI = gql` + query get_trade_stats($period: String!, $id: String!) { + tradingStats(where: { period: $period, id: $id }) { + id + longOpenInterest + shortOpenInterest + } + } +`; +const freestyleQuery = gql` + query stats($from: String!, $to: String!) { + dailyHistories( + where: { + timestamp_gte: $from + timestamp_lte: $to + accountSource: "0x6D63921D8203044f6AbaD8F346d3AEa9A2719dDD" + } + ) { + timestamp + platformFee + accountSource + tradeVolume + } + totalHistories( + where: { accountSource: "0x6D63921D8203044f6AbaD8F346d3AEa9A2719dDD" } + ) { + timestamp + platformFee + accountSource + tradeVolume + } + } +`; interface IGraphResponse { volumeStats: Array<{ @@ -36,6 +87,27 @@ interface IGraphResponse { swap: string; }>; } +interface IGraphResponseOI { + tradingStats: Array<{ + id: string; + longOpenInterest: string; + shortOpenInterest: string; + }>; +} +interface IGraphResponseFreestyle { + dailyHistories: Array<{ + tiemstamp: string; + platformFee: string; + accountSource: string; + tradeVolume: string; + }>; + totalHistories: Array<{ + tiemstamp: string; + platformFee: string; + accountSource: string; + tradeVolume: BigNumber; + }>; +} const getFetch = (query: string) => @@ -52,9 +124,41 @@ const getFetch = id: "total", period: "total", }); + let dailyOpenInterest = 0; + let dailyLongOpenInterest = 0; + let dailyShortOpenInterest = 0; + + if (query === historicalDataDerivatives) { + const tradingStats: IGraphResponseOI = await request( + endpoints[chain], + historicalOI, + { + id: String(dayTimestamp) + ":daily", + period: "daily", + } + ); + dailyOpenInterest = + Number(tradingStats.tradingStats[0].longOpenInterest) + + Number(tradingStats.tradingStats[0].shortOpenInterest); + dailyLongOpenInterest = Number( + tradingStats.tradingStats[0].longOpenInterest + ); + dailyShortOpenInterest = Number( + tradingStats.tradingStats[0].shortOpenInterest + ); + } return { timestamp: dayTimestamp, + dailyLongOpenInterest: dailyLongOpenInterest + ? String(dailyLongOpenInterest * 10 ** -30) + : undefined, + dailyShortOpenInterest: dailyShortOpenInterest + ? String(dailyShortOpenInterest * 10 ** -30) + : undefined, + dailyOpenInterest: dailyOpenInterest + ? String(dailyOpenInterest * 10 ** -30) + : undefined, dailyVolume: dailyData.volumeStats.length == 1 ? String( @@ -80,18 +184,70 @@ const getFetch = }; }; +const fetchFreestyleVolume = + (query: string) => + (chain: string): Fetch => + async (timestamp: number): Promise => { + const response: IGraphResponseFreestyle = await request( + freestyleEndpoints[chain], + query, + { + from: String(timestamp - ONE_DAY_IN_SECONDS), + to: String(timestamp), + } + ); + + let dailyVolume = new BigNumber(0); + let totalVolume = new BigNumber(0); + + response.dailyHistories.forEach((data) => { + dailyVolume = dailyVolume.plus(new BigNumber(data.tradeVolume)); + }); + response.totalHistories.forEach((data) => { + totalVolume = totalVolume.plus(new BigNumber(data.tradeVolume)); + }); + + dailyVolume = dailyVolume.dividedBy(new BigNumber(1e18)); + totalVolume = totalVolume.dividedBy(new BigNumber(1e18)); + + const _dailyVolume = toString(dailyVolume); + const _totalVolume = toString(totalVolume); + + const dayTimestamp = getUniqStartOfTodayTimestamp( + new Date(timestamp * 1000) + ); + + return { + timestamp: dayTimestamp, + dailyVolume: _dailyVolume ?? "0", + totalVolume: _totalVolume ?? "0", + }; + }; + const adapter: BreakdownAdapter = { breakdown: { - swap: { - [CHAIN.BASE]: { - fetch: getFetch(historicalDataSwap)(CHAIN.BASE), - start: 1694304000, - }, - }, - derivatives: { + swap: Object.keys(endpoints).reduce((acc, chain) => { + return { + ...acc, + [chain]: { + fetch: getFetch(historicalDataSwap)(chain), + start: startTimestamps[chain], + }, + }; + }, {}), + "derivatives-classic": Object.keys(endpoints).reduce((acc, chain) => { + return { + ...acc, + [chain]: { + fetch: getFetch(historicalDataDerivatives)(chain), + start: startTimestamps[chain], + }, + }; + }, {}), + "derivatives-freestyle": { [CHAIN.BASE]: { - fetch: getFetch(historicalDataDerivatives)(CHAIN.BASE), - start: 1694304000, + fetch: fetchFreestyleVolume(freestyleQuery)(CHAIN.BASE), + start: 1714681913, }, }, }, diff --git a/fees/bmx.ts b/fees/bmx.ts index aa68412672..42a7f97c46 100644 --- a/fees/bmx.ts +++ b/fees/bmx.ts @@ -1,6 +1,7 @@ import { Adapter } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; import { request, gql } from "graphql-request"; +import type { FetchV2 } from "../adapters/types" import { getTimestampAtStartOfDayUTC } from "../utils/date"; const endpoints: { [key: string]: string } = { @@ -20,8 +21,8 @@ const methodology = { "Revenue is 40% of all collected fees, which are distributed to BMX/wBLT LP stakers and BMX stakers", }; -const graphs = (chain: string) => async (timestamp: number) => { - const todaysTimestamp = getTimestampAtStartOfDayUTC(timestamp); +const graphs: FetchV2 = async ({ chain, endTimestamp }) => { + const todaysTimestamp = getTimestampAtStartOfDayUTC(endTimestamp); const searchTimestamp = todaysTimestamp + ":daily"; const graphQuery = gql`{ @@ -47,27 +48,27 @@ const graphs = (chain: string) => async (timestamp: number) => { const finalUserFee = userFee / 1e30; return { - timestamp, + endTimestamp, dailyFees: finalDailyFee.toString(), dailyUserFees: finalUserFee.toString(), dailyRevenue: (finalDailyFee * 0.4).toString(), - dailyHoldersRevenue: (finalDailyFee * 0.1).toString(), + dailyHoldersRevenue: (finalDailyFee * 0.4).toString(), dailySupplySideRevenue: (finalDailyFee * 0.6).toString(), }; }; const adapter: Adapter = { - version: 1, + version: 2, adapter: { [CHAIN.BASE]: { - fetch: graphs(CHAIN.BASE), + fetch: graphs, start: 1694304000, meta: { methodology, }, }, [CHAIN.MODE]: { - fetch: graphs(CHAIN.MODE), + fetch: graphs, start: 1720627435, meta: { methodology, From c8123fe7ec746fdaa4f339f1a8f4e94883b4fa97 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sat, 17 Aug 2024 17:05:13 +0100 Subject: [PATCH 105/237] add sunpump --- fees/sunpump.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fees/sunpump.ts diff --git a/fees/sunpump.ts b/fees/sunpump.ts new file mode 100644 index 0000000000..ef9f9ff592 --- /dev/null +++ b/fees/sunpump.ts @@ -0,0 +1,25 @@ +import { Adapter, FetchOptions, } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.TRON]: { + fetch: (async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const logs = await options.getLogs({ + targets: ['0x43d0a427d390301e84e46896ae980d35ecdaa2ae'], + eventAbi: "event TRXReceived(address indexed from,uint256 amount)", + }) + logs.map((tx: any) => { + dailyFees.addGasToken(tx.amount) + }) + return { dailyFees, dailyRevenue: dailyFees, } + }) as any, + start: 0 + }, + }, + +} + +export default adapter; From a013885d082d0e7cb17b217eaf428a99b7991d3e Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sat, 17 Aug 2024 17:05:33 +0100 Subject: [PATCH 106/237] add helio --- fees/helio.ts | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 fees/helio.ts diff --git a/fees/helio.ts b/fees/helio.ts new file mode 100644 index 0000000000..34d5ecbdda --- /dev/null +++ b/fees/helio.ts @@ -0,0 +1,45 @@ +/* +Example swap tx: https://solscan.io/tx/4ZNV9hKmmRch2wiQvoQWuVttTADC38Cf3bSVkyEp8G9uQ1cAzyGgiR6SdPCgWo6sgBVBUuAgYnECrVJ6iZSZtmSM +Helio Fee Account: FudPMePeNqmnjMX19zEKDfGXpbp6HAdW6ZGprB5gYRTZ +Dao Fee Account: JBGUGPmKUEHCpxGGoMowQxoV4c7HyqxEnyrznVPxftqk +*/ + +import { FetchOptions, SimpleAdapter } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import { queryDune } from "../helpers/dune"; + +const solanaDecimals = { + EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v: 6, + Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB: 6 +} as any + +const fetch: any = async (options: FetchOptions) => { + const receivedTokens = (await queryDune("3996080", { + start: options.startTimestamp, + end: options.endTimestamp, + receiver: 'FudPMePeNqmnjMX19zEKDfGXpbp6HAdW6ZGprB5gYRTZ' + })) as any[] + const dailyFees = options.createBalances(); + receivedTokens.forEach(row=>{ + if(!solanaDecimals[row.token_mint_address]){ + throw new Error("unsupported token") + } + dailyFees.add(row.token_mint_address, (row.received * 10**solanaDecimals[row.token_mint_address]).toFixed(0)) + }) + dailyFees.resizeBy(1.11) + + return { dailyFees, dailyRevenue: dailyFees, dailyHoldersRevenue: dailyFees.clone(0.1) } +} + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.SOLANA]: { + fetch: fetch, + start: 0, + }, + }, + isExpensiveAdapter: true +}; + +export default adapter; From ad05cf8d9464498b765a8c92bd8af943be12f6e4 Mon Sep 17 00:00:00 2001 From: "andreapn.eth" Date: Sat, 17 Aug 2024 23:24:02 +0700 Subject: [PATCH 107/237] DackieSwap update endpoint subgraph --- dexs/dackieswap-v2/index.ts | 4 ++-- dexs/dackieswap/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dexs/dackieswap-v2/index.ts b/dexs/dackieswap-v2/index.ts index 7d8aa9092a..51e8e9048c 100644 --- a/dexs/dackieswap-v2/index.ts +++ b/dexs/dackieswap-v2/index.ts @@ -10,8 +10,8 @@ const endpoints: ChainEndpoints = { [CHAIN.OPTIMISM]: "https://api.studio.thegraph.com/query/50473/v2-optimism/version/latest", [CHAIN.ARBITRUM]: "https://api.studio.thegraph.com/query/50473/v2-arbitrum/version/latest", [CHAIN.BLAST]: "https://api.studio.thegraph.com/query/50473/v2-blast/version/latest", - [CHAIN.MODE]: "https://graph.dackieswap.xyz/mode/subgraphs/name/v2-mode", - [CHAIN.XLAYER]: "https://graph.dackieswap.xyz/xlayer/subgraphs/name/v2-xlayer", + [CHAIN.MODE]: "https://api.studio.thegraph.com/query/50473/v2-mode/version/latest", + [CHAIN.XLAYER]: "https://api.studio.thegraph.com/query/50473/v2-xlayer/version/latest", }; // Fetch function to query the subgraphs diff --git a/dexs/dackieswap/index.ts b/dexs/dackieswap/index.ts index 981e9e22be..4c41209576 100644 --- a/dexs/dackieswap/index.ts +++ b/dexs/dackieswap/index.ts @@ -13,9 +13,9 @@ const v3Endpoint = { [CHAIN.BLAST]: "https://api.studio.thegraph.com/query/50473/v3-blast/version/latest", [CHAIN.MODE]: - "https://graph.dackieswap.xyz/mode/subgraphs/name/v3-mode", + "https://api.studio.thegraph.com/query/50473/v3-mode/version/latest", [CHAIN.XLAYER]: - "https://graph.dackieswap.xyz/xlayer/subgraphs/name/v3-xlayer", + "https://api.studio.thegraph.com/query/50473/v3-xlayer/version/latest", }; const VOLUME_USD = "volumeUSD"; From 7059f429cbf5c64c70ba04c78f805b3faace4b15 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sat, 17 Aug 2024 17:55:59 +0100 Subject: [PATCH 108/237] add dextools --- fees/dexscreener.ts | 3 +- fees/dextools.ts | 92 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 fees/dextools.ts diff --git a/fees/dexscreener.ts b/fees/dexscreener.ts index d3e307683a..4081c79aa8 100644 --- a/fees/dexscreener.ts +++ b/fees/dexscreener.ts @@ -46,7 +46,8 @@ const adapter: Adapter = { fetch: sol, start: 0 } - }) + }), + isExpensiveAdapter: true } export default adapter; \ No newline at end of file diff --git a/fees/dextools.ts b/fees/dextools.ts new file mode 100644 index 0000000000..33e2484eed --- /dev/null +++ b/fees/dextools.ts @@ -0,0 +1,92 @@ +/* +Payment Transaction Link (etherscan,bscscan...) +* +Fast Track Update Fee (for tokens deployed on all chains): + +The fee for a fast track update can be paid using either 1500 $DEXT, 0.4 $ETH, or 2 $BNB. +Please make the payment exclusively to this address: 0x997Cc123cF292F46E55E6E63e806CD77714DB70f +Submit the form immediately after payment to avoid losing its validity. +Fast Track Update Fee ONLY for tokens deployed on Solana: + +The discounted fee for a fast track update can be paid using 5 $SOL. +Please make the payment exclusively to this address: GZ7GGigCJF5AUDky2kts5GAsHwdfkzuFXochCQy3cxfW + +Ensure all information in the form is accurate before submitting, we do not issue refunds. Do NOT send from an exchange. For a smoother update, it is advised to send funds from the token's deployer. + +Correct: https://etherscan.io/tx/0x123.... +Not correct: 0x123.... + +🔥 🔥 🔥 Get 50% discount on your update for tokens deployed on BASE Blockchain for a limited time: +The fee for a fast track update on BASE can be paid using either 750 $DEXT, 0.2 $ETH, or 1 $BNB. +Please make the payment exclusively to this address: 0x997Cc123cF292F46E55E6E63e806CD77714DB70f +Submit the form immediately after payment to avoid losing its validity. + +🔥 🔥 🔥 Get 70% discount on your update for tokens deployed on TON and TRON Blockchain for a limited time: +The fee for a fast track update on TON can be paid using 60 $TON, 0.12 $ETH, 450 $DEXT, or 0.6 $BNB. +Please make the payment exclusively to this address (ERC20 payments to the ERC20 address above): +UQC2-PvRTlqkHfeUdDx80rVRnaW7WoNWlpq4LBx7oWVhKisC + +Submit the form immediately after payment to avoid losing its validity. +The discount is valid only if applied at payment and while it is displayed in the form; no refunds for overpayments or unused discounts! + +For Tokens created with https://creator.dextools.io, enter "//TOKENCREATOR//" as the payment code. Entering the token creator's payment code without creating the token through the creator will mark your update request as spam. +*/ + +import { Adapter, FetchOptions } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import { queryDune } from "../helpers/dune"; +import { addTokensReceived } from '../helpers/token'; + +const tokens = { + ethereum: [ + "0xfb7b4564402e5500db5bb6d63ae671302777c75a", // DEXT + ], + bsc: [ + "0xe91a8d2c584ca93c7405f15c22cdfe53c29896e3", // DEXT + ], + base: [] +} as any + +const evm = async (options: FetchOptions) => { + const dailyFees = await addTokensReceived({ options, tokens: tokens[options.chain], target: '0x997Cc123cF292F46E55E6E63e806CD77714DB70f' }) + // add eth/bnb received + + return { + dailyFees, + dailyRevenue: dailyFees, + } +} + +const sol = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const value = (await queryDune("3521814", { + start: options.startTimestamp, + end: options.endTimestamp, + receiver: 'GZ7GGigCJF5AUDky2kts5GAsHwdfkzuFXochCQy3cxfW' + })); + dailyFees.add('So11111111111111111111111111111111111111112', value[0].fee_token_amount); + return { + dailyFees, + dailyRevenue: dailyFees, + } +} + +const adapter: Adapter = { + version: 2, + isExpensiveAdapter: true, + adapter: [CHAIN.ETHEREUM, CHAIN.BASE, CHAIN.BSC].reduce((all, chain) => ({ + ...all, + [chain]: { + fetch: evm, + start: 0, + } + }), { + [CHAIN.SOLANA]: { + fetch: sol, + start: 0 + } + }) + // missing tron and ton +} + +export default adapter; \ No newline at end of file From 1ae380aa6384a8e9fec445241338fbdb38ee9d8b Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sat, 17 Aug 2024 22:23:53 +0100 Subject: [PATCH 109/237] add manifold --- fees/manifold.ts | 58 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 fees/manifold.ts diff --git a/fees/manifold.ts b/fees/manifold.ts new file mode 100644 index 0000000000..780aa39a5e --- /dev/null +++ b/fees/manifold.ts @@ -0,0 +1,58 @@ +import { Adapter, FetchOptions } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import { nullAddress } from "../helpers/token"; + +// Found by looking at contracts deployed by 0xa8863bf1c8933f649e7b03eb72109e5e187505ea +// Yes, i manually checked hundreds of txs T_T + +const CREATE2_CONTRACTS = ["0x1eb73fee2090fb1c20105d5ba887e3c3ba14a17e", "0x04ba6cf3c5aa6d4946f5b7f7adf111012a9fac65", "0x23aa05a271debffaa3d75739af5581f744b326e4", "0x26bbea7803dcac346d5f5f135b57cf2c752a02be"] +const contracts = { + ethereum: ["0x3b8c2feb0f4953870f825df64322ec967aa26b8c", "0xDb8d79C775452a3929b86ac5DEaB3e9d38e1c006", "0x26bbea7803dcac346d5f5f135b57cf2c752a02be", "0x23aa05a271debffaa3d75739af5581f744b326e4"], + optimism: CREATE2_CONTRACTS, + base: CREATE2_CONTRACTS, + +} as any + + +const evm = async ({ fromApi, toApi, chain, createBalances }: FetchOptions) => { + const pre = await fromApi.sumTokens({ + token: nullAddress, + owners: contracts[chain] + }) + const post = await toApi.sumTokens({ + token: nullAddress, + owners: contracts[chain] + }) as any + const dailyFees = createBalances(); + dailyFees.addBalances(post) + dailyFees.subtract(pre) + if(Object.values(dailyFees)[0]<0){ + /* + When a new NFT is minted, a fee gets paid, the fee changes based on whether the NFT was minted with no whitelist or with a merkle whitelist + However there's no event emitted that can be used to differentiate those two cases, so its impossible to track exact fees via events, only upper and lower bounds + Because of that, the best way to track fees would be to track the difference in ETH balance for the contract and then subtract any withdrawal from the team + But withdrawals don't emit any event + So, given that withdrawals are very rare, what we do is just track the balance difference and when there's a withdrawal we error out so no data is produced + */ + throw new Error("negative rev") + } + + return { + dailyFees: dailyFees, + dailyRevenue: dailyFees, + } +} + +const adapter: Adapter = { + version: 2, + isExpensiveAdapter: true, + adapter: Object.keys(contracts).reduce((all, chain) => ({ + ...all, + [chain]: { + fetch: evm, + start: 0, + } + }), {}) +} + +export default adapter; \ No newline at end of file From 66dc18620e89561da8a95ee446beb778f398b105 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sat, 17 Aug 2024 22:35:45 +0100 Subject: [PATCH 110/237] clean --- fees/manifold.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/fees/manifold.ts b/fees/manifold.ts index 780aa39a5e..be502570c0 100644 --- a/fees/manifold.ts +++ b/fees/manifold.ts @@ -1,5 +1,4 @@ import { Adapter, FetchOptions } from "../adapters/types"; -import { CHAIN } from "../helpers/chains"; import { nullAddress } from "../helpers/token"; // Found by looking at contracts deployed by 0xa8863bf1c8933f649e7b03eb72109e5e187505ea @@ -10,7 +9,6 @@ const contracts = { ethereum: ["0x3b8c2feb0f4953870f825df64322ec967aa26b8c", "0xDb8d79C775452a3929b86ac5DEaB3e9d38e1c006", "0x26bbea7803dcac346d5f5f135b57cf2c752a02be", "0x23aa05a271debffaa3d75739af5581f744b326e4"], optimism: CREATE2_CONTRACTS, base: CREATE2_CONTRACTS, - } as any From 8ff83e2eddbe6f5a2cc5438362bf80e738f66cd6 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sat, 17 Aug 2024 23:48:42 +0100 Subject: [PATCH 111/237] add stablecoins + minor fix --- fees/circle.ts | 29 +++++++++++++++++++++++++++++ fees/manifold.ts | 1 - fees/tether.ts | 29 +++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 fees/circle.ts create mode 100644 fees/tether.ts diff --git a/fees/circle.ts b/fees/circle.ts new file mode 100644 index 0000000000..70ccf159dd --- /dev/null +++ b/fees/circle.ts @@ -0,0 +1,29 @@ +import { Adapter, FetchOptions } from "../adapters/types"; + +const adapter: Adapter = { + version: 2, + adapter: { + ethereum: { + fetch: async ({ fromTimestamp, createBalances }: FetchOptions) => { + const dailyFees = createBalances() + + // Based on https://www.circle.com/en/transparency + if(fromTimestamp > 1719709261){ + let annualYield = 0 + // per the last report, there's: + annualYield += 11.2e9*5.287/100 // 11.2bn in tbills + annualYield += 17.1e9*5.35/100 // in repos, which should be earning SOFR + dailyFees.addCGToken("usd-coin", annualYield/365) + } + + return { + dailyFees, + dailyRevenue: dailyFees + } + }, + start: 0 + } + } +} + +export default adapter; \ No newline at end of file diff --git a/fees/manifold.ts b/fees/manifold.ts index be502570c0..09b4927d87 100644 --- a/fees/manifold.ts +++ b/fees/manifold.ts @@ -43,7 +43,6 @@ const evm = async ({ fromApi, toApi, chain, createBalances }: FetchOptions) => { const adapter: Adapter = { version: 2, - isExpensiveAdapter: true, adapter: Object.keys(contracts).reduce((all, chain) => ({ ...all, [chain]: { diff --git a/fees/tether.ts b/fees/tether.ts new file mode 100644 index 0000000000..b6205798b8 --- /dev/null +++ b/fees/tether.ts @@ -0,0 +1,29 @@ +import { Adapter, FetchOptions } from "../adapters/types"; + +const adapter: Adapter = { + version: 2, + adapter: { + ethereum: { + fetch: async ({ fromTimestamp, createBalances }: FetchOptions) => { + const dailyFees = createBalances() + + // Based on https://tether.to/en/transparency/?tab=reports + if(fromTimestamp > 1719709261){ + let annualYield = 0 + // per the last report, there's: + annualYield += 80948e6*5.287/100 // 80.9bn in treasury bills with a maturity of less tham 90d, so picking the lowest yield between 1/2/3 mo treasurys + annualYield += 11.2e9*5.35/100 // 11.2bn in repos, which should be earning SOFR + dailyFees.addCGToken("tether", annualYield/365) + } + + return { + dailyFees, + dailyRevenue: dailyFees + } + }, + start: 0 + } + } +} + +export default adapter; \ No newline at end of file From af4672ba6bfbc5c0d593731fd6b9ec7bc6a64031 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sun, 18 Aug 2024 01:20:22 +0100 Subject: [PATCH 112/237] add thegraph --- fees/dexscreener.ts | 1 + fees/thegraph.ts | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 fees/thegraph.ts diff --git a/fees/dexscreener.ts b/fees/dexscreener.ts index 4081c79aa8..1bd67e033d 100644 --- a/fees/dexscreener.ts +++ b/fees/dexscreener.ts @@ -18,6 +18,7 @@ const eth = async (options: FetchOptions) => { } } +// TODO: check whether 5qR17nnyyBjoHPiGiAD4ZHFCSJixebJCYymArGgZiDnh was an older address where they received payments const sol = async (options: FetchOptions) => { const dailyFees = options.createBalances(); const value = (await queryDune("3986808", { diff --git a/fees/thegraph.ts b/fees/thegraph.ts new file mode 100644 index 0000000000..25b83b3e80 --- /dev/null +++ b/fees/thegraph.ts @@ -0,0 +1,25 @@ +import { Adapter, FetchOptions, } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.ARBITRUM]: { + fetch: (async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const logs = await options.getLogs({ + targets: ['0x1B07D3344188908Fb6DEcEac381f3eE63C48477a'], + eventAbi: "event TokensPulled(address indexed user,uint256 amount)", + }) + logs.map((tx: any) => { + dailyFees.add("0x9623063377ad1b27544c965ccd7342f7ea7e88c7", tx.amount) + }) + return { dailyFees, dailyRevenue: dailyFees, } + }) as any, + start: 0 + }, + }, + +} + +export default adapter; From 6844bd3beb01b693650d538fe1110ee7138e8810 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sun, 18 Aug 2024 02:37:11 +0100 Subject: [PATCH 113/237] dextools add native transfers --- fees/dextools.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/fees/dextools.ts b/fees/dextools.ts index 33e2484eed..8935380313 100644 --- a/fees/dextools.ts +++ b/fees/dextools.ts @@ -35,7 +35,7 @@ For Tokens created with https://creator.dextools.io, enter "//TOKENCREATOR//" as import { Adapter, FetchOptions } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; import { queryDune } from "../helpers/dune"; -import { addTokensReceived } from '../helpers/token'; +import { addTokensReceived, nullAddress } from '../helpers/token'; const tokens = { ethereum: [ @@ -47,9 +47,23 @@ const tokens = { base: [] } as any +const tableName = { + bsc: "bnb", + ethereum: "ethereum", + base: "base" +} as any + const evm = async (options: FetchOptions) => { - const dailyFees = await addTokensReceived({ options, tokens: tokens[options.chain], target: '0x997Cc123cF292F46E55E6E63e806CD77714DB70f' }) - // add eth/bnb received + const receiverWallet = '0x997Cc123cF292F46E55E6E63e806CD77714DB70f' + const dailyFees = await addTokensReceived({ options, tokens: tokens[options.chain], target: receiverWallet }) + const query = `select sum(value) as received from ${tableName[options.chain]}.transactions + where to = ${receiverWallet} + AND block_time >= from_unixtime(${options.startTimestamp}) + AND block_time <= from_unixtime(${options.endTimestamp})` + const nativeTransfers = await queryDune('3996608', { + fullQuery: query, + }) + dailyFees.add(nullAddress, nativeTransfers[0].received) return { dailyFees, From 6c95cf41f49332b4de665f146237755610fd4dff Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sun, 18 Aug 2024 13:03:16 +0100 Subject: [PATCH 114/237] fix sideshift --- fees/sideshift.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fees/sideshift.ts b/fees/sideshift.ts index 8047168b68..63a93e93f5 100644 --- a/fees/sideshift.ts +++ b/fees/sideshift.ts @@ -16,9 +16,9 @@ const fetchFees = async (options: FetchOptions) => { dailyFees.add(token, Number(log.data)) }) const holderRevenue = dailyFees.clone() - holderRevenue.resizeBy(4) + dailyFees.resizeBy(4) - return { dailyFees, dailyRevenue: holderRevenue, holdersRevenue: holderRevenue } + return { dailyFees, dailyRevenue: dailyFees, holdersRevenue: holderRevenue } } const adapters: SimpleAdapter = { version: 2, From 8cc238a2f85410a703270347f597265c50c30ce9 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 18 Aug 2024 13:28:09 +0000 Subject: [PATCH 115/237] fix skip unknow token --- fees/helio.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/helio.ts b/fees/helio.ts index 34d5ecbdda..c31ecca717 100644 --- a/fees/helio.ts +++ b/fees/helio.ts @@ -22,7 +22,7 @@ const fetch: any = async (options: FetchOptions) => { const dailyFees = options.createBalances(); receivedTokens.forEach(row=>{ if(!solanaDecimals[row.token_mint_address]){ - throw new Error("unsupported token") + return; // skip unknown tokens } dailyFees.add(row.token_mint_address, (row.received * 10**solanaDecimals[row.token_mint_address]).toFixed(0)) }) From cf4fd4802552be2972adfdd3a0b655820804f555 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 18 Aug 2024 14:26:06 +0000 Subject: [PATCH 116/237] block volume less than 0 --- dexs/ref-finance/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dexs/ref-finance/index.ts b/dexs/ref-finance/index.ts index 65adbb8c6d..cc258c57fe 100644 --- a/dexs/ref-finance/index.ts +++ b/dexs/ref-finance/index.ts @@ -16,6 +16,10 @@ const adapter: SimpleAdapter = { fetch: async(ts)=>{ const data = await httpGet(api) const cleanTimestamp = getUniqStartOfTodayTimestamp(new Date(ts * 1000)) + const dailyVolume = data.find((t:any)=>dateToTs(t.date) === cleanTimestamp)?.volume + if (!dailyVolume || Number(dailyVolume) < 0 || Number((dailyVolume)) > 1_000_000_000) { + throw new Error(`Invalid daily volume: ${dailyVolume}`) + } return { timestamp: cleanTimestamp, dailyVolume: data.find((t:any)=>dateToTs(t.date) === cleanTimestamp)?.volume @@ -25,4 +29,4 @@ const adapter: SimpleAdapter = { } }; -export default adapter; \ No newline at end of file +export default adapter; From 88a53b6306da22991c0cecc196ac9f0d802e97fd Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 18 Aug 2024 15:24:17 +0000 Subject: [PATCH 117/237] fix wrong set aadapter --- dexs/vertex-protocol/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/vertex-protocol/index.ts b/dexs/vertex-protocol/index.ts index edfeed8c5c..2291397853 100644 --- a/dexs/vertex-protocol/index.ts +++ b/dexs/vertex-protocol/index.ts @@ -140,7 +140,7 @@ const adapter: BreakdownAdapter = { start: 1718841600, }, [CHAIN.SEI]: { - fetch: fetchSpots, + fetch: fetchPerps, start: seiStartTime, } }, From 5b9bc9c0f9077652cf5a1ce0545384df9274e684 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 18 Aug 2024 16:35:41 +0000 Subject: [PATCH 118/237] skip map work --- fees/cellula/index.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fees/cellula/index.ts b/fees/cellula/index.ts index b55a32f585..abab1bf826 100644 --- a/fees/cellula/index.ts +++ b/fees/cellula/index.ts @@ -20,7 +20,7 @@ const adapter: Adapter = { const dailyFees = createBalances() // ✅ // Revenue - const dailyRevenue = createBalances() // ✅ + const dailyRevenue = createBalances() // ✅ const dailyProtocolRevenue = createBalances() // 70% + Food const dailyHoldersRevenue = createBalances() // 5% const dailySupplySideRevenue = createBalances() // 25% @@ -50,12 +50,15 @@ const adapter: Adapter = { "604800": "11900000000000000", } buyFoodLogs.map(e => { + if (!workTimePrice[e.workTime]) { + return + } dailyFees.addGasToken(workTimePrice[e.workTime]) dailyRevenue.addGasToken(workTimePrice[e.workTime]) dailyProtocolRevenue.addGasToken(workTimePrice[e.workTime]) }) return { - dailyFees, + dailyFees, dailyRevenue, dailyProtocolRevenue, dailyHoldersRevenue, dailySupplySideRevenue } }) as FetchV2, @@ -68,4 +71,4 @@ const adapter: Adapter = { version: 2, } -export default adapter; \ No newline at end of file +export default adapter; From fafedec9a433619cbd13582abdeb7416959c76b4 Mon Sep 17 00:00:00 2001 From: 0xngmi <80541789+0xngmi@users.noreply.github.com> Date: Sun, 18 Aug 2024 20:00:11 +0100 Subject: [PATCH 119/237] Update sideshift.ts --- fees/sideshift.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/sideshift.ts b/fees/sideshift.ts index 63a93e93f5..47238f1e56 100644 --- a/fees/sideshift.ts +++ b/fees/sideshift.ts @@ -18,7 +18,7 @@ const fetchFees = async (options: FetchOptions) => { const holderRevenue = dailyFees.clone() dailyFees.resizeBy(4) - return { dailyFees, dailyRevenue: dailyFees, holdersRevenue: holderRevenue } + return { dailyFees, dailyRevenue: dailyFees, dailyHoldersRevenue: holderRevenue } } const adapters: SimpleAdapter = { version: 2, From 04d1097d7ccbbdb05f53309391d64ff17493b95b Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sun, 18 Aug 2024 22:03:19 +0100 Subject: [PATCH 120/237] soltradingbot --- fees/stbot.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/stbot.ts b/fees/stbot.ts index 55b49fdb8b..ad7f57819c 100644 --- a/fees/stbot.ts +++ b/fees/stbot.ts @@ -4,7 +4,7 @@ import { queryDune } from "../helpers/dune"; const fetch: any = async (options: FetchOptions) => { const dailyFees = options.createBalances(); - const value = (await queryDune("3929011", { + const value = (await queryDune("3997872", { start: options.startTimestamp, end: options.endTimestamp, })); From bf265c2c42492b18fa69e4afadfcf80ae5af5afd Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sun, 18 Aug 2024 22:15:10 +0100 Subject: [PATCH 121/237] fix --- fees/manifold.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/manifold.ts b/fees/manifold.ts index 09b4927d87..28fa094b81 100644 --- a/fees/manifold.ts +++ b/fees/manifold.ts @@ -24,7 +24,7 @@ const evm = async ({ fromApi, toApi, chain, createBalances }: FetchOptions) => { const dailyFees = createBalances(); dailyFees.addBalances(post) dailyFees.subtract(pre) - if(Object.values(dailyFees)[0]<0){ + if(Number(Object.values(dailyFees.getBalances())[0])<0){ /* When a new NFT is minted, a fee gets paid, the fee changes based on whether the NFT was minted with no whitelist or with a merkle whitelist However there's no event emitted that can be used to differentiate those two cases, so its impossible to track exact fees via events, only upper and lower bounds From 0c79261c803c49cb5a1c2796d707f65e81de4aef Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sun, 18 Aug 2024 23:12:09 +0100 Subject: [PATCH 122/237] fix negative rev --- fees/dextools.ts | 16 +++------------- fees/manifold.ts | 26 ++++++++++++++++---------- helpers/dune.ts | 13 +++++++++++++ 3 files changed, 32 insertions(+), 23 deletions(-) diff --git a/fees/dextools.ts b/fees/dextools.ts index 8935380313..19d24399e6 100644 --- a/fees/dextools.ts +++ b/fees/dextools.ts @@ -34,7 +34,7 @@ For Tokens created with https://creator.dextools.io, enter "//TOKENCREATOR//" as import { Adapter, FetchOptions } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; -import { queryDune } from "../helpers/dune"; +import { queryDune, queryDuneSql } from "../helpers/dune"; import { addTokensReceived, nullAddress } from '../helpers/token'; const tokens = { @@ -47,22 +47,12 @@ const tokens = { base: [] } as any -const tableName = { - bsc: "bnb", - ethereum: "ethereum", - base: "base" -} as any - const evm = async (options: FetchOptions) => { const receiverWallet = '0x997Cc123cF292F46E55E6E63e806CD77714DB70f' const dailyFees = await addTokensReceived({ options, tokens: tokens[options.chain], target: receiverWallet }) - const query = `select sum(value) as received from ${tableName[options.chain]}.transactions + const nativeTransfers = await queryDuneSql(options, `select sum(value) as received from CHAIN.transactions where to = ${receiverWallet} - AND block_time >= from_unixtime(${options.startTimestamp}) - AND block_time <= from_unixtime(${options.endTimestamp})` - const nativeTransfers = await queryDune('3996608', { - fullQuery: query, - }) + AND TIME_RANGE`) dailyFees.add(nullAddress, nativeTransfers[0].received) return { diff --git a/fees/manifold.ts b/fees/manifold.ts index 28fa094b81..e2aea6b720 100644 --- a/fees/manifold.ts +++ b/fees/manifold.ts @@ -1,27 +1,28 @@ import { Adapter, FetchOptions } from "../adapters/types"; +import { queryDune, queryDuneSql } from "../helpers/dune"; import { nullAddress } from "../helpers/token"; // Found by looking at contracts deployed by 0xa8863bf1c8933f649e7b03eb72109e5e187505ea // Yes, i manually checked hundreds of txs T_T -const CREATE2_CONTRACTS = ["0x1eb73fee2090fb1c20105d5ba887e3c3ba14a17e", "0x04ba6cf3c5aa6d4946f5b7f7adf111012a9fac65", "0x23aa05a271debffaa3d75739af5581f744b326e4", "0x26bbea7803dcac346d5f5f135b57cf2c752a02be"] +const CREATE2_CONTRACTS = ["0x1eb73fee2090fb1c20105d5ba887e3c3ba14a17e", "0x04ba6cf3c5aa6d4946f5b7f7adf111012a9fac65", "0x23aa05a271debffaa3d75739af5581f744b326e4", "0x26bbea7803dcac346d5f5f135b57cf2c752a02be", "0xfc29813beeb3c7395c7a5f8dfc3352491d5ea0e2"] const contracts = { - ethereum: ["0x3b8c2feb0f4953870f825df64322ec967aa26b8c", "0xDb8d79C775452a3929b86ac5DEaB3e9d38e1c006", "0x26bbea7803dcac346d5f5f135b57cf2c752a02be", "0x23aa05a271debffaa3d75739af5581f744b326e4"], + ethereum: ["0x3b8c2feb0f4953870f825df64322ec967aa26b8c", "0xDb8d79C775452a3929b86ac5DEaB3e9d38e1c006", ...CREATE2_CONTRACTS], // missing old burn redeem and erc721 burn redeem optimism: CREATE2_CONTRACTS, base: CREATE2_CONTRACTS, } as any -const evm = async ({ fromApi, toApi, chain, createBalances }: FetchOptions) => { - const pre = await fromApi.sumTokens({ +const evm = async (options: FetchOptions) => { + const pre = await options.fromApi.sumTokens({ token: nullAddress, - owners: contracts[chain] + owners: contracts[options.chain] }) - const post = await toApi.sumTokens({ + const post = await options.toApi.sumTokens({ token: nullAddress, - owners: contracts[chain] + owners: contracts[options.chain] }) as any - const dailyFees = createBalances(); + const dailyFees = options.createBalances(); dailyFees.addBalances(post) dailyFees.subtract(pre) if(Number(Object.values(dailyFees.getBalances())[0])<0){ @@ -30,9 +31,14 @@ const evm = async ({ fromApi, toApi, chain, createBalances }: FetchOptions) => { However there's no event emitted that can be used to differentiate those two cases, so its impossible to track exact fees via events, only upper and lower bounds Because of that, the best way to track fees would be to track the difference in ETH balance for the contract and then subtract any withdrawal from the team But withdrawals don't emit any event - So, given that withdrawals are very rare, what we do is just track the balance difference and when there's a withdrawal we error out so no data is produced + So, given that withdrawals are very rare, what we do is just track the balance difference and when there's a withdrawal we fetch from traces */ - throw new Error("negative rev") + const nativeTransfers = await queryDuneSql(options, `select sum(value) as withdrawn from CHAIN.traces + where "from" IN (${contracts[options.chain].join(', ')}) + AND to IN (0x93fd235c56964e0ffb49229e8d642c3fd81310a5, 0xfa0f022aac5a1fd99094df8aadb947ce08f79d5b) + AND success = TRUE + AND TIME_RANGE`) + dailyFees.add(nullAddress, nativeTransfers[0].withdrawn) } return { diff --git a/helpers/dune.ts b/helpers/dune.ts index ab0efcb284..d3e3876439 100644 --- a/helpers/dune.ts +++ b/helpers/dune.ts @@ -90,3 +90,16 @@ export const queryDune = async (queryId: string, query_parameters = {}) => { } } } + +const tableName = { + bsc: "bnb", + ethereum: "ethereum", + base: "base" +} as any + +export const queryDuneSql = (options:any, query:string) => { + return queryDune("3996608", { + fullQuery: query.replace("CHAIN", tableName[options.chain]).replace("TIME_RANGE", `block_time >= from_unixtime(${options.startTimestamp}) + AND block_time <= from_unixtime(${options.endTimestamp})`) + }) +} From 76a0fcf433a13a237c2541e899fb1fa0e4ccfa47 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Sun, 18 Aug 2024 23:18:33 +0100 Subject: [PATCH 123/237] add address --- fees/manifold.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/manifold.ts b/fees/manifold.ts index e2aea6b720..52a5bbf39e 100644 --- a/fees/manifold.ts +++ b/fees/manifold.ts @@ -35,7 +35,7 @@ const evm = async (options: FetchOptions) => { */ const nativeTransfers = await queryDuneSql(options, `select sum(value) as withdrawn from CHAIN.traces where "from" IN (${contracts[options.chain].join(', ')}) - AND to IN (0x93fd235c56964e0ffb49229e8d642c3fd81310a5, 0xfa0f022aac5a1fd99094df8aadb947ce08f79d5b) + AND to IN (0x93fd235c56964e0ffb49229e8d642c3fd81310a5, 0xfa0f022aac5a1fd99094df8aadb947ce08f79d5b, 0x3a0079197027d80c260f8cd482210fdc48ec51e5) AND success = TRUE AND TIME_RANGE`) dailyFees.add(nullAddress, nativeTransfers[0].withdrawn) From 5b637467ae436e6b6417953c81fe5bbfc06dd3dc Mon Sep 17 00:00:00 2001 From: rasplarry Date: Mon, 19 Aug 2024 11:50:26 +0900 Subject: [PATCH 124/237] chore: Update seiyanfun initial timestamp --- dexs/seiyan-fun/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/seiyan-fun/index.ts b/dexs/seiyan-fun/index.ts index aa93c63714..eb0a247378 100644 --- a/dexs/seiyan-fun/index.ts +++ b/dexs/seiyan-fun/index.ts @@ -7,7 +7,7 @@ import { const SEIYAN_FUN_BASE_URL = "https://seiyan.fun/api/public/v1"; const SEI_PACIFIC_CAIP_CHAIN_ID = "cosmos:sei-pacific-1"; -const SEIYAN_FUN_INITIAL_TIMESTAMP = 1722510000; // 2024-08-01 11:00:00 UTC +const SEIYAN_FUN_INITIAL_TIMESTAMP = 1722470400; // 2024-08-01 00:00:00 UTC const buildTradingVolumeUrl = (startAt: number, endAt: number) => `${SEIYAN_FUN_BASE_URL}/trading-volume?caipChainID=${SEI_PACIFIC_CAIP_CHAIN_ID}&startAt=${startAt}&endAt=${endAt}`; From 03ca07f05bd9174903f0d10ba0cbf2bdecec2515 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Mon, 19 Aug 2024 04:16:45 +0100 Subject: [PATCH 125/237] fix --- fees/manifold.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/manifold.ts b/fees/manifold.ts index 52a5bbf39e..01be640f99 100644 --- a/fees/manifold.ts +++ b/fees/manifold.ts @@ -35,7 +35,7 @@ const evm = async (options: FetchOptions) => { */ const nativeTransfers = await queryDuneSql(options, `select sum(value) as withdrawn from CHAIN.traces where "from" IN (${contracts[options.chain].join(', ')}) - AND to IN (0x93fd235c56964e0ffb49229e8d642c3fd81310a5, 0xfa0f022aac5a1fd99094df8aadb947ce08f79d5b, 0x3a0079197027d80c260f8cd482210fdc48ec51e5) + AND to IN (0x93fd235c56964e0ffb49229e8d642c3fd81310a5, 0xfa0f022aac5a1fd99094df8aadb947ce08f79d5b, 0x3a0079197027d80c260f8cd482210fdc48ec51e5, 0x267bfe2905dccec10cb22115ca1d0b1da11ddad5) AND success = TRUE AND TIME_RANGE`) dailyFees.add(nullAddress, nativeTransfers[0].withdrawn) From 68b2b9dc99d658dd2ae1b844e5e916c2e77992e6 Mon Sep 17 00:00:00 2001 From: unyoungwax Date: Mon, 19 Aug 2024 13:19:05 +0800 Subject: [PATCH 126/237] add 4Cast fees adaptor --- fees/4cast/index.ts | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 fees/4cast/index.ts diff --git a/fees/4cast/index.ts b/fees/4cast/index.ts new file mode 100644 index 0000000000..2c4f602cd1 --- /dev/null +++ b/fees/4cast/index.ts @@ -0,0 +1,41 @@ +import { Adapter, FetchOptions, FetchV2 } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { postURL } from "../../utils/fetchURL"; + +interface IData { + dailyFees: string; +} + +const endpoint = "https://www.4cast.win/api/api/platformFees"; + +function createSolBalances(options: FetchOptions, value: string) { + const balances = options.createBalances(); + + balances.addGasToken(Number(value)); + + return balances; +} + +const fetch: FetchV2 = async (options) => { + const data: IData = await postURL(endpoint, { + startTimestamp: options.startTimestamp, + endTimestamp: options.endTimestamp, + }); + + return { + dailyFees: createSolBalances(options, data.dailyFees), + }; +}; + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.SOLANA]: { + fetch, + runAtCurrTime: false, + start: 1721174400, + }, + }, +}; + +export default adapter; From 3b0573a261a746bb9a39b2bbe3b987c6a9a04a2e Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 19 Aug 2024 14:25:29 +0900 Subject: [PATCH 127/237] update: change endpoint url. --- options/moby/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/options/moby/index.ts b/options/moby/index.ts index 9995072e39..055745f83d 100644 --- a/options/moby/index.ts +++ b/options/moby/index.ts @@ -11,7 +11,7 @@ interface IMobyVolumeResponse { // endTime is in ms export const mobyVolumeEndpoint = (endTime: number) => { - return `https://kv6mtyhua5.execute-api.ap-northeast-2.amazonaws.com/prod/getVolumeData?end_time=${endTime}`; + return `https://u63601xvgc.execute-api.ap-northeast-2.amazonaws.com/prod/getVolumeData?end_time=${endTime}`; } export const moby_adapter: SimpleAdapter = { From 49848cd18a5e1e39e0da36fb16dd0260cd614c54 Mon Sep 17 00:00:00 2001 From: MatHermida Date: Mon, 19 Aug 2024 09:35:41 -0300 Subject: [PATCH 128/237] edit start date --- dexs/c3-exchange/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/c3-exchange/index.ts b/dexs/c3-exchange/index.ts index fae2cae3a2..33db0459f9 100644 --- a/dexs/c3-exchange/index.ts +++ b/dexs/c3-exchange/index.ts @@ -58,7 +58,7 @@ function adapterConstructor( ...obj, [chain]: { fetch: fetchVolumeFunc, - start: 1688169600, // 2023-7-1 00:00:00 GMT + start: 1688169600, // 1st July 2023, 00:00:00 GMT // runAtCurrTime: false, meta: { methodology: { From d7a50f3d04ff617426ffe9bb43c1eab00c7f4e73 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 19 Aug 2024 13:17:20 +0000 Subject: [PATCH 129/237] fix filter by date id --- dexs/oraidex-v3/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/oraidex-v3/index.ts b/dexs/oraidex-v3/index.ts index 1067b3a869..1c9d2aede0 100644 --- a/dexs/oraidex-v3/index.ts +++ b/dexs/oraidex-v3/index.ts @@ -6,7 +6,7 @@ import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume const historicalVolumeEndpoint = "https://staging-ammv3-indexer.oraidex.io/"; const fetch = async (timestamp: number) => { const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); - const dayIndex = Math.floor(dayTimestamp / 86400000) - 1; + const dayIndex = Math.floor(dayTimestamp / 86400); const query = gql` query PoolDayData { poolDayData( From 0dbc0aaff2977f3c566c21f228114b6f6156eb41 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 19 Aug 2024 13:18:35 +0000 Subject: [PATCH 130/237] fix date --- dexs/oraidex-v3/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dexs/oraidex-v3/index.ts b/dexs/oraidex-v3/index.ts index 1c9d2aede0..ecf8fbb772 100644 --- a/dexs/oraidex-v3/index.ts +++ b/dexs/oraidex-v3/index.ts @@ -1,11 +1,11 @@ import { gql, GraphQLClient } from "graphql-request"; -import { SimpleAdapter } from "../../adapters/types"; +import { FetchOptions, SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; const historicalVolumeEndpoint = "https://staging-ammv3-indexer.oraidex.io/"; -const fetch = async (timestamp: number) => { - const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); +const fetch = async (timestamp: number, _t: any, options: FetchOptions) => { + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(options.startOfDay * 1000)); const dayIndex = Math.floor(dayTimestamp / 86400); const query = gql` query PoolDayData { From b6a4c02bda0c909058243add3d89cba4d78f1cc6 Mon Sep 17 00:00:00 2001 From: swan-of-bodom <0xHyoga@cygnusdao.finance> Date: Mon, 19 Aug 2024 15:20:44 +0200 Subject: [PATCH 131/237] impermax: add new chains fees --- fees/impermax-finance.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/fees/impermax-finance.ts b/fees/impermax-finance.ts index 316ed1089a..33eb712bbd 100644 --- a/fees/impermax-finance.ts +++ b/fees/impermax-finance.ts @@ -108,6 +108,22 @@ const adapter: Adapter = { methodology } }, + [CHAIN.BASE]: { + fetch: graphs()(CHAIN.BASE), + runAtCurrTime: true, + start: 1698019200, + meta: { + methodology + } + }, + [CHAIN.SCROLL]: { + fetch: graphs()(CHAIN.SCROLL), + runAtCurrTime: true, + start: 1698019200, + meta: { + methodology + } + }, }, } From 2ca03316f28ad998986e958b3bf563bb3e5643fd Mon Sep 17 00:00:00 2001 From: waynebruce0x Date: Mon, 19 Aug 2024 14:23:57 +0100 Subject: [PATCH 132/237] pendle volumes --- fees/pendle.ts | 153 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 106 insertions(+), 47 deletions(-) diff --git a/fees/pendle.ts b/fees/pendle.ts index a2b51e88d8..21f93ea039 100644 --- a/fees/pendle.ts +++ b/fees/pendle.ts @@ -1,7 +1,7 @@ import { - ChainBlocks, + FetchGetLogsOptions, FetchOptions, - FetchResultFees, + FetchResultV2, SimpleAdapter, } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; @@ -9,12 +9,14 @@ import { Chain } from "@defillama/sdk/build/general"; import { addTokensReceived } from "../helpers/token"; import BigNumber from "bignumber.js"; import { getConfig } from "../helpers/cache"; -import { ChainApi } from "@defillama/sdk"; +import { Balances, ChainApi } from "@defillama/sdk"; const ABI = { assetInfo: "function assetInfo() view returns (uint8,address,uint8)", getRewardTokens: "function getRewardTokens() view returns (address[])", exchangeRate: "function exchangeRate() view returns (uint256)", + orderFilledV2: + "event OrderFilledV2(bytes32 indexed orderHash, uint8 indexed orderType, address indexed YT, address token, uint256 netInputFromMaker, uint256 netOutputToMaker, uint256 feeAmount, uint256 notionalVolume, address maker, address taker)", marketSwapEvent: "event Swap(address indexed caller, address indexed receiver, int256 netPtOut, int256 netSyOut, uint256 netSyFee, uint256 netSyToReserve)", }; @@ -25,6 +27,24 @@ type IConfig = { }; }; +type MarketData = { + address: string; + sy: { + address: string; + }; + yt: { + address: string; + }; +}; + +const chains: { [chain: string]: { id: number; start: number } } = { + [CHAIN.ETHEREUM]: { id: 1, start: 1686268800 }, + [CHAIN.ARBITRUM]: { id: 42161, start: 1686268800 }, + [CHAIN.MANTLE]: { id: 5000, start: 1711506087 }, + [CHAIN.BSC]: { id: 56, start: 1686268800 }, + [CHAIN.OPTIMISM]: { id: 10, start: 1691733600 }, +}; + const STETH_ETHEREUM = "ethereum:0xae7ab96520de3a18e5e111b5eaab095312d7fe84"; const EETH_ETHEREUM = "ethereum:0x35fa164735182de50811e8e2e824cfb9b6118ac2"; const WETH_ETHEREUM = "ethereum:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"; @@ -62,20 +82,64 @@ const chainConfig: IConfig = { treasury: "0xe972d450ec5b11b99d97760422e0e054afbc8042", }, [CHAIN.MANTLE]: { - treasury: "0x5c30d3578a4d07a340650a76b9ae5df20d5bdf55" - } + treasury: "0x5c30d3578a4d07a340650a76b9ae5df20d5bdf55", + }, }; +async function amm( + marketToSy: Map, + getLogs: (params: FetchGetLogsOptions) => Promise, + balances: Balances, +): Promise { + const swapEvents: { [address: string]: any[] } = {}; + await Promise.all( + Object.keys(marketToSy).map( + async (target: string) => + await getLogs({ + eventAbi: ABI.marketSwapEvent, + target, + }).then((e) => { + swapEvents[target] = e; + }), + ), + ); + + Object.keys(swapEvents).map((market) => { + swapEvents[market].map((swap) => { + balances.add(marketToSy.get(market)!, Math.abs(Number(swap.netSyOut))); + }); + }); +} + +async function limitOrder( + ytToSy: Map, + getLogs: (params: FetchGetLogsOptions) => Promise, + balances: Balances, +): Promise { + const fills = await getLogs({ + target: "0x000000000000c9b3e2c3ec88b1b4c0cd853f4321", + eventAbi: ABI.orderFilledV2, + }); + + fills.map((fill) => { + const sy = ytToSy.get(fill.YT.toLowerCase()); + if (!sy) return; + balances.add(sy, fill.notionalVolume); + }); +} + const fetch = (chain: Chain) => { - return async ( - timestamp: number, - _: ChainBlocks, - options: FetchOptions - ): Promise => { - await getWhitelistedAssets(options.api); - const { api, getLogs, createBalances } = options; + return async (options: FetchOptions): Promise => { + const { markets, sys, marketToSy, ytToSy } = await getWhitelistedAssets( + options.api, + ); + const dailyVolume: Balances = options.createBalances(); - const { markets, sys, marketToSy } = await getWhitelistedAssets(api); + const volumePromises = [ + await amm(marketToSy, options.getLogs, dailyVolume), + await limitOrder(ytToSy, options.getLogs, dailyVolume), + ]; + const { api, getLogs, createBalances } = options; const rewardTokens: string[] = ( await api.multiCall({ @@ -115,10 +179,10 @@ const fetch = (chain: Chain) => { const netSyToReserve = swapEvent.netSyToReserve; dailySupplySideFees.add( marketToSy.get(market)!, - netSyFee - netSyToReserve + netSyFee - netSyToReserve, ); // excluding revenue fee } - }) + }), ); const dailyRevenue = await addTokensReceived({ @@ -174,7 +238,7 @@ const fetch = (chain: Chain) => { ? { skipChain: true, } - : undefined + : undefined, ); if (rawAmountSupplySide !== undefined) { @@ -185,7 +249,7 @@ const fetch = (chain: Chain) => { ? { skipChain: true, } - : undefined + : undefined, ); } } @@ -193,49 +257,27 @@ const fetch = (chain: Chain) => { const dailyFees = dailyRevenue.clone(); dailyFees.addBalances(dailySupplySideFees); + await Promise.all(volumePromises); + return { - dailyFees: dailyFees, - dailyRevenue: dailyRevenue, + dailyVolume, + dailyFees, + dailyRevenue, dailyHoldersRevenue: dailyRevenue, dailySupplySideRevenue: dailySupplySideFees, - timestamp, }; }; }; -const adapter: SimpleAdapter = { - adapter: { - [CHAIN.ETHEREUM]: { - fetch: fetch(CHAIN.ETHEREUM), - start: 1686268800, - }, - [CHAIN.ARBITRUM]: { - fetch: fetch(CHAIN.ARBITRUM), - start: 1686268800, - }, - [CHAIN.BSC]: { - fetch: fetch(CHAIN.BSC), - start: 1686268800, - }, - [CHAIN.OPTIMISM]: { - fetch: fetch(CHAIN.OPTIMISM), - start: 1691733600, - }, - [CHAIN.MANTLE]: { - fetch: fetch(CHAIN.MANTLE), - start: 1711506087, - }, - }, -}; - async function getWhitelistedAssets(api: ChainApi): Promise<{ markets: string[]; sys: string[]; marketToSy: Map; + ytToSy: Map; }> { const { results } = await getConfig( "pendle/v2/revenue-" + api.chain, - `https://api-v2.pendle.finance/core/v1/${api.chainId!}/markets?order_by=name%3A1&skip=0&limit=100&select=all` + `https://api-v2.pendle.finance/core/v1/${api.chainId!}/markets?order_by=name%3A1&skip=0&limit=100&select=all`, ); const markets = results.map((d: any) => d.lp.address); const sySet: Set = new Set(results.map((d: any) => d.sy.address)); @@ -246,7 +288,24 @@ async function getWhitelistedAssets(api: ChainApi): Promise<{ marketToSy.set(result.lp.address, result.sy.address); } - return { markets, sys, marketToSy }; + const ytToSy = new Map(); + results.map((market: MarketData) => { + ytToSy.set(market.yt.address.toLowerCase(), market.sy.address); + }); + + return { markets, sys, marketToSy, ytToSy }; } +const adapter: SimpleAdapter = { + version: 2, + adapter: {}, +}; + +Object.keys(chains).map((chain) => { + adapter.adapter[chain] = { + fetch: fetch(chain), + start: chains[chain].start, + }; +}); + export default adapter; From 5fc452c9dea790ac2671c259aa9ae393fcde253f Mon Sep 17 00:00:00 2001 From: waynebruce0x Date: Mon, 19 Aug 2024 14:30:20 +0100 Subject: [PATCH 133/237] v2 func --- helpers/getUniSubgraph/index.ts | 224 +++++++++++++++++++++++++++++++- 1 file changed, 220 insertions(+), 4 deletions(-) diff --git a/helpers/getUniSubgraph/index.ts b/helpers/getUniSubgraph/index.ts index 2a659a4db5..2b69bbf772 100644 --- a/helpers/getUniSubgraph/index.ts +++ b/helpers/getUniSubgraph/index.ts @@ -3,14 +3,14 @@ import { request, gql } from "graphql-request"; import { BaseAdapter, FetchOptions, FetchResultGeneric, IJSON, SimpleAdapter } from "../../adapters/types"; import { DEFAULT_DAILY_FEES_FACTORY, DEFAULT_DAILY_FEES_FIELD, DEFAULT_TOTAL_FEES_FACTORY, DEFAULT_TOTAL_FEES_FIELD } from "../getUniSubgraphFees"; import BigNumber from "bignumber.js"; -import { handle200Errors } from "./utils"; +import { getUniqStartOfTodayTimestamp, getUniswapDateId, handle200Errors } from "./utils"; import { getStartTimestamp } from "../getStartTimestamp"; const DEFAULT_TOTAL_VOLUME_FACTORY = "uniswapFactories"; const DEFAULT_TOTAL_VOLUME_FIELD = "totalVolumeUSD"; -const DEFAULT_DAILY_VOLUME_FACTORY = "uniswapFactories"; -const DEFAULT_DAILY_VOLUME_FIELD = "totalVolumeUSD"; +const DEFAULT_DAILY_VOLUME_FACTORY = "uniswapDayData"; +const DEFAULT_DAILY_VOLUME_FIELD = "dailyVolumeUSD"; const DEFAULT_DAILY_DATE_FIELD = "date"; const DEFAULT_DAILY_PAIR_FACTORY = "pairDayDatas"; @@ -69,6 +69,7 @@ type pair = { } } & IJSON + function getGraphDimensions({ graphUrls, graphRequestHeaders, @@ -96,7 +97,6 @@ function getGraphDimensions({ feesPercent, blacklistTokens = {} }: IGetChainVolumeParams) { - dailyFees; // DAILY VOLUME // Graph fields const graphFieldsDailyVolume = { @@ -106,6 +106,222 @@ function getGraphDimensions({ pairs: dailyVolume.pairs ?? DEFAULT_DAILY_PAIR_FACTORY, idGraphType: dailyVolume.idGraphType ?? DEFAULT_ID_TYPE } + // Queries + const dailyVolumeQuery = gql` + query daily_volume ($id: ${graphFieldsDailyVolume.idGraphType}) { + ${graphFieldsDailyVolume.factory} (id: $id) { + ${graphFieldsDailyVolume.field} + } + }`; + const alternativeDailyQuery = gql` + query daily_volume_alternative ($timestamp: Int) { + ${graphFieldsDailyVolume.factory}s (where: {${graphFieldsDailyVolume.dateField}: $timestamp}) { + ${graphFieldsDailyVolume.dateField} + ${graphFieldsDailyVolume.field} + } + }`; + + // TOTAL VOLUME + // Graph fields + const graphFieldsTotalVolume = { + factory: totalVolume.factory ?? DEFAULT_TOTAL_VOLUME_FACTORY, + field: totalVolume.field ?? DEFAULT_TOTAL_VOLUME_FIELD, + blockGraphType: totalVolume.blockGraphType ?? DEFAULT_BLOCK_TYPE + } + // Queries + const totalVolumeQuery = gql` + query total_volume ($block: ${graphFieldsTotalVolume.blockGraphType}) { + ${graphFieldsTotalVolume.factory}(block: { number: $block }) { + ${graphFieldsTotalVolume.field} + } + }`; + + // DAILY FEES + // Graph fields + const graphFieldsDailyFees = { + factory: dailyFees.factory ?? DEFAULT_DAILY_FEES_FACTORY, + field: dailyFees.field ?? DEFAULT_DAILY_FEES_FIELD + } + // Query + const dailyFeesQuery = gql` + query daily_fees ($id: ID!) { + ${graphFieldsDailyFees.factory}(id: $id) { + ${graphFieldsDailyFees.field} + } + }`; + + // TOTAL FEES + // Graph fields + const graphFieldsTotalFees = { + factory: totalFees.factory ?? DEFAULT_TOTAL_FEES_FACTORY, + field: totalFees.field ?? DEFAULT_TOTAL_FEES_FIELD + } + // Query + const totalFeesQuery = gql` + query total_fees { + ${graphFieldsTotalFees.factory} { + ${graphFieldsTotalFees.field} + } + }`; + + return (chain: Chain) => { + + const dailyVolumePairsQuery = blacklistTokens[chain] ? gql` + query daily_volume_byPair ($timestamp_gt: Int, $timestamp_lte: Int) { + pairDayDatas(where:{${graphFieldsDailyVolume.dateField}_gt: $timestamp_gt, ${graphFieldsDailyVolume.dateField}_lte: $timestamp_lte, ${graphFieldsDailyVolume.field}_not: 0}, orderBy: ${graphFieldsDailyVolume.field}, orderDirection: desc, first: 1000){ + date + token0{ + symbol + id + } + token1{ + symbol + id + } + ${graphFieldsDailyVolume.field} + } + } + ` + : undefined; + return async (options: FetchOptions) => { + const { endTimestamp, getEndBlock } = options; + // ts-node --transpile-only cli/testAdapter.ts protocols uniswap + const customBlockFunc = getCustomBlock ? getCustomBlock : getEndBlock; + const block = + (await customBlockFunc(endTimestamp).catch((e: any) => + console.log(wrapGraphError(e).message), + )) ?? undefined; + // Get params + const id = String(getUniswapDateId(new Date(endTimestamp * 1000))); + // Execute queries + // DAILY VOLUME + let graphResDailyVolume; + let dailyVolume: any; + if (dailyVolumePairsQuery) { + console.info("Calculating volume excluding blacklisted tokens..."); + graphResDailyVolume = await request( + graphUrls[chain], + dailyVolumePairsQuery, + { + timestamp_gt: endTimestamp - 3600 * 24, + timestamp_lte: endTimestamp, + }, + graphRequestHeaders?.[chain], + ) + .catch(handle200Errors) + .catch((e) => + console.error( + `GraphFetchError: Failed to get daily volume on ${chain} with graph ${ + graphUrls[chain] + }: ${wrapGraphError(e).message}`, + ), + ); + dailyVolume = graphResDailyVolume?.[ + graphFieldsDailyVolume.pairs + ]?.reduce((acc: number | undefined, current: pair) => { + if ( + blacklistTokens[chain].includes(current.token0.id) || + blacklistTokens[chain].includes(current.token1.id) + ) + return acc; + if (current?.[graphFieldsDailyVolume.field]) { + if (acc) return acc += +current?.[graphFieldsDailyVolume.field] + return +current?.[graphFieldsDailyVolume.field] + } + return acc + }, undefined as number | undefined) + } else { + graphResDailyVolume = await request(graphUrls[chain], dailyVolumeQuery, { id }, graphRequestHeaders?.[chain]).catch(handle200Errors).catch(e => console.error(`GraphFetchError: Failed to get daily volume on ${chain} with graph ${graphUrls[chain]}: ${wrapGraphError(e).message}`)) + dailyVolume = graphResDailyVolume?.[graphFieldsDailyVolume.factory]?.[graphFieldsDailyVolume.field] + if (!graphResDailyVolume || !dailyVolume) { + console.info("Attempting with alternative query...") + graphResDailyVolume = await request(graphUrls[chain], alternativeDailyQuery, { timestamp: getUniqStartOfTodayTimestamp(new Date(endTimestamp * 1000)) }, graphRequestHeaders?.[chain]).catch(handle200Errors).catch(e => console.error(`Failed to get alternative daily volume on ${chain} with graph ${graphUrls[chain]}: ${wrapGraphError(e).message}`)) + const factory = graphFieldsDailyVolume.factory.toLowerCase().charAt(graphFieldsDailyVolume.factory.length - 1) === 's' ? graphFieldsDailyVolume.factory : `${graphFieldsDailyVolume.factory}s` + dailyVolume = graphResDailyVolume?.[factory].reduce((p: any, c: any) => p + Number(c[graphFieldsDailyVolume.field]), 0); + } + } + + // TOTAL VOLUME + const graphResTotalVolume = await request(graphUrls[chain], totalVolumeQuery, { block }, graphRequestHeaders?.[chain]).catch(handle200Errors).catch(e => console.error(`GraphFetchError: Failed to get total volume on ${chain} with graph ${graphUrls[chain]}: ${wrapGraphError(e).message}`)); + const totalVolume = graphResTotalVolume?.[graphFieldsTotalVolume.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalVolume.field]), 0)?.toString() + + // DAILY FEES + const graphResDailyFees = await request(graphUrls[chain], dailyFeesQuery, { id }, graphRequestHeaders?.[chain]).catch(_e => { + if (dailyVolume === undefined || feesPercent?.Fees === undefined) + console.error(`Unable to get daily fees on ${chain} from graph.`) + }); + const dailyFees = graphResDailyFees?.[graphFieldsDailyFees.factory]?.[graphFieldsDailyFees.field] + + // TOTAL FEES + const graphResTotalFees = await request(graphUrls[chain], totalFeesQuery, { id }, graphRequestHeaders?.[chain]).catch(_e => { + if (totalVolume === undefined || feesPercent?.Fees === undefined) + console.error(`Unable to get total fees on ${chain} from graph.`) + }); + const totalFees = graphResTotalFees?.[graphFieldsTotalFees.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalFees.field]), 0) + + const response: FetchResultGeneric = { + timestamp: endTimestamp, + block, + totalVolume, + dailyVolume, + dailyFees, + totalFees + }; + + if (feesPercent) { + const feeBase = feesPercent.type + const dailyBase = feeBase === 'volume' ? dailyVolume : dailyFees + const totalBase = feeBase === 'volume' ? totalVolume : totalFees + Object.entries(feesPercent).forEach(([feeType, feePercentType]) => { + if (typeof feePercentType !== "number") return + if (dailyBase !== undefined && response[`daily${feeType}`] === undefined) + response[`daily${feeType}`] = new BigNumber(dailyBase).multipliedBy(feePercentType / 100).toString() + if (totalBase && response[`total${feeType}`] === undefined) + response[`total${feeType}`] = new BigNumber(totalBase).multipliedBy(feePercentType / 100).toString() + }) + } + return response + }; + }; +} + +function getGraphDimensions2({ + graphUrls, + graphRequestHeaders, + totalVolume = { + factory: DEFAULT_TOTAL_VOLUME_FACTORY, + field: DEFAULT_TOTAL_VOLUME_FIELD, + blockGraphType: DEFAULT_BLOCK_TYPE + }, + dailyVolume = { + factory: DEFAULT_TOTAL_VOLUME_FACTORY, + field: DEFAULT_TOTAL_VOLUME_FIELD, + dateField: DEFAULT_DAILY_DATE_FIELD, + pairs: DEFAULT_DAILY_PAIR_FACTORY, + idGraphType: DEFAULT_ID_TYPE + }, + totalFees = { + factory: DEFAULT_TOTAL_FEES_FACTORY, + field: DEFAULT_TOTAL_FEES_FIELD, + }, + dailyFees = { + factory: DEFAULT_DAILY_FEES_FACTORY, + field: DEFAULT_DAILY_FEES_FIELD, + }, + getCustomBlock, + feesPercent, + blacklistTokens = {} +}: IGetChainVolumeParams) { + dailyFees; + // DAILY VOLUME + // Graph fields + const graphFieldsDailyVolume = { + factory: dailyVolume.factory ?? DEFAULT_TOTAL_VOLUME_FACTORY, + field: dailyVolume.field ?? DEFAULT_TOTAL_VOLUME_FIELD, + dateField: dailyVolume.dateField ?? DEFAULT_DAILY_DATE_FIELD, // For alternative query + pairs: dailyVolume.pairs ?? DEFAULT_DAILY_PAIR_FACTORY, + idGraphType: dailyVolume.idGraphType ?? DEFAULT_ID_TYPE + } // TOTAL VOLUME // Graph fields const graphFieldsTotalVolume = { From 9c6e75393ef00ff074854151bbb48c5b12770533 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 19 Aug 2024 13:37:48 +0000 Subject: [PATCH 134/237] fix get daily data --- fees/demented-games/index.ts | 50 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/fees/demented-games/index.ts b/fees/demented-games/index.ts index ad0d412bfc..bc0726f152 100644 --- a/fees/demented-games/index.ts +++ b/fees/demented-games/index.ts @@ -7,32 +7,34 @@ import { commonAbi } from './abi'; const ROULETTE_ADDRESS = '0x94ba26ee118ef6c407c75dbb23385b1ad71a4547'; const PUMP_OR_REKT_ADDRESS = '0xcbc003cb76c5d218cba2dfb3a2b2f101950ed7e7'; -const startDate = new Date('2024-07-26T00:00:00.000Z').getTime(); -const currentDate = new Date().getTime(); -const differenceInTime = currentDate - startDate; -const totalDays = Math.floor(differenceInTime / (1000 * 60 * 60 * 24)); - -async function fetch({ createBalances, api }: FetchOptions) { +async function fetch({ createBalances, api, fromApi, toApi }: FetchOptions) { const totalFees = createBalances(); const dailyFees = createBalances(); - - const pumpOrRektFees = BigNumber( - await api.call({ - abi: commonAbi[0], - target: ROULETTE_ADDRESS, - }) - ); - const roulletteFees = BigNumber( - await api.call({ - abi: commonAbi[0], - target: PUMP_OR_REKT_ADDRESS, - }) - ); - - const total = pumpOrRektFees.plus(roulletteFees); - - totalFees.add(ETHER_ADDRESS, total); - dailyFees.add(ETHER_ADDRESS, total.dividedToIntegerBy(totalDays)); + const pumpOrRektFeesFrom = await fromApi.call({ + abi: commonAbi[0], + target: PUMP_OR_REKT_ADDRESS, + }); + const pumpOrRektFeesTo = await toApi.call({ + abi: commonAbi[0], + target: PUMP_OR_REKT_ADDRESS, + }); + + const roulletteFeesFrom = await fromApi.call({ + abi: commonAbi[0], + target: ROULETTE_ADDRESS, + }); + + const roulletteFeesTo = await toApi.call({ + abi: commonAbi[0], + target: ROULETTE_ADDRESS, + }); + + const dailypumpOrRektFees = Number(pumpOrRektFeesTo) - Number(pumpOrRektFeesFrom); + const dailyroulletteFees = Number(roulletteFeesTo) - Number(roulletteFeesFrom); + const tottal = Number(pumpOrRektFeesTo) + Number(roulletteFeesTo); + const dailyTotal = dailypumpOrRektFees + dailyroulletteFees; + totalFees.add(ETHER_ADDRESS, tottal); + dailyFees.add(ETHER_ADDRESS, dailyTotal); return { totalFees, From 03d96274833d23478943a4315e3b52eac99082df Mon Sep 17 00:00:00 2001 From: Leonardo Nagasaki <56836200+Leoakin43@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:38:32 -0300 Subject: [PATCH 135/237] Fixed reserve calculation --- fees/moonwell/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/moonwell/index.ts b/fees/moonwell/index.ts index 1617478590..704614c651 100644 --- a/fees/moonwell/index.ts +++ b/fees/moonwell/index.ts @@ -66,7 +66,7 @@ async function getFees(market: string, { createBalances, api, getLogs, }: FetchO reservesAddedLogs.forEach((log: any) => { const marketIndex = log.marketIndex; const underlying = underlyings[marketIndex] - dailyRevenue!.add(underlying, log.addAmount / 1e18); + dailyRevenue!.add(underlying, log.addAmount); }) return { dailyFees, dailyRevenue } From 98ec5c1b48a9648188d573949560c053fd270a91 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 19 Aug 2024 13:40:24 +0000 Subject: [PATCH 136/237] fix version of api --- dexs/dexalot/index.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dexs/dexalot/index.ts b/dexs/dexalot/index.ts index 9457de19d0..ca9811fb93 100644 --- a/dexs/dexalot/index.ts +++ b/dexs/dexalot/index.ts @@ -6,7 +6,7 @@ const historicalVolumeEndpoint = "https://api.dexalot.com/api/stats/chaindailyvo interface IVolumeall { volumeusd: string; - date: number; + date: string; } const supportedChains = [CHAIN.DEXALOT, CHAIN.AVAX, CHAIN.ARBITRUM, CHAIN.BASE] @@ -29,13 +29,14 @@ const fetchFromChain = (chain: CHAIN) => { return async (options: FetchOptions): Promise => { const dayTimestamp = new Date(options.startOfDay * 1000) + const dateStr = dayTimestamp.toISOString().split('T')[0] const historicalVolume: IVolumeall[] = await httpGet(endpoint) const totalVolume = historicalVolume .filter(volItem => new Date(volItem.date) <= dayTimestamp) .reduce((acc, { volumeusd }) => acc + Number(volumeusd), 0) const dailyVolume = historicalVolume - .find(dayItem => new Date(dayItem.date) === dayTimestamp)?.volumeusd + .find(dayItem => dayItem.date.split('T')[0] === dateStr)?.volumeusd return { totalVolume: `${totalVolume}`, @@ -53,7 +54,7 @@ const getStartTimestamp = (chain: CHAIN) => { } const adapter: SimpleAdapter = { - version: 2, + version: 1, adapter: supportedChains.reduce((acc, chain) => { return { ...acc, From 878116d8a3af0708c574dae49c76b41a65a90d6e Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 19 Aug 2024 13:49:17 +0000 Subject: [PATCH 137/237] fix version --- dexs/dexalot/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dexs/dexalot/index.ts b/dexs/dexalot/index.ts index ca9811fb93..cbf52c0780 100644 --- a/dexs/dexalot/index.ts +++ b/dexs/dexalot/index.ts @@ -1,4 +1,4 @@ -import { BaseAdapter, FetchOptions, FetchResultV2, SimpleAdapter } from "../../adapters/types"; +import { BaseAdapter, FetchOptions, FetchResult, SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { httpGet } from "../../utils/fetchURL"; @@ -27,7 +27,7 @@ const chainToEnv = (chain: CHAIN) => { const fetchFromChain = (chain: CHAIN) => { const endpoint = `${historicalVolumeEndpoint}?env=${chainToEnv(chain)}` - return async (options: FetchOptions): Promise => { + return async (_a:any, _t: any, options: FetchOptions): Promise => { const dayTimestamp = new Date(options.startOfDay * 1000) const dateStr = dayTimestamp.toISOString().split('T')[0] const historicalVolume: IVolumeall[] = await httpGet(endpoint) @@ -39,6 +39,7 @@ const fetchFromChain = (chain: CHAIN) => { .find(dayItem => dayItem.date.split('T')[0] === dateStr)?.volumeusd return { + timestamp: options.startOfDay, totalVolume: `${totalVolume}`, dailyVolume: dailyVolume ? `${dailyVolume}` : undefined, }; From fece622700e7d6cb06a3ae3259a73c11d86823ca Mon Sep 17 00:00:00 2001 From: g1nt0ki <99907941+g1nt0ki@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:53:30 +0200 Subject: [PATCH 138/237] update icpswap --- dexs/icpswap/index.ts | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/dexs/icpswap/index.ts b/dexs/icpswap/index.ts index bb4ff9d86f..962b32e8a0 100644 --- a/dexs/icpswap/index.ts +++ b/dexs/icpswap/index.ts @@ -1,39 +1,11 @@ import { Adapter, FetchResultVolume } from "../../adapters/types" import { CHAIN } from "../../helpers/chains"; -import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; -import { getTimestampAtStartOfDayUTC } from "../../utils/date"; import fetchURL from "../../utils/fetchURL"; -const pairsURL = "https://uvevg-iyaaa-aaaak-ac27q-cai.raw.ic0.app/pairs"; -const volumeURL = (pool_id: string) => `https://uvevg-iyaaa-aaaak-ac27q-cai.raw.ic0.app/totalVolumeUSD?poolId=${pool_id}&limit=1000`; - -interface IPairs { - pool_id: string; - ticker_id: string; - base: string; - target: string; -} - -interface IVolume { - day: string; - totalVolumeUSD: string; - volumeUSDChange: string; - volumeUSD: string; -} -const pairs: IPairs[] = [{"ticker_id": "CHAT_GHOST","base": "CHAT","target": "GHOST","pool_id": "m6cnd-wiaaa-aaaag-qchkq-cai"},{"ticker_id": "TENDY_KINIC","base": "TENDY","target": "KINIC","pool_id": "344ln-paaaa-aaaag-qcdkq-cai"},{"ticker_id": "CHAT_TENDY","base": "CHAT","target": "TENDY","pool_id": "ebw3a-fiaaa-aaaag-qcbda-cai"},{"ticker_id": "DOGMI_ICP","base": "DOGMI","target": "ICP","pool_id": "pkhyt-7iaaa-aaaag-qca7a-cai"},{"ticker_id": "TENDY_BABY AROF token","base": "TENDY","target": "BABY AROF token","pool_id": "3o24u-dqaaa-aaaag-qcdjq-cai"},{"ticker_id": "TENDY_CLOUD","base": "TENDY","target": "CLOUD","pool_id": "2yre7-waaaa-aaaag-qcdmq-cai"},{"ticker_id": "ckBTC_ICP","base": "ckBTC","target": "ICP","pool_id": "xmiu5-jqaaa-aaaag-qbz7q-cai"},{"ticker_id": "CHAT_ICL","base": "CHAT","target": "ICL","pool_id": "yt4cy-4yaaa-aaaag-qce5q-cai"},{"ticker_id": "ICP_NDP","base": "ICP","target": "NDP","pool_id": "yp7ey-cyaaa-aaaag-qblqq-cai"},{"ticker_id": "DMD_ICP","base": "DMD","target": "ICP","pool_id": "3ynik-taaaa-aaaag-qblya-cai"},{"ticker_id": "GHOST_ICP","base": "GHOST","target": "ICP","pool_id": "dwahc-eyaaa-aaaag-qcgnq-cai"},{"ticker_id": "BOX_ICP","base": "BOX","target": "ICP","pool_id": "yg4pe-uqaaa-aaaag-qblra-cai"},{"ticker_id": "KINIC_ICP","base": "KINIC","target": "ICP","pool_id": "335nz-cyaaa-aaaag-qcdka-cai"},{"ticker_id": "GHOST_BABY AROF token","base": "GHOST","target": "BABY AROF token","pool_id": "6vaaf-faaaa-aaaag-qcdwq-cai"},{"ticker_id": "OGY_ICP","base": "OGY","target": "ICP","pool_id": "yu2y5-yaaaa-aaaag-qblsa-cai"},{"ticker_id": "TENDY_ALIEN","base": "TENDY","target": "ALIEN","pool_id": "rghwb-niaaa-aaaag-qccta-cai"},{"ticker_id": "_ICP","base": "","target": "ICP","pool_id": "5ufyj-eiaaa-aaaag-qblpq-cai"},{"ticker_id": "$LAND_ICP","base": "$LAND","target": "ICP","pool_id": "zlslk-3yaaa-aaaag-qblwq-cai"},{"ticker_id": "TENDY_SNS1","base": "TENDY","target": "SNS1","pool_id": "etqmz-jyaaa-aaaag-qcbaa-cai"},{"ticker_id": "🥕_ICP","base": "🥕","target": "ICP","pool_id": "zmtn6-waaaa-aaaag-qblwa-cai"},{"ticker_id": "ICP_","base": "ICP","target": "","pool_id": "f6zug-pqaaa-aaaag-qboiq-cai"},{"ticker_id": "GHOST_SNS1","base": "GHOST","target": "SNS1","pool_id": "p4xq4-gyaaa-aaaag-qchbq-cai"},{"ticker_id": "TENDY_SPICE","base": "TENDY","target": "SPICE","pool_id": "to5je-7iaaa-aaaag-qcc7a-cai"},{"ticker_id": "ICYPEES_SPICE","base": "ICYPEES","target": "SPICE","pool_id": "tj4pq-sqaaa-aaaag-qcc7q-cai"},{"ticker_id": "STAR_ICP","base": "STAR","target": "ICP","pool_id": "y2yvv-dqaaa-aaaag-qblta-cai"},{"ticker_id": "ICP_ALIEN","base": "ICP","target": "ALIEN","pool_id": "r5cke-xqaaa-aaaag-qccrq-cai"},{"ticker_id": "GHOST_WOJAKIC","base": "GHOST","target": "WOJAKIC","pool_id": "62vrv-pyaaa-aaaag-qcigq-cai"},{"ticker_id": "WOJAKIC_ICP","base": "WOJAKIC","target": "ICP","pool_id": "qckzt-uiaaa-aaaag-qccva-cai"},{"ticker_id": "ICYPEES_ICP","base": "ICYPEES","target": "ICP","pool_id": "y5ztb-oiaaa-aaaag-qbltq-cai"},{"ticker_id": "TENDY_OGY","base": "TENDY","target": "OGY","pool_id": "vlws3-6iaaa-aaaag-qccja-cai"},{"ticker_id": "ICL_ICP","base": "ICL","target": "ICP","pool_id": "zqxxp-baaaa-aaaag-qblua-cai"},{"ticker_id": "PLAT_ICP","base": "PLAT","target": "ICP","pool_id": "3rodw-fiaaa-aaaag-qblzq-cai"},{"ticker_id": "SONICX_ICP","base": "SONICX","target": "ICP","pool_id": "6ktdw-kyaaa-aaaag-qcejq-cai"},{"ticker_id": "TENDY_GHOST","base": "TENDY","target": "GHOST","pool_id": "3kmdc-wqaaa-aaaag-qceua-cai"},{"ticker_id": "CHAT_ckBTC","base": "CHAT","target": "ckBTC","pool_id": "nm7k6-wyaaa-aaaag-qcasa-cai"},{"ticker_id": "XCANIC_SNS1","base": "XCANIC","target": "SNS1","pool_id": "ntmjn-zaaaa-aaaag-qchna-cai"},{"ticker_id": "SPICE_SNS1","base": "SPICE","target": "SNS1","pool_id": "howsv-wqaaa-aaaag-qcgua-cai"},{"ticker_id": "HOT_ICP","base": "HOT","target": "ICP","pool_id": "rxwy2-zaaaa-aaaag-qcfna-cai"},{"ticker_id": "BABY AROF token_ICP","base": "BABY AROF token","target": "ICP","pool_id": "s7qlk-oaaaa-aaaag-qbnvq-cai"},{"ticker_id": "EMC_ICP","base": "EMC","target": "ICP","pool_id": "fx5dl-qyaaa-aaaag-qcbga-cai"},{"ticker_id": "WHALE_ICP","base": "WHALE","target": "ICP","pool_id": "zzu4t-xiaaa-aaaag-qblvq-cai"},{"ticker_id": "GHOST_GHOST","base": "GHOST","target": "GHOST","pool_id": "ddhwp-fqaaa-aaaag-qcgoa-cai"},{"ticker_id": "ICP_SPICE","base": "ICP","target": "SPICE","pool_id": "x7ixp-3iaaa-aaaag-qccha-cai"},{"ticker_id": "DOGMI_DOGMI","base": "DOGMI","target": "DOGMI","pool_id": "pdetp-jaaaa-aaaag-qca6q-cai"},{"ticker_id": "CHAT_ICP","base": "CHAT","target": "ICP","pool_id": "ne2vj-6yaaa-aaaag-qb3ia-cai"},{"ticker_id": "TENDY_ICYPEES","base": "TENDY","target": "ICYPEES","pool_id": "png6h-sqaaa-aaaag-qca7q-cai"},{"ticker_id": "GHOST_ICP","base": "GHOST","target": "ICP","pool_id": "yi6cm-paaaa-aaaag-qblqa-cai"},{"ticker_id": "AVOCADO_ICP","base": "AVOCADO","target": "ICP","pool_id": "zfqgc-aiaaa-aaaag-qblxq-cai"},{"ticker_id": "GHOST_TENDY","base": "GHOST","target": "TENDY","pool_id": "on5od-6qaaa-aaaag-qchea-cai"},{"ticker_id": "TENDY_ckBTC","base": "TENDY","target": "ckBTC","pool_id": "dswyu-ryaaa-aaaag-qcbqa-cai"},{"ticker_id": "GHOST_EMC","base": "GHOST","target": "EMC","pool_id": "psv5u-5iaaa-aaaag-qchaq-cai"},{"ticker_id": "DOGMI_ICP","base": "DOGMI","target": "ICP","pool_id": "yt36j-vyaaa-aaaag-qblsq-cai"},{"ticker_id": "01_ICP","base": "01","target": "ICP","pool_id": "37mo6-6yaaa-aaaag-qblyq-cai"},{"ticker_id": "CHAT_GHOST","base": "CHAT","target": "GHOST","pool_id": "nl6mk-3aaaa-aaaag-qcasq-cai"},{"ticker_id": "TENDY_","base": "TENDY","target": "","pool_id": "w7thl-xiaaa-aaaag-qcf4q-cai"},{"ticker_id": "ICD_ICP","base": "ICD","target": "ICP","pool_id": "zxwr3-myaaa-aaaag-qbluq-cai"},{"ticker_id": "XCANIC_ICP","base": "XCANIC","target": "ICP","pool_id": "z6v2h-2qaaa-aaaag-qblva-cai"},{"ticker_id": "TENDY_EMC","base": "TENDY","target": "EMC","pool_id": "q2y4u-wiaaa-aaaag-qcfkq-cai"},{"ticker_id": "ICP_SNS1","base": "ICP","target": "SNS1","pool_id": "3ejs3-eaaaa-aaaag-qbl2a-cai"},{"ticker_id": "WOJAKIC_GHOST","base": "WOJAKIC","target": "GHOST","pool_id": "5rdhw-jaaaa-aaaag-qcima-cai"},{"ticker_id": "CLOUD_ICP","base": "CLOUD","target": "ICP","pool_id": "3s6gf-uqaaa-aaaag-qcdlq-cai"},{"ticker_id": "ckBTC_SNS1","base": "ckBTC","target": "SNS1","pool_id": "nx2w3-maaaa-aaaag-qcaqq-cai"},{"ticker_id": "ICL_TENDY","base": "ICL","target": "TENDY","pool_id": "eivq4-taaaa-aaaag-qcbcq-cai"},{"ticker_id": "CHAT_","base": "CHAT","target": "","pool_id": "nzy3t-xqaaa-aaaag-qcarq-cai"},{"ticker_id": "TENDY_ICP","base": "TENDY","target": "ICP","pool_id": "ojlrv-lqaaa-aaaag-qcazq-cai"}]; - const fetch = async (timestamp: number): Promise => { - const pools = pairs.map((e: IPairs) => e.pool_id); - const todayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); - const dateId = Math.floor(getTimestampAtStartOfDayUTC(todayTimestamp) / 86400) - const historicalVolume: IVolume[] = (await Promise.all(pools.map((e: string) => fetchURL(volumeURL(e))))).map((e: any) => e).flat(); - const dailyVolume = historicalVolume.filter((e: IVolume) => Number(e.day) === dateId) - .reduce((a: number, b: IVolume) => a + Number(b.volumeUSD), 0) - const totalVolume = historicalVolume.filter((e: IVolume) => Number(e.day) <= dateId) - .reduce((a: number, b: IVolume) => a + Number(b.totalVolumeUSD), 0) + const { volumeUSD } = await fetchURL('https://uvevg-iyaaa-aaaak-ac27q-cai.raw.ic0.app/overview') return { - dailyVolume: `${dailyVolume}`, - totalVolume: `${totalVolume}`, + dailyVolume: volumeUSD, timestamp } } From 16c8aaee9882bebb5951dae3cd8df28082cf0ede Mon Sep 17 00:00:00 2001 From: waynebruce0x Date: Mon, 19 Aug 2024 14:55:59 +0100 Subject: [PATCH 139/237] change directory --- dexs/pendle/index.ts | 117 ++++++++++++++++++++++++++++++++ fees/pendle.ts | 155 ++++++++++++++----------------------------- 2 files changed, 165 insertions(+), 107 deletions(-) create mode 100644 dexs/pendle/index.ts diff --git a/dexs/pendle/index.ts b/dexs/pendle/index.ts new file mode 100644 index 0000000000..7a996d5d56 --- /dev/null +++ b/dexs/pendle/index.ts @@ -0,0 +1,117 @@ +import { + FetchGetLogsOptions, + FetchOptions, + FetchResultV2, + SimpleAdapter, +} from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { Chain } from "@defillama/sdk/build/general"; +import fetchURL from "../../utils/fetchURL"; +import { Balances } from "@defillama/sdk"; + +type MarketData = { + address: string; + sy: { + address: string; + }; + yt: { + address: string; + }; +}; + +const abi: { [event: string]: string } = { + orderFilledV2: + "event OrderFilledV2(bytes32 indexed orderHash, uint8 indexed orderType, address indexed YT, address token, uint256 netInputFromMaker, uint256 netOutputToMaker, uint256 feeAmount, uint256 notionalVolume, address maker, address taker)", + marketSwapEvent: + "event Swap(address indexed caller, address indexed receiver, int256 netPtOut, int256 netSyOut, uint256 netSyFee, uint256 netSyToReserve)", +}; + +const chains: { [chain: string]: { id: number; start: number } } = { + [CHAIN.ETHEREUM]: { id: 1, start: 1686268800 }, + [CHAIN.ARBITRUM]: { id: 42161, start: 1686268800 }, + [CHAIN.MANTLE]: { id: 5000, start: 1711506087 }, + [CHAIN.BSC]: { id: 56, start: 1686268800 }, + [CHAIN.OPTIMISM]: { id: 10, start: 1691733600 }, +}; + +async function amm( + apiData: MarketData[], + getLogs: (params: FetchGetLogsOptions) => Promise, + balances: Balances, +): Promise { + const assets: { [address: string]: string } = {}; + apiData.map((market: MarketData) => { + assets[market.address] = market.sy.address; + }); + + const swapEvents: { [address: string]: any[] } = {}; + await Promise.all( + Object.keys(assets).map( + async (target: string) => + await getLogs({ + eventAbi: abi.marketSwapEvent, + target, + }).then((e) => { + swapEvents[target] = e; + }), + ), + ); + + Object.keys(swapEvents).map((market) => { + swapEvents[market].map((swap) => { + balances.add(assets[market], Math.abs(Number(swap.netSyOut))); + }); + }); +} + +async function limitOrder( + apiData: MarketData[], + getLogs: (params: FetchGetLogsOptions) => Promise, + balances: Balances, +): Promise { + const fills = await getLogs({ + target: "0x000000000000c9b3e2c3ec88b1b4c0cd853f4321", + eventAbi: abi.orderFilledV2, + }); + + const ytToSy: { [yt: string]: string } = {}; + apiData.map((market: MarketData) => { + ytToSy[market.yt.address.toLowerCase()] = market.sy.address; + }); + + fills.map((fill) => + balances.add(ytToSy[fill.YT.toLowerCase()], fill.notionalVolume), + ); +} + +const fetch = (chain: Chain) => { + return async (options: FetchOptions): Promise => { + const dailyVolume: Balances = options.createBalances(); + const res = await fetchURL( + `https://api-v2.pendle.finance/core/v1/${chains[chain].id}/markets?limit=100&select=pro&is_active=true`, + ); + + await Promise.all([ + await amm(res.results, options.getLogs, dailyVolume), + await limitOrder(res.results, options.getLogs, dailyVolume), + ]); + + return { + dailyVolume, + }; + }; +}; + +const adapter: SimpleAdapter = { + version: 2, + adapter: {}, +}; + +Object.keys(chains).map((chain) => { + adapter.adapter[chain] = { + fetch: fetch(chain), + start: chains[chain].start, + }; +}); + +export default adapter; diff --git a/fees/pendle.ts b/fees/pendle.ts index 21f93ea039..80510599e6 100644 --- a/fees/pendle.ts +++ b/fees/pendle.ts @@ -1,7 +1,7 @@ import { - FetchGetLogsOptions, + ChainBlocks, FetchOptions, - FetchResultV2, + FetchResultFees, SimpleAdapter, } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; @@ -9,14 +9,12 @@ import { Chain } from "@defillama/sdk/build/general"; import { addTokensReceived } from "../helpers/token"; import BigNumber from "bignumber.js"; import { getConfig } from "../helpers/cache"; -import { Balances, ChainApi } from "@defillama/sdk"; +import { ChainApi } from "@defillama/sdk"; const ABI = { assetInfo: "function assetInfo() view returns (uint8,address,uint8)", getRewardTokens: "function getRewardTokens() view returns (address[])", exchangeRate: "function exchangeRate() view returns (uint256)", - orderFilledV2: - "event OrderFilledV2(bytes32 indexed orderHash, uint8 indexed orderType, address indexed YT, address token, uint256 netInputFromMaker, uint256 netOutputToMaker, uint256 feeAmount, uint256 notionalVolume, address maker, address taker)", marketSwapEvent: "event Swap(address indexed caller, address indexed receiver, int256 netPtOut, int256 netSyOut, uint256 netSyFee, uint256 netSyToReserve)", }; @@ -27,24 +25,6 @@ type IConfig = { }; }; -type MarketData = { - address: string; - sy: { - address: string; - }; - yt: { - address: string; - }; -}; - -const chains: { [chain: string]: { id: number; start: number } } = { - [CHAIN.ETHEREUM]: { id: 1, start: 1686268800 }, - [CHAIN.ARBITRUM]: { id: 42161, start: 1686268800 }, - [CHAIN.MANTLE]: { id: 5000, start: 1711506087 }, - [CHAIN.BSC]: { id: 56, start: 1686268800 }, - [CHAIN.OPTIMISM]: { id: 10, start: 1691733600 }, -}; - const STETH_ETHEREUM = "ethereum:0xae7ab96520de3a18e5e111b5eaab095312d7fe84"; const EETH_ETHEREUM = "ethereum:0x35fa164735182de50811e8e2e824cfb9b6118ac2"; const WETH_ETHEREUM = "ethereum:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"; @@ -82,65 +62,21 @@ const chainConfig: IConfig = { treasury: "0xe972d450ec5b11b99d97760422e0e054afbc8042", }, [CHAIN.MANTLE]: { - treasury: "0x5c30d3578a4d07a340650a76b9ae5df20d5bdf55", - }, + treasury: "0x5c30d3578a4d07a340650a76b9ae5df20d5bdf55" + } }; -async function amm( - marketToSy: Map, - getLogs: (params: FetchGetLogsOptions) => Promise, - balances: Balances, -): Promise { - const swapEvents: { [address: string]: any[] } = {}; - await Promise.all( - Object.keys(marketToSy).map( - async (target: string) => - await getLogs({ - eventAbi: ABI.marketSwapEvent, - target, - }).then((e) => { - swapEvents[target] = e; - }), - ), - ); - - Object.keys(swapEvents).map((market) => { - swapEvents[market].map((swap) => { - balances.add(marketToSy.get(market)!, Math.abs(Number(swap.netSyOut))); - }); - }); -} - -async function limitOrder( - ytToSy: Map, - getLogs: (params: FetchGetLogsOptions) => Promise, - balances: Balances, -): Promise { - const fills = await getLogs({ - target: "0x000000000000c9b3e2c3ec88b1b4c0cd853f4321", - eventAbi: ABI.orderFilledV2, - }); - - fills.map((fill) => { - const sy = ytToSy.get(fill.YT.toLowerCase()); - if (!sy) return; - balances.add(sy, fill.notionalVolume); - }); -} - const fetch = (chain: Chain) => { - return async (options: FetchOptions): Promise => { - const { markets, sys, marketToSy, ytToSy } = await getWhitelistedAssets( - options.api, - ); - const dailyVolume: Balances = options.createBalances(); - - const volumePromises = [ - await amm(marketToSy, options.getLogs, dailyVolume), - await limitOrder(ytToSy, options.getLogs, dailyVolume), - ]; + return async ( + timestamp: number, + _: ChainBlocks, + options: FetchOptions + ): Promise => { + await getWhitelistedAssets(options.api); const { api, getLogs, createBalances } = options; + const { markets, sys, marketToSy } = await getWhitelistedAssets(api); + const rewardTokens: string[] = ( await api.multiCall({ permitFailure: true, @@ -179,10 +115,10 @@ const fetch = (chain: Chain) => { const netSyToReserve = swapEvent.netSyToReserve; dailySupplySideFees.add( marketToSy.get(market)!, - netSyFee - netSyToReserve, + netSyFee - netSyToReserve ); // excluding revenue fee } - }), + }) ); const dailyRevenue = await addTokensReceived({ @@ -238,7 +174,7 @@ const fetch = (chain: Chain) => { ? { skipChain: true, } - : undefined, + : undefined ); if (rawAmountSupplySide !== undefined) { @@ -249,7 +185,7 @@ const fetch = (chain: Chain) => { ? { skipChain: true, } - : undefined, + : undefined ); } } @@ -257,27 +193,49 @@ const fetch = (chain: Chain) => { const dailyFees = dailyRevenue.clone(); dailyFees.addBalances(dailySupplySideFees); - await Promise.all(volumePromises); - return { - dailyVolume, - dailyFees, - dailyRevenue, + dailyFees: dailyFees, + dailyRevenue: dailyRevenue, dailyHoldersRevenue: dailyRevenue, dailySupplySideRevenue: dailySupplySideFees, + timestamp, }; }; }; +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.ETHEREUM]: { + fetch: fetch(CHAIN.ETHEREUM), + start: 1686268800, + }, + [CHAIN.ARBITRUM]: { + fetch: fetch(CHAIN.ARBITRUM), + start: 1686268800, + }, + [CHAIN.BSC]: { + fetch: fetch(CHAIN.BSC), + start: 1686268800, + }, + [CHAIN.OPTIMISM]: { + fetch: fetch(CHAIN.OPTIMISM), + start: 1691733600, + }, + [CHAIN.MANTLE]: { + fetch: fetch(CHAIN.MANTLE), + start: 1711506087, + }, + }, +}; + async function getWhitelistedAssets(api: ChainApi): Promise<{ markets: string[]; sys: string[]; marketToSy: Map; - ytToSy: Map; }> { const { results } = await getConfig( "pendle/v2/revenue-" + api.chain, - `https://api-v2.pendle.finance/core/v1/${api.chainId!}/markets?order_by=name%3A1&skip=0&limit=100&select=all`, + `https://api-v2.pendle.finance/core/v1/${api.chainId!}/markets?order_by=name%3A1&skip=0&limit=100&select=all` ); const markets = results.map((d: any) => d.lp.address); const sySet: Set = new Set(results.map((d: any) => d.sy.address)); @@ -288,24 +246,7 @@ async function getWhitelistedAssets(api: ChainApi): Promise<{ marketToSy.set(result.lp.address, result.sy.address); } - const ytToSy = new Map(); - results.map((market: MarketData) => { - ytToSy.set(market.yt.address.toLowerCase(), market.sy.address); - }); - - return { markets, sys, marketToSy, ytToSy }; + return { markets, sys, marketToSy }; } -const adapter: SimpleAdapter = { - version: 2, - adapter: {}, -}; - -Object.keys(chains).map((chain) => { - adapter.adapter[chain] = { - fetch: fetch(chain), - start: chains[chain].start, - }; -}); - -export default adapter; +export default adapter; \ No newline at end of file From 8acc00c752cbb354cb0bcb651921624fd8aafea8 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Mon, 19 Aug 2024 14:42:28 +0100 Subject: [PATCH 140/237] upgrade sdk for tron --- helpers/getBlock.ts | 1 - package-lock.json | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/helpers/getBlock.ts b/helpers/getBlock.ts index dee9bc9077..1930191579 100644 --- a/helpers/getBlock.ts +++ b/helpers/getBlock.ts @@ -7,7 +7,6 @@ import { httpGet } from "../utils/fetchURL"; const retry = require("async-retry") const blacklistedChains: string[] = [ - "tron", "juno", "cardano", "litecoin", diff --git a/package-lock.json b/package-lock.json index 03e4be76ab..1cc199ebdf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -804,9 +804,9 @@ } }, "node_modules/@defillama/sdk": { - "version": "5.0.69", - "resolved": "https://registry.npmjs.org/@defillama/sdk/-/sdk-5.0.69.tgz", - "integrity": "sha512-IYdT4P5vG9xt14tM9RuT1+uBUyD8oL6fdTWC3iwOlwATjWKA1kwOhucCXNFE8sc2KKugwTUfQuGp8Q3fHDxAfw==", + "version": "5.0.80", + "resolved": "https://registry.npmjs.org/@defillama/sdk/-/sdk-5.0.80.tgz", + "integrity": "sha512-XG1tm90rWmTnv55Du6cUHvSI3XVCSbVVjAHcDh9f2hOHuoKezx1zTjBrDUirYQ4yCCe2zl2g4QmUgD6JR96ibA==", "dependencies": { "@aws-sdk/client-s3": "^3.400.0", "@elastic/elasticsearch": "^8.13.1", From dabbf72e0d4300d807122814c2f5ad31ad6a9b93 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Mon, 19 Aug 2024 14:55:23 +0100 Subject: [PATCH 141/237] fix sunpump --- fees/sunpump.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/sunpump.ts b/fees/sunpump.ts index ef9f9ff592..7373839c28 100644 --- a/fees/sunpump.ts +++ b/fees/sunpump.ts @@ -8,7 +8,7 @@ const adapter: Adapter = { fetch: (async (options: FetchOptions) => { const dailyFees = options.createBalances(); const logs = await options.getLogs({ - targets: ['0x43d0a427d390301e84e46896ae980d35ecdaa2ae'], + targets: ['TG9nDZMUtC4LBmrWSdNXNi8xrKzXTMMSKT'], eventAbi: "event TRXReceived(address indexed from,uint256 amount)", }) logs.map((tx: any) => { From 841aee9d278f8e3d7ca89580d9f5a9446401a20a Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 19 Aug 2024 14:57:14 +0000 Subject: [PATCH 142/237] fix not use param --- dexs/oraidex-v3/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/oraidex-v3/index.ts b/dexs/oraidex-v3/index.ts index ecf8fbb772..66810c943d 100644 --- a/dexs/oraidex-v3/index.ts +++ b/dexs/oraidex-v3/index.ts @@ -4,7 +4,7 @@ import { CHAIN } from "../../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; const historicalVolumeEndpoint = "https://staging-ammv3-indexer.oraidex.io/"; -const fetch = async (timestamp: number, _t: any, options: FetchOptions) => { +const fetch = async (_timestamp: number, _t: any, options: FetchOptions) => { const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(options.startOfDay * 1000)); const dayIndex = Math.floor(dayTimestamp / 86400); const query = gql` From 4f9cd543e7110150a5eb1d453ebda907ce9128cc Mon Sep 17 00:00:00 2001 From: g1nt0ki <99907941+g1nt0ki@users.noreply.github.com> Date: Mon, 19 Aug 2024 17:31:06 +0200 Subject: [PATCH 143/237] check metric against whitelist --- adapters/types.ts | 13 +++++++++++-- cli/utils.ts | 11 ++++++++--- dexs/icpswap/index.ts | 4 ++++ 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/adapters/types.ts b/adapters/types.ts index d25caf1011..7f33c77211 100644 --- a/adapters/types.ts +++ b/adapters/types.ts @@ -70,9 +70,9 @@ export type IStartTimestamp = () => Promise export type BaseAdapter = { [chain: string]: { start: IStartTimestamp | number - fetch: Fetch|FetchV2; + fetch: Fetch | FetchV2; runAtCurrTime?: boolean; - customBackfill?: Fetch|FetchV2; + customBackfill?: Fetch | FetchV2; meta?: { methodology?: string | IJSON hallmarks?: [number, string][] @@ -177,6 +177,15 @@ export enum AdapterType { export type FetchResult = FetchResultVolume & FetchResultFees & FetchResultAggregators & FetchResultOptions & FetchResultIncentives +export const whitelistedDimensionKeys = new Set([ + 'startTimestamp', 'chain', 'timestamp', + + 'dailyVolume', 'totalVolume', 'dailyShortOpenInterest', 'dailyLongOpenInterest', 'dailyOpenInterest', 'dailyBridgeVolume', 'totalBridgeVolume', + 'totalFees', 'dailyFees', 'dailyUserFees', 'totalRevenue', 'dailyRevenue', 'dailyProtocolRevenue', 'dailyHoldersRevenue', 'dailySupplySideRevenue', 'totalProtocolRevenue', 'totalSupplySideRevenue', 'totalUserFees', 'dailyBribesRevenue', 'dailyTokenTaxes', + 'tokenIncentives', + 'totalPremiumVolume', 'totalNotionalVolume', 'dailyPremiumVolume', 'dailyNotionalVolume', +]) + // End of specific adaptors type export interface IJSON { diff --git a/cli/utils.ts b/cli/utils.ts index 13a90f147d..a6aa457e90 100644 --- a/cli/utils.ts +++ b/cli/utils.ts @@ -1,5 +1,5 @@ import { getLatestBlock } from "@defillama/sdk/build/util"; -import { BaseAdapter, } from "../adapters/types"; +import { BaseAdapter, whitelistedDimensionKeys, } from "../adapters/types"; import { humanizeNumber } from "@defillama/sdk/build/computeTVL/humanizeNumber"; export const ERROR_STRING = '------ ERROR ------' @@ -24,6 +24,11 @@ export async function getLatestBlockRetry(chain: string) { export function printVolumes(volumes: any[], baseAdapter?: BaseAdapter) { const exclude2Print = ['startTimestamp', 'chain'] + let keys = volumes.map((element) => Object.keys(element)).flat() + keys.forEach((key) => { + if (!whitelistedDimensionKeys.has(key)) + throw new Error(`"${key}" is not a supported metric.Supported metrics can be found in adapters/types.ts`) + }) volumes.forEach((element) => { const methodology = baseAdapter?.[element.chain].meta?.methodology if (typeof element.chain === 'string') @@ -35,8 +40,8 @@ export function printVolumes(volumes: any[], baseAdapter?: BaseAdapter) { else if (!methodology) console.log("NO METHODOLOGY SPECIFIED") Object.entries(element).forEach(([attribute, value]) => { if (!exclude2Print.includes(attribute)) { - const valueFormatted = typeof value === 'object' ? JSON.stringify(value, null, 2) : attribute === "timestamp" ? value + ` (${new Date((value as any) * 1e3).toISOString()})` : humanizeNumber(Number(value)) - console.info(`${camelCaseToSpaces(attribute === "timestamp"?"endTimestamp":attribute)}: ${valueFormatted}`) + const valueFormatted = typeof value === 'object' ? JSON.stringify(value, null, 2) : attribute === "timestamp" ? value + ` (${new Date((value as any) * 1e3).toISOString()})` : humanizeNumber(Number(value)) + console.info(`${camelCaseToSpaces(attribute === "timestamp" ? "endTimestamp" : attribute)}: ${valueFormatted}`) if (valueFormatted !== undefined && typeof methodology === 'object' && methodology[attribute.slice(5)]) console.log("└─ Methodology:", methodology?.[attribute.slice(5)]) } diff --git a/dexs/icpswap/index.ts b/dexs/icpswap/index.ts index 962b32e8a0..eeeea0b488 100644 --- a/dexs/icpswap/index.ts +++ b/dexs/icpswap/index.ts @@ -1,9 +1,12 @@ import { Adapter, FetchResultVolume } from "../../adapters/types" import { CHAIN } from "../../helpers/chains"; +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraph/utils"; import fetchURL from "../../utils/fetchURL"; const fetch = async (timestamp: number): Promise => { const { volumeUSD } = await fetchURL('https://uvevg-iyaaa-aaaak-ac27q-cai.raw.ic0.app/overview') + + timestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)); return { dailyVolume: volumeUSD, timestamp @@ -15,6 +18,7 @@ const adapter: Adapter = { adapter: { [CHAIN.ICP]: { fetch: fetch, + runAtCurrTime: true, start: 1689465600, }, } From 65b77079f2ab376a62765dbe28fe6945cd38a218 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 19 Aug 2024 17:28:20 +0000 Subject: [PATCH 144/237] fix unidex --- .../unidex-agg-perp/index.ts | 10 ++++------ dexs/unidex/index.ts | 6 ++---- 2 files changed, 6 insertions(+), 10 deletions(-) rename {dexs/unidex => aggregator-derivatives}/unidex-agg-perp/index.ts (96%) diff --git a/dexs/unidex/unidex-agg-perp/index.ts b/aggregator-derivatives/unidex-agg-perp/index.ts similarity index 96% rename from dexs/unidex/unidex-agg-perp/index.ts rename to aggregator-derivatives/unidex-agg-perp/index.ts index 4ddf61dc20..3962f11ec1 100644 --- a/dexs/unidex/unidex-agg-perp/index.ts +++ b/aggregator-derivatives/unidex-agg-perp/index.ts @@ -1,7 +1,7 @@ import * as sdk from "@defillama/sdk"; -import { SimpleAdapter, FetchResultVolume } from "../../../adapters/types"; -import { CHAIN } from "../../../helpers/chains"; -import { getTimestampAtStartOfDayUTC } from "../../../utils/date"; +import { FetchResultVolume } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { getTimestampAtStartOfDayUTC } from "../../utils/date"; import { Chain } from "@defillama/sdk/build/general"; import request, { gql } from "graphql-request"; @@ -218,6 +218,4 @@ const adapteraggderivative: any = { } }; -export { - adapteraggderivative -} \ No newline at end of file +export default adapteraggderivative; diff --git a/dexs/unidex/index.ts b/dexs/unidex/index.ts index 270ecd6df0..6cc3037c4a 100644 --- a/dexs/unidex/index.ts +++ b/dexs/unidex/index.ts @@ -1,9 +1,8 @@ -import { SimpleAdapter, FetchResultVolume, BreakdownAdapter } from "../../adapters/types"; +import { FetchResultVolume, BreakdownAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getTimestampAtStartOfDayUTC } from "../../utils/date"; import { Chain } from "@defillama/sdk/build/general"; import request, { gql } from "graphql-request"; -import { adapteraggderivative } from './unidex-agg-perp/index'; import { adapter_dexs_agg } from './unidex-dexs-agg/index'; type TChainIDs = { [key in Chain]?: number; }; @@ -105,9 +104,8 @@ const adapter: any = { const adapterbreakdown: BreakdownAdapter = { breakdown: { "unidex": adapter["adapter"], - "unidex-agg-derivative": adapteraggderivative["adapter"], "unidex-dexs-agg": adapter_dexs_agg["adapter"], } }; -export default adapterbreakdown; \ No newline at end of file +export default adapterbreakdown; From 672a469943dc1730f5306142b368cfb5c7f113de Mon Sep 17 00:00:00 2001 From: cdavitt Date: Mon, 19 Aug 2024 19:25:16 -0600 Subject: [PATCH 145/237] feat: bellum exchange fees and revenue --- fees/bellumexchange.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 fees/bellumexchange.ts diff --git a/fees/bellumexchange.ts b/fees/bellumexchange.ts new file mode 100644 index 0000000000..b5f8586327 --- /dev/null +++ b/fees/bellumexchange.ts @@ -0,0 +1,33 @@ +import { Adapter, FetchOptions, } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; + +const FACTORIES = [ + '0x9f383e31aA37b6a4F0F57033558C54c37B5De45F', + '0xE0C0Cb05b6dFe6C7d196493963Bf083E726fc517', + '0xde11a16D6e04551168dfD54e936829B024A236C4', +]; + +const FEE = BigInt(100); + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.AVAX]: { + fetch: (async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const logs = await options.getLogs({ + targets: FACTORIES, + eventAbi: "event BellumSwap(address indexed token, address indexed sender, uint amount0In, uint amount0Out, uint amount1In, uint amount1Out)", + }) + logs.map((tx: any) => { + dailyFees.addGasToken((tx.amount1In + tx.amount1Out) / FEE) + }) + return { dailyFees, dailyRevenue: dailyFees } + }) as any, + start: 1723360238 + }, + }, + +} + +export default adapter; From b141a0251eb858ef343360e2998e9b59948e0b4d Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Tue, 20 Aug 2024 09:10:21 +0200 Subject: [PATCH 146/237] feat: Adapter Splash (fees) --- fees/splash/index.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 fees/splash/index.ts diff --git a/fees/splash/index.ts b/fees/splash/index.ts new file mode 100644 index 0000000000..e596c41007 --- /dev/null +++ b/fees/splash/index.ts @@ -0,0 +1,32 @@ +// https://docs.splash.trade/concepts/dao/dao-business-model#dao-fees-from-pools + +import axios from "axios"; +import { Adapter, FetchResultV2 } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; + +const url: string = "https://api2.splash.trade/platform-api/v1/platform/stats"; + +const fetch = async (): Promise => { + const { + data: { lpFeeUsd, volumeUsd }, + } = await axios.get(url); + + return { + dailyFees: lpFeeUsd, + dailyRevenue: lpFeeUsd / 2, + dailyVolume: volumeUsd, + }; +}; + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.CARDANO]: { + fetch, + start: 1717452000, + }, + }, + timetravel: false, +}; + +export default adapter; From a9a427ef9135a199575d8b98b3b9cdba3589f44e Mon Sep 17 00:00:00 2001 From: ideapacito Date: Tue, 20 Aug 2024 15:34:55 +0700 Subject: [PATCH 147/237] update fee --- fees/fwx/index.ts | 100 +++++++++++++++++++++++++++++++++------------- 1 file changed, 72 insertions(+), 28 deletions(-) diff --git a/fees/fwx/index.ts b/fees/fwx/index.ts index 41499fd5b5..b87a5cb36b 100644 --- a/fees/fwx/index.ts +++ b/fees/fwx/index.ts @@ -6,34 +6,33 @@ import { httpPost } from "../../utils/fetchURL"; interface IEndpoint { dailyFees: string; - realtimeCompanyRevenue: string; + chainId: number; } interface IDailyFeeData { - claimable_token_interest: string; - held_token_interest: string; - fee_profit: string; - fee_auction: string; - daily_revenue: string; - daily_fees: string; -} - -interface ICompanyRevenue { - total_claimable_token_interest: string; - total_held_token_interest: string; - total_fee_profit: string; - total_fee_auction: string; - total_revenue: string; - total_fees: string; + daily_interest_paid: string; + daily_trading_fee: string; + daily_bounty_fee_to_protocol: string; + daily_bounty_fee_to_liquidator: string; + daily_liquidation_fee: string; + total_interest_paid: string; + total_trading_fee: string; + total_bounty_fee_to_protocol: string; + total_bounty_fee_to_liquidator: string; + total_liquidation_fee: string; } const endpoints: Record = { [CHAIN.AVAX]: { - dailyFees: "https://app.fwx.finance/api/43114/v1/dashboard/daily-fees", - realtimeCompanyRevenue: "https://app.fwx.finance/api/43114/v1/realtime/company-revenue", + dailyFees: "https://analytics.fwx.finance/api/fees", + chainId: 43114, }, }; +const CHAIN_ID = { + [CHAIN.AVAX]: 43114, +}; + const fetch = (chain: Chain) => { return async (timestamp: number): Promise => { const dayTimestamp = getUniqStartOfTodayTimestamp( @@ -43,20 +42,65 @@ const fetch = (chain: Chain) => { const formattedDate = date.toISOString().replace(/\.(\d{3})Z$/, ".$1Z"); // * call api for daily fees and revenue - const dailyRes = await httpPost(endpoints[chain].dailyFees, { date: formattedDate }); + const dailyRes = await httpPost(endpoints[chain].dailyFees, { + date: formattedDate, + chain_id: CHAIN_ID[chain], + }); const dailyData = dailyRes as IDailyFeeData; + const dailyInterestPaid = parseFloat(dailyData.daily_interest_paid); + const dailyTradingFee = parseFloat(dailyData.daily_trading_fee); + const dailyBountyFeeToProtocol = parseFloat( + dailyData.daily_bounty_fee_to_protocol + ); + const dailyBountyFeeToLiquidator = parseFloat( + dailyData.daily_bounty_fee_to_liquidator + ); + const dailyLiquidationFee = parseFloat(dailyData.daily_liquidation_fee); + const totalInterestPaid = parseFloat(dailyData.total_interest_paid); + const totalTradingFee = parseFloat(dailyData.total_trading_fee); + const totalBountyFeeToProtocol = parseFloat( + dailyData.total_bounty_fee_to_protocol + ); + const totalBountyFeeToLiquidator = parseFloat( + dailyData.total_bounty_fee_to_liquidator + ); + const totalLiquidationFee = parseFloat(dailyData.total_liquidation_fee); - // * call api for realtime total fees and revenue - const realtimeRes = await httpPost(endpoints[chain].realtimeCompanyRevenue, {}); - const realtimeData = realtimeRes as ICompanyRevenue; + const dailyFees = + dailyInterestPaid + + dailyTradingFee + + dailyLiquidationFee + + dailyBountyFeeToLiquidator + + dailyBountyFeeToProtocol; + const dailySupplySideRevenue = + 0.1 * dailyInterestPaid + + 0.8 * dailyTradingFee + + dailyBountyFeeToProtocol; + const dailyProtocolRevenue = + 0.9 * dailyInterestPaid + 0.2 * dailyTradingFee; + const totalFees = + totalInterestPaid + + totalTradingFee + + totalLiquidationFee + + totalBountyFeeToLiquidator + + totalBountyFeeToProtocol; + const totalSupplySideRevenue = + 0.1 * totalInterestPaid + + 0.8 * totalTradingFee + + totalBountyFeeToProtocol; + const totalProtocolRevenue = + 0.9 * totalInterestPaid + 0.2 * totalTradingFee; return { timestamp, - dailyFees: dailyData.daily_fees, - dailyRevenue: dailyData.daily_revenue, - dailySupplySideRevenue: dailyData.claimable_token_interest, - totalFees: realtimeData.total_fees, - totalRevenue: realtimeData.total_revenue, + dailyFees: dailyFees, + dailyRevenue: dailyProtocolRevenue + dailySupplySideRevenue, + dailyProtocolRevenue: dailyProtocolRevenue, + dailySupplySideRevenue: dailySupplySideRevenue, + totalFees: totalFees, + totalRevenue: totalProtocolRevenue + totalSupplySideRevenue, + totalProtocolRevenue: totalProtocolRevenue, + totalSupplySideRevenue: totalSupplySideRevenue, }; }; }; @@ -68,6 +112,6 @@ const adapter: Adapter = { start: 1701907200, }, }, - version: 1 + version: 1, }; export default adapter; From f909f7cdcb3d1032489ab495d3050e1f52a8e74f Mon Sep 17 00:00:00 2001 From: ideapacito Date: Tue, 20 Aug 2024 15:35:16 +0700 Subject: [PATCH 148/237] fix fwx dexs --- dexs/fwx/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dexs/fwx/index.ts b/dexs/fwx/index.ts index ee6560aede..af77e6bdc1 100644 --- a/dexs/fwx/index.ts +++ b/dexs/fwx/index.ts @@ -26,7 +26,7 @@ const CHAIN_ID = { const endpoints: Record = { [CHAIN.AVAX]: { tradingVolume: `https://app.fwx.finance/api/v2/trade/volume`, - openInterest: `https://analytics.fwx.finance/trade/daily-open-interest`, + openInterest: `https://analytics.fwx.finance/api/trade/daily-open-interest`, }, }; @@ -61,7 +61,6 @@ const fetch = (chain: Chain) => { (x: IDailyData) => new Date(x.date).getTime() == new Date(formattedDate).getTime() ); - console.log(dailyVolumeData?.total, dailyOpenInterestData?.total); return { dailyVolume: convertStringNumber(dailyVolumeData?.total || "0"), From 690c907d942e6b4d6906cf30c6f5c428e12875c1 Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Tue, 20 Aug 2024 12:45:31 +0200 Subject: [PATCH 149/237] Feat:Adapter, Ribbon, fees & volume --- fees/ribbon/index.ts | 96 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 fees/ribbon/index.ts diff --git a/fees/ribbon/index.ts b/fees/ribbon/index.ts new file mode 100644 index 0000000000..675c56954b --- /dev/null +++ b/fees/ribbon/index.ts @@ -0,0 +1,96 @@ +import * as sdk from "@defillama/sdk"; +import request, { gql } from "graphql-request"; +import { Adapter, FetchOptions, FetchResultV2 } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; + +interface IVault { + id: string; + totalFeeCollected: number; + totalNominalVolume: number; + underlyingAsset: string; +} + +interface IVaultsResponse { + vaults: IVault[]; +} + +const ethereum_endpointId: string = + "3GhHcRwF6yH7WXGcJJvac9B5MHPuoXhS9uxc49TPqLf6"; +const avax_endpointId: string = "AmJzFkqot9NjxPCRLK8yXopYt3rtS736ZEX2zEFg7Tz2"; + +const query = gql` + query getVaults($block: Int!) { + vaults(block: { number: $block }) { + id + totalFeeCollected + totalNominalVolume + underlyingAsset + } + } +`; + +const fetch = async ( + endpointId: string, + { getStartBlock, getEndBlock, createBalances }: FetchOptions +): Promise => { + const dailyFees = createBalances(); + const totalFees = createBalances(); + const dailyVolume = createBalances(); + const totalVolume = createBalances(); + + const [prevDayBlock, toDayBlock] = await Promise.all([ + getStartBlock(), + getEndBlock(), + ]); + + const endpoint = sdk.graph.modifyEndpoint(endpointId); + + const [{ vaults: fromVaults }, { vaults: toVaults }] = await Promise.all([ + request(endpoint, query, { block: prevDayBlock - 50 }), + request(endpoint, query, { block: toDayBlock - 50 }), + ]); + + toVaults.forEach((toVault) => { + const fromVault = fromVaults.find((vault) => vault.id === toVault.id); + + const token = toVault.underlyingAsset; + const prevFee = fromVault ? fromVault.totalFeeCollected : 0; + const currFee = toVault.totalFeeCollected; + + const prevVolume = fromVault ? fromVault.totalNominalVolume : 0; + const currVolume = toVault.totalNominalVolume; + + if (token) { + totalFees.add(token, currFee); + const dailyFee = currFee - prevFee; + if (dailyFee >= 0) { + dailyFees.add(token, dailyFee); + } + + totalVolume.add(token, currVolume); + const dailyVolumee = currVolume - prevVolume; + if (dailyVolumee >= 0) { + dailyVolume.add(token, dailyVolumee); + } + } + }); + + return { dailyFees, dailyVolume, totalFees, totalVolume }; +}; + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.ETHEREUM]: { + fetch: (options: FetchOptions) => fetch(ethereum_endpointId, options), + start: 1617228000, + }, + [CHAIN.AVAX]: { + fetch: (options: FetchOptions) => fetch(avax_endpointId, options), + start: 1617228000, + runAtCurrTime: false, + }, + }, +}; + +export default adapter; From 099be5c40ea31f0962e5a5461c6496e6756dbf98 Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Tue, 20 Aug 2024 12:50:45 +0200 Subject: [PATCH 150/237] small fix --- fees/ribbon/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/fees/ribbon/index.ts b/fees/ribbon/index.ts index 675c56954b..1fffc12f14 100644 --- a/fees/ribbon/index.ts +++ b/fees/ribbon/index.ts @@ -88,7 +88,6 @@ const adapter: Adapter = { [CHAIN.AVAX]: { fetch: (options: FetchOptions) => fetch(avax_endpointId, options), start: 1617228000, - runAtCurrTime: false, }, }, }; From 39b6a79046bf25036082357b0d77db34deb71663 Mon Sep 17 00:00:00 2001 From: ideapacito Date: Tue, 20 Aug 2024 20:19:14 +0700 Subject: [PATCH 151/237] implement fwx-dex fees --- fees/fwx-dex/index.ts | 76 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 fees/fwx-dex/index.ts diff --git a/fees/fwx-dex/index.ts b/fees/fwx-dex/index.ts new file mode 100644 index 0000000000..33b1456d36 --- /dev/null +++ b/fees/fwx-dex/index.ts @@ -0,0 +1,76 @@ +import * as sdk from "@defillama/sdk"; +import { CHAIN } from "../../helpers/chains"; +import { univ2DimensionAdapter } from "../../helpers/getUniSubgraph"; +import { SimpleAdapter } from "../../adapters/types"; + +const chainConfigs = { + [CHAIN.AVAX]: { + graphUrl: + "https://subgraphs.fwx.finance/avac/subgraphs/name/fwx-exchange-avac", + feesPercent: { + UserFees: 0.1, + Fees: 0.1, + SupplySideRevenue: 0.075, + ProtocolRevenue: 0.025, + Revenue: 0.025, + }, + methodology: { + UserFees: "User pays 0.1% fees on each swap", + Fees: "A 0.1% of each swap is collected as trading fees", + SupplySideRevenue: + "A 0.075% from each swap is distributed to liquidity providers", + ProtocolRevenue: "A 0.025% fees goes to FWX treasury", + Revenue: "Governance revenue is 0.025% trading fees", + }, + start: 1717632000, + }, + [CHAIN.BASE]: { + graphUrl: + "https://subgraphs.fwx.finance/base/subgraphs/name/fwx-exchange-base", + feesPercent: { + UserFees: 0.1, + Fees: 0.1, + SupplySideRevenue: 0.075, + ProtocolRevenue: 0.025, + Revenue: 0.025, + }, + methodology: { + UserFees: "User pays 0.25% fees on each swap", + Fees: "A 0.25% of each swap is collected as trading fees", + SupplySideRevenue: + "A 0.20833% from each swap is distributed to liquidity providers", + ProtocolRevenue: "A 0.04167% fees goes to FWX treasury", + Revenue: "Governance revenue is 0.04167% trading fees", + }, + start: 1722988800, + }, +}; + +const adapters: SimpleAdapter = { + adapter: {}, + version: 2, +}; + +Object.entries(chainConfigs).reduce((acc, [chain, value]) => { + adapters.adapter[chain] = { + ...univ2DimensionAdapter( + { + graphUrls: { + [chain]: sdk.graph.modifyEndpoint(value.graphUrl), + }, + dailyVolume: { + factory: "pancakeDayData", + }, + totalVolume: { + factory: "pancakeFactories", + }, + feesPercent: { ...value.feesPercent, type: "volume" }, + }, + { methodology: value.methodology } + ).adapter[chain], + start: value.start, + }; + return acc; +}, {} as SimpleAdapter); + +export default adapters; From 1af7bfdf3ec97037f1a97cee6b8a888d1d5ad4ea Mon Sep 17 00:00:00 2001 From: pho-phoenix Date: Tue, 20 Aug 2024 15:55:29 +0200 Subject: [PATCH 152/237] Add Jellyverse adapter for SEI chain - Create new directory for Jellyverse - Implement index.ts with adapter for tracking daily volume and fees - Configure endpoint for SEI chain subgraph - Implement volume and fees calculation based on poolSnapshots - Set up adapter with v2 breakdown for SEI chain --- dexs/jellyverse/index.ts | 86 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 dexs/jellyverse/index.ts diff --git a/dexs/jellyverse/index.ts b/dexs/jellyverse/index.ts new file mode 100644 index 0000000000..8a46d3c29c --- /dev/null +++ b/dexs/jellyverse/index.ts @@ -0,0 +1,86 @@ +import * as sdk from "@defillama/sdk"; +import { Chain } from "@defillama/sdk/build/general"; +import request, { gql } from "graphql-request"; +import { BaseAdapter, BreakdownAdapter, ChainEndpoints, FetchResultV2 } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { getStartTimestamp } from "../../helpers/getStartTimestamp"; +import { getTimestampAtStartOfDayUTC } from "../../utils/date"; + +const endpoints: ChainEndpoints = { + [CHAIN.SEI]: "https://graph.mainnet.jellyverse.org/subgraphs/name/jelly/verse" +}; + +interface IPool { + id: string; + swapVolume: string; + swapFees: string; +} + +interface IPoolSnapshot { + today: IPool[]; + yesterday: IPool[]; +} + +const v2Graphs = (chain: Chain) => { + return async ({ endTimestamp }): Promise => { + const startTimestamp = getTimestampAtStartOfDayUTC(endTimestamp) + const fromTimestamp = startTimestamp - 60 * 60 * 24 + const toTimestamp = startTimestamp + + const graphQuery = gql` + query volumes { + today: poolSnapshots(where: {timestamp: ${toTimestamp}}, orderBy: swapVolume, orderDirection: desc) { + id + swapVolume + swapFees + } + yesterday: poolSnapshots(where: {timestamp: ${fromTimestamp}}, orderBy: swapVolume, orderDirection: desc) { + id + swapVolume + swapFees + } + } + `; + + const graphRes: IPoolSnapshot = await request(endpoints[chain], graphQuery); + + const { dailyVolume, dailyFees } = graphRes.today.reduce((acc, p: IPool) => { + const yesterdayPool = graphRes.yesterday.find((e: IPool) => e.id.split('-')[0] === p.id.split('-')[0]); + const yesterdayVolume = Number(yesterdayPool?.swapVolume || '0'); + const yesterdayFees = Number(yesterdayPool?.swapFees || '0'); + + const volumeDiff = Number(p.swapVolume) - yesterdayVolume; + const feesDiff = Number(p.swapFees) - yesterdayFees; + + acc.dailyVolume += volumeDiff; + acc.dailyFees += feesDiff; + + return acc; + }, { dailyVolume: 0, dailyFees: 0 }); + + return { + dailyVolume: dailyVolume.toString(), + dailyFees: dailyFees.toString(), + }; + }; +}; + +const adapter: BreakdownAdapter = { + version: 2, + breakdown: { + v2: { + [CHAIN.SEI]: { + fetch: v2Graphs(CHAIN.SEI), + start: getStartTimestamp({ + endpoints, + chain: CHAIN.SEI, + dailyDataField: `balancerSnapshots`, + dateField: 'timestamp', + volumeField: 'totalSwapVolume' + }), + } + } + } +}; + +export default adapter; From 96877ddc09451b9d49478390877a20304f41a8a3 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 20 Aug 2024 14:42:53 +0000 Subject: [PATCH 153/237] fix nagative value --- adapters/types.ts | 4 ++-- dexs/swaap/index.ts | 23 ++++++++++++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/adapters/types.ts b/adapters/types.ts index 7f33c77211..e0bffa5578 100644 --- a/adapters/types.ts +++ b/adapters/types.ts @@ -178,8 +178,8 @@ export enum AdapterType { export type FetchResult = FetchResultVolume & FetchResultFees & FetchResultAggregators & FetchResultOptions & FetchResultIncentives export const whitelistedDimensionKeys = new Set([ - 'startTimestamp', 'chain', 'timestamp', - + 'startTimestamp', 'chain', 'timestamp','block', + 'dailyVolume', 'totalVolume', 'dailyShortOpenInterest', 'dailyLongOpenInterest', 'dailyOpenInterest', 'dailyBridgeVolume', 'totalBridgeVolume', 'totalFees', 'dailyFees', 'dailyUserFees', 'totalRevenue', 'dailyRevenue', 'dailyProtocolRevenue', 'dailyHoldersRevenue', 'dailySupplySideRevenue', 'totalProtocolRevenue', 'totalSupplySideRevenue', 'totalUserFees', 'dailyBribesRevenue', 'dailyTokenTaxes', 'tokenIncentives', diff --git a/dexs/swaap/index.ts b/dexs/swaap/index.ts index 87f2e7cc6f..c22b7915ad 100644 --- a/dexs/swaap/index.ts +++ b/dexs/swaap/index.ts @@ -1,5 +1,5 @@ import * as sdk from "@defillama/sdk"; -import { BreakdownAdapter, FetchOptions, FetchResultV2 } from "../../adapters/types"; +import { BreakdownAdapter, FetchOptions, FetchResult } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { gql, GraphQLClient } from "graphql-request"; import { getChainVolume } from "../../helpers/getUniSubgraphVolume"; @@ -70,8 +70,8 @@ interface Data { const getVolume = async (options: FetchOptions) => { - const endtimestamp = options.startOfDay - const starttimestamp = endtimestamp - 86400 + const starttimestamp = options.startOfDay; + const endtimestamp = starttimestamp + 86400 const startId = config[options.chain].id + '-' + starttimestamp const endId = config[options.chain].id + '-' + endtimestamp @@ -93,14 +93,16 @@ const getVolume = async (options: FetchOptions) => { const dailyVolume = Number(result.end?.totalSwapVolume || 0) - Number(result.start?.totalSwapVolume || 0) const totalVolume = Number(result.end?.totalSwapVolume || 0) return { - dailyVolume, + // If the daily volume is negative, set it to 0 + dailyVolume: dailyVolume < 0 ? 0 : dailyVolume, totalVolume, } } -const v2graphs = async (options: FetchOptions): Promise => { +const v2graphs = async (_t: any, _tt: any ,options: FetchOptions): Promise => { const { dailyVolume, totalVolume } = await getVolume(options) return { + timestamp: options.startOfDay, dailyVolume, totalVolume } @@ -122,11 +124,18 @@ const v1graphs = getChainVolume({ }); const adapter: BreakdownAdapter = { - version: 2, + version: 1, breakdown: { v1: { [CHAIN.POLYGON]: { - fetch: v1graphs(CHAIN.POLYGON), + fetch: async (_t: any, _tt: any ,options: FetchOptions) => { + const { dailyVolume, totalVolume } = await getVolume(options) + return { + timestamp: options.startOfDay, + dailyVolume, + totalVolume + } + }, start: 1655195452 }, }, From f44aaef4bc9ed74f16193303bd99bfde0fbbd804 Mon Sep 17 00:00:00 2001 From: waynebruce0x Date: Tue, 20 Aug 2024 15:57:30 +0100 Subject: [PATCH 154/237] 3xcalibur --- dexs/3xcalibur/index.ts | 8 ++--- helpers/getUniSubgraphVolume.ts | 58 +++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 6 deletions(-) diff --git a/dexs/3xcalibur/index.ts b/dexs/3xcalibur/index.ts index 265468e4eb..865104b7ae 100644 --- a/dexs/3xcalibur/index.ts +++ b/dexs/3xcalibur/index.ts @@ -1,23 +1,19 @@ import * as sdk from "@defillama/sdk"; import { SimpleAdapter } from "../../adapters/types"; import { getStartTimestamp } from "../../helpers/getStartTimestamp"; -import { DEFAULT_DAILY_VOLUME_FIELD, DEFAULT_TOTAL_VOLUME_FIELD, getChainVolume } from "../../helpers/getUniSubgraphVolume"; +import { DEFAULT_DAILY_VOLUME_FIELD, DEFAULT_TOTAL_VOLUME_FIELD, getChainVolume2 } from "../../helpers/getUniSubgraphVolume"; import { CHAIN } from "../../helpers/chains"; const endpoints = { [CHAIN.ARBITRUM]: sdk.graph.modifyEndpoint('J9xPBr2XdBxWvLi2HSiz8hW76HUU91WQ9ztkicCRccDS'), }; -const graphs = getChainVolume({ +const graphs = getChainVolume2({ graphUrls: endpoints, totalVolume: { factory: "swapFactories", field: DEFAULT_TOTAL_VOLUME_FIELD, }, - dailyVolume: { - factory: "uniswapDayData", - field: DEFAULT_DAILY_VOLUME_FIELD, - }, }); const adapter: SimpleAdapter = { diff --git a/helpers/getUniSubgraphVolume.ts b/helpers/getUniSubgraphVolume.ts index c1397e57b8..f3a10737f6 100644 --- a/helpers/getUniSubgraphVolume.ts +++ b/helpers/getUniSubgraphVolume.ts @@ -149,7 +149,64 @@ function getChainVolume({ }; }; } +function getChainVolume2({ + graphUrls, + totalVolume = { + factory: DEFAULT_TOTAL_VOLUME_FACTORY, + field: DEFAULT_TOTAL_VOLUME_FIELD, + }, + hasTotalVolume = true, + getCustomBlock = undefined, +}: IGetChainVolumeParams) { + const totalVolumeQuery = gql` + ${totalVolume.factory}( + block: { number: $block } + ) { + ${totalVolume.field} + } + `; + const graphQueryTotalVolume = gql`${hasTotalVolume ? `query get_total_volume($block: Int) { ${totalVolumeQuery} }` : ""}` + + return (chain: Chain) => { + return async (options: FetchOptions) => { + const { endTimestamp, startTimestamp, getEndBlock, getStartBlock } = options; + + const endBlock = (await (getCustomBlock ? getCustomBlock(endTimestamp) : getEndBlock()).catch((e: any) => + console.log(wrapGraphError(e).message), + )) ?? undefined; + const startBlock = (await (getCustomBlock ? getCustomBlock(startTimestamp) :getStartBlock()).catch((e: any) => + console.log(wrapGraphError(e).message), + )) ?? undefined; + + const graphResTotal = hasTotalVolume ? await request(graphUrls[chain], graphQueryTotalVolume, { block: endBlock }).catch(e => { + try { + return JSON.parse(e.response.error).data + } catch (error) { + console.error(`Failed to get total volume on ${chain} ${graphUrls[chain]}: ${wrapGraphError(e).message}`) + } + }) : undefined; + const total = graphResTotal ? graphResTotal[totalVolume.factory]?.reduce((total: number, factory: any) => total + Number(factory[totalVolume.field]), 0) : undefined; + + const graphResPrevTotal = hasTotalVolume ? await request(graphUrls[chain], graphQueryTotalVolume, { block: startBlock }).catch(e => { + try { + return JSON.parse(e.response.error).data + } catch (error) { + console.error(`Failed to get total volume on ${chain} ${graphUrls[chain]}: ${wrapGraphError(e).message}`) + } + }) : undefined; + const prevTotal = graphResPrevTotal ? graphResPrevTotal[totalVolume.factory]?.reduce((total: number, factory: any) => total + Number(factory[totalVolume.field]), 0) : undefined; + + let dailyVolumeValue = total - prevTotal + + return { + block: endBlock, + totalVolume: total, + dailyVolume: dailyVolumeValue, + }; + }; + }; +} function getChainVolumeWithGasToken({ graphUrls, totalVolume = { @@ -240,6 +297,7 @@ function univ2Adapter(endpoints: { export { getUniqStartOfTodayTimestamp, getChainVolume, + getChainVolume2, getChainVolumeWithGasToken, univ2Adapter, DEFAULT_TOTAL_VOLUME_FACTORY, From 6ceb818514e016256e53c5bb736b2ea50a836fbf Mon Sep 17 00:00:00 2001 From: waynebruce0x Date: Tue, 20 Aug 2024 16:14:50 +0100 Subject: [PATCH 155/237] arbitrum ex --- dexs/ArbitrumExchange/index.ts | 13 ++--- helpers/getUniSubgraph/index.ts | 84 ++------------------------------- 2 files changed, 8 insertions(+), 89 deletions(-) diff --git a/dexs/ArbitrumExchange/index.ts b/dexs/ArbitrumExchange/index.ts index 53c1042e64..e70b32c602 100644 --- a/dexs/ArbitrumExchange/index.ts +++ b/dexs/ArbitrumExchange/index.ts @@ -5,8 +5,7 @@ import { CHAIN } from "../../helpers/chains"; import { getStartTimestamp } from "../../helpers/getStartTimestamp"; import { - getGraphDimensions, - DEFAULT_DAILY_VOLUME_FACTORY, + getGraphDimensions2, DEFAULT_TOTAL_VOLUME_FIELD, } from "../../helpers/getUniSubgraph" @@ -18,9 +17,7 @@ const v3Endpoints = { [CHAIN.ARBITRUM]: sdk.graph.modifyEndpoint('AQPMJVpukYUo96WvuKqn7aPZn3m8BHckYs82ZLSMKyeu'), }; -const VOLUME_USD = "volumeUSD"; - -const v2Graph = getGraphDimensions({ +const v2Graph = getGraphDimensions2({ graphUrls: v2Endpoints, feesPercent: { type: "volume", @@ -33,16 +30,12 @@ const v2Graph = getGraphDimensions({ } }); -const v3Graphs = getGraphDimensions({ +const v3Graphs = getGraphDimensions2({ graphUrls: v3Endpoints, totalVolume: { factory: "factories", field: DEFAULT_TOTAL_VOLUME_FIELD, }, - dailyVolume: { - factory: DEFAULT_DAILY_VOLUME_FACTORY, - field: VOLUME_USD, - }, feesPercent: { type: "fees", ProtocolRevenue: 0, diff --git a/helpers/getUniSubgraph/index.ts b/helpers/getUniSubgraph/index.ts index 2b69bbf772..200487d8b0 100644 --- a/helpers/getUniSubgraph/index.ts +++ b/helpers/getUniSubgraph/index.ts @@ -293,35 +293,13 @@ function getGraphDimensions2({ field: DEFAULT_TOTAL_VOLUME_FIELD, blockGraphType: DEFAULT_BLOCK_TYPE }, - dailyVolume = { - factory: DEFAULT_TOTAL_VOLUME_FACTORY, - field: DEFAULT_TOTAL_VOLUME_FIELD, - dateField: DEFAULT_DAILY_DATE_FIELD, - pairs: DEFAULT_DAILY_PAIR_FACTORY, - idGraphType: DEFAULT_ID_TYPE - }, totalFees = { factory: DEFAULT_TOTAL_FEES_FACTORY, field: DEFAULT_TOTAL_FEES_FIELD, }, - dailyFees = { - factory: DEFAULT_DAILY_FEES_FACTORY, - field: DEFAULT_DAILY_FEES_FIELD, - }, getCustomBlock, feesPercent, - blacklistTokens = {} }: IGetChainVolumeParams) { - dailyFees; - // DAILY VOLUME - // Graph fields - const graphFieldsDailyVolume = { - factory: dailyVolume.factory ?? DEFAULT_TOTAL_VOLUME_FACTORY, - field: dailyVolume.field ?? DEFAULT_TOTAL_VOLUME_FIELD, - dateField: dailyVolume.dateField ?? DEFAULT_DAILY_DATE_FIELD, // For alternative query - pairs: dailyVolume.pairs ?? DEFAULT_DAILY_PAIR_FACTORY, - idGraphType: dailyVolume.idGraphType ?? DEFAULT_ID_TYPE - } // TOTAL VOLUME // Graph fields const graphFieldsTotalVolume = { @@ -352,24 +330,6 @@ function getGraphDimensions2({ }`; return (chain: Chain) => { - - const dailyVolumePairsQuery = blacklistTokens[chain] ? gql` - query daily_volume_byPair ($timestamp_gt: Int, $timestamp_lte: Int) { - pairDayDatas(where:{${graphFieldsDailyVolume.dateField}_gt: $timestamp_gt, ${graphFieldsDailyVolume.dateField}_lte: $timestamp_lte, ${graphFieldsDailyVolume.field}_not: 0}, orderBy: ${graphFieldsDailyVolume.field}, orderDirection: desc, first: 1000){ - date - token0{ - symbol - id - } - token1{ - symbol - id - } - ${graphFieldsDailyVolume.field} - } - } - ` - : undefined; return async (options: FetchOptions) => { const { endTimestamp, startTimestamp, getEndBlock, getStartBlock } = options; @@ -380,42 +340,7 @@ function getGraphDimensions2({ console.log(wrapGraphError(e).message), )) ?? undefined; - let graphResDailyVolume; let dailyVolume: any; - if (dailyVolumePairsQuery) { - console.info("Calculating volume excluding blacklisted tokens..."); - graphResDailyVolume = await request( - graphUrls[chain], - dailyVolumePairsQuery, - { - timestamp_gt: startTimestamp, - timestamp_lte: endTimestamp, - }, - graphRequestHeaders?.[chain], - ) - .catch(handle200Errors) - .catch((e) => - console.error( - `GraphFetchError: Failed to get daily volume on ${chain} with graph ${ - graphUrls[chain] - }: ${wrapGraphError(e).message}`, - ), - ); - dailyVolume = graphResDailyVolume?.[ - graphFieldsDailyVolume.pairs - ]?.reduce((acc: number | undefined, current: pair) => { - if ( - blacklistTokens[chain].includes(current.token0.id) || - blacklistTokens[chain].includes(current.token1.id) - ) - return acc; - if (current?.[graphFieldsDailyVolume.field]) { - if (acc) return acc += +current?.[graphFieldsDailyVolume.field] - return +current?.[graphFieldsDailyVolume.field] - } - return acc - }, undefined as number | undefined) - } // TOTAL VOLUME const graphResTotalVolume = await request(graphUrls[chain], totalVolumeQuery, { block: endBlock }, graphRequestHeaders?.[chain]).catch(handle200Errors).catch(e => console.error(`GraphFetchError: Failed to get total volume on ${chain} with graph ${graphUrls[chain]}: ${wrapGraphError(e).message}`)); const totalVolume = graphResTotalVolume?.[graphFieldsTotalVolume.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalVolume.field]), 0)?.toString() @@ -430,19 +355,19 @@ function getGraphDimensions2({ if (totalVolume === undefined || feesPercent?.Fees === undefined) console.error(`Unable to get total fees on ${chain} from graph.`) }); - const totalFees = graphResTotalFees?.[graphFieldsTotalFees.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalFees.field]), 0) + const totalFees = graphResTotalFees?.[graphFieldsTotalFees.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalFees.field]), 0) // PREV TOTAL FEES const graphResPrevTotalFees = await request(graphUrls[chain], totalFeesQuery, { block: startBlock }, graphRequestHeaders?.[chain]).catch(_e => { if (totalVolume === undefined || feesPercent?.Fees === undefined) console.error(`Unable to get total fees on ${chain} from graph.`) }); - const prevTotalFees = graphResPrevTotalFees?.[graphFieldsTotalFees.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalFees.field]), 0) + const prevTotalFees = graphResPrevTotalFees?.[graphFieldsTotalFees.factory]?.reduce((total: number, factory: any) => total + Number(factory[graphFieldsTotalFees.field]), 0) - const dailyFees = totalFees - prevTotalFees + const dailyFees = (totalFees == undefined && prevTotalFees == undefined) ? undefined : totalFees - prevTotalFees // ts-node --transpile-only cli/testAdapter.ts protocols uniswap - const response: FetchResultGeneric = { + let response: FetchResultGeneric = { timestamp: endTimestamp, block: endBlock, totalVolume, @@ -506,6 +431,7 @@ function wrapGraphError(e: Error) { export { wrapGraphError, getGraphDimensions, + getGraphDimensions2, univ2DimensionAdapter, DEFAULT_TOTAL_VOLUME_FACTORY, DEFAULT_TOTAL_VOLUME_FIELD, From f56b300bbdfe7347a3ac5c894d93eb1785266a61 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 20 Aug 2024 15:26:58 +0000 Subject: [PATCH 156/237] fix wrong calling --- dexs/swaap/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/swaap/index.ts b/dexs/swaap/index.ts index c22b7915ad..ec51ccd072 100644 --- a/dexs/swaap/index.ts +++ b/dexs/swaap/index.ts @@ -129,7 +129,7 @@ const adapter: BreakdownAdapter = { v1: { [CHAIN.POLYGON]: { fetch: async (_t: any, _tt: any ,options: FetchOptions) => { - const { dailyVolume, totalVolume } = await getVolume(options) + const { dailyVolume, totalVolume } = await v1graphs(options.chain)(options) return { timestamp: options.startOfDay, dailyVolume, From e22c6da40ae6c13b4ae204ba632c659ac1b18003 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 20 Aug 2024 16:35:47 +0000 Subject: [PATCH 157/237] update houdini-swap fees --- fees/houdini-swap.ts | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/fees/houdini-swap.ts b/fees/houdini-swap.ts index 7648272071..d9581075b7 100644 --- a/fees/houdini-swap.ts +++ b/fees/houdini-swap.ts @@ -1,20 +1,11 @@ -import { Chain } from "@defillama/sdk/build/general" +import { Chain } from "@defillama/sdk/build/general"; import { CHAIN } from "../helpers/chains"; import { Adapter, FetchOptions, FetchResultFees } from "../adapters/types"; -import { queryIndexer } from "../helpers/indexer"; +import { addTokensReceived } from "../helpers/token"; const graph = (_chain: Chain): any => { return async (timestamp: number, _: any, options: FetchOptions): Promise => { - const dailyFees = options.createBalances(); - const query = await queryIndexer(` - SELECT value FROM ethereum.transactions - WHERE block_number > 16416220 - and to_address = '\\xc36d36dd4a45f8817a49d3751557fec9871f0e32' - and success = true - and encode(data, 'hex') = '' - AND block_time BETWEEN llama_replace_date_range; - `, options); - query.map((a: any) => dailyFees.addGasToken(a.value)) + const dailyFees = await addTokensReceived({target: '0x45CF73349a4895fabA18c0f51f06D79f0794898D', tokens: ['0x922d8563631b03c2c4cf817f4d18f6883aba0109'], options}) return { dailyFees, dailyRevenue: dailyFees, dailyHoldersRevenue: dailyFees, timestamp } } } From d004f76d79a90bc1f416cc566eee304f404ecb21 Mon Sep 17 00:00:00 2001 From: Leonardo Nagasaki <56836200+Leoakin43@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:33:27 -0300 Subject: [PATCH 158/237] Added seize tokens to daily fees --- fees/moonwell/index.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/fees/moonwell/index.ts b/fees/moonwell/index.ts index 704614c651..838ab5e60a 100644 --- a/fees/moonwell/index.ts +++ b/fees/moonwell/index.ts @@ -7,6 +7,7 @@ const comptrollerABI = { getAllMarkets: "address[]:getAllMarkets", accrueInterest: "event AccrueInterest(uint256 cashPrior,uint256 interestAccumulated,uint256 borrowIndex,uint256 totalBorrows)", reservesAdded: "event ReservesAdded(address benefactor,uint256 addAmount,uint256 newTotalReserves)", + liquidateBorrow: "event LiquidateBorrow (address liquidator, address borrower, uint256 repayAmount, address mTokenCollateral, uint256 seizeTokens)", reserveFactor: "uint256:reserveFactorMantissa", }; @@ -56,6 +57,18 @@ async function getFees(market: string, { createBalances, api, getLogs, }: FetchO })); }).flat() + const liquidateBorrowLogs: any[] = (await getLogs({ + targets: markets, + flatten: false, + eventAbi: comptrollerABI.liquidateBorrow, + })).map((log: any, index: number) => { + return log.map((i: any) => ({ + ...i, + seizeTokens: Number(i.seizeTokens), + marketIndex: index, + })); + }).flat() + logs.forEach((log: any) => { const marketIndex = log.marketIndex; const underlying = underlyings[marketIndex] @@ -69,6 +82,12 @@ async function getFees(market: string, { createBalances, api, getLogs, }: FetchO dailyRevenue!.add(underlying, log.addAmount); }) + liquidateBorrowLogs.forEach((log: any) => { + const marketIndex = log.marketIndex; + const underlying = underlyings[marketIndex] + dailyFees!.add(underlying, log.seizeTokens); + }) + return { dailyFees, dailyRevenue } } From 6f9e242866d593af397cc218a0057e1d4bd85533 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Wed, 21 Aug 2024 00:59:44 +0100 Subject: [PATCH 159/237] add illuvium --- fees/illuvium.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 fees/illuvium.ts diff --git a/fees/illuvium.ts b/fees/illuvium.ts new file mode 100644 index 0000000000..a145f54925 --- /dev/null +++ b/fees/illuvium.ts @@ -0,0 +1,36 @@ +import { Adapter, FetchOptions, } from '../adapters/types'; +import { CHAIN } from '../helpers/chains'; + +const fetchFees = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + let transfers = [] as any[] + let cursor = "" + do{ + const url = `https://api.immutable.com/v1/transfers?receiver=0x2208850ea5569617d5350f8cf681031102c1d931&max_timestamp=${new Date(options.toTimestamp*1e3).toISOString()}&min_timestamp=${new Date(options.fromTimestamp*1e3).toISOString()}&cursor=${cursor}` + const data = await fetch(url).then(r=>r.json()) + transfers = transfers.concat(data.result) + cursor=data.cursor + } while(cursor !== "") + + transfers.forEach(transfer=>{ + if(transfer.token.type === "ETH"){ + dailyFees.addCGToken("ethereum", transfer.token.data.quantity/1e18) + } + }) + return { + dailyFees, + dailyRevenue: dailyFees, + } +} + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.IMX]: { + fetch: fetchFees, + start: 0 + } + } +} + +export default adapter; From 6b8b3e7c6b925e900101d9aacb8683739cdcc174 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Wed, 21 Aug 2024 01:08:16 +0100 Subject: [PATCH 160/237] methodology --- fees/illuvium.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/fees/illuvium.ts b/fees/illuvium.ts index a145f54925..3360e7ad94 100644 --- a/fees/illuvium.ts +++ b/fees/illuvium.ts @@ -28,9 +28,14 @@ const adapter: Adapter = { adapter: { [CHAIN.IMX]: { fetch: fetchFees, - start: 0 - } - } + start: 0, + meta: { + methodology: { + Fees: "ETH paid to purchase fuel", + } + } + }, + }, } export default adapter; From a18cca211407d4802a848960330aebfb4b1d74a4 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Wed, 21 Aug 2024 01:09:31 +0100 Subject: [PATCH 161/237] add raybot --- fees/raybot.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 fees/raybot.ts diff --git a/fees/raybot.ts b/fees/raybot.ts new file mode 100644 index 0000000000..527639d2b8 --- /dev/null +++ b/fees/raybot.ts @@ -0,0 +1,29 @@ +import { FetchOptions, SimpleAdapter } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import { queryDune } from "../helpers/dune"; + +const fetch: any = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const value = (await queryDune("3521814", { + start: options.startTimestamp, + end: options.endTimestamp, + receiver: '4mih95RmBqfHYvEfqq6uGGLp1Fr3gVS3VNSEa3JVRfQK' + })); + dailyFees.add('So11111111111111111111111111111111111111112', value[0].fee_token_amount); + + return { dailyFees, dailyRevenue: dailyFees } + +} + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.SOLANA]: { + fetch: fetch, + start: 0, + }, + }, + isExpensiveAdapter: true +}; + +export default adapter; From 13bb5405ab568b89043a5cf8cadff9844f70b611 Mon Sep 17 00:00:00 2001 From: unyoungwax Date: Wed, 21 Aug 2024 14:36:09 +0800 Subject: [PATCH 162/237] fix createSolBalances --- fees/4cast/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/4cast/index.ts b/fees/4cast/index.ts index 2c4f602cd1..e1e02bc05f 100644 --- a/fees/4cast/index.ts +++ b/fees/4cast/index.ts @@ -11,7 +11,7 @@ const endpoint = "https://www.4cast.win/api/api/platformFees"; function createSolBalances(options: FetchOptions, value: string) { const balances = options.createBalances(); - balances.addGasToken(Number(value)); + balances.add('So11111111111111111111111111111111111111112', Number(value) * 1e9); return balances; } From 8956a845c3fefda340e10c452255dd829709df3d Mon Sep 17 00:00:00 2001 From: ideapacito Date: Wed, 21 Aug 2024 14:38:52 +0700 Subject: [PATCH 163/237] implement fwx-dex dexs --- dexs/fwx-dex/index.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 dexs/fwx-dex/index.ts diff --git a/dexs/fwx-dex/index.ts b/dexs/fwx-dex/index.ts new file mode 100644 index 0000000000..377a991ee5 --- /dev/null +++ b/dexs/fwx-dex/index.ts @@ -0,0 +1,18 @@ +import { CHAIN } from "../../helpers/chains"; +import { univ2Adapter } from "../../helpers/getUniSubgraphVolume"; + +const adapters = univ2Adapter( + { + [CHAIN.AVAX]: + "https://subgraphs.fwx.finance/avac/subgraphs/name/fwx-exchange-avac", + [CHAIN.BASE]: + "https://subgraphs.fwx.finance/base/subgraphs/name/fwx-exchange-base", + }, + { + factoriesName: "pancakeFactories", + dayData: "pancakeDayData", + } +); +adapters.adapter.avax.start = 1717632000; +adapters.adapter.base.start = 1722988800; +export default adapters; From 71261908288553c8b86b7dcdc14957eb81940f2a Mon Sep 17 00:00:00 2001 From: ideapacito Date: Wed, 21 Aug 2024 16:09:24 +0700 Subject: [PATCH 164/237] remove fwx-dex --- dexs/fwx-dex/index.ts | 18 ---------- fees/fwx-dex/index.ts | 76 ------------------------------------------- 2 files changed, 94 deletions(-) delete mode 100644 dexs/fwx-dex/index.ts delete mode 100644 fees/fwx-dex/index.ts diff --git a/dexs/fwx-dex/index.ts b/dexs/fwx-dex/index.ts deleted file mode 100644 index 377a991ee5..0000000000 --- a/dexs/fwx-dex/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { CHAIN } from "../../helpers/chains"; -import { univ2Adapter } from "../../helpers/getUniSubgraphVolume"; - -const adapters = univ2Adapter( - { - [CHAIN.AVAX]: - "https://subgraphs.fwx.finance/avac/subgraphs/name/fwx-exchange-avac", - [CHAIN.BASE]: - "https://subgraphs.fwx.finance/base/subgraphs/name/fwx-exchange-base", - }, - { - factoriesName: "pancakeFactories", - dayData: "pancakeDayData", - } -); -adapters.adapter.avax.start = 1717632000; -adapters.adapter.base.start = 1722988800; -export default adapters; diff --git a/fees/fwx-dex/index.ts b/fees/fwx-dex/index.ts deleted file mode 100644 index 33b1456d36..0000000000 --- a/fees/fwx-dex/index.ts +++ /dev/null @@ -1,76 +0,0 @@ -import * as sdk from "@defillama/sdk"; -import { CHAIN } from "../../helpers/chains"; -import { univ2DimensionAdapter } from "../../helpers/getUniSubgraph"; -import { SimpleAdapter } from "../../adapters/types"; - -const chainConfigs = { - [CHAIN.AVAX]: { - graphUrl: - "https://subgraphs.fwx.finance/avac/subgraphs/name/fwx-exchange-avac", - feesPercent: { - UserFees: 0.1, - Fees: 0.1, - SupplySideRevenue: 0.075, - ProtocolRevenue: 0.025, - Revenue: 0.025, - }, - methodology: { - UserFees: "User pays 0.1% fees on each swap", - Fees: "A 0.1% of each swap is collected as trading fees", - SupplySideRevenue: - "A 0.075% from each swap is distributed to liquidity providers", - ProtocolRevenue: "A 0.025% fees goes to FWX treasury", - Revenue: "Governance revenue is 0.025% trading fees", - }, - start: 1717632000, - }, - [CHAIN.BASE]: { - graphUrl: - "https://subgraphs.fwx.finance/base/subgraphs/name/fwx-exchange-base", - feesPercent: { - UserFees: 0.1, - Fees: 0.1, - SupplySideRevenue: 0.075, - ProtocolRevenue: 0.025, - Revenue: 0.025, - }, - methodology: { - UserFees: "User pays 0.25% fees on each swap", - Fees: "A 0.25% of each swap is collected as trading fees", - SupplySideRevenue: - "A 0.20833% from each swap is distributed to liquidity providers", - ProtocolRevenue: "A 0.04167% fees goes to FWX treasury", - Revenue: "Governance revenue is 0.04167% trading fees", - }, - start: 1722988800, - }, -}; - -const adapters: SimpleAdapter = { - adapter: {}, - version: 2, -}; - -Object.entries(chainConfigs).reduce((acc, [chain, value]) => { - adapters.adapter[chain] = { - ...univ2DimensionAdapter( - { - graphUrls: { - [chain]: sdk.graph.modifyEndpoint(value.graphUrl), - }, - dailyVolume: { - factory: "pancakeDayData", - }, - totalVolume: { - factory: "pancakeFactories", - }, - feesPercent: { ...value.feesPercent, type: "volume" }, - }, - { methodology: value.methodology } - ).adapter[chain], - start: value.start, - }; - return acc; -}, {} as SimpleAdapter); - -export default adapters; From cd53dc49c275ad46e55aa49fbf05fdc3ebe8b8d9 Mon Sep 17 00:00:00 2001 From: axtezy Date: Wed, 21 Aug 2024 11:59:24 +0200 Subject: [PATCH 165/237] Add bitlayer network, rename vars --- aggregators/rubic/index.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/aggregators/rubic/index.ts b/aggregators/rubic/index.ts index 0a1630267a..e313bd6264 100644 --- a/aggregators/rubic/index.ts +++ b/aggregators/rubic/index.ts @@ -38,10 +38,11 @@ const chains: Record = { [CHAIN.MERLIN]: 'merlin', [CHAIN.CORE]: 'core', [CHAIN.TAIKO]: 'taiko', - [CHAIN.ZKLINK]: 'zklink' + [CHAIN.ZKLINK]: 'zklink', + [CHAIN.BITLAYER]: 'bitlayer' }; -interface ApiResponce { +interface ApiResponse { daily_volume_in_usd: string; daily_transaction_count: string; total_volume_in_usd: string; @@ -49,13 +50,13 @@ interface ApiResponce { } const fetch = (chain: string) => async (options: FetchOptions): Promise => { - const responce: ApiResponce = ( + const response: ApiResponse = ( await fetchURL(`https://api.rubic.exchange/api/stats/defilama_onchain?date=${options.startTimestamp}&network=${chain}`) ); return { - dailyVolume: responce?.daily_volume_in_usd || '0', - totalVolume: responce?.total_volume_in_usd || '0', + dailyVolume: response?.daily_volume_in_usd || '0', + totalVolume: response?.total_volume_in_usd || '0', timestamp: options.startTimestamp, }; }; @@ -63,8 +64,7 @@ const fetch = (chain: string) => async (options: FetchOptions): Promise { - const key = chain[0]; - const value = chain[1]; + const [key, value] = chain; return { ...acc, From c2e6bc923d573dddbef8ad643a67b7b88bc06107 Mon Sep 17 00:00:00 2001 From: Bohdan Ilchenko Date: Wed, 21 Aug 2024 14:12:46 +0300 Subject: [PATCH 166/237] feat: add cyberPerp adapter --- dexs/cyberperp/cyberperp.ts | 48 +++++++++++++++++++++++++++++++++++++ dexs/cyberperp/index.ts | 14 +++++++++++ 2 files changed, 62 insertions(+) create mode 100644 dexs/cyberperp/cyberperp.ts create mode 100644 dexs/cyberperp/index.ts diff --git a/dexs/cyberperp/cyberperp.ts b/dexs/cyberperp/cyberperp.ts new file mode 100644 index 0000000000..d700b0c36c --- /dev/null +++ b/dexs/cyberperp/cyberperp.ts @@ -0,0 +1,48 @@ +import { request, gql } from "graphql-request"; +import { FetchOptions } from "../../adapters/types"; +import BigNumber from "bignumber.js"; + +const graphUrl = + "https://iota.graph.cyberperp.io/api/subgraphs/name/cyberLP-pool"; + +const getData = async (timestamp: number) => { + const query = gql` + { + volumeStats(first: 1, where: { period: daily, timestamp: ${timestamp} }) { + id + burn + margin + mint + swap + period + timestamp + } + } + `; + + const response = await request(graphUrl, query); + let dailyVolume = new BigNumber(0); + + if (response.volumeStats) { + const data = response.volumeStats[0]; + dailyVolume = dailyVolume + .plus(new BigNumber(data.mint)) + .plus(new BigNumber(data.swap)) + .plus(new BigNumber(data.burn)) + .plus(new BigNumber(data.margin)) + .dividedBy(new BigNumber(1e30)); + } + const _dailyVolume = dailyVolume.toString(); + return { + dailyVolume: _dailyVolume, + timestamp: timestamp, + }; +}; + +export const fetchVolume = async (options: FetchOptions) => { + const data = await getData(options.startOfDay); + return { + dailyVolume: data.dailyVolume, + timestamp: data.timestamp, + }; +}; diff --git a/dexs/cyberperp/index.ts b/dexs/cyberperp/index.ts new file mode 100644 index 0000000000..55f5aefbb9 --- /dev/null +++ b/dexs/cyberperp/index.ts @@ -0,0 +1,14 @@ +import { SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { fetchVolume } from "./cyberperp"; + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.IOTAEVM]: { + fetch: fetchVolume, + start: 1721692800, + }, + }, +}; +export default adapter; From 8276e2f242f26e667638017ea6a2c11395c4b920 Mon Sep 17 00:00:00 2001 From: Denys Proskura <57964380+MrJeleika@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:06:56 +0300 Subject: [PATCH 167/237] Update api url --- aggregators/injex/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aggregators/injex/index.ts b/aggregators/injex/index.ts index 6f876f988b..24b7a95a54 100644 --- a/aggregators/injex/index.ts +++ b/aggregators/injex/index.ts @@ -1,7 +1,7 @@ import { httpGet } from '../../utils/fetchURL'; const fetchLogs = async (timestamp: any) => { - const res = await httpGet(`https://injex-api-cb4a9db30875.herokuapp.com/api/volume-stats/usd?timestamp=${timestamp.startOfDay}`); + const res = await httpGet(`https://inj-api-78847b1b16a1.herokuapp.com/api/volume-stats/usd?timestamp=${timestamp.startOfDay}`); return { dailyVolume: res.dailyVolume, totalVolume: res.totalVolume, From 59d52b35d9c8d897a65949afe36f6b5c5a7f4ffc Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 21 Aug 2024 14:27:48 +0000 Subject: [PATCH 168/237] mul by 13e --- aggregators/chainspot/index.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/aggregators/chainspot/index.ts b/aggregators/chainspot/index.ts index 4638726942..eff1ca543f 100644 --- a/aggregators/chainspot/index.ts +++ b/aggregators/chainspot/index.ts @@ -73,11 +73,9 @@ const fetch = async (_at: number, _t: any, options: FetchOptions) => { const unixTimestamp = getUniqStartOfTodayTimestamp( new Date(options.startOfDay * 1000) ); - + const url = `https://app.chainspot.io/api/2.0/statistic/daily-volume?chainId=${chainToId[options.chain]}×tamp=${unixTimestamp * 1e3}`; const volume = ( - await httpGet( - `https://app.chainspot.io/api/2.0/statistic/daily-volume?chainId=${chainToId[options.chain]}×tamp=${unixTimestamp}` - ) + await httpGet(url) )?.volume; return { From 2c8d2572ffa71da8820d31deb35ec32723d76ef0 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 21 Aug 2024 16:08:57 +0000 Subject: [PATCH 169/237] fix version --- fees/splash/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fees/splash/index.ts b/fees/splash/index.ts index e596c41007..08ceb40ebd 100644 --- a/fees/splash/index.ts +++ b/fees/splash/index.ts @@ -19,14 +19,14 @@ const fetch = async (): Promise => { }; const adapter: Adapter = { - version: 2, + version: 1, adapter: { [CHAIN.CARDANO]: { fetch, start: 1717452000, + runAtCurrTime: true, }, }, - timetravel: false, }; export default adapter; From 2b4c88e6745cbbb1bec34961d9848b0e2eaee492 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 21 Aug 2024 17:30:26 +0000 Subject: [PATCH 170/237] fix delay dune query --- fees/pumpdotfun.ts | 2 +- helpers/dune.ts | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/fees/pumpdotfun.ts b/fees/pumpdotfun.ts index 54eda8844b..ad94bfbf66 100644 --- a/fees/pumpdotfun.ts +++ b/fees/pumpdotfun.ts @@ -4,7 +4,7 @@ import { queryDune } from "../helpers/dune"; const fetch: any = async (options: FetchOptions) => { const dailyFees = options.createBalances(); - const value = (await queryDune("3993882", { + const value = (await queryDune("4006384", { start: options.startTimestamp, end: options.endTimestamp, })); diff --git a/helpers/dune.ts b/helpers/dune.ts index d3e3876439..11da710219 100644 --- a/helpers/dune.ts +++ b/helpers/dune.ts @@ -27,7 +27,12 @@ const getLatestData = async (queryId: string) => { throw e; } } -const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)) + + +async function randomDelay() { + const delay = Math.floor(Math.random() * 5) + 2 + return new Promise((resolve) => setTimeout(resolve, delay * 1000)) +} const inquiryStatus = async (execution_id: string, queryId:string) => { let _status = undefined; @@ -40,7 +45,7 @@ const inquiryStatus = async (execution_id: string, queryId:string) => { }))).state if (['QUERY_STATE_PENDING', 'QUERY_STATE_EXECUTING'].includes(_status)) { console.info(`waiting for query id ${queryId} to complete...`) - await delay(5000) // 5s + await randomDelay() // 1 - 4s } } catch (e: any) { throw e; From 3494cf46a0df7fb4ec892f6487258ba8100bb5cd Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 21 Aug 2024 17:47:03 +0000 Subject: [PATCH 171/237] fix disable count swap for derivation --- dexs/cyberperp/cyberperp.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/cyberperp/cyberperp.ts b/dexs/cyberperp/cyberperp.ts index d700b0c36c..456ff4db37 100644 --- a/dexs/cyberperp/cyberperp.ts +++ b/dexs/cyberperp/cyberperp.ts @@ -27,7 +27,7 @@ const getData = async (timestamp: number) => { const data = response.volumeStats[0]; dailyVolume = dailyVolume .plus(new BigNumber(data.mint)) - .plus(new BigNumber(data.swap)) + // .plus(new BigNumber(data.swap)) // is not list spot .plus(new BigNumber(data.burn)) .plus(new BigNumber(data.margin)) .dividedBy(new BigNumber(1e30)); From f5ddbe8321c6d52288fa42fb260dec084b97188e Mon Sep 17 00:00:00 2001 From: Leonardo Nagasaki <56836200+Leoakin43@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:51:19 -0300 Subject: [PATCH 172/237] Fix seize tokens --- fees/moonwell/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fees/moonwell/index.ts b/fees/moonwell/index.ts index 838ab5e60a..eab3494d0d 100644 --- a/fees/moonwell/index.ts +++ b/fees/moonwell/index.ts @@ -4,7 +4,9 @@ import * as sdk from "@defillama/sdk"; const comptrollerABI = { underlying: "address:underlying", + exchangeRateCurrent: "uint256:exchangeRateCurrent", getAllMarkets: "address[]:getAllMarkets", + liquidationIncentiveMantissa: "uint256:liquidationIncentiveMantissa", accrueInterest: "event AccrueInterest(uint256 cashPrior,uint256 interestAccumulated,uint256 borrowIndex,uint256 totalBorrows)", reservesAdded: "event ReservesAdded(address benefactor,uint256 addAmount,uint256 newTotalReserves)", liquidateBorrow: "event LiquidateBorrow (address liquidator, address borrower, uint256 repayAmount, address mTokenCollateral, uint256 seizeTokens)", @@ -28,7 +30,9 @@ async function getFees(market: string, { createBalances, api, getLogs, }: FetchO if (!dailyFees) dailyFees = createBalances() if (!dailyRevenue) dailyRevenue = createBalances() const markets = await api.call({ target: market, abi: comptrollerABI.getAllMarkets, }) + const liquidationIncentiveMantissa = await api.call({ target: market, abi: comptrollerABI.liquidationIncentiveMantissa, }) const underlyings = await api.multiCall({ calls: markets, abi: comptrollerABI.underlying, permitFailure: true, }); + const exchangeRatesCurrent = await api.multiCall({ calls: markets, abi: comptrollerABI.exchangeRateCurrent, permitFailure: true, }); underlyings.forEach((underlying, index) => { if (!underlying) underlyings[index] = ADDRESSES.null }) @@ -65,7 +69,7 @@ async function getFees(market: string, { createBalances, api, getLogs, }: FetchO return log.map((i: any) => ({ ...i, seizeTokens: Number(i.seizeTokens), - marketIndex: index, + marketIndex: markets.indexOf(i.mTokenCollateral), })); }).flat() @@ -85,7 +89,7 @@ async function getFees(market: string, { createBalances, api, getLogs, }: FetchO liquidateBorrowLogs.forEach((log: any) => { const marketIndex = log.marketIndex; const underlying = underlyings[marketIndex] - dailyFees!.add(underlying, log.seizeTokens); + dailyFees!.add(underlying, (log.seizeTokens * ((liquidationIncentiveMantissa / 1e18) - 1) * (exchangeRatesCurrent[marketIndex] / 1e18))); }) return { dailyFees, dailyRevenue } From 20efc21d085e6e6954bf1717d8ee79f2d7454e05 Mon Sep 17 00:00:00 2001 From: brianbodollo Date: Thu, 22 Aug 2024 10:07:25 +0800 Subject: [PATCH 173/237] feat: added Stride stBAND and stISLM fees --- fees/stride.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/fees/stride.ts b/fees/stride.ts index 23ddf870e5..8a0c88e180 100644 --- a/fees/stride.ts +++ b/fees/stride.ts @@ -10,13 +10,15 @@ interface DailyFeeResponse { } const chainOverrides: { [key: string]: string } = { - "terra": "terra2", + terra: "terra2", }; const fetch = (chain: string) => { return async (timestamp: number): Promise => { const overriddenChain = chainOverrides[chain] || chain; // Override if exists, else use original - const response: DailyFeeResponse = await httpGet(`https://edge.stride.zone/api/${overriddenChain}/stats/fees`); + const response: DailyFeeResponse = await httpGet( + `https://edge.stride.zone/api/${overriddenChain}/stats/fees` + ); return { timestamp: timestamp, @@ -26,7 +28,6 @@ const fetch = (chain: string) => { }; }; - const meta = { methodology: { Fees: "Fees are staking rewards earned by tokens staked with Stride. They are measured across Stride's LSD tokens' yields and converted to USD terms.", @@ -109,6 +110,18 @@ const adapter: Adapter = { start: 0, meta, }, + haqq: { + fetch: fetch("haqq"), + runAtCurrTime: true, + start: 0, + meta, + }, + band: { + fetch: fetch("band"), + runAtCurrTime: true, + start: 0, + meta, + }, }, }; From 6a455146bdb0adeee8d7f8bddf1877d731ffd419 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Thu, 22 Aug 2024 03:50:54 +0100 Subject: [PATCH 174/237] fix chain --- fees/illuvium.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fees/illuvium.ts b/fees/illuvium.ts index 3360e7ad94..ced47a22c6 100644 --- a/fees/illuvium.ts +++ b/fees/illuvium.ts @@ -3,20 +3,25 @@ import { CHAIN } from '../helpers/chains'; const fetchFees = async (options: FetchOptions) => { const dailyFees = options.createBalances(); + const end = Date.now() + const start = end - 3600*24*1e3 let transfers = [] as any[] let cursor = "" do{ - const url = `https://api.immutable.com/v1/transfers?receiver=0x2208850ea5569617d5350f8cf681031102c1d931&max_timestamp=${new Date(options.toTimestamp*1e3).toISOString()}&min_timestamp=${new Date(options.fromTimestamp*1e3).toISOString()}&cursor=${cursor}` + const url = `https://api.immutable.com/v1/transfers?receiver=0x2208850ea5569617d5350f8cf681031102c1d931&max_timestamp=${new Date(end).toISOString()}&min_timestamp=${new Date(start).toISOString()}&cursor=${cursor}` const data = await fetch(url).then(r=>r.json()) transfers = transfers.concat(data.result) cursor=data.cursor } while(cursor !== "") + const users = new Set() transfers.forEach(transfer=>{ if(transfer.token.type === "ETH"){ + users.add(transfer.user) dailyFees.addCGToken("ethereum", transfer.token.data.quantity/1e18) } }) + console.log(Array.from(users).length) return { dailyFees, dailyRevenue: dailyFees, @@ -26,7 +31,7 @@ const fetchFees = async (options: FetchOptions) => { const adapter: Adapter = { version: 2, adapter: { - [CHAIN.IMX]: { + "immutablex": { fetch: fetchFees, start: 0, meta: { From 526f96c0668de8ed726fd8c66412161a77fc7dc3 Mon Sep 17 00:00:00 2001 From: Ronnachate Gate Date: Thu, 22 Aug 2024 11:07:27 +0700 Subject: [PATCH 175/237] Add velo fee canculation. --- fees/velo/index.ts | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 fees/velo/index.ts diff --git a/fees/velo/index.ts b/fees/velo/index.ts new file mode 100644 index 0000000000..4b9a4e5b19 --- /dev/null +++ b/fees/velo/index.ts @@ -0,0 +1,39 @@ +import ADDRESSES from '../../helpers/coreAssets.json' +import { FetchOptions, SimpleAdapter } from "../../adapters/types"; +import { addTokensReceived } from "../../helpers/token"; + +const config: any = { + bsc: { + targets: ["0x6C22422f4044dfBA79f4EA6BbB9C09162c3BF912"], + tokens: [ + ADDRESSES.bsc.BUSD, + ADDRESSES.bsc.USDT, + ADDRESSES.bsc.WBNB, + "0xf486ad071f3bEE968384D2E39e2D8aF0fCf6fd46", // VELO + "0xBe0D3526fc797583Dada3F30BC390013062A048B" , // PLEARN + "0x80458Df7142Ab707346020A180C44d02271C64Be", // USDV + "0xC2d4A3709e076A7A3487816362994a78ddaeabB6", // EVRY + ] + }, +}; + +const fetch = async (options: FetchOptions) => { + const dailyFees = await addTokensReceived({ + ...config[options.chain], + options, + }); + + return { dailyFees }; +}; + +const adapters: SimpleAdapter = { + adapter: Object.keys(config).reduce( + (all, chain) => ({ + ...all, + [chain]: { fetch, start: 1634010700 }, + }), + {} + ), + version: 2, +}; +export default adapters; \ No newline at end of file From 2e24c7fe39934aaca73e6c091abfbd22f4d10a60 Mon Sep 17 00:00:00 2001 From: ayman Date: Thu, 22 Aug 2024 11:12:53 +0530 Subject: [PATCH 176/237] fix: garden fee url --- fees/garden/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fees/garden/index.ts b/fees/garden/index.ts index 83fc5429f0..d203b762e5 100644 --- a/fees/garden/index.ts +++ b/fees/garden/index.ts @@ -9,25 +9,25 @@ const chainMapper: Record = { [CHAIN.ARBITRUM]: "ethereum_arbitrum", }; -const baseUrl = "http://leaderboard.garden.finance"; +const baseUrl = "https://referral.garden.finance"; const feeUrl = (chain: string, timestamp: number, interval?: string) => `${baseUrl}/fee?chain=${chain}&end=${timestamp}${ interval ? `&interval=${interval}` : "" }`; -type IApiFeeResponse = { +type ApiFeeResponse = { data: { fee: string; }; }; const fetch = (chain: string) => async ({ endTimestamp }: FetchOptions) => { - const dailyFeeResponse: IApiFeeResponse = ( + const dailyFeeResponse: ApiFeeResponse = ( await fetchURL(feeUrl(chainMapper[chain], endTimestamp, "day")) ); - const totalFeeResponse: IApiFeeResponse = ( + const totalFeeResponse: ApiFeeResponse = ( await fetchURL(feeUrl(chainMapper[chain], endTimestamp)) ); From cc3e1dc2bad39127b879d18aa89a24fea6d2d0ac Mon Sep 17 00:00:00 2001 From: TerrenceAddison Date: Thu, 22 Aug 2024 13:00:25 +0700 Subject: [PATCH 177/237] add arrow-markets volume API --- options/arrow-markets/index.ts | 40 + yarn.lock | 2443 ++++++++++++++++++++++++++++++++ 2 files changed, 2483 insertions(+) create mode 100644 options/arrow-markets/index.ts create mode 100644 yarn.lock diff --git a/options/arrow-markets/index.ts b/options/arrow-markets/index.ts new file mode 100644 index 0000000000..37b22d4bd0 --- /dev/null +++ b/options/arrow-markets/index.ts @@ -0,0 +1,40 @@ +import { SimpleAdapter } from "../../adapters/types"; +import fetchURL from "../../utils/fetchURL"; +import { CHAIN } from "../../helpers/chains"; + +interface ArrowMarketsVolumeResponse { + total_notional_volume: string; +} + +// endTime is in ms +export const arrowMarketsVolumeEndpoint = "https://api-rfq-testnet.prd.arrowmarkets.delivery/admin/volume" + +export const v2_adapter: SimpleAdapter = { + adapter: { + [CHAIN.AVAX]: { + fetch: fetchArrowMarketsVolumeData, + start: 1702630075 + }, + }, +}; + +export async function fetchArrowMarketsVolumeData( + /** Timestamp representing the end of the 24 hour period */ + timestamp: number +) { + let timestamp_in_ms = timestamp * 1000 + const ArrowMarketsVolumeData = await getArrowMarketsVolumeData(arrowMarketsVolumeEndpoint); + + const totalNotionalVolume = Number(ArrowMarketsVolumeData.total_notional_volume).toFixed(2); + + return { + timestamp, + totalNotionalVolume, + }; +} + +async function getArrowMarketsVolumeData(endpoint: string): Promise { + return fetchURL(endpoint) +} + +export default v2_adapter; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..f8d7721b94 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2443 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + +"@aws-crypto/crc32@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1" + integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/crc32c@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz#4e34aab7f419307821509a98b9b08e84e0c1917e" + integrity sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/sha1-browser@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz#b0ee2d2821d3861f017e965ef3b4cb38e3b6a0f4" + integrity sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg== + dependencies: + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-crypto/sha256-browser@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e" + integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== + dependencies: + "@aws-crypto/sha256-js" "^5.2.0" + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042" + integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/supports-web-crypto@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb" + integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== + dependencies: + tslib "^2.6.2" + +"@aws-crypto/util@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da" + integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-s3@^3.400.0": + version "3.633.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.633.0.tgz#662535e1217f4276781b6bce6e6bc7cbaf88f327" + integrity sha512-KPwNGlZlCRUADNTvwPJmvDvlh8N/jxjcv5e71M/mWxLXwSPdlHlRjVSBL1/CPSXUr86XRAsPL+BCRkdiytUhbg== + dependencies: + "@aws-crypto/sha1-browser" "5.2.0" + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/client-sso-oidc" "3.632.0" + "@aws-sdk/client-sts" "3.632.0" + "@aws-sdk/core" "3.629.0" + "@aws-sdk/credential-provider-node" "3.632.0" + "@aws-sdk/middleware-bucket-endpoint" "3.620.0" + "@aws-sdk/middleware-expect-continue" "3.620.0" + "@aws-sdk/middleware-flexible-checksums" "3.620.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-location-constraint" "3.609.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-sdk-s3" "3.633.0" + "@aws-sdk/middleware-ssec" "3.609.0" + "@aws-sdk/middleware-user-agent" "3.632.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/signature-v4-multi-region" "3.633.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.632.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@aws-sdk/xml-builder" "3.609.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.3.2" + "@smithy/eventstream-serde-browser" "^3.0.6" + "@smithy/eventstream-serde-config-resolver" "^3.0.3" + "@smithy/eventstream-serde-node" "^3.0.5" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-blob-browser" "^3.1.2" + "@smithy/hash-node" "^3.0.3" + "@smithy/hash-stream-node" "^3.1.2" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/md5-js" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.14" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.1.12" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.14" + "@smithy/util-defaults-mode-node" "^3.0.14" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-stream" "^3.1.3" + "@smithy/util-utf8" "^3.0.0" + "@smithy/util-waiter" "^3.1.2" + tslib "^2.6.2" + +"@aws-sdk/client-sso-oidc@3.632.0": + version "3.632.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.632.0.tgz#38d0b11980f0716c85e63acf2bce0ac1e6ccc9b5" + integrity sha512-Oh1fIWaoZluihOCb/zDEpRTi+6an82fgJz7fyRBugyLhEtDjmvpCQ3oKjzaOhoN+4EvXAm1ZS/ZgpvXBlIRTgw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.629.0" + "@aws-sdk/credential-provider-node" "3.632.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.632.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.632.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.3.2" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.14" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.1.12" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.14" + "@smithy/util-defaults-mode-node" "^3.0.14" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.632.0": + version "3.632.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.632.0.tgz#cc7d7c7578ba34d3689574dc015a0a71b35872e1" + integrity sha512-iYWHiKBz44m3chCFvtvHnvCpL2rALzyr1e6tOZV3dLlOKtQtDUlPy6OtnXDu4y+wyJCniy8ivG3+LAe4klzn1Q== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.629.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.632.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.632.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.3.2" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.14" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.1.12" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.14" + "@smithy/util-defaults-mode-node" "^3.0.14" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sts@3.632.0": + version "3.632.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.632.0.tgz#dc0e9d9958752f620adbe9783fb8ba2f2f915463" + integrity sha512-Ss5cBH09icpTvT+jtGGuQlRdwtO7RyE9BF4ZV/CEPATdd9whtJt4Qxdya8BUnkWR7h5HHTrQHqai3YVYjku41A== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/client-sso-oidc" "3.632.0" + "@aws-sdk/core" "3.629.0" + "@aws-sdk/credential-provider-node" "3.632.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.632.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.632.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.3.2" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.14" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.1.12" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.14" + "@smithy/util-defaults-mode-node" "^3.0.14" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/core@3.629.0": + version "3.629.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.629.0.tgz#1ed02c657edcd22ffdce9b3b5bdbd2a36fe899aa" + integrity sha512-+/ShPU/tyIBM3oY1cnjgNA/tFyHtlWq+wXF9xEKRv19NOpYbWQ+xzNwVjGq8vR07cCRqy/sDQLWPhxjtuV/FiQ== + dependencies: + "@smithy/core" "^2.3.2" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/signature-v4" "^4.1.0" + "@smithy/smithy-client" "^3.1.12" + "@smithy/types" "^3.3.0" + "@smithy/util-middleware" "^3.0.3" + fast-xml-parser "4.4.1" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@3.620.1": + version "3.620.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz#d4692c49a65ebc11dae3f7f8b053fee9268a953c" + integrity sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.622.0": + version "3.622.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.622.0.tgz#db481fdef859849d07dd5870894f45df2debab3d" + integrity sha512-VUHbr24Oll1RK3WR8XLUugLpgK9ZuxEm/NVeVqyFts1Ck9gsKpRg1x4eH7L7tW3SJ4TDEQNMbD7/7J+eoL2svg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.1.12" + "@smithy/types" "^3.3.0" + "@smithy/util-stream" "^3.1.3" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.632.0": + version "3.632.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.632.0.tgz#55c2aa6e59fb9f19cf4e9c1e4ebf70235de32930" + integrity sha512-m6epoW41xa1ajU5OiHcmQHoGVtrbXBaRBOUhlCLZmcaqMLYsboM4iD/WZP8aatKEON5tTnVXh/4StV8D/+wemw== + dependencies: + "@aws-sdk/credential-provider-env" "3.620.1" + "@aws-sdk/credential-provider-http" "3.622.0" + "@aws-sdk/credential-provider-process" "3.620.1" + "@aws-sdk/credential-provider-sso" "3.632.0" + "@aws-sdk/credential-provider-web-identity" "3.621.0" + "@aws-sdk/types" "3.609.0" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.632.0": + version "3.632.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.632.0.tgz#33a21d722b620c6a9cc43c38981cba69345e251f" + integrity sha512-cL8fuJWm/xQBO4XJPkeuZzl3XinIn9EExWgzpG48NRMKR5us1RI/ucv7xFbBBaG+r/sDR2HpYBIA3lVIpm1H3Q== + dependencies: + "@aws-sdk/credential-provider-env" "3.620.1" + "@aws-sdk/credential-provider-http" "3.622.0" + "@aws-sdk/credential-provider-ini" "3.632.0" + "@aws-sdk/credential-provider-process" "3.620.1" + "@aws-sdk/credential-provider-sso" "3.632.0" + "@aws-sdk/credential-provider-web-identity" "3.621.0" + "@aws-sdk/types" "3.609.0" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.620.1": + version "3.620.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz#10387cf85400420bb4bbda9cc56937dcc6d6d0ee" + integrity sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.632.0": + version "3.632.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.632.0.tgz#c217b853fd7d00511f3f14accdd3bf27ec4426a6" + integrity sha512-P/4wB6j7ym5QCPTL2xlMfvf2NcXSh+z0jmsZP4WW/tVwab4hvgabPPbLeEZDSWZ0BpgtxKGvRq0GSHuGeirQbA== + dependencies: + "@aws-sdk/client-sso" "3.632.0" + "@aws-sdk/token-providers" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.621.0": + version "3.621.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz#b25878c0a05dad60cd5f91e7e5a31a145c2f14be" + integrity sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-bucket-endpoint@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.620.0.tgz#c5dc0e98b6209a91479cad6c2c74fbc5a3429fab" + integrity sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-arn-parser" "3.568.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + "@smithy/util-config-provider" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-expect-continue@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.620.0.tgz#6a362c0f0696dc6749108a33de9998e0fa6b50ec" + integrity sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-flexible-checksums@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.620.0.tgz#42cd48cdc0ad9639545be000bf537969210ce8c5" + integrity sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@aws-crypto/crc32c" "5.2.0" + "@aws-sdk/types" "3.609.0" + "@smithy/is-array-buffer" "^3.0.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz#b561d419a08a984ba364c193376b482ff5224d74" + integrity sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-location-constraint@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz#7ed82d71e5ddcd50683ef2bbde10d1cc2492057e" + integrity sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz#ed44d201f091b8bac908cbf14724c7a4d492553f" + integrity sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz#f8270dfff843fd756be971e5673f89c6a24c6513" + integrity sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-sdk-s3@3.633.0": + version "3.633.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.633.0.tgz#034ec7bfdcbc2a7bc98c4cc58452249e45c27eac" + integrity sha512-7jjmWVw28wIHOdrHyTCvwKr1EYGrZI13DviwAOwRC0y9dB8gGCdRiA4fNczripUBxolCCE9mpqLrqy5pXtTzvA== + dependencies: + "@aws-sdk/core" "3.629.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-arn-parser" "3.568.0" + "@smithy/core" "^2.3.2" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/signature-v4" "^4.1.0" + "@smithy/smithy-client" "^3.1.12" + "@smithy/types" "^3.3.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-stream" "^3.1.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-ssec@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.609.0.tgz#b87a8bc6133f3f6bdc6801183d0f9dad3f93cf9f" + integrity sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@3.632.0": + version "3.632.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.632.0.tgz#274bbf2789268f30c1ff2ef20c395c9dc4f91c96" + integrity sha512-yY/sFsHKwG9yzSf/DTclqWJaGPI2gPBJDCGBujSqTG1zlS7Ot4fqi91DZ6088BFWzbOorDzJFcAhAEFzc6LuQg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.632.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/region-config-resolver@3.614.0": + version "3.614.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz#9cebb31a5bcfea2a41891fff7f28d0164cde179a" + integrity sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/types" "^3.3.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + tslib "^2.6.2" + +"@aws-sdk/signature-v4-multi-region@3.633.0": + version "3.633.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.633.0.tgz#d4a37f2820c7952b5c482731379e6b62e8da0a74" + integrity sha512-96F7Mx4lybMZdE0TTEkw6EKpeB0hxqp3J8fUJasesekTnO7jsklc47GHL5R3whyS/L4/JaPazm0Pi2DEH3kw1w== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.633.0" + "@aws-sdk/types" "3.609.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/signature-v4" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.614.0": + version "3.614.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz#88da04f6d4ce916b0b0f6e045676d04201fb47fd" + integrity sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/types@3.609.0", "@aws-sdk/types@^3.222.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.609.0.tgz#06b39d799c9f197a7b43670243e8e78a3bf7d6a5" + integrity sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/util-arn-parser@3.568.0": + version "3.568.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" + integrity sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-endpoints@3.632.0": + version "3.632.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.632.0.tgz#f8716bdc75fc322babc6a3faf943ee1d0e462124" + integrity sha512-LlYMU8pAbcEQphOpE6xaNLJ8kPGhklZZTVzZVpVW477NaaGgoGTMYNXTABYHcxeF5E2lLrxql9OmVpvr8GWN8Q== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + "@smithy/util-endpoints" "^2.0.5" + tslib "^2.6.2" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.568.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff" + integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-browser@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz#aa15421b2e32ae8bc589dac2bd6e8969832ce588" + integrity sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-node@3.614.0": + version "3.614.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz#1e3f49a80f841a3f21647baed2adce01aac5beb5" + integrity sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/xml-builder@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz#eeb3d5cde000a23cfeeefe0354b6193440dc7d87" + integrity sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@defillama/sdk@^5.0.10": + version "5.0.78" + resolved "https://registry.yarnpkg.com/@defillama/sdk/-/sdk-5.0.78.tgz#77c22ce7acc8284c9c946f449d42d0cec6fbf888" + integrity sha512-VnK7/9DeBjrEaN/CG6dNR6G9624ntVEPy8DRWSVDhaQ8FM4sMWfsYDQbM4o028BKT7CM3vxKku8SrI2iwcZsGQ== + dependencies: + "@aws-sdk/client-s3" "^3.400.0" + "@elastic/elasticsearch" "^8.13.1" + "@supercharge/promise-pool" "^2.1.0" + axios "^1.6.5" + ethers "^6.0.0" + p-limit "^3.0.0" + tron-format-address "^0.1.11" + +"@elastic/elasticsearch@^8.13.1": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-8.15.0.tgz#cb29b3ae33203c545d435cf3dc4b557c8b4961d5" + integrity sha512-mG90EMdTDoT6GFSdqpUAhWK9LGuiJo6tOWqs0Usd/t15mPQDj7ZqHXfCBqNkASZpwPZpbAYVjd57S6nbUBINCg== + dependencies: + "@elastic/transport" "^8.7.0" + tslib "^2.4.0" + +"@elastic/transport@^8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@elastic/transport/-/transport-8.7.0.tgz#006987fc5583f61c266e0b1003371e82efc7a6b5" + integrity sha512-IqXT7a8DZPJtqP2qmX1I2QKmxYyN27kvSW4g6pInESE1SuGwZDp2FxHJ6W2kwmYOJwQdAt+2aWwzXO5jHo9l4A== + dependencies: + "@opentelemetry/api" "1.x" + debug "^4.3.4" + hpagent "^1.0.0" + ms "^2.1.3" + secure-json-parse "^2.4.0" + tslib "^2.4.0" + undici "^6.12.0" + +"@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@opentelemetry/api@1.x": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" + integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@smithy/abort-controller@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.1.tgz#291210611ff6afecfc198d0ca72d5771d8461d16" + integrity sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/chunked-blob-reader-native@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz#f1104b30030f76f9aadcbd3cdca4377bd1ba2695" + integrity sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg== + dependencies: + "@smithy/util-base64" "^3.0.0" + tslib "^2.6.2" + +"@smithy/chunked-blob-reader@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz#e5d3b04e9b273ba8b7ede47461e2aa96c8aa49e0" + integrity sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA== + dependencies: + tslib "^2.6.2" + +"@smithy/config-resolver@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.5.tgz#727978bba7ace754c741c259486a19d3083431fd" + integrity sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA== + dependencies: + "@smithy/node-config-provider" "^3.1.4" + "@smithy/types" "^3.3.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + tslib "^2.6.2" + +"@smithy/core@^2.3.2": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.4.0.tgz#56e917b6ab2dffeba681a05395c40a757d681147" + integrity sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w== + dependencies: + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/credential-provider-imds@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz#0e0e7ddaff1a8633cb927aee1056c0ab506b7ecf" + integrity sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA== + dependencies: + "@smithy/node-config-provider" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + tslib "^2.6.2" + +"@smithy/eventstream-codec@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz#4a1c72b34400631b829241151984a1ad8c4f963c" + integrity sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-hex-encoding" "^3.0.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-browser@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.6.tgz#a4ab4f7cfbd137bcaa54c375276f9214e568fd8f" + integrity sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.5" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-config-resolver@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz#f852e096d0ad112363b4685e1d441088d1fce67a" + integrity sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-node@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.5.tgz#2bbf5c9312a28f23bc55ae284efa9499f8b8f982" + integrity sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.5" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-universal@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.5.tgz#e1cc2f71f4d174a03e00ce4b563395a81dd17bec" + integrity sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ== + dependencies: + "@smithy/eventstream-codec" "^3.1.2" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/fetch-http-handler@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz#c754de7e0ff2541b73ac9ba7cc955940114b3d62" + integrity sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg== + dependencies: + "@smithy/protocol-http" "^4.1.0" + "@smithy/querystring-builder" "^3.0.3" + "@smithy/types" "^3.3.0" + "@smithy/util-base64" "^3.0.0" + tslib "^2.6.2" + +"@smithy/hash-blob-browser@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz#90281c1f183d93686fb4f26107f1819644d68829" + integrity sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg== + dependencies: + "@smithy/chunked-blob-reader" "^3.0.0" + "@smithy/chunked-blob-reader-native" "^3.0.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/hash-node@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.3.tgz#82c5cb7b0f1a29ee7319081853d2d158c07dff24" + integrity sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw== + dependencies: + "@smithy/types" "^3.3.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/hash-stream-node@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz#89f0290ae44b113863878e75b10c484ff48af71c" + integrity sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g== + dependencies: + "@smithy/types" "^3.3.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/invalid-dependency@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz#8d9fd70e3a94b565a4eba4ffbdc95238e1930528" + integrity sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/is-array-buffer@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" + integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== + dependencies: + tslib "^2.6.2" + +"@smithy/is-array-buffer@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a" + integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ== + dependencies: + tslib "^2.6.2" + +"@smithy/md5-js@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.3.tgz#55ee40aa24075b096c39f7910590c18ff7660c98" + integrity sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q== + dependencies: + "@smithy/types" "^3.3.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/middleware-content-length@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz#1680aa4fb2a1c0505756103c9a5c2916307d9035" + integrity sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw== + dependencies: + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/middleware-endpoint@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz#9b8a496d87a68ec43f3f1a0139868d6765a88119" + integrity sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw== + dependencies: + "@smithy/middleware-serde" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-middleware" "^3.0.3" + tslib "^2.6.2" + +"@smithy/middleware-retry@^3.0.14", "@smithy/middleware-retry@^3.0.15": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.15.tgz#9b96900cde70d8aafd267e13f4e79241be90e0c7" + integrity sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ== + dependencies: + "@smithy/node-config-provider" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/service-error-classification" "^3.0.3" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + tslib "^2.6.2" + uuid "^9.0.1" + +"@smithy/middleware-serde@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz#74d974460f74d99f38c861e6862984543a880a66" + integrity sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/middleware-stack@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz#91845c7e61e6f137fa912b623b6def719a4f6ce7" + integrity sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/node-config-provider@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz#05647bed666aa8036a1ad72323c1942e5d421be1" + integrity sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ== + dependencies: + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/node-http-handler@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.1.4.tgz#be4195e45639e690d522cd5f11513ea822ff9d5f" + integrity sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg== + dependencies: + "@smithy/abort-controller" "^3.1.1" + "@smithy/protocol-http" "^4.1.0" + "@smithy/querystring-builder" "^3.0.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/property-provider@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.3.tgz#afd57ea82a3f6c79fbda95e3cb85c0ee0a79f39a" + integrity sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/protocol-http@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.0.tgz#23519d8f45bf4f33960ea5415847bc2b620a010b" + integrity sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/querystring-builder@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz#6b0e566f885bb84938d077c69e8f8555f686af13" + integrity sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw== + dependencies: + "@smithy/types" "^3.3.0" + "@smithy/util-uri-escape" "^3.0.0" + tslib "^2.6.2" + +"@smithy/querystring-parser@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz#272a6b83f88dfcbbec8283d72a6bde850cc00091" + integrity sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/service-error-classification@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz#73484255060a094aa9372f6cd972dcaf97e3ce80" + integrity sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ== + dependencies: + "@smithy/types" "^3.3.0" + +"@smithy/shared-ini-file-loader@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz#7dceaf5a5307a2ee347ace8aba17312a1a3ede15" + integrity sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/signature-v4@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.0.tgz#251ff43dc1f4ad66776122732fea9e56efc56443" + integrity sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag== + dependencies: + "@smithy/is-array-buffer" "^3.0.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-uri-escape" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/smithy-client@^3.1.12", "@smithy/smithy-client@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.2.0.tgz#6db94024e4bdaefa079ac68dbea23dafbea230c8" + integrity sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw== + dependencies: + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + "@smithy/util-stream" "^3.1.3" + tslib "^2.6.2" + +"@smithy/types@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.3.0.tgz#fae037c733d09bc758946a01a3de0ef6e210b16b" + integrity sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA== + dependencies: + tslib "^2.6.2" + +"@smithy/url-parser@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.3.tgz#e8a060d9810b24b1870385fc2b02485b8a6c5955" + integrity sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A== + dependencies: + "@smithy/querystring-parser" "^3.0.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-base64@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017" + integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ== + dependencies: + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-body-length-browser@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded" + integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-body-length-node@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d" + integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA== + dependencies: + tslib "^2.6.2" + +"@smithy/util-buffer-from@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" + integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-buffer-from@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3" + integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA== + dependencies: + "@smithy/is-array-buffer" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-config-provider@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe" + integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-defaults-mode-browser@^3.0.14": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.15.tgz#df73b9ae3dddc9126e0bb93ebc720b09d7163858" + integrity sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg== + dependencies: + "@smithy/property-provider" "^3.1.3" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@smithy/util-defaults-mode-node@^3.0.14": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.15.tgz#d52476e1f2e66525d918b51f8d5a9b0972bf518e" + integrity sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A== + dependencies: + "@smithy/config-resolver" "^3.0.5" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-endpoints@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz#e3a7a4d1c41250bfd2b2d890d591273a7d8934be" + integrity sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg== + dependencies: + "@smithy/node-config-provider" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-hex-encoding@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6" + integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-middleware@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.3.tgz#07bf9602682f5a6c55bc2f0384303f85fc68c87e" + integrity sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-retry@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.3.tgz#9b2ac0dbb1c81f69812a8affa4d772bebfc0e049" + integrity sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w== + dependencies: + "@smithy/service-error-classification" "^3.0.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-stream@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.3.tgz#699ee2397cc1d474e46d2034039d5263812dca64" + integrity sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw== + dependencies: + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/types" "^3.3.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-uri-escape@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54" + integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg== + dependencies: + tslib "^2.6.2" + +"@smithy/util-utf8@^2.0.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" + integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-utf8@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a" + integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA== + dependencies: + "@smithy/util-buffer-from" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-waiter@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.2.tgz#2d40c3312f3537feee763459a19acafab4c75cf3" + integrity sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw== + dependencies: + "@smithy/abort-controller" "^3.1.1" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@supercharge/promise-pool@^2.1.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz#6050eea8c2d7f92ddd4ddc582ee328b15c034ad3" + integrity sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w== + +"@supercharge/promise-pool@^3.1.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-3.2.0.tgz#a6ab4afdf798e453a6bb51c4ae340852e1266af8" + integrity sha512-pj0cAALblTZBPtMltWOlZTQSLT07jIaFNeM8TWoJD1cQMgDB9mcMlVMoetiB35OzNJpqQ2b+QEtwiR9f20mADg== + +"@tsconfig/node10@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/async-retry@^1.4.8": + version "1.4.8" + resolved "https://registry.yarnpkg.com/@types/async-retry/-/async-retry-1.4.8.tgz#eb32df13aceb9ba1a8a80e7fe518ff4e3fe46bb3" + integrity sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA== + dependencies: + "@types/retry" "*" + +"@types/debug@^4.1.8": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/ms@*": + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/node@*": + version "22.4.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.4.0.tgz#c295fe1d6f5f58916cc61dbef8cf65b5b9b71de9" + integrity sha512-49AbMDwYUz7EXxKU/r7mXOsxwFr4BYbvB7tWYxVuLdb2ibd30ijjXINSMAHiEEZk5PCRBmW1gUeisn2VMKt3cQ== + dependencies: + undici-types "~6.19.2" + +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + +"@types/node@^18.7.23": + version "18.19.44" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.44.tgz#875a8322d17ff12bf82b3af8c07b9310a00e72f8" + integrity sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA== + dependencies: + undici-types "~5.26.4" + +"@types/retry@*": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.5.tgz#f090ff4bd8d2e5b940ff270ab39fd5ca1834a07e" + integrity sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw== + +"@types/validator@^13.7.17": + version "13.12.0" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.12.0.tgz#1fe4c3ae9de5cf5193ce64717c99ef2fa7d8756f" + integrity sha512-nH45Lk7oPIJ1RVOF6JgFI6Dy0QpHEzq4QecZhvguxYPDwT8c93prCMqAtiIttm39voZ+DDR+qkNnMpJmMBRqag== + +acorn-walk@^8.1.1: + version "8.3.3" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" + integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0, acorn@^8.4.1: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +async-retry@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.6.5: + version "1.7.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" + integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bignumber.js@^9.1.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.1.5: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.3.4: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dotenv@^16.0.3: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +dottie@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.6.tgz#34564ebfc6ec5e5772272d466424ad5b696484d4" + integrity sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +ethers@^6.0.0, ethers@^6.9.2: + version "6.13.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" + integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.17.1" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extract-files@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" + integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== + +fast-xml-parser@4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz#86dbf3f18edf8739326447bcaac31b4ae7f6514f" + integrity sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw== + dependencies: + strnum "^1.0.5" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0, figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +foreground-child@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fuzzy@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" + integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== + +glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +graphql-request@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.1.0.tgz#dbc8feee27d21b993cd5da2d3af67821827b240a" + integrity sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-fetch "^3.1.5" + extract-files "^9.0.0" + form-data "^3.0.0" + +graphql@^16.6.0: + version "16.9.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" + integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +hpagent@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-1.2.0.tgz#0ae417895430eb3770c03443456b8d90ca464903" + integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inflection@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.13.4.tgz#65aa696c4e2da6225b148d7a154c449366633a32" + integrity sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw== + +inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inquirer-autocomplete-prompt@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz#e767592f747e3d5bb6336fe71fb4094352e4c317" + integrity sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + figures "^3.2.0" + run-async "^2.4.0" + rxjs "^6.6.2" + +inquirer-fuzzy-path@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/inquirer-fuzzy-path/-/inquirer-fuzzy-path-2.3.0.tgz#9bc51dc47d7d9c7eb53daac7fd7c9e615eb040c5" + integrity sha512-zfHC/97GSkxKKM7IctZM22x1sVi+FYBh9oaHTmI7Er/GKFpNykUgtviTmqqpiFQs5yJoSowxbT0PHy6N+H+QRg== + dependencies: + ansi-styles "^3.2.1" + fuzzy "^0.1.3" + inquirer "^6.0.0" + inquirer-autocomplete-prompt "^1.0.2" + strip-ansi "^4.0.0" + +inquirer@^6.0.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +inquirer@^8.0.0: + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^6.0.1" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +lodash@^4.17.12, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +moment-timezone@^0.5.43: + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== + dependencies: + moment "^2.29.4" + +moment@^2.29.4: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-limit@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + +pg-connection-string@^2.6.1, pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== + +pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@^8.11.3: + version "8.12.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" + integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry-as-promised@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-7.0.4.tgz#9df73adaeea08cb2948b9d34990549dc13d800a2" + integrity sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA== + +retry@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +run-async@^2.2.0, run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +rxjs@^6.4.0, rxjs@^6.6.2: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.5.5: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +secure-json-parse@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" + integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== + +semver@^7.5.4: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +sequelize-pool@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-7.1.0.tgz#210b391af4002762f823188fd6ecfc7413020768" + integrity sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg== + +sequelize@^6.36.0: + version "6.37.3" + resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.37.3.tgz#ed6212029a52c59a18638d2a703da84bc2f81311" + integrity sha512-V2FTqYpdZjPy3VQrZvjTPnOoLm0KudCRXfGWp48QwhyPPp2yW8z0p0sCYZd/em847Tl2dVxJJ1DR+hF+O77T7A== + dependencies: + "@types/debug" "^4.1.8" + "@types/validator" "^13.7.17" + debug "^4.3.4" + dottie "^2.0.6" + inflection "^1.13.4" + lodash "^4.17.21" + moment "^2.29.4" + moment-timezone "^0.5.43" + pg-connection-string "^2.6.1" + retry-as-promised "^7.0.4" + semver "^7.5.4" + sequelize-pool "^7.1.0" + toposort-class "^1.0.1" + uuid "^8.3.2" + validator "^13.9.0" + wkx "^0.5.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +toposort-class@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988" + integrity sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tron-format-address@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/tron-format-address/-/tron-format-address-0.1.12.tgz#4c6b6ba717a57424e9d12343b1fce0e466690362" + integrity sha512-dtlfwSZEdWA9Cj3Mqypw/WNhQPlQf5JWT+/H5gYX5Viu+ntIq+7zJvcWCrmcDJ48L0EHt2xzGme2eErW9Y7spQ== + +ts-node@^10.9.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typescript@^5.0.0: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +undici-types@~6.19.2: + version "6.19.6" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.6.tgz#e218c3df0987f4c0e0008ca00d6b6472d9b89b36" + integrity sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org== + +undici@^6.12.0: + version "6.19.7" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.7.tgz#7d4cf26dc689838aa8b6753a3c5c4288fc1e0216" + integrity sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +validator@^13.9.0: + version "13.12.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" + integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wkx@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.5.0.tgz#c6c37019acf40e517cc6b94657a25a3d4aa33e8c" + integrity sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg== + dependencies: + "@types/node" "*" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +ws@8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 3a0653405cbae1380c1e4345785494b3be1c28ef Mon Sep 17 00:00:00 2001 From: LeeRyanj <138840879+LeeRyanj@users.noreply.github.com> Date: Thu, 22 Aug 2024 17:41:27 +0800 Subject: [PATCH 178/237] Update index.ts --- dexs/kiloex/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dexs/kiloex/index.ts b/dexs/kiloex/index.ts index 2a47b551a2..077ad5de40 100644 --- a/dexs/kiloex/index.ts +++ b/dexs/kiloex/index.ts @@ -14,6 +14,7 @@ const historicalVolumeEndpoints: ChainMap = { [CHAIN.OP_BNB]: "https://opapi.kiloex.io/common/queryTradeSummary", [CHAIN.MANTA]: "https://mantaapi.kiloex.io/common/queryTradeSummary", [CHAIN.TAIKO]: "https://taikoapi.kiloex.io/common/queryTradeSummary", + [CHAIN.BSQUARED]: "https://b2api.kiloex.io/common/queryTradeSummary", }; interface IVolume { @@ -56,6 +57,9 @@ const adapter: SimpleAdapter = { [CHAIN.TAIKO]: { fetch: fetch(CHAIN.TAIKO), start: async () => 1717027200 }, + [CHAIN.BSQUARED]: { + fetch: fetch(CHAIN.BSQUARED), start: async () => 1722297600 + }, }, }; From d0cb8b06c58ad74323fd27c32061e1d738735acf Mon Sep 17 00:00:00 2001 From: LeeRyanj <138840879+LeeRyanj@users.noreply.github.com> Date: Thu, 22 Aug 2024 17:42:38 +0800 Subject: [PATCH 179/237] Update index.ts --- fees/kiloex/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fees/kiloex/index.ts b/fees/kiloex/index.ts index 00599ab584..da3baab6b7 100644 --- a/fees/kiloex/index.ts +++ b/fees/kiloex/index.ts @@ -13,7 +13,8 @@ const endpoints: ChainMap = { [CHAIN.BSC]: "https://api.kiloex.io/common/queryTradeSummary", [CHAIN.OP_BNB]: "https://opapi.kiloex.io/common/queryTradeSummary", [CHAIN.MANTA]: "https://mantaapi.kiloex.io/common/queryTradeSummary", - [CHAIN.TAIKO]: "https://taikoapi.kiloex.io/common/queryTradeSummary" + [CHAIN.TAIKO]: "https://taikoapi.kiloex.io/common/queryTradeSummary", + [CHAIN.BSQUARED]: "https://b2api.kiloex.io/common/queryTradeSummary" }; interface IFee { @@ -57,6 +58,9 @@ const adapter: SimpleAdapter = { [CHAIN.TAIKO]: { fetch: fetch(CHAIN.TAIKO), start: async () => 1717027200 }, + [CHAIN.BSQUARED]: { + fetch: fetch(CHAIN.BSQUARED), start: async () => 1722297600 + }, }, }; From b1caf88ce62ff55fb21eaef014244b2a654bff6d Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Thu, 22 Aug 2024 12:22:45 +0200 Subject: [PATCH 180/237] feat:Adapter, OpenEden-t-bills Fees --- fees/openeden-t-bills/index.ts | 65 ++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 fees/openeden-t-bills/index.ts diff --git a/fees/openeden-t-bills/index.ts b/fees/openeden-t-bills/index.ts new file mode 100644 index 0000000000..5f6454ca96 --- /dev/null +++ b/fees/openeden-t-bills/index.ts @@ -0,0 +1,65 @@ +// https://docs.openeden.com/treasury-bills-vault/fees + +import { Chain } from "@defillama/sdk/build/general"; +import { Adapter, FetchOptions } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import ADDRESSES from "../../helpers/coreAssets.json"; + +const eventAbi = `event ProcessDeposit( + address sender, + address receiver, + uint256 assets, + uint256 shares, + uint256 oeFee, + uint256 pFee, + uint256 totalFee, + address oplTreasury, + address treasury +)`; + +const VAULT_ADDRESSES: Record = { + [CHAIN.ETHEREUM]: "0xdd50C053C096CB04A3e3362E2b622529EC5f2e8a", + [CHAIN.ARBITRUM]: "0xF84D28A8D28292842dD73D1c5F99476A80b6666A", +}; + +const MANAGEMENT_FEES: number = 0.003; +const DAILY_MANAGEMENT_FEES: number = MANAGEMENT_FEES / 365; + +const fetch = async ( + vault: string, + { api, getLogs, createBalances }: FetchOptions +) => { + const dailyFees = createBalances(); + + const [logs, totalUSDC] = await Promise.all([ + getLogs({ target: vault, eventAbi }), + api.call({ target: vault, abi: "uint256:totalAssets" }), + ]); + + dailyFees.add(ADDRESSES[api.chain].USDC, totalUSDC * DAILY_MANAGEMENT_FEES); + + logs.forEach((log) => { + const feeAmount = log[4]; + dailyFees.add(ADDRESSES[api.chain].USDC, feeAmount); + }); + + return { dailyFees }; +}; + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.ETHEREUM]: { + fetch: (options: FetchOptions) => + fetch(VAULT_ADDRESSES[CHAIN.ETHEREUM], options), + start: 1697580000, + }, + [CHAIN.ARBITRUM]: { + fetch: (options: FetchOptions) => + fetch(VAULT_ADDRESSES[CHAIN.ARBITRUM], options), + start: 1707778800, + }, + }, +}; + +export default adapter; From c102f76d4b81608ef88d94d9caed1abd618a9635 Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Thu, 22 Aug 2024 12:23:44 +0200 Subject: [PATCH 181/237] promise type --- fees/openeden-t-bills/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fees/openeden-t-bills/index.ts b/fees/openeden-t-bills/index.ts index 5f6454ca96..ebc9e37d0c 100644 --- a/fees/openeden-t-bills/index.ts +++ b/fees/openeden-t-bills/index.ts @@ -1,7 +1,7 @@ // https://docs.openeden.com/treasury-bills-vault/fees import { Chain } from "@defillama/sdk/build/general"; -import { Adapter, FetchOptions } from "../../adapters/types"; +import { Adapter, FetchOptions, FetchResultV2 } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import ADDRESSES from "../../helpers/coreAssets.json"; @@ -28,7 +28,7 @@ const DAILY_MANAGEMENT_FEES: number = MANAGEMENT_FEES / 365; const fetch = async ( vault: string, { api, getLogs, createBalances }: FetchOptions -) => { +): Promise => { const dailyFees = createBalances(); const [logs, totalUSDC] = await Promise.all([ From ea854521bfcc209d50d0e253ad0c1d64d1bc4ee1 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Thu, 22 Aug 2024 12:39:47 +0000 Subject: [PATCH 182/237] fix allow error get block chain dymension --- helpers/getBlock.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/helpers/getBlock.ts b/helpers/getBlock.ts index 1930191579..60667616d0 100644 --- a/helpers/getBlock.ts +++ b/helpers/getBlock.ts @@ -48,7 +48,8 @@ const blacklistedChains: string[] = [ "persistence", "sui", "neutron", - "terra2" + "terra2", + "dymension" ]; async function getBlock(timestamp: number, chain: Chain, chainBlocks = {} as ChainBlocks) { From 4fbd80ec2872f81681c82a2bf82a0d49d5ba2101 Mon Sep 17 00:00:00 2001 From: TerrenceAddison Date: Thu, 22 Aug 2024 20:25:10 +0700 Subject: [PATCH 183/237] remove yarn lock --- yarn.lock | 2443 ----------------------------------------------------- 1 file changed, 2443 deletions(-) delete mode 100644 yarn.lock diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index f8d7721b94..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,2443 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@adraffy/ens-normalize@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" - integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== - -"@aws-crypto/crc32@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1" - integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg== - dependencies: - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - tslib "^2.6.2" - -"@aws-crypto/crc32c@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz#4e34aab7f419307821509a98b9b08e84e0c1917e" - integrity sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag== - dependencies: - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - tslib "^2.6.2" - -"@aws-crypto/sha1-browser@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz#b0ee2d2821d3861f017e965ef3b4cb38e3b6a0f4" - integrity sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg== - dependencies: - "@aws-crypto/supports-web-crypto" "^5.2.0" - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - "@aws-sdk/util-locate-window" "^3.0.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.6.2" - -"@aws-crypto/sha256-browser@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e" - integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== - dependencies: - "@aws-crypto/sha256-js" "^5.2.0" - "@aws-crypto/supports-web-crypto" "^5.2.0" - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - "@aws-sdk/util-locate-window" "^3.0.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.6.2" - -"@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042" - integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== - dependencies: - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - tslib "^2.6.2" - -"@aws-crypto/supports-web-crypto@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb" - integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== - dependencies: - tslib "^2.6.2" - -"@aws-crypto/util@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da" - integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== - dependencies: - "@aws-sdk/types" "^3.222.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-s3@^3.400.0": - version "3.633.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.633.0.tgz#662535e1217f4276781b6bce6e6bc7cbaf88f327" - integrity sha512-KPwNGlZlCRUADNTvwPJmvDvlh8N/jxjcv5e71M/mWxLXwSPdlHlRjVSBL1/CPSXUr86XRAsPL+BCRkdiytUhbg== - dependencies: - "@aws-crypto/sha1-browser" "5.2.0" - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.632.0" - "@aws-sdk/client-sts" "3.632.0" - "@aws-sdk/core" "3.629.0" - "@aws-sdk/credential-provider-node" "3.632.0" - "@aws-sdk/middleware-bucket-endpoint" "3.620.0" - "@aws-sdk/middleware-expect-continue" "3.620.0" - "@aws-sdk/middleware-flexible-checksums" "3.620.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-location-constraint" "3.609.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-sdk-s3" "3.633.0" - "@aws-sdk/middleware-ssec" "3.609.0" - "@aws-sdk/middleware-user-agent" "3.632.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/signature-v4-multi-region" "3.633.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.632.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@aws-sdk/xml-builder" "3.609.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.2" - "@smithy/eventstream-serde-browser" "^3.0.6" - "@smithy/eventstream-serde-config-resolver" "^3.0.3" - "@smithy/eventstream-serde-node" "^3.0.5" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-blob-browser" "^3.1.2" - "@smithy/hash-node" "^3.0.3" - "@smithy/hash-stream-node" "^3.1.2" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/md5-js" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.14" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.12" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.14" - "@smithy/util-defaults-mode-node" "^3.0.14" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-stream" "^3.1.3" - "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.1.2" - tslib "^2.6.2" - -"@aws-sdk/client-sso-oidc@3.632.0": - version "3.632.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.632.0.tgz#38d0b11980f0716c85e63acf2bce0ac1e6ccc9b5" - integrity sha512-Oh1fIWaoZluihOCb/zDEpRTi+6an82fgJz7fyRBugyLhEtDjmvpCQ3oKjzaOhoN+4EvXAm1ZS/ZgpvXBlIRTgw== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.629.0" - "@aws-sdk/credential-provider-node" "3.632.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.632.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.632.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.2" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.14" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.12" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.14" - "@smithy/util-defaults-mode-node" "^3.0.14" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sso@3.632.0": - version "3.632.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.632.0.tgz#cc7d7c7578ba34d3689574dc015a0a71b35872e1" - integrity sha512-iYWHiKBz44m3chCFvtvHnvCpL2rALzyr1e6tOZV3dLlOKtQtDUlPy6OtnXDu4y+wyJCniy8ivG3+LAe4klzn1Q== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.629.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.632.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.632.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.2" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.14" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.12" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.14" - "@smithy/util-defaults-mode-node" "^3.0.14" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sts@3.632.0": - version "3.632.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.632.0.tgz#dc0e9d9958752f620adbe9783fb8ba2f2f915463" - integrity sha512-Ss5cBH09icpTvT+jtGGuQlRdwtO7RyE9BF4ZV/CEPATdd9whtJt4Qxdya8BUnkWR7h5HHTrQHqai3YVYjku41A== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.632.0" - "@aws-sdk/core" "3.629.0" - "@aws-sdk/credential-provider-node" "3.632.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.632.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.632.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.3.2" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.14" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.12" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.14" - "@smithy/util-defaults-mode-node" "^3.0.14" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/core@3.629.0": - version "3.629.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.629.0.tgz#1ed02c657edcd22ffdce9b3b5bdbd2a36fe899aa" - integrity sha512-+/ShPU/tyIBM3oY1cnjgNA/tFyHtlWq+wXF9xEKRv19NOpYbWQ+xzNwVjGq8vR07cCRqy/sDQLWPhxjtuV/FiQ== - dependencies: - "@smithy/core" "^2.3.2" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/smithy-client" "^3.1.12" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" - fast-xml-parser "4.4.1" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-env@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz#d4692c49a65ebc11dae3f7f8b053fee9268a953c" - integrity sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-http@3.622.0": - version "3.622.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.622.0.tgz#db481fdef859849d07dd5870894f45df2debab3d" - integrity sha512-VUHbr24Oll1RK3WR8XLUugLpgK9ZuxEm/NVeVqyFts1Ck9gsKpRg1x4eH7L7tW3SJ4TDEQNMbD7/7J+eoL2svg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.1.12" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-ini@3.632.0": - version "3.632.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.632.0.tgz#55c2aa6e59fb9f19cf4e9c1e4ebf70235de32930" - integrity sha512-m6epoW41xa1ajU5OiHcmQHoGVtrbXBaRBOUhlCLZmcaqMLYsboM4iD/WZP8aatKEON5tTnVXh/4StV8D/+wemw== - dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.622.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.632.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-node@3.632.0": - version "3.632.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.632.0.tgz#33a21d722b620c6a9cc43c38981cba69345e251f" - integrity sha512-cL8fuJWm/xQBO4XJPkeuZzl3XinIn9EExWgzpG48NRMKR5us1RI/ucv7xFbBBaG+r/sDR2HpYBIA3lVIpm1H3Q== - dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.622.0" - "@aws-sdk/credential-provider-ini" "3.632.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.632.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-process@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz#10387cf85400420bb4bbda9cc56937dcc6d6d0ee" - integrity sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-sso@3.632.0": - version "3.632.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.632.0.tgz#c217b853fd7d00511f3f14accdd3bf27ec4426a6" - integrity sha512-P/4wB6j7ym5QCPTL2xlMfvf2NcXSh+z0jmsZP4WW/tVwab4hvgabPPbLeEZDSWZ0BpgtxKGvRq0GSHuGeirQbA== - dependencies: - "@aws-sdk/client-sso" "3.632.0" - "@aws-sdk/token-providers" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-web-identity@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz#b25878c0a05dad60cd5f91e7e5a31a145c2f14be" - integrity sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-bucket-endpoint@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.620.0.tgz#c5dc0e98b6209a91479cad6c2c74fbc5a3429fab" - integrity sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-config-provider" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-expect-continue@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.620.0.tgz#6a362c0f0696dc6749108a33de9998e0fa6b50ec" - integrity sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-flexible-checksums@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.620.0.tgz#42cd48cdc0ad9639545be000bf537969210ce8c5" - integrity sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA== - dependencies: - "@aws-crypto/crc32" "5.2.0" - "@aws-crypto/crc32c" "5.2.0" - "@aws-sdk/types" "3.609.0" - "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-host-header@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz#b561d419a08a984ba364c193376b482ff5224d74" - integrity sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-location-constraint@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz#7ed82d71e5ddcd50683ef2bbde10d1cc2492057e" - integrity sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-logger@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz#ed44d201f091b8bac908cbf14724c7a4d492553f" - integrity sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-recursion-detection@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz#f8270dfff843fd756be971e5673f89c6a24c6513" - integrity sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-sdk-s3@3.633.0": - version "3.633.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.633.0.tgz#034ec7bfdcbc2a7bc98c4cc58452249e45c27eac" - integrity sha512-7jjmWVw28wIHOdrHyTCvwKr1EYGrZI13DviwAOwRC0y9dB8gGCdRiA4fNczripUBxolCCE9mpqLrqy5pXtTzvA== - dependencies: - "@aws-sdk/core" "3.629.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/core" "^2.3.2" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/smithy-client" "^3.1.12" - "@smithy/types" "^3.3.0" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-stream" "^3.1.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-ssec@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.609.0.tgz#b87a8bc6133f3f6bdc6801183d0f9dad3f93cf9f" - integrity sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-user-agent@3.632.0": - version "3.632.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.632.0.tgz#274bbf2789268f30c1ff2ef20c395c9dc4f91c96" - integrity sha512-yY/sFsHKwG9yzSf/DTclqWJaGPI2gPBJDCGBujSqTG1zlS7Ot4fqi91DZ6088BFWzbOorDzJFcAhAEFzc6LuQg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.632.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/region-config-resolver@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz#9cebb31a5bcfea2a41891fff7f28d0164cde179a" - integrity sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - tslib "^2.6.2" - -"@aws-sdk/signature-v4-multi-region@3.633.0": - version "3.633.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.633.0.tgz#d4a37f2820c7952b5c482731379e6b62e8da0a74" - integrity sha512-96F7Mx4lybMZdE0TTEkw6EKpeB0hxqp3J8fUJasesekTnO7jsklc47GHL5R3whyS/L4/JaPazm0Pi2DEH3kw1w== - dependencies: - "@aws-sdk/middleware-sdk-s3" "3.633.0" - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/token-providers@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz#88da04f6d4ce916b0b0f6e045676d04201fb47fd" - integrity sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/types@3.609.0", "@aws-sdk/types@^3.222.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.609.0.tgz#06b39d799c9f197a7b43670243e8e78a3bf7d6a5" - integrity sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/util-arn-parser@3.568.0": - version "3.568.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" - integrity sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w== - dependencies: - tslib "^2.6.2" - -"@aws-sdk/util-endpoints@3.632.0": - version "3.632.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.632.0.tgz#f8716bdc75fc322babc6a3faf943ee1d0e462124" - integrity sha512-LlYMU8pAbcEQphOpE6xaNLJ8kPGhklZZTVzZVpVW477NaaGgoGTMYNXTABYHcxeF5E2lLrxql9OmVpvr8GWN8Q== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - "@smithy/util-endpoints" "^2.0.5" - tslib "^2.6.2" - -"@aws-sdk/util-locate-window@^3.0.0": - version "3.568.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff" - integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig== - dependencies: - tslib "^2.6.2" - -"@aws-sdk/util-user-agent-browser@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz#aa15421b2e32ae8bc589dac2bd6e8969832ce588" - integrity sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - bowser "^2.11.0" - tslib "^2.6.2" - -"@aws-sdk/util-user-agent-node@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz#1e3f49a80f841a3f21647baed2adce01aac5beb5" - integrity sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/xml-builder@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz#eeb3d5cde000a23cfeeefe0354b6193440dc7d87" - integrity sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@defillama/sdk@^5.0.10": - version "5.0.78" - resolved "https://registry.yarnpkg.com/@defillama/sdk/-/sdk-5.0.78.tgz#77c22ce7acc8284c9c946f449d42d0cec6fbf888" - integrity sha512-VnK7/9DeBjrEaN/CG6dNR6G9624ntVEPy8DRWSVDhaQ8FM4sMWfsYDQbM4o028BKT7CM3vxKku8SrI2iwcZsGQ== - dependencies: - "@aws-sdk/client-s3" "^3.400.0" - "@elastic/elasticsearch" "^8.13.1" - "@supercharge/promise-pool" "^2.1.0" - axios "^1.6.5" - ethers "^6.0.0" - p-limit "^3.0.0" - tron-format-address "^0.1.11" - -"@elastic/elasticsearch@^8.13.1": - version "8.15.0" - resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-8.15.0.tgz#cb29b3ae33203c545d435cf3dc4b557c8b4961d5" - integrity sha512-mG90EMdTDoT6GFSdqpUAhWK9LGuiJo6tOWqs0Usd/t15mPQDj7ZqHXfCBqNkASZpwPZpbAYVjd57S6nbUBINCg== - dependencies: - "@elastic/transport" "^8.7.0" - tslib "^2.4.0" - -"@elastic/transport@^8.7.0": - version "8.7.0" - resolved "https://registry.yarnpkg.com/@elastic/transport/-/transport-8.7.0.tgz#006987fc5583f61c266e0b1003371e82efc7a6b5" - integrity sha512-IqXT7a8DZPJtqP2qmX1I2QKmxYyN27kvSW4g6pInESE1SuGwZDp2FxHJ6W2kwmYOJwQdAt+2aWwzXO5jHo9l4A== - dependencies: - "@opentelemetry/api" "1.x" - debug "^4.3.4" - hpagent "^1.0.0" - ms "^2.1.3" - secure-json-parse "^2.4.0" - tslib "^2.4.0" - undici "^6.12.0" - -"@graphql-typed-document-node/core@^3.1.1": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" - integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@noble/curves@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" - integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== - dependencies: - "@noble/hashes" "1.3.2" - -"@noble/hashes@1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - -"@opentelemetry/api@1.x": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" - integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@smithy/abort-controller@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.1.tgz#291210611ff6afecfc198d0ca72d5771d8461d16" - integrity sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/chunked-blob-reader-native@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz#f1104b30030f76f9aadcbd3cdca4377bd1ba2695" - integrity sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg== - dependencies: - "@smithy/util-base64" "^3.0.0" - tslib "^2.6.2" - -"@smithy/chunked-blob-reader@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz#e5d3b04e9b273ba8b7ede47461e2aa96c8aa49e0" - integrity sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA== - dependencies: - tslib "^2.6.2" - -"@smithy/config-resolver@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.5.tgz#727978bba7ace754c741c259486a19d3083431fd" - integrity sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - tslib "^2.6.2" - -"@smithy/core@^2.3.2": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.4.0.tgz#56e917b6ab2dffeba681a05395c40a757d681147" - integrity sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w== - dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.15" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/credential-provider-imds@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz#0e0e7ddaff1a8633cb927aee1056c0ab506b7ecf" - integrity sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - tslib "^2.6.2" - -"@smithy/eventstream-codec@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz#4a1c72b34400631b829241151984a1ad8c4f963c" - integrity sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw== - dependencies: - "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^3.3.0" - "@smithy/util-hex-encoding" "^3.0.0" - tslib "^2.6.2" - -"@smithy/eventstream-serde-browser@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.6.tgz#a4ab4f7cfbd137bcaa54c375276f9214e568fd8f" - integrity sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ== - dependencies: - "@smithy/eventstream-serde-universal" "^3.0.5" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/eventstream-serde-config-resolver@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz#f852e096d0ad112363b4685e1d441088d1fce67a" - integrity sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/eventstream-serde-node@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.5.tgz#2bbf5c9312a28f23bc55ae284efa9499f8b8f982" - integrity sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ== - dependencies: - "@smithy/eventstream-serde-universal" "^3.0.5" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/eventstream-serde-universal@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.5.tgz#e1cc2f71f4d174a03e00ce4b563395a81dd17bec" - integrity sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ== - dependencies: - "@smithy/eventstream-codec" "^3.1.2" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/fetch-http-handler@^3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz#c754de7e0ff2541b73ac9ba7cc955940114b3d62" - integrity sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg== - dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" - "@smithy/util-base64" "^3.0.0" - tslib "^2.6.2" - -"@smithy/hash-blob-browser@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz#90281c1f183d93686fb4f26107f1819644d68829" - integrity sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg== - dependencies: - "@smithy/chunked-blob-reader" "^3.0.0" - "@smithy/chunked-blob-reader-native" "^3.0.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/hash-node@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.3.tgz#82c5cb7b0f1a29ee7319081853d2d158c07dff24" - integrity sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw== - dependencies: - "@smithy/types" "^3.3.0" - "@smithy/util-buffer-from" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/hash-stream-node@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz#89f0290ae44b113863878e75b10c484ff48af71c" - integrity sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g== - dependencies: - "@smithy/types" "^3.3.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/invalid-dependency@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz#8d9fd70e3a94b565a4eba4ffbdc95238e1930528" - integrity sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/is-array-buffer@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" - integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== - dependencies: - tslib "^2.6.2" - -"@smithy/is-array-buffer@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a" - integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ== - dependencies: - tslib "^2.6.2" - -"@smithy/md5-js@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.3.tgz#55ee40aa24075b096c39f7910590c18ff7660c98" - integrity sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q== - dependencies: - "@smithy/types" "^3.3.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/middleware-content-length@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz#1680aa4fb2a1c0505756103c9a5c2916307d9035" - integrity sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw== - dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/middleware-endpoint@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz#9b8a496d87a68ec43f3f1a0139868d6765a88119" - integrity sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw== - dependencies: - "@smithy/middleware-serde" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-middleware" "^3.0.3" - tslib "^2.6.2" - -"@smithy/middleware-retry@^3.0.14", "@smithy/middleware-retry@^3.0.15": - version "3.0.15" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.15.tgz#9b96900cde70d8aafd267e13f4e79241be90e0c7" - integrity sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/service-error-classification" "^3.0.3" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - tslib "^2.6.2" - uuid "^9.0.1" - -"@smithy/middleware-serde@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz#74d974460f74d99f38c861e6862984543a880a66" - integrity sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/middleware-stack@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz#91845c7e61e6f137fa912b623b6def719a4f6ce7" - integrity sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/node-config-provider@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz#05647bed666aa8036a1ad72323c1942e5d421be1" - integrity sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ== - dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/node-http-handler@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.1.4.tgz#be4195e45639e690d522cd5f11513ea822ff9d5f" - integrity sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg== - dependencies: - "@smithy/abort-controller" "^3.1.1" - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/property-provider@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.3.tgz#afd57ea82a3f6c79fbda95e3cb85c0ee0a79f39a" - integrity sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/protocol-http@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.0.tgz#23519d8f45bf4f33960ea5415847bc2b620a010b" - integrity sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/querystring-builder@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz#6b0e566f885bb84938d077c69e8f8555f686af13" - integrity sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw== - dependencies: - "@smithy/types" "^3.3.0" - "@smithy/util-uri-escape" "^3.0.0" - tslib "^2.6.2" - -"@smithy/querystring-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz#272a6b83f88dfcbbec8283d72a6bde850cc00091" - integrity sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/service-error-classification@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz#73484255060a094aa9372f6cd972dcaf97e3ce80" - integrity sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ== - dependencies: - "@smithy/types" "^3.3.0" - -"@smithy/shared-ini-file-loader@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz#7dceaf5a5307a2ee347ace8aba17312a1a3ede15" - integrity sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/signature-v4@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.0.tgz#251ff43dc1f4ad66776122732fea9e56efc56443" - integrity sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag== - dependencies: - "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-uri-escape" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/smithy-client@^3.1.12", "@smithy/smithy-client@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.2.0.tgz#6db94024e4bdaefa079ac68dbea23dafbea230c8" - integrity sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw== - dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" - tslib "^2.6.2" - -"@smithy/types@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.3.0.tgz#fae037c733d09bc758946a01a3de0ef6e210b16b" - integrity sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA== - dependencies: - tslib "^2.6.2" - -"@smithy/url-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.3.tgz#e8a060d9810b24b1870385fc2b02485b8a6c5955" - integrity sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A== - dependencies: - "@smithy/querystring-parser" "^3.0.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-base64@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017" - integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ== - dependencies: - "@smithy/util-buffer-from" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/util-body-length-browser@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded" - integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ== - dependencies: - tslib "^2.6.2" - -"@smithy/util-body-length-node@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d" - integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA== - dependencies: - tslib "^2.6.2" - -"@smithy/util-buffer-from@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" - integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== - dependencies: - "@smithy/is-array-buffer" "^2.2.0" - tslib "^2.6.2" - -"@smithy/util-buffer-from@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3" - integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA== - dependencies: - "@smithy/is-array-buffer" "^3.0.0" - tslib "^2.6.2" - -"@smithy/util-config-provider@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe" - integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ== - dependencies: - tslib "^2.6.2" - -"@smithy/util-defaults-mode-browser@^3.0.14": - version "3.0.15" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.15.tgz#df73b9ae3dddc9126e0bb93ebc720b09d7163858" - integrity sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg== - dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - bowser "^2.11.0" - tslib "^2.6.2" - -"@smithy/util-defaults-mode-node@^3.0.14": - version "3.0.15" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.15.tgz#d52476e1f2e66525d918b51f8d5a9b0972bf518e" - integrity sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A== - dependencies: - "@smithy/config-resolver" "^3.0.5" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-endpoints@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz#e3a7a4d1c41250bfd2b2d890d591273a7d8934be" - integrity sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-hex-encoding@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6" - integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ== - dependencies: - tslib "^2.6.2" - -"@smithy/util-middleware@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.3.tgz#07bf9602682f5a6c55bc2f0384303f85fc68c87e" - integrity sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-retry@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.3.tgz#9b2ac0dbb1c81f69812a8affa4d772bebfc0e049" - integrity sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w== - dependencies: - "@smithy/service-error-classification" "^3.0.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-stream@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.3.tgz#699ee2397cc1d474e46d2034039d5263812dca64" - integrity sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw== - dependencies: - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-buffer-from" "^3.0.0" - "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/util-uri-escape@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54" - integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg== - dependencies: - tslib "^2.6.2" - -"@smithy/util-utf8@^2.0.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" - integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== - dependencies: - "@smithy/util-buffer-from" "^2.2.0" - tslib "^2.6.2" - -"@smithy/util-utf8@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a" - integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA== - dependencies: - "@smithy/util-buffer-from" "^3.0.0" - tslib "^2.6.2" - -"@smithy/util-waiter@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.2.tgz#2d40c3312f3537feee763459a19acafab4c75cf3" - integrity sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw== - dependencies: - "@smithy/abort-controller" "^3.1.1" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@supercharge/promise-pool@^2.1.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz#6050eea8c2d7f92ddd4ddc582ee328b15c034ad3" - integrity sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w== - -"@supercharge/promise-pool@^3.1.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-3.2.0.tgz#a6ab4afdf798e453a6bb51c4ae340852e1266af8" - integrity sha512-pj0cAALblTZBPtMltWOlZTQSLT07jIaFNeM8TWoJD1cQMgDB9mcMlVMoetiB35OzNJpqQ2b+QEtwiR9f20mADg== - -"@tsconfig/node10@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" - integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/async-retry@^1.4.8": - version "1.4.8" - resolved "https://registry.yarnpkg.com/@types/async-retry/-/async-retry-1.4.8.tgz#eb32df13aceb9ba1a8a80e7fe518ff4e3fe46bb3" - integrity sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA== - dependencies: - "@types/retry" "*" - -"@types/debug@^4.1.8": - version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - dependencies: - "@types/ms" "*" - -"@types/ms@*": - version "0.7.34" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== - -"@types/node@*": - version "22.4.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.4.0.tgz#c295fe1d6f5f58916cc61dbef8cf65b5b9b71de9" - integrity sha512-49AbMDwYUz7EXxKU/r7mXOsxwFr4BYbvB7tWYxVuLdb2ibd30ijjXINSMAHiEEZk5PCRBmW1gUeisn2VMKt3cQ== - dependencies: - undici-types "~6.19.2" - -"@types/node@18.15.13": - version "18.15.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" - integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== - -"@types/node@^18.7.23": - version "18.19.44" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.44.tgz#875a8322d17ff12bf82b3af8c07b9310a00e72f8" - integrity sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA== - dependencies: - undici-types "~5.26.4" - -"@types/retry@*": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.5.tgz#f090ff4bd8d2e5b940ff270ab39fd5ca1834a07e" - integrity sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw== - -"@types/validator@^13.7.17": - version "13.12.0" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.12.0.tgz#1fe4c3ae9de5cf5193ce64717c99ef2fa7d8756f" - integrity sha512-nH45Lk7oPIJ1RVOF6JgFI6Dy0QpHEzq4QecZhvguxYPDwT8c93prCMqAtiIttm39voZ+DDR+qkNnMpJmMBRqag== - -acorn-walk@^8.1.1: - version "8.3.3" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" - integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== - -aes-js@4.0.0-beta.5: - version "4.0.0-beta.5" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" - integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== - -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -async-retry@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== - dependencies: - retry "0.13.1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -axios@^1.6.5: - version "1.7.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" - integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bignumber.js@^9.1.0: - version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" - integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== - -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bowser@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" - integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== - dependencies: - restore-cursor "^2.0.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.5.0: - version "2.9.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" - integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - dependencies: - node-fetch "^2.6.12" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.4: - version "4.3.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== - dependencies: - ms "2.1.2" - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dotenv@^16.0.3: - version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" - integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== - -dottie@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.6.tgz#34564ebfc6ec5e5772272d466424ad5b696484d4" - integrity sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -ethers@^6.0.0, ethers@^6.9.2: - version "6.13.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" - integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== - dependencies: - "@adraffy/ens-normalize" "1.10.1" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@types/node" "18.15.13" - aes-js "4.0.0-beta.5" - tslib "2.4.0" - ws "8.17.1" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extract-files@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" - integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== - -fast-xml-parser@4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz#86dbf3f18edf8739326447bcaac31b4ae7f6514f" - integrity sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw== - dependencies: - strnum "^1.0.5" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== - dependencies: - escape-string-regexp "^1.0.5" - -figures@^3.0.0, figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -follow-redirects@^1.15.6: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== - -foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fuzzy@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" - integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== - -glob@^10.3.10: - version "10.4.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" - integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -graphql-request@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.1.0.tgz#dbc8feee27d21b993cd5da2d3af67821827b240a" - integrity sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - cross-fetch "^3.1.5" - extract-files "^9.0.0" - form-data "^3.0.0" - -graphql@^16.6.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" - integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hpagent@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-1.2.0.tgz#0ae417895430eb3770c03443456b8d90ca464903" - integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inflection@^1.13.4: - version "1.13.4" - resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.13.4.tgz#65aa696c4e2da6225b148d7a154c449366633a32" - integrity sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw== - -inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inquirer-autocomplete-prompt@^1.0.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz#e767592f747e3d5bb6336fe71fb4094352e4c317" - integrity sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw== - dependencies: - ansi-escapes "^4.3.1" - chalk "^4.0.0" - figures "^3.2.0" - run-async "^2.4.0" - rxjs "^6.6.2" - -inquirer-fuzzy-path@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/inquirer-fuzzy-path/-/inquirer-fuzzy-path-2.3.0.tgz#9bc51dc47d7d9c7eb53daac7fd7c9e615eb040c5" - integrity sha512-zfHC/97GSkxKKM7IctZM22x1sVi+FYBh9oaHTmI7Er/GKFpNykUgtviTmqqpiFQs5yJoSowxbT0PHy6N+H+QRg== - dependencies: - ansi-styles "^3.2.1" - fuzzy "^0.1.3" - inquirer "^6.0.0" - inquirer-autocomplete-prompt "^1.0.2" - strip-ansi "^4.0.0" - -inquirer@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -inquirer@^8.0.0: - version "8.2.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" - integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^6.0.1" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -lodash@^4.17.12, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimatch@^9.0.4: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -moment-timezone@^0.5.43: - version "0.5.45" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" - integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== - dependencies: - moment "^2.29.4" - -moment@^2.29.4: - version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" - integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -node-fetch@^2.6.12: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -p-limit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -package-json-from-dist@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" - integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pg-cloudflare@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" - integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== - -pg-connection-string@^2.6.1, pg-connection-string@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" - integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-pool@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" - integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== - -pg-protocol@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" - integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== - -pg-types@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg@^8.11.3: - version "8.12.0" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" - integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== - dependencies: - pg-connection-string "^2.6.4" - pg-pool "^3.6.2" - pg-protocol "^1.6.1" - pg-types "^2.1.0" - pgpass "1.x" - optionalDependencies: - pg-cloudflare "^1.1.1" - -pgpass@1.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" - integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== - dependencies: - split2 "^4.1.0" - -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== - -postgres-date@~1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" - integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -retry-as-promised@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-7.0.4.tgz#9df73adaeea08cb2948b9d34990549dc13d800a2" - integrity sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA== - -retry@0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -run-async@^2.2.0, run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -rxjs@^6.4.0, rxjs@^6.6.2: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.5.5: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -secure-json-parse@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" - integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== - -semver@^7.5.4: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -sequelize-pool@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-7.1.0.tgz#210b391af4002762f823188fd6ecfc7413020768" - integrity sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg== - -sequelize@^6.36.0: - version "6.37.3" - resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.37.3.tgz#ed6212029a52c59a18638d2a703da84bc2f81311" - integrity sha512-V2FTqYpdZjPy3VQrZvjTPnOoLm0KudCRXfGWp48QwhyPPp2yW8z0p0sCYZd/em847Tl2dVxJJ1DR+hF+O77T7A== - dependencies: - "@types/debug" "^4.1.8" - "@types/validator" "^13.7.17" - debug "^4.3.4" - dottie "^2.0.6" - inflection "^1.13.4" - lodash "^4.17.21" - moment "^2.29.4" - moment-timezone "^0.5.43" - pg-connection-string "^2.6.1" - retry-as-promised "^7.0.4" - semver "^7.5.4" - sequelize-pool "^7.1.0" - toposort-class "^1.0.1" - uuid "^8.3.2" - validator "^13.9.0" - wkx "^0.5.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -split2@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strnum@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" - integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -toposort-class@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988" - integrity sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tron-format-address@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/tron-format-address/-/tron-format-address-0.1.12.tgz#4c6b6ba717a57424e9d12343b1fce0e466690362" - integrity sha512-dtlfwSZEdWA9Cj3Mqypw/WNhQPlQf5JWT+/H5gYX5Viu+ntIq+7zJvcWCrmcDJ48L0EHt2xzGme2eErW9Y7spQ== - -ts-node@^10.9.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -typescript@^5.0.0: - version "5.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -undici-types@~6.19.2: - version "6.19.6" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.6.tgz#e218c3df0987f4c0e0008ca00d6b6472d9b89b36" - integrity sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org== - -undici@^6.12.0: - version "6.19.7" - resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.7.tgz#7d4cf26dc689838aa8b6753a3c5c4288fc1e0216" - integrity sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A== - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -validator@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" - integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wkx@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.5.0.tgz#c6c37019acf40e517cc6b94657a25a3d4aa33e8c" - integrity sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg== - dependencies: - "@types/node" "*" - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@8.17.1: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 548d3d964e11c1285c216539f7b56d48a410c5e1 Mon Sep 17 00:00:00 2001 From: realdealshaman Date: Thu, 22 Aug 2024 15:09:21 +0100 Subject: [PATCH 184/237] update chain --- fees/illuvium.ts | 2 +- helpers/chains.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/fees/illuvium.ts b/fees/illuvium.ts index ced47a22c6..993f613312 100644 --- a/fees/illuvium.ts +++ b/fees/illuvium.ts @@ -31,7 +31,7 @@ const fetchFees = async (options: FetchOptions) => { const adapter: Adapter = { version: 2, adapter: { - "immutablex": { + [CHAIN.IMMUTABLEX]: { fetch: fetchFees, start: 0, meta: { diff --git a/helpers/chains.ts b/helpers/chains.ts index 5b43632433..96f6b47760 100644 --- a/helpers/chains.ts +++ b/helpers/chains.ts @@ -161,6 +161,7 @@ export enum CHAIN { IOTAEVM = "iotaevm", ZKLINK = "zklink", DEXALOT = "dexalot", + IMMUTABLEX = "immutablex" } // Don´t use From 6c9e4907dcffede64cff3194ddcb31af4c0f10a4 Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Thu, 22 Aug 2024 16:20:38 +0200 Subject: [PATCH 185/237] feat:Adapter, Paxos-Gold (Fees) --- fees/paxos-gold/index.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 fees/paxos-gold/index.ts diff --git a/fees/paxos-gold/index.ts b/fees/paxos-gold/index.ts new file mode 100644 index 0000000000..2270017707 --- /dev/null +++ b/fees/paxos-gold/index.ts @@ -0,0 +1,36 @@ +import { Adapter, FetchOptions, FetchResultV2 } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; + +const PAXG = "0x45804880de22913dafe09f4980848ece6ecbaf78"; + +const eventAbi = `event FeeCollected( + address indexed from, + address indexed to, + uint256 value +)`; + +const fetch = async ({ + getLogs, + createBalances, +}: FetchOptions): Promise => { + const dailyFees = createBalances(); + const logs = await getLogs({ target: PAXG, eventAbi }); + + logs.forEach(([_from, _to, fee]) => { + dailyFees.add(PAXG, fee); + }); + + return { dailyFees }; +}; + +const adapter: Adapter = { + version: 2, + adapter: { + [CHAIN.ETHEREUM]: { + fetch, + start: 1704063600, + }, + }, +}; + +export default adapter; From 93d060102f43825ffba128873a81422f0b8eb255 Mon Sep 17 00:00:00 2001 From: Nicolas Zozol Date: Thu, 22 Aug 2024 15:26:19 +0200 Subject: [PATCH 186/237] update: and chains Scroll, mantle and linea update: adding chains Scroll, mantle and linea --- dexs/swaap/index.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/dexs/swaap/index.ts b/dexs/swaap/index.ts index ec51ccd072..6e562f234a 100644 --- a/dexs/swaap/index.ts +++ b/dexs/swaap/index.ts @@ -55,6 +55,25 @@ const config:Record = { id: '2', firstDayVolume: 0 }, + [CHAIN.SCROLL]: { + api: "https://api.goldsky.com/api/public/project_clws2t7g7ae9c01xsbnu80a51/subgraphs/swaapv2-scroll/prod/gn", + start: 1719508309, + id: '2', + firstDayVolume: 0 + }, + [CHAIN.LINEA]: { + api: "https://api.goldsky.com/api/public/project_clws2t7g7ae9c01xsbnu80a51/subgraphs/swaapv2-linea/prod/gn", + start: 1719507890, + id: '2', + firstDayVolume: 0 + }, + [CHAIN.MANTLE]: { + api: "https://api.goldsky.com/api/public/project_clws2t7g7ae9c01xsbnu80a51/subgraphs/swaapv2-linea/prod/gn", + start: 1719508654, + id: '2', + firstDayVolume: 0 + }, + } interface Data { @@ -170,6 +189,18 @@ const adapter: BreakdownAdapter = { fetch: v2graphs, start: 1714652681, }, + [CHAIN.SCROLL]: { + fetch: v2graphs, + start: 1719508309, + }, + [CHAIN.LINEA]: { + fetch: v2graphs, + start: 1719507890, + }, + [CHAIN.MANTLE]: { + fetch: v2graphs, + start: 1719508654, + }, } } From c0885f58d9c40cb8b0bc188824153a8c40f984b2 Mon Sep 17 00:00:00 2001 From: "mikhail.d" Date: Thu, 22 Aug 2024 17:22:13 +0200 Subject: [PATCH 187/237] Add aquarius adapter --- dexs/aqua-network/index.ts | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 dexs/aqua-network/index.ts diff --git a/dexs/aqua-network/index.ts b/dexs/aqua-network/index.ts new file mode 100644 index 0000000000..f2150973c3 --- /dev/null +++ b/dexs/aqua-network/index.ts @@ -0,0 +1,41 @@ +import fetchURL from "../../utils/fetchURL" +import { SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; + +const AQUA_VOLUME_ENDPOINT = "https://amm-api.aqua.network/api/external/v1/statistics/totals/?size=all" + +interface IVolumeAll { + volume: number; + tvl: number; + date: string; +} + +const fetch = async (timestamp: number) => { + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date(timestamp * 1000)) + const historicalVolume: IVolumeAll[] = (await fetchURL(AQUA_VOLUME_ENDPOINT)); + + const totalVolume = historicalVolume + .filter(volItem => (new Date(volItem.date).getTime() / 1000) <= dayTimestamp) + .reduce((acc, { volume }) => acc + Number(volume), 0) + + const dailyVolume = historicalVolume + .find(dayItem => (new Date(dayItem.date).getTime() / 1000) === dayTimestamp)?.volume + + return { + totalVolume: `${totalVolume / 10e7}`, + dailyVolume: dailyVolume ? `${Number(dailyVolume) / 10e7}` : undefined, + timestamp: dayTimestamp, + }; +}; + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.STELLAR]: { + fetch, + start: 1719792000, + }, + }, +}; + +export default adapter; From 477e4e96fd53436af5e14a39ddc1f485dbdb6d5e Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Thu, 22 Aug 2024 17:35:19 +0200 Subject: [PATCH 188/237] feat:Adapter, Franklin (Fees) --- fees/franklin-templeton/index.ts | 82 ++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 fees/franklin-templeton/index.ts diff --git a/fees/franklin-templeton/index.ts b/fees/franklin-templeton/index.ts new file mode 100644 index 0000000000..0a9692a8dc --- /dev/null +++ b/fees/franklin-templeton/index.ts @@ -0,0 +1,82 @@ +// https://www.franklintempleton.com/investments/options/money-market-funds/products/29386/SINGLCLASS/franklin-on-chain-u-s-government-money-fund/FOBXX#distributions + +import { ChainApi } from "@defillama/sdk"; +import { Chain } from "@defillama/sdk/build/general"; +import axios from "axios"; +import { + Adapter, + Fetch, + FetchOptions, + FetchResultFees, +} from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import ADDRESSES from "../../helpers/coreAssets.json"; + +const CONFIG: Record = { + [CHAIN.POLYGON]: "0x408a634b8a8f0de729b48574a3a7ec3fe820b00a", + [CHAIN.STELLAR]: + "BENJI-GBHNGLLIE3KWGKCHIKMHJ5HVZHYIK7WTBE4QF5PLAKL4CJGSEU7HZIW5", +}; + +const EXPENSE_LIMITATION_TIMESTAMP = 1754006400; // 08/2025 +const GROSS_EXPENSE_YEAR = 0.0026; +const NET_EXPENSE_YEAR = 0.002; + +const stellarAUM = async (token: string): Promise => { + const stellarApi = `https://api.stellar.expert/explorer/public/asset/${token}`; + const { data } = await axios.get(stellarApi); + const { supply, toml_info } = data; + const adjustedSupply = supply / 10 ** (toml_info.decimals - 6); + return adjustedSupply; +}; + +const polygonAUM = async (token: string, api: ChainApi): Promise => { + const [decimals, supply] = await Promise.all([ + api.call({ target: token, abi: "erc20:decimals" }), + api.call({ target: token, abi: "erc20:totalSupply" }), + ]); + + const adjustedSupplyInUSDT = supply / 10 ** (decimals - 6); + return adjustedSupplyInUSDT; +}; + +const fetch = async ( + timestamp: number, + _: any, + { api, createBalances, endTimestamp }: FetchOptions, + token: string +): Promise => { + const dailyFees = createBalances(); + let supply: number = 0; + + if (api.chain === "polygon") supply = await polygonAUM(token, api); + if (api.chain === "stellar") supply = await stellarAUM(token); + + const expenseRatio = + endTimestamp < EXPENSE_LIMITATION_TIMESTAMP + ? NET_EXPENSE_YEAR + : GROSS_EXPENSE_YEAR; + + const dailySupply = (supply * expenseRatio) / 365; + dailyFees.add(ADDRESSES.ethereum.USDT, dailySupply, { skipChain: true }); + + return { timestamp, dailyFees }; +}; + +const adapter: Adapter = { + timetravel: false, + adapter: { + [CHAIN.POLYGON]: { + fetch: (...args: Parameters) => + fetch(...args, CONFIG[CHAIN.POLYGON]), + start: 1696370400, + }, + [CHAIN.STELLAR]: { + fetch: (...args: Parameters) => + fetch(...args, CONFIG[CHAIN.STELLAR]), + start: 1696370400, + }, + }, +}; + +export default adapter; From 399a4d7806d4fd8a9d203e9ef8bf730b2888dce9 Mon Sep 17 00:00:00 2001 From: Darruma Date: Thu, 22 Aug 2024 21:39:12 +0100 Subject: [PATCH 189/237] add fees for bcraft clans and mines --- fees/bcraft.ts | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 fees/bcraft.ts diff --git a/fees/bcraft.ts b/fees/bcraft.ts new file mode 100644 index 0000000000..e44d628cc3 --- /dev/null +++ b/fees/bcraft.ts @@ -0,0 +1,47 @@ +import { Adapter, FetchV2 } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; + +const adapter: Adapter = { + adapter: { + [CHAIN.BASE]: { + fetch: (async ({ getLogs, createBalances }) => { + const dailyFees = createBalances(); + const dailyRevenue = createBalances(); + const coinBuyLogs = await getLogs({ + target: "0x7BaEA50509d5d742909592CF045101526b306bE4", + eventAbi: + "event MineUpgraded(address indexed user, uint256 newLevel, uint256 cost)", + }); + coinBuyLogs.map((e: any) => { + dailyFees.addGasToken(e.cost); + dailyRevenue.addGasToken(e.cost); + }); + const buySharesLogs = await getLogs({ + target: "0x0De0D0cF717af57D2101F6Be0962fA890c1FBeC6", + eventAbi: + "event BuyClanShare(address indexed buyer, uint256 indexed clanId, uint256 amount, uint256 price, uint256 protocolFee, uint256 subjectFee)", + }); + buySharesLogs.map((e: any) => { + dailyFees.addGasToken(e.protocolFee); + dailyRevenue.addGasToken(e.protocolFee); + }); + + const sellSharesLogs = await getLogs({ + target: "0x0De0D0cF717af57D2101F6Be0962fA890c1FBeC6", + eventAbi: + "event SellClanShare(address indexed seller, uint256 indexed clanId, uint256 amount, uint256 price, uint256 protocolFee, uint256 subjectFee)", + }); + sellSharesLogs.map((e: any) => { + dailyFees.addGasToken(e.protocolFee); + dailyRevenue.addGasToken(e.protocolFee); + }); + + return { dailyFees, dailyRevenue }; + }) as FetchV2, + start: 18607509, + }, + }, + version: 2, +}; + +export default adapter; From 49f12e42abde48fcabbf6e867f8262f029ec8dc6 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Thu, 22 Aug 2024 22:00:50 +0100 Subject: [PATCH 190/237] incorrect v2 adapter --- dexs/gmx-v2/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/dexs/gmx-v2/index.ts b/dexs/gmx-v2/index.ts index 70dd58952d..32fda6101c 100644 --- a/dexs/gmx-v2/index.ts +++ b/dexs/gmx-v2/index.ts @@ -70,7 +70,6 @@ const methodology = { } const adapter: BreakdownAdapter = { - version: 2, breakdown: { "gmx-v2-swap": Object.keys(endpoints).reduce((acc, chain) => { return { From d7f4be0f916db272ad081cf0c5f3a8ec6b4a985e Mon Sep 17 00:00:00 2001 From: TerrenceAddison Date: Fri, 23 Aug 2024 12:22:40 +0700 Subject: [PATCH 191/237] add daily volumes --- options/arrow-markets/index.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/options/arrow-markets/index.ts b/options/arrow-markets/index.ts index 37b22d4bd0..2a1d0e51f1 100644 --- a/options/arrow-markets/index.ts +++ b/options/arrow-markets/index.ts @@ -3,6 +3,8 @@ import fetchURL from "../../utils/fetchURL"; import { CHAIN } from "../../helpers/chains"; interface ArrowMarketsVolumeResponse { + daily_notional_volume: string; + daily_premium_volume: string; total_notional_volume: string; } @@ -25,10 +27,14 @@ export async function fetchArrowMarketsVolumeData( let timestamp_in_ms = timestamp * 1000 const ArrowMarketsVolumeData = await getArrowMarketsVolumeData(arrowMarketsVolumeEndpoint); + const dailyPremiumVolume = Number(ArrowMarketsVolumeData.daily_premium_volume).toFixed(2); + const dailyNotionalVolume = Number(ArrowMarketsVolumeData.daily_notional_volume).toFixed(2); const totalNotionalVolume = Number(ArrowMarketsVolumeData.total_notional_volume).toFixed(2); return { timestamp, + dailyNotionalVolume, + dailyPremiumVolume, totalNotionalVolume, }; } From 33f24417f5f7341590130d69d58777b899368aae Mon Sep 17 00:00:00 2001 From: David Cumps Date: Fri, 23 Aug 2024 15:46:12 +0200 Subject: [PATCH 192/237] feat: add chainflip dexs --- dexs/chainflip/index.ts | 32 ++++++++++++++++++++++++++++++++ helpers/chains.ts | 3 ++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 dexs/chainflip/index.ts diff --git a/dexs/chainflip/index.ts b/dexs/chainflip/index.ts new file mode 100644 index 0000000000..c7045cb633 --- /dev/null +++ b/dexs/chainflip/index.ts @@ -0,0 +1,32 @@ +import { SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { httpGet } from "../../utils/fetchURL"; + +const dimensionsEndpoint = "https://chainflip-broker.io/defillama/dexs" + +const fetch = async (timestamp: number) => { + const dimensionsData = await httpGet(`${dimensionsEndpoint}?timestamp=${timestamp}`, { headers: {"x-client-id": "defillama"}}); + + return { + timestamp: dimensionsData.timestamp, + dailyVolume: dimensionsData.dailyVolume, + totalVolume: dimensionsData.totalVolume + }; +}; + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.CHAINFLIP]: { + fetch, + start: 1700740800, // FLIP went live on 2023-11-23 12:00 UTC + runAtCurrTime: true, + meta: { + methodology: { + Volume: "Deposit value of a swap.", + } + } + }, + }, +}; + +export default adapter; diff --git a/helpers/chains.ts b/helpers/chains.ts index 96f6b47760..058d0bf155 100644 --- a/helpers/chains.ts +++ b/helpers/chains.ts @@ -161,7 +161,8 @@ export enum CHAIN { IOTAEVM = "iotaevm", ZKLINK = "zklink", DEXALOT = "dexalot", - IMMUTABLEX = "immutablex" + IMMUTABLEX = "immutablex", + CHAINFLIP = "chainflip" } // Don´t use From e9469f8fbf1a98b183eb0a3dd777cec3680dc664 Mon Sep 17 00:00:00 2001 From: David Cumps Date: Fri, 23 Aug 2024 23:02:45 +0200 Subject: [PATCH 193/237] feat: add chainflip fees adapter --- fees/chainflip/index.ts | 57 +++++++++++++++++++++++++++++++++++++++++ helpers/chains.ts | 3 ++- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 fees/chainflip/index.ts diff --git a/fees/chainflip/index.ts b/fees/chainflip/index.ts new file mode 100644 index 0000000000..edf64f7123 --- /dev/null +++ b/fees/chainflip/index.ts @@ -0,0 +1,57 @@ +import { SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { httpGet } from "../../utils/fetchURL"; + +const dimensionsEndpoint = "https://chainflip-broker.io/defillama/fees" + +const fetch = async (timestamp: number) => { + const dimensionsData = await httpGet(`${dimensionsEndpoint}?timestamp=${timestamp}`, { headers: {"x-client-id": "defillama"}}); + + return { + timestamp: timestamp, + + // All fees and value collected from all sources, this also includes liquid staking rewards, generated yields and possible mint and burn fees paid by LP (but not transaction or gas fees). + dailyFees: dimensionsData.dailyFees, + + // Fees paid by protocol users excluding gas fees. This includes swap fees to open/close positions, borrow fees and all fees user has to pay. + dailyUserFees: dimensionsData.dailyUserFees, + + // (FLIP Burn) Revenue of the protocol governance, this includes treasury and gov token holders + dailyRevenue: dimensionsData.dailyRevenue, + + // Value earned by liquidity providers + dailySupplySideRevenue: dimensionsData.dailySupplySideRevenue, + + // Cumulative value of dailyFees + totalFees: dimensionsData.totalFees, + + // Cumulative value of dailyUserFees + totalUserFees: dimensionsData.totalUserFees, + + // Cumulative value of dailyRevenue + totalRevenue: dimensionsData.totalRevenue, + + // Cumulative value of dailySupplySideRevenue + totalSupplySideRevenue: dimensionsData.totalSupplySideRevenue + }; +}; + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.CHAINFLIP]: { + fetch, + start: 1717113600, // First decent swap was 2024-05-31 09:22:30.000000 + runAtCurrTime: true, + meta: { + methodology: { + Fees: "Ingress, Broker, LP, Protocol and Egress fees.", + UserFees: "Broker, LP, Protocol fees.", + Revenue: "Protocol burns 0.10% of each swap.", + SupplySideRevenue: "LP pools have a 0.05% fee.", + } + } + }, + }, +}; + +export default adapter; diff --git a/helpers/chains.ts b/helpers/chains.ts index 96f6b47760..058d0bf155 100644 --- a/helpers/chains.ts +++ b/helpers/chains.ts @@ -161,7 +161,8 @@ export enum CHAIN { IOTAEVM = "iotaevm", ZKLINK = "zklink", DEXALOT = "dexalot", - IMMUTABLEX = "immutablex" + IMMUTABLEX = "immutablex", + CHAINFLIP = "chainflip" } // Don´t use From 107118d7c006c62353e22b980177bca597c19be2 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Fri, 23 Aug 2024 23:41:35 +0100 Subject: [PATCH 194/237] fix --- dexs/gmx-v2/index.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/dexs/gmx-v2/index.ts b/dexs/gmx-v2/index.ts index 32fda6101c..976328a834 100644 --- a/dexs/gmx-v2/index.ts +++ b/dexs/gmx-v2/index.ts @@ -34,9 +34,7 @@ interface IGraphResponse { const getFetch = (query: string)=> (chain: string): Fetch => async (timestamp: number) => { const dayTimestamp = getUniqStartOfTodayTimestamp(new Date((timestamp * 1000))) const dailyData: IGraphResponse = await request(endpoints[chain], query, { - id: '1d:' + chain === CHAIN.ARBITRUM - ? String(dayTimestamp) - : String(dayTimestamp), + id: '1d:' + String(dayTimestamp), period: '1d', }) const totalData: IGraphResponse = await request(endpoints[chain], query, { From 541674dba4c47522c59269bb92731bae6f8fcb45 Mon Sep 17 00:00:00 2001 From: Strategic Reserve Date: Fri, 23 Aug 2024 17:42:00 -0700 Subject: [PATCH 195/237] Create Xtrade volume --- protocols/xtrade/index.js | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 protocols/xtrade/index.js diff --git a/protocols/xtrade/index.js b/protocols/xtrade/index.js new file mode 100644 index 0000000000..eb9332bbeb --- /dev/null +++ b/protocols/xtrade/index.js @@ -0,0 +1,9 @@ +import { uniV3Exports } from "../helpers/uniswap"; + +const poolEvent = 'event Pool(address indexed token0,address indexed token1,address pool)' +export default uniV3Exports({ + xlayer: { + poolCreatedEvent: poolEvent, + factory: '0x612D9EA08be59479B112D8d400C7F0A2E4aD4172', + }, +}) From 5acdd0d3afdf990464828d1896ff99a5bb746b56 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sat, 24 Aug 2024 12:44:53 +0000 Subject: [PATCH 196/237] fix split block ragg for get fees --- fees/sunpump.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/fees/sunpump.ts b/fees/sunpump.ts index 7373839c28..59dde6ed5b 100644 --- a/fees/sunpump.ts +++ b/fees/sunpump.ts @@ -7,10 +7,18 @@ const adapter: Adapter = { [CHAIN.TRON]: { fetch: (async (options: FetchOptions) => { const dailyFees = options.createBalances(); - const logs = await options.getLogs({ - targets: ['TG9nDZMUtC4LBmrWSdNXNi8xrKzXTMMSKT'], - eventAbi: "event TRXReceived(address indexed from,uint256 amount)", - }) + const start = await options.getFromBlock(); + const end = await options.getToBlock(); + const logs = [] + for(let i = start; i <= end; i+=2000) { + const _logs = await options.getLogs({ + target: 'TG9nDZMUtC4LBmrWSdNXNi8xrKzXTMMSKT', + eventAbi: "event TRXReceived(address indexed from,uint256 amount)", + fromBlock: start, + toBlock: start + 2000, + }) + logs.push(..._logs) + } logs.map((tx: any) => { dailyFees.addGasToken(tx.amount) }) From 887a81a0c8ed49fbadb7547fb040c9d47d8ac548 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sat, 24 Aug 2024 12:53:50 +0000 Subject: [PATCH 197/237] fix dodo fees --- fees/dodo-fees.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fees/dodo-fees.ts b/fees/dodo-fees.ts index 4b77063623..3fed62070f 100644 --- a/fees/dodo-fees.ts +++ b/fees/dodo-fees.ts @@ -21,7 +21,9 @@ const adapter: Adapter = { "Content-Type": "application/json", "user-agent": "insomnia/2022.5.0" }) - const fees = Object.values(pairs.dashboard_pairs_rate_24.pairs).reduce((sum:number, p:any)=>sum+Number(p.fee), 0); + const fees = Object.values(pairs.dashboard_pairs_rate_24.pairs) + .filter((p:any)=> Number(p.tvl) > 1000) + .reduce((sum:number, p:any)=>sum+Number(p.fee), 0); return { timestamp: Date.now()/1e3, dailyFees: fees, From f4a97cdd72be7462755c96b1980ae0bfb0c3a575 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sat, 24 Aug 2024 13:02:52 +0000 Subject: [PATCH 198/237] fix version dodo --- fees/dodo-fees.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/dodo-fees.ts b/fees/dodo-fees.ts index 3fed62070f..3943a283fc 100644 --- a/fees/dodo-fees.ts +++ b/fees/dodo-fees.ts @@ -37,7 +37,7 @@ const adapter: Adapter = { }; const breakdownAdapter: BreakdownAdapter = { - version: 2, + version: 1, breakdown: { "dodo": adapter.adapter } From f7ee9747937daf94495808c37da9f2853fa4165a Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sat, 24 Aug 2024 13:16:01 +0000 Subject: [PATCH 199/237] fix breakdown --- dexs/bmx/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/bmx/index.ts b/dexs/bmx/index.ts index d4d8985683..55839bac91 100644 --- a/dexs/bmx/index.ts +++ b/dexs/bmx/index.ts @@ -235,7 +235,7 @@ const adapter: BreakdownAdapter = { }, }; }, {}), - "derivatives-classic": Object.keys(endpoints).reduce((acc, chain) => { + "derivatives": Object.keys(endpoints).reduce((acc, chain) => { return { ...acc, [chain]: { From e405152c39f9a6095f5c21be6a31b5d6d2272fee Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sat, 24 Aug 2024 13:23:39 +0000 Subject: [PATCH 200/237] bmx --- dexs/bmx-freestyle/index.ts | 115 ++++++++++++++++++++++++++++++++++++ dexs/bmx/index.ts | 77 +----------------------- 2 files changed, 116 insertions(+), 76 deletions(-) create mode 100644 dexs/bmx-freestyle/index.ts diff --git a/dexs/bmx-freestyle/index.ts b/dexs/bmx-freestyle/index.ts new file mode 100644 index 0000000000..6feafeecf3 --- /dev/null +++ b/dexs/bmx-freestyle/index.ts @@ -0,0 +1,115 @@ +import BigNumber from "bignumber.js"; +import { FetchOptions, FetchResultVolume, SimpleAdapter } from "../../adapters/types"; +import request, { gql } from "graphql-request"; +import { CHAIN } from "../../helpers/chains"; + + +const freestyleEndpoints: { [key: string]: string } = { + [CHAIN.BASE]: + "https://api.studio.thegraph.com/query/62454/analytics_base_8_2/version/latest", +}; + +interface IGraphResponseFreestyle { + dailyHistories: Array<{ + tiemstamp: string; + platformFee: string; + accountSource: string; + tradeVolume: string; + }>; + totalHistories: Array<{ + tiemstamp: string; + platformFee: string; + accountSource: string; + tradeVolume: BigNumber; + }>; +} + +interface IGraphResponse { + volumeStats: Array<{ + burn: string; + liquidation: string; + margin: string; + mint: string; + swap: string; + }>; +} + +const ONE_DAY_IN_SECONDS = 60 * 60 * 24; + +const toString = (x: BigNumber) => { + if (x.isEqualTo(0)) return undefined; + return x.toString(); +}; + +const freestyleQuery = gql` + query stats($from: String!, $to: String!) { + dailyHistories( + where: { + timestamp_gte: $from + timestamp_lte: $to + accountSource: "0x6D63921D8203044f6AbaD8F346d3AEa9A2719dDD" + } + ) { + timestamp + platformFee + accountSource + tradeVolume + } + totalHistories( + where: { accountSource: "0x6D63921D8203044f6AbaD8F346d3AEa9A2719dDD" } + ) { + timestamp + platformFee + accountSource + tradeVolume + } + } +`; + +const fetchFreestyleVolume = async (timestamp: number, _t: any, options: FetchOptions): Promise => { + const startTime = options.startOfDay; + const endTime = startTime + ONE_DAY_IN_SECONDS; + const response: IGraphResponseFreestyle = await request( + freestyleEndpoints[options.chain], + freestyleQuery, + { + from: String(startTime), + to: String(endTime), + } + ); + + let dailyVolume = new BigNumber(0); + let totalVolume = new BigNumber(0); + + response.dailyHistories.forEach((data) => { + dailyVolume = dailyVolume.plus(new BigNumber(data.tradeVolume)); + }); + response.totalHistories.forEach((data) => { + totalVolume = totalVolume.plus(new BigNumber(data.tradeVolume)); + }); + + dailyVolume = dailyVolume.dividedBy(new BigNumber(1e18)); + totalVolume = totalVolume.dividedBy(new BigNumber(1e18)); + + const _dailyVolume = toString(dailyVolume); + const _totalVolume = toString(totalVolume); + + + return { + timestamp: timestamp, + dailyVolume: _dailyVolume ?? "0", + totalVolume: _totalVolume ?? "0", + }; + }; + +const adapter: SimpleAdapter = { + version: 1, + adapter: { + [CHAIN.BASE]: { + fetch: fetchFreestyleVolume, + start: 0 + } + } +} + +export default adapter; diff --git a/dexs/bmx/index.ts b/dexs/bmx/index.ts index 55839bac91..cc1802ef7a 100644 --- a/dexs/bmx/index.ts +++ b/dexs/bmx/index.ts @@ -1,18 +1,12 @@ import request, { gql } from "graphql-request"; import { BreakdownAdapter, - Fetch, - FetchResultVolume, + Fetch } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; import BigNumber from "bignumber.js"; -const ONE_DAY_IN_SECONDS = 60 * 60 * 24; -const toString = (x: BigNumber) => { - if (x.isEqualTo(0)) return undefined; - return x.toString(); -}; const startTimestamps: { [chain: string]: number } = { [CHAIN.BASE]: 1694304000, @@ -53,30 +47,6 @@ const historicalOI = gql` } } `; -const freestyleQuery = gql` - query stats($from: String!, $to: String!) { - dailyHistories( - where: { - timestamp_gte: $from - timestamp_lte: $to - accountSource: "0x6D63921D8203044f6AbaD8F346d3AEa9A2719dDD" - } - ) { - timestamp - platformFee - accountSource - tradeVolume - } - totalHistories( - where: { accountSource: "0x6D63921D8203044f6AbaD8F346d3AEa9A2719dDD" } - ) { - timestamp - platformFee - accountSource - tradeVolume - } - } -`; interface IGraphResponse { volumeStats: Array<{ @@ -184,45 +154,6 @@ const getFetch = }; }; -const fetchFreestyleVolume = - (query: string) => - (chain: string): Fetch => - async (timestamp: number): Promise => { - const response: IGraphResponseFreestyle = await request( - freestyleEndpoints[chain], - query, - { - from: String(timestamp - ONE_DAY_IN_SECONDS), - to: String(timestamp), - } - ); - - let dailyVolume = new BigNumber(0); - let totalVolume = new BigNumber(0); - - response.dailyHistories.forEach((data) => { - dailyVolume = dailyVolume.plus(new BigNumber(data.tradeVolume)); - }); - response.totalHistories.forEach((data) => { - totalVolume = totalVolume.plus(new BigNumber(data.tradeVolume)); - }); - - dailyVolume = dailyVolume.dividedBy(new BigNumber(1e18)); - totalVolume = totalVolume.dividedBy(new BigNumber(1e18)); - - const _dailyVolume = toString(dailyVolume); - const _totalVolume = toString(totalVolume); - - const dayTimestamp = getUniqStartOfTodayTimestamp( - new Date(timestamp * 1000) - ); - - return { - timestamp: dayTimestamp, - dailyVolume: _dailyVolume ?? "0", - totalVolume: _totalVolume ?? "0", - }; - }; const adapter: BreakdownAdapter = { breakdown: { @@ -244,12 +175,6 @@ const adapter: BreakdownAdapter = { }, }; }, {}), - "derivatives-freestyle": { - [CHAIN.BASE]: { - fetch: fetchFreestyleVolume(freestyleQuery)(CHAIN.BASE), - start: 1714681913, - }, - }, }, }; From d74a711e1cab55e490a4300629bf72b819e589fd Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sat, 24 Aug 2024 14:08:21 +0000 Subject: [PATCH 201/237] fix allow null --- dexs/bmx/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dexs/bmx/index.ts b/dexs/bmx/index.ts index cc1802ef7a..ce071df1b9 100644 --- a/dexs/bmx/index.ts +++ b/dexs/bmx/index.ts @@ -108,13 +108,13 @@ const getFetch = } ); dailyOpenInterest = - Number(tradingStats.tradingStats[0].longOpenInterest) + - Number(tradingStats.tradingStats[0].shortOpenInterest); + Number(tradingStats.tradingStats[0]?.longOpenInterest || 0) + + Number(tradingStats.tradingStats[0]?.shortOpenInterest || 0); dailyLongOpenInterest = Number( - tradingStats.tradingStats[0].longOpenInterest + tradingStats.tradingStats[0]?.longOpenInterest || 0 ); dailyShortOpenInterest = Number( - tradingStats.tradingStats[0].shortOpenInterest + tradingStats.tradingStats[0]?.shortOpenInterest || 0 ); } From d76d688c541a876bb70e98c8d9c5294b1c5f38dd Mon Sep 17 00:00:00 2001 From: realdealshaman Date: Sat, 24 Aug 2024 20:09:33 +0100 Subject: [PATCH 202/237] trigger --- fees/dexscreener.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fees/dexscreener.ts b/fees/dexscreener.ts index 1bd67e033d..042413725e 100644 --- a/fees/dexscreener.ts +++ b/fees/dexscreener.ts @@ -40,12 +40,12 @@ const adapter: Adapter = { ...all, [chain]: { fetch: eth, - start: 0, + start: 1709251200, } }), { [CHAIN.SOLANA]: { fetch: sol, - start: 0 + start: 1709251200 } }), isExpensiveAdapter: true From 88b08cf735df4519a52acdd655dc484666a13e73 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 25 Aug 2024 10:06:01 +0000 Subject: [PATCH 203/237] disab;e terra --- aggregators/hallswap/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aggregators/hallswap/index.ts b/aggregators/hallswap/index.ts index 31dcc6182b..92642ead0c 100644 --- a/aggregators/hallswap/index.ts +++ b/aggregators/hallswap/index.ts @@ -19,7 +19,7 @@ const CHAINS = { osmosis: "osmosis", sei: "sei", solana: "solana", - terra: "terraclassic", + // terra: "terraclassic", terra2: "terra", } as const; // Number of milliseconds in a day (24 hours) From 48b36fcf9c0c87921144d3546d21192bd725ad3a Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 25 Aug 2024 11:54:51 +0000 Subject: [PATCH 204/237] change to ts file --- protocols/xtrade/{index.js => index.ts} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename protocols/xtrade/{index.js => index.ts} (81%) diff --git a/protocols/xtrade/index.js b/protocols/xtrade/index.ts similarity index 81% rename from protocols/xtrade/index.js rename to protocols/xtrade/index.ts index eb9332bbeb..6fd277379e 100644 --- a/protocols/xtrade/index.js +++ b/protocols/xtrade/index.ts @@ -1,4 +1,4 @@ -import { uniV3Exports } from "../helpers/uniswap"; +import { uniV3Exports } from '../../helpers/uniswap' const poolEvent = 'event Pool(address indexed token0,address indexed token1,address pool)' export default uniV3Exports({ From ad4cb33ac589508c3fc1e73193636a6343541958 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 25 Aug 2024 15:41:45 +0000 Subject: [PATCH 205/237] set number of retry --- helpers/getBlock.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/helpers/getBlock.ts b/helpers/getBlock.ts index 60667616d0..c941b295eb 100644 --- a/helpers/getBlock.ts +++ b/helpers/getBlock.ts @@ -82,15 +82,15 @@ async function getBlock(timestamp: number, chain: Chain, chainBlocks = {} as Cha if (chain === CHAIN.CELO) block = Number((await retry(async () => (await httpGet("https://explorer.celo.org/api?module=block&action=getblocknobytime×tamp=" + timestamp + "&closest=before").catch((e) => { throw new Error(`Error getting block: ${chain} ${timestamp} ${e.message}`) - }))?.result?.blockNumber))); + }))?.result?.blockNumber, { retries: 3 }))); else if (chain === CHAIN.KAVA) block = Number((await retry(async () => (await httpGet(`https://explorer.kava.io/api?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before`).catch((e) => { throw new Error(`Error getting block: ${chain} ${timestamp} ${e.message}`) - }))?.result?.blockNumber))); + }))?.result?.blockNumber, { retries: 3 }))); else if (chain === CHAIN.ONUS) block = Number((await retry(async () => (await httpGet(`https://explorer.onuschain.io/api?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before`).catch((e) => { throw new Error(`Error getting block: ${chain} ${timestamp} ${e.message}`) - }))?.result?.blockNumber))); + }))?.result?.blockNumber, { retries: 3 }))); else if (chain as CHAIN === CHAIN.POLYGON_ZKEVM || chain === CHAIN.VISION || chain as CHAIN === CHAIN.ERA) return sdk.api.util.lookupBlock(timestamp, { chain }).then((blockData: any) => blockData.block) // TODO after get block support chain polygon_zkevm then swith to use api https://coins.llama.fi/block else if (chain as CHAIN === CHAIN.WAVES) @@ -100,11 +100,11 @@ async function getBlock(timestamp: number, chain: Chain, chainBlocks = {} as Cha else if (chain === CHAIN.BASE) block = Number((await retry(async () => (await httpGet(`https://base.blockscout.com/api?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before`).catch((e) => { throw new Error(`Error getting block: ${chain} ${timestamp} ${e.message}`) - }))?.result?.blockNumber))); + }))?.result?.blockNumber, { retries: 3 }))); else if (chain === CHAIN.SCROLL) block = Number((await retry(async () => (await httpGet(`https://blockscout.scroll.io/api?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before`).catch((e) => { throw new Error(`Error getting block: ${chain} ${timestamp} ${e.message}`) - }))?.result?.blockNumber))); + }))?.result?.blockNumber, { retries: 3 }))); else block = Number((await retry(async () => (await httpGet(`https://coins.llama.fi/block/${chain}/${timestamp}`, { timeout: 10000 }).catch((e) => { throw new Error(`Error getting block: ${chain} ${timestamp} ${e.message}`) From 7a056b77629f0c693f5222a2547807943480c59e Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Sun, 25 Aug 2024 15:50:46 +0000 Subject: [PATCH 206/237] fix get block --- adapters/types.ts | 2 +- helpers/getBlock.ts | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/adapters/types.ts b/adapters/types.ts index e0bffa5578..7c9f4fa55b 100644 --- a/adapters/types.ts +++ b/adapters/types.ts @@ -181,7 +181,7 @@ export const whitelistedDimensionKeys = new Set([ 'startTimestamp', 'chain', 'timestamp','block', 'dailyVolume', 'totalVolume', 'dailyShortOpenInterest', 'dailyLongOpenInterest', 'dailyOpenInterest', 'dailyBridgeVolume', 'totalBridgeVolume', - 'totalFees', 'dailyFees', 'dailyUserFees', 'totalRevenue', 'dailyRevenue', 'dailyProtocolRevenue', 'dailyHoldersRevenue', 'dailySupplySideRevenue', 'totalProtocolRevenue', 'totalSupplySideRevenue', 'totalUserFees', 'dailyBribesRevenue', 'dailyTokenTaxes', + 'totalFees', 'dailyFees', 'dailyUserFees', 'totalRevenue', 'dailyRevenue', 'dailyProtocolRevenue', 'dailyHoldersRevenue', 'dailySupplySideRevenue', 'totalProtocolRevenue', 'totalSupplySideRevenue', 'totalUserFees', 'dailyBribesRevenue', 'dailyTokenTaxes', 'totalHoldersRevenue', 'tokenIncentives', 'totalPremiumVolume', 'totalNotionalVolume', 'dailyPremiumVolume', 'dailyNotionalVolume', ]) diff --git a/helpers/getBlock.ts b/helpers/getBlock.ts index c941b295eb..045df6420b 100644 --- a/helpers/getBlock.ts +++ b/helpers/getBlock.ts @@ -83,10 +83,6 @@ async function getBlock(timestamp: number, chain: Chain, chainBlocks = {} as Cha block = Number((await retry(async () => (await httpGet("https://explorer.celo.org/api?module=block&action=getblocknobytime×tamp=" + timestamp + "&closest=before").catch((e) => { throw new Error(`Error getting block: ${chain} ${timestamp} ${e.message}`) }))?.result?.blockNumber, { retries: 3 }))); - else if (chain === CHAIN.KAVA) - block = Number((await retry(async () => (await httpGet(`https://explorer.kava.io/api?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before`).catch((e) => { - throw new Error(`Error getting block: ${chain} ${timestamp} ${e.message}`) - }))?.result?.blockNumber, { retries: 3 }))); else if (chain === CHAIN.ONUS) block = Number((await retry(async () => (await httpGet(`https://explorer.onuschain.io/api?module=block&action=getblocknobytime×tamp=${timestamp}&closest=before`).catch((e) => { throw new Error(`Error getting block: ${chain} ${timestamp} ${e.message}`) From 3d8ab6a495d46cac80ee8e2280c8d2fe2642be80 Mon Sep 17 00:00:00 2001 From: marsclimber0109 Date: Mon, 26 Aug 2024 16:26:06 +0900 Subject: [PATCH 207/237] feat: add linea and cronos chain for eisen --- aggregators/eisen/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/aggregators/eisen/index.ts b/aggregators/eisen/index.ts index 1a9f373954..924a800768 100644 --- a/aggregators/eisen/index.ts +++ b/aggregators/eisen/index.ts @@ -18,6 +18,8 @@ const FEE_COLLECTORS: TPool = { [CHAIN.MANTLE]: ["0x31d6F212142D3B222EF11c9eBB6AF3569b8442EE"], [CHAIN.BLAST]: ["0xd57Ed7F46D64Ec7b6f04E4A8409D88C55Ef8AA3b"], [CHAIN.BITLAYER]: ["0x5722c0B501e7B9880F9bB13A14217851e45C454f"], + [CHAIN.LINEA]: ["0x206168f099013b9eAb979d3520cA00aAD453De55"], + [CHAIN.CRONOS]: ["0x0C15c845C4A970b284c0dd61Bcf01c4DC1117d0F"], }; const START_BLOCKS = { @@ -26,6 +28,8 @@ const START_BLOCKS = { [CHAIN.MANTLE]: 1704067200, [CHAIN.BLAST]: 1704067200, [CHAIN.BITLAYER]: 1704067200, + [CHAIN.LINEA]: 1704067200, + [CHAIN.CRONOS]: 1704067200, }; async function fetch({ getLogs, createBalances, chain }: FetchOptions) { From 0025b019a6146a750965d5992e393c2cde325f63 Mon Sep 17 00:00:00 2001 From: 0xpeluche <0xpeluche@protonmail.com> Date: Mon, 26 Aug 2024 12:24:23 +0200 Subject: [PATCH 208/237] feat:Adapter,Hashnote-usyc (fees) --- fees/hashnote-usyc/index.ts | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 fees/hashnote-usyc/index.ts diff --git a/fees/hashnote-usyc/index.ts b/fees/hashnote-usyc/index.ts new file mode 100644 index 0000000000..ba3911a4a4 --- /dev/null +++ b/fees/hashnote-usyc/index.ts @@ -0,0 +1,55 @@ +// https://usyc.hashnote.com/api/price-reports +// https://usyc.hashnote.com/ + +import axios from "axios"; +import { Adapter, FetchOptions, FetchResultFees } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import ADDRESSES from "../../helpers/coreAssets.json"; + +type IResponse = { + timestamp: string; + fee: number; +}; + +const url: string = "https://usyc.hashnote.com/api/price-reports"; + +const formatTimestampToISO = (timestamp: number | string): string => { + const date = new Date(Number(timestamp) * 1000); + return date.toISOString().split("T")[0]; +}; + +const formatDatasToISO = (datas: IResponse[]): IResponse[] => { + return datas.map(({ timestamp, fee }) => ({ + timestamp: formatTimestampToISO(timestamp), + fee, + })); +}; + +const fetch = async ( + timestamp: number, + _: any, + { createBalances }: FetchOptions +): Promise => { + const dailyFees = createBalances(); + const response = await axios.get(url); + + const datas = formatDatasToISO(response.data.data); + const isoTimestamp = formatTimestampToISO(timestamp); + + const fees = datas.find(({ timestamp }) => timestamp === isoTimestamp); + if (fees) dailyFees.add(ADDRESSES.ethereum.USDC, Math.round(fees.fee) * 1e6); + + return { timestamp, dailyFees }; +}; + +const adapter: Adapter = { + adapter: { + [CHAIN.ETHEREUM]: { + fetch, + start: 1686693600, + runAtCurrTime: false, + }, + }, +}; + +export default adapter; From 8f7bd0fe515550e6ade9060bbcdbdcfbca05c6e2 Mon Sep 17 00:00:00 2001 From: realdealshaman Date: Mon, 26 Aug 2024 14:43:56 +0100 Subject: [PATCH 209/237] revert change to start timestamp --- fees/dexscreener.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fees/dexscreener.ts b/fees/dexscreener.ts index 042413725e..1bd67e033d 100644 --- a/fees/dexscreener.ts +++ b/fees/dexscreener.ts @@ -40,12 +40,12 @@ const adapter: Adapter = { ...all, [chain]: { fetch: eth, - start: 1709251200, + start: 0, } }), { [CHAIN.SOLANA]: { fetch: sol, - start: 1709251200 + start: 0 } }), isExpensiveAdapter: true From a41347ab7e42be729d1b1e7dc0c9be41fa6cf4bf Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Mon, 26 Aug 2024 15:48:33 +0000 Subject: [PATCH 210/237] fix add base and tron --- fees/maestro.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fees/maestro.ts b/fees/maestro.ts index ec903238db..8ba7e968a8 100644 --- a/fees/maestro.ts +++ b/fees/maestro.ts @@ -7,6 +7,8 @@ const dispatcher: any = { [CHAIN.ETHEREUM]: "0x2ff99ee6b22aedaefd8fd12497e504b18983cb14", [CHAIN.BSC]: "0x7176456e98443a7000b44e09149a540d06733965", [CHAIN.ARBITRUM]: "0x34b5561c30a152b5882c8924973f19df698470f4", + [CHAIN.BASE]: "0xb0999731f7c2581844658a9d2ced1be0077b7397", + [CHAIN.TRON]: "TS4yvUzwmaSh4XM1scBXRgoKeVdb4oot4S" } const feesAddress = '0xB0999731f7c2581844658A9d2ced1be0077b7397' @@ -58,6 +60,8 @@ const adapter: Adapter = { fetch: fetchSolana, start: 1656633600, // wrong? }, + [CHAIN.BASE]: chainAdapter, + [CHAIN.TRON]: chainAdapter, }, isExpensiveAdapter: true } From b1521384e565f139b556eefbac183ecbdbbcd0c2 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Mon, 26 Aug 2024 19:04:32 +0100 Subject: [PATCH 211/237] add farcaster and separate utils code --- fees/farcaster.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 fees/farcaster.ts diff --git a/fees/farcaster.ts b/fees/farcaster.ts new file mode 100644 index 0000000000..838212b875 --- /dev/null +++ b/fees/farcaster.ts @@ -0,0 +1,20 @@ +import { Adapter } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import { evmReceivedGasAndTokens } from "../helpers/token"; + +const adapter: Adapter = { + version: 2, + isExpensiveAdapter: true, + adapter: { + [CHAIN.OPTIMISM]: { + fetch: evmReceivedGasAndTokens('0x00000000fcce7f938e7ae6d3c335bd6a1a7c593d', []), // actual protocol payments + start: 0, + }, + [CHAIN.BASE]: { + fetch: evmReceivedGasAndTokens('0xbc698ce1933afb2980d4a5a0f85fea1b02fbb1c9', []), // zora rewards + start: 0, + } + } +} + +export default adapter; \ No newline at end of file From e7fbb8a360e3382e9afa1e94c8dd3c251c43c0d3 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Mon, 26 Aug 2024 22:06:12 +0100 Subject: [PATCH 212/237] evmReceivedGasAndTokens --- fees/dextools.ts | 20 +++----------------- helpers/dune.ts | 6 +++--- helpers/token.ts | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/fees/dextools.ts b/fees/dextools.ts index 19d24399e6..c380f7d8b1 100644 --- a/fees/dextools.ts +++ b/fees/dextools.ts @@ -34,8 +34,8 @@ For Tokens created with https://creator.dextools.io, enter "//TOKENCREATOR//" as import { Adapter, FetchOptions } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; -import { queryDune, queryDuneSql } from "../helpers/dune"; -import { addTokensReceived, nullAddress } from '../helpers/token'; +import { queryDune } from "../helpers/dune"; +import { evmReceivedGasAndTokens } from '../helpers/token'; const tokens = { ethereum: [ @@ -47,20 +47,6 @@ const tokens = { base: [] } as any -const evm = async (options: FetchOptions) => { - const receiverWallet = '0x997Cc123cF292F46E55E6E63e806CD77714DB70f' - const dailyFees = await addTokensReceived({ options, tokens: tokens[options.chain], target: receiverWallet }) - const nativeTransfers = await queryDuneSql(options, `select sum(value) as received from CHAIN.transactions - where to = ${receiverWallet} - AND TIME_RANGE`) - dailyFees.add(nullAddress, nativeTransfers[0].received) - - return { - dailyFees, - dailyRevenue: dailyFees, - } -} - const sol = async (options: FetchOptions) => { const dailyFees = options.createBalances(); const value = (await queryDune("3521814", { @@ -81,7 +67,7 @@ const adapter: Adapter = { adapter: [CHAIN.ETHEREUM, CHAIN.BASE, CHAIN.BSC].reduce((all, chain) => ({ ...all, [chain]: { - fetch: evm, + fetch: evmReceivedGasAndTokens('0x997Cc123cF292F46E55E6E63e806CD77714DB70f', tokens[chain]), start: 0, } }), { diff --git a/helpers/dune.ts b/helpers/dune.ts index 11da710219..f70cacd19a 100644 --- a/helpers/dune.ts +++ b/helpers/dune.ts @@ -74,7 +74,7 @@ const submitQuery = async (queryId: string, query_parameters = {}) => { } -export const queryDune = async (queryId: string, query_parameters = {}) => { +export const queryDune = async (queryId: string, query_parameters:any = {}) => { if (Object.keys(query_parameters).length === 0) { const latest_result = await getLatestData(queryId) if (latest_result !== undefined) return latest_result @@ -99,12 +99,12 @@ export const queryDune = async (queryId: string, query_parameters = {}) => { const tableName = { bsc: "bnb", ethereum: "ethereum", - base: "base" + base: "base", } as any export const queryDuneSql = (options:any, query:string) => { return queryDune("3996608", { - fullQuery: query.replace("CHAIN", tableName[options.chain]).replace("TIME_RANGE", `block_time >= from_unixtime(${options.startTimestamp}) + fullQuery: query.replace("CHAIN", tableName[options.chain] ?? options.chain).replace("TIME_RANGE", `block_time >= from_unixtime(${options.startTimestamp}) AND block_time <= from_unixtime(${options.endTimestamp})`) }) } diff --git a/helpers/token.ts b/helpers/token.ts index c7bf258997..a92220a6b8 100644 --- a/helpers/token.ts +++ b/helpers/token.ts @@ -6,6 +6,7 @@ import { getCache, setCache } from "./cache"; import { ethers } from "ethers"; import { getUniqueAddresses } from '@defillama/sdk/build/generalUtil'; import { getEnv } from './env'; +import { queryDuneSql } from './dune'; export const nullAddress = ADDRESSES.null @@ -244,3 +245,21 @@ export async function getTokenDiff(params: { return balances } + + +export const evmReceivedGasAndTokens = (receiverWallet:string, tokens:string[]) => + async (options: FetchOptions) => { + let dailyFees = options.createBalances() + if(tokens.length > 0){ + dailyFees = await addTokensReceived({ options, tokens: tokens, target: receiverWallet }) + } + const nativeTransfers = await queryDuneSql(options, `select sum(value) as received from CHAIN.traces + where to = ${receiverWallet} AND tx_success = TRUE + AND TIME_RANGE`) + dailyFees.add(nullAddress, nativeTransfers[0].received) + + return { + dailyFees, + dailyRevenue: dailyFees, + } +} \ No newline at end of file From 30fe165ca3c29e0748e6a60ff2a3273cd6550981 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 27 Aug 2024 13:38:59 +0000 Subject: [PATCH 213/237] fix dydx v4 fees --- fees/dydx-v4/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/fees/dydx-v4/index.ts b/fees/dydx-v4/index.ts index 2e4e7d0397..a20ffdaa16 100644 --- a/fees/dydx-v4/index.ts +++ b/fees/dydx-v4/index.ts @@ -18,7 +18,6 @@ const fetchFees = async (options: FetchOptions) => { } const adapter: SimpleAdapter = { - version: 2, adapter: { "dydx": { fetch: fetchFees, From a91e6c1bd3686b2f95e311b60d9d6ebc1dcd05d6 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 27 Aug 2024 13:43:50 +0000 Subject: [PATCH 214/237] fix v4 version --- fees/dydx-v4/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fees/dydx-v4/index.ts b/fees/dydx-v4/index.ts index a20ffdaa16..9034580dcd 100644 --- a/fees/dydx-v4/index.ts +++ b/fees/dydx-v4/index.ts @@ -1,11 +1,11 @@ -import { FetchOptions, SimpleAdapter } from '../../adapters/types' +import { ChainBlocks, FetchOptions, SimpleAdapter } from '../../adapters/types' import { httpGet } from '../../utils/fetchURL' interface IFees { day: string sum_tradingfeecollection: string } -const fetchFees = async (options: FetchOptions) => { +const fetchFees = async (timestamp: number, _t: ChainBlocks ,options: FetchOptions) => { const url = 'https://api.lacertalabs.xyz/data/tradingfeecollection' const dateStr = new Date(options.startOfDay * 1000).toISOString().split('T')[0] const res = await httpGet(url) @@ -14,6 +14,7 @@ const fetchFees = async (options: FetchOptions) => { const dailyFees = item.find((i) => i.day.split('T')[0] === dateStr)?.sum_tradingfeecollection return { dailyFees: dailyFees ? dailyFees : undefined, + timestamp: timestamp, } } From c4b1a050388762e47c3f2b8b5e6135279d6d1337 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 27 Aug 2024 15:43:39 +0000 Subject: [PATCH 215/237] init slisbnb --- fees/slisbnb/index.ts | 102 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 fees/slisbnb/index.ts diff --git a/fees/slisbnb/index.ts b/fees/slisbnb/index.ts new file mode 100644 index 0000000000..0c6543c686 --- /dev/null +++ b/fees/slisbnb/index.ts @@ -0,0 +1,102 @@ +import { FetchOptions, SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; + + +const ListaStakeManagerAddress = "0x1adB950d8bB3dA4bE104211D5AB038628e477fE6"; +const HelioETHProvider = "0x0326c157bfF399e25dd684613aEF26DBb40D3BA4" +const MasterVault = "0x986b40C2618fF295a49AC442c5ec40febB26CC54" +const SnBnbYieldConverterStrategy = "0x6F28FeC449dbd2056b76ac666350Af8773E03873" +const CeETHVault = "0xA230805C28121cc97B348f8209c79BEBEa3839C0" +const HayJoin = "0x4C798F81de7736620Cd8e6510158b1fE758e22F7" + +// token +const slibBNB = "0xb0b84d294e0c75a6abe60171b70edeb2efd14a1b" +const weth = "0x4db5a66e937a9f4473fa95b1caf1d1e1d62e29ea" +const bnb = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c" + +const fetch = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const logs_reward = await options.getLogs({ + target: ListaStakeManagerAddress, + eventAbi: "event RewardsCompounded(uint256 _amount)" + }); + + const logs_claim = await options.getLogs({ + target: HelioETHProvider, + eventAbi: "event Claim(address recipient, uint256 amount)" + }); + + const logs_fees_claim = await options.getLogs({ + target: MasterVault, + eventAbi: "event FeeClaimed(address receiver, uint256 amount)" + }); + + const logs_fees_harvested = await options.getLogs({ + target: SnBnbYieldConverterStrategy, + eventAbi: "event Harvested(address to, uint256 amount)" + }); + + const logs_transfer = await options.getLogs({ + target: CeETHVault, + topics: [ + '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', + '0x000000000000000000000000a230805c28121cc97b348f8209c79bebea3839c0', + '0x0000000000000000000000008d388136d578dcd791d081c6042284ced6d9b0c6' + ] + }); + const urs = '0x8d388136d578dCD791D081c6042284CED6d9B0c6'; + const logs_exit = await options.getLogs({ + target: HayJoin, + topics: [ + '0x22d324652c93739755cf4581508b60875ebdd78c20c0cff5cf8e23452b299631', + '0x0000000000000000000000008d388136d578dcd791d081c6042284ced6d9b0c6' + ] + }); + + logs_reward.forEach(log => { + const amount = log._amount; + dailyFees.add(slibBNB, amount); + }) + + logs_claim.forEach(log => { + const amount = log.amount; + dailyFees.add(weth, amount); + }) + + logs_fees_claim.forEach(log => { + const amount = log.amount; + dailyFees.add(bnb, amount); + }) + + logs_fees_harvested.forEach(log => { + const amount = log.amount; + dailyFees.add(slibBNB, amount); + }) + + logs_transfer.forEach(log => { + const amount = Number(log.data) + dailyFees.add(weth, amount); + }) + + logs_exit.forEach(log => { + const amount = Number(log.data); + dailyFees.add(weth, amount); + }) + + return { + dailyFees, + dailyRevenue: dailyFees + } +} + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.BSC]: { + fetch, + start: 0 + } + } +} + +export default adapter; From dcbbc1d59db3e1274db9f159ae9a00d504e66399 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 27 Aug 2024 15:44:10 +0000 Subject: [PATCH 216/237] remove not use --- fees/slisbnb/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fees/slisbnb/index.ts b/fees/slisbnb/index.ts index 0c6543c686..dbb8f3cc3a 100644 --- a/fees/slisbnb/index.ts +++ b/fees/slisbnb/index.ts @@ -44,7 +44,7 @@ const fetch = async (options: FetchOptions) => { '0x0000000000000000000000008d388136d578dcd791d081c6042284ced6d9b0c6' ] }); - const urs = '0x8d388136d578dCD791D081c6042284CED6d9B0c6'; + const logs_exit = await options.getLogs({ target: HayJoin, topics: [ From 741f437937cc922a29bf61453705680ddc10c105 Mon Sep 17 00:00:00 2001 From: echo-pro-dev Date: Wed, 28 Aug 2024 09:11:01 +0800 Subject: [PATCH 217/237] Added aBTC on Aptos in coreAssets.json --- helpers/coreAssets.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/helpers/coreAssets.json b/helpers/coreAssets.json index 090b19cabb..7424bd45fc 100644 --- a/helpers/coreAssets.json +++ b/helpers/coreAssets.json @@ -798,7 +798,8 @@ "CELER_DAI": "0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::DaiCoin", "CELER_ETH": "0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::WethCoin", "CELER_WBTC": "0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::WbtcCoin", - "amAPT": "0x111ae3e5bc816a5e63c2da97d0aa3886519e0cd5e4b046659fa35796bd11542a::amapt_token::AmnisApt" + "amAPT": "0x111ae3e5bc816a5e63c2da97d0aa3886519e0cd5e4b046659fa35796bd11542a::amapt_token::AmnisApt", + "aBTC": "0x4e1854f6d332c9525e258fb6e66f84b6af8aba687bbcb832a24768c4e175feec::abtc::ABTC" }, "dogechain": { "WWDOGE": "0xb7ddc6414bf4f5515b52d8bdd69973ae205ff101", From 128f5ede185f259b75d0fc1b3d40764c80022511 Mon Sep 17 00:00:00 2001 From: CronosLabsDev <106642922+CronosLabsDev@users.noreply.github.com> Date: Wed, 28 Aug 2024 12:59:18 +1000 Subject: [PATCH 218/237] feat: add cronos zk evm fee and vol --- dexs/fulcrom-finance/index.ts | 84 ++++++++++++++++++----------------- fees/fulcrom-finance.ts | 8 ++++ helpers/chains.ts | 3 +- 3 files changed, 53 insertions(+), 42 deletions(-) diff --git a/dexs/fulcrom-finance/index.ts b/dexs/fulcrom-finance/index.ts index f180408a87..80341d76a2 100644 --- a/dexs/fulcrom-finance/index.ts +++ b/dexs/fulcrom-finance/index.ts @@ -8,6 +8,7 @@ const endpoints: { [key: string]: string } = { "https://graph.cronoslabs.com/subgraphs/name/fulcrom/stats-prod", [CHAIN.ERA]: "https://api.studio.thegraph.com/query/52869/stats-prod/version/latest", + [CHAIN.CRONOS_ZKEVM]: "https://api.goldsky.com/api/public/project_clwrfupe2elf301wlhnd7bvva/subgraphs/fulcrom-stats-mainnet/prod/gn" }; const historicalDataSwap = gql` @@ -39,51 +40,52 @@ interface IGraphResponse { const getFetch = (query: string) => - (chain: string): Fetch => - async (timestamp: number) => { - const dayTimestamp = getUniqStartOfTodayTimestamp( - new Date(timestamp * 1000) - ); - const dailyData: IGraphResponse = await request(endpoints[chain], query, { - id: "daily:" + String(dayTimestamp), - period: "daily", - }); - const totalData: IGraphResponse = await request(endpoints[chain], query, { - id: "total", - period: "total", - }); + (chain: string): Fetch => + async (timestamp: number) => { + const dayTimestamp = getUniqStartOfTodayTimestamp( + new Date(timestamp * 1000) + ); + const dailyData: IGraphResponse = await request(endpoints[chain], query, { + id: "daily:" + String(dayTimestamp), + period: "daily", + }); + const totalData: IGraphResponse = await request(endpoints[chain], query, { + id: "total", + period: "total", + }); - return { - timestamp: dayTimestamp, - dailyVolume: - dailyData.volumeStats.length == 1 - ? String( - Number( - Object.values(dailyData.volumeStats[0]).reduce((sum, element) => - String(Number(sum) + Number(element)) - ) - ) * + return { + timestamp: dayTimestamp, + dailyVolume: + dailyData.volumeStats.length == 1 + ? String( + Number( + Object.values(dailyData.volumeStats[0]).reduce((sum, element) => + String(Number(sum) + Number(element)) + ) + ) * 10 ** -30 - ) - : undefined, - totalVolume: - totalData.volumeStats.length == 1 - ? String( - Number( - Object.values(totalData.volumeStats[0]).reduce((sum, element) => - String(Number(sum) + Number(element)) - ) - ) * + ) + : undefined, + totalVolume: + totalData.volumeStats.length == 1 + ? String( + Number( + Object.values(totalData.volumeStats[0]).reduce((sum, element) => + String(Number(sum) + Number(element)) + ) + ) * 10 ** -30 - ) - : undefined, - }; - }; + ) + : undefined, + }; + }; - const startTimestamps: { [chain: string]: number } = { - [CHAIN.CRONOS]: 1677470400, - [CHAIN.ERA]: 1696496400, - }; +const startTimestamps: { [chain: string]: number } = { + [CHAIN.CRONOS]: 1677470400, + [CHAIN.ERA]: 1696496400, + [CHAIN.CRONOS_ZKEVM]: 1723698700, +}; const adapter: BreakdownAdapter = { breakdown: { diff --git a/fees/fulcrom-finance.ts b/fees/fulcrom-finance.ts index eda0a42544..dc05ba8d20 100644 --- a/fees/fulcrom-finance.ts +++ b/fees/fulcrom-finance.ts @@ -9,6 +9,7 @@ const endpoints = { "https://graph.cronoslabs.com/subgraphs/name/fulcrom/stats-prod", [CHAIN.ERA]: "https://api.studio.thegraph.com/query/52869/stats-prod/version/latest", + [CHAIN.CRONOS_ZKEVM]: "https://api.goldsky.com/api/public/project_clwrfupe2elf301wlhnd7bvva/subgraphs/fulcrom-stats-mainnet/prod/gn" }; const methodology = { @@ -99,6 +100,13 @@ const adapter: Adapter = { methodology, }, }, + [CHAIN.CRONOS_ZKEVM]: { + fetch: graphs(endpoints)(CHAIN.CRONOS_ZKEVM), + start: 1723698700, + meta: { + methodology, + }, + }, }, }; diff --git a/helpers/chains.ts b/helpers/chains.ts index 058d0bf155..bbb61fb8f8 100644 --- a/helpers/chains.ts +++ b/helpers/chains.ts @@ -162,7 +162,8 @@ export enum CHAIN { ZKLINK = "zklink", DEXALOT = "dexalot", IMMUTABLEX = "immutablex", - CHAINFLIP = "chainflip" + CHAINFLIP = "chainflip", + CRONOS_ZKEVM = "cronos_zkevm", } // Don´t use From 7bf1770c0826ea5238d37987ccdf61ec81e96323 Mon Sep 17 00:00:00 2001 From: lil-il <> Date: Wed, 28 Aug 2024 14:35:33 +0300 Subject: [PATCH 219/237] added base, blast and opBNB to Vooi volumes --- aggregator-derivatives/vooi/index.ts | 90 ++++++++++++++++++++++------ 1 file changed, 73 insertions(+), 17 deletions(-) diff --git a/aggregator-derivatives/vooi/index.ts b/aggregator-derivatives/vooi/index.ts index ae4a8e5cb6..7027e96672 100644 --- a/aggregator-derivatives/vooi/index.ts +++ b/aggregator-derivatives/vooi/index.ts @@ -1,33 +1,89 @@ import fetchURL from "../../utils/fetchURL"; -import { FetchResult } from "../../adapters/types"; +import { FetchResult, SimpleAdapter, FetchOptions } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; -const URL = "https://defilama-stats.vooi.workers.dev/"; -const endpoint = ""; -const startTimestamp = 1714608000; // 02.05.2024 +const URL = "https://vooi-rebates.fly.dev/"; +const endpoint = "defillama/volumes"; +const startTimestampArbitrum = 1714608000; // 02.05.2024 +const startTimestampBlast = 1719792000; // 01.07.2024 +const startTimestampOpBNB = 1717200000; // 01.06.2024 +const startTimestampBase = 1722470400; // 01.08.2024 +const fetchArbitrum = async (options: FetchOptions): Promise => { + const timestamp = options.toTimestamp + const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) + const orderlyItem = fetchData.find(((item) => item.protocol == "orderly")) + if (!orderlyItem) return {dailyVolume: 0, totalVolume: 0, timestamp} + const dailyVolume = orderlyItem.dailyVolume + const totalVolume = orderlyItem.totalVolume + return { + dailyVolume, + totalVolume, + timestamp + }; +}; -interface IAPIResponse { - dailyVolume: string; - totalVolume: string; -} -const fetch = async (timestamp: number): Promise => { - const { dailyVolume, totalVolume }: IAPIResponse = ( - (await fetchURL(`${URL}${endpoint}?ts=${timestamp}`)).data - ); +const fetchBlast = async (options: FetchOptions): Promise => { + const timestamp = options.toTimestamp + const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) + const synfuturesItem = fetchData.find(((item) => item.protocol == "synfutures" && item.network == "blast")) + if (!synfuturesItem) return {dailyVolume: 0, totalVolume: 0, timestamp} + const dailyVolume = synfuturesItem.dailyVolume + const totalVolume = synfuturesItem.totalVolume return { - timestamp, dailyVolume, totalVolume, + timestamp }; }; -export default { +const fetchBase = async (options: FetchOptions): Promise => { + const timestamp = options.toTimestamp + const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) + const synfuturesItem = fetchData.find(((item) => item.protocol == "synfutures" && item.network == "base")) + if (!synfuturesItem) return {dailyVolume: 0, totalVolume: 0, timestamp} + const dailyVolume = synfuturesItem.dailyVolume + const totalVolume = synfuturesItem.totalVolume + return { + dailyVolume, + totalVolume, + timestamp + }; +}; + +const fetchOpBNB = async (options: any): Promise => { + const timestamp = options.toTimestamp + const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) + const kiloexItem = fetchData.find(((item) => item.protocol == "kiloex")) + if (!kiloexItem) return {dailyVolume: 0, totalVolume: 0, timestamp} + const dailyVolume = kiloexItem.dailyVolume + const totalVolume = kiloexItem.totalVolume + return { + dailyVolume, + totalVolume, + timestamp + }; +}; + +const adapter: SimpleAdapter = { adapter: { [CHAIN.ARBITRUM]: { - fetch: fetch, - start: startTimestamp + fetch: fetchArbitrum, + start: startTimestampArbitrum + }, + [CHAIN.BLAST]: { + fetch: fetchBlast, + start: startTimestampBlast + }, + [CHAIN.OP_BNB]: { + fetch: fetchOpBNB, + start: startTimestampOpBNB + }, + [CHAIN.BASE]: { + fetch: fetchBase, + start: startTimestampBase }, }, - // version: 2 // data accepts only one input to timestamp + version: 2 } +export default adapter \ No newline at end of file From 2dab35700c6c4a9e0d24fdf46cac97844e43cd44 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 28 Aug 2024 12:57:05 +0000 Subject: [PATCH 220/237] fix gmx value --- dexs/gmx-v2/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dexs/gmx-v2/index.ts b/dexs/gmx-v2/index.ts index 976328a834..61935a4ba6 100644 --- a/dexs/gmx-v2/index.ts +++ b/dexs/gmx-v2/index.ts @@ -1,5 +1,5 @@ import request, { gql } from "graphql-request"; -import { BreakdownAdapter, Fetch, SimpleAdapter } from "../../adapters/types"; +import { BreakdownAdapter, Fetch, FetchOptions, SimpleAdapter } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; @@ -31,8 +31,8 @@ interface IGraphResponse { }> } -const getFetch = (query: string)=> (chain: string): Fetch => async (timestamp: number) => { - const dayTimestamp = getUniqStartOfTodayTimestamp(new Date((timestamp * 1000))) +const getFetch = (query: string)=> (chain: string): Fetch => async (_tt: number, _t: any, options: FetchOptions) => { + const dayTimestamp = getUniqStartOfTodayTimestamp(new Date((options.startOfDay * 1000))) const dailyData: IGraphResponse = await request(endpoints[chain], query, { id: '1d:' + String(dayTimestamp), period: '1d', From deb596364797fc2d92ff99cafe6baac544c5644f Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 28 Aug 2024 14:03:35 +0000 Subject: [PATCH 221/237] fix prevent spike --- dexs/jellyverse/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dexs/jellyverse/index.ts b/dexs/jellyverse/index.ts index 8a46d3c29c..c085e81c88 100644 --- a/dexs/jellyverse/index.ts +++ b/dexs/jellyverse/index.ts @@ -58,6 +58,10 @@ const v2Graphs = (chain: Chain) => { return acc; }, { dailyVolume: 0, dailyFees: 0 }); + if (dailyVolume > 1_000_000_000) { + return {} + } + return { dailyVolume: dailyVolume.toString(), dailyFees: dailyFees.toString(), From 1e7d007151236b2bc01c400b3eb3f07e2c1d06bd Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 28 Aug 2024 15:35:45 +0000 Subject: [PATCH 222/237] init magicsea-lb --- dexs/magicsea-lb/index.ts | 61 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 dexs/magicsea-lb/index.ts diff --git a/dexs/magicsea-lb/index.ts b/dexs/magicsea-lb/index.ts new file mode 100644 index 0000000000..1c7170f16b --- /dev/null +++ b/dexs/magicsea-lb/index.ts @@ -0,0 +1,61 @@ +import { ChainBlocks, FetchOptions, IJSON, SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { addOneToken } from "../../helpers/prices"; +import { filterPools } from "../../helpers/uniswap"; + +const event_swap = 'event Swap(address indexed sender, address indexed to, uint24 id, bytes32 amountsIn, bytes32 amountsOut, uint24 volatilityAccumulator, bytes32 totalFees, bytes32 protocolFees)'; +const FACTORY_ADDRESS = '0x8Cce20D17aB9C6F60574e678ca96711D907fD08c'; + +type TABI = { + [k: string]: string; +} +const ABIs: TABI = { + "getNumberOfLBPairs": "uint256:getNumberOfLBPairs", + "getLBPairAtIndex": "function getLBPairAtIndex(uint256 index) view returns (address lbPair)" +} + +const fetch: any = async (timestamp: number, _: ChainBlocks, { getLogs, api, createBalances }: FetchOptions) => { + const dailyVolume = createBalances(); + const dailyFees = createBalances(); + const dailyRevenue = createBalances(); + const lpTokens = await api.fetchList({ lengthAbi: ABIs.getNumberOfLBPairs, itemAbi: ABIs.getLBPairAtIndex, target: FACTORY_ADDRESS }) + const [tokens0, tokens1] = await Promise.all(['address:getTokenX', 'address:getTokenY'].map((abi: string) => api.multiCall({ abi, calls: lpTokens }))); + + + const pairObject: IJSON = {} + lpTokens.forEach((pair: string, i: number) => { + pairObject[pair] = [tokens0[i], tokens1[i]] + }) + + // filter out the pairs with less than 1000 USD pooled value + const filteredPairs = await filterPools({ api: api, pairs: pairObject, createBalances: createBalances }) + await Promise.all(Object.keys(filteredPairs).map(async (pair) => { + const [token0, token1] = pairObject[pair] + const logs = await getLogs({ target: pair, eventAbi: event_swap }) + logs.forEach(log => { + const amountInX = Number('0x' + '0'.repeat(32) + log.amountsOut.replace('0x', '').slice(0, 32)) + const amountInY = Number('0x' + '0'.repeat(32) + log.amountsOut.replace('0x', '').slice(32, 64)) + dailyVolume.add(token1, amountInX); + dailyVolume.add(token0, amountInY); + + const protocolFeesY = Number('0x' + log.protocolFees.replace('0x', '').slice(0, 32)) + const protocolFeesX = Number('0x' + log.protocolFees.replace('0x', '').slice(32, 64)) + const totalFeesY = Number('0x' + log.totalFees.replace('0x', '').slice(0, 32)); + const totalFeesX = Number('0x' + log.totalFees.replace('0x', '').slice(32, 64)); + dailyFees.add(token0, totalFeesX ) + dailyFees.add(token1, totalFeesY ) + dailyRevenue.add(token0, protocolFeesX) + dailyRevenue.add(token1, protocolFeesY) + }) + })) + + return { dailyVolume, dailyFees, dailyRevenue, timestamp }; +} + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.IOTAEVM]: { fetch, start: 1681130543, }, + } +}; + +export default adapter; From b1f7c44cae1ea6beccfad9f0053d54df04c6993a Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Wed, 28 Aug 2024 15:39:23 +0000 Subject: [PATCH 223/237] remove file --- {dexs => protocols}/magicsea-lb/index.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {dexs => protocols}/magicsea-lb/index.ts (100%) diff --git a/dexs/magicsea-lb/index.ts b/protocols/magicsea-lb/index.ts similarity index 100% rename from dexs/magicsea-lb/index.ts rename to protocols/magicsea-lb/index.ts From 6fae556231180624d3a46fc6fe770ab635d31b9a Mon Sep 17 00:00:00 2001 From: Trevor Collins <25141495+DJHellscream@users.noreply.github.com> Date: Wed, 28 Aug 2024 14:52:57 -0400 Subject: [PATCH 224/237] feat: Add support for fetching fees, revenue and volume for Apex DeFi --- fees/apexdefi/index.ts | 104 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 fees/apexdefi/index.ts diff --git a/fees/apexdefi/index.ts b/fees/apexdefi/index.ts new file mode 100644 index 0000000000..f349893672 --- /dev/null +++ b/fees/apexdefi/index.ts @@ -0,0 +1,104 @@ +import { Chain } from "@defillama/sdk/build/general"; +import { Adapter, FetchOptions } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; + +const abis = { + allTokens: "address[]:getAllTokens", +}; + +type TAddress = { + [s: string | Chain]: string; +}; + +type Swap = { + sender: string; + amountTokenIn: string; + amountNativeIn: string; + amountTokenOut: string; + amountNativeOut: string; + flashSwap: boolean; +}; + +const methodology = { + Fees: "Swap fees paid by users of 0.03%", + UserFees: "Swap fees paid by users of 0.03%", + Revenue: "30% of collected swap fees", + ProtocolRevenue: "30% of collected swap fees", + SupplySideRevenue: + "70% of collected swap fees are distributed to liquidity providers", +}; + +const FACTORIES: TAddress = { + [CHAIN.AVAX]: "0x3D193de151F8e4e3cE1C4CB2977F806663106A87", + [CHAIN.BASE]: "0x4ccf7aa5736c5e8b6da5234d1014b5019f50cb56", + [CHAIN.ETHEREUM]: "0x820c889D5749847217599B43ab86FcC91781019f", +}; + +const scaleFactor = BigInt(10000); +const factoryFee = BigInt(10); // 0.1% +const lpFee = BigInt(20); // 0.2% + +const fetch = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const dailySupplySideRevenue = options.createBalances(); + const dailyProtocolRevenue = options.createBalances(); + const dailyVolume = options.createBalances(); + const totalVolume = options.createBalances(); + + const allTokens = await options.api.call({ + target: FACTORIES[options.chain], + abi: abis.allTokens, + }); + + const logs = await options.getLogs({ + targets: allTokens, + eventAbi: + "event Swap(address indexed sender, uint256 amountTokenIn, uint256 amountNativeIn, uint256 amountTokenOut, uint256 amountNativeOut, bool flashSwap)", + }); + + logs.map((tx: Swap) => { + const nativeAmount = BigInt(tx.amountNativeIn) + BigInt(tx.amountNativeOut); + const fee = (nativeAmount * lpFee) / scaleFactor; + const protocolRevenue = (nativeAmount * factoryFee) / scaleFactor; + dailyFees.addGasToken(fee + protocolRevenue); + dailyProtocolRevenue.addGasToken(protocolRevenue); + dailySupplySideRevenue.addGasToken(fee); + dailyVolume.addGasToken(nativeAmount); + }); + + return { + dailyFees, + dailyVolume, + dailyProtocolRevenue, + dailySupplySideRevenue, + }; +}; + +const adapters: Adapter = { + version: 2, + adapter: { + [CHAIN.AVAX]: { + fetch: fetch, + start: 1716868800, + meta: { + methodology, + }, + }, + [CHAIN.BASE]: { + fetch: fetch, + start: 1716868800, + meta: { + methodology, + }, + }, + [CHAIN.ETHEREUM]: { + fetch: fetch, + start: 1716868800, + meta: { + methodology, + }, + }, + }, +}; + +export default adapters; From 7c0caa79c84858d768235381fd15aa165f3b07b3 Mon Sep 17 00:00:00 2001 From: Pavel Shuvalov Date: Thu, 29 Aug 2024 09:52:06 +0400 Subject: [PATCH 225/237] Switch StormTrade volume adapter to the project API endpoint --- dexs/stormtrade/index.ts | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/dexs/stormtrade/index.ts b/dexs/stormtrade/index.ts index e728aba5d8..93a252865d 100644 --- a/dexs/stormtrade/index.ts +++ b/dexs/stormtrade/index.ts @@ -1,6 +1,8 @@ +import { time } from 'console'; import { CHAIN } from '../../helpers/chains' -import fetchURL from '../../utils/fetchURL' +import { postURL } from '../../utils/fetchURL' +const GRAPHQL_ENDPOINT = 'https://api5.storm.tg/graphql'; export default { adapter: { @@ -10,15 +12,23 @@ export default { meta: { methodology: { DailyVolume: 'Leverage trading volume', - DataSource: 'Data collected by the re:doubt team, available at https://beta.redoubt.online/tracker' + DataSource: 'Data prepared by the project team by indexing blockchain data' }, }, - fetch: async () => { - const response = await fetchURL('https://api.redoubt.online/dapps/v1/export/defi/storm') + fetch: async (timestamp: number) => { + const response = (await postURL(GRAPHQL_ENDPOINT, { + query: ` + query VolumeDaily { + marketInfo { + exchangedTradeVolume + } + } + ` + })); return { - dailyVolume: response.volume.toString(), - timestamp: response.timestamp + dailyVolume: response.data.marketInfo.exchangedTradeVolume / 1e9, + timestamp: new Date().getTime() / 1000 } }, }, From fa2434218fdc1a61b0d6aea5a1396ad3d2a3677f Mon Sep 17 00:00:00 2001 From: lil-il <> Date: Thu, 29 Aug 2024 14:46:18 +0300 Subject: [PATCH 226/237] added all protocols to arbitrum --- aggregator-derivatives/vooi/index.ts | 64 ++++++++++++++-------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/aggregator-derivatives/vooi/index.ts b/aggregator-derivatives/vooi/index.ts index 7027e96672..1e93de568f 100644 --- a/aggregator-derivatives/vooi/index.ts +++ b/aggregator-derivatives/vooi/index.ts @@ -12,10 +12,24 @@ const startTimestampBase = 1722470400; // 01.08.2024 const fetchArbitrum = async (options: FetchOptions): Promise => { const timestamp = options.toTimestamp const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) - const orderlyItem = fetchData.find(((item) => item.protocol == "orderly")) - if (!orderlyItem) return {dailyVolume: 0, totalVolume: 0, timestamp} - const dailyVolume = orderlyItem.dailyVolume - const totalVolume = orderlyItem.totalVolume + let orderlyItem = fetchData.find(((item) => item.protocol == "orderly")) + if (!orderlyItem) { + orderlyItem = {dailyVolume: 0, totalVolume: 0} + } + let synfuturesItem = fetchData.filter(((item) => item.protocol == "synfutures")) + if (!synfuturesItem) { + synfuturesItem = {dailyVolume: 0, totalVolume: 0} + } + let kiloexItem = fetchData.find(((item) => item.protocol == "kiloex")) + if (!kiloexItem) { + kiloexItem = {dailyVolume: 0, totalVolume: 0} + } + let dailyVolume = Number(orderlyItem.dailyVolume) + Number(kiloexItem.dailyVolume) + let totalVolume = Number(orderlyItem.totalVolume) + Number(kiloexItem.totalVolume) + for (let i in synfuturesItem){ + dailyVolume = Number(dailyVolume) + Number(synfuturesItem[i].dailyVolume) + totalVolume = Number(totalVolume) + Number(synfuturesItem[i].totalVolume) + } return { dailyVolume, totalVolume, @@ -23,44 +37,30 @@ const fetchArbitrum = async (options: FetchOptions): Promise => { }; }; -const fetchBlast = async (options: FetchOptions): Promise => { + +const fetchOpBNB = async (options: any): Promise => { const timestamp = options.toTimestamp - const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) - const synfuturesItem = fetchData.find(((item) => item.protocol == "synfutures" && item.network == "blast")) - if (!synfuturesItem) return {dailyVolume: 0, totalVolume: 0, timestamp} - const dailyVolume = synfuturesItem.dailyVolume - const totalVolume = synfuturesItem.totalVolume return { - dailyVolume, - totalVolume, + dailyVolume: 0, + totalVolume: 0, timestamp }; }; -const fetchBase = async (options: FetchOptions): Promise => { +const fetchBlast = async (options: any): Promise => { const timestamp = options.toTimestamp - const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) - const synfuturesItem = fetchData.find(((item) => item.protocol == "synfutures" && item.network == "base")) - if (!synfuturesItem) return {dailyVolume: 0, totalVolume: 0, timestamp} - const dailyVolume = synfuturesItem.dailyVolume - const totalVolume = synfuturesItem.totalVolume return { - dailyVolume, - totalVolume, + dailyVolume: 0, + totalVolume: 0, timestamp }; }; -const fetchOpBNB = async (options: any): Promise => { +const fetchBase = async (options: any): Promise => { const timestamp = options.toTimestamp - const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) - const kiloexItem = fetchData.find(((item) => item.protocol == "kiloex")) - if (!kiloexItem) return {dailyVolume: 0, totalVolume: 0, timestamp} - const dailyVolume = kiloexItem.dailyVolume - const totalVolume = kiloexItem.totalVolume return { - dailyVolume, - totalVolume, + dailyVolume: 0, + totalVolume: 0, timestamp }; }; @@ -71,14 +71,14 @@ const adapter: SimpleAdapter = { fetch: fetchArbitrum, start: startTimestampArbitrum }, - [CHAIN.BLAST]: { - fetch: fetchBlast, - start: startTimestampBlast - }, [CHAIN.OP_BNB]: { fetch: fetchOpBNB, start: startTimestampOpBNB }, + [CHAIN.BLAST]: { + fetch: fetchBlast, + start: startTimestampBlast + }, [CHAIN.BASE]: { fetch: fetchBase, start: startTimestampBase From 1af37b57286200b417ebad342239698399e98078 Mon Sep 17 00:00:00 2001 From: Define101 Date: Thu, 29 Aug 2024 13:00:53 +0100 Subject: [PATCH 227/237] add mode to iziswap --- dexs/iziswap/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dexs/iziswap/index.ts b/dexs/iziswap/index.ts index 02b4acf279..4031dbd121 100644 --- a/dexs/iziswap/index.ts +++ b/dexs/iziswap/index.ts @@ -34,7 +34,8 @@ const chains: TChains = { [CHAIN.SCROLL]: 534352, [CHAIN.BASE]: 8453, [CHAIN.MANTA]: 169, - [CHAIN.ZETA]: 7000 + [CHAIN.ZETA]: 7000, + [CHAIN.MODE]: 34443 }; const fetch = (chain: Chain) => { From dbb01de1b4d60e053b4e1c336abbfc47c4ccac65 Mon Sep 17 00:00:00 2001 From: nicetomeetyou1 Date: Thu, 29 Aug 2024 22:30:20 +0700 Subject: [PATCH 228/237] feat: add scallop adapter --- aggregators/scallop/index.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 aggregators/scallop/index.ts diff --git a/aggregators/scallop/index.ts b/aggregators/scallop/index.ts new file mode 100644 index 0000000000..c53c0e88f4 --- /dev/null +++ b/aggregators/scallop/index.ts @@ -0,0 +1,22 @@ +import fetchURL from '../../utils/fetchURL'; +import { FetchV2, SimpleAdapter } from '../../adapters/types'; +import { CHAIN } from '../../helpers/chains'; + +const fetch: FetchV2 = async ({ startTimestamp, endTimestamp }) => { + const dailyVolume = await fetchURL( + `https://sui.apis.scallop.io/statistic/swap/daily-volume?fromTimestamp=${startTimestamp}&toTimestamp=${endTimestamp}`, + ); + return { dailyVolume: dailyVolume.swapVolume }; +}; + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.SUI]: { + fetch, + start: 1722877683, + }, + }, +}; + +export default adapter; From 19059c4e6b405c396da1e56caf60bd79549a8952 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Thu, 29 Aug 2024 16:42:25 +0000 Subject: [PATCH 229/237] fix rev --- fees/dydx-v4/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fees/dydx-v4/index.ts b/fees/dydx-v4/index.ts index 9034580dcd..5d45c53286 100644 --- a/fees/dydx-v4/index.ts +++ b/fees/dydx-v4/index.ts @@ -12,8 +12,11 @@ const fetchFees = async (timestamp: number, _t: ChainBlocks ,options: FetchOpti delete res['latestTen'] const item: IFees[] = Object.values(res) const dailyFees = item.find((i) => i.day.split('T')[0] === dateStr)?.sum_tradingfeecollection + const dailyFeesNum = dailyFees ? parseFloat(dailyFees) : undefined return { - dailyFees: dailyFees ? dailyFees : undefined, + dailyFees: dailyFeesNum, + dailyRevenue: dailyFeesNum, + dailyHoldersRevenue: dailyFeesNum, timestamp: timestamp, } } From de9814f17c3b741da965bf7b149fedd4c282e9e8 Mon Sep 17 00:00:00 2001 From: 0xngmi <0xngmi@protonmail.com> Date: Thu, 29 Aug 2024 21:47:17 +0100 Subject: [PATCH 230/237] update paraswap for v5+v6 --- aggregators/paraswap/index.ts | 39 +------------ aggregators/paraswap/paraswapApi.ts | 77 +++++++++++++++++++++++++ fees/paraswap.ts | 89 +---------------------------- 3 files changed, 81 insertions(+), 124 deletions(-) create mode 100644 aggregators/paraswap/paraswapApi.ts diff --git a/aggregators/paraswap/index.ts b/aggregators/paraswap/index.ts index ba2a4f9f3c..0e0a3a2fab 100644 --- a/aggregators/paraswap/index.ts +++ b/aggregators/paraswap/index.ts @@ -1,38 +1,3 @@ -// https://developers.paraswap.network/smart-contracts -const chains = [ - "ethereum", - "arbitrum", - "avax", - "bsc", - "fantom", - "optimism", - "polygon", - "base", - "polygon_zkevm", -]; +import { getParaswapAdapter } from "./paraswapApi"; -import { ChainBlocks, FetchOptions } from "../../adapters/types"; - -const abis = { - "SwappedDirect": "event SwappedDirect(bytes16 uuid, address partner, uint256 feePercent, address initiator, uint8 kind, address indexed beneficiary, address indexed srcToken, address indexed destToken, uint256 srcAmount, uint256 receivedAmount, uint256 expectedAmount)", - "SwappedV3": "event SwappedV3(bytes16 uuid, address partner, uint256 feePercent, address initiator, address indexed beneficiary, address indexed srcToken, address indexed destToken, uint256 srcAmount, uint256 receivedAmount, uint256 expectedAmount)", -} - -const defaultSwapper = '0xDEF171Fe48CF0115B1d80b88dc8eAB59176FEe57' -const fetch = async (timestamp: number, _: ChainBlocks, { createBalances, getLogs, chain, }: FetchOptions) => { - const dailyVolume = createBalances() - let target = defaultSwapper - if (chain === "polygon_zkevm") target = '0xb83b554730d29ce4cb55bb42206c3e2c03e4a40a' - const swappedDirectLogs = await getLogs({ target, eventAbi: abis.SwappedDirect, }) - const swappedV3Logs = await getLogs({ target, eventAbi: abis.SwappedV3, }); - [swappedDirectLogs, swappedV3Logs].flat().forEach((log: any) => { - dailyVolume.add(log.destToken, log.receivedAmount) - }) - return { timestamp, dailyVolume } -}; - -const adapter: any = { adapter: {}, }; - -chains.forEach((chain) => adapter.adapter[chain] = { fetch, start: 1676592000, }); - -export default adapter; +export default getParaswapAdapter("volume"); diff --git a/aggregators/paraswap/paraswapApi.ts b/aggregators/paraswap/paraswapApi.ts new file mode 100644 index 0000000000..ebc5b52535 --- /dev/null +++ b/aggregators/paraswap/paraswapApi.ts @@ -0,0 +1,77 @@ +import { Adapter, FetchResultFees, FetchResultVolume } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { getTimestampAtStartOfDayUTC } from "../../utils/date"; +import { Chain } from "@defillama/sdk/build/general"; +import fetchURL from "../../utils/fetchURL"; + + +const feesMMURL = "https://api.paraswap.io/stk/volume-stats/breakdown-by-chain"; +type TChainId = { + [l: string | Chain]: string; +} +const mapChainId: TChainId = { + [CHAIN.ETHEREUM]: '1', + [CHAIN.POLYGON]: '137', + [CHAIN.BSC]: '56', + [CHAIN.AVAX]: '43114', + [CHAIN.FANTOM]: '250', + [CHAIN.ARBITRUM]: '42161', + [CHAIN.OPTIMISM]: '10', + [CHAIN.BASE]: '8453', + [CHAIN.POLYGON_ZKEVM]: '1101' +} + +interface IResponse { + daily: any[]; + allTime: any; +} + +export function getParaswapAdapter(type:"fees"|"volume"){ +const fetch = (chain: Chain) => { + return async (timestamp: number): Promise => { + const timestampToday = getTimestampAtStartOfDayUTC(timestamp) + const response: IResponse = (await fetchURL(feesMMURL)); + const dailyResultFees: any[] = response.daily; + const [totalVolume,totalPartnerRevenue, totalProtocolRevenue]: number[] = response.allTime[mapChainId[chain]]; + const [dailyVolume, partnerRevenue, protocolRevenue]: number[] = dailyResultFees.filter(([time]: any) => time === timestampToday) + .map(([_, data]: any) => data[mapChainId[chain]]).flat() + const otherFees = partnerRevenue + protocolRevenue; + const otherProtocolReveune = protocolRevenue; + + const dailyFees = otherFees; + if (dailyFees > 1_000_000) { + return {} as FetchResultFees; + } + const dailyRevenue = otherProtocolReveune; + const totalFees = totalPartnerRevenue + totalProtocolRevenue; + const totalRevenue = totalProtocolRevenue; + if(type === "fees"){ + return { + dailyFees: dailyFees ? dailyFees.toString() : undefined, + dailyRevenue: dailyRevenue ? dailyRevenue.toString() : undefined, + totalRevenue: totalRevenue ? totalRevenue.toString() : undefined, + totalFees: totalFees ? totalFees.toString(): undefined, + timestamp + } + } else { + return { + dailyVolume: dailyVolume.toString(), + totalVolume: totalVolume.toString(), + timestamp + } + } + } +} + +const adapter: Adapter = { + adapter: Object.keys(mapChainId).reduce((all, chain)=>({ + ...all, + [chain]:{ + fetch: fetch(chain), + start: 1647907200, + } + }), {} as any) +} + +return adapter +} diff --git a/fees/paraswap.ts b/fees/paraswap.ts index 9989ddfef0..63766e3543 100644 --- a/fees/paraswap.ts +++ b/fees/paraswap.ts @@ -1,88 +1,3 @@ -import { Adapter, FetchResultFees } from "../adapters/types"; -import { CHAIN } from "../helpers/chains"; -import { getTimestampAtStartOfDayUTC } from "../utils/date"; -import { Chain } from "@defillama/sdk/build/general"; -import fetchURL from "../utils/fetchURL"; +import {getParaswapAdapter} from "../aggregators/paraswap/paraswapApi" - -const feesMMURL = "https://api.paraswap.io/stk/volume-stats/breakdown-by-chain"; -type TChainId = { - [l: string | Chain]: string; -} -const mapChainId: TChainId = { - [CHAIN.ETHEREUM]: '1', - [CHAIN.POLYGON]: '137', - [CHAIN.BSC]: '56', - [CHAIN.AVAX]: '43114', - [CHAIN.FANTOM]: '250', - [CHAIN.ARBITRUM]: '42161', - [CHAIN.OPTIMISM]: '10', -} - -interface IResponse { - daily: any[]; - allTime: any; -} - -const fetch = (chain: Chain) => { - return async (timestamp: number): Promise => { - const timestampToday = getTimestampAtStartOfDayUTC(timestamp) - const response: IResponse = (await fetchURL(feesMMURL)); - const dailyResultFees: any[] = response.daily; - const [__,totalPartnerRevenue, totalProtocolRevenue]: number[] = response.allTime[mapChainId[chain]]; - const [_, partnerRevenue, protocolRevenue]: number[] = dailyResultFees.filter(([time]: any) => time === timestampToday) - .map(([_, data]: any) => data[mapChainId[chain]]).flat() - const otherFees = partnerRevenue + protocolRevenue; - const otherProtocolReveune = protocolRevenue; - - const dailyFees = otherFees; - if (dailyFees > 1_000_000) { - return {} as FetchResultFees; - } - const dailyRevenue = otherProtocolReveune; - const totalFees = totalPartnerRevenue + totalProtocolRevenue; - const totalRevenue = totalProtocolRevenue; - return { - dailyFees: dailyFees ? dailyFees.toString() : undefined, - dailyRevenue: dailyRevenue ? dailyRevenue.toString() : undefined, - totalRevenue: totalRevenue ? totalRevenue.toString() : undefined, - totalFees: totalFees ? totalFees.toString(): undefined, - timestamp - } - } -} - -const adapter: Adapter = { - adapter: { - [CHAIN.ETHEREUM]: { - fetch: fetch(CHAIN.ETHEREUM), - start: 1647907200, - }, - [CHAIN.POLYGON]: { - fetch: fetch(CHAIN.POLYGON), - start: 1647907200, - }, - [CHAIN.BSC]: { - fetch: fetch(CHAIN.BSC), - start: 1647907200, - }, - [CHAIN.AVAX]: { - fetch: fetch(CHAIN.AVAX), - start: 1647907200, - }, - [CHAIN.FANTOM]: { - fetch: fetch(CHAIN.FANTOM), - start: 1647907200, - }, - [CHAIN.ARBITRUM]: { - fetch: fetch(CHAIN.ARBITRUM), - start: 1647907200, - }, - [CHAIN.OPTIMISM]: { - fetch: fetch(CHAIN.OPTIMISM), - start: 1647907200, - } - } -} - -export default adapter; +export default getParaswapAdapter("fees"); \ No newline at end of file From 6673e8d39953e1fba68308c6e2744940e353e607 Mon Sep 17 00:00:00 2001 From: 0xmer1in <39942523+0xmer1in@users.noreply.github.com> Date: Fri, 30 Aug 2024 11:17:11 +0800 Subject: [PATCH 231/237] chore: update Mantle subgraph url --- dexs/woofi/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/woofi/index.ts b/dexs/woofi/index.ts index fe5ba6784c..120f568159 100644 --- a/dexs/woofi/index.ts +++ b/dexs/woofi/index.ts @@ -17,7 +17,7 @@ const endpoints = { [CHAIN.POLYGON_ZKEVM]: "https://api.studio.thegraph.com/query/71937/woofi-polygon-zkevm/version/latest", [CHAIN.LINEA]: "https://api.studio.thegraph.com/query/71937/woofi-linea/version/latest", [CHAIN.BASE]: "https://api.studio.thegraph.com/query/71937/woofi-base/version/latest", - [CHAIN.MANTLE]: "https://woofi-subgraph.mer1in.com/subgraphs/name/woonetwork/woofi-mantle", + [CHAIN.MANTLE]: "https://subgraph-api.mantle.xyz/api/public/9e9d6e8a-be9d-42d1-9747-3a8f001214c5/subgraphs/woonetwork/woofi-mantle/v0.0.1/gn", }; type TStartTime = { From ec8f7d15ad49e3f5290011a81b0be044ee79fb83 Mon Sep 17 00:00:00 2001 From: Tyler Tsai Date: Fri, 30 Aug 2024 13:18:36 +0800 Subject: [PATCH 232/237] feat: add lista-dao fees --- fees/lista-dao/index.ts | 114 ++++++++++++++++++++++++++++++++++++++++ fees/slisbnb/index.ts | 102 ----------------------------------- 2 files changed, 114 insertions(+), 102 deletions(-) create mode 100644 fees/lista-dao/index.ts delete mode 100644 fees/slisbnb/index.ts diff --git a/fees/lista-dao/index.ts b/fees/lista-dao/index.ts new file mode 100644 index 0000000000..b03965d126 --- /dev/null +++ b/fees/lista-dao/index.ts @@ -0,0 +1,114 @@ +import BigNumber from "bignumber.js"; +import { FetchOptions, SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import ADDRESSES from "../../helpers/coreAssets.json"; + +const treasury = "0x8d388136d578dCD791D081c6042284CED6d9B0c6"; + +/** + * Fetches data from Lista DAO + * @doc https://listaorg.notion.site/Profit-cfd754931df449eaa9a207e38d3e0a54 + * @test npx ts-node --transpile-only cli/testAdapter.ts fees lista-dao + */ + +const ListaStakeManagerAddress = "0x1adB950d8bB3dA4bE104211D5AB038628e477fE6"; +const HelioETHProvider = "0x0326c157bfF399e25dd684613aEF26DBb40D3BA4"; +// const MasterVault = "0x986b40C2618fF295a49AC442c5ec40febB26CC54"; +const SnBnbYieldConverterStrategy = + "0x6F28FeC449dbd2056b76ac666350Af8773E03873"; +const CeETHVault = "0xA230805C28121cc97B348f8209c79BEBEa3839C0"; +const HayJoin = "0x4C798F81de7736620Cd8e6510158b1fE758e22F7"; + +// token +const slisBNB = "0xb0b84d294e0c75a6abe60171b70edeb2efd14a1b"; +const eth = "0x2170Ed0880ac9A755fd29B2688956BD959F933F8"; +const bnb = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"; +const lisUSD = "0x0782b6d8c4551B9760e74c0545a9bCD90bdc41E5"; + +const fetch = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + + const logs_reward = await options.getLogs({ + target: ListaStakeManagerAddress, + eventAbi: "event RewardsCompounded(uint256 _amount)", + }); + + const logs_claim = await options.getLogs({ + target: HelioETHProvider, + eventAbi: "event Claim(address recipient, uint256 amount)", + entireLog: true, + }); + + // const logs_fees_claim = await options.getLogs({ + // target: MasterVault, + // eventAbi: "event FeeClaimed(address receiver, uint256 amount)", + // }); + + const logs_fees_harvested = await options.getLogs({ + target: SnBnbYieldConverterStrategy, + eventAbi: "event Harvested(address to, uint256 amount)", + }); + + const logs_transfer = await options.getLogs({ + target: eth, + topics: [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a230805c28121cc97b348f8209c79bebea3839c0", + "0x0000000000000000000000008d388136d578dcd791d081c6042284ced6d9b0c6", + ], + }); + + const logs_exit = await options.getLogs({ + target: HayJoin, + topics: [ + "0x22d324652c93739755cf4581508b60875ebdd78c20c0cff5cf8e23452b299631", + "0x0000000000000000000000008d388136d578dcd791d081c6042284ced6d9b0c6", + ], + }); + + logs_reward.forEach((log) => { + const amount = log._amount; + dailyFees.add(slisBNB, amount); + }); + + logs_claim.forEach((log) => { + const amount = Number(log.data); + dailyFees.add(eth, amount); + }); + + // logs_fees_claim.forEach((log) => { + // const amount = log.amount; + // dailyFees.add(bnb, amount); + // }); + + logs_fees_harvested.forEach((log) => { + const amount = log.amount; + dailyFees.add(slisBNB, amount); + }); + + logs_transfer.forEach((log) => { + const amount = Number(log.data); + dailyFees.add(eth, amount); + }); + + logs_exit.forEach((log) => { + dailyFees.add(lisUSD, Number(log.data)); + }); + + return { + dailyFees, + dailyRevenue: dailyFees, + }; +}; + +const adapter: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.BSC]: { + fetch, + start: 1693361953, + }, + }, +}; + +export default adapter; diff --git a/fees/slisbnb/index.ts b/fees/slisbnb/index.ts deleted file mode 100644 index dbb8f3cc3a..0000000000 --- a/fees/slisbnb/index.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { FetchOptions, SimpleAdapter } from "../../adapters/types"; -import { CHAIN } from "../../helpers/chains"; - - -const ListaStakeManagerAddress = "0x1adB950d8bB3dA4bE104211D5AB038628e477fE6"; -const HelioETHProvider = "0x0326c157bfF399e25dd684613aEF26DBb40D3BA4" -const MasterVault = "0x986b40C2618fF295a49AC442c5ec40febB26CC54" -const SnBnbYieldConverterStrategy = "0x6F28FeC449dbd2056b76ac666350Af8773E03873" -const CeETHVault = "0xA230805C28121cc97B348f8209c79BEBEa3839C0" -const HayJoin = "0x4C798F81de7736620Cd8e6510158b1fE758e22F7" - -// token -const slibBNB = "0xb0b84d294e0c75a6abe60171b70edeb2efd14a1b" -const weth = "0x4db5a66e937a9f4473fa95b1caf1d1e1d62e29ea" -const bnb = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c" - -const fetch = async (options: FetchOptions) => { - const dailyFees = options.createBalances(); - const logs_reward = await options.getLogs({ - target: ListaStakeManagerAddress, - eventAbi: "event RewardsCompounded(uint256 _amount)" - }); - - const logs_claim = await options.getLogs({ - target: HelioETHProvider, - eventAbi: "event Claim(address recipient, uint256 amount)" - }); - - const logs_fees_claim = await options.getLogs({ - target: MasterVault, - eventAbi: "event FeeClaimed(address receiver, uint256 amount)" - }); - - const logs_fees_harvested = await options.getLogs({ - target: SnBnbYieldConverterStrategy, - eventAbi: "event Harvested(address to, uint256 amount)" - }); - - const logs_transfer = await options.getLogs({ - target: CeETHVault, - topics: [ - '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', - '0x000000000000000000000000a230805c28121cc97b348f8209c79bebea3839c0', - '0x0000000000000000000000008d388136d578dcd791d081c6042284ced6d9b0c6' - ] - }); - - const logs_exit = await options.getLogs({ - target: HayJoin, - topics: [ - '0x22d324652c93739755cf4581508b60875ebdd78c20c0cff5cf8e23452b299631', - '0x0000000000000000000000008d388136d578dcd791d081c6042284ced6d9b0c6' - ] - }); - - logs_reward.forEach(log => { - const amount = log._amount; - dailyFees.add(slibBNB, amount); - }) - - logs_claim.forEach(log => { - const amount = log.amount; - dailyFees.add(weth, amount); - }) - - logs_fees_claim.forEach(log => { - const amount = log.amount; - dailyFees.add(bnb, amount); - }) - - logs_fees_harvested.forEach(log => { - const amount = log.amount; - dailyFees.add(slibBNB, amount); - }) - - logs_transfer.forEach(log => { - const amount = Number(log.data) - dailyFees.add(weth, amount); - }) - - logs_exit.forEach(log => { - const amount = Number(log.data); - dailyFees.add(weth, amount); - }) - - return { - dailyFees, - dailyRevenue: dailyFees - } -} - -const adapter: SimpleAdapter = { - version: 2, - adapter: { - [CHAIN.BSC]: { - fetch, - start: 0 - } - } -} - -export default adapter; From 76b0b67a6dba7f7f40a503a1f8a2f2f91105e323 Mon Sep 17 00:00:00 2001 From: Krunal Amin Date: Fri, 30 Aug 2024 05:24:58 -0500 Subject: [PATCH 233/237] adjustment --- .../unidex-agg-perp/index.ts | 78 +- yarn.lock | 2443 +++++++++++++++++ 2 files changed, 2452 insertions(+), 69 deletions(-) create mode 100644 yarn.lock diff --git a/aggregator-derivatives/unidex-agg-perp/index.ts b/aggregator-derivatives/unidex-agg-perp/index.ts index 3962f11ec1..084344af33 100644 --- a/aggregator-derivatives/unidex-agg-perp/index.ts +++ b/aggregator-derivatives/unidex-agg-perp/index.ts @@ -4,6 +4,7 @@ import { CHAIN } from "../../helpers/chains"; import { getTimestampAtStartOfDayUTC } from "../../utils/date"; import { Chain } from "@defillama/sdk/build/general"; import request, { gql } from "graphql-request"; +import customBackfill from "../../helpers/customBackfill"; interface IReferralRecord { volume: string; // Assuming volume is a string that represents a number @@ -34,86 +35,25 @@ const fetchReferralVolume = async (timestamp: number): Promise => { const referralQuery = gql` { - referrerStats( - where: {referrer: "0x8c128f336b479b142429a5f351af225457a987fa", timestamp_gt: "${todaysTimestamp}"} + affiliateStats( + where: {affiliate: "0x8c128f336b479b142429a5f351af225457a987fa", timestamp_gt: "${todaysTimestamp}"} ) { volume } } `; - const referralEndpoint = sdk.graph.modifyEndpoint('Hww5kAfumpAbMm5iGWqEe83vJJCEE98kccmBBcMRy5fU'); + const referralEndpoint = "https://subgraph.satsuma-prod.com/3b2ced13c8d9/gmx/gmx-arbitrum-referrals/api"; const referralRes = await request(referralEndpoint, referralQuery); - // If there's no volume data, return 0 - if (!referralRes.referrerStats || referralRes.referrerStats.length === 0) { + if (!referralRes.affiliateStats || referralRes.affiliateStats.length === 0) { return 0; } - return Number(referralRes.referrerStats[0].volume) / 10 ** 30; + return Number(referralRes.affiliateStats[0].volume) / 10 ** 30; }; -const fetchMuxReferralVolume = async (chain: Chain, timestamp: number): Promise => { - const startOfDayTimestamp = getTimestampAtStartOfDayUTC(timestamp); - const endOfDayTimestamp = startOfDayTimestamp + 86400; // Add one day's worth of seconds for the end of the day - - const referralQuery = gql` - query MyQuery($timestamp_gte: BigInt = "", $timestamp_lte: BigInt = "") { - referralRecords( - where: { - referralCode: "0x556e694465780000000000000000000000000000000000000000000000000000", - timestamp_gte: $timestamp_gte, - timestamp_lte: $timestamp_lte - } - ) { - volume - timestamp - } - } - `; - - const variables = { - timestamp_gte: startOfDayTimestamp.toString(), - timestamp_lte: endOfDayTimestamp.toString() - }; - - let referralEndpoint = ''; - - switch (chain) { - case CHAIN.ARBITRUM: - referralEndpoint = sdk.graph.modifyEndpoint('GbsdbMy5X2xHoj8qrRKKTs3LhMgma3CzZ8nZCqo9T97v'); - break; - case CHAIN.OPTIMISM: - referralEndpoint = sdk.graph.modifyEndpoint('7CmYmJd9mghA17EP8NXqrLZPqT3vjw4B8PLAbA1K4PdJ'); - break; - case CHAIN.FANTOM: - referralEndpoint = sdk.graph.modifyEndpoint('2KNaZgvAu9zjn1oAomgoMgiafQHNBbsS3Eu4UwucPUC6'); - break; - default: - return 0; // Return 0 for unsupported chains - } - - const referralRes = await request(referralEndpoint, referralQuery, variables); - - // Sum up the volumes - let totalVolume = 0; - - if (referralRes.referralRecords && Array.isArray(referralRes.referralRecords)) { - referralRes.referralRecords.forEach((record: IReferralRecord) => { - const volume = parseFloat(record.volume); - if (!isNaN(volume)) { - totalVolume += volume / 10 ** 18; // Adjust the unit conversion as needed - } - }); - } - - return totalVolume; -}; - - - - const fetch = (chain: Chain) => { return async (timestamp: number): Promise => { const todaysTimestamp = getTimestampAtStartOfDayUTC(timestamp); @@ -145,10 +85,9 @@ const fetch = (chain: Chain) => { const chainID = chainIDs[chain]; let dailyVolumeUSD = chainID !== undefined ? volumeByChain[chainID] || 0 : 0; - if (chain === CHAIN.ARBITRUM || chain === CHAIN.OPTIMISM || chain === CHAIN.FANTOM) { + if (chain === CHAIN.ARBITRUM) { const referralVolumeUSD = await fetchReferralVolume(timestamp); - const muxReferralVolumeUSD = await fetchMuxReferralVolume(chain, timestamp); - dailyVolumeUSD += referralVolumeUSD + muxReferralVolumeUSD; + dailyVolumeUSD += referralVolumeUSD; } return { @@ -183,6 +122,7 @@ const adapteraggderivative: any = { [CHAIN.ARBITRUM]: { fetch: fetch(CHAIN.ARBITRUM), start: 1687422746, + customBackfill: customBackfill(CHAIN.ARBITRUM, fetch), meta: { methodology, }, diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..e5b1fdb1e8 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2443 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + +"@aws-crypto/crc32@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1" + integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/crc32c@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz#4e34aab7f419307821509a98b9b08e84e0c1917e" + integrity sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/sha1-browser@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz#b0ee2d2821d3861f017e965ef3b4cb38e3b6a0f4" + integrity sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg== + dependencies: + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-crypto/sha256-browser@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e" + integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== + dependencies: + "@aws-crypto/sha256-js" "^5.2.0" + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042" + integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/supports-web-crypto@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb" + integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== + dependencies: + tslib "^2.6.2" + +"@aws-crypto/util@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da" + integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-s3@^3.400.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.637.0.tgz#2879bd8ddef84397b65fa9e61bca10bb4ba08211" + integrity sha512-y6UC94fsMvhKbf0dzfnjVP1HePeGjplfcYfilZU1COIJLyTkMcUv4XcT4I407CGIrvgEafONHkiC09ygqUauNA== + dependencies: + "@aws-crypto/sha1-browser" "5.2.0" + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/client-sso-oidc" "3.637.0" + "@aws-sdk/client-sts" "3.637.0" + "@aws-sdk/core" "3.635.0" + "@aws-sdk/credential-provider-node" "3.637.0" + "@aws-sdk/middleware-bucket-endpoint" "3.620.0" + "@aws-sdk/middleware-expect-continue" "3.620.0" + "@aws-sdk/middleware-flexible-checksums" "3.620.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-location-constraint" "3.609.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-sdk-s3" "3.635.0" + "@aws-sdk/middleware-ssec" "3.609.0" + "@aws-sdk/middleware-user-agent" "3.637.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/signature-v4-multi-region" "3.635.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@aws-sdk/xml-builder" "3.609.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.4.0" + "@smithy/eventstream-serde-browser" "^3.0.6" + "@smithy/eventstream-serde-config-resolver" "^3.0.3" + "@smithy/eventstream-serde-node" "^3.0.5" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-blob-browser" "^3.1.2" + "@smithy/hash-node" "^3.0.3" + "@smithy/hash-stream-node" "^3.1.2" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/md5-js" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.15" + "@smithy/util-defaults-mode-node" "^3.0.15" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-stream" "^3.1.3" + "@smithy/util-utf8" "^3.0.0" + "@smithy/util-waiter" "^3.1.2" + tslib "^2.6.2" + +"@aws-sdk/client-sso-oidc@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.637.0.tgz#d7e22ce6627c3285bf311e6c9e64c22b99bbd76a" + integrity sha512-27bHALN6Qb6m6KZmPvRieJ/QRlj1lyac/GT2Rn5kJpre8Mpp+yxrtvp3h9PjNBty4lCeFEENfY4dGNSozBuBcw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.635.0" + "@aws-sdk/credential-provider-node" "3.637.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.637.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.4.0" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.15" + "@smithy/util-defaults-mode-node" "^3.0.15" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.637.0.tgz#ae152759a5e1e576e1df6b8f4edaf59796e1758e" + integrity sha512-+KjLvgX5yJYROWo3TQuwBJlHCY0zz9PsLuEolmXQn0BVK1L/m9GteZHtd+rEdAoDGBpE0Xqjy1oz5+SmtsaRUw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.635.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.637.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.4.0" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.15" + "@smithy/util-defaults-mode-node" "^3.0.15" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sts@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.637.0.tgz#6dcde6640d8a5e60dd4a2df8557284a0226d182c" + integrity sha512-xUi7x4qDubtA8QREtlblPuAcn91GS/09YVEY/RwU7xCY0aqGuFwgszAANlha4OUIqva8oVj2WO4gJuG+iaSnhw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/client-sso-oidc" "3.637.0" + "@aws-sdk/core" "3.635.0" + "@aws-sdk/credential-provider-node" "3.637.0" + "@aws-sdk/middleware-host-header" "3.620.0" + "@aws-sdk/middleware-logger" "3.609.0" + "@aws-sdk/middleware-recursion-detection" "3.620.0" + "@aws-sdk/middleware-user-agent" "3.637.0" + "@aws-sdk/region-config-resolver" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@aws-sdk/util-user-agent-browser" "3.609.0" + "@aws-sdk/util-user-agent-node" "3.614.0" + "@smithy/config-resolver" "^3.0.5" + "@smithy/core" "^2.4.0" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/hash-node" "^3.0.3" + "@smithy/invalid-dependency" "^3.0.3" + "@smithy/middleware-content-length" "^3.0.5" + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.15" + "@smithy/util-defaults-mode-node" "^3.0.15" + "@smithy/util-endpoints" "^2.0.5" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/core@3.635.0": + version "3.635.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.635.0.tgz#74b7d0d7fa3aa39f87ea5cf4e6c97d4d84f4ef14" + integrity sha512-i1x/E/sgA+liUE1XJ7rj1dhyXpAKO1UKFUcTTHXok2ARjWTvszHnSXMOsB77aPbmn0fUp1JTx2kHUAZ1LVt5Bg== + dependencies: + "@smithy/core" "^2.4.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/signature-v4" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-middleware" "^3.0.3" + fast-xml-parser "4.4.1" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@3.620.1": + version "3.620.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz#d4692c49a65ebc11dae3f7f8b053fee9268a953c" + integrity sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.635.0": + version "3.635.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.635.0.tgz#083439af1336693049958e4b61695e4712b30fd4" + integrity sha512-iJyRgEjOCQlBMXqtwPLIKYc7Bsc6nqjrZybdMDenPDa+kmLg7xh8LxHsu9088e+2/wtLicE34FsJJIfzu3L82g== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-stream" "^3.1.3" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.637.0.tgz#dae0d8b05c8b9480da5a92beb4dd244985ecbd70" + integrity sha512-h+PFCWfZ0Q3Dx84SppET/TFpcQHmxFW8/oV9ArEvMilw4EBN+IlxgbL0CnHwjHW64szcmrM0mbebjEfHf4FXmw== + dependencies: + "@aws-sdk/credential-provider-env" "3.620.1" + "@aws-sdk/credential-provider-http" "3.635.0" + "@aws-sdk/credential-provider-process" "3.620.1" + "@aws-sdk/credential-provider-sso" "3.637.0" + "@aws-sdk/credential-provider-web-identity" "3.621.0" + "@aws-sdk/types" "3.609.0" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.637.0.tgz#0ac6678ab31783adf5b1cf03add5d1da101ea946" + integrity sha512-yoEhoxJJfs7sPVQ6Is939BDQJZpZCoUgKr/ySse4YKOZ24t4VqgHA6+wV7rYh+7IW24Rd91UTvEzSuHYTlxlNA== + dependencies: + "@aws-sdk/credential-provider-env" "3.620.1" + "@aws-sdk/credential-provider-http" "3.635.0" + "@aws-sdk/credential-provider-ini" "3.637.0" + "@aws-sdk/credential-provider-process" "3.620.1" + "@aws-sdk/credential-provider-sso" "3.637.0" + "@aws-sdk/credential-provider-web-identity" "3.621.0" + "@aws-sdk/types" "3.609.0" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.620.1": + version "3.620.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz#10387cf85400420bb4bbda9cc56937dcc6d6d0ee" + integrity sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.637.0.tgz#13acf77579df026e89ced33501489defd06a0518" + integrity sha512-Mvz+h+e62/tl+dVikLafhv+qkZJ9RUb8l2YN/LeKMWkxQylPT83CPk9aimVhCV89zth1zpREArl97+3xsfgQvA== + dependencies: + "@aws-sdk/client-sso" "3.637.0" + "@aws-sdk/token-providers" "3.614.0" + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.621.0": + version "3.621.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz#b25878c0a05dad60cd5f91e7e5a31a145c2f14be" + integrity sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-bucket-endpoint@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.620.0.tgz#c5dc0e98b6209a91479cad6c2c74fbc5a3429fab" + integrity sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-arn-parser" "3.568.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + "@smithy/util-config-provider" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-expect-continue@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.620.0.tgz#6a362c0f0696dc6749108a33de9998e0fa6b50ec" + integrity sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-flexible-checksums@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.620.0.tgz#42cd48cdc0ad9639545be000bf537969210ce8c5" + integrity sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@aws-crypto/crc32c" "5.2.0" + "@aws-sdk/types" "3.609.0" + "@smithy/is-array-buffer" "^3.0.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz#b561d419a08a984ba364c193376b482ff5224d74" + integrity sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-location-constraint@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz#7ed82d71e5ddcd50683ef2bbde10d1cc2492057e" + integrity sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz#ed44d201f091b8bac908cbf14724c7a4d492553f" + integrity sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@3.620.0": + version "3.620.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz#f8270dfff843fd756be971e5673f89c6a24c6513" + integrity sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-sdk-s3@3.635.0": + version "3.635.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.635.0.tgz#be7f61c6033a803cde59ec5a29db266b42fdbc01" + integrity sha512-RLdYJPEV4JL/7NBoFUs7VlP90X++5FlJdxHz0DzCjmiD3qCviKy+Cym3qg1gBgHwucs5XisuClxDrGokhAdTQw== + dependencies: + "@aws-sdk/core" "3.635.0" + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-arn-parser" "3.568.0" + "@smithy/core" "^2.4.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/signature-v4" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-stream" "^3.1.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-ssec@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.609.0.tgz#b87a8bc6133f3f6bdc6801183d0f9dad3f93cf9f" + integrity sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.637.0.tgz#2b00de72b00953a477bcc02a68d8cbb5e9670c44" + integrity sha512-EYo0NE9/da/OY8STDsK2LvM4kNa79DBsf4YVtaG4P5pZ615IeFsD8xOHZeuJmUrSMlVQ8ywPRX7WMucUybsKug== + dependencies: + "@aws-sdk/types" "3.609.0" + "@aws-sdk/util-endpoints" "3.637.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/region-config-resolver@3.614.0": + version "3.614.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz#9cebb31a5bcfea2a41891fff7f28d0164cde179a" + integrity sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/types" "^3.3.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + tslib "^2.6.2" + +"@aws-sdk/signature-v4-multi-region@3.635.0": + version "3.635.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.635.0.tgz#76e8eb66bfd9b661b4f9768b18aca2e04dd781a2" + integrity sha512-J6QY4/invOkpogCHjSaDON1hF03viPpOnsrzVuCvJMmclS/iG62R4EY0wq1alYll0YmSdmKlpJwHMWwGtqK63Q== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.635.0" + "@aws-sdk/types" "3.609.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/signature-v4" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.614.0": + version "3.614.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz#88da04f6d4ce916b0b0f6e045676d04201fb47fd" + integrity sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/types@3.609.0", "@aws-sdk/types@^3.222.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.609.0.tgz#06b39d799c9f197a7b43670243e8e78a3bf7d6a5" + integrity sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/util-arn-parser@3.568.0": + version "3.568.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" + integrity sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-endpoints@3.637.0": + version "3.637.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.637.0.tgz#e20bcb69028039fdbc06e98a3028c7f8d8e8adaa" + integrity sha512-pAqOKUHeVWHEXXDIp/qoMk/6jyxIb6GGjnK1/f8dKHtKIEs4tKsnnL563gceEvdad53OPXIt86uoevCcCzmBnw== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + "@smithy/util-endpoints" "^2.0.5" + tslib "^2.6.2" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.568.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff" + integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-browser@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz#aa15421b2e32ae8bc589dac2bd6e8969832ce588" + integrity sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/types" "^3.3.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-node@3.614.0": + version "3.614.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz#1e3f49a80f841a3f21647baed2adce01aac5beb5" + integrity sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA== + dependencies: + "@aws-sdk/types" "3.609.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@aws-sdk/xml-builder@3.609.0": + version "3.609.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz#eeb3d5cde000a23cfeeefe0354b6193440dc7d87" + integrity sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@defillama/sdk@^5.0.10": + version "5.0.83" + resolved "https://registry.yarnpkg.com/@defillama/sdk/-/sdk-5.0.83.tgz#f0f412410d7a99ee7b864887278e710a5479a686" + integrity sha512-JojVjzBR73GoVmyuC6gE7AfMgpWvHm2OEKEMIai53b7nkI91oFAVYu1PoX/YD+wTbOPhZwYWWhdVXR5hYPnNRQ== + dependencies: + "@aws-sdk/client-s3" "^3.400.0" + "@elastic/elasticsearch" "^8.13.1" + "@supercharge/promise-pool" "^2.1.0" + axios "^1.6.5" + ethers "^6.0.0" + p-limit "^3.0.0" + tron-format-address "^0.1.11" + +"@elastic/elasticsearch@^8.13.1": + version "8.15.0" + resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-8.15.0.tgz#cb29b3ae33203c545d435cf3dc4b557c8b4961d5" + integrity sha512-mG90EMdTDoT6GFSdqpUAhWK9LGuiJo6tOWqs0Usd/t15mPQDj7ZqHXfCBqNkASZpwPZpbAYVjd57S6nbUBINCg== + dependencies: + "@elastic/transport" "^8.7.0" + tslib "^2.4.0" + +"@elastic/transport@^8.7.0": + version "8.7.1" + resolved "https://registry.yarnpkg.com/@elastic/transport/-/transport-8.7.1.tgz#b380f0b90ee98ff84892c0958b94477cfbf84a05" + integrity sha512-2eeMVkz57Ayxv+UAZkIKzzrUu7nm96jr3+N3kLfbBqALYe2jwDpLr9pR0jc/x9HyJKAM909YGaNlHFDZeb0+Mw== + dependencies: + "@opentelemetry/api" "1.x" + debug "^4.3.4" + hpagent "^1.0.0" + ms "^2.1.3" + secure-json-parse "^2.4.0" + tslib "^2.4.0" + undici "^6.12.0" + +"@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@opentelemetry/api@1.x": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" + integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@smithy/abort-controller@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.1.tgz#291210611ff6afecfc198d0ca72d5771d8461d16" + integrity sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/chunked-blob-reader-native@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz#f1104b30030f76f9aadcbd3cdca4377bd1ba2695" + integrity sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg== + dependencies: + "@smithy/util-base64" "^3.0.0" + tslib "^2.6.2" + +"@smithy/chunked-blob-reader@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz#e5d3b04e9b273ba8b7ede47461e2aa96c8aa49e0" + integrity sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA== + dependencies: + tslib "^2.6.2" + +"@smithy/config-resolver@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.5.tgz#727978bba7ace754c741c259486a19d3083431fd" + integrity sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA== + dependencies: + "@smithy/node-config-provider" "^3.1.4" + "@smithy/types" "^3.3.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + tslib "^2.6.2" + +"@smithy/core@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.4.0.tgz#56e917b6ab2dffeba681a05395c40a757d681147" + integrity sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w== + dependencies: + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-retry" "^3.0.15" + "@smithy/middleware-serde" "^3.0.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/credential-provider-imds@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz#0e0e7ddaff1a8633cb927aee1056c0ab506b7ecf" + integrity sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA== + dependencies: + "@smithy/node-config-provider" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + tslib "^2.6.2" + +"@smithy/eventstream-codec@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz#4a1c72b34400631b829241151984a1ad8c4f963c" + integrity sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-hex-encoding" "^3.0.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-browser@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.6.tgz#a4ab4f7cfbd137bcaa54c375276f9214e568fd8f" + integrity sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.5" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-config-resolver@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz#f852e096d0ad112363b4685e1d441088d1fce67a" + integrity sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-node@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.5.tgz#2bbf5c9312a28f23bc55ae284efa9499f8b8f982" + integrity sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.5" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-universal@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.5.tgz#e1cc2f71f4d174a03e00ce4b563395a81dd17bec" + integrity sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ== + dependencies: + "@smithy/eventstream-codec" "^3.1.2" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/fetch-http-handler@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz#c754de7e0ff2541b73ac9ba7cc955940114b3d62" + integrity sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg== + dependencies: + "@smithy/protocol-http" "^4.1.0" + "@smithy/querystring-builder" "^3.0.3" + "@smithy/types" "^3.3.0" + "@smithy/util-base64" "^3.0.0" + tslib "^2.6.2" + +"@smithy/hash-blob-browser@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz#90281c1f183d93686fb4f26107f1819644d68829" + integrity sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg== + dependencies: + "@smithy/chunked-blob-reader" "^3.0.0" + "@smithy/chunked-blob-reader-native" "^3.0.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/hash-node@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.3.tgz#82c5cb7b0f1a29ee7319081853d2d158c07dff24" + integrity sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw== + dependencies: + "@smithy/types" "^3.3.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/hash-stream-node@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz#89f0290ae44b113863878e75b10c484ff48af71c" + integrity sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g== + dependencies: + "@smithy/types" "^3.3.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/invalid-dependency@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz#8d9fd70e3a94b565a4eba4ffbdc95238e1930528" + integrity sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/is-array-buffer@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" + integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== + dependencies: + tslib "^2.6.2" + +"@smithy/is-array-buffer@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a" + integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ== + dependencies: + tslib "^2.6.2" + +"@smithy/md5-js@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.3.tgz#55ee40aa24075b096c39f7910590c18ff7660c98" + integrity sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q== + dependencies: + "@smithy/types" "^3.3.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/middleware-content-length@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz#1680aa4fb2a1c0505756103c9a5c2916307d9035" + integrity sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw== + dependencies: + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/middleware-endpoint@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz#9b8a496d87a68ec43f3f1a0139868d6765a88119" + integrity sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw== + dependencies: + "@smithy/middleware-serde" "^3.0.3" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + "@smithy/url-parser" "^3.0.3" + "@smithy/util-middleware" "^3.0.3" + tslib "^2.6.2" + +"@smithy/middleware-retry@^3.0.15": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.15.tgz#9b96900cde70d8aafd267e13f4e79241be90e0c7" + integrity sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ== + dependencies: + "@smithy/node-config-provider" "^3.1.4" + "@smithy/protocol-http" "^4.1.0" + "@smithy/service-error-classification" "^3.0.3" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-retry" "^3.0.3" + tslib "^2.6.2" + uuid "^9.0.1" + +"@smithy/middleware-serde@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz#74d974460f74d99f38c861e6862984543a880a66" + integrity sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/middleware-stack@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz#91845c7e61e6f137fa912b623b6def719a4f6ce7" + integrity sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/node-config-provider@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz#05647bed666aa8036a1ad72323c1942e5d421be1" + integrity sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ== + dependencies: + "@smithy/property-provider" "^3.1.3" + "@smithy/shared-ini-file-loader" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/node-http-handler@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.1.4.tgz#be4195e45639e690d522cd5f11513ea822ff9d5f" + integrity sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg== + dependencies: + "@smithy/abort-controller" "^3.1.1" + "@smithy/protocol-http" "^4.1.0" + "@smithy/querystring-builder" "^3.0.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/property-provider@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.3.tgz#afd57ea82a3f6c79fbda95e3cb85c0ee0a79f39a" + integrity sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/protocol-http@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.0.tgz#23519d8f45bf4f33960ea5415847bc2b620a010b" + integrity sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/querystring-builder@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz#6b0e566f885bb84938d077c69e8f8555f686af13" + integrity sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw== + dependencies: + "@smithy/types" "^3.3.0" + "@smithy/util-uri-escape" "^3.0.0" + tslib "^2.6.2" + +"@smithy/querystring-parser@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz#272a6b83f88dfcbbec8283d72a6bde850cc00091" + integrity sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/service-error-classification@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz#73484255060a094aa9372f6cd972dcaf97e3ce80" + integrity sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ== + dependencies: + "@smithy/types" "^3.3.0" + +"@smithy/shared-ini-file-loader@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz#7dceaf5a5307a2ee347ace8aba17312a1a3ede15" + integrity sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/signature-v4@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.0.tgz#251ff43dc1f4ad66776122732fea9e56efc56443" + integrity sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag== + dependencies: + "@smithy/is-array-buffer" "^3.0.0" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-middleware" "^3.0.3" + "@smithy/util-uri-escape" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/smithy-client@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.2.0.tgz#6db94024e4bdaefa079ac68dbea23dafbea230c8" + integrity sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw== + dependencies: + "@smithy/middleware-endpoint" "^3.1.0" + "@smithy/middleware-stack" "^3.0.3" + "@smithy/protocol-http" "^4.1.0" + "@smithy/types" "^3.3.0" + "@smithy/util-stream" "^3.1.3" + tslib "^2.6.2" + +"@smithy/types@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.3.0.tgz#fae037c733d09bc758946a01a3de0ef6e210b16b" + integrity sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA== + dependencies: + tslib "^2.6.2" + +"@smithy/url-parser@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.3.tgz#e8a060d9810b24b1870385fc2b02485b8a6c5955" + integrity sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A== + dependencies: + "@smithy/querystring-parser" "^3.0.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-base64@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017" + integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ== + dependencies: + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-body-length-browser@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded" + integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-body-length-node@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d" + integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA== + dependencies: + tslib "^2.6.2" + +"@smithy/util-buffer-from@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" + integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-buffer-from@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3" + integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA== + dependencies: + "@smithy/is-array-buffer" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-config-provider@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe" + integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-defaults-mode-browser@^3.0.15": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.15.tgz#df73b9ae3dddc9126e0bb93ebc720b09d7163858" + integrity sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg== + dependencies: + "@smithy/property-provider" "^3.1.3" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@smithy/util-defaults-mode-node@^3.0.15": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.15.tgz#d52476e1f2e66525d918b51f8d5a9b0972bf518e" + integrity sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A== + dependencies: + "@smithy/config-resolver" "^3.0.5" + "@smithy/credential-provider-imds" "^3.2.0" + "@smithy/node-config-provider" "^3.1.4" + "@smithy/property-provider" "^3.1.3" + "@smithy/smithy-client" "^3.2.0" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-endpoints@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz#e3a7a4d1c41250bfd2b2d890d591273a7d8934be" + integrity sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg== + dependencies: + "@smithy/node-config-provider" "^3.1.4" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-hex-encoding@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6" + integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-middleware@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.3.tgz#07bf9602682f5a6c55bc2f0384303f85fc68c87e" + integrity sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw== + dependencies: + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-retry@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.3.tgz#9b2ac0dbb1c81f69812a8affa4d772bebfc0e049" + integrity sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w== + dependencies: + "@smithy/service-error-classification" "^3.0.3" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@smithy/util-stream@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.3.tgz#699ee2397cc1d474e46d2034039d5263812dca64" + integrity sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw== + dependencies: + "@smithy/fetch-http-handler" "^3.2.4" + "@smithy/node-http-handler" "^3.1.4" + "@smithy/types" "^3.3.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-uri-escape@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54" + integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg== + dependencies: + tslib "^2.6.2" + +"@smithy/util-utf8@^2.0.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" + integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-utf8@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a" + integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA== + dependencies: + "@smithy/util-buffer-from" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-waiter@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.2.tgz#2d40c3312f3537feee763459a19acafab4c75cf3" + integrity sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw== + dependencies: + "@smithy/abort-controller" "^3.1.1" + "@smithy/types" "^3.3.0" + tslib "^2.6.2" + +"@supercharge/promise-pool@^2.1.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz#6050eea8c2d7f92ddd4ddc582ee328b15c034ad3" + integrity sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w== + +"@supercharge/promise-pool@^3.1.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-3.2.0.tgz#a6ab4afdf798e453a6bb51c4ae340852e1266af8" + integrity sha512-pj0cAALblTZBPtMltWOlZTQSLT07jIaFNeM8TWoJD1cQMgDB9mcMlVMoetiB35OzNJpqQ2b+QEtwiR9f20mADg== + +"@tsconfig/node10@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/async-retry@^1.4.8": + version "1.4.8" + resolved "https://registry.yarnpkg.com/@types/async-retry/-/async-retry-1.4.8.tgz#eb32df13aceb9ba1a8a80e7fe518ff4e3fe46bb3" + integrity sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA== + dependencies: + "@types/retry" "*" + +"@types/debug@^4.1.8": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/ms@*": + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/node@*": + version "22.5.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.1.tgz#de01dce265f6b99ed32b295962045d10b5b99560" + integrity sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw== + dependencies: + undici-types "~6.19.2" + +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + +"@types/node@^18.7.23": + version "18.19.47" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.47.tgz#18076201ad7dd3445046df6ce9ead5fe5abd9387" + integrity sha512-1f7dB3BL/bpd9tnDJrrHb66Y+cVrhxSOTGorRNdHwYTUlTay3HuTDPKo9a/4vX9pMQkhYBcAbL4jQdNlhCFP9A== + dependencies: + undici-types "~5.26.4" + +"@types/retry@*": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.5.tgz#f090ff4bd8d2e5b940ff270ab39fd5ca1834a07e" + integrity sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw== + +"@types/validator@^13.7.17": + version "13.12.1" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.12.1.tgz#8835d22f7e25b261e624d02a42fe4ade2c689a3c" + integrity sha512-w0URwf7BQb0rD/EuiG12KP0bailHKHP5YVviJG9zw3ykAokL0TuxU2TUqMB7EwZ59bDHYdeTIvjI5m0S7qHfOA== + +acorn-walk@^8.1.1: + version "8.3.3" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" + integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0, acorn@^8.4.1: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +async-retry@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.6.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.5.tgz#21eed340eb5daf47d29b6e002424b3e88c8c54b1" + integrity sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bignumber.js@^9.1.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.1.5: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.3.4: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dotenv@^16.0.3: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +dottie@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.6.tgz#34564ebfc6ec5e5772272d466424ad5b696484d4" + integrity sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +ethers@^6.0.0, ethers@^6.9.2: + version "6.13.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" + integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.17.1" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extract-files@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" + integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== + +fast-xml-parser@4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz#86dbf3f18edf8739326447bcaac31b4ae7f6514f" + integrity sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw== + dependencies: + strnum "^1.0.5" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0, figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +foreground-child@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fuzzy@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" + integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== + +glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +graphql-request@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.1.0.tgz#dbc8feee27d21b993cd5da2d3af67821827b240a" + integrity sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-fetch "^3.1.5" + extract-files "^9.0.0" + form-data "^3.0.0" + +graphql@^16.6.0: + version "16.9.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" + integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +hpagent@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-1.2.0.tgz#0ae417895430eb3770c03443456b8d90ca464903" + integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inflection@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.13.4.tgz#65aa696c4e2da6225b148d7a154c449366633a32" + integrity sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw== + +inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inquirer-autocomplete-prompt@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz#e767592f747e3d5bb6336fe71fb4094352e4c317" + integrity sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + figures "^3.2.0" + run-async "^2.4.0" + rxjs "^6.6.2" + +inquirer-fuzzy-path@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/inquirer-fuzzy-path/-/inquirer-fuzzy-path-2.3.0.tgz#9bc51dc47d7d9c7eb53daac7fd7c9e615eb040c5" + integrity sha512-zfHC/97GSkxKKM7IctZM22x1sVi+FYBh9oaHTmI7Er/GKFpNykUgtviTmqqpiFQs5yJoSowxbT0PHy6N+H+QRg== + dependencies: + ansi-styles "^3.2.1" + fuzzy "^0.1.3" + inquirer "^6.0.0" + inquirer-autocomplete-prompt "^1.0.2" + strip-ansi "^4.0.0" + +inquirer@^6.0.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +inquirer@^8.0.0: + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^6.0.1" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +lodash@^4.17.12, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +moment-timezone@^0.5.43: + version "0.5.45" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" + integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== + dependencies: + moment "^2.29.4" + +moment@^2.29.4: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-limit@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + +pg-connection-string@^2.6.1, pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== + +pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@^8.11.3: + version "8.12.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" + integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry-as-promised@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-7.0.4.tgz#9df73adaeea08cb2948b9d34990549dc13d800a2" + integrity sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA== + +retry@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +run-async@^2.2.0, run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +rxjs@^6.4.0, rxjs@^6.6.2: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.5.5: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +secure-json-parse@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" + integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== + +semver@^7.5.4: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +sequelize-pool@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-7.1.0.tgz#210b391af4002762f823188fd6ecfc7413020768" + integrity sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg== + +sequelize@^6.36.0: + version "6.37.3" + resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.37.3.tgz#ed6212029a52c59a18638d2a703da84bc2f81311" + integrity sha512-V2FTqYpdZjPy3VQrZvjTPnOoLm0KudCRXfGWp48QwhyPPp2yW8z0p0sCYZd/em847Tl2dVxJJ1DR+hF+O77T7A== + dependencies: + "@types/debug" "^4.1.8" + "@types/validator" "^13.7.17" + debug "^4.3.4" + dottie "^2.0.6" + inflection "^1.13.4" + lodash "^4.17.21" + moment "^2.29.4" + moment-timezone "^0.5.43" + pg-connection-string "^2.6.1" + retry-as-promised "^7.0.4" + semver "^7.5.4" + sequelize-pool "^7.1.0" + toposort-class "^1.0.1" + uuid "^8.3.2" + validator "^13.9.0" + wkx "^0.5.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +toposort-class@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988" + integrity sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tron-format-address@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/tron-format-address/-/tron-format-address-0.1.12.tgz#4c6b6ba717a57424e9d12343b1fce0e466690362" + integrity sha512-dtlfwSZEdWA9Cj3Mqypw/WNhQPlQf5JWT+/H5gYX5Viu+ntIq+7zJvcWCrmcDJ48L0EHt2xzGme2eErW9Y7spQ== + +ts-node@^10.9.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typescript@^5.0.0: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + +undici@^6.12.0: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.8.tgz#002d7c8a28f8cc3a44ff33c3d4be4d85e15d40e1" + integrity sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +validator@^13.9.0: + version "13.12.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" + integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wkx@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.5.0.tgz#c6c37019acf40e517cc6b94657a25a3d4aa33e8c" + integrity sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg== + dependencies: + "@types/node" "*" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +ws@8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From ce5d03c4e5b539b652782faf88dce42997af1c4c Mon Sep 17 00:00:00 2001 From: dtmkeng <0xgnek@gmail.com> Date: Fri, 30 Aug 2024 22:25:46 +0800 Subject: [PATCH 234/237] Delete yarn.lock --- yarn.lock | 2443 ----------------------------------------------------- 1 file changed, 2443 deletions(-) delete mode 100644 yarn.lock diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index e5b1fdb1e8..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,2443 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@adraffy/ens-normalize@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" - integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== - -"@aws-crypto/crc32@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1" - integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg== - dependencies: - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - tslib "^2.6.2" - -"@aws-crypto/crc32c@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz#4e34aab7f419307821509a98b9b08e84e0c1917e" - integrity sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag== - dependencies: - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - tslib "^2.6.2" - -"@aws-crypto/sha1-browser@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz#b0ee2d2821d3861f017e965ef3b4cb38e3b6a0f4" - integrity sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg== - dependencies: - "@aws-crypto/supports-web-crypto" "^5.2.0" - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - "@aws-sdk/util-locate-window" "^3.0.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.6.2" - -"@aws-crypto/sha256-browser@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e" - integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== - dependencies: - "@aws-crypto/sha256-js" "^5.2.0" - "@aws-crypto/supports-web-crypto" "^5.2.0" - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - "@aws-sdk/util-locate-window" "^3.0.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.6.2" - -"@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042" - integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== - dependencies: - "@aws-crypto/util" "^5.2.0" - "@aws-sdk/types" "^3.222.0" - tslib "^2.6.2" - -"@aws-crypto/supports-web-crypto@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb" - integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== - dependencies: - tslib "^2.6.2" - -"@aws-crypto/util@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da" - integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== - dependencies: - "@aws-sdk/types" "^3.222.0" - "@smithy/util-utf8" "^2.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-s3@^3.400.0": - version "3.637.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.637.0.tgz#2879bd8ddef84397b65fa9e61bca10bb4ba08211" - integrity sha512-y6UC94fsMvhKbf0dzfnjVP1HePeGjplfcYfilZU1COIJLyTkMcUv4XcT4I407CGIrvgEafONHkiC09ygqUauNA== - dependencies: - "@aws-crypto/sha1-browser" "5.2.0" - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.637.0" - "@aws-sdk/client-sts" "3.637.0" - "@aws-sdk/core" "3.635.0" - "@aws-sdk/credential-provider-node" "3.637.0" - "@aws-sdk/middleware-bucket-endpoint" "3.620.0" - "@aws-sdk/middleware-expect-continue" "3.620.0" - "@aws-sdk/middleware-flexible-checksums" "3.620.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-location-constraint" "3.609.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-sdk-s3" "3.635.0" - "@aws-sdk/middleware-ssec" "3.609.0" - "@aws-sdk/middleware-user-agent" "3.637.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/signature-v4-multi-region" "3.635.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.637.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@aws-sdk/xml-builder" "3.609.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.4.0" - "@smithy/eventstream-serde-browser" "^3.0.6" - "@smithy/eventstream-serde-config-resolver" "^3.0.3" - "@smithy/eventstream-serde-node" "^3.0.5" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-blob-browser" "^3.1.2" - "@smithy/hash-node" "^3.0.3" - "@smithy/hash-stream-node" "^3.1.2" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/md5-js" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.15" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.15" - "@smithy/util-defaults-mode-node" "^3.0.15" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-stream" "^3.1.3" - "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.1.2" - tslib "^2.6.2" - -"@aws-sdk/client-sso-oidc@3.637.0": - version "3.637.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.637.0.tgz#d7e22ce6627c3285bf311e6c9e64c22b99bbd76a" - integrity sha512-27bHALN6Qb6m6KZmPvRieJ/QRlj1lyac/GT2Rn5kJpre8Mpp+yxrtvp3h9PjNBty4lCeFEENfY4dGNSozBuBcw== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.635.0" - "@aws-sdk/credential-provider-node" "3.637.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.637.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.637.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.4.0" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.15" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.15" - "@smithy/util-defaults-mode-node" "^3.0.15" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sso@3.637.0": - version "3.637.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.637.0.tgz#ae152759a5e1e576e1df6b8f4edaf59796e1758e" - integrity sha512-+KjLvgX5yJYROWo3TQuwBJlHCY0zz9PsLuEolmXQn0BVK1L/m9GteZHtd+rEdAoDGBpE0Xqjy1oz5+SmtsaRUw== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.635.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.637.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.637.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.4.0" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.15" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.15" - "@smithy/util-defaults-mode-node" "^3.0.15" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/client-sts@3.637.0": - version "3.637.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.637.0.tgz#6dcde6640d8a5e60dd4a2df8557284a0226d182c" - integrity sha512-xUi7x4qDubtA8QREtlblPuAcn91GS/09YVEY/RwU7xCY0aqGuFwgszAANlha4OUIqva8oVj2WO4gJuG+iaSnhw== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.637.0" - "@aws-sdk/core" "3.635.0" - "@aws-sdk/credential-provider-node" "3.637.0" - "@aws-sdk/middleware-host-header" "3.620.0" - "@aws-sdk/middleware-logger" "3.609.0" - "@aws-sdk/middleware-recursion-detection" "3.620.0" - "@aws-sdk/middleware-user-agent" "3.637.0" - "@aws-sdk/region-config-resolver" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.637.0" - "@aws-sdk/util-user-agent-browser" "3.609.0" - "@aws-sdk/util-user-agent-node" "3.614.0" - "@smithy/config-resolver" "^3.0.5" - "@smithy/core" "^2.4.0" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/hash-node" "^3.0.3" - "@smithy/invalid-dependency" "^3.0.3" - "@smithy/middleware-content-length" "^3.0.5" - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.15" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.15" - "@smithy/util-defaults-mode-node" "^3.0.15" - "@smithy/util-endpoints" "^2.0.5" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/core@3.635.0": - version "3.635.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.635.0.tgz#74b7d0d7fa3aa39f87ea5cf4e6c97d4d84f4ef14" - integrity sha512-i1x/E/sgA+liUE1XJ7rj1dhyXpAKO1UKFUcTTHXok2ARjWTvszHnSXMOsB77aPbmn0fUp1JTx2kHUAZ1LVt5Bg== - dependencies: - "@smithy/core" "^2.4.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" - fast-xml-parser "4.4.1" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-env@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.620.1.tgz#d4692c49a65ebc11dae3f7f8b053fee9268a953c" - integrity sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-http@3.635.0": - version "3.635.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.635.0.tgz#083439af1336693049958e4b61695e4712b30fd4" - integrity sha512-iJyRgEjOCQlBMXqtwPLIKYc7Bsc6nqjrZybdMDenPDa+kmLg7xh8LxHsu9088e+2/wtLicE34FsJJIfzu3L82g== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-ini@3.637.0": - version "3.637.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.637.0.tgz#dae0d8b05c8b9480da5a92beb4dd244985ecbd70" - integrity sha512-h+PFCWfZ0Q3Dx84SppET/TFpcQHmxFW8/oV9ArEvMilw4EBN+IlxgbL0CnHwjHW64szcmrM0mbebjEfHf4FXmw== - dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.635.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.637.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-node@3.637.0": - version "3.637.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.637.0.tgz#0ac6678ab31783adf5b1cf03add5d1da101ea946" - integrity sha512-yoEhoxJJfs7sPVQ6Is939BDQJZpZCoUgKr/ySse4YKOZ24t4VqgHA6+wV7rYh+7IW24Rd91UTvEzSuHYTlxlNA== - dependencies: - "@aws-sdk/credential-provider-env" "3.620.1" - "@aws-sdk/credential-provider-http" "3.635.0" - "@aws-sdk/credential-provider-ini" "3.637.0" - "@aws-sdk/credential-provider-process" "3.620.1" - "@aws-sdk/credential-provider-sso" "3.637.0" - "@aws-sdk/credential-provider-web-identity" "3.621.0" - "@aws-sdk/types" "3.609.0" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-process@3.620.1": - version "3.620.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.620.1.tgz#10387cf85400420bb4bbda9cc56937dcc6d6d0ee" - integrity sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-sso@3.637.0": - version "3.637.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.637.0.tgz#13acf77579df026e89ced33501489defd06a0518" - integrity sha512-Mvz+h+e62/tl+dVikLafhv+qkZJ9RUb8l2YN/LeKMWkxQylPT83CPk9aimVhCV89zth1zpREArl97+3xsfgQvA== - dependencies: - "@aws-sdk/client-sso" "3.637.0" - "@aws-sdk/token-providers" "3.614.0" - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/credential-provider-web-identity@3.621.0": - version "3.621.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.621.0.tgz#b25878c0a05dad60cd5f91e7e5a31a145c2f14be" - integrity sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-bucket-endpoint@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.620.0.tgz#c5dc0e98b6209a91479cad6c2c74fbc5a3429fab" - integrity sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-config-provider" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-expect-continue@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.620.0.tgz#6a362c0f0696dc6749108a33de9998e0fa6b50ec" - integrity sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-flexible-checksums@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.620.0.tgz#42cd48cdc0ad9639545be000bf537969210ce8c5" - integrity sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA== - dependencies: - "@aws-crypto/crc32" "5.2.0" - "@aws-crypto/crc32c" "5.2.0" - "@aws-sdk/types" "3.609.0" - "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-host-header@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.620.0.tgz#b561d419a08a984ba364c193376b482ff5224d74" - integrity sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-location-constraint@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.609.0.tgz#7ed82d71e5ddcd50683ef2bbde10d1cc2492057e" - integrity sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-logger@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.609.0.tgz#ed44d201f091b8bac908cbf14724c7a4d492553f" - integrity sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-recursion-detection@3.620.0": - version "3.620.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.620.0.tgz#f8270dfff843fd756be971e5673f89c6a24c6513" - integrity sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-sdk-s3@3.635.0": - version "3.635.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.635.0.tgz#be7f61c6033a803cde59ec5a29db266b42fdbc01" - integrity sha512-RLdYJPEV4JL/7NBoFUs7VlP90X++5FlJdxHz0DzCjmiD3qCviKy+Cym3qg1gBgHwucs5XisuClxDrGokhAdTQw== - dependencies: - "@aws-sdk/core" "3.635.0" - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-arn-parser" "3.568.0" - "@smithy/core" "^2.4.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-stream" "^3.1.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-ssec@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.609.0.tgz#b87a8bc6133f3f6bdc6801183d0f9dad3f93cf9f" - integrity sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-user-agent@3.637.0": - version "3.637.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.637.0.tgz#2b00de72b00953a477bcc02a68d8cbb5e9670c44" - integrity sha512-EYo0NE9/da/OY8STDsK2LvM4kNa79DBsf4YVtaG4P5pZ615IeFsD8xOHZeuJmUrSMlVQ8ywPRX7WMucUybsKug== - dependencies: - "@aws-sdk/types" "3.609.0" - "@aws-sdk/util-endpoints" "3.637.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/region-config-resolver@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz#9cebb31a5bcfea2a41891fff7f28d0164cde179a" - integrity sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - tslib "^2.6.2" - -"@aws-sdk/signature-v4-multi-region@3.635.0": - version "3.635.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.635.0.tgz#76e8eb66bfd9b661b4f9768b18aca2e04dd781a2" - integrity sha512-J6QY4/invOkpogCHjSaDON1hF03viPpOnsrzVuCvJMmclS/iG62R4EY0wq1alYll0YmSdmKlpJwHMWwGtqK63Q== - dependencies: - "@aws-sdk/middleware-sdk-s3" "3.635.0" - "@aws-sdk/types" "3.609.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/signature-v4" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/token-providers@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz#88da04f6d4ce916b0b0f6e045676d04201fb47fd" - integrity sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/types@3.609.0", "@aws-sdk/types@^3.222.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.609.0.tgz#06b39d799c9f197a7b43670243e8e78a3bf7d6a5" - integrity sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/util-arn-parser@3.568.0": - version "3.568.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" - integrity sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w== - dependencies: - tslib "^2.6.2" - -"@aws-sdk/util-endpoints@3.637.0": - version "3.637.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.637.0.tgz#e20bcb69028039fdbc06e98a3028c7f8d8e8adaa" - integrity sha512-pAqOKUHeVWHEXXDIp/qoMk/6jyxIb6GGjnK1/f8dKHtKIEs4tKsnnL563gceEvdad53OPXIt86uoevCcCzmBnw== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - "@smithy/util-endpoints" "^2.0.5" - tslib "^2.6.2" - -"@aws-sdk/util-locate-window@^3.0.0": - version "3.568.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff" - integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig== - dependencies: - tslib "^2.6.2" - -"@aws-sdk/util-user-agent-browser@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.609.0.tgz#aa15421b2e32ae8bc589dac2bd6e8969832ce588" - integrity sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/types" "^3.3.0" - bowser "^2.11.0" - tslib "^2.6.2" - -"@aws-sdk/util-user-agent-node@3.614.0": - version "3.614.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz#1e3f49a80f841a3f21647baed2adce01aac5beb5" - integrity sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA== - dependencies: - "@aws-sdk/types" "3.609.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@aws-sdk/xml-builder@3.609.0": - version "3.609.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.609.0.tgz#eeb3d5cde000a23cfeeefe0354b6193440dc7d87" - integrity sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@defillama/sdk@^5.0.10": - version "5.0.83" - resolved "https://registry.yarnpkg.com/@defillama/sdk/-/sdk-5.0.83.tgz#f0f412410d7a99ee7b864887278e710a5479a686" - integrity sha512-JojVjzBR73GoVmyuC6gE7AfMgpWvHm2OEKEMIai53b7nkI91oFAVYu1PoX/YD+wTbOPhZwYWWhdVXR5hYPnNRQ== - dependencies: - "@aws-sdk/client-s3" "^3.400.0" - "@elastic/elasticsearch" "^8.13.1" - "@supercharge/promise-pool" "^2.1.0" - axios "^1.6.5" - ethers "^6.0.0" - p-limit "^3.0.0" - tron-format-address "^0.1.11" - -"@elastic/elasticsearch@^8.13.1": - version "8.15.0" - resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-8.15.0.tgz#cb29b3ae33203c545d435cf3dc4b557c8b4961d5" - integrity sha512-mG90EMdTDoT6GFSdqpUAhWK9LGuiJo6tOWqs0Usd/t15mPQDj7ZqHXfCBqNkASZpwPZpbAYVjd57S6nbUBINCg== - dependencies: - "@elastic/transport" "^8.7.0" - tslib "^2.4.0" - -"@elastic/transport@^8.7.0": - version "8.7.1" - resolved "https://registry.yarnpkg.com/@elastic/transport/-/transport-8.7.1.tgz#b380f0b90ee98ff84892c0958b94477cfbf84a05" - integrity sha512-2eeMVkz57Ayxv+UAZkIKzzrUu7nm96jr3+N3kLfbBqALYe2jwDpLr9pR0jc/x9HyJKAM909YGaNlHFDZeb0+Mw== - dependencies: - "@opentelemetry/api" "1.x" - debug "^4.3.4" - hpagent "^1.0.0" - ms "^2.1.3" - secure-json-parse "^2.4.0" - tslib "^2.4.0" - undici "^6.12.0" - -"@graphql-typed-document-node/core@^3.1.1": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" - integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@noble/curves@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" - integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== - dependencies: - "@noble/hashes" "1.3.2" - -"@noble/hashes@1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - -"@opentelemetry/api@1.x": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" - integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@smithy/abort-controller@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.1.tgz#291210611ff6afecfc198d0ca72d5771d8461d16" - integrity sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/chunked-blob-reader-native@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz#f1104b30030f76f9aadcbd3cdca4377bd1ba2695" - integrity sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg== - dependencies: - "@smithy/util-base64" "^3.0.0" - tslib "^2.6.2" - -"@smithy/chunked-blob-reader@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz#e5d3b04e9b273ba8b7ede47461e2aa96c8aa49e0" - integrity sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA== - dependencies: - tslib "^2.6.2" - -"@smithy/config-resolver@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.5.tgz#727978bba7ace754c741c259486a19d3083431fd" - integrity sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - tslib "^2.6.2" - -"@smithy/core@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.4.0.tgz#56e917b6ab2dffeba681a05395c40a757d681147" - integrity sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w== - dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-retry" "^3.0.15" - "@smithy/middleware-serde" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/credential-provider-imds@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.0.tgz#0e0e7ddaff1a8633cb927aee1056c0ab506b7ecf" - integrity sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - tslib "^2.6.2" - -"@smithy/eventstream-codec@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.2.tgz#4a1c72b34400631b829241151984a1ad8c4f963c" - integrity sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw== - dependencies: - "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^3.3.0" - "@smithy/util-hex-encoding" "^3.0.0" - tslib "^2.6.2" - -"@smithy/eventstream-serde-browser@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.6.tgz#a4ab4f7cfbd137bcaa54c375276f9214e568fd8f" - integrity sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ== - dependencies: - "@smithy/eventstream-serde-universal" "^3.0.5" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/eventstream-serde-config-resolver@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.3.tgz#f852e096d0ad112363b4685e1d441088d1fce67a" - integrity sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/eventstream-serde-node@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.5.tgz#2bbf5c9312a28f23bc55ae284efa9499f8b8f982" - integrity sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ== - dependencies: - "@smithy/eventstream-serde-universal" "^3.0.5" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/eventstream-serde-universal@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.5.tgz#e1cc2f71f4d174a03e00ce4b563395a81dd17bec" - integrity sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ== - dependencies: - "@smithy/eventstream-codec" "^3.1.2" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/fetch-http-handler@^3.2.4": - version "3.2.4" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.4.tgz#c754de7e0ff2541b73ac9ba7cc955940114b3d62" - integrity sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg== - dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" - "@smithy/util-base64" "^3.0.0" - tslib "^2.6.2" - -"@smithy/hash-blob-browser@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.2.tgz#90281c1f183d93686fb4f26107f1819644d68829" - integrity sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg== - dependencies: - "@smithy/chunked-blob-reader" "^3.0.0" - "@smithy/chunked-blob-reader-native" "^3.0.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/hash-node@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.3.tgz#82c5cb7b0f1a29ee7319081853d2d158c07dff24" - integrity sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw== - dependencies: - "@smithy/types" "^3.3.0" - "@smithy/util-buffer-from" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/hash-stream-node@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.2.tgz#89f0290ae44b113863878e75b10c484ff48af71c" - integrity sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g== - dependencies: - "@smithy/types" "^3.3.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/invalid-dependency@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.3.tgz#8d9fd70e3a94b565a4eba4ffbdc95238e1930528" - integrity sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/is-array-buffer@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" - integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== - dependencies: - tslib "^2.6.2" - -"@smithy/is-array-buffer@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a" - integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ== - dependencies: - tslib "^2.6.2" - -"@smithy/md5-js@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.3.tgz#55ee40aa24075b096c39f7910590c18ff7660c98" - integrity sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q== - dependencies: - "@smithy/types" "^3.3.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/middleware-content-length@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.5.tgz#1680aa4fb2a1c0505756103c9a5c2916307d9035" - integrity sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw== - dependencies: - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/middleware-endpoint@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.0.tgz#9b8a496d87a68ec43f3f1a0139868d6765a88119" - integrity sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw== - dependencies: - "@smithy/middleware-serde" "^3.0.3" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/url-parser" "^3.0.3" - "@smithy/util-middleware" "^3.0.3" - tslib "^2.6.2" - -"@smithy/middleware-retry@^3.0.15": - version "3.0.15" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.15.tgz#9b96900cde70d8aafd267e13f4e79241be90e0c7" - integrity sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/protocol-http" "^4.1.0" - "@smithy/service-error-classification" "^3.0.3" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-retry" "^3.0.3" - tslib "^2.6.2" - uuid "^9.0.1" - -"@smithy/middleware-serde@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.3.tgz#74d974460f74d99f38c861e6862984543a880a66" - integrity sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/middleware-stack@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.3.tgz#91845c7e61e6f137fa912b623b6def719a4f6ce7" - integrity sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/node-config-provider@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz#05647bed666aa8036a1ad72323c1942e5d421be1" - integrity sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ== - dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/shared-ini-file-loader" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/node-http-handler@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.1.4.tgz#be4195e45639e690d522cd5f11513ea822ff9d5f" - integrity sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg== - dependencies: - "@smithy/abort-controller" "^3.1.1" - "@smithy/protocol-http" "^4.1.0" - "@smithy/querystring-builder" "^3.0.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/property-provider@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.3.tgz#afd57ea82a3f6c79fbda95e3cb85c0ee0a79f39a" - integrity sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/protocol-http@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.0.tgz#23519d8f45bf4f33960ea5415847bc2b620a010b" - integrity sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/querystring-builder@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.3.tgz#6b0e566f885bb84938d077c69e8f8555f686af13" - integrity sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw== - dependencies: - "@smithy/types" "^3.3.0" - "@smithy/util-uri-escape" "^3.0.0" - tslib "^2.6.2" - -"@smithy/querystring-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.3.tgz#272a6b83f88dfcbbec8283d72a6bde850cc00091" - integrity sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/service-error-classification@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.3.tgz#73484255060a094aa9372f6cd972dcaf97e3ce80" - integrity sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ== - dependencies: - "@smithy/types" "^3.3.0" - -"@smithy/shared-ini-file-loader@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz#7dceaf5a5307a2ee347ace8aba17312a1a3ede15" - integrity sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/signature-v4@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.1.0.tgz#251ff43dc1f4ad66776122732fea9e56efc56443" - integrity sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag== - dependencies: - "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-middleware" "^3.0.3" - "@smithy/util-uri-escape" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/smithy-client@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.2.0.tgz#6db94024e4bdaefa079ac68dbea23dafbea230c8" - integrity sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw== - dependencies: - "@smithy/middleware-endpoint" "^3.1.0" - "@smithy/middleware-stack" "^3.0.3" - "@smithy/protocol-http" "^4.1.0" - "@smithy/types" "^3.3.0" - "@smithy/util-stream" "^3.1.3" - tslib "^2.6.2" - -"@smithy/types@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.3.0.tgz#fae037c733d09bc758946a01a3de0ef6e210b16b" - integrity sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA== - dependencies: - tslib "^2.6.2" - -"@smithy/url-parser@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.3.tgz#e8a060d9810b24b1870385fc2b02485b8a6c5955" - integrity sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A== - dependencies: - "@smithy/querystring-parser" "^3.0.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-base64@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017" - integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ== - dependencies: - "@smithy/util-buffer-from" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/util-body-length-browser@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded" - integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ== - dependencies: - tslib "^2.6.2" - -"@smithy/util-body-length-node@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d" - integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA== - dependencies: - tslib "^2.6.2" - -"@smithy/util-buffer-from@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" - integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== - dependencies: - "@smithy/is-array-buffer" "^2.2.0" - tslib "^2.6.2" - -"@smithy/util-buffer-from@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3" - integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA== - dependencies: - "@smithy/is-array-buffer" "^3.0.0" - tslib "^2.6.2" - -"@smithy/util-config-provider@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe" - integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ== - dependencies: - tslib "^2.6.2" - -"@smithy/util-defaults-mode-browser@^3.0.15": - version "3.0.15" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.15.tgz#df73b9ae3dddc9126e0bb93ebc720b09d7163858" - integrity sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg== - dependencies: - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - bowser "^2.11.0" - tslib "^2.6.2" - -"@smithy/util-defaults-mode-node@^3.0.15": - version "3.0.15" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.15.tgz#d52476e1f2e66525d918b51f8d5a9b0972bf518e" - integrity sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A== - dependencies: - "@smithy/config-resolver" "^3.0.5" - "@smithy/credential-provider-imds" "^3.2.0" - "@smithy/node-config-provider" "^3.1.4" - "@smithy/property-provider" "^3.1.3" - "@smithy/smithy-client" "^3.2.0" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-endpoints@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz#e3a7a4d1c41250bfd2b2d890d591273a7d8934be" - integrity sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg== - dependencies: - "@smithy/node-config-provider" "^3.1.4" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-hex-encoding@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6" - integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ== - dependencies: - tslib "^2.6.2" - -"@smithy/util-middleware@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.3.tgz#07bf9602682f5a6c55bc2f0384303f85fc68c87e" - integrity sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw== - dependencies: - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-retry@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.3.tgz#9b2ac0dbb1c81f69812a8affa4d772bebfc0e049" - integrity sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w== - dependencies: - "@smithy/service-error-classification" "^3.0.3" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@smithy/util-stream@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.1.3.tgz#699ee2397cc1d474e46d2034039d5263812dca64" - integrity sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw== - dependencies: - "@smithy/fetch-http-handler" "^3.2.4" - "@smithy/node-http-handler" "^3.1.4" - "@smithy/types" "^3.3.0" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-buffer-from" "^3.0.0" - "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" - tslib "^2.6.2" - -"@smithy/util-uri-escape@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54" - integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg== - dependencies: - tslib "^2.6.2" - -"@smithy/util-utf8@^2.0.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" - integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== - dependencies: - "@smithy/util-buffer-from" "^2.2.0" - tslib "^2.6.2" - -"@smithy/util-utf8@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a" - integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA== - dependencies: - "@smithy/util-buffer-from" "^3.0.0" - tslib "^2.6.2" - -"@smithy/util-waiter@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.2.tgz#2d40c3312f3537feee763459a19acafab4c75cf3" - integrity sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw== - dependencies: - "@smithy/abort-controller" "^3.1.1" - "@smithy/types" "^3.3.0" - tslib "^2.6.2" - -"@supercharge/promise-pool@^2.1.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz#6050eea8c2d7f92ddd4ddc582ee328b15c034ad3" - integrity sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w== - -"@supercharge/promise-pool@^3.1.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-3.2.0.tgz#a6ab4afdf798e453a6bb51c4ae340852e1266af8" - integrity sha512-pj0cAALblTZBPtMltWOlZTQSLT07jIaFNeM8TWoJD1cQMgDB9mcMlVMoetiB35OzNJpqQ2b+QEtwiR9f20mADg== - -"@tsconfig/node10@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" - integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/async-retry@^1.4.8": - version "1.4.8" - resolved "https://registry.yarnpkg.com/@types/async-retry/-/async-retry-1.4.8.tgz#eb32df13aceb9ba1a8a80e7fe518ff4e3fe46bb3" - integrity sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA== - dependencies: - "@types/retry" "*" - -"@types/debug@^4.1.8": - version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - dependencies: - "@types/ms" "*" - -"@types/ms@*": - version "0.7.34" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== - -"@types/node@*": - version "22.5.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.1.tgz#de01dce265f6b99ed32b295962045d10b5b99560" - integrity sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw== - dependencies: - undici-types "~6.19.2" - -"@types/node@18.15.13": - version "18.15.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" - integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== - -"@types/node@^18.7.23": - version "18.19.47" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.47.tgz#18076201ad7dd3445046df6ce9ead5fe5abd9387" - integrity sha512-1f7dB3BL/bpd9tnDJrrHb66Y+cVrhxSOTGorRNdHwYTUlTay3HuTDPKo9a/4vX9pMQkhYBcAbL4jQdNlhCFP9A== - dependencies: - undici-types "~5.26.4" - -"@types/retry@*": - version "0.12.5" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.5.tgz#f090ff4bd8d2e5b940ff270ab39fd5ca1834a07e" - integrity sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw== - -"@types/validator@^13.7.17": - version "13.12.1" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.12.1.tgz#8835d22f7e25b261e624d02a42fe4ade2c689a3c" - integrity sha512-w0URwf7BQb0rD/EuiG12KP0bailHKHP5YVviJG9zw3ykAokL0TuxU2TUqMB7EwZ59bDHYdeTIvjI5m0S7qHfOA== - -acorn-walk@^8.1.1: - version "8.3.3" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" - integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1: - version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== - -aes-js@4.0.0-beta.5: - version "4.0.0-beta.5" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" - integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== - -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -async-retry@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== - dependencies: - retry "0.13.1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -axios@^1.6.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.5.tgz#21eed340eb5daf47d29b6e002424b3e88c8c54b1" - integrity sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bignumber.js@^9.1.0: - version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" - integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== - -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bowser@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" - integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== - dependencies: - restore-cursor "^2.0.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.5.0: - version "2.9.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" - integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.5: - version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - dependencies: - node-fetch "^2.6.12" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.4: - version "4.3.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== - dependencies: - ms "2.1.2" - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dotenv@^16.0.3: - version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" - integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== - -dottie@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.6.tgz#34564ebfc6ec5e5772272d466424ad5b696484d4" - integrity sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -ethers@^6.0.0, ethers@^6.9.2: - version "6.13.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" - integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== - dependencies: - "@adraffy/ens-normalize" "1.10.1" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@types/node" "18.15.13" - aes-js "4.0.0-beta.5" - tslib "2.4.0" - ws "8.17.1" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extract-files@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" - integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== - -fast-xml-parser@4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz#86dbf3f18edf8739326447bcaac31b4ae7f6514f" - integrity sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw== - dependencies: - strnum "^1.0.5" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== - dependencies: - escape-string-regexp "^1.0.5" - -figures@^3.0.0, figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -follow-redirects@^1.15.6: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== - -foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fuzzy@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" - integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== - -glob@^10.3.10: - version "10.4.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" - integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -graphql-request@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.1.0.tgz#dbc8feee27d21b993cd5da2d3af67821827b240a" - integrity sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - cross-fetch "^3.1.5" - extract-files "^9.0.0" - form-data "^3.0.0" - -graphql@^16.6.0: - version "16.9.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" - integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hpagent@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-1.2.0.tgz#0ae417895430eb3770c03443456b8d90ca464903" - integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -inflection@^1.13.4: - version "1.13.4" - resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.13.4.tgz#65aa696c4e2da6225b148d7a154c449366633a32" - integrity sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw== - -inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inquirer-autocomplete-prompt@^1.0.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz#e767592f747e3d5bb6336fe71fb4094352e4c317" - integrity sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw== - dependencies: - ansi-escapes "^4.3.1" - chalk "^4.0.0" - figures "^3.2.0" - run-async "^2.4.0" - rxjs "^6.6.2" - -inquirer-fuzzy-path@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/inquirer-fuzzy-path/-/inquirer-fuzzy-path-2.3.0.tgz#9bc51dc47d7d9c7eb53daac7fd7c9e615eb040c5" - integrity sha512-zfHC/97GSkxKKM7IctZM22x1sVi+FYBh9oaHTmI7Er/GKFpNykUgtviTmqqpiFQs5yJoSowxbT0PHy6N+H+QRg== - dependencies: - ansi-styles "^3.2.1" - fuzzy "^0.1.3" - inquirer "^6.0.0" - inquirer-autocomplete-prompt "^1.0.2" - strip-ansi "^4.0.0" - -inquirer@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -inquirer@^8.0.0: - version "8.2.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" - integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^6.0.1" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -lodash@^4.17.12, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimatch@^9.0.4: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -moment-timezone@^0.5.43: - version "0.5.45" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.45.tgz#cb685acd56bac10e69d93c536366eb65aa6bcf5c" - integrity sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ== - dependencies: - moment "^2.29.4" - -moment@^2.29.4: - version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" - integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -node-fetch@^2.6.12: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -p-limit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -package-json-from-dist@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" - integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -pg-cloudflare@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" - integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== - -pg-connection-string@^2.6.1, pg-connection-string@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" - integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-pool@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" - integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== - -pg-protocol@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" - integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== - -pg-types@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg@^8.11.3: - version "8.12.0" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" - integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== - dependencies: - pg-connection-string "^2.6.4" - pg-pool "^3.6.2" - pg-protocol "^1.6.1" - pg-types "^2.1.0" - pgpass "1.x" - optionalDependencies: - pg-cloudflare "^1.1.1" - -pgpass@1.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" - integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== - dependencies: - split2 "^4.1.0" - -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== - -postgres-date@~1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" - integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -retry-as-promised@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-7.0.4.tgz#9df73adaeea08cb2948b9d34990549dc13d800a2" - integrity sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA== - -retry@0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -run-async@^2.2.0, run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -rxjs@^6.4.0, rxjs@^6.6.2: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.5.5: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -secure-json-parse@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" - integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== - -semver@^7.5.4: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -sequelize-pool@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-7.1.0.tgz#210b391af4002762f823188fd6ecfc7413020768" - integrity sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg== - -sequelize@^6.36.0: - version "6.37.3" - resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-6.37.3.tgz#ed6212029a52c59a18638d2a703da84bc2f81311" - integrity sha512-V2FTqYpdZjPy3VQrZvjTPnOoLm0KudCRXfGWp48QwhyPPp2yW8z0p0sCYZd/em847Tl2dVxJJ1DR+hF+O77T7A== - dependencies: - "@types/debug" "^4.1.8" - "@types/validator" "^13.7.17" - debug "^4.3.4" - dottie "^2.0.6" - inflection "^1.13.4" - lodash "^4.17.21" - moment "^2.29.4" - moment-timezone "^0.5.43" - pg-connection-string "^2.6.1" - retry-as-promised "^7.0.4" - semver "^7.5.4" - sequelize-pool "^7.1.0" - toposort-class "^1.0.1" - uuid "^8.3.2" - validator "^13.9.0" - wkx "^0.5.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -split2@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strnum@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" - integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -toposort-class@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988" - integrity sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tron-format-address@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/tron-format-address/-/tron-format-address-0.1.12.tgz#4c6b6ba717a57424e9d12343b1fce0e466690362" - integrity sha512-dtlfwSZEdWA9Cj3Mqypw/WNhQPlQf5JWT+/H5gYX5Viu+ntIq+7zJvcWCrmcDJ48L0EHt2xzGme2eErW9Y7spQ== - -ts-node@^10.9.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" - integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -typescript@^5.0.0: - version "5.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -undici-types@~6.19.2: - version "6.19.8" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" - integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== - -undici@^6.12.0: - version "6.19.8" - resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.8.tgz#002d7c8a28f8cc3a44ff33c3d4be4d85e15d40e1" - integrity sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g== - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -validator@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" - integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wkx@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/wkx/-/wkx-0.5.0.tgz#c6c37019acf40e517cc6b94657a25a3d4aa33e8c" - integrity sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg== - dependencies: - "@types/node" "*" - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -ws@8.17.1: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From e117ed3ef9e37f9f08c1c6a4a3608a1a2924a5ff Mon Sep 17 00:00:00 2001 From: Dackie Date: Sat, 31 Aug 2024 16:50:29 +0700 Subject: [PATCH 235/237] DackieSwap update volume Linea --- dexs/dackieswap-v2/index.ts | 4 +++- dexs/dackieswap/index.ts | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dexs/dackieswap-v2/index.ts b/dexs/dackieswap-v2/index.ts index 51e8e9048c..5d27c7663b 100644 --- a/dexs/dackieswap-v2/index.ts +++ b/dexs/dackieswap-v2/index.ts @@ -12,6 +12,7 @@ const endpoints: ChainEndpoints = { [CHAIN.BLAST]: "https://api.studio.thegraph.com/query/50473/v2-blast/version/latest", [CHAIN.MODE]: "https://api.studio.thegraph.com/query/50473/v2-mode/version/latest", [CHAIN.XLAYER]: "https://api.studio.thegraph.com/query/50473/v2-xlayer/version/latest", + [CHAIN.LINEA]: "https://api.studio.thegraph.com/query/50473/v2-linea/version/latest", }; // Fetch function to query the subgraphs @@ -57,7 +58,8 @@ const adapter: SimpleAdapter = { : chain === CHAIN.BLAST ? 1709722800 : chain === CHAIN.MODE ? 1712371653 : chain === CHAIN.XLAYER ? 1712369493 - : 0, + : chain === CHAIN.LINEA ? 1725062400 + : 0, customBackfill: customBackfill(chain, graphs), meta: {methodology}, } diff --git a/dexs/dackieswap/index.ts b/dexs/dackieswap/index.ts index 4c41209576..d3195a126c 100644 --- a/dexs/dackieswap/index.ts +++ b/dexs/dackieswap/index.ts @@ -16,6 +16,8 @@ const v3Endpoint = { "https://api.studio.thegraph.com/query/50473/v3-mode/version/latest", [CHAIN.XLAYER]: "https://api.studio.thegraph.com/query/50473/v3-xlayer/version/latest", + [CHAIN.LINEA]: + "https://api.studio.thegraph.com/query/50473/v3-linea/version/latest", }; const VOLUME_USD = "volumeUSD"; @@ -45,6 +47,7 @@ const v3StartTimes = { [CHAIN.BLAST]: 1709722800, [CHAIN.MODE]: 1712371653, [CHAIN.XLAYER]: 1712369493, + [CHAIN.LINEA]: 1725062400, } as IJSON; const adapter: SimpleAdapter = { @@ -73,6 +76,10 @@ const adapter: SimpleAdapter = { fetch: v3Graph(CHAIN.XLAYER), start: async () => v3StartTimes[CHAIN.XLAYER] }, + [CHAIN.LINEA]: { + fetch: v3Graph(CHAIN.LINEA), + start: async () => v3StartTimes[CHAIN.LINEA] + }, }, version: 2 }; From cc54b4383d3a441685607fef054e82420b926ebd Mon Sep 17 00:00:00 2001 From: 0xngmi <80541789+0xngmi@users.noreply.github.com> Date: Sat, 31 Aug 2024 12:20:42 +0100 Subject: [PATCH 236/237] Update index.ts --- aggregator-derivatives/vooi/index.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/aggregator-derivatives/vooi/index.ts b/aggregator-derivatives/vooi/index.ts index 1e93de568f..357ac70945 100644 --- a/aggregator-derivatives/vooi/index.ts +++ b/aggregator-derivatives/vooi/index.ts @@ -11,7 +11,7 @@ const startTimestampBase = 1722470400; // 01.08.2024 const fetchArbitrum = async (options: FetchOptions): Promise => { const timestamp = options.toTimestamp - const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) + const fetchData = await fetchURL(`${URL}${endpoint}?ts=${timestamp}`) // returns data for the day before let orderlyItem = fetchData.find(((item) => item.protocol == "orderly")) if (!orderlyItem) { orderlyItem = {dailyVolume: 0, totalVolume: 0} @@ -84,6 +84,5 @@ const adapter: SimpleAdapter = { start: startTimestampBase }, }, - version: 2 } -export default adapter \ No newline at end of file +export default adapter From 37702526718f3ab4773e05c9723d9f01c5e054e1 Mon Sep 17 00:00:00 2001 From: MonkeyD1uffy <34332336+MonkeyD1uffy@users.noreply.github.com> Date: Sat, 31 Aug 2024 23:56:30 +0700 Subject: [PATCH 237/237] Update index.ts Update API URL --- dexs/lifinity/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexs/lifinity/index.ts b/dexs/lifinity/index.ts index 9de281e50c..21641df9a3 100644 --- a/dexs/lifinity/index.ts +++ b/dexs/lifinity/index.ts @@ -5,7 +5,7 @@ import { CHAIN } from "../../helpers/chains"; import customBackfill from "../../helpers/customBackfill"; import { getUniqStartOfTodayTimestamp } from "../../helpers/getUniSubgraphVolume"; -const historicalVolumeEndpoint = "https://lifinity.io/api/dashboard/volume" +const historicalVolumeEndpoint = "https://api.lifinity.io/api/dashboard/volume" interface IVolumeall { volume: number;