mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-01-02 13:33:10 +00:00
Removed modules: - sales (including reservations, slot queue, marketplace abstractions, state machines, etc) - purchasing - erasure coding - contract interactions - prover - slot builder - block exchange payments - sales/purchasing from REST api - removed persistence command and all config params from cli configuration - CI workflows (devnet, dist tests, cirdl build, start eth node, contracts version reporting) - unused modules from tests - marketplace integration tests, and starting provider/validator/hardhat nodes - unused manifest properties - integration tests using the above # Conflicts: # .github/workflows/ci-reusable.yml # .github/workflows/docker.yml # build.nims # codex/blockexchange/engine/payments.nim # codex/codex.nim # codex/conf.nim # codex/contracts/Readme.md # codex/erasure.nim # codex/erasure/backend.nim # codex/erasure/backends/leopard.nim # codex/erasure/erasure.nim # codex/rest/api.nim # codex/sales.nim # codex/sales/reservations.nim # codex/sales/states/filled.nim # codex/sales/states/preparing.nim # codex/sales/states/provingsimulated.nim # codex/slots/builder/builder.nim # codex/slots/converters.nim # codex/slots/proofs/backends/circomcompat.nim # codex/slots/proofs/backends/converters.nim # codex/slots/proofs/prover.nim # codex/slots/sampler/sampler.nim # codex/slots/sampler/utils.nim # codex/slots/types.nim # tests/integration/5_minutes/testrestapivalidation.nim # tests/integration/hardhatprocess.nim # tests/integration/multinodes.nim # tools/cirdl/cirdl.nim
88 lines
2.5 KiB
Nim
88 lines
2.5 KiB
Nim
## Logos Storage
|
|
## Copyright (c) 2022 Status Research & Development GmbH
|
|
## Licensed under either of
|
|
## * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE))
|
|
## * MIT license ([LICENSE-MIT](LICENSE-MIT))
|
|
## at your option.
|
|
## This file may not be copied, modified, or distributed except according to
|
|
## those terms.
|
|
|
|
import std/sugar
|
|
|
|
import pkg/presto
|
|
import pkg/chronos
|
|
import pkg/libp2p
|
|
import pkg/stew/base10
|
|
import pkg/stew/byteutils
|
|
import pkg/results
|
|
import pkg/stint
|
|
|
|
import ../utils/stintutils
|
|
|
|
proc encodeString*(cid: type Cid): Result[string, cstring] =
|
|
ok($cid)
|
|
|
|
proc decodeString*(T: type Cid, value: string): Result[Cid, cstring] =
|
|
Cid.init(value).mapErr do(e: CidError) -> cstring:
|
|
case e
|
|
of CidError.Incorrect: "Incorrect Cid".cstring
|
|
of CidError.Unsupported: "Unsupported Cid".cstring
|
|
of CidError.Overrun: "Overrun Cid".cstring
|
|
else: "Error parsing Cid".cstring
|
|
|
|
proc encodeString*(peerId: PeerId): Result[string, cstring] =
|
|
ok($peerId)
|
|
|
|
proc decodeString*(T: type PeerId, value: string): Result[PeerId, cstring] =
|
|
PeerId.init(value)
|
|
|
|
proc encodeString*(address: MultiAddress): Result[string, cstring] =
|
|
ok($address)
|
|
|
|
proc decodeString*(T: type MultiAddress, value: string): Result[MultiAddress, cstring] =
|
|
MultiAddress.init(value).mapErr do(e: string) -> cstring:
|
|
cstring(e)
|
|
|
|
proc decodeString*(T: type SomeUnsignedInt, value: string): Result[T, cstring] =
|
|
Base10.decode(T, value)
|
|
|
|
proc encodeString*(value: SomeUnsignedInt): Result[string, cstring] =
|
|
ok(Base10.toString(value))
|
|
|
|
proc decodeString*(T: type Duration, value: string): Result[T, cstring] =
|
|
let v = ?Base10.decode(uint32, value)
|
|
ok(v.minutes)
|
|
|
|
proc encodeString*(value: Duration): Result[string, cstring] =
|
|
ok($value)
|
|
|
|
proc decodeString*(T: type bool, value: string): Result[T, cstring] =
|
|
try:
|
|
ok(value.parseBool())
|
|
except CatchableError as exc:
|
|
let s: cstring = exc.msg
|
|
err(s) # err(exc.msg) won't compile
|
|
|
|
proc encodeString*(value: bool): Result[string, cstring] =
|
|
ok($value)
|
|
|
|
proc decodeString*(_: type UInt256, value: string): Result[UInt256, cstring] =
|
|
try:
|
|
ok UInt256.fromDecimal(value)
|
|
except ValueError as e:
|
|
err e.msg.cstring
|
|
|
|
proc decodeString*(
|
|
_: type array[32, byte], value: string
|
|
): Result[array[32, byte], cstring] =
|
|
try:
|
|
ok array[32, byte].fromHex(value)
|
|
except ValueError as e:
|
|
err e.msg.cstring
|
|
|
|
proc decodeString*(t: typedesc[string], value: string): Result[string, cstring] =
|
|
ok(value)
|
|
|
|
proc encodeString*(value: string): RestResult[string] =
|
|
ok(value)
|