Give the main frame visibility on events
This commit is contained in:
+1
-32
@@ -652,7 +652,7 @@ do_sign_mess(Request = #{"public_id" := ID, "payload" := Message},
|
||||
#s{wallet = #wallet{keys = Keys}}) ->
|
||||
case lists:keyfind(ID, #key.id, Keys) of
|
||||
#key{pair = #{secret := SecKey}} ->
|
||||
Sig = base64:encode(sign_message(list_to_binary(Message), SecKey)),
|
||||
Sig = base64:encode(hz:sign_message(list_to_binary(Message), SecKey)),
|
||||
do_sign_mess2(Request#{"signature" => Sig});
|
||||
false ->
|
||||
gd_gui:trouble({bad_key, ID})
|
||||
@@ -675,37 +675,6 @@ do_sign_mess2(Request = #{"url" := URL}) ->
|
||||
end.
|
||||
|
||||
|
||||
% TODO: Should probably be part of Hakuzaru
|
||||
sign_message(Message, SecKey) ->
|
||||
Prefix = <<"Gajumaru Signed Message:\n">>,
|
||||
{ok, PSize} = vencode(byte_size(Prefix)),
|
||||
{ok, MSize} = vencode(byte_size(Message)),
|
||||
Smashed = iolist_to_binary([PSize, Prefix, MSize, Message]),
|
||||
{ok, Hashed} = eblake2:blake2b(32, Smashed),
|
||||
ecu_eddsa:sign_detached(Hashed, SecKey).
|
||||
|
||||
|
||||
vencode(N) when N < 0 ->
|
||||
{error, {negative_N, N}};
|
||||
vencode(N) when N < 16#FD ->
|
||||
{ok, <<N>>};
|
||||
vencode(N) when N =< 16#FFFF ->
|
||||
NBytes = eu(N, 2),
|
||||
{ok, <<16#FD, NBytes/binary>>};
|
||||
vencode(N) when N =< 16#FFFF_FFFF ->
|
||||
NBytes = eu(N, 4),
|
||||
{ok, <<16#FE, NBytes/binary>>};
|
||||
vencode(N) when N < (2 bsl 64) ->
|
||||
NBytes = eu(N, 8),
|
||||
{ok, <<16#FF, NBytes/binary>>}.
|
||||
|
||||
eu(N, Size) ->
|
||||
Bytes = binary:encode_unsigned(N, little),
|
||||
NExtraZeros = Size - byte_size(Bytes),
|
||||
ExtraZeros = << <<0>> || _ <- lists:seq(1, NExtraZeros) >>,
|
||||
<<Bytes/binary, ExtraZeros/binary>>.
|
||||
|
||||
|
||||
do_sign_tx(Request = #{"public_id" := ID, "payload" := CallData, "network_id" := NID},
|
||||
#s{wallet = #wallet{keys = Keys}}) ->
|
||||
BinNID = list_to_binary(NID),
|
||||
|
||||
Reference in New Issue
Block a user