diff --git a/index.ts b/index.ts index 585adb8..ff216c6 100644 --- a/index.ts +++ b/index.ts @@ -604,13 +604,6 @@ export class BalancerPoolsAPI extends Stack { updatePrices.addMethod('POST', updateTokenPricesIntegration); addCorsOptions(updatePrices); - const test = api.root.addResource('test'); - const testFunction = new NodejsFunction(this, 'testFunction', { - entry: join(__dirname, 'src', 'lambdas', 'test-function.ts'), - ...nodeJsFunctionProps, - }); - test.addMethod('GET', new LambdaIntegration(testFunction)); - const sor = api.root.addResource('sor'); const sorOnChain = sor.addResource('{chainId}'); sorOnChain.addMethod('POST', runSORIntegration, { diff --git a/package-lock.json b/package-lock.json index 219c157..20fbc26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@aws-cdk/aws-appsync-alpha": "^2.33.0-alpha.0", "@aws/dynamodb-auto-marshaller": "^0.7.1", - "@balancer-labs/sdk": "^1.1.6-beta.20", + "@balancer-labs/sdk": "^1.1.6-beta.23", "@ethersproject/contracts": "^5.0.5", "@ethersproject/providers": "^5.0.5", "@sentry/serverless": "^7.29.0", @@ -676,9 +676,9 @@ } }, "node_modules/@balancer-labs/sdk": { - "version": "1.1.6-beta.20", - "resolved": "https://registry.npmjs.org/@balancer-labs/sdk/-/sdk-1.1.6-beta.20.tgz", - "integrity": "sha512-EPPcF8DL8WRBriu/onSwO1ztJZrfgu0T9n9bLBkxtqHzkFK4WsXF9iX14qj7xCoPCap+YEQ+8tVB7W82fEPJsA==", + "version": "1.1.6-beta.23", + "resolved": "https://registry.npmjs.org/@balancer-labs/sdk/-/sdk-1.1.6-beta.23.tgz", + "integrity": "sha512-wcFMU0O2wqdnUUhe7jOM5ikr6ipYP7vmqygiDKB2lSlN3hgd/AOTgsw4E7tMuwlf7xUpLC5hRNi4WiRivrZHBQ==", "dependencies": { "@balancer-labs/sor": "^4.1.1-beta.17", "@ethersproject/abi": "^5.4.0", @@ -6329,6 +6329,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -6548,7 +6549,8 @@ "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true }, "node_modules/graphql": { "version": "15.8.0", @@ -7125,6 +7127,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, "engines": { "node": ">= 4" } @@ -8450,6 +8453,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -8919,6 +8923,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -9851,6 +9856,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, "engines": { "node": ">=6" } @@ -10264,6 +10270,7 @@ "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -11237,6 +11244,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, "engines": { "node": ">= 4.0.0" } @@ -11574,7 +11582,8 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/yaml": { "version": "2.2.1", @@ -12135,9 +12144,9 @@ } }, "@balancer-labs/sdk": { - "version": "1.1.6-beta.20", - "resolved": "https://registry.npmjs.org/@balancer-labs/sdk/-/sdk-1.1.6-beta.20.tgz", - "integrity": "sha512-EPPcF8DL8WRBriu/onSwO1ztJZrfgu0T9n9bLBkxtqHzkFK4WsXF9iX14qj7xCoPCap+YEQ+8tVB7W82fEPJsA==", + "version": "1.1.6-beta.23", + "resolved": "https://registry.npmjs.org/@balancer-labs/sdk/-/sdk-1.1.6-beta.23.tgz", + "integrity": "sha512-wcFMU0O2wqdnUUhe7jOM5ikr6ipYP7vmqygiDKB2lSlN3hgd/AOTgsw4E7tMuwlf7xUpLC5hRNi4WiRivrZHBQ==", "requires": { "@balancer-labs/sor": "^4.1.1-beta.17", "@ethersproject/abi": "^5.4.0", @@ -16200,6 +16209,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -16348,7 +16358,8 @@ "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true }, "graphql": { "version": "15.8.0", @@ -16785,7 +16796,8 @@ "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true }, "immutable": { "version": "4.2.2", @@ -17766,6 +17778,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -18088,6 +18101,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } @@ -18761,7 +18775,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "qs": { "version": "6.9.7", @@ -19041,6 +19056,7 @@ "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -19765,7 +19781,8 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true }, "unpipe": { "version": "1.0.0", @@ -20039,7 +20056,8 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yaml": { "version": "2.2.1", diff --git a/package.json b/package.json index 08ef086..4e15591 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "dependencies": { "@aws-cdk/aws-appsync-alpha": "^2.33.0-alpha.0", "@aws/dynamodb-auto-marshaller": "^0.7.1", - "@balancer-labs/sdk": "^1.1.6-beta.20", + "@balancer-labs/sdk": "^1.1.6-beta.23", "@ethersproject/contracts": "^5.0.5", "@ethersproject/providers": "^5.0.5", "@sentry/serverless": "^7.29.0", diff --git a/src/config/arbitrum.json b/src/config/arbitrum.json index 7c3f0fd..e350ac2 100644 --- a/src/config/arbitrum.json +++ b/src/config/arbitrum.json @@ -4,6 +4,8 @@ "GqlChain": "ARBITRUM", "rpc": "https://arbitrum-mainnet.infura.io/v3/{{INFURA_PROJECT_ID}}", "subgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/98cQDy6tufTJtshDCuhh9z2kWXsQWBHVh2bqnLHsGAeS", + "gaugesSubgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/Bb1hVjJZ52kL23chZyyGWJKrGEg3S6euuNa1YA6XRU4J", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/arbitrum-blocks/version/latest", "addresses": { "nativeAsset": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "wrappedNativeAsset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", diff --git a/src/config/avalanche.json b/src/config/avalanche.json index b3dfddd..f825404 100644 --- a/src/config/avalanche.json +++ b/src/config/avalanche.json @@ -4,6 +4,8 @@ "GqlChain": "AVALANCHE", "rpc": "https://avalanche-mainnet.infura.io/v3/{{INFURA_PROJECT_ID}}", "subgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/7asfmtQA1KYu6CP7YVm5kv4bGxVyfAHEiptt2HMFgkHu", + "gaugesSubgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/GzGBUh1X4Cq9RBdyKoCrPLhYW1saBYHwFBgcTsARPYUG", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/avalanche-blocks/version/latest", "addresses": { "nativeAsset": "0x0000000000000000000000000000000000000000", "wrappedNativeAsset": "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7", diff --git a/src/config/base.json b/src/config/base.json index 180dbb2..3a445e1 100644 --- a/src/config/base.json +++ b/src/config/base.json @@ -4,6 +4,8 @@ "GqlChain": "BASE", "rpc": "https://developer-access-mainnet.base.org", "subgraph": "https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest", + "gaugesSubgraph": "https://api.studio.thegraph.com/query/24660/balancer-gauges-base/version/latest", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/bleu-base-blocks/version/latest", "addresses": { "nativeAsset": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "wrappedNativeAsset": "0x4200000000000000000000000000000000000006", diff --git a/src/config/fraxtal.json b/src/config/fraxtal.json index 7decf3d..3590fc2 100644 --- a/src/config/fraxtal.json +++ b/src/config/fraxtal.json @@ -4,6 +4,8 @@ "GqlChain": "FRAXTAL", "rpc": "https://rpc.frax.com/", "subgraph": "https://api.goldsky.com/api/public/project_clwhu1vopoigi01wmbn514m1z/subgraphs/balancer-fraxtal-v2/latest/gn", + "gaugesSubgraph": "https://api.goldsky.com/api/public/project_clwhu1vopoigi01wmbn514m1z/subgraphs/balancer-gauges-fraxtal/latest/gn", + "blocksSubgraph": "https://api.goldsky.com/api/public/project_clwhu1vopoigi01wmbn514m1z/subgraphs/fraxtal-blocks/1.0.0/gn", "addresses": { "nativeAsset": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "wrappedNativeAsset": "0xfc00000000000000000000000000000000000006", diff --git a/src/config/gnosis-chain.json b/src/config/gnosis-chain.json index 8b748a4..481632f 100644 --- a/src/config/gnosis-chain.json +++ b/src/config/gnosis-chain.json @@ -4,6 +4,8 @@ "GqlChain": "GNOSIS", "rpc": "https://poa-xdai.gateway.pokt.network/v1/lb/91bc0e12a76e7a84dd76189d", "subgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/EJezH1Cp31QkKPaBDerhVPRWsKVZLrDfzjrLqpmv6cGg", + "gaugesSubgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/HW5XpZBi2iYDLBqqEEMiRJFx8ZJAQak9uu5TzyH9BBxy", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/gnosis-blocks/version/latest", "addresses": { "nativeAsset": "", "wrappedNativeAsset": "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d", diff --git a/src/config/index.ts b/src/config/index.ts index 7cc627a..50c120f 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -2,7 +2,6 @@ import { Network } from '@/constants'; import arbitrum from './arbitrum.json'; import avalanche from './avalanche.json'; import base from './base.json'; -import goerli from './goerli.json'; import gnosis from './gnosis-chain.json'; import mainnet from './mainnet.json'; import polygon from './polygon.json'; @@ -17,6 +16,8 @@ export interface Config { network: string; rpc: string; subgraph: string; + gaugesSubgraph: string; + blocksSubgraph: string; GqlChain: string; addresses: { nativeAsset: string; @@ -33,7 +34,6 @@ export interface Config { const config: Record = { [Network.MAINNET]: mainnet, - [Network.GOERLI]: goerli, [Network.POLYGON]: polygon, [Network.ARBITRUM]: arbitrum, [Network.GNOSIS]: gnosis, diff --git a/src/config/mainnet.json b/src/config/mainnet.json index 66563ac..e0f708b 100644 --- a/src/config/mainnet.json +++ b/src/config/mainnet.json @@ -4,6 +4,8 @@ "GqlChain": "MAINNET", "rpc": "https://mainnet.infura.io/v3/{{INFURA_PROJECT_ID}}", "subgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/C4ayEZP2yTXRAB8vSaTrgN4m9anTe9Mdm2ViyiAuV9TV", + "gaugesSubgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/4sESujoqmztX6pbichs4wZ1XXyYrkooMuHA8sKkYxpTn", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/ethereum-blocks/version/latest", "addresses": { "nativeAsset": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "wrappedNativeAsset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", diff --git a/src/config/mode.json b/src/config/mode.json index 937e4cc..71f9abe 100644 --- a/src/config/mode.json +++ b/src/config/mode.json @@ -4,6 +4,8 @@ "GqlChain": "MODE", "rpc": "https://1rpc.io/mode", "subgraph": "https://api.studio.thegraph.com/proxy/75376/balancer-mode-v2/version/latest", + "gaugesSubgraph": "https://api.studio.thegraph.com/query/75376/balancer-gauges-mode/version/latest", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/bleu-mode-blocks/version/latest", "addresses": { "nativeAsset": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "wrappedNativeAsset": "0x4200000000000000000000000000000000000006", diff --git a/src/config/optimism.json b/src/config/optimism.json index 1c747e8..1642b2c 100644 --- a/src/config/optimism.json +++ b/src/config/optimism.json @@ -4,6 +4,8 @@ "GqlChain": "OPTIMISM", "rpc": "https://optimism-mainnet.infura.io/v3/{{INFURA_PROJECT_ID}}", "subgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/FsmdxmvBJLGjUQPxKMRtcWKzuCNpomKuMTbSbtRtggZ7", + "gaugesSubgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/CbLt7GqU7sypjRaCfwissEBkFeCw3dUz2emrvBNJ7dZu", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/optimism-blocks/version/latest", "addresses": { "nativeAsset": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "wrappedNativeAsset": "0x4200000000000000000000000000000000000006", diff --git a/src/config/polygon.json b/src/config/polygon.json index 2263320..b25eaf3 100644 --- a/src/config/polygon.json +++ b/src/config/polygon.json @@ -4,6 +4,8 @@ "GqlChain": "POLYGON", "rpc": "https://polygon-mainnet.infura.io/v3/{{INFURA_PROJECT_ID}}", "subgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/H9oPAbXnobBRq1cB3HDmbZ1E8MWQyJYQjT1QDJMrdbNp", + "gaugesSubgraph": "https://gateway-arbitrum.network.thegraph.com/api/{{SUBGRAPH_API_KEY}}/subgraphs/id/FxSLKXiieSqBCjDGPbqayhqbxyNtwaEC5M3rxr6hUa8h", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/polygon-blocks/version/latest", "addresses": { "nativeAsset": "0x0000000000000000000000000000000000001010", "wrappedNativeAsset": "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270", diff --git a/src/config/sepolia.json b/src/config/sepolia.json index da76fcf..32d1dcb 100644 --- a/src/config/sepolia.json +++ b/src/config/sepolia.json @@ -4,6 +4,8 @@ "GqlChain": "SEPOLIA", "rpc": "https://sepolia.infura.io/v3/{{INFURA_KEY}}", "subgraph": "https://api.studio.thegraph.com/query/24660/balancer-sepolia-v2/version/latest", + "gaugesSubgraph": "https://api.studio.thegraph.com/query/24660/balancer-gauges-sepolia/version/latest", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/bleu-sepolia-blocks/version/latest", "addresses": { "nativeAsset": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "wrappedNativeAsset": "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9", diff --git a/src/config/zkevm.json b/src/config/zkevm.json index 8209e32..0c3bffc 100644 --- a/src/config/zkevm.json +++ b/src/config/zkevm.json @@ -4,6 +4,8 @@ "GqlChain": "ZKEVM", "rpc": "https://polygonzkevm-mainnet.g.alchemy.com/v2/{{ALCHEMY_KEY}}", "subgraph": "https://api.studio.thegraph.com/query/24660/balancer-polygon-zk-v2/version/latest", + "gaugesSubgraph": "https://api.studio.thegraph.com/query/24660/balancer-gauges-polygon-zk/version/latest", + "blocksSubgraph": "https://api.studio.thegraph.com/query/48427/bleu-polygon-zkevm-blocks/version/latest", "addresses": { "nativeAsset": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "wrappedNativeAsset": "0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9", diff --git a/src/lambdas/test-function.ts b/src/lambdas/test-function.ts deleted file mode 100644 index a91f050..0000000 --- a/src/lambdas/test-function.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const handler = async () => { - return { - statusCode: 200, - body: 'OK', - }; -}; diff --git a/src/modules/network/network.ts b/src/modules/network/network.ts index 338c911..7afe9f0 100644 --- a/src/modules/network/network.ts +++ b/src/modules/network/network.ts @@ -49,6 +49,40 @@ export function getSubgraphUrl(networkId: number): string { return subgraphUrl; } +export function getBlockNumberSubgraphUrl(networkId: number): string { + requireValidNetworkId(networkId); + + const templateUrl = configs[networkId].blocksSubgraph; + if (templateUrl.match(/SUBGRAPH_API_KEY/) && SUBGRAPH_API_KEY == null) { + throw new Error( + `SUBGRAPH_API_KEY env variable must be set for network ${networkId}` + ); + } + + const subgraphUrl = template(templateUrl, { + SUBGRAPH_API_KEY, + }); + + return subgraphUrl; +} + +export function getGaugesSubgraphUrl(networkId: number): string { + requireValidNetworkId(networkId); + + const templateUrl = configs[networkId].gaugesSubgraph; + if (templateUrl.match(/SUBGRAPH_API_KEY/) && SUBGRAPH_API_KEY == null) { + throw new Error( + `SUBGRAPH_API_KEY env variable must be set for network ${networkId}` + ); + } + + const subgraphUrl = template(templateUrl, { + SUBGRAPH_API_KEY, + }); + + return subgraphUrl; +} + export function isValidNetworkId(networkId: number): boolean { return Object.values(Network).includes(networkId); } diff --git a/src/modules/pools/pool.decorator.ts b/src/modules/pools/pool.decorator.ts index 33b1fc4..7b3b397 100644 --- a/src/modules/pools/pool.decorator.ts +++ b/src/modules/pools/pool.decorator.ts @@ -9,18 +9,28 @@ import { BalancerSdkConfig, BalancerSDK, BalancerNetworkConfig, + BALANCER_NETWORK_CONFIG, PoolType, } from '@balancer-labs/sdk'; import debug from 'debug'; import util from 'util'; -import { getRpcUrl, getSubgraphUrl } from '@/modules/network'; +import { + getRpcUrl, + getSubgraphUrl, + getBlockNumberSubgraphUrl, + getGaugesSubgraphUrl, +} from '@/modules/network'; import { Token, tokensToTokenPrices } from '@/modules/tokens'; import { PoolService } from './pool.service'; const log = debug('balancer:pool-decorator'); const UNKNOWN_POOL_TYPES = ['HighAmpComposableStable']; -const IGNORED_POOL_TYPES = [...UNKNOWN_POOL_TYPES, PoolType.Element, PoolType.Managed]; +const IGNORED_POOL_TYPES = [ + ...UNKNOWN_POOL_TYPES, + PoolType.Element, + PoolType.Managed, +]; export interface PoolDecoratorOptions { chainId?: number; @@ -52,9 +62,16 @@ export class PoolDecorator { const poolsToDecorate = this.options.poolsToDecorate || this.pools; const balancerConfig: BalancerSdkConfig = { - network: chainId, + network: { + ...BALANCER_NETWORK_CONFIG[chainId], + urls: { + ...BALANCER_NETWORK_CONFIG[chainId].urls, + subgraph: getSubgraphUrl(chainId), + blockNumberSubgraph: getBlockNumberSubgraphUrl(chainId), + gaugesSubgraph: getGaugesSubgraphUrl(chainId), + }, + }, rpcUrl: getRpcUrl(chainId), - customSubgraphUrl: getSubgraphUrl(chainId), }; const balancerSdk = new BalancerSDK(balancerConfig); const dataRepositories = balancerSdk.data; @@ -101,7 +118,7 @@ export class PoolDecorator { this.poolsRepositories ); } catch (e) { - captureException(e, { extra: { pool } }) + captureException(e, { extra: { pool } }); console.log( `Failed to initialize pool service. Error is: ${e}. Pool is: ${util.inspect( pool,