public bool UnlockAccount(Address address, SecureString passphrase, TimeSpan?timeSpan) { if (address == Address.Zero) { return(false); } else if (IsUnlocked(address)) { return(true); } else { (PrivateKey key, Result result) = _keyStore.GetKey(address, passphrase); if (result.ResultType == ResultType.Success) { if (_logger.IsInfo) { _logger.Info($"Unlocking account: {address}"); } _unlockedAccounts.Add(key.Address.ToString(), _protectedPrivateKeyFactory.Create(key), new CacheItemPolicy() { Priority = CacheItemPriority.NotRemovable, AbsoluteExpiration = _timestamper.UtcNowOffset + (timeSpan ?? DefaultExpirationTime) }); AccountUnlocked?.Invoke(this, new AccountUnlockedEventArgs(address)); return(true); } if (_logger.IsError) { _logger.Error($"Failed to unlock the account: {address}"); } return(false); } }
public bool UnlockAccount(Address address, SecureString passphrase, TimeSpan?timeSpan) { if (address == Address.Zero) { return(false); } else if (IsUnlocked(address)) { return(true); } else { (PrivateKey key, Result result) = _keyStore.GetKey(address, passphrase); if (result.ResultType == ResultType.Success) { if (_logger.IsInfo) { _logger.Info($"Unlocking account: {address}"); } _unlockedAccounts.Set(key.Address.ToString(), _protectedPrivateKeyFactory.Create(key)); AccountUnlocked?.Invoke(this, new AccountUnlockedEventArgs(address)); return(true); } if (_logger.IsError) { _logger.Error($"Failed to unlock the account: {address}"); } return(false); } }