logos-storage-nim/codex/sales/statemachine.nim
Jacek Sieka 0062fd5e2b
chore: drop usage of upraises
No longer needed with newer nim - also removes `gcsafe` from `async`
(it's implied)
2025-11-17 11:08:57 +01:00

42 lines
1.0 KiB
Nim

import pkg/questionable
import ../errors
import ../utils/asyncstatemachine
import ../market
import ../clock
import ../contracts/requests
export market
export clock
export asyncstatemachine
type
SaleState* = ref object of State
SaleError* = object of CodexError
method onCancelled*(
state: SaleState, request: StorageRequest
): ?State {.base, raises: [].} =
discard
method onFailed*(
state: SaleState, request: StorageRequest
): ?State {.base, raises: [].} =
discard
method onSlotFilled*(
state: SaleState, requestId: RequestId, slotIndex: uint64
): ?State {.base, raises: [].} =
discard
proc cancelledEvent*(request: StorageRequest): Event =
return proc(state: State): ?State =
SaleState(state).onCancelled(request)
proc failedEvent*(request: StorageRequest): Event =
return proc(state: State): ?State =
SaleState(state).onFailed(request)
proc slotFilledEvent*(requestId: RequestId, slotIndex: uint64): Event =
return proc(state: State): ?State =
SaleState(state).onSlotFilled(requestId, slotIndex)