// @flow import React, { Component } from 'react'; import translate, { translateRaw } from 'translations'; import { isValidPrivKey, isValidEncryptedPrivKey } from 'libs/validators'; export type PrivateKeyValue = { key: string, password: string, valid: boolean }; function fixPkey(key) { if (key.indexOf('0x') === 0) { return key.slice(2); } return key; } type 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 { props: { value: PrivateKeyValue, onChange: (value: PrivateKeyValue) => void, onUnlock: () => void }; render() { const { key, password } = this.props.value; const { isValidPkey, isPassRequired } = validatePkeyAndPass(key, password); return (

{translate('ADD_Radio_3')}