Skip to content
This repository was archived by the owner on Mar 23, 2021. It is now read-only.

Commit d008447

Browse files
committed
test: find transaction in old ethereum block
1 parent 800e125 commit d008447

File tree

8 files changed

+244
-0
lines changed

8 files changed

+244
-0
lines changed

cnd/tests/ethereum_old_blocks.rs

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
pub mod ethereum_helper;
2+
3+
use btsieve::{ethereum::TransactionPattern, first_or_else::StreamExt, MatchingTransactions};
4+
use ethereum_helper::EthereumConnectorMock;
5+
use ethereum_support::{Block, Transaction, TransactionAndReceipt, TransactionReceipt};
6+
use tokio::prelude::Future;
7+
8+
#[test]
9+
fn find_transaction_in_old_block() {
10+
let runtime = tokio::runtime::Runtime::new().unwrap();
11+
12+
let block1_with_transaction: Block<Transaction> = include_json_test_data!(
13+
"./test_data/ethereum/find_transaction_in_old_block/block1_with_transaction.json"
14+
);
15+
let transaction: Transaction = include_json_test_data!(
16+
"./test_data/ethereum/find_transaction_in_old_block/transaction.json"
17+
);
18+
let receipt: TransactionReceipt =
19+
include_json_test_data!("./test_data/ethereum/find_transaction_in_old_block/receipt.json");
20+
let connector = EthereumConnectorMock::new(
21+
vec![
22+
include_json_test_data!(
23+
"./test_data/ethereum/find_transaction_in_old_block/block4.json"
24+
),
25+
include_json_test_data!(
26+
"./test_data/ethereum/find_transaction_in_old_block/block5.json"
27+
),
28+
],
29+
vec![
30+
block1_with_transaction.clone(),
31+
include_json_test_data!(
32+
"./test_data/ethereum/find_transaction_in_old_block/block2.json"
33+
),
34+
include_json_test_data!(
35+
"./test_data/ethereum/find_transaction_in_old_block/block3.json"
36+
),
37+
include_json_test_data!(
38+
"./test_data/ethereum/find_transaction_in_old_block/block4.json"
39+
),
40+
include_json_test_data!(
41+
"./test_data/ethereum/find_transaction_in_old_block/block5.json"
42+
),
43+
],
44+
vec![(transaction.hash, receipt.clone())],
45+
runtime.executor(),
46+
);
47+
48+
let expected_transaction_and_receipt: TransactionAndReceipt = connector
49+
.matching_transactions(
50+
TransactionPattern {
51+
from_address: None,
52+
to_address: Some(transaction.to.unwrap()),
53+
is_contract_creation: None,
54+
transaction_data: None,
55+
transaction_data_length: None,
56+
events: None,
57+
},
58+
Some(block1_with_transaction.timestamp.low_u32()),
59+
)
60+
.first_or_else(|| panic!())
61+
.wait()
62+
.unwrap();
63+
64+
assert_eq!(expected_transaction_and_receipt, TransactionAndReceipt {
65+
transaction,
66+
receipt
67+
});
68+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"difficulty": "0xbfabcdbd93dda",
3+
"extraData": "0x737061726b706f6f6c2d636e2d6e6f64652d3132",
4+
"gasLimit": "0x79f39e",
5+
"gasUsed": "0x79ccd3",
6+
"hash": "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35",
7+
"logsBloom": "0x4848112002a2020aaa0812180045840210020005281600c80104264300080008000491220144461026015300100000128005018401002090a824a4150015410020140400d808440106689b29d0280b1005200007480ca950b15b010908814e01911000054202a020b05880b914642a0000300003010044044082075290283516be82504082003008c4d8d14462a8800c2990c88002a030140180036c220205201860402001014040180002006860810ec0a1100a14144148408118608200060461821802c081000042d0810104a8004510020211c088200420822a082040e10104c00d010064004c122692020c408a1aa2348020445403814002c800888208b1",
8+
"miner": "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c",
9+
"mixHash": "0x3d1fdd16f15aeab72e7db1013b9f034ee33641d92f71c0736beab4e67d34c7a7",
10+
"nonce": "0x4db7a1c01d8a8072",
11+
"number": "0x5bad55",
12+
"parentHash": "0x61a8ad530a8a43e3583f8ec163f773ad370329b2375d66433eb82f005e1d6202",
13+
"receiptsRoot": "0x5eced534b3d84d3d732ddbc714f5fd51d98a941b28182b6efe6df3a0fe90004b",
14+
"sha3Uncles": "0x8a562e7634774d3e3a36698ac4915e37fc84a2cd0044cb84fa5d80263d2af4f6",
15+
"size": "0x41c7",
16+
"stateRoot": "0xf5208fffa2ba5a3f3a2f64ebd5ca3d098978bedd75f335f56b705d8715ee2305",
17+
"timestamp": "0x5b541449",
18+
"totalDifficulty": "0x12ac11391a2f3872fcd",
19+
"transactions": [
20+
{
21+
"blockHash": "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35",
22+
"blockNumber": "0x5bad55",
23+
"from": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
24+
"gas": "0x249f0",
25+
"gasPrice": "0x174876e800",
26+
"hash": "0x8784d99762bccd03b2086eabccee0d77f14d05463281e121a62abfebcf0d2d5f",
27+
"input": "0x6ea056a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bd8d7fa6f8cc00",
28+
"nonce": "0x5e4724",
29+
"r": "0xd1556332df97e3bd911068651cfad6f975a30381f4ff3a55df7ab3512c78b9ec",
30+
"s": "0x66b51cbb10cd1b2a09aaff137d9f6d4255bf73cb7702b666ebd5af502ffa4410",
31+
"to": "0x4b9c25ca0224aef6a7522cabdbc3b2e125b7ca50",
32+
"transactionIndex": "0x0",
33+
"v": "0x25",
34+
"value": "0x0"
35+
}
36+
],
37+
"transactionsRoot": "0xf98631e290e88f58a46b7032f025969039aa9b5696498efc76baf436fa69b262",
38+
"uncles": [
39+
"0x824cce7c7c2ec6874b9fa9a9a898eb5f27cbaf3991dfa81084c3af60d1db618c"
40+
]
41+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"difficulty": "0xbfabcebd93dda",
3+
"extraData": "0x737061726b706f6f6c2d636e2d6e6f64652d3130",
4+
"gasLimit": "0x79d544",
5+
"gasUsed": "0x799a27",
6+
"hash": "0x4a3374ec17feb0d04efe9d44847e1f6e673dff47cf152d134c32a2c158e103cf",
7+
"logsBloom": "0xd02aa0900cb10214808b5045e00c0ab1304284481846138022811d102403002443ac96282c8582683234bd46905a2022101a041c0081829e81111091892c008800b249017a020c1084079ce880e841601028402300cc8300181b59492a839c111420820606454045b020c812904888216510b0c00c409442ac0027128ce2440040850883400851218e083110670aca098180888220a18238a0204c48842a54000aa348a00240e542183ac0904d1502044050010006102081401150c000190aa10841c20291b140044032110250541446803b6200210202372913900c6004674006551ce500a081412850048010446a2002240968008414040044631008083101",
8+
"miner": "0x5a0b54d5dc17e0aadc383d2db43b0a0d3e029c4c",
9+
"mixHash": "0x5cda0356e7f1c14263e13189751cfa5e424ad5b7806a38b853feaca51adaff39",
10+
"nonce": "0xccf86ca00d45295b",
11+
"number": "0x5bad56",
12+
"parentHash": "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35",
13+
"receiptsRoot": "0xb5f59e277d15a5a4669f79c42af3e69d4fe6f6a509e3e0dc332075d47034d514",
14+
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
15+
"size": "0x4e26",
16+
"stateRoot": "0xf985cf1f33df255adbbfb88b7554edc3b14155b5aab5b9e42e6f19fd0f96ad99",
17+
"timestamp": "0x5b54145d",
18+
"totalDifficulty": "0x12ac11f8c5fdf606da7",
19+
"transactions": [],
20+
"transactionsRoot": "0xda89290f1bb9b91a0481391240670e63973d4552a4dbbfab4649c8bcd0772bb5",
21+
"uncles": []
22+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"difficulty": "0xbfabcfbd93dda",
3+
"extraData": "0x7777772e62772e636f6d",
4+
"gasLimit": "0x79e469",
5+
"gasUsed": "0xe6419",
6+
"hash": "0x6e93cb6eb5c014ed5a586c845ff7f67bde8938238636fc7a27566ece16341a63",
7+
"logsBloom": "0x40400004000000100000000042006000010000006000000080000000100800000400010021000008001002002040000208100200000000808000000401000000000009400800240100820008000800000000001000000020000000010000020080000000004400000000000004000100000000000004000000000110000020800000008000200200800200000000001000000000008002200002000080000200800000000000000000000000400090200000000040000400200000000000040000001002000000100114000000200000000000000008400408000000010200000000000110000200000000000084800000000000000200200000020000010000",
8+
"miner": "0x52e44f279f4203dcf680395379e5f9990a69f13c",
9+
"mixHash": "0x49fbddef5db6e113af404b5b7a64f329ba4bd01f8ca71c20ff3a14038430c571",
10+
"nonce": "0x6d975a400ff6d931",
11+
"number": "0x5bad57",
12+
"parentHash": "0x4a3374ec17feb0d04efe9d44847e1f6e673dff47cf152d134c32a2c158e103cf",
13+
"receiptsRoot": "0xeca9fd545414c8a97dd2ecc08de87d1cbb1f9d9c1ccd7a0eb5c21cdae1646cb7",
14+
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
15+
"size": "0xe89",
16+
"stateRoot": "0x65d855b1baac654479861062d65e8cfb845de0fcc8a483b8f585c739e5cafad9",
17+
"timestamp": "0x5b541468",
18+
"totalDifficulty": "0x12ac12b871cdb39ab81",
19+
"transactions": [],
20+
"transactionsRoot": "0xc63aeef6add9e7d4445972bd23af0a4897bfb55bd38f78393807f6beef56ed34",
21+
"uncles": []
22+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"difficulty": "0xbf93db439c2b3",
3+
"extraData": "0xe4b883e5bda9e7a59ee4bb99e9b1bc",
4+
"gasLimit": "0x7a02e1",
5+
"gasUsed": "0x79fe28",
6+
"hash": "0x92347dd39ceb53c16e3c2eb74018220aadd8cf2c7c6679f21974c987cb6c95d0",
7+
"logsBloom": "0xda105780048000306229212004081234420a8088085a0108010007400e841864e1a098b008804c0440001802d0c0001044812889100020104a18085203304003c19046089a0d28114400024a3084000040860422c02c8108901071103b8147221120c80206612406a06c603080050a446a0a00807df64c00644002111403600121f319a803400100080a854054088008e40180b20010006400963140322200a02e86c94400c4d8420240300808a081a04813010004200499040926a81811851090c00222194038080054008462000004024045220500002d6c1d01284110a5011011012140420600840e24209090a80902200808800c008851441a00d4086830",
8+
"miner": "0x829bd824b016326a401d083b33d092293333a830",
9+
"mixHash": "0x92bc94943fd443bf60b080698c098ebbe2a08a8f6908d8571b3533abc1ad57fa",
10+
"nonce": "0xd0550eac0070bc4e",
11+
"number": "0x5bad58",
12+
"parentHash": "0x6e93cb6eb5c014ed5a586c845ff7f67bde8938238636fc7a27566ece16341a63",
13+
"receiptsRoot": "0x6ed1ab7ed3080b5a5f7b4b5bf85914249ab65ac98da7d989cb4c0d9e37cb1514",
14+
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
15+
"size": "0x6d18",
16+
"stateRoot": "0x4247d898ece6c50937a687f446a0921be831ecfcfb3acada634d70c0ee150c30",
17+
"timestamp": "0x5b54147b",
18+
"totalDifficulty": "0x12ac137805a8f736e34",
19+
"transactions": [],
20+
"transactionsRoot": "0x70a8ba8bd8035eac6acaf23def7c61f23e8e867ee737090e69ac7be4fac28e33",
21+
"uncles": []
22+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"difficulty": "0xbfabcebf049eb",
3+
"extraData": "0x",
4+
"gasLimit": "0x79e471",
5+
"gasUsed": "0x79bccc",
6+
"hash": "0x65d524c6b6e5f6e67a2d3e432af02df4d1106836b9cc9ba6797d165b8fa76c2d",
7+
"logsBloom": "0x050c8254062c2a808013480a2d850220600286260b3a90160800022122210888c924582c180525452c44c00161028618510a14072034080469083204482810090c147a6010400090a0c10829a16048142841404484060808c0912d9804880850200400848e9000a0728007102ab17bda091a2890eec607030029453298406605e0032a00613c702b208e9104eb13029b48056820748185a04aa1024d8128d001880c44b3018303395941e0c08440420a141058098092800c40042e0822d000010881400240094008e0e00883c198c50042040008000120a4004820092000a0367812054080801d05902c021c004fb000083508d29201a0480000caa600020203",
8+
"miner": "0xf3b9d2c81f2b24b0fa0acaaa865b7d9ced5fc2fb",
9+
"mixHash": "0x8b873cd08da6895987ce174a14265025e0f37e9f92fc22c004cb7fe75ce3790a",
10+
"nonce": "0x03334720033093f0",
11+
"number": "0x5bad59",
12+
"parentHash": "0x92347dd39ceb53c16e3c2eb74018220aadd8cf2c7c6679f21974c987cb6c95d0",
13+
"receiptsRoot": "0x64ae376f5b41cf634dfef64830994cc423239fc1472ca754864d35705caf8289",
14+
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
15+
"size": "0x49f5",
16+
"stateRoot": "0x4d4b74a45435241243b5a48881068a82f4daff644617c02a0f318eb85511f04c",
17+
"timestamp": "0x5b54147e",
18+
"totalDifficulty": "0x12ac1437b177b63b81f",
19+
"transactions": [],
20+
"transactionsRoot": "0x0827d0b5dc58a97ed4159965cdf743d56f32385e4e0fa25fd260be61b31ff6b7",
21+
"uncles": []
22+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"blockHash": "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35",
3+
"blockNumber": "0x5bad55",
4+
"contractAddress": null,
5+
"cumulativeGasUsed": "0xc349",
6+
"from": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
7+
"gasUsed": "0xc349",
8+
"logs": [
9+
{
10+
"address": "0xa3c1e324ca1ce40db73ed6026c4a177f099b5770",
11+
"blockHash": "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35",
12+
"blockNumber": "0x5bad55",
13+
"data": "0x00000000000000000000000000000000000000000000000000bd8d7fa6f8cc00",
14+
"logIndex": "0x0",
15+
"removed": false,
16+
"topics": [
17+
"0xa64da754fccf55aa65a1f0128a648633fade3884b236e879ee9f64c78df5d5d7",
18+
"0x0000000000000000000000004b9c25ca0224aef6a7522cabdbc3b2e125b7ca50",
19+
"0x000000000000000000000000fbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
20+
"0x0000000000000000000000000000000000000000000000000000000000000000"
21+
],
22+
"transactionHash": "0x8784d99762bccd03b2086eabccee0d77f14d05463281e121a62abfebcf0d2d5f",
23+
"transactionIndex": "0x0"
24+
}
25+
],
26+
"logsBloom": "0x00000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000200000000000000800000000000000000000000000800040004000000000000000000000000000000000000000000000000000000020000000000000000000800000000000000000000000100000000000000000000000000800000000000000000000000008000000000000000000000000000000000004000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000020000000000000000000000000000000000000000000000000000000000000000000",
27+
"status": "0x1",
28+
"to": "0x4b9c25ca0224aef6a7522cabdbc3b2e125b7ca50",
29+
"transactionHash": "0x8784d99762bccd03b2086eabccee0d77f14d05463281e121a62abfebcf0d2d5f",
30+
"transactionIndex": "0x0"
31+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"blockHash": "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35",
3+
"blockNumber": "0x5bad55",
4+
"from": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
5+
"gas": "0x249f0",
6+
"gasPrice": "0x174876e800",
7+
"hash": "0x8784d99762bccd03b2086eabccee0d77f14d05463281e121a62abfebcf0d2d5f",
8+
"input": "0x6ea056a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bd8d7fa6f8cc00",
9+
"nonce": "0x5e4724",
10+
"r": "0xd1556332df97e3bd911068651cfad6f975a30381f4ff3a55df7ab3512c78b9ec",
11+
"s": "0x66b51cbb10cd1b2a09aaff137d9f6d4255bf73cb7702b666ebd5af502ffa4410",
12+
"to": "0x4b9c25ca0224aef6a7522cabdbc3b2e125b7ca50",
13+
"transactionIndex": "0x0",
14+
"v": "0x25",
15+
"value": "0x0"
16+
}

0 commit comments

Comments
 (0)