mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 12:19:24 +00:00
add specific network/coin/balance types (#619)
* add specific network/coin/balance types * misc fixes * fix clippy * misc fixes * fix pr comments * Make halting for external networks * fix encode/decode
This commit is contained in:
@@ -9,12 +9,13 @@ use rand_core::{RngCore, OsRng};
|
||||
use scale::Encode;
|
||||
|
||||
use serai_client::{
|
||||
primitives::{
|
||||
NetworkId, Coin, Amount, Balance, SeraiAddress, ExternalAddress, insecure_pair_from_name,
|
||||
},
|
||||
validator_sets::primitives::{Session, ValidatorSet},
|
||||
in_instructions::primitives::Shorthand,
|
||||
coins::primitives::{OutInstruction, OutInstructionWithBalance},
|
||||
in_instructions::primitives::Shorthand,
|
||||
primitives::{
|
||||
insecure_pair_from_name, Amount, Balance, Coin, ExternalAddress, ExternalBalance, ExternalCoin,
|
||||
SeraiAddress,
|
||||
},
|
||||
validator_sets::primitives::{ExternalValidatorSet, Session},
|
||||
PairTrait, SeraiCoins,
|
||||
};
|
||||
|
||||
@@ -199,7 +200,7 @@ async fn mint_and_burn_test() {
|
||||
.await
|
||||
.unwrap()
|
||||
.validator_sets()
|
||||
.keys(ValidatorSet { network, session: Session(0) })
|
||||
.keys(ExternalValidatorSet { network, session: Session(0) })
|
||||
.await
|
||||
.unwrap()
|
||||
{
|
||||
@@ -224,7 +225,10 @@ async fn mint_and_burn_test() {
|
||||
}
|
||||
};
|
||||
|
||||
(key_pair(false, NetworkId::Bitcoin).await, key_pair(true, NetworkId::Monero).await)
|
||||
(
|
||||
key_pair(false, ExternalNetworkId::Bitcoin).await,
|
||||
key_pair(true, ExternalNetworkId::Monero).await,
|
||||
)
|
||||
};
|
||||
|
||||
// Because the initial keys only become active when the network's time matches the Serai
|
||||
@@ -439,8 +443,8 @@ async fn mint_and_burn_test() {
|
||||
);
|
||||
}
|
||||
};
|
||||
wait_for_batch(false, NetworkId::Bitcoin).await;
|
||||
wait_for_batch(true, NetworkId::Monero).await;
|
||||
wait_for_batch(false, ExternalNetworkId::Bitcoin).await;
|
||||
wait_for_batch(true, ExternalNetworkId::Monero).await;
|
||||
}
|
||||
|
||||
// TODO: Verify the mints
|
||||
@@ -492,7 +496,7 @@ async fn mint_and_burn_test() {
|
||||
let serai_pair = &serai_pair;
|
||||
move |nonce, coin, amount, address| async move {
|
||||
let out_instruction = OutInstructionWithBalance {
|
||||
balance: Balance { coin, amount: Amount(amount) },
|
||||
balance: ExternalBalance { coin, amount: Amount(amount) },
|
||||
instruction: OutInstruction { address, data: None },
|
||||
};
|
||||
|
||||
@@ -511,7 +515,7 @@ async fn mint_and_burn_test() {
|
||||
#[allow(clippy::inconsistent_digit_grouping)]
|
||||
burn(
|
||||
0,
|
||||
Coin::Bitcoin,
|
||||
ExternalCoin::Bitcoin,
|
||||
1_000_000_00,
|
||||
ExternalAddress::new(
|
||||
serai_client::networks::bitcoin::Address::new(bitcoin_addr.clone()).unwrap().into(),
|
||||
@@ -522,7 +526,7 @@ async fn mint_and_burn_test() {
|
||||
|
||||
burn(
|
||||
1,
|
||||
Coin::Monero,
|
||||
ExternalCoin::Monero,
|
||||
1_000_000_000_000,
|
||||
ExternalAddress::new(
|
||||
serai_client::networks::monero::Address::new(monero_addr).unwrap().into(),
|
||||
|
||||
@@ -3,7 +3,7 @@ use std::{sync::OnceLock, collections::HashMap};
|
||||
|
||||
use tokio::sync::Mutex;
|
||||
|
||||
use serai_client::primitives::NetworkId;
|
||||
use serai_client::primitives::ExternalNetworkId;
|
||||
|
||||
use dockertest::{
|
||||
LogAction, LogPolicy, LogSource, LogOptions, StartPolicy, TestBodySpecification,
|
||||
@@ -56,15 +56,21 @@ pub(crate) async fn new_test(test_body: impl TestBody) {
|
||||
|
||||
let (coord_key, message_queue_keys, message_queue_composition) = message_queue_instance();
|
||||
|
||||
let (bitcoin_composition, bitcoin_port) = network_instance(NetworkId::Bitcoin);
|
||||
let mut bitcoin_processor_composition =
|
||||
processor_instance(NetworkId::Bitcoin, bitcoin_port, message_queue_keys[&NetworkId::Bitcoin]);
|
||||
let (bitcoin_composition, bitcoin_port) = network_instance(ExternalNetworkId::Bitcoin);
|
||||
let mut bitcoin_processor_composition = processor_instance(
|
||||
ExternalNetworkId::Bitcoin,
|
||||
bitcoin_port,
|
||||
message_queue_keys[&ExternalNetworkId::Bitcoin],
|
||||
);
|
||||
assert_eq!(bitcoin_processor_composition.len(), 1);
|
||||
let bitcoin_processor_composition = bitcoin_processor_composition.swap_remove(0);
|
||||
|
||||
let (monero_composition, monero_port) = network_instance(NetworkId::Monero);
|
||||
let mut monero_processor_composition =
|
||||
processor_instance(NetworkId::Monero, monero_port, message_queue_keys[&NetworkId::Monero]);
|
||||
let (monero_composition, monero_port) = network_instance(ExternalNetworkId::Monero);
|
||||
let mut monero_processor_composition = processor_instance(
|
||||
ExternalNetworkId::Monero,
|
||||
monero_port,
|
||||
message_queue_keys[&ExternalNetworkId::Monero],
|
||||
);
|
||||
assert_eq!(monero_processor_composition.len(), 1);
|
||||
let monero_processor_composition = monero_processor_composition.swap_remove(0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user