From 9734c5e50a06e4ae055d5e44845e40420ea106b0 Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Fri, 20 Jun 2025 13:34:09 +0200 Subject: [PATCH 1/3] Skip Safe Balances for non-safes --- packages/agent-sdk/src/evm/safe.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/agent-sdk/src/evm/safe.ts b/packages/agent-sdk/src/evm/safe.ts index c7c8c83..1dae451 100644 --- a/packages/agent-sdk/src/evm/safe.ts +++ b/packages/agent-sdk/src/evm/safe.ts @@ -1,6 +1,7 @@ import { type Address, checksumAddress, parseUnits } from "viem"; import { type UserToken, ZerionAPI } from "zerion-sdk"; import { scientificToDecimal } from "../misc"; +import { getClient } from "near-safe"; export interface TokenBalance { tokenAddress: string | null; // null for native token @@ -53,6 +54,12 @@ export async function getSafeBalances( address: Address, zerionKey?: string, ): Promise { + const client = await getClient(chainId); + const codeAt = await client.getCode({address}); + if (!codeAt) { + // Not a Safe - Get balances from Zerion. + return getZerionBalances(chainId, address, zerionKey); + } const baseUrl = safeTxServiceUrlFor(chainId); if (!baseUrl) { console.warn( From 85dd1f82837626ecbc2e9498a041de752711c37f Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Fri, 20 Jun 2025 13:35:43 +0200 Subject: [PATCH 2/3] Format code --- packages/agent-sdk/src/evm/safe.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/agent-sdk/src/evm/safe.ts b/packages/agent-sdk/src/evm/safe.ts index 1dae451..ed625ba 100644 --- a/packages/agent-sdk/src/evm/safe.ts +++ b/packages/agent-sdk/src/evm/safe.ts @@ -55,7 +55,7 @@ export async function getSafeBalances( zerionKey?: string, ): Promise { const client = await getClient(chainId); - const codeAt = await client.getCode({address}); + const codeAt = await client.getCode({ address }); if (!codeAt) { // Not a Safe - Get balances from Zerion. return getZerionBalances(chainId, address, zerionKey); From ed611f4e5c7c73d7b1f5a86c678e7b2c56b726a3 Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Fri, 20 Jun 2025 13:38:33 +0200 Subject: [PATCH 3/3] Remove no longer necessary test --- packages/agent-sdk/tests/evm/safe.spec.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/agent-sdk/tests/evm/safe.spec.ts b/packages/agent-sdk/tests/evm/safe.spec.ts index 0ad056e..083685e 100644 --- a/packages/agent-sdk/tests/evm/safe.spec.ts +++ b/packages/agent-sdk/tests/evm/safe.spec.ts @@ -1,4 +1,3 @@ -import { zeroAddress } from "viem"; import { getSafeBalances, flatSafeBalances, @@ -17,10 +16,6 @@ describe("getSafeBalances", () => { console.warn = originalWarn; }); - it("should throw error for unsupported chain ID", async () => { - await expect(getSafeBalances(999, zeroAddress)).resolves.toEqual([]); - }); - it("zerionToTokenBalance should transform scientific notation balance", () => { expect( zerionToTokenBalance({