calculateFingerprint function

String calculateFingerprint(
  1. {required String policyId,
  2. required String assetNameHex,
  3. String hrp = 'asset'}
)

given a asset policyId and an assetName in hex, generate a bech32 asset fingerprint

Implementation

String calculateFingerprint(
    {required String policyId,
    required String assetNameHex,
    String hrp = 'asset'}) {
  //final assetNameHex = str2hex.encode(assetName);
  final assetId = '$policyId$assetNameHex';
  //logger.i("assetId: $assetId");
  final assetIdBytes = HEX.decode(assetId);
  //logger.i(b2s(assetIdBytes, prefix: 'assetIdBytes'));
  final List<int> hashBytes = blake2bHash160(assetIdBytes);
  //logger.i(b2s(hashBytes, prefix: 'hashBytes'));
  final List<int> fiveBitArray = convertBits(hashBytes, 8, 5, false);
  //logger.i(b2s(fiveBitArray, prefix: 'fiveBitArray'));
  return bech32.encode(Bech32(hrp, fiveBitArray));
}