public static byte[] EncodeConstructorWithParameter(this AbiContractDefinition definition, params dynamic[] values) { if (definition.Constructor == null) { throw new ArgumentException("Constructor has no parameter"); } return(AbiParameterCoder .EncodeParameter(values.Select(t => new AbiInputParameter(definition.Constructor.Inputs[0], t)) .ToArray())); }
public static AbiFunctionCoder GetFunctionCoder(this AbiContractDefinition definition, string funcName) { var funcDefinition = definition.Functions.FirstOrDefault(item => item.Name == funcName); if (funcDefinition == null) { throw new Exception($"function {funcName} does not exists"); } return(new AbiFunctionCoder(funcDefinition)); }
public static AbiContractDefinition ContractBuilder(JArray abiJson) { var definition = new AbiContractDefinition(); var constructorJson = abiJson.FirstOrDefault(item => item["type"].ToString() == "constructor"); if (constructorJson != null) { definition.Constructor = ConstructorBuilder(constructorJson); } var functions = abiJson.Where(item => item["type"].ToString() == "function"); definition.Functions = functions.Select(AbiFunctionDefinition.Builder).ToArray(); var events = abiJson.Where(item => item["type"].ToString() == "event"); //definition.Events = events.Select(AbiEventDefinition.Builder).ToArray(); return(definition); }