feat(slot-reservations): Support reserving slots (#907)
* feat(slot-reservations): Support reserving slots Closes #898. Wire up reserveSlot and canReserveSlot contract calls, but don't call them * Remove return value from `reserveSlot` * convert EthersError to MarketError * Move convertEthersError to reserveSlot * bump codex-contracts-eth after rebase * change `canReserveSlot` and `reserveSlot` parameters Parameters for `canReserveSlot` and `reserveSlot` were changed from `SlotId` to `RequestId` and `UInt256 slotIndex`. * bump codex-contracts-eth after rebase * bump codex-contracts-eth to master after codex-contracts-eth/pull/177 merged
This commit is contained in:
parent
b491906005
commit
b5ee57afd7
|
@ -247,6 +247,21 @@ method canProofBeMarkedAsMissing*(
|
||||||
trace "Proof cannot be marked as missing", msg = e.msg
|
trace "Proof cannot be marked as missing", msg = e.msg
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
method reserveSlot*(
|
||||||
|
market: OnChainMarket,
|
||||||
|
requestId: RequestId,
|
||||||
|
slotIndex: UInt256) {.async.} =
|
||||||
|
|
||||||
|
convertEthersError:
|
||||||
|
discard await market.contract.reserveSlot(requestId, slotIndex).confirm(0)
|
||||||
|
|
||||||
|
method canReserveSlot*(
|
||||||
|
market: OnChainMarket,
|
||||||
|
requestId: RequestId,
|
||||||
|
slotIndex: UInt256): Future[bool] {.async.} =
|
||||||
|
|
||||||
|
await market.contract.canReserveSlot(requestId, slotIndex)
|
||||||
|
|
||||||
method subscribeRequests*(market: OnChainMarket,
|
method subscribeRequests*(market: OnChainMarket,
|
||||||
callback: OnRequest):
|
callback: OnRequest):
|
||||||
Future[MarketSubscription] {.async.} =
|
Future[MarketSubscription] {.async.} =
|
||||||
|
|
|
@ -51,3 +51,6 @@ proc getPointer*(marketplace: Marketplace, id: SlotId): uint8 {.contract, view.}
|
||||||
|
|
||||||
proc submitProof*(marketplace: Marketplace, id: SlotId, proof: Groth16Proof): ?TransactionResponse {.contract.}
|
proc submitProof*(marketplace: Marketplace, id: SlotId, proof: Groth16Proof): ?TransactionResponse {.contract.}
|
||||||
proc markProofAsMissing*(marketplace: Marketplace, id: SlotId, period: UInt256): ?TransactionResponse {.contract.}
|
proc markProofAsMissing*(marketplace: Marketplace, id: SlotId, period: UInt256): ?TransactionResponse {.contract.}
|
||||||
|
|
||||||
|
proc reserveSlot*(marketplace: Marketplace, requestId: RequestId, slotIndex: UInt256): ?TransactionResponse {.contract.}
|
||||||
|
proc canReserveSlot*(marketplace: Marketplace, requestId: RequestId, slotIndex: UInt256): bool {.contract, view.}
|
||||||
|
|
|
@ -161,6 +161,20 @@ method canProofBeMarkedAsMissing*(market: Market,
|
||||||
period: Period): Future[bool] {.base, async.} =
|
period: Period): Future[bool] {.base, async.} =
|
||||||
raiseAssert("not implemented")
|
raiseAssert("not implemented")
|
||||||
|
|
||||||
|
method reserveSlot*(
|
||||||
|
market: Market,
|
||||||
|
requestId: RequestId,
|
||||||
|
slotIndex: UInt256) {.base, async.} =
|
||||||
|
|
||||||
|
raiseAssert("not implemented")
|
||||||
|
|
||||||
|
method canReserveSlot*(
|
||||||
|
market: Market,
|
||||||
|
requestId: RequestId,
|
||||||
|
slotIndex: UInt256): Future[bool] {.base, async.} =
|
||||||
|
|
||||||
|
raiseAssert("not implemented")
|
||||||
|
|
||||||
method subscribeFulfillment*(market: Market,
|
method subscribeFulfillment*(market: Market,
|
||||||
callback: OnFulfillment):
|
callback: OnFulfillment):
|
||||||
Future[Subscription] {.base, async.} =
|
Future[Subscription] {.base, async.} =
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 558bf645c3dc385437a3e695bba57e7dba1375fb
|
Subproject commit 33010bd20cfdc3d589be25782052796af580ca83
|
Loading…
Reference in New Issue