From 525413e3f16c3dc923c5531a230d1b52ab8a9d38 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Tue, 15 Oct 2024 20:57:44 +0900 Subject: [PATCH] WIP --- src/gmc_con.erl | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/gmc_con.erl b/src/gmc_con.erl index 2b11961..06ccbe2 100644 --- a/src/gmc_con.erl +++ b/src/gmc_con.erl @@ -14,7 +14,8 @@ -export([show_ui/1, open_wallet/2, close_wallet/0, password/2, nonce/1, spend/2, chain/1, grids/1, - make_key/6, recover_key/1, mnemonic/1, rename_key/2, drop_key/1]). + make_key/6, recover_key/1, mnemonic/1, rename_key/2, drop_key/1, + add_node/1, set_sole_node/1]). -export([encrypt/2, decrypt/2]). -export([start_link/0, stop/0, save/1, save/2]). -export([init/1, terminate/2, code_change/3, @@ -158,6 +159,21 @@ drop_key(ID) -> gen_server:cast(?MODULE, {drop_key, ID}). +-spec add_node(New) -> ok + when New :: #node{}. + +add_node(New) -> + gen_server:cast(?MODULE, {add_node, New}). + + +-spec set_sole_node(TheOneTrueNode) -> ok + when TheOneTrueNode :: #node{}. + +set_sole_node(TheOneTrueNode) -> + gen_server:cast(?MODULE, {set_sole_node, TheOneTrueNode}). + + +%%% Lifecycle functions -spec stop() -> ok. stop() -> @@ -289,6 +305,12 @@ handle_cast({rename_key, ID, NewName}, State) -> handle_cast({drop_key, ID}, State) -> NewState = do_drop_key(ID, State), {noreply, NewState}; +handle_cast({add_node, New}, State) -> + NewState = do_add_node(New, State), + {noreply, NewState}; +handle_cast({set_sole_node, TheOneTrueNode}, State) -> + NewState = do_set_sole_node(TheOneTrueNode, State), + {noreply, NewState}; handle_cast(stop, State) -> ok = zx:stop(), {noreply, State}; @@ -495,6 +517,16 @@ do_drop_key(ID, State = #s{wallet = W}) -> State#s{wallet = NewWallet}. +do_add_node(New, State) -> + tell("New node: ~p", [New]), + State. + + +do_set_sole_node(TheOneTrueNode, State) -> + tell("TheOneTrueNode: ~p", [TheOneTrueNode]), + State. + + encrypt(Pass, Binary) -> Flags = [{encrypt, true}, {padding, pkcs_padding}], crypto:crypto_one_time(aes_256_ecb, Pass, Binary, Flags).