use alloy::signers::aws::{AwsSigner, AwsSignerError, aws_sdk_kms};
use serde::Deserialize;
pub use alloy::signers::aws::aws_config;
#[derive(Debug, Clone, Deserialize)]
#[non_exhaustive]
pub struct AwsSignerConfig {
pub key_id: String,
pub chain_id: Option<u64>,
}
impl AwsSignerConfig {
pub async fn into_signer(
self,
sdk_config: &aws_config::SdkConfig,
) -> Result<AwsSigner, AwsSignerError> {
let client = aws_sdk_kms::Client::new(sdk_config);
let signer = AwsSigner::new(client, self.key_id, self.chain_id).await?;
Ok(signer)
}
}