Beispiel #1
0
        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>());
        }
Beispiel #3
0
        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);
        }