class WalletApiImpl extends AbstractApi implements WalletApi, Signer {

  @Override
  public boolean unlock(final Authentication authentication) {
    try {
      assertNotNull(authentication, "Authentication must not null");
      logger.debug("Unlock with {}", authentication);

      synchronized (lock) {
        if (this.proxySigner.isUnlocked()) {
          throw new HerajException("Lock already unlocked one");
        }

        this.proxySigner.setUnlocked(keyStore.load(authentication));
      }
      return true;
    } catch (InvalidAuthenticationException e) {
      return false;
    } catch (Exception e) {
      throw converter.convert(e);
    }
  }

    WalletApiImpl(final KeyStore keyStore, final TryCountAndInterval tryCountAndInterval);

}