toCborMap method

MapBuilder toCborMap({
  1. bool forJson = false,
})

Implementation

MapBuilder toCborMap({bool forJson = false}) {
  final mapBuilder = MapBuilder.builder();
  //0:inputs
  if (forJson) {
    mapBuilder.writeString('inputs');
  } else {
    mapBuilder.writeInt(0);
  }
  final inListBuilder = ListBuilder.builder();
  for (var input in inputs) {
    inListBuilder
        .addBuilderOutput(input.toCborList(forJson: forJson).getData());
  }
  mapBuilder.addBuilderOutput(inListBuilder.getData());
  //1:outputs
  if (forJson) {
    mapBuilder.writeString('outputs');
  } else {
    mapBuilder.writeInt(1);
  }
  final outListBuilder = ListBuilder.builder();
  for (var output in outputs) {
    outListBuilder
        .addBuilderOutput(output.toCborList(forJson: forJson).getData());
  }
  mapBuilder.addBuilderOutput(outListBuilder.getData());
  //2:fee
  if (forJson) {
    mapBuilder.writeString('fee');
  } else {
    mapBuilder.writeInt(2);
  }
  mapBuilder.writeInt(fee);
  //3:ttl (optional)
  if (ttl != null) {
    if (forJson) {
      mapBuilder.writeString('ttl');
    } else {
      mapBuilder.writeInt(3);
    }
    mapBuilder.writeInt(ttl!);
  }
  //7:metadataHash (optional)
  if (metadataHash != null && metadataHash!.isNotEmpty) {
    if (forJson) {
      mapBuilder.writeString('metadataHash');
      mapBuilder.writeString(HEX.encode(metadataHash!));
    } else {
      mapBuilder.writeInt(7);
      mapBuilder.writeBuff(unit8BufferFromBytes(metadataHash!));
    }
  }
  //8:validityStartInterval (optional)
  if (validityStartInterval != 0) {
    if (forJson) {
      mapBuilder.writeString('validityStartInterval');
    } else {
      mapBuilder.writeInt(8);
    }
    mapBuilder.writeInt(validityStartInterval);
  }
  //9:mint (optional)
  if (mint.isNotEmpty) {
    if (forJson) {
      mapBuilder.writeString('mint');
    } else {
      mapBuilder.writeInt(9);
    }
    final mintMapBuilder = MapBuilder.builder();
    for (var multiAsset in mint) {
      if (forJson) {
        mintMapBuilder.writeString(multiAsset.policyId);
      } else {
        mintMapBuilder.writeBuff(uint8BufferFromHex(multiAsset.policyId));
      }
      mintMapBuilder.addBuilderOutput(
          multiAsset.assetsToCborMap(forJson: forJson).getData());
    }
    mapBuilder.addBuilderOutput(mintMapBuilder.getData());
  }
  return mapBuilder;
}