From b801e68f1dcad3c98ed398bee5d76b189d28a568 Mon Sep 17 00:00:00 2001 From: thatben Date: Tue, 18 Mar 2025 15:05:35 +0100 Subject: [PATCH] replaces zkeyhash with recent slotfill events --- codexcrawler/services/marketplace.nim | 21 ++++++++++---------- tests/codexcrawler/mocks/mockmarketplace.nim | 6 +++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/codexcrawler/services/marketplace.nim b/codexcrawler/services/marketplace.nim index c1f037b..318032e 100644 --- a/codexcrawler/services/marketplace.nim +++ b/codexcrawler/services/marketplace.nim @@ -1,6 +1,5 @@ import pkg/ethers import pkg/questionable - import ./marketplace/market import ./marketplace/marketplace import ../config @@ -15,15 +14,17 @@ type state: State market: ?OnChainMarket -method getZkeyhash*(m: MarketplaceService): Future[?!string] {.async: (raises: []), base.} = - try: - if market =? m.market: - without zkeyhash =? await market.getZkeyHash(): - return failure("Failed to get zkeyHash") - return success(zkeyhash) - return failure("MarketplaceService is not started") - except CatchableError as err: - return failure("Error while getting zkeyHash: " & err.msg) +method getRecentSlotFillEvents*(m: MarketplaceService): Future[?!seq[SlotFilled]] {.async: (raises: []), base.} = + # There is (aprox.) 1 block every 10 seconds. + # 10 seconds * 6 * 60 = 3600 = 1 hour. + let blocksAgo = 6 * 60; + + if market =? m.market: + try: + return success(await market.queryPastSlotFilledEvents(blocksAgo)) + except CatchableError as err: + return failure(err.msg) + return failure("MarketplaceService is not started") method start*(m: MarketplaceService): Future[?!void] {.async.} = let provider = JsonRpcProvider.new(m.state.config.ethProvider) diff --git a/tests/codexcrawler/mocks/mockmarketplace.nim b/tests/codexcrawler/mocks/mockmarketplace.nim index c38d865..2f90e6b 100644 --- a/tests/codexcrawler/mocks/mockmarketplace.nim +++ b/tests/codexcrawler/mocks/mockmarketplace.nim @@ -12,10 +12,10 @@ logScope: type MockMarketplaceService* = ref object of MarketplaceService - zkeyHashReturn*: ?!string + recentSlotFillEventsReturn*: ?!seq[SlotFilled] -method getZkeyhash*(m: MockMarketplaceService): Future[?!string] {.async: (raises: []).} = - return m.zkeyHashReturn +method getRecentSlotFillEvents*(m: MarketplaceService): Future[?!seq[SlotFilled]] {.async: (raises: []).} = + return m.recentSlotFillEventsReturn proc createMockMarketplaceService*(): MockMarketplaceService = MockMarketplaceService()