Update dockertests to new serai-client

This commit is contained in:
Luke Parker
2023-10-14 03:10:32 -04:00
parent e3e9939eaf
commit 7d4e8b59db
7 changed files with 56 additions and 58 deletions

View File

@@ -287,6 +287,7 @@ impl Serai {
.map_err(SeraiError::RpcError) .map_err(SeraiError::RpcError)
} }
/// Create a TemporalSerai using whatever is currently the latest block.
pub async fn with_current_latest_block(&self) -> Result<TemporalSerai, SeraiError> { pub async fn with_current_latest_block(&self) -> Result<TemporalSerai, SeraiError> {
let latest = self.latest_block_hash().await?; let latest = self.latest_block_hash().await?;
Ok(TemporalSerai(self, latest)) Ok(TemporalSerai(self, latest))

View File

@@ -170,7 +170,7 @@ impl Processor {
for _ in 0 .. 60 { for _ in 0 .. 60 {
tokio::time::sleep(Duration::from_secs(1)).await; tokio::time::sleep(Duration::from_secs(1)).await;
let Ok(client) = Serai::new(&serai_rpc).await else { continue }; let Ok(client) = Serai::new(&serai_rpc).await else { continue };
if client.get_latest_block_hash().await.is_err() { if client.latest_block_hash().await.is_err() {
continue; continue;
} }
break; break;

View File

@@ -172,7 +172,7 @@ pub async fn batch(
let batch = SignedBatch { batch, signature }; let batch = SignedBatch { batch, signature };
let serai = processors[0].serai().await; let serai = processors[0].serai().await;
let mut last_serai_block = serai.get_latest_block().await.unwrap().number(); let mut last_serai_block = serai.latest_block().await.unwrap().number();
for processor in processors.iter_mut() { for processor in processors.iter_mut() {
processor processor
@@ -187,11 +187,11 @@ pub async fn batch(
tokio::time::sleep(Duration::from_secs(6)).await; tokio::time::sleep(Duration::from_secs(6)).await;
} }
while last_serai_block <= serai.get_latest_block().await.unwrap().number() { while last_serai_block <= serai.latest_block().await.unwrap().number() {
let batch_events = serai let batch_events = serai
.get_batch_events( .as_of(serai.block_by_number(last_serai_block).await.unwrap().unwrap().hash())
serai.get_block_by_number(last_serai_block).await.unwrap().unwrap().hash(), .in_instructions()
) .batch_events()
.await .await
.unwrap(); .unwrap();
@@ -213,7 +213,7 @@ pub async fn batch(
} }
// Verify the coordinator sends SubstrateBlock to all processors // Verify the coordinator sends SubstrateBlock to all processors
let last_block = serai.get_block_by_number(last_serai_block).await.unwrap().unwrap(); let last_block = serai.block_by_number(last_serai_block).await.unwrap().unwrap();
for processor in processors.iter_mut() { for processor in processors.iter_mut() {
assert_eq!( assert_eq!(
processor.recv_message().await, processor.recv_message().await,

View File

@@ -106,7 +106,7 @@ pub async fn key_gen<C: Ciphersuite>(
let network_key = (C::generator() * *network_priv_key).to_bytes().as_ref().to_vec(); let network_key = (C::generator() * *network_priv_key).to_bytes().as_ref().to_vec();
let serai = processors[0].serai().await; let serai = processors[0].serai().await;
let mut last_serai_block = serai.get_latest_block().await.unwrap().number(); let mut last_serai_block = serai.latest_block().await.unwrap().number();
wait_for_tributary().await; wait_for_tributary().await;
for (i, processor) in processors.iter_mut().enumerate() { for (i, processor) in processors.iter_mut().enumerate() {
@@ -148,11 +148,11 @@ pub async fn key_gen<C: Ciphersuite>(
tokio::time::sleep(Duration::from_secs(6)).await; tokio::time::sleep(Duration::from_secs(6)).await;
} }
while last_serai_block <= serai.get_latest_block().await.unwrap().number() { while last_serai_block <= serai.latest_block().await.unwrap().number() {
if !serai if !serai
.get_key_gen_events( .as_of(serai.block_by_number(last_serai_block).await.unwrap().unwrap().hash())
serai.get_block_by_number(last_serai_block).await.unwrap().unwrap().hash(), .validator_sets()
) .key_gen_events()
.await .await
.unwrap() .unwrap()
.is_empty() .is_empty()
@@ -196,7 +196,9 @@ pub async fn key_gen<C: Ciphersuite>(
} }
assert_eq!( assert_eq!(
serai serai
.get_keys(set, serai.get_block_by_number(last_serai_block).await.unwrap().unwrap().hash()) .as_of(serai.block_by_number(last_serai_block).await.unwrap().unwrap().hash())
.validator_sets()
.keys(set)
.await .await
.unwrap() .unwrap()
.unwrap(), .unwrap(),

View File

@@ -17,11 +17,12 @@ use serai_client::{
NetworkId, Coin, Amount, Balance, BlockHash, SeraiAddress, ExternalAddress, NetworkId, Coin, Amount, Balance, BlockHash, SeraiAddress, ExternalAddress,
insecure_pair_from_name, insecure_pair_from_name,
}, },
tokens::{ coins::{
primitives::{OutInstruction, OutInstructionWithBalance}, primitives::{OutInstruction, OutInstructionWithBalance},
TokensEvent, TokensEvent,
}, },
in_instructions::primitives::{InInstruction, InInstructionWithBalance, Batch}, in_instructions::primitives::{InInstruction, InInstructionWithBalance, Batch},
SeraiCoins,
}; };
use messages::{sign::SignId, SubstrateContext, CoordinatorMessage}; use messages::{sign::SignId, SubstrateContext, CoordinatorMessage};
@@ -210,7 +211,7 @@ async fn sign_test() {
&serai &serai
.sign( .sign(
&PairSigner::new(insecure_pair_from_name("Ferdie")), &PairSigner::new(insecure_pair_from_name("Ferdie")),
&Serai::transfer_sri(address, Amount(1_000_000_000)), &SeraiCoins::transfer_sri(address, Amount(1_000_000_000)),
0, 0,
Default::default(), Default::default(),
) )
@@ -243,27 +244,21 @@ async fn sign_test() {
) )
.await; .await;
{
let block_included_in_hash = let block_included_in_hash =
serai.get_block_by_number(block_included_in).await.unwrap().unwrap().hash(); serai.block_by_number(block_included_in).await.unwrap().unwrap().hash();
assert_eq!( let serai = serai.as_of(block_included_in_hash).coins();
serai.get_sri_balance(block_included_in_hash, serai_addr).await.unwrap(), assert_eq!(serai.sri_balance(serai_addr).await.unwrap(), 1_000_000_000);
1_000_000_000
);
// Verify the mint occurred as expected // Verify the mint occurred as expected
assert_eq!( assert_eq!(
serai.get_mint_events(block_included_in_hash).await.unwrap(), serai.mint_events().await.unwrap(),
vec![TokensEvent::Mint { address: serai_addr, balance }] vec![TokensEvent::Mint { address: serai_addr, balance }]
); );
assert_eq!( assert_eq!(serai.token_supply(Coin::Bitcoin).await.unwrap(), amount);
serai.get_token_supply(block_included_in_hash, Coin::Bitcoin).await.unwrap(), assert_eq!(serai.token_balance(Coin::Bitcoin, serai_addr).await.unwrap(), amount);
amount }
);
assert_eq!(
serai.get_token_balance(block_included_in_hash, Coin::Bitcoin, serai_addr).await.unwrap(),
amount
);
// Trigger a burn // Trigger a burn
let out_instruction = let out_instruction =
@@ -273,7 +268,7 @@ async fn sign_test() {
&serai &serai
.sign( .sign(
&serai_pair, &serai_pair,
&Serai::burn(balance, out_instruction.clone()), &SeraiCoins::burn(balance, out_instruction.clone()),
0, 0,
Default::default(), Default::default(),
) )
@@ -290,11 +285,11 @@ async fn sign_test() {
tokio::time::sleep(Duration::from_secs(6)).await; tokio::time::sleep(Duration::from_secs(6)).await;
} }
while last_serai_block <= serai.get_latest_block().await.unwrap().number() { while last_serai_block <= serai.latest_block().await.unwrap().number() {
let burn_events = serai let burn_events = serai
.get_burn_events( .as_of(serai.block_by_number(last_serai_block).await.unwrap().unwrap().hash())
serai.get_block_by_number(last_serai_block).await.unwrap().unwrap().hash(), .coins()
) .burn_events()
.await .await
.unwrap(); .unwrap();
@@ -314,16 +309,11 @@ async fn sign_test() {
} }
} }
let last_serai_block = serai.get_block_by_number(last_serai_block).await.unwrap().unwrap(); let last_serai_block = serai.block_by_number(last_serai_block).await.unwrap().unwrap();
let last_serai_block_hash = last_serai_block.hash(); let last_serai_block_hash = last_serai_block.hash();
assert_eq!( let serai = serai.as_of(last_serai_block_hash).coins();
serai.get_token_supply(last_serai_block_hash, Coin::Bitcoin).await.unwrap(), assert_eq!(serai.token_supply(Coin::Bitcoin).await.unwrap(), Amount(0));
Amount(0) assert_eq!(serai.token_balance(Coin::Bitcoin, serai_addr).await.unwrap(), Amount(0));
);
assert_eq!(
serai.get_token_balance(last_serai_block_hash, Coin::Bitcoin, serai_addr).await.unwrap(),
Amount(0)
);
let mut plan_id = [0; 32]; let mut plan_id = [0; 32];
OsRng.fill_bytes(&mut plan_id); OsRng.fill_bytes(&mut plan_id);

View File

@@ -141,7 +141,7 @@ impl Handles {
for _ in 0 .. 60 { for _ in 0 .. 60 {
tokio::time::sleep(Duration::from_secs(1)).await; tokio::time::sleep(Duration::from_secs(1)).await;
let Ok(client) = Serai::new(&serai_rpc).await else { continue }; let Ok(client) = Serai::new(&serai_rpc).await else { continue };
if client.get_latest_block_hash().await.is_err() { if client.latest_block_hash().await.is_err() {
continue; continue;
} }
return client; return client;

View File

@@ -15,8 +15,8 @@ use serai_client::{
}, },
validator_sets::primitives::{Session, ValidatorSet}, validator_sets::primitives::{Session, ValidatorSet},
in_instructions::primitives::Shorthand, in_instructions::primitives::Shorthand,
tokens::primitives::OutInstruction, coins::primitives::OutInstruction,
PairTrait, PairSigner, PairTrait, PairSigner, SeraiCoins,
}; };
use crate::tests::*; use crate::tests::*;
@@ -196,10 +196,11 @@ async fn mint_and_burn_test() {
let print_at = halt_at / 2; let print_at = halt_at / 2;
for i in 0 .. halt_at { for i in 0 .. halt_at {
if let Some(key_pair) = serai if let Some(key_pair) = serai
.get_keys( .with_current_latest_block()
ValidatorSet { network, session: Session(0) }, .await
serai.get_latest_block_hash().await.unwrap(), .unwrap()
) .validator_sets()
.keys(ValidatorSet { network, session: Session(0) })
.await .await
.unwrap() .unwrap()
{ {
@@ -240,7 +241,7 @@ async fn mint_and_burn_test() {
&serai &serai
.sign( .sign(
&PairSigner::new(insecure_pair_from_name("Ferdie")), &PairSigner::new(insecure_pair_from_name("Ferdie")),
&Serai::transfer_sri(address, Amount(1_000_000_000)), &SeraiCoins::transfer_sri(address, Amount(1_000_000_000)),
0, 0,
Default::default(), Default::default(),
) )
@@ -408,7 +409,11 @@ async fn mint_and_burn_test() {
let print_at = halt_at / 2; let print_at = halt_at / 2;
for i in 0 .. halt_at { for i in 0 .. halt_at {
if serai if serai
.get_last_batch_for_network(serai.get_latest_block_hash().await.unwrap(), network) .with_current_latest_block()
.await
.unwrap()
.in_instructions()
.last_batch_for_network(network)
.await .await
.unwrap() .unwrap()
.is_some() .is_some()
@@ -490,7 +495,7 @@ async fn mint_and_burn_test() {
&serai &serai
.sign( .sign(
serai_pair, serai_pair,
&Serai::burn(Balance { coin, amount: Amount(amount) }, out_instruction), &SeraiCoins::burn(Balance { coin, amount: Amount(amount) }, out_instruction),
nonce, nonce,
Default::default(), Default::default(),
) )