logos-chat/src/identity.nim
2025-09-03 14:43:54 -07:00

35 lines
722 B
Nim

import crypto
import utils
import results
type
Identity* = object
name: string
privateKey: PrivateKey
#################################################
# Constructors
#################################################
proc createIdentity*(name: string): Identity =
let privKey = createRandomKey().get()
result = Identity(name: name, privateKey: privKey)
#################################################
# Parameter Access
#################################################
proc getPubkey*(self: Identity): PublicKey =
result = self.privateKey.getPublicKey()
proc getAddr*(self: Identity): string =
result = get_addr(self.getPubKey())
proc getId*(self: Identity): string =
result = self.name