mirror of
https://github.com/status-im/status-lib.git
synced 2025-01-27 20:56:26 +00:00
45887b1724
* add nim-keycard-go to makefile * fix keycard-go build * add keycard.nim * remove test make task * remove debug line from makefile * fix import keycard_go * add keycard-go to .PHONY * add keycard start/stop/select methods * use https url for submodule * add KeycardApplication info and return it from select * update nim-keycard-go version * fix select return type * actually return the result * update nim-keycard-go * add keycard methods to backend * add base/mock keycard backends * imports * export keycard methods in backend * update start/stop keycard implementation * add KeycardStarted signal * fix keycard started signal * rename to KeycardConnected signal * fix keycard signal renamed * add keycardgo in makefile tasks * add back build/.gitignore * fix .gitignore * fix .gitignore * Makefile: export keycard vars * add keycard lib to nimble file * use spaces instead of tabs in non-recipe sections of Makefile * use install_name_tool on libkeycard on macOS * in GHA ubuntu environment install libpcsclite-dev with apt at start of workflow * add Keycard exceptions * remove useless test * remove useless return * move keycard types to /types * reraise exception from status/keycard.nim * remove unused import * add keycard commands: opensecure channel, pair, verify pin, export key * fix last keycard commands * add exportKey params * update nim-keycard-go Co-authored-by: Michele Balistreri <michele@bitgamma.com> Co-authored-by: Michael Bradley, Jr <michaelsbradleyjr@gmail.com>
35 lines
2.0 KiB
Nim
35 lines
2.0 KiB
Nim
import json, json_serialization, strutils
|
|
import signals/[base, chronicles_logs, community, discovery_summary, envelope, expired, mailserver, messages, peerstats, signal_type, stats, wallet, whisper_filter, keycard]
|
|
|
|
export base, chronicles_logs, community, discovery_summary, envelope, expired, mailserver, messages, peerstats, signal_type, stats, wallet, whisper_filter
|
|
|
|
proc decode*(jsonSignal: JsonNode): Signal =
|
|
let signalString = jsonSignal{"type"}.getStr
|
|
var signalType: SignalType
|
|
try:
|
|
signalType = parseEnum[SignalType](signalString)
|
|
except:
|
|
raise newException(ValueError, "Unknown signal received: " & signalString)
|
|
|
|
result = case signalType:
|
|
of SignalType.Message: MessageSignal.fromEvent(jsonSignal)
|
|
of SignalType.EnvelopeSent: EnvelopeSentSignal.fromEvent(jsonSignal)
|
|
of SignalType.EnvelopeExpired: EnvelopeExpiredSignal.fromEvent(jsonSignal)
|
|
of SignalType.WhisperFilterAdded: WhisperFilterSignal.fromEvent(jsonSignal)
|
|
of SignalType.Wallet: WalletSignal.fromEvent(jsonSignal)
|
|
of SignalType.NodeLogin: Json.decode($jsonSignal, NodeSignal)
|
|
of SignalType.PeerStats: PeerStatsSignal.fromEvent(jsonSignal)
|
|
of SignalType.DiscoverySummary: DiscoverySummarySignal.fromEvent(jsonSignal)
|
|
of SignalType.MailserverRequestCompleted: MailserverRequestCompletedSignal.fromEvent(jsonSignal)
|
|
of SignalType.MailserverRequestExpired: MailserverRequestExpiredSignal.fromEvent(jsonSignal)
|
|
of SignalType.CommunityFound: CommunitySignal.fromEvent(jsonSignal)
|
|
of SignalType.Stats: StatsSignal.fromEvent(jsonSignal)
|
|
of SignalType.ChroniclesLogs: ChroniclesLogsSignal.fromEvent(jsonSignal)
|
|
of SignalType.HistoryRequestCompleted: HistoryRequestCompletedSignal.fromEvent(jsonSignal)
|
|
of SignalType.HistoryRequestStarted: HistoryRequestStartedSignal.fromEvent(jsonSignal)
|
|
of SignalType.HistoryRequestFailed: HistoryRequestFailedSignal.fromEvent(jsonSignal)
|
|
of SignalType.KeycardConnected: KeycardConnectedSignal.fromEvent(jsonSignal)
|
|
else: Signal()
|
|
|
|
result.signalType = signalType
|