(config: StartSignerConfig)
| 389 | } |
| 390 | |
| 391 | async fn start_manager(config: StartSignerConfig) -> eyre::Result<SigningManager> { |
| 392 | let proxy_store = if let Some(store) = config.store.clone() { |
| 393 | Some(store.init_from_env()?) |
| 394 | } else { |
| 395 | warn!("Proxy store not configured. Proxies keys and delegations will not be persisted"); |
| 396 | None |
| 397 | }; |
| 398 | |
| 399 | match config.dirk { |
| 400 | Some(dirk) => { |
| 401 | let mut manager = DirkManager::new(config.chain, dirk).await?; |
| 402 | if let Some(store) = config.store { |
| 403 | manager = manager.with_proxy_store(store.init_from_env()?)?; |
| 404 | } |
| 405 | |
| 406 | Ok(SigningManager::Dirk(manager)) |
| 407 | } |
| 408 | None => { |
| 409 | let mut manager = LocalSigningManager::new(config.chain, proxy_store)?; |
| 410 | let Some(loader) = config.loader.clone() else { |
| 411 | warn!("No loader configured."); |
| 412 | return Err(eyre::eyre!("No loader configured")); |
| 413 | }; |
| 414 | for signer in loader.load_keys()? { |
| 415 | manager.add_consensus_signer(signer); |
| 416 | } |
| 417 | Ok(SigningManager::Local(manager)) |
| 418 | } |
| 419 | } |
| 420 | } |
no test coverage detected