From 472d66f93b63275e10ee9051041f5c497dcf1028 Mon Sep 17 00:00:00 2001 From: Alberto Lerda Date: Mon, 3 Jul 2023 18:06:49 +0200 Subject: [PATCH] fix: is hex checks if a strings begin with 0x --- src/zen_octet.c | 3 +++ test/zencode/given.bats | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/zen_octet.c b/src/zen_octet.c index f733db46c..34f600f72 100644 --- a/src/zen_octet.c +++ b/src/zen_octet.c @@ -144,6 +144,9 @@ int is_base58(lua_State *L, const char *in) { int is_hex(lua_State *L, const char *in) { (void)L; if(!in) { ERROR(); return 0; } + if ( (in[0] == '0') && (in[1] == 'x') ) { + in+=2; + } int c; for(c=0; in[c]!=0; c++) { if (!isxdigit(in[c])) { diff --git a/test/zencode/given.bats b/test/zencode/given.bats index 348d323ac..6598689b1 100644 --- a/test/zencode/given.bats +++ b/test/zencode/given.bats @@ -457,3 +457,22 @@ EOF run $ZENROOM_EXECUTABLE -z -a given_in_path.data given_in_path_fail_not_a_table.zen assert_line '[W] [!] Object is not a table: my_hex' } + +@test "Read hex with 0x prefix" { + cat << eof | save_asset hex_0x_prefix.data +{ + "0xprefix": "0x7d6df85bDBCe99151c813fd1DDE6BC007c523C27" +} +eof + cat <