TransactionOutput.deserialize constructor

TransactionOutput.deserialize(
  1. CborObject<Object?> cbor
)

Deserializes a TransactionOutput instance from a CBOR object.

Implementation

factory TransactionOutput.deserialize(CborObject cbor) {
  if (cbor.hasType<CborListValue>()) {
    final list = cbor.as<CborListValue>("TransactionOutput");
    final address = AdaAddressUtils.encodeBytes(
      list.elementAt<CborBytesValue>(0).value,
    );
    return TransactionOutput(
      address: address,
      amount: Value.deserialize(list.elementAt<CborObject>(1)),
      plutusData: list
          .elementAt<CborObject?>(2)
          ?.convertTo<DataOption, CborObject>(
            (e) => DataOption.deserialize(e),
          ),
      scriptRef: list
          .elementAt<CborObject?>(3)
          ?.convertTo<ScriptRef, CborListValue>(
            (e) => ScriptRef.deserialize(e),
          ),
      serializationConfig: TransactionOutputSerializationConfig(
        encoding: TransactionOutputCborEncoding.shellyEra,
      ),
    );
  }

  final CborMapValue<CborObject, CborObject> cborMap = cbor.as(
    "TransactionOutput",
  );
  final address = AdaAddressUtils.encodeBytes(
    cborMap.getIntValueAs<CborBytesValue>(0).value,
  );
  return TransactionOutput(
    address: address,
    amount: Value.deserialize(cborMap.getIntValueAs<CborObject>(1)),
    plutusData: cborMap
        .getIntValueAs<CborObject?>(2)
        ?.convertTo<DataOption, CborObject>((e) => DataOption.deserialize(e)),
    scriptRef: cborMap
        .getIntValueAs<CborTagValue?>(3)
        ?.convertTo<ScriptRef, CborTagValue>((e) => ScriptRef.deserialize(e)),
  );
}