Package org.web3j.abi

Class FunctionReturnDecoder

java.lang.Object
org.web3j.abi.FunctionReturnDecoder
Direct Known Subclasses:
DefaultFunctionReturnDecoder

public abstract class FunctionReturnDecoder extends Object
Decodes values returned by function or event calls.

Delegates to DefaultFunctionReturnDecoder unless a FunctionReturnDecoderProvider SPI is found, in which case the first implementation found will be used.

See Also:
  • Constructor Details

    • FunctionReturnDecoder

      public FunctionReturnDecoder()
  • Method Details

    • decode

      public static List<Type> decode(String rawInput, List<TypeReference<Type>> outputParameters)
      Decode ABI encoded return values from smart contract function call.
      Parameters:
      rawInput - ABI encoded input
      outputParameters - list of return types as TypeReference
      Returns:
      List of values returned by function, Collections.emptyList() if invalid response
    • decodeDynamicBytes

      public static byte[] decodeDynamicBytes(String rawInput)
      Decode ABI encoded return value DynamicBytes from smart contract function call.
      Parameters:
      rawInput - ABI encoded input
      Returns:
      DynamicBytes of values returned by function, null if invalid response
    • decodeAddress

      public static String decodeAddress(String rawInput)
    • decodeIndexedValue

      public static <T extends Type> Type decodeIndexedValue(String rawInput, TypeReference<T> typeReference)
      Decodes an indexed parameter associated with an event. Indexed parameters are individually encoded, unlike non-indexed parameters which are encoded as per ABI-encoded function parameters and return values.

      If any of the following types are indexed, the Keccak-256 hashes of the values are returned instead. These are returned as a bytes32 value.

      • Arrays
      • Strings
      • Bytes

      See the Solidity documentation for further information.

      Type Parameters:
      T - type of TypeReference
      Parameters:
      rawInput - ABI encoded input
      typeReference - of expected result type
      Returns:
      the decode value
    • decodeFunctionResult

      protected abstract List<Type> decodeFunctionResult(String rawInput, List<TypeReference<Type>> outputParameters)
    • decodeEventParameter

      protected abstract <T extends Type> Type decodeEventParameter(String rawInput, TypeReference<T> typeReference)