bcsSliverData static method

Uint8List bcsSliverData(
  1. SliverData sliver
)

BCS-encode a SliverData for storage node PUT requests.

BCS layout: Symbols { data: byteVector, symbol_size: u16 } || index: u16

Implementation

static Uint8List bcsSliverData(SliverData sliver) {
  final builder = BytesBuilder(copy: false);

  // Symbols.data: BCS byteVector = ULEB128(length) + bytes
  _writeUleb128(builder, sliver.data.length);
  builder.add(sliver.data);

  // Symbols.symbol_size: u16 LE
  _writeU16(builder, sliver.symbolSize);

  // index: u16 LE
  _writeU16(builder, sliver.index);

  return builder.toBytes();
}