import { isValidEncryptedPrivKey, isValidPrivKey } from 'libs/validators'; import React, { Component } from 'react'; import translate, { translateRaw } from 'translations'; export interface PrivateKeyValue { key: string; password: string; valid: boolean; } function fixPkey(key) { if (key.indexOf('0x') === 0) { return key.slice(2); } return key; } interface Validated { fixedPkey: string; isValidPkey: boolean; isPassRequired: boolean; valid: boolean; } function validatePkeyAndPass(pkey: string, pass: string): Validated { const fixedPkey = fixPkey(pkey); const validPkey = isValidPrivKey(fixedPkey); const validEncPkey = isValidEncryptedPrivKey(fixedPkey); const isValidPkey = validPkey || validEncPkey; let isValidPass = false; if (validPkey) { isValidPass = true; } else if (validEncPkey) { isValidPass = pass.length > 0; } return { fixedPkey, isValidPkey, isPassRequired: validEncPkey, valid: isValidPkey && isValidPass }; } export default class PrivateKeyDecrypt extends Component { public props: { value: PrivateKeyValue; onChange(value: PrivateKeyValue): void; onUnlock(): void; }; public render() { const { key, password } = this.props.value; const { isValidPkey, isPassRequired } = validatePkeyAndPass(key, password); return (

{translate('ADD_Radio_3')}