Skip to content

Commit

Permalink
fix errors on variant types
Browse files Browse the repository at this point in the history
  • Loading branch information
mmcs85 committed Jan 22, 2020
1 parent e618f27 commit 5a200d4
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions EosSharp/EosSharp.Core/Providers/AbiSerializationProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -719,7 +719,7 @@ private void WriteAbiType(MemoryStream ms, object value, string type, Abi abi, b
var abiVariant = abi.variants.FirstOrDefault(v => v.name == uwtype);
if (abiVariant != null)
{
WriteAbiVariant(ms, value, abiVariant, abi);
WriteAbiVariant(ms, value, abiVariant, abi, isBinaryExtensionAllowed);
}
else
{
Expand Down Expand Up @@ -786,7 +786,7 @@ private void WriteAbiStruct(MemoryStream ms, object value, AbiStruct abiStruct,
}
}

private void WriteAbiVariant(MemoryStream ms, object value, Variant abiVariant, Abi abi)
private void WriteAbiVariant(MemoryStream ms, object value, Variant abiVariant, Abi abi, bool isBinaryExtensionAllowed)
{
var variantValue = (KeyValuePair<string, object>)value;
var i = abiVariant.types.IndexOf(variantValue.Key);
Expand All @@ -795,7 +795,7 @@ private void WriteAbiVariant(MemoryStream ms, object value, Variant abiVariant,
throw new Exception("type " + variantValue.Key + " is not valid for variant");
}
WriteVarUint32(ms, i);
WriteAbiType(ms, variantValue.Value, variantValue.Key, abi);
WriteAbiType(ms, variantValue.Value, variantValue.Key, abi, isBinaryExtensionAllowed);
}

private string UnwrapTypeDef(Abi abi, string type)
Expand Down Expand Up @@ -1287,7 +1287,7 @@ private object ReadAbiType(byte[] data, string type, Abi abi, ref int readIndex,
var abiVariant = abi.variants.FirstOrDefault(v => v.name == uwtype);
if(abiVariant != null)
{
return ReadAbiVariant(data, abiVariant, abi, ref readIndex);
return ReadAbiVariant(data, abiVariant, abi, ref readIndex, isBinaryExtensionAllowed);
}
else
{
Expand Down Expand Up @@ -1338,15 +1338,15 @@ private T ReadAbiStruct<T>(byte[] data, AbiStruct abiStruct, Abi abi, ref int re
return (T)value;
}

private object ReadAbiVariant(byte[] data, Variant abiVariant, Abi abi, ref int readIndex)
private object ReadAbiVariant(byte[] data, Variant abiVariant, Abi abi, ref int readIndex, bool isBinaryExtensionAllowed)
{
var i = (Int32)ReadVarUint32(data, ref readIndex);
if (i >= abiVariant.types.Count)
{
throw new Exception("type index " + i + " is not valid for variant");
}
var type = abiVariant.types[i];
return new KeyValuePair<string, object>(abiVariant.name, ReadAbiType(data, type, abi, ref readIndex));
return new KeyValuePair<string, object>(abiVariant.name, ReadAbiType(data, type, abi, ref readIndex, isBinaryExtensionAllowed));
}

private T ReadType<T>(byte[] data, ref int readIndex)
Expand Down

0 comments on commit 5a200d4

Please sign in to comment.