From 0f3a05922ea26c4b85e6fbd53bdc815442be6ced Mon Sep 17 00:00:00 2001 From: KedziaPawel <67273035+KedziaPawel@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:00:56 +0100 Subject: [PATCH] feat: add uniswap v3 get pool (#378) --- .changeset/slimy-nails-rule.md | 5 +++++ .../src/Portfolio/Integrations/UniswapV3.ts | 19 ++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 .changeset/slimy-nails-rule.md diff --git a/.changeset/slimy-nails-rule.md b/.changeset/slimy-nails-rule.md new file mode 100644 index 00000000..06d87b55 --- /dev/null +++ b/.changeset/slimy-nails-rule.md @@ -0,0 +1,5 @@ +--- +"@enzymefinance/sdk": patch +--- + +Add uniswap v3 get pool diff --git a/packages/sdk/src/Portfolio/Integrations/UniswapV3.ts b/packages/sdk/src/Portfolio/Integrations/UniswapV3.ts index 0f318534..8a5a6cb3 100644 --- a/packages/sdk/src/Portfolio/Integrations/UniswapV3.ts +++ b/packages/sdk/src/Portfolio/Integrations/UniswapV3.ts @@ -1,4 +1,4 @@ -import { type Address, type Hex, PublicClient, decodeAbiParameters, encodeAbiParameters } from "viem"; +import { type Address, type Hex, PublicClient, decodeAbiParameters, encodeAbiParameters, parseAbi } from "viem"; import { Viem } from "../../Utils.js"; import * as ExternalPositionManager from "../../_internal/ExternalPositionManager.js"; import * as IntegrationManager from "../../_internal/IntegrationManager.js"; @@ -527,3 +527,20 @@ export async function getPendingFees( return { pendingFees0, pendingFees1 }; } + +export function getPool( + client: PublicClient, + args: Viem.ContractCallParameters<{ + factory: Address; + tokenA: Address; + tokenB: Address; + fee: number; + }>, +) { + return Viem.readContract(client, args, { + abi: parseAbi(["function getPool(address,address,uint24) view returns (address)"]), + functionName: "getPool", + address: args.factory, + args: [args.tokenA, args.tokenB, args.fee], + }); +}