verifyDewif method

bool verifyDewif(
  1. String dewif, {
  2. int dewifCurrencyCode = DEWIF_CURRENCY_CODE_G1,
  3. int dewifVersion = DEWIF_VERSION,
})

Return true if the given DEWIF base64 string is valid.

Implementation

bool verifyDewif(String dewif,
    {int dewifCurrencyCode = DEWIF_CURRENCY_CODE_G1,
    int dewifVersion = DEWIF_VERSION}) {
  String dewifCurrencyCodeHexa =
      dewifCurrencyCode.toRadixString(16).padLeft(8, '0');
  String dewifVersionHexa = dewifVersion.toRadixString(16).padLeft(8, '0');

  final rawDewif = HEX.encode(base64.decode(dewif));
  final version = rawDewif.substring(0, 8);
  final currencyCode = rawDewif.substring(8, 16);
  final logN = rawDewif.substring(16, 18);
  final algorythm = rawDewif.substring(18, 20);

  // print(
  //     "$version == $dewifVersion && $currencyCode == $dewifCurrencyCodeHexa && $logN == '0e' && $algorythm == ${DEWIF_ALGORITHM_CODE_BIP32_ED25519.toRadixString(16).padLeft(2, '0')}");

  if (version == dewifVersionHexa &&
      currencyCode == dewifCurrencyCodeHexa &&
      logN == '0e' &&
      algorythm ==
          DEWIF_ALGORITHM_CODE_BIP32_ED25519
              .toRadixString(16)
              .padLeft(2, '0')) {
    return true;
  } else {
    return false;
  }
}