computeTxHash function
Implementation
Hash computeTxHash(RawTransaction transaction) {
final bytes = BytesBuilder(copy: false)
..addByte(transaction.type.rawValue)
..add(transaction.previousHash!.bytes)
..add(leftPadBytes(bigIntToBytes(transaction.height!), 8))
..add(transaction.address!.original);
if (transaction.type.isSendType) {
bytes
..add(transaction.toAddress!.original)
..add(leftPadBytes(bigIntToBytes(transaction.amount!), 32))
..add(transaction.token!.core);
} else {
bytes.add(transaction.sendBlockHash!.bytes);
}
final data = transaction.data;
if (data != null) {
bytes.add(Hash.dataToHash(data).bytes);
}
bytes.add(leftPadBytes(bigIntToBytes(transaction.fee ?? BigInt.zero), 32));
if (transaction.nonce != null) {
bytes.add(leftPadBytes(transaction.nonce!, 8));
} else {
bytes.add(Uint8List(8));
}
return Hash.dataToHash(bytes.takeBytes());
}