From f34b6ed982c334fd74578fc824402a8157d14531 Mon Sep 17 00:00:00 2001 From: Hans Svensson Date: Thu, 12 Sep 2019 21:17:01 +0200 Subject: [PATCH 1/2] Fix numeric escapes --- src/aeso_scan.erl | 3 +++ test/contracts/basic_auth.aes | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/aeso_scan.erl b/src/aeso_scan.erl index 6553dd5..acde020 100644 --- a/src/aeso_scan.erl +++ b/src/aeso_scan.erl @@ -98,6 +98,9 @@ unescape(Str) -> unescape(Str, []). %% TODO: numeric escapes unescape([$"], Acc) -> list_to_binary(lists:reverse(Acc)); +unescape([$\\, $x, D1, D2 | Chars ], Acc) -> + C = list_to_integer([D1, D2], 16), + unescape(Chars, [C | Acc]); unescape([$\\, Code | Chars], Acc) -> Ok = fun(C) -> unescape(Chars, [C | Acc]) end, case Code of diff --git a/test/contracts/basic_auth.aes b/test/contracts/basic_auth.aes index 94be85f..327f0f9 100644 --- a/test/contracts/basic_auth.aes +++ b/test/contracts/basic_auth.aes @@ -15,3 +15,5 @@ contract BasicAuth = entrypoint to_sign(h : hash, n : int) = Crypto.blake2b((h, n)) + entrypoint weird_string() : string = + "\x19Weird String\x42\nMore\n" From 457f9cf4eaeca27774e6f1f085981c70ef57b2c5 Mon Sep 17 00:00:00 2001 From: Hans Svensson Date: Thu, 12 Sep 2019 21:20:19 +0200 Subject: [PATCH 2/2] Remove comment + CHANGELOG --- CHANGELOG.md | 1 + src/aeso_scan.erl | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d1cebb7..fb03bd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added +- Handle numeric escapes, i.e. `"\x19Ethereum Signed Message:\n"`, and similar strings. ### Changed ### Removed diff --git a/src/aeso_scan.erl b/src/aeso_scan.erl index acde020..8dc47d4 100644 --- a/src/aeso_scan.erl +++ b/src/aeso_scan.erl @@ -95,7 +95,6 @@ parse_char([$', C, $']) -> C. unescape(Str) -> unescape(Str, []). -%% TODO: numeric escapes unescape([$"], Acc) -> list_to_binary(lists:reverse(Acc)); unescape([$\\, $x, D1, D2 | Chars ], Acc) ->