Skip to content

Commit

Permalink
fix: fix localnet
Browse files Browse the repository at this point in the history
  • Loading branch information
JamesPiechota committed Jan 27, 2025
1 parent d487d08 commit 4a6269b
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 26 deletions.
25 changes: 24 additions & 1 deletion apps/arweave/src/ar_weave.erl
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ create_genesis_tx(Key, Size) ->
(ar_tx:new())#tx{
owner = Pk,
reward = 0,
data = ar_test_node:generate_genesis_data(Size),
data = generate_genesis_data(Size),
data_size = Size,
target = <<>>,
quantity = 0,
Expand All @@ -135,6 +135,29 @@ create_genesis_tx(Key, Size) ->
},
ar_tx:sign_v1(UnsignedTX, Key).

%% @doc: generate binary data to be used as genesis data in tests. That data is incrementing
%% integer data in 4 byte chunks. e.g.
%% <<0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, ...>>
%% This makes it easier to assert correct chunk data in tests.
-spec generate_genesis_data(integer()) -> binary().
generate_genesis_data(DataSize) ->
FullChunks = DataSize div 4,
LeftoverBytes = DataSize rem 4,
IncrementingData = generate_data(0, FullChunks * 4, <<>>),
add_padding(IncrementingData, LeftoverBytes).

generate_data(CurrentValue, RemainingBytes, Acc) when RemainingBytes >= 4 ->
Chunk = <<CurrentValue:32/integer>>,
generate_data(CurrentValue + 1, RemainingBytes - 4, <<Acc/binary, Chunk/binary>>);
generate_data(_, RemainingBytes, Acc) ->
add_padding(Acc, RemainingBytes).

add_padding(Data, 0) ->
Data;
add_padding(Data, LeftoverBytes) ->
Padding = <<16#FF:8, 16#FF:8, 16#FF:8, 16#FF:8>>,
<<Data/binary, Padding:LeftoverBytes/unit:8>>.

add_mainnet_v1_genesis_txs() ->
case filelib:is_dir("data/genesis_txs") of
true ->
Expand Down
27 changes: 2 additions & 25 deletions apps/arweave/test/ar_test_node.erl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
mock_to_force_invalid_h1/0, get_difficulty_for_invalid_hash/0, invalid_solution/0,
valid_solution/0, new_mock/2, mock_function/3, unmock_module/1, remote_call/4,
load_fixture/1,
get_default_storage_module_packing/2, generate_genesis_data/1, get_genesis_chunk/1,
get_default_storage_module_packing/2, get_genesis_chunk/1,
all_nodes/1, new_custom_size_rsa_wallet/1]).

%% The "legacy" interface.
Expand Down Expand Up @@ -1445,17 +1445,6 @@ p2p_headers(Node) ->
{<<"x-release">>, integer_to_binary(?RELEASE_NUMBER)}
].

%% @doc: generate binary data to be used as genesis data in tests. That data is incrementing
%% integer data in 4 byte chunks. e.g.
%% <<0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, ...>>
%% This makes it easier to assert correct chunk data in tests.
-spec generate_genesis_data(integer()) -> binary().
generate_genesis_data(DataSize) ->
FullChunks = DataSize div 4,
LeftoverBytes = DataSize rem 4,
IncrementingData = generate_data(0, FullChunks * 4, <<>>),
add_padding(IncrementingData, LeftoverBytes).

%% @doc: get the genesis chunk between a given start and end offset.
-spec get_genesis_chunk(integer()) -> binary().
-spec get_genesis_chunk(integer(), integer()) -> binary().
Expand All @@ -1471,16 +1460,4 @@ get_genesis_chunk(EndOffset) ->
get_genesis_chunk(StartOffset, EndOffset) ->
Size = EndOffset - StartOffset,
StartValue = StartOffset div 4,
generate_data(StartValue, Size, <<>>).

generate_data(CurrentValue, RemainingBytes, Acc) when RemainingBytes >= 4 ->
Chunk = <<CurrentValue:32/integer>>,
generate_data(CurrentValue + 1, RemainingBytes - 4, <<Acc/binary, Chunk/binary>>);
generate_data(_, RemainingBytes, Acc) ->
add_padding(Acc, RemainingBytes).

add_padding(Data, 0) ->
Data;
add_padding(Data, LeftoverBytes) ->
Padding = <<16#FF:8, 16#FF:8, 16#FF:8, 16#FF:8>>,
<<Data/binary, Padding:LeftoverBytes/unit:8>>.
generate_data(StartValue, Size, <<>>).

0 comments on commit 4a6269b

Please sign in to comment.