Skip to content

Commit 139b1f7

Browse files
committed
Test Translator, JD and miner setup
.. Tests that when a miner submits shares to translator it is propagated up to the pool by JD.
1 parent 76afdc5 commit 139b1f7

File tree

1 file changed

+55
-2
lines changed

1 file changed

+55
-2
lines changed

roles/tests-integration/tests/translator_integration.rs

+55-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
use const_sv2::{MESSAGE_TYPE_SETUP_CONNECTION, MESSAGE_TYPE_SUBMIT_SHARES_EXTENDED};
1+
use const_sv2::{
2+
MESSAGE_TYPE_MINING_SET_NEW_PREV_HASH, MESSAGE_TYPE_SETUP_CONNECTION,
3+
MESSAGE_TYPE_SUBMIT_SHARES_EXTENDED,
4+
};
25
use integration_tests_sv2::{sniffer::*, *};
36
use roles_logic_sv2::parsers::{CommonMessages, Mining, PoolMessages};
47

@@ -13,7 +16,7 @@ async fn translation_proxy() {
1316
let (pool_translator_sniffer, pool_translator_sniffer_addr) =
1417
start_sniffer("0".to_string(), pool_addr, false, None).await;
1518
let (_, tproxy_addr) = start_sv2_translator(pool_translator_sniffer_addr).await;
16-
let _mining_device = start_mining_device_sv1(tproxy_addr).await;
19+
let _mining_device = start_mining_device_sv1(tproxy_addr, false).await;
1720
pool_translator_sniffer
1821
.wait_for_message_type(MessageDirection::ToUpstream, MESSAGE_TYPE_SETUP_CONNECTION)
1922
.await;
@@ -44,3 +47,53 @@ async fn translation_proxy() {
4447
)
4548
.await;
4649
}
50+
51+
// Test full flow with Translator and Job Declarator. An SV1 mining device is connected to
52+
// Translator and is successfully submitting shares to the pool. It also asserts that Pool role
53+
// sends a subsequent `SET_NEW_PREV_HASH`.
54+
#[tokio::test]
55+
async fn translation_proxy_and_jd() {
56+
let (_tp, tp_addr) = start_template_provider(None).await;
57+
let (_pool, pool_addr) = start_pool(Some(tp_addr)).await;
58+
let (jdc_pool_sniffer, pool_translator_sniffer_addr) =
59+
start_sniffer("0".to_string(), pool_addr, false, None).await;
60+
let (_jds, jds_addr) = start_jds(tp_addr).await;
61+
let (_jdc, jdc_addr) = start_jdc(pool_translator_sniffer_addr, tp_addr, jds_addr).await;
62+
let (_translator, tproxy_addr) = start_sv2_translator(jdc_addr).await;
63+
let _mining_device = start_mining_device_sv1(tproxy_addr, true).await;
64+
jdc_pool_sniffer
65+
.wait_for_message_type(MessageDirection::ToUpstream, MESSAGE_TYPE_SETUP_CONNECTION)
66+
.await;
67+
assert_common_message!(
68+
&jdc_pool_sniffer.next_message_from_downstream(),
69+
SetupConnection
70+
);
71+
assert_common_message!(
72+
&jdc_pool_sniffer.next_message_from_upstream(),
73+
SetupConnectionSuccess
74+
);
75+
assert_mining_message!(
76+
&jdc_pool_sniffer.next_message_from_downstream(),
77+
OpenExtendedMiningChannel
78+
);
79+
assert_mining_message!(
80+
&jdc_pool_sniffer.next_message_from_upstream(),
81+
OpenExtendedMiningChannelSuccess
82+
);
83+
assert_mining_message!(
84+
&jdc_pool_sniffer.next_message_from_upstream(),
85+
NewExtendedMiningJob
86+
);
87+
jdc_pool_sniffer
88+
.wait_for_message_type(
89+
MessageDirection::ToUpstream,
90+
MESSAGE_TYPE_SUBMIT_SHARES_EXTENDED,
91+
)
92+
.await;
93+
jdc_pool_sniffer
94+
.wait_for_message_type(
95+
MessageDirection::ToDownstream,
96+
MESSAGE_TYPE_MINING_SET_NEW_PREV_HASH,
97+
)
98+
.await;
99+
}

0 commit comments

Comments
 (0)