public async Task Init(INethermindApi api) { _vaultConfig = api.Config <IVaultConfig>(); _api = api; _logger = api.LogManager.GetClassLogger(); _vaultService = new VaultService(_vaultConfig, _api.LogManager); if (_vaultConfig.Enabled) { var passwordProvider = new FilePasswordProvider() { FileName = _vaultConfig.VaultKeyFile.GetApplicationResourcePath() } .OrReadFromConsole("Provide passsphrase to unlock Vault"); var vaultKeyStoreFacade = new VaultKeyStoreFacade(passwordProvider); _vaultSealingHelper = new VaultSealingHelper(vaultKeyStoreFacade, _vaultConfig, _logger); await _vaultSealingHelper.Unseal(); } IVaultWallet wallet = new VaultWallet(_vaultService, _vaultConfig.VaultId, _api.LogManager); ITxSigner vaultSigner = new VaultTxSigner(wallet, _api.ChainSpec.ChainId); // TODO: change vault to provide, use sealer to set the gas price as well // TODO: need to verify the timing of initializations so the TxSender replacement works fine _api.TxSender = new VaultTxSender(vaultSigner, _vaultConfig, _api.ChainSpec.ChainId); }
public VaultSealingForTestsHelper(IVaultConfig vaultConfig) { _vaultConfig = vaultConfig ?? throw new ArgumentNullException(nameof(vaultConfig)); _vaultConfig.VaultKeyFile = VaultConfigFileName; var passwordProvider = new FilePasswordProvider(a => Path.Combine(TestContext.CurrentContext.WorkDirectory, _vaultConfig.VaultKeyFile)); var vaultKeyStoreFacade = new VaultKeyStoreFacade(passwordProvider); _vaultSealingHelper = new VaultSealingHelper(vaultKeyStoreFacade, _vaultConfig, LimboLogs.Instance.GetClassLogger <VaultSealingHelper>()); }
public void Alternative_provider_sets_correctly() { var emptyPasswordProvider = new FilePasswordProvider(address => string.Empty); var consolePasswordProvider1 = emptyPasswordProvider .OrReadFromConsole("Test1"); Assert.IsTrue(consolePasswordProvider1 is FilePasswordProvider); Assert.AreEqual("Test1", ((ConsolePasswordProvider)consolePasswordProvider1.AlternativeProvider).Message); var consolePasswordProvider2 = consolePasswordProvider1 .OrReadFromConsole("Test2"); Assert.IsTrue(consolePasswordProvider2 is FilePasswordProvider); Assert.AreEqual("Test2", ((ConsolePasswordProvider)consolePasswordProvider2.AlternativeProvider).Message); }