CreateABIType() public static method

public static CreateABIType ( string typeName ) : ArrayType
typeName string
return ArrayType
Beispiel #1
0
 public static ABIType CreateABIType(string typeName)
 {
     if (typeName.Contains("["))
     {
         return(ArrayType.CreateABIType(typeName));
     }
     if ("bool".Equals(typeName))
     {
         return(new BoolType());
     }
     if (typeName.StartsWith("int", StringComparison.Ordinal) ||
         typeName.StartsWith("uint", StringComparison.Ordinal))
     {
         return(new IntType(typeName));
     }
     if ("address".Equals(typeName))
     {
         return(new AddressType());
     }
     if ("string".Equals(typeName))
     {
         return(new StringType());
     }
     if ("bytes".Equals(typeName))
     {
         return(new BytesType());
     }
     if (typeName.StartsWith("bytes", StringComparison.Ordinal))
     {
         return(new Bytes32Type(typeName));
     }
     throw new ArgumentException("Unknown type: " + typeName);
 }
Beispiel #2
0
        public static ABIType CreateABIType(string typeName)
        {
            if (typeName == "tuple")
            {
                return(new TupleType());
            }

            if (typeName.Contains("["))
            {
                return(ArrayType.CreateABIType(typeName));
            }
            if ("bool".Equals(typeName))
            {
                return(new BoolType());
            }
            if (typeName.StartsWith("int", StringComparison.Ordinal) ||
                typeName.StartsWith("uint", StringComparison.Ordinal))
            {
                return(new IntType(typeName));
            }
            if ("address".Equals(typeName))
            {
                return(new AddressType());
            }
            if ("string".Equals(typeName))
            {
                return(new StringType());
            }
            if ("bytes".Equals(typeName))
            {
                return(new BytesType());
            }
            if (typeName.StartsWith("bytes", StringComparison.Ordinal))
            {
                var size = Convert.ToInt32(typeName.Substring(5));
                if (size == 32)
                {
                    return(new Bytes32Type(typeName));
                }
                else
                {
                    return(new BytesElementaryType(typeName, size));
                }
            }
            throw new ArgumentException("Unknown type: " + typeName);
        }