From 720dde70f7d517a949ce57c92c3f4685e5bb7c5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20K=C4=99dzia?= <67273035+KedziaPawel@users.noreply.github.com> Date: Mon, 29 Jan 2024 12:15:47 +0100 Subject: [PATCH] feat: add uniswap v3 get pool --- .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], + }); +}