diff --git a/project/build.properties b/project/build.properties index e64c208..46e43a9 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.5.8 +sbt.version=1.8.2 diff --git a/src/main/scala/iog/psg/cardano/TxMetadataOut.scala b/src/main/scala/iog/psg/cardano/TxMetadataOut.scala index 9175a3d..0b1eecf 100644 --- a/src/main/scala/iog/psg/cardano/TxMetadataOut.scala +++ b/src/main/scala/iog/psg/cardano/TxMetadataOut.scala @@ -52,6 +52,12 @@ final case class TxMetadataOut(json: Json) { case Some(ValueTypeBytes) => extractBytesField(cursor) + case Some(ValueTypeList) => + extractListField(cursor, key) + + case Some(ValueTypeMap) => + extractMapField(cursor, key) + case Some(valueType) => Left(DecodingFailure(s"Invalid type '$valueType'", List(DownField(key)))) case None => Left(DecodingFailure("Missing value under key", List(DownField(key)))) diff --git a/src/test/scala/iog/psg/cardano/TxMetadataCodecSpec.scala b/src/test/scala/iog/psg/cardano/TxMetadataCodecSpec.scala index 7cecda9..72579d8 100644 --- a/src/test/scala/iog/psg/cardano/TxMetadataCodecSpec.scala +++ b/src/test/scala/iog/psg/cardano/TxMetadataCodecSpec.scala @@ -82,7 +82,8 @@ class TxMetadataCodecSpec extends AnyFlatSpec with Matchers with DummyModel { 3 -> MetadataValueArray(Seq( MetadataValueLong(14), MetadataValueByteString(ByteString("2512a00e9653fe49a44a5886202e24d77eeb998f")), - MetadataValueStr("1337") + MetadataValueStr("1337"), + MetadataValueMap(Map(MetadataValueLong(1) -> MetadataValueLong(3))) )), 4 -> MetadataValueMap( Map( diff --git a/src/test/scala/iog/psg/cardano/util/DummyModel.scala b/src/test/scala/iog/psg/cardano/util/DummyModel.scala index c9df2d4..8714439 100644 --- a/src/test/scala/iog/psg/cardano/util/DummyModel.scala +++ b/src/test/scala/iog/psg/cardano/util/DummyModel.scala @@ -69,6 +69,18 @@ trait DummyModel { self: Assertions => | }, | { | "string": "1337" + | }, + | { + | "map": [ + | { + | "k": { + | "int":1 + | }, + | "v":{ + | "int": 3 + | } + | } + | ] | } | ] | },