Skip to content

Commit

Permalink
- Added tests for adding txs with tags through the HTTP interface.
Browse files Browse the repository at this point in the history
  • Loading branch information
samcamwilliams committed Sep 22, 2018
1 parent 7bd49f5 commit 5c564c7
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
28 changes: 28 additions & 0 deletions src/ar_http_iface.erl
Expand Up @@ -1596,6 +1596,34 @@ add_external_tx_test() ->
TXID = TX#tx.id,
?assertEqual([TXID], (ar_storage:read_block(B1, ar_node:get_hash_list(Node)))#block.txs).

%% @doc Test adding transactions to a block.
add_external_tx_with_tags_test() ->
ar_storage:clear(),
[B0] = ar_weave:init([]),
Node = ar_node:start([], [B0]),
reregister(Node),
Bridge = ar_bridge:start([], Node),
reregister(http_bridge_node, Bridge),
ar_node:add_peers(Node, Bridge),
TX = ar_tx:new(<<"DATA">>),
TaggedTX =
TX#tx {
tags =
[
{<<"TEST_TAG1">>, <<"TEST_VAL1">>},
{<<"TEST_TAG2">>, <<"TEST_VAL2">>}
]
},
send_new_tx({127, 0, 0, 1, 1984}, TaggedTX),
receive after 1000 -> ok end,
ar_node:mine(Node),
receive after 1000 -> ok end,
[B1Hash|_] = ar_node:get_blocks(Node),
B1 = ar_storage:read_block(B1Hash, ar_node:get_hash_list(Node)),
TXID = TaggedTX#tx.id,
?assertEqual([TXID], B1#block.txs),
?assertEqual(TaggedTX, ar_storage:read_tx(hd(B1#block.txs))).

%% @doc Test getting transactions
find_external_tx_test() ->
ar_storage:clear(),
Expand Down
20 changes: 20 additions & 0 deletions src/ar_node_tests.erl
Expand Up @@ -714,6 +714,26 @@ wallet_two_transaction_test_() ->
?AR(500) = ar_node:get_balance(Node1, Pub3)
end}.

%% @doc Wallet0 -> Wallet1 { with tags } | mine | check
mine_tx_with_key_val_tags_test() ->
ar_storage:clear(),
{Priv1, Pub1} = ar_wallet:new(),
{_Priv2, Pub2} = ar_wallet:new(),
TX = ar_tx:new(Pub2, ?AR(1), ?AR(9000), <<>>),
SignedTX = ar_tx:sign(TX, Priv1, Pub1),
B0 = ar_weave:init([{ar_wallet:to_address(Pub1), ?AR(10000), <<>>}], 8),
Node1 = ar_node:start([], B0),
Node2 = ar_node:start([Node1], B0),
ar_node:add_peers(Node1, Node2),
ar_storage:write_tx([SignedTX]),
ar_node:add_tx(Node1, SignedTX),
timer:sleep(300),
ar_node:mine(Node1), % Mine B1
timer:sleep(1000),
BHL = [B1Hash|_] = ar_node:get_blocks(Node2),
#block { txs = TXs } = ar_storage:read_block(B1Hash, BHL),
?assertEqual(ar_storage:read_tx(TXs), [SignedTX]).

%% @doc Wallet1 -> Wallet2 | Wallet1 -> Wallet3 | mine | check
%% @doc Wallet1 -> Wallet2 | Wallet1 -> Wallet3 | mine | check
single_wallet_double_tx_before_mine_test_() ->
Expand Down

0 comments on commit 5c564c7

Please sign in to comment.