From 5c5bbd0d87b608c96c53f8810e085ea6a26f0ef7 Mon Sep 17 00:00:00 2001 From: Arnaud Date: Fri, 31 Jan 2025 09:54:48 +0100 Subject: [PATCH] Simplify cid usage --- codex/node.nim | 19 ++++++------------- codex/sales/salescontext.nim | 3 ++- codex/sales/states/filled.nim | 3 +-- tests/codex/node/testcontracts.nim | 2 +- tests/codex/sales/states/testfilled.nim | 2 +- tests/codex/sales/testsales.nim | 4 ++-- tests/integration/testecbug.nim | 2 +- tests/integration/testpurchasing.nim | 2 +- 8 files changed, 15 insertions(+), 22 deletions(-) diff --git a/codex/node.nim b/codex/node.nim index e09f1946..ae1d7ef4 100644 --- a/codex/node.nim +++ b/codex/node.nim @@ -495,16 +495,14 @@ proc onStore( ## store data in local storage ## + let cid = request.content.cid + logScope: - cid = request.content.cid + cid = $cid.data.buffer slotIdx = slotIdx trace "Received a request to store a slot" - without cid =? Cid.init(request.content.cid.data.buffer).mapFailure, err: - trace "Unable to parse Cid", cid - return failure(err) - without manifest =? (await self.fetchManifest(cid)), err: trace "Unable to fetch manifest for cid", cid, err = err.msg return failure(err) @@ -623,14 +621,9 @@ proc onProve( failure "Prover not enabled" proc onExpiryUpdate( - self: CodexNodeRef, rootCid: seq[byte], expiry: SecondsSince1970 + self: CodexNodeRef, rootCid: Cid, expiry: SecondsSince1970 ): Future[?!void] {.async.} = - without cid =? Cid.init(rootCid): - trace "Unable to parse Cid", cid - let error = newException(CodexError, "Unable to parse Cid") - return failure(error) - - return await self.updateExpiry(cid, expiry) + return await self.updateExpiry(rootCid, expiry) proc onClear(self: CodexNodeRef, request: StorageRequest, slotIndex: UInt256) = # TODO: remove data from local storage @@ -653,7 +646,7 @@ proc start*(self: CodexNodeRef) {.async.} = self.onStore(request, slot, onBatch) hostContracts.sales.onExpiryUpdate = proc( - rootCid: seq[byte], expiry: SecondsSince1970 + rootCid: Cid, expiry: SecondsSince1970 ): Future[?!void] = self.onExpiryUpdate(rootCid, expiry) diff --git a/codex/sales/salescontext.nim b/codex/sales/salescontext.nim index 128fd86f..95f06c04 100644 --- a/codex/sales/salescontext.nim +++ b/codex/sales/salescontext.nim @@ -1,6 +1,7 @@ import pkg/questionable import pkg/questionable/results import pkg/upraises +import pkg/libp2p/cid import ../market import ../clock @@ -30,7 +31,7 @@ type OnProve* = proc(slot: Slot, challenge: ProofChallenge): Future[?!Groth16Proof] {. gcsafe, upraises: [] .} - OnExpiryUpdate* = proc(rootCid: seq[byte], expiry: SecondsSince1970): Future[?!void] {. + OnExpiryUpdate* = proc(rootCid: Cid, expiry: SecondsSince1970): Future[?!void] {. gcsafe, upraises: [] .} OnClear* = proc(request: StorageRequest, slotIndex: UInt256) {.gcsafe, upraises: [].} diff --git a/codex/sales/states/filled.nim b/codex/sales/states/filled.nim index 44199a0c..9e7d9906 100644 --- a/codex/sales/states/filled.nim +++ b/codex/sales/states/filled.nim @@ -53,8 +53,7 @@ method run*(state: SaleFilled, machine: Machine): Future[?State] {.async.} = raiseAssert "onExpiryUpdate callback not set" let requestEnd = await market.getRequestEnd(data.requestId) - if err =? - (await onExpiryUpdate(request.content.cid.data.buffer, requestEnd)).errorOption: + if err =? (await onExpiryUpdate(request.content.cid, requestEnd)).errorOption: return some State(SaleErrored(error: err)) when codex_enable_proof_failures: diff --git a/tests/codex/node/testcontracts.nim b/tests/codex/node/testcontracts.nim index c7a44282..8b0eb242 100644 --- a/tests/codex/node/testcontracts.nim +++ b/tests/codex/node/testcontracts.nim @@ -98,7 +98,7 @@ asyncchecksuite "Test Node - Host contracts": expectedExpiry: SecondsSince1970 = clock.now + DefaultBlockTtl.seconds + 11123 expiryUpdateCallback = !sales.onExpiryUpdate - (await expiryUpdateCallback(manifestCid.data.buffer, expectedExpiry)).tryGet() + (await expiryUpdateCallback(manifestCid, expectedExpiry)).tryGet() for index in 0 ..< manifest.blocksCount: let diff --git a/tests/codex/sales/states/testfilled.nim b/tests/codex/sales/states/testfilled.nim index 31fbea8b..74413776 100644 --- a/tests/codex/sales/states/testfilled.nim +++ b/tests/codex/sales/states/testfilled.nim @@ -36,7 +36,7 @@ checksuite "sales state 'filled'": market.requestEnds[request.id] = 321 onExpiryUpdatePassedExpiry = -1 let onExpiryUpdate = proc( - rootCid: seq[byte], expiry: SecondsSince1970 + rootCid: Cid, expiry: SecondsSince1970 ): Future[?!void] {.async.} = onExpiryUpdatePassedExpiry = expiry return success() diff --git a/tests/codex/sales/testsales.nim b/tests/codex/sales/testsales.nim index 55b71390..35f7a12f 100644 --- a/tests/codex/sales/testsales.nim +++ b/tests/codex/sales/testsales.nim @@ -66,7 +66,7 @@ asyncchecksuite "Sales - start": return success() sales.onExpiryUpdate = proc( - rootCid: seq[byte], expiry: SecondsSince1970 + rootCid: Cid, expiry: SecondsSince1970 ): Future[?!void] {.async.} = return success() @@ -177,7 +177,7 @@ asyncchecksuite "Sales": return success() sales.onExpiryUpdate = proc( - rootCid: seq[byte], expiry: SecondsSince1970 + rootCid: Cid, expiry: SecondsSince1970 ): Future[?!void] {.async.} = return success() diff --git a/tests/integration/testecbug.nim b/tests/integration/testecbug.nim index fde5eb34..af17b76a 100644 --- a/tests/integration/testecbug.nim +++ b/tests/integration/testecbug.nim @@ -50,7 +50,7 @@ marketplacesuite "Bug #821 - node crashes during erasure coding": check eventually(requestId.isSome, timeout = expiry.int * 1000) let request = await marketplace.getRequest(requestId.get) - let cidFromRequest = Cid.init(request.content.cid).get() + let cidFromRequest = request.content.cid let downloaded = await clientApi.downloadBytes(cidFromRequest, local = true) check downloaded.isOk check downloaded.get.toHex == data.toHex diff --git a/tests/integration/testpurchasing.nim b/tests/integration/testpurchasing.nim index 00d5ad64..19437ebd 100644 --- a/tests/integration/testpurchasing.nim +++ b/tests/integration/testpurchasing.nim @@ -48,7 +48,7 @@ twonodessuite "Purchasing": let request = client1.getPurchase(id).get.request.get - check request.content.cid.len > 0 + check request.content.cid.data.buffer.len > 0 check request.ask.duration == 100.u256 check request.ask.reward == 2.u256 check request.ask.proofProbability == 3.u256