addressFormatControl function

bool addressFormatControl(
  1. String? address
)

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 String curveType = address.substring(0, 2);
    if (curveType != '00' && curveType != '01' && curveType != '02') {
      return false;
    }
    int 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;
  }
}