public FunctionCall DecodeTransactionInput( TransactionInput transactionInput) { var abiObject = _abiDeserializer.DeserialiseContract(transactionInput.Abi).Functions[0]; var parameters = _functionCallDecoder.DecodeFunctionInput ( abiObject.Sha3Signature, transactionInput.EncodedInput, abiObject.InputParameters ); return(new FunctionCall { FunctionName = abiObject.Name, FunctionSignature = $"0x{abiObject.Sha3Signature}", Parameters = parameters.Select(x => new FunctionCallParameter { ParameterName = x.Parameter.Name, ParameterOrder = x.Parameter.Order, ParameterType = x.Parameter.Type, ParameterValue = StringifyParameter(x) }).ToList(), ParametersJson = SerializeParameters(parameters), TransactionHash = transactionInput.TransactionHash }); }
public void WhenThereAreNoInputParametersDecodingShouldReturnTheUnalteredFunctionInputDTO() { const string signature = "0x82692679"; //function name = doSomething const string data = signature; var decoder = new FunctionCallDecoder(); var functionInput = new object(); var decodedFunctionInput = decoder.DecodeFunctionInput(functionInput, signature, data); Assert.Equal(functionInput, decodedFunctionInput); }
public List <ParameterOutput> DecodeInput(string data) { return(FunctionCallDecoder.DecodeFunctionInput(FunctionABI.Sha3Signature, data, FunctionABI.InputParameters)); }
public static List <ParameterOutput> DecodeExceptionEncodedDataToDefault(this ErrorABI errorABI, string data) { return(_functionCallDecoder.DecodeFunctionInput(errorABI.Sha3Signature, data, errorABI.InputParameters)); }