From 82d08da8cadd4b3eb5c67786367dde126b90c0ed Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Sun, 10 May 2026 16:14:00 +0900 Subject: [PATCH] Allow spending to contract addresses --- src/hz.erl | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/hz.erl b/src/hz.erl index 3218f56..a4ea18a 100644 --- a/src/hz.erl +++ b/src/hz.erl @@ -1708,7 +1708,7 @@ spend(SenderID, Nonce, Payload, NetworkID) -> - case decode_account_id(unicode:characters_to_binary(SenderID)) of + case gmser_api_encoder:safe_decode(account_pubkey, unicode:characters_to_binary(SenderID)) of {ok, DSenderID} -> spend2(gmser_id:create(account, DSenderID), SecKey, @@ -1752,11 +1752,10 @@ spend2(DSenderID, decode_account_id(B) -> - try - {account_pubkey, PK} = gmser_api_encoder:decode(B), - {ok, PK} - catch - E:R -> {E, R} + case gmser_api_encoder:safe_decode(account_pubkey, B) of + {ok, PK} -> {ok, PK}; + {error, invalid_prefix} -> gmser_api_encoder:safe_decode(contract_pubkey, B); + Error -> Error end.