mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-01-09 17:03:09 +00:00
Rationale: price is no longer set per peer, but per chunk. Only the Ethereum accounts of the peers needs to be exchanged.
57 lines
1.3 KiB
Nim
57 lines
1.3 KiB
Nim
## Nim-Dagger
|
|
## Copyright (c) 2021 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/hashes
|
|
import std/sequtils
|
|
import pkg/protobuf_serialization
|
|
import pkg/libp2p
|
|
|
|
import_proto3 "message.proto"
|
|
|
|
export Message
|
|
export Wantlist, WantType, Entry
|
|
export Block, BlockPresenceType, BlockPresence
|
|
export AccountMessage, StateChannelUpdate
|
|
|
|
proc hash*(e: Entry): Hash =
|
|
hash(e.`block`)
|
|
|
|
proc cid*(e: Entry): Cid =
|
|
## Helper to convert raw bytes to Cid
|
|
##
|
|
|
|
Cid.init(e.`block`).get()
|
|
|
|
proc contains*(a: openArray[Entry], b: Cid): bool =
|
|
## Convenience method to check for peer precense
|
|
##
|
|
|
|
a.filterIt( it.cid == b ).len > 0
|
|
|
|
proc `==`*(a: Entry, cid: Cid): bool =
|
|
return a.cid == cid
|
|
|
|
proc `<`*(a, b: Entry): bool =
|
|
a.priority < b.priority
|
|
|
|
proc cid*(e: BlockPresence): Cid =
|
|
## Helper to convert raw bytes to Cid
|
|
##
|
|
|
|
Cid.init(e.cid).get()
|
|
|
|
proc `==`*(a: BlockPresence, cid: Cid): bool =
|
|
return cid(a) == cid
|
|
|
|
proc contains*(a: openArray[BlockPresence], b: Cid): bool =
|
|
## Convenience method to check for peer precense
|
|
##
|
|
|
|
a.filterIt( cid(it) == b ).len > 0
|