hashTreeToString function
Make a human readable string out of a hash tree. @param tree
Implementation
String hashTreeToString(List tree) {
indent(String s) => s.split('\n').map((x) => ' ' + x).join('\n');
switch (tree[0]) {
case 0:
return '()';
case 1:
{
final left = hashTreeToString(tree[1] as List);
final right = hashTreeToString(tree[2] as List);
return "sub(\n left:\n${indent(left)}\n---\n right:\n${indent(right)}\n)";
}
case 2:
{
final label = u8aToString(tree[1] as Uint8List, useDartEncode: true);
final sub = hashTreeToString(tree[2] as List);
return "label(\n label:\n${indent(label)}\n sub:\n${indent(sub)}\n)";
}
case 3:
{
return "leaf(...${(tree[1] as Uint8List).lengthInBytes} bytes)";
}
case 4:
{
return "pruned(${blobToHex(tree[1] as Uint8List)}";
}
default:
{
return "unknown(${jsonEncode(tree[0])})";
}
}
}