From 38769208475c597dcfd43c162f74ee9dd1713cd2 Mon Sep 17 00:00:00 2001 From: JD Date: Thu, 2 Jan 2025 14:16:52 -0500 Subject: [PATCH 1/3] update tokenlists --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 00060ab..47df320 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.18.0", "license": "MIT", "dependencies": { - "@indexcoop/tokenlists": "3.1.2", + "@indexcoop/tokenlists": "3.5.0", "ethers": "5.7.2" }, "devDependencies": { @@ -2969,9 +2969,9 @@ "dev": true }, "node_modules/@indexcoop/tokenlists": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@indexcoop/tokenlists/-/tokenlists-3.1.2.tgz", - "integrity": "sha512-mmv2GTPrpFAA4G+mK0QU/cvTNpyq5o3ZakiimZdZ6WyeF/qYCzY2hDFgHjJJOxV0+U9DzqJfaTFAjOt8hQZ3SQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@indexcoop/tokenlists/-/tokenlists-3.5.0.tgz", + "integrity": "sha512-gynGTc6RIfAgv0kFyxNro3Lo6FHIECwL18lsGVYAG3/Pfght66zf3TXkXpmOuxEXYpQf3ZPUwmccT85gW88Bbg==", "dependencies": { "@uniswap/token-lists": "^1.0.0-beta.34", "viem": "^2.21.14" @@ -19131,9 +19131,9 @@ "dev": true }, "@indexcoop/tokenlists": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@indexcoop/tokenlists/-/tokenlists-3.1.2.tgz", - "integrity": "sha512-mmv2GTPrpFAA4G+mK0QU/cvTNpyq5o3ZakiimZdZ6WyeF/qYCzY2hDFgHjJJOxV0+U9DzqJfaTFAjOt8hQZ3SQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@indexcoop/tokenlists/-/tokenlists-3.5.0.tgz", + "integrity": "sha512-gynGTc6RIfAgv0kFyxNro3Lo6FHIECwL18lsGVYAG3/Pfght66zf3TXkXpmOuxEXYpQf3ZPUwmccT85gW88Bbg==", "requires": { "@uniswap/token-lists": "^1.0.0-beta.34", "viem": "^2.21.14" diff --git a/package.json b/package.json index 1c48270..2f4360d 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "access": "public" }, "dependencies": { - "@indexcoop/tokenlists": "3.1.2", + "@indexcoop/tokenlists": "3.5.0", "ethers": "5.7.2" } } From 1b38d8a3244c8c8bb429e008798d69cba8602fb1 Mon Sep 17 00:00:00 2001 From: JD Date: Thu, 2 Jan 2025 14:17:10 -0500 Subject: [PATCH 2/3] add new morpho component --- src/providers/nav/hyeth.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/providers/nav/hyeth.ts b/src/providers/nav/hyeth.ts index 549e214..5ca9c95 100644 --- a/src/providers/nav/hyeth.ts +++ b/src/providers/nav/hyeth.ts @@ -36,7 +36,7 @@ export class HyEthNavProvider { } isMorpho(token: string) { - return isSameAddress(token, "0x78Fc2c2eD1A4cDb5402365934aE5648aDAd094d0") + return isSameAddress(token, "0xc554929a61d862F2741077F8aafa147479c0b308") } isPendle(token: string) { From 29ca3f3bc5438b1a3b7a8df1cf25c4b84653bd77 Mon Sep 17 00:00:00 2001 From: JD Date: Thu, 2 Jan 2025 14:18:49 -0500 Subject: [PATCH 3/3] add test for hyeth --- src/providers/analytics/provider.test.ts | 38 ++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/providers/analytics/provider.test.ts b/src/providers/analytics/provider.test.ts index 9be34e4..1f6d3c2 100644 --- a/src/providers/analytics/provider.test.ts +++ b/src/providers/analytics/provider.test.ts @@ -56,6 +56,44 @@ describe("IndexAnalyticsProvider", () => { expect(analyticsData.volume24h).toEqual(volume) }) + test("returns complete analytics data (hyETH)", async () => { + const address = "0xc4506022Fb8090774E8A628d5084EED61D9B99Ee" + const provider = new IndexAnalyticsProvider(coingeckoService, rpcUrl) + const analyticsData = await provider.getAnalytics(address, 1) + const marketCap = await new IndexMarketCapProvider( + rpcProvider, + coingeckoService, + ).getMarketCap(address) + const navPrice = await new IndexNavProvider( + rpcProvider, + coingeckoService, + ).getNav(address) + const supplyProvider = new IndexSupplyProvider(rpcProvider) + const totalSupply = await supplyProvider.getSupply(address) + const coingeckoRes = await coingeckoService.getTokenPrice({ + address, + chainId: ChainId.Mainnet, + baseCurrency: "usd", + include24hrChange: true, + include24hrVol: true, + }) + const change24h = coingeckoRes[address.toLowerCase()]["usd_24h_change"] + const marketPrice = coingeckoRes[address.toLowerCase()]["usd"] + const volume = coingeckoRes[address.toLowerCase()]["usd_24h_vol"] + expect(analyticsData.address).toEqual(address) + expect(analyticsData.name).toEqual("High Yield ETH Index") + expect(analyticsData.symbol).toEqual("hyETH") + expect(analyticsData.decimals).toEqual(18) + expect(analyticsData.marketCap).toEqual(marketCap) + expect(analyticsData.marketPrice).toEqual(marketPrice) + expect(analyticsData.navPrice).toBeCloseTo(navPrice) + expect(analyticsData.totalSupply).toEqual( + utils.formatUnits(totalSupply.toString()), + ) + expect(analyticsData.change24h).toEqual(change24h) + expect(analyticsData.volume24h).toEqual(volume) + }) + test("returns complete analytics data - arbitrum", async () => { const address = "0x3bDd0d5c0C795b2Bf076F5C8F177c58e42beC0E6" // BTC3X const chainId = ChainId.Arbitrum