Skip to content

Commit

Permalink
Add some missing RLP serialization routines (#144)
Browse files Browse the repository at this point in the history
* Add some missing RLP serialization routines
  • Loading branch information
zah authored and arnetheduck committed Feb 28, 2019
1 parent 1cfea24 commit 859aa32
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 27 deletions.
18 changes: 16 additions & 2 deletions beacon_chain/spec/crypto.nim
Expand Up @@ -47,10 +47,10 @@
import
sequtils,
hashes,
blscurve, json_serialization
blscurve, json_serialization, eth/rlp

export
json_serialization
json_serialization, rlp

export blscurve.init, blscurve.getBytes, blscurve.combine, blscurve.`$`, blscurve.`==`

Expand Down Expand Up @@ -127,3 +127,17 @@ proc readValue*(reader: var JsonReader, value: var ValidatorPrivKey) {.inline.}
value = SigKey.init(reader.readValue(string))

proc newPrivKey*(): ValidatorPrivKey = SigKey.random()

# RLP serialization (TODO: remove if no longer necessary)
proc append*(writer: var RlpWriter, value: ValidatorPubKey) =
writer.append value.getBytes()

proc read*(rlp: var Rlp, T: type ValidatorPubKey): T {.inline.} =
ValidatorPubKey.init rlp.toBytes.toOpenArray

proc append*(writer: var RlpWriter, value: ValidatorSig) =
writer.append value.getBytes()

proc read*(rlp: var Rlp, T: type ValidatorSig): T {.inline.} =
ValidatorSig.init rlp.toBytes.toOpenArray

28 changes: 3 additions & 25 deletions beacon_chain/spec/datatypes.nim
Expand Up @@ -482,29 +482,6 @@ type
# TODO: not in spec
CrosslinkCommittee* = tuple[committee: seq[ValidatorIndex], shard: uint64]

when true:
# TODO: Remove these once RLP serialization is no longer used
import nimcrypto, eth/rlp, json_serialization
export append, read, json_serialization

proc append*(rlpWriter: var RlpWriter, value: ValidatorPubKey) =
discard

proc read*(rlp: var Rlp, T: type ValidatorPubKey): T {.inline.} =
discard

proc append*(rlpWriter: var RlpWriter, value: ValidatorIndex) =
discard

proc read*(rlp: var Rlp, T: type ValidatorIndex): T {.inline.} =
discard

proc append*(rlpWriter: var RlpWriter, value: ValidatorSig) =
discard

proc read*(rlp: var Rlp, T: type ValidatorSig): T {.inline.} =
discard

func shortValidatorKey*(state: BeaconState, validatorIdx: int): string =
($state.validator_registry[validatorIdx].pubkey)[0..7]

Expand All @@ -514,6 +491,7 @@ func humaneSlotNum*(s: Slot): Slot =
func humaneEpochNum*(e: Epoch): Epoch =
e - GENESIS_EPOCH

export
writeValue, readValue
import nimcrypto, eth/rlp, json_serialization
export json_serialization, rlp
export writeValue, readValue, append, read

0 comments on commit 859aa32

Please sign in to comment.