use serde::Deserialize;
use serde_json::json;
use hanzo_messages::schemas::x402_types::PaymentRequirements;
use crate::{NonRustCodeRunnerFactory, NonRustRuntime, RunError};
use super::verify_payment::Input;
pub type PaymentRequirementsInput = Input;
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PaymentRequirementsOutput {
pub payment_requirements: Vec<PaymentRequirements>,
}
pub async fn get_payment_requirements(input: PaymentRequirementsInput) -> Result<PaymentRequirementsOutput, RunError> {
let code = include_str!("paymentRequirementsDenoImpl.ts");
let runner = NonRustCodeRunnerFactory::new("payment_requirements", code, vec![])
.with_runtime(NonRustRuntime::Deno)
.create_runner(json!({}));
runner.run::<_, PaymentRequirementsOutput>(input, None).await
}