getMessage method
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());
}