import { describe } from "node:test"; import { CirclesSdk } from "@ingocollatz/sdk"; import { QueryMode, SortOrder } from "@ingocollatz/sdk-interfaces"; import { TEST_DATA } from "./config"; const testData = TEST_DATA; describe("getHubTransfers", async () => { it("should return 2 transfer items descending", async () => { const transfers = await CirclesSdk.getHubTransfers({ fromAddress: testData.safeAddress.toLowerCase(), toAddress: testData.safeAddress.toLowerCase(), mode: QueryMode.Or, limit: 2, sortOrder: SortOrder.Descending, }); const item0 = transfers[0]; expect(item0.transactionHash).toEqual("0xfa41c1e3a599dcc09cb9c9d3e709fb43ab462257cb17230cceba788053d23f07"); expect(item0.amount).toEqual("2400000000000000000000"); expect(item0.blockNumber).toEqual("29855173"); expect(item0.fromAddress === testData.safeAddress.toLowerCase() || item0.toAddress === testData.safeAddress.toLowerCase()).toBeTruthy(); const item1 = transfers[1]; expect(item1.transactionHash).toEqual("0xe7dcb46946e1e033d3f3190392487997b74619986079a42f667032a4979f104e"); expect(item1.amount).toEqual("600000000000000000000"); expect(item1.blockNumber).toEqual("29705941"); expect(item1.fromAddress === testData.safeAddress.toLowerCase() || item1.toAddress === testData.safeAddress.toLowerCase()).toBeTruthy(); }); it("should return 2 transfer items descending from a specific cursor", async () => { const transfers = await CirclesSdk.getHubTransfers( { fromAddress: testData.safeAddress.toLowerCase(), toAddress: testData.safeAddress.toLowerCase(), mode: QueryMode.Or, limit: 2, sortOrder: SortOrder.Descending, cursor: "26493408-2-2" } ); const item0 = transfers[0]; expect(item0.transactionHash).toEqual("0x41f160c3cd230b0d440c65deab21d16fa6fdf2bfc5a9f665b39000ffa45cf4eb"); expect(item0.amount).toEqual("3907026758000000"); expect(item0.blockNumber).toEqual("26493290"); expect(item0.fromAddress === testData.safeAddress.toLowerCase() || item0.toAddress === testData.safeAddress.toLowerCase()).toBeTruthy(); const item1 = transfers[1]; expect(item1.transactionHash).toEqual("0xb1b2f85c1a77a56dc8b4c3ecad18347f4986fbe405637b3626dcb480a7c30f53"); expect(item1.amount).toEqual("3903369765001000000"); expect(item1.blockNumber).toEqual("26420218"); expect(item1.fromAddress === testData.safeAddress.toLowerCase() || item1.toAddress === testData.safeAddress.toLowerCase()).toBeTruthy(); }); it("should return 2 transfer items ascending from a specific cursor", async () => { const transfers = await CirclesSdk.getHubTransfers( { fromAddress: testData.safeAddress.toLowerCase(), toAddress: testData.safeAddress.toLowerCase(), mode: QueryMode.Or, limit: 2, sortOrder: SortOrder.Ascending, cursor: "15795056-8-1" }); const item0 = transfers[0]; expect(item0.transactionHash).toEqual("0x26f634529c33bd914673a8658fa29dabf358fba96266415f477f8fed7d856b44"); expect(item0.amount).toEqual("1000000000000000"); expect(item0.blockNumber).toEqual("15799095"); expect(item0.fromAddress === testData.safeAddress.toLowerCase() || item0.toAddress === testData.safeAddress.toLowerCase()).toBeTruthy(); const item1 = transfers[1]; expect(item1.transactionHash).toEqual("0xabd24d9d21d4023914be287313c2fd208f7752672eff847994b4b61d506a5250"); expect(item1.amount).toEqual("10000000000000000"); expect(item1.blockNumber).toEqual("15813963"); expect(item1.fromAddress === testData.safeAddress.toLowerCase() || item1.toAddress === testData.safeAddress.toLowerCase()).toBeTruthy(); }); it("should return one incoming and one outgoing transfer item descending", async () => { const transfers = await CirclesSdk.getHubTransfers({ fromAddress: testData.safeAddress.toLowerCase(), toAddress: testData.safeAddress.toLowerCase(), mode: QueryMode.Or, limit: 2, sortOrder: SortOrder.Descending, cursor: "27069843-17-2" }); const item0 = transfers[0]; expect(item0.transactionHash).toEqual("0xe856bc6b9fa9e681fe9913c8cbe3e328dd2aad51e3c39f1d48ef29c462adfb3a"); expect(item0.amount).toEqual("786525141684000000"); expect(item0.fromAddress).not.toEqual(testData.safeAddress.toLowerCase()); expect(item0.blockNumber).toEqual("27069805"); expect(item0.toAddress).toEqual(testData.safeAddress.toLowerCase()); const item1 = transfers[1]; expect(item1.transactionHash).toEqual("0x764928b1510592e039aaf618fe35a845b107aee02c762ce2c8fbfde3171061a7"); expect(item1.amount).toEqual("11797877125257000000"); expect(item1.fromAddress).toEqual(testData.safeAddress.toLowerCase()); expect(item1.blockNumber).toEqual("27069797"); expect(item1.toAddress).not.toEqual(testData.safeAddress.toLowerCase()); }); it("should return one incoming and one outgoing transfer item ascending", async () => { const transfers = await CirclesSdk.getHubTransfers({ fromAddress: testData.safeAddress.toLowerCase(), toAddress: testData.safeAddress.toLowerCase(), mode: QueryMode.Or, limit: 2, sortOrder: SortOrder.Ascending, cursor: "27069843-17-2" }); const item0 = transfers[0]; expect(item0.transactionHash).toEqual("0x16a094753a115132ec8ffa8334ec302ac265b9dddab8a6b313ed174d17601c8c"); expect(item0.amount).toEqual("1179787712526000000"); expect(item0.toAddress).toEqual(testData.safeAddress.toLowerCase()); expect(item0.blockNumber).toEqual("27070192"); expect(item0.fromAddress).not.toEqual(testData.safeAddress.toLowerCase()); const item1 = transfers[1]; expect(item1.transactionHash).toEqual("0x0d8caba784fc2c3913e7d6fe44308ba20014da3108ca9dd53e33a506f374ca64"); expect(item1.amount).toEqual("3932625708419000000"); expect(item1.toAddress).not.toEqual(testData.safeAddress.toLowerCase()); expect(item1.blockNumber).toEqual("27071131"); expect(item1.fromAddress).toEqual(testData.safeAddress.toLowerCase()); }); });