コード例 #1
0
        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
            });
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public List <ParameterOutput> DecodeInput(string data)
 {
     return(FunctionCallDecoder.DecodeFunctionInput(FunctionABI.Sha3Signature, data, FunctionABI.InputParameters));
 }
コード例 #4
0
 public static List <ParameterOutput> DecodeExceptionEncodedDataToDefault(this ErrorABI errorABI, string data)
 {
     return(_functionCallDecoder.DecodeFunctionInput(errorABI.Sha3Signature, data,
                                                     errorABI.InputParameters));
 }