Add basic regex validation for addresses to frontend.

This commit is contained in:
Will O'Beirne 2019-02-05 00:52:09 -05:00
parent 7620d7f577
commit c7e18d19b0
No known key found for this signature in database
GPG Key ID: 44C190DB5DEAF9F6
2 changed files with 16 additions and 4 deletions

View File

@ -1,6 +1,6 @@
import { ProposalDraft, CreateMilestone, STATUS } from 'types';
import { User } from 'types';
import { getAmountError } from 'utils/validators';
import { getAmountError, isValidAddress } from 'utils/validators';
import { MILESTONE_STATE, Proposal } from 'types';
import { Zat, toZat } from 'utils/units';
import { ONE_DAY } from 'utils/time';
@ -81,7 +81,7 @@ export function getCreateErrors(
}
// Payout address
if (!payoutAddress) {
if (payoutAddress && !isValidAddress(payoutAddress)) {
errors.payoutAddress = 'That doesnt look like a valid address';
}

View File

@ -17,7 +17,19 @@ export function isValidEmail(email: string): boolean {
return /\S+@\S+\.\S+/.test(email);
}
// Uses simple regex to validate addresses, doesn't check checksum or network
export function isValidAddress(address: string): boolean {
console.warn('TODO - implement utils.isValidAddress', address);
return true;
// T address
if (/^t[a-zA-Z0-9]{34}$/.test(address)) {
return true;
}
// Sprout address
if (/^z?[a-zA-Z0-9]{94}$/.test(address)) {
return true;
}
// Sapling address
if (/^z(s)?(reg)?(testsapling)?[a-zA-Z0-9]{76}$/.test(address)) {
return true;
}
return false;
}