ConstrPlutusData.deserialize constructor

ConstrPlutusData.deserialize(
  1. CborTagValue cbor
)

Deserializes a ConstrPlutusData instance from CBOR.

Implementation

factory ConstrPlutusData.deserialize(CborTagValue cbor) {
  if (BytesUtils.bytesEqual(cbor.tags, [PlutusDataUtils.generalFormTag])) {
    final CborListValue data = cbor.getValue<CborListValue>();
    return ConstrPlutusData(
        alternative: data.getIndex<CborObject>(0).getInteger(),
        data: PlutusList.deserialize(data.getIndex(1)));
  }
  final BigInt? alternative =
      PlutusDataUtils.cborTagToAlternative(cbor.tags.first);
  if (alternative == null) {
    throw const MessageException("Invalid ConstrPlutusData tag.");
  }
  return ConstrPlutusData(
      alternative: alternative,
      data: PlutusList.deserialize(cbor.getValue()));
}