addressFormatControl function
Verify the structure of an address @param {String} address to control
Implementation
bool addressFormatControl(String? address) {
if (address != null && address.length >= 4 && isHex(address)) {
final curveType = address.substring(0, 2);
if (curveType != '00' && curveType != '01' && curveType != '02') {
return false;
}
var digestSize = 0;
switch (address.substring(2, 4)) {
/// 00 = sha256
case '00':
digestSize = Digest('SHA-256').digestSize;
break;
/// 01 = sha512
case '01':
digestSize = Digest('SHA-512').digestSize;
break;
/// 02 = sha3-256
case '02':
digestSize = Digest('SHA3-256').digestSize;
break;
/// 03 = sha3-512
case '03':
digestSize = Digest('SHA3-512').digestSize;
break;
/// 04 = blake2b
case '04':
digestSize = Digest('Blake2b').digestSize;
break;
default:
return false;
}
try {
if (Uint8List.fromList(hexToUint8List(address.substring(4))).length !=
digestSize) {
return false;
} else {
return true;
}
} catch (e) {
return false;
}
} else {
return false;
}
}