Skip to content

Commit 4f9be5a

Browse files
Fix a bug with EnumConverter; when encountering unknown values, it was throwing exceptions. This was dangerous for when new service providers (for example) are added and the backend starts returning those as options.
1 parent be4084e commit 4f9be5a

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

Packages/Sequence-Unity/Sequence/SequenceSDK/Utils/EnumConverter.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using Newtonsoft.Json;
33
using Newtonsoft.Json.Linq;
4+
using UnityEngine;
45

56
namespace Sequence.Utils
67
{
@@ -36,16 +37,27 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
3637
var enumValues = new T[array.Count];
3738
for (int i = 0; i < array.Count; i++)
3839
{
39-
enumValues[i] = Enum.Parse<T>(array[i].ToString());
40+
enumValues[i] = ParseEnum<T>(array[i].ToString());
4041
}
4142
return enumValues;
4243
}
4344
else
4445
{
4546
var enumString = JToken.Load(reader).ToString();
46-
return Enum.Parse<T>(enumString);
47+
return ParseEnum<T>(enumString);
4748
}
4849
}
50+
51+
private T ParseEnum<T>(string enumString) where T : struct
52+
{
53+
if (!Enum.TryParse<T>(enumString, ignoreCase: true, out var parsed))
54+
{
55+
Debug.LogWarning($"Unknown enum value '{enumString}' for type {typeof(T).Name}. Returning default.");
56+
return default(T);
57+
}
58+
59+
return parsed;
60+
}
4961
}
5062

5163
}

Packages/Sequence-Unity/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "xyz.0xsequence.waas-unity",
3-
"version": "4.1.0",
3+
"version": "4.1.1",
44
"displayName": "Sequence Embedded Wallet SDK",
55
"description": "A Unity SDK for Sequence APIs",
66
"unity": "2021.3",

0 commit comments

Comments
 (0)