This commit is contained in:
2026-05-19 14:11:23 +09:00
parent e158706937
commit e5dcce341e
5 changed files with 193 additions and 19 deletions
+15 -1
View File
@@ -15,7 +15,7 @@
password/2,
refresh/0,
nonce/1, spend/1, chain_id/0, grids/1,
sign_mess/1, sign_binary/1, sign_tx/1, sign_call/3,
sign_mess/1, sign_binary/1, sign_binary/2, sign_tx/1, sign_call/3,
deploy/1, prompt_call/3, list_calls/0,
open_contract/1, open_contract/2, show_call/2, show_call/3,
make_key/6, recover_key/1, mnemonic/1, rename_key/2, drop_key/1, list_keys/0,
@@ -183,6 +183,10 @@ sign_binary(Request) ->
gd_server:cast(?MODULE, {sign_binary, Request}).
sign_binary(ID, Message) ->
gd_server:call(?MODULE, {sign_binary, ID, Message}).
-spec sign_tx(Request) -> ok
when Request :: map().
@@ -518,6 +522,9 @@ handle_cast({sign_mess, Request}, State) ->
handle_cast({sign_binary, Request}, State) ->
ok = do_sign_binary(Request, State),
{noreply, State};
handle_cast({sign_binary, ID, Message}, State) ->
ok = do_sign_binary(ID, Message, State),
{noreply, State};
handle_cast({sign_tx, Request}, State) ->
ok = do_sign_tx(Request, State),
{noreply, State};
@@ -824,6 +831,13 @@ do_sign_mess2(Request = #{"payload" := Message}, SecKey) ->
post_grids_response(ResponseKeys, SignedRequest).
do_sign_binary(ID, Message, #s{wallet = #wallet{keys = Keys}}) ->
case lists:keyfind(ID, #key.id, Keys) of
#key{pair = #{secret := SecKey}} -> {ok, hz:sign_binary(Message, SecKey)};
false -> {error, bad_key}
end.
do_sign_binary(Request = #{"public_id" := ID}, #s{wallet = #wallet{keys = Keys}}) ->
case lists:keyfind(ID, #key.id, Keys) of
#key{pair = #{secret := SecKey}} -> do_sign_binary2(Request, SecKey);