From 3b3e065110079b71ff08568fb53758d8c19a8a14 Mon Sep 17 00:00:00 2001 From: 0xgnek <0xgnek@gmail.com> Date: Tue, 28 Jan 2025 16:29:21 +0000 Subject: [PATCH] enable reservoir-tools-clmm --- helpers/chains.ts | 1 + protocols/reservoir-tools-clmm.ts | 61 +++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 protocols/reservoir-tools-clmm.ts diff --git a/helpers/chains.ts b/helpers/chains.ts index 7bfd4b396e..1a9474dd14 100644 --- a/helpers/chains.ts +++ b/helpers/chains.ts @@ -208,6 +208,7 @@ export enum CHAIN { ZERO = "zero_network", SHAPE = "shape", ABSTRACT = "abstract", + REDSTONE = "redstone", } // DonĀ“t use diff --git a/protocols/reservoir-tools-clmm.ts b/protocols/reservoir-tools-clmm.ts new file mode 100644 index 0000000000..dc829a6e6c --- /dev/null +++ b/protocols/reservoir-tools-clmm.ts @@ -0,0 +1,61 @@ +import { FetchOptions, SimpleAdapter } from "../adapters/types"; +import { CHAIN } from "../helpers/chains"; +import { DEFAULT_TOTAL_VOLUME_FIELD, getGraphDimensions2 } from "../helpers/getUniSubgraph"; + +const v3Endpoints: { [key: string]: string } = { + [CHAIN.ABSTRACT]: "https://graph-node.internal.reservoir.tools/subgraphs/name/abstract/v3-subgraph", + [CHAIN.ZERO]: "https://graph-node.internal.reservoir.tools/subgraphs/name/zero/v3-subgraph", + [CHAIN.SHAPE]: "https://graph-node.internal.reservoir.tools/subgraphs/name/shape/v3-subgraph", + [CHAIN.REDSTONE]: "https://graph-node.internal.reservoir.tools/subgraphs/name/redstone/v3-subgraph", +} + +// https://graph-node.internal.reservoir.tools/subgraphs/name/abstract/v3-subgraph +// https://graph-node.internal.reservoir.tools/subgraphs/name/zero/v3-subgraph +// https://graph-node.internal.reservoir.tools/subgraphs/name/shape/v3-subgraph +// https://graph-node.internal.reservoir.tools/subgraphs/name/redstone/v3-subgraph +// https://graph-node.internal.reservoir.tools/subgraphs/name/ink/v3-subgraph + +const v3Graphs = getGraphDimensions2({ + graphUrls: v3Endpoints, + totalVolume: { + factory: "factories", + field: DEFAULT_TOTAL_VOLUME_FIELD, + }, + feesPercent: { + type: "fees", + ProtocolRevenue: 0, + HoldersRevenue: 0, + UserFees: 100, // User fees are 100% of collected fees + SupplySideRevenue: 100, // 100% of fees are going to LPs + Revenue: 0 // Revenue is 100% of collected fees + } +}); + + +const adapters: SimpleAdapter = { + version: 2, + adapter: { + [CHAIN.ABSTRACT]: { + fetch: (options: FetchOptions) => { + return v3Graphs(options.chain)(options) + } + }, + [CHAIN.ZERO]: { + fetch: (options: FetchOptions) => { + return v3Graphs(options.chain)(options) + } + }, + [CHAIN.SHAPE]: { + fetch: (options: FetchOptions) => { + return v3Graphs(options.chain)(options) + } + }, + [CHAIN.REDSTONE]: { + fetch: (options: FetchOptions) => { + return v3Graphs(options.chain)(options) + } + }, + } +} + +export default adapters