Ejemplo n.º 1
0
        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()));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }