From e480b789fddb1f1a64d0fff64091387712ab8876 Mon Sep 17 00:00:00 2001 From: James Piechota Date: Mon, 27 Jan 2025 11:17:19 -0500 Subject: [PATCH] fix: fix localnet --- apps/arweave/src/ar_weave.erl | 27 +++++++++++++++++++++++++-- apps/arweave/test/ar_test_node.erl | 27 ++------------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/apps/arweave/src/ar_weave.erl b/apps/arweave/src/ar_weave.erl index f4ebdea17..c967c8073 100644 --- a/apps/arweave/src/ar_weave.erl +++ b/apps/arweave/src/ar_weave.erl @@ -1,6 +1,6 @@ -module(ar_weave). --export([init/0, init/1, init/2, init/3, create_mainnet_genesis_txs/0, +-export([init/0, init/1, init/2, init/3, create_mainnet_genesis_txs/0, generate_data/3, add_mainnet_v1_genesis_txs/0]). -include_lib("arweave/include/ar.hrl"). @@ -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, @@ -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 = <>, + generate_data(CurrentValue + 1, RemainingBytes - 4, <>); +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>>, + <>. + add_mainnet_v1_genesis_txs() -> case filelib:is_dir("data/genesis_txs") of true -> diff --git a/apps/arweave/test/ar_test_node.erl b/apps/arweave/test/ar_test_node.erl index a3fe118af..3bf8a50e9 100644 --- a/apps/arweave/test/ar_test_node.erl +++ b/apps/arweave/test/ar_test_node.erl @@ -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. @@ -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(). @@ -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 = <>, - generate_data(CurrentValue + 1, RemainingBytes - 4, <>); -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>>, - <>. \ No newline at end of file + ar_weave:generate_data(StartValue, Size, <<>>). \ No newline at end of file