123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- use std::time::Duration;
- use anyhow::{bail, Result};
- use cdk::amount::SplitTarget;
- use cdk::nuts::{PreMintSecrets, SwapRequest};
- use cdk::HttpClient;
- use cdk_integration_tests::{create_backends_fake_wallet, mint_proofs, start_mint, MINT_URL};
- #[tokio::test(flavor = "multi_thread", worker_threads = 1)]
- pub async fn test_unbalanced_swap() -> Result<()> {
- tokio::spawn(async move {
- let ln_backends = create_backends_fake_wallet();
- start_mint(ln_backends).await.expect("Could not start mint")
- });
-
- tokio::time::sleep(Duration::from_millis(500)).await;
- let wallet_client = HttpClient::new();
- let mint_keys = wallet_client.get_mint_keys(MINT_URL.parse()?).await?;
- let mint_keys = mint_keys.first().unwrap();
- let keyset_id = mint_keys.id;
- let pre_swap_proofs = mint_proofs(MINT_URL, 10.into(), keyset_id, mint_keys).await?;
- let pre_mint = PreMintSecrets::random(keyset_id, 9.into(), &SplitTarget::default())?;
- let swap_request = SwapRequest::new(pre_swap_proofs.clone(), pre_mint.blinded_messages());
- let _swap_response = match wallet_client
- .post_swap(MINT_URL.parse()?, swap_request)
- .await
- {
- Ok(res) => res,
-
-
- Err(err) => match err {
- cdk::wallet::error::Error::TransactionUnbalanced => {
- return Ok(());
- }
- _ => {
- println!("{}", err);
- bail!("Wrong error code returned");
- }
- },
- };
- bail!("Transaction should not have succeeded")
- }
|