From 9124228ff47af23c7164a3a869fdc2f499eedf84 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Tue, 30 May 2023 15:41:16 +0900 Subject: [PATCH 1/6] Package for zomp --- Emakefile | 1 + src/aeser_contract_code.erl | 26 +++++++++++++++++++++----- zomp.meta | 17 +++++++++++++++++ 3 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 Emakefile create mode 100644 zomp.meta diff --git a/Emakefile b/Emakefile new file mode 100644 index 0000000..68c7b67 --- /dev/null +++ b/Emakefile @@ -0,0 +1 @@ +{"src/*", [debug_info, {i, "include/"}, {outdir, "ebin/"}]}. diff --git a/src/aeser_contract_code.erl b/src/aeser_contract_code.erl index 0605420..1fb05d8 100644 --- a/src/aeser_contract_code.erl +++ b/src/aeser_contract_code.erl @@ -16,15 +16,16 @@ serialize(CodeMap) -> serialize(CodeMap, ?SOPHIA_CONTRACT_VSN_3). + -spec serialize(map(), non_neg_integer()) -> binary(). serialize(CodeMap = #{ byte_code := ByteCode , type_info := TypeInfo }, SophiaContractVersion) -> %% Source hash - SourceHash = case CodeMap of - #{ source_hash := SHash } -> SHash; - #{ contract_source := SrcStr } -> - enacl:generichash(32, list_to_binary(SrcStr)) - end, + SourceHash = + case CodeMap of + #{ source_hash := SHash } -> SHash; + #{ contract_source := SrcStr } -> blake2(32, list_to_binary(SrcStr)) + end, %% Compiler version Version = maps:get(compiler_version, CodeMap, <<"unknown">>), @@ -47,6 +48,21 @@ serialize(CodeMap = #{ byte_code := ByteCode serialization_template(SophiaContractVersion), Fields). +% NOTE: +% This form significantly favors the presence of enacl and slows fallback +% invokation of eblake2. `try' is really fast; the error throwing machinery +% is comparatively slow. The assumption here is that in cases where you want +% eblake2 performance isn't the problem you're solving (you're probably not +% syncing a new node, for example). +blake2(Size, Bin) -> + try + enacl:generichash(Size, Bin) + catch error:undef -> + {ok, Hash} = eblake2:blake2b(Size, Bin), + Hash + end. + + -spec deserialize(binary()) -> map(). deserialize(Binary) -> case aeser_chain_objects:deserialize_type_and_vsn(Binary) of diff --git a/zomp.meta b/zomp.meta new file mode 100644 index 0000000..6d13bc0 --- /dev/null +++ b/zomp.meta @@ -0,0 +1,17 @@ +{a_email,[]}. +{author,"Hans Svensson"}. +{c_email,[]}. +{copyright,"Hans Svensson"}. +{deps,[{"otpr","eblake2",{1,0,0}}]}. +{desc,"Serialization helpers for Aeternity node."}. +{file_exts,[]}. +{key_name,none}. +{license,skip}. +{modules,[]}. +{name,"AE Serialization"}. +{package_id,{"otpr","aeserialization",{0,1,0}}}. +{prefix,none}. +{repo_url,"https://github.com/aeternity/aeserialization"}. +{tags,["blockchain","crypto","ae"]}. +{type,lib}. +{ws_url,[]}. -- 2.30.2 From f37cec34dadfbe10593c118672686f3ebdd112f7 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Mon, 7 Oct 2024 13:08:25 +0900 Subject: [PATCH 2/6] Merge down --- aeserialization.app | 8 ++++++++ src/aeser_api_encoder.erl | 1 + src/aeser_chain_objects.erl | 1 + src/aeser_contract_code.erl | 1 + src/aeser_delegation.erl | 1 + src/aeser_id.erl | 1 + src/aeser_rlp.erl | 1 + src/aeserialization.app.src | 15 --------------- src/aeserialization.erl | 1 + zomp.meta | 18 +++++++++--------- 10 files changed, 24 insertions(+), 24 deletions(-) create mode 100644 aeserialization.app delete mode 100644 src/aeserialization.app.src diff --git a/aeserialization.app b/aeserialization.app new file mode 100644 index 0000000..78c5d7c --- /dev/null +++ b/aeserialization.app @@ -0,0 +1,8 @@ +{application,aeserialization, + [{description,"Serialization helpers for Aeternity node."}, + {registered,[]}, + {included_applications,[]}, + {applications,[stdlib,kernel]}, + {vsn,"0.1.0"}, + {modules,[]}, + {mod,{aeserialization,[]}}]}. diff --git a/src/aeser_api_encoder.erl b/src/aeser_api_encoder.erl index 5e081df..271571f 100644 --- a/src/aeser_api_encoder.erl +++ b/src/aeser_api_encoder.erl @@ -5,6 +5,7 @@ %%% @end %%%------------------------------------------------------------------- -module(aeser_api_encoder). +-vsn("0.1.1"). -export([encode/2, decode/1, diff --git a/src/aeser_chain_objects.erl b/src/aeser_chain_objects.erl index 79e5e56..28d008c 100644 --- a/src/aeser_chain_objects.erl +++ b/src/aeser_chain_objects.erl @@ -7,6 +7,7 @@ %%%------------------------------------------------------------------- -module(aeser_chain_objects). +-vsn("0.1.1"). -export([ serialize/4 , deserialize/4 diff --git a/src/aeser_contract_code.erl b/src/aeser_contract_code.erl index 1fb05d8..3e93935 100644 --- a/src/aeser_contract_code.erl +++ b/src/aeser_contract_code.erl @@ -5,6 +5,7 @@ %%% @end %%%------------------------------------------------------------------- -module(aeser_contract_code). +-vsn("0.1.1"). -include("aeser_contract_code.hrl"). diff --git a/src/aeser_delegation.erl b/src/aeser_delegation.erl index f399e66..db5f3f5 100644 --- a/src/aeser_delegation.erl +++ b/src/aeser_delegation.erl @@ -5,6 +5,7 @@ %%% @end %%%------------------------------------------------------------------- -module(aeser_delegation). +-vsn("0.1.1"). -export([ aens_preclaim_sig/3 , aens_name_sig/4 diff --git a/src/aeser_id.erl b/src/aeser_id.erl index 3c354fd..7ae1e1d 100644 --- a/src/aeser_id.erl +++ b/src/aeser_id.erl @@ -7,6 +7,7 @@ %%%------------------------------------------------------------------- -module(aeser_id). +-vsn("0.1.1"). -export([ create/2 , specialize/1 diff --git a/src/aeser_rlp.erl b/src/aeser_rlp.erl index bb4eb8c..e81f0d6 100644 --- a/src/aeser_rlp.erl +++ b/src/aeser_rlp.erl @@ -9,6 +9,7 @@ %%%------------------------------------------------------------------- -module(aeser_rlp). +-vsn("0.1.1"). -export([ decode/1 , decode_one/1 , encode/1 diff --git a/src/aeserialization.app.src b/src/aeserialization.app.src deleted file mode 100644 index dce80c9..0000000 --- a/src/aeserialization.app.src +++ /dev/null @@ -1,15 +0,0 @@ -{application, aeserialization, - [{description, "Serialization of data for Aeternity"}, - {vsn, "0.1.0"}, - {registered, []}, - {applications, - [kernel, - stdlib, - crypto, - base58 - ]}, - {env,[]}, - {modules, []}, - {licenses, []}, - {links, []} - ]}. diff --git a/src/aeserialization.erl b/src/aeserialization.erl index 11d70a8..0d57616 100644 --- a/src/aeserialization.erl +++ b/src/aeserialization.erl @@ -6,6 +6,7 @@ %%%------------------------------------------------------------------- -module(aeserialization). +-vsn("0.1.1"). -export([ decode_fields/2 , deserialize/5 diff --git a/zomp.meta b/zomp.meta index 6d13bc0..2cbdd89 100644 --- a/zomp.meta +++ b/zomp.meta @@ -1,17 +1,17 @@ -{a_email,[]}. +{name,"AE Serialization"}. +{type,lib}. +{modules,[]}. +{prefix,none}. {author,"Hans Svensson"}. +{desc,"Serialization helpers for Aeternity node."}. +{package_id,{"otpr","aeserialization",{0,1,1}}}. +{deps,[{"otpr","erl_base58",{0,1,0}},{"otpr","eblake2",{1,0,0}}]}. +{key_name,none}. +{a_email,[]}. {c_email,[]}. {copyright,"Hans Svensson"}. -{deps,[{"otpr","eblake2",{1,0,0}}]}. -{desc,"Serialization helpers for Aeternity node."}. {file_exts,[]}. -{key_name,none}. {license,skip}. -{modules,[]}. -{name,"AE Serialization"}. -{package_id,{"otpr","aeserialization",{0,1,0}}}. -{prefix,none}. {repo_url,"https://github.com/aeternity/aeserialization"}. {tags,["blockchain","crypto","ae"]}. -{type,lib}. {ws_url,[]}. -- 2.30.2 From 7046b9625d63bd644fc380d7de156e6dcf44332d Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Fri, 1 Nov 2024 13:40:41 +0900 Subject: [PATCH 3/6] Merge down master --- aeserialization.app | 8 -------- src/aeser_api_encoder.erl | 2 +- src/aeser_chain_objects.erl | 2 +- src/aeser_contract_code.erl | 2 +- src/aeser_delegation.erl | 2 +- src/aeser_id.erl | 2 +- src/aeser_rlp.erl | 2 +- src/aeserialization.app.src | 15 +++++++++++++++ src/aeserialization.erl | 2 +- zomp.meta | 2 +- 10 files changed, 23 insertions(+), 16 deletions(-) delete mode 100644 aeserialization.app create mode 100644 src/aeserialization.app.src diff --git a/aeserialization.app b/aeserialization.app deleted file mode 100644 index 78c5d7c..0000000 --- a/aeserialization.app +++ /dev/null @@ -1,8 +0,0 @@ -{application,aeserialization, - [{description,"Serialization helpers for Aeternity node."}, - {registered,[]}, - {included_applications,[]}, - {applications,[stdlib,kernel]}, - {vsn,"0.1.0"}, - {modules,[]}, - {mod,{aeserialization,[]}}]}. diff --git a/src/aeser_api_encoder.erl b/src/aeser_api_encoder.erl index d0fbe2a..01d7111 100644 --- a/src/aeser_api_encoder.erl +++ b/src/aeser_api_encoder.erl @@ -5,7 +5,7 @@ %%% @end %%%------------------------------------------------------------------- -module(aeser_api_encoder). --vsn("0.1.1"). +-vsn("0.1.2"). -export([encode/2, decode/1, diff --git a/src/aeser_chain_objects.erl b/src/aeser_chain_objects.erl index 339fb61..4cf5c60 100644 --- a/src/aeser_chain_objects.erl +++ b/src/aeser_chain_objects.erl @@ -7,7 +7,7 @@ %%%------------------------------------------------------------------- -module(aeser_chain_objects). --vsn("0.1.1"). +-vsn("0.1.2"). -export([ serialize/4 , deserialize/4 diff --git a/src/aeser_contract_code.erl b/src/aeser_contract_code.erl index 3e93935..02084a3 100644 --- a/src/aeser_contract_code.erl +++ b/src/aeser_contract_code.erl @@ -5,7 +5,7 @@ %%% @end %%%------------------------------------------------------------------- -module(aeser_contract_code). --vsn("0.1.1"). +-vsn("0.1.2"). -include("aeser_contract_code.hrl"). diff --git a/src/aeser_delegation.erl b/src/aeser_delegation.erl index db5f3f5..b5e7b80 100644 --- a/src/aeser_delegation.erl +++ b/src/aeser_delegation.erl @@ -5,7 +5,7 @@ %%% @end %%%------------------------------------------------------------------- -module(aeser_delegation). --vsn("0.1.1"). +-vsn("0.1.2"). -export([ aens_preclaim_sig/3 , aens_name_sig/4 diff --git a/src/aeser_id.erl b/src/aeser_id.erl index 7ae1e1d..99c97d4 100644 --- a/src/aeser_id.erl +++ b/src/aeser_id.erl @@ -7,7 +7,7 @@ %%%------------------------------------------------------------------- -module(aeser_id). --vsn("0.1.1"). +-vsn("0.1.2"). -export([ create/2 , specialize/1 diff --git a/src/aeser_rlp.erl b/src/aeser_rlp.erl index e81f0d6..d23cbda 100644 --- a/src/aeser_rlp.erl +++ b/src/aeser_rlp.erl @@ -9,7 +9,7 @@ %%%------------------------------------------------------------------- -module(aeser_rlp). --vsn("0.1.1"). +-vsn("0.1.2"). -export([ decode/1 , decode_one/1 , encode/1 diff --git a/src/aeserialization.app.src b/src/aeserialization.app.src new file mode 100644 index 0000000..dce80c9 --- /dev/null +++ b/src/aeserialization.app.src @@ -0,0 +1,15 @@ +{application, aeserialization, + [{description, "Serialization of data for Aeternity"}, + {vsn, "0.1.0"}, + {registered, []}, + {applications, + [kernel, + stdlib, + crypto, + base58 + ]}, + {env,[]}, + {modules, []}, + {licenses, []}, + {links, []} + ]}. diff --git a/src/aeserialization.erl b/src/aeserialization.erl index 0d57616..c0d8e98 100644 --- a/src/aeserialization.erl +++ b/src/aeserialization.erl @@ -6,7 +6,7 @@ %%%------------------------------------------------------------------- -module(aeserialization). --vsn("0.1.1"). +-vsn("0.1.2"). -export([ decode_fields/2 , deserialize/5 diff --git a/zomp.meta b/zomp.meta index 2cbdd89..3ee0c1a 100644 --- a/zomp.meta +++ b/zomp.meta @@ -4,7 +4,7 @@ {prefix,none}. {author,"Hans Svensson"}. {desc,"Serialization helpers for Aeternity node."}. -{package_id,{"otpr","aeserialization",{0,1,1}}}. +{package_id,{"otpr","aeserialization",{0,1,2}}}. {deps,[{"otpr","erl_base58",{0,1,0}},{"otpr","eblake2",{1,0,0}}]}. {key_name,none}. {a_email,[]}. -- 2.30.2 From 295799435b83a10e869c9d0b01c833182fdd4337 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Wed, 22 Jan 2025 14:28:38 +0900 Subject: [PATCH 4/6] Update meta --- zomp.meta | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zomp.meta b/zomp.meta index 3ee0c1a..3a614a4 100644 --- a/zomp.meta +++ b/zomp.meta @@ -1,17 +1,17 @@ -{name,"AE Serialization"}. +{name,"Gajumaru Serialization"}. {type,lib}. {modules,[]}. {prefix,none}. {author,"Hans Svensson"}. -{desc,"Serialization helpers for Aeternity node."}. -{package_id,{"otpr","aeserialization",{0,1,2}}}. -{deps,[{"otpr","erl_base58",{0,1,0}},{"otpr","eblake2",{1,0,0}}]}. +{desc,"Serialization helpers for the Gajumaru."}. +{package_id,{"otpr","gmserialization",{0,1,2}}}. +{deps,[{"otpr","base58",{0,1,1}},{"otpr","eblake2",{1,0,0}}]}. {key_name,none}. {a_email,[]}. {c_email,[]}. {copyright,"Hans Svensson"}. {file_exts,[]}. {license,skip}. -{repo_url,"https://github.com/aeternity/aeserialization"}. -{tags,["blockchain","crypto","ae"]}. +{repo_url,"https://git.qpq.swiss/QPQ-AG/gmserialization"}. +{tags,["blockchain","crypto","gm", "gajumaru"]}. {ws_url,[]}. -- 2.30.2 From ece32da3e81a55ad32e89ed56f1efa98c674f318 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Wed, 22 Jan 2025 16:57:18 +0900 Subject: [PATCH 5/6] Update zomp meta copyright --- zomp.meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zomp.meta b/zomp.meta index 3a614a4..4528d1f 100644 --- a/zomp.meta +++ b/zomp.meta @@ -9,7 +9,7 @@ {key_name,none}. {a_email,[]}. {c_email,[]}. -{copyright,"Hans Svensson"}. +{copyright,"QPQ AG"}. {file_exts,[]}. {license,skip}. {repo_url,"https://git.qpq.swiss/QPQ-AG/gmserialization"}. -- 2.30.2 From 749f7943d8b28ff17a4a2a41fe5c5bb34a87c3d3 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Wed, 22 Jan 2025 19:31:40 +0900 Subject: [PATCH 6/6] Add app file back --- .gitignore | 2 +- ebin/gmserialization.app | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 ebin/gmserialization.app diff --git a/.gitignore b/.gitignore index f1c4554..2a6854a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ _* *.swp *.swo .erlang.cookie -ebin +ebin/*.beam log erl_crash.dump .rebar diff --git a/ebin/gmserialization.app b/ebin/gmserialization.app new file mode 100644 index 0000000..c1861e8 --- /dev/null +++ b/ebin/gmserialization.app @@ -0,0 +1,11 @@ +{application,gmserialization, + [{description,"Serialization of data for the Gajumaru"}, + {vsn,"0.1.2"}, + {registered,[]}, + {applications,[kernel,stdlib,crypto,base58]}, + {env,[]}, + {modules,[gmser_api_encoder,gmser_chain_objects, + gmser_contract_code,gmser_delegation,gmser_id, + gmser_rlp,gmserialization]}, + {licenses,[]}, + {links,[]}]}. -- 2.30.2