@@ -13,9 +13,14 @@ import {
13 validateGreaterThan,
13 validateGreaterThan,
14 validateEmail,
14 validateEmail,
15 validateNotNullAddress,
15 validateNotNullAddress,
16} from 'lib/validators';
18} from 'lib/validators';
17import isPromise from 'lib/isPromise';
19import isPromise from 'lib/isPromise';
21+const PRIVATE_KEY_CHAR_LENGTH = 64; // 64 hex characters
22+const ADDRESS_CHAR_LENGTH = 40; // 40 hex characters
19// iterate over validators, exiting early if there's an error
24// iterate over validators, exiting early if there's an error
20const buildValidator = (validators = [], validate) => value => {
25const buildValidator = (validators = [], validate) => value => {
21 for (const validator of validators) {
26 for (const validator of validators) {
@@ -75,15 +80,23 @@ export const buildSelectValidator = options =>
75export const buildHexValidator = length =>
80export const buildHexValidator = length =>
76 buildValidator([
81 buildValidator([
77 validateNotEmpty,
82 validateNotEmpty,
78 validateHexString,
84 validateHexString,
79 validateHexLength(length),
85 validateHexLength(length),
87+export const buildPrivateKeyValidator = () =>
91+ validateLength(PRIVATE_KEY_CHAR_LENGTH),
81export const buildUploadValidator = () => buildValidator([validateNotEmpty]);
93export const buildUploadValidator = () => buildValidator([validateNotEmpty]);
82export const buildAddressValidator = () =>
94export const buildAddressValidator = () =>
83 buildValidator([
95 buildValidator([
84 validateNotEmpty,
96 validateNotEmpty,
85 validateHexString,
98 validateHexString,
86− validateHexLength(40),
99+ validateHexLength(ADDRESS_CHAR_LENGTH),
87 validateNotNullAddress,
100 validateNotNullAddress,
88 validateEthereumAddress,
101 validateEthereumAddress,