Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }