nim-nitro/nitro/ethaddress.nim
2021-03-17 12:22:00 +01:00

22 lines
519 B
Nim

import pkg/questionable
import pkg/questionable/results
import pkg/stew/byteutils
export questionable
type EthAddress* = distinct array[20, byte]
func zero*(_: type EthAddress): EthAddress =
EthAddress.default
func toArray*(address: EthAddress): array[20, byte] =
array[20, byte](address)
func `$`*(a: EthAddress): string =
a.toArray().toHex()
func parse*(_: type EthAddress, hex: string): ?EthAddress =
EthAddress(array[20, byte].fromHex(hex)).catch.option
func `==`*(a, b: EthAddress): bool {.borrow.}