From 55fe45079acf37cd9a4aabaa36816e7a55246306 Mon Sep 17 00:00:00 2001 From: speeddragon Date: Wed, 26 Nov 2025 15:12:31 +0000 Subject: [PATCH 1/3] fix: Do not crash on unsuported signature types --- src/dev_arweave_common.erl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/dev_arweave_common.erl b/src/dev_arweave_common.erl index 808b41dfc..e0e517383 100644 --- a/src/dev_arweave_common.erl +++ b/src/dev_arweave_common.erl @@ -81,7 +81,10 @@ generate_id(TX, unsigned) -> generate_signature_data_segment(TX#tx{ owner = ?DEFAULT_OWNER })). generate_signature_data_segment(TX = #tx{ format = ans104 }) -> - ar_bundles:data_item_signature_data(TX); + try ar_bundles:data_item_signature_data(TX) catch + _:_ -> + ?DEFAULT_ID + end; generate_signature_data_segment(TX) -> ar_tx:generate_signature_data_segment(TX). @@ -193,4 +196,3 @@ normalize_data_root(Item = #tx{data = Bin, format = 2}) Item#tx{data_root = ar_tx:data_root(Bin)}; normalize_data_root(Item) -> Item. - From d19b3c605711bfe0e48bcd211301deddc3158e84 Mon Sep 17 00:00:00 2001 From: speeddragon Date: Wed, 26 Nov 2025 16:00:14 +0000 Subject: [PATCH 2/3] test: Add test --- src/dev_arweave_common.erl | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/dev_arweave_common.erl b/src/dev_arweave_common.erl index e0e517383..d6e70303c 100644 --- a/src/dev_arweave_common.erl +++ b/src/dev_arweave_common.erl @@ -82,8 +82,11 @@ generate_id(TX, unsigned) -> generate_signature_data_segment(TX = #tx{ format = ans104 }) -> try ar_bundles:data_item_signature_data(TX) catch - _:_ -> - ?DEFAULT_ID + Class:Error:Stack -> + ?event(error, {invalid_tx, {class, Class}, + {error, Error}, + {stack, Stack}}), + <<>> end; generate_signature_data_segment(TX) -> ar_tx:generate_signature_data_segment(TX). @@ -196,3 +199,17 @@ normalize_data_root(Item = #tx{data = Bin, format = 2}) Item#tx{data_root = ar_tx:data_root(Bin)}; normalize_data_root(Item) -> Item. +%% Tests + +do_not_crash_with_unsupported_signature_type_test() -> + SignatureType = unsupported_tx_signature_type, + TX = #tx{ + format = ans104, + signature = <<0:256>>, + signature_type = SignatureType, + owner = <<0:256>>, + data_size = 3, + data = <<0, 1, 2>> + }, + R = reset_ids(TX), + erlang:display({r, R}). From e02cdd1141122a9528e8ac19323a26534484af47 Mon Sep 17 00:00:00 2001 From: speeddragon Date: Wed, 26 Nov 2025 16:05:08 +0000 Subject: [PATCH 3/3] fix: Test --- src/dev_arweave_common.erl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/dev_arweave_common.erl b/src/dev_arweave_common.erl index d6e70303c..13173924e 100644 --- a/src/dev_arweave_common.erl +++ b/src/dev_arweave_common.erl @@ -211,5 +211,4 @@ do_not_crash_with_unsupported_signature_type_test() -> data_size = 3, data = <<0, 1, 2>> }, - R = reset_ids(TX), - erlang:display({r, R}). + ?assert(is_record(reset_ids(TX), tx)).