getMessage method

String getMessage()

Implementation

String getMessage() {
  final hash = Serializer.serializeRawTransaction(this).toBytes();
  var txHash =
      Blake2b.getBlake2bHash(hash, personalization: CKB_HASH_PERSONALIZATION);
  Witness emptiedWitness = groupWitnesses[0];
  emptiedWitness.lock = Witness.SIGNATURE_PLACEHOLDER;
  var witnessTable = Serializer.serializeWitnessArgs(emptiedWitness);
  var blake2b = Blake2b(personalization: CKB_HASH_PERSONALIZATION);
  blake2b.defaultUpdate(txHash);
  blake2b.defaultUpdate(UInt64.fromInt(witnessTable.getLength()).toBytes());
  blake2b.defaultUpdate(witnessTable.toBytes());
  for (var i = 1; i < groupWitnesses.length; i++) {
    Uint8List bytes;
    if (groupWitnesses[i] is Witness) {
      bytes = Serializer.serializeWitnessArgs(groupWitnesses[i]).toBytes();
    } else {
      bytes = dynamicToUint8List(groupWitnesses[i]);
    }
    blake2b.defaultUpdate(UInt64.fromInt(bytes.length).toBytes());
    blake2b.defaultUpdate(bytes);
  }
  return dynamicToHex(blake2b.doFinal());
}