use seedelf_cli::assets::{Asset, asset_id_to_asset};
use seedelf_cli::koios::{ada_handle_address, asset_history, datum_from_datum_hash, nft_utxo};
use serde_json::Value;
#[test]
fn tx_hash_result() {
let json_value =
Value::String("1e8740c8eaeae2c97a84893776c301ed8072b6eede61ebb19f36c339".to_string());
let extracted = json_value.as_str().unwrap_or("default");
assert_eq!(
extracted,
"1e8740c8eaeae2c97a84893776c301ed8072b6eede61ebb19f36c339"
)
}
#[tokio::test]
async fn find_ada_handle() {
let name: String = "logic.mech".to_string();
let payment_address = ada_handle_address(name, false, false, 1).await.unwrap();
assert_eq!(
payment_address,
"addr1q8rdcfvj5a27gmp04q5c4nuly385mseam09y777xa8mjn40ax0z9yaxg2mjj3ctg4uj6ggwsc6nja0kj446w2gv5zcvqjk47zh"
)
}
#[tokio::test]
async fn find_nft_utxo() {
let asset_id: String = String::from(
"b558ea5ecfa2a6e9701dab150248e94104402f789c090426eb60eb60536e656b6b696533363333",
);
let asset: Asset = asset_id_to_asset(asset_id);
let nft_utxo = nft_utxo(
asset.policy_id.to_string(),
hex::encode(asset.token_name),
false,
)
.await;
let utxo = nft_utxo.unwrap().first().unwrap().clone();
println!("{:?}", utxo.tx_hash);
if utxo.inline_datum.is_none() {
if let Some(datum_hash) = utxo.datum_hash {
println!("Datum Hash: {}", datum_hash);
let datum = datum_from_datum_hash(datum_hash, false).await;
println!("Datum: {:?}", datum);
}
}
}
#[tokio::test]
async fn find_datum() {
let datum_hash: String =
String::from("21eed8a2f7e4298c95ded10c5d2544f3c24ac45396167d1024bb04e6720f5f6b");
let datum = datum_from_datum_hash(datum_hash, false).await;
println!("Cant Find Datum: {:?}", datum);
}
#[tokio::test]
async fn test_asset_history() {
let pid: String = String::from("b3ad6187273d174b586b1c86d4c6c7eeefa7bdca6dd819f125d4dd06");
let tkn: String = String::from("74494147");
let history = asset_history(pid, tkn, true, 5).await;
assert_eq!(history.unwrap().len(), 5)
}