@@ -13,9 +13,14 @@ import {
1313 validateGreaterThan,
1414 validateEmail,
1515 validateNotNullAddress,
16+ validateHexPrefix,
17+ validateLength,
1618} from 'lib/validators';
1719import isPromise from 'lib/isPromise';
1820
21+const PRIVATE_KEY_CHAR_LENGTH = 64; // 64 hex characters
22+const ADDRESS_CHAR_LENGTH = 40; // 40 hex characters
23+
1924// iterate over validators, exiting early if there's an error
2025const buildValidator = (validators = [], validate) => value => {
2126 for (const validator of validators) {
@@ -75,15 +80,23 @@ export const buildSelectValidator = options =>
7580export const buildHexValidator = length =>
7681 buildValidator([
7782 validateNotEmpty,
83+ validateHexPrefix,
7884 validateHexString,
7985 validateHexLength(length),
8086 ]);
87+export const buildPrivateKeyValidator = () =>
88+ buildValidator([
89+ validateNotEmpty,
90+ validateHexString,
91+ validateLength(PRIVATE_KEY_CHAR_LENGTH),
92+ ]);
8193export const buildUploadValidator = () => buildValidator([validateNotEmpty]);
8294export const buildAddressValidator = () =>
8395 buildValidator([
8496 validateNotEmpty,
97+ validateHexPrefix,
8598 validateHexString,
86− validateHexLength(40),
99+ validateHexLength(ADDRESS_CHAR_LENGTH),
87100 validateNotNullAddress,
88101 validateEthereumAddress,
89102 ]);