Package com.klaytn.caver.abi.wrapper
Class ABIWrapper
- java.lang.Object
-
- com.klaytn.caver.abi.wrapper.ABIWrapper
-
public class ABIWrapper extends java.lang.Object
Representing an ABIWrapper which wraps all of static methods of ABI
-
-
Constructor Summary
Constructors Constructor Description ABIWrapper()
Creates an ABIWrapper instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
buildEventString(ContractEvent event)
Build a event name string.java.lang.String
buildFunctionString(ContractMethod method)
Build a function name string.java.util.List<Type>
decodeFunctionCall(ContractMethod method, java.lang.String encodedString)
Decodes a function call data that composed of function selector and encoded input argument.java.util.List<Type>
decodeFunctionCall(java.lang.String functionAbi, java.lang.String encodedString)
Decodes a function call data that composed of function selector and encoded input argument.EventValues
decodeLog(java.util.List<ContractIOType> inputs, java.lang.String data, java.util.List<java.lang.String> topics)
Decodes a ABI-encoded log data and indexed topic dataType
decodeParameter(java.lang.String solidityType, java.lang.String encoded)
Decodes a ABI encoded parameter.java.util.List<Type>
decodeParameters(ContractMethod method, java.lang.String encoded)
Decodes a ABI encoded parameters.java.util.List<Type>
decodeParameters(java.util.List<java.lang.String> solidityTypeList, java.lang.String encoded)
Decodes a ABI encoded parameters.java.lang.String
encodeContractDeploy(ContractMethod constructor, java.lang.String byteCode, java.util.List<java.lang.Object> constructorParams)
Encodes a data related contract deployment.java.lang.String
encodeEventSignature(ContractEvent event)
Encodes a event signature.java.lang.String
encodeEventSignature(java.lang.String eventName)
Encodes a event signature.java.lang.String
encodeFunctionCall(ContractMethod method, java.util.List<java.lang.Object> params)
Encodes a function call.java.lang.String
encodeFunctionCall(java.lang.String functionSig, java.util.List<java.lang.String> solTypeList, java.util.List<java.lang.Object> params)
Encodes a function call.java.lang.String
encodeFunctionCallWithSolidityWrapper(ContractMethod method, java.util.List<Type> params)
Encodes a function calljava.lang.String
encodeFunctionSignature(ContractMethod method)
Encodes a function signature.java.lang.String
encodeFunctionSignature(java.lang.String functionName)
Encodes a function signature.java.lang.String
encodeParameter(Type parameter)
Encodes a parameter based on its type to its ABI representation.java.lang.String
encodeParameter(java.lang.String solidityType, java.lang.Object value)
Encodes a parameter based on its type to its ABI representation.java.lang.String
encodeParameters(ContractMethod method, java.util.List<java.lang.Object> values)
Encodes a parameters based on its type to its ABI representation.java.lang.String
encodeParameters(java.util.List<Type> parameters)
Encodes a parameter based on its type to its ABI representation.java.lang.String
encodeParameters(java.util.List<java.lang.String> solidityTypes, java.util.List<java.lang.Object> values)
Encodes a parameters based on its type to its ABI representation.
-
-
-
Method Detail
-
encodeFunctionCall
public java.lang.String encodeFunctionCall(ContractMethod method, java.util.List<java.lang.Object> params) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException
Encodes a function call.- Parameters:
method
- A ContractMethod instance.params
- A List of method parameter.- Returns:
- String
- Throws:
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
java.lang.InstantiationException
java.lang.IllegalAccessException
-
encodeFunctionCall
public java.lang.String encodeFunctionCall(java.lang.String functionSig, java.util.List<java.lang.String> solTypeList, java.util.List<java.lang.Object> params) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException
Encodes a function call.- Parameters:
functionSig
- A function signature string.params
- A List of method parameter.- Returns:
- String
- Throws:
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
java.lang.InstantiationException
java.lang.IllegalAccessException
-
encodeFunctionCallWithSolidityWrapper
public java.lang.String encodeFunctionCallWithSolidityWrapper(ContractMethod method, java.util.List<Type> params)
Encodes a function call- Parameters:
method
- A ContractMethod instance.params
- A List of method parameter wrapped solidity wrapper class.- Returns:
- String
-
encodeFunctionSignature
public java.lang.String encodeFunctionSignature(ContractMethod method)
Encodes a function signature.- Parameters:
method
- A ContractMethod instance.- Returns:
- String
-
encodeFunctionSignature
public java.lang.String encodeFunctionSignature(java.lang.String functionName)
Encodes a function signature.- Parameters:
functionName
- A function name string.- Returns:
- String
-
encodeContractDeploy
public java.lang.String encodeContractDeploy(ContractMethod constructor, java.lang.String byteCode, java.util.List<java.lang.Object> constructorParams) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
Encodes a data related contract deployment.- Parameters:
constructor
- A ContractMethod instance that contains constructor info.byteCode
- A smart contract bytecode.constructorParams
- A list of parameter that need to execute Constructor- Returns:
- String
- Throws:
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
-
buildFunctionString
public java.lang.String buildFunctionString(ContractMethod method)
Build a function name string.- Parameters:
method
- A ContractMethod instance.- Returns:
- String
-
encodeEventSignature
public java.lang.String encodeEventSignature(ContractEvent event)
Encodes a event signature.- Parameters:
event
- A ContractEvent instance.- Returns:
- String
-
encodeEventSignature
public java.lang.String encodeEventSignature(java.lang.String eventName)
Encodes a event signature.- Parameters:
eventName
- A event signature.- Returns:
- String
-
buildEventString
public java.lang.String buildEventString(ContractEvent event)
Build a event name string.- Parameters:
event
- A ContractEvent instance- Returns:
- String
-
encodeParameter
public java.lang.String encodeParameter(java.lang.String solidityType, java.lang.Object value) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
Encodes a parameter based on its type to its ABI representation.- Parameters:
solidityType
- A solidity type to encode.value
- A value to encode- Returns:
- String
- Throws:
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
-
encodeParameters
public java.lang.String encodeParameters(ContractMethod method, java.util.List<java.lang.Object> values) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException
Encodes a parameters based on its type to its ABI representation.- Parameters:
method
- A ContractMethod instance that contains to solidity typevalues
- A List of value to encode- Returns:
- String
- Throws:
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
java.lang.InstantiationException
java.lang.IllegalAccessException
-
encodeParameters
public java.lang.String encodeParameters(java.util.List<java.lang.String> solidityTypes, java.util.List<java.lang.Object> values) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
Encodes a parameters based on its type to its ABI representation.- Parameters:
solidityTypes
- A list of solidity type to encodevalues
- A List of value to encode- Returns:
- String
- Throws:
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
-
encodeParameter
public java.lang.String encodeParameter(Type parameter)
Encodes a parameter based on its type to its ABI representation.- Parameters:
parameter
- A parameter that wrapped solidity type wrapper.- Returns:
- String
-
encodeParameters
public java.lang.String encodeParameters(java.util.List<Type> parameters)
Encodes a parameter based on its type to its ABI representation.- Parameters:
parameters
- A List of parameters that wrappped solidity type wrapper- Returns:
- String
-
decodeParameter
public Type decodeParameter(java.lang.String solidityType, java.lang.String encoded) throws java.lang.ClassNotFoundException
Decodes a ABI encoded parameter.- Parameters:
solidityType
- A solidity type string.encoded
- The ABI byte code to decode- Returns:
- Type
- Throws:
java.lang.ClassNotFoundException
-
decodeParameters
public java.util.List<Type> decodeParameters(java.util.List<java.lang.String> solidityTypeList, java.lang.String encoded) throws java.lang.ClassNotFoundException
Decodes a ABI encoded parameters.- Parameters:
solidityTypeList
- A List of solidity type string.encoded
- The ABI byte code to decode- Returns:
- List
- Throws:
java.lang.ClassNotFoundException
-
decodeParameters
public java.util.List<Type> decodeParameters(ContractMethod method, java.lang.String encoded) throws java.lang.ClassNotFoundException
Decodes a ABI encoded parameters.- Parameters:
method
- A ContractMethod instance.encoded
- The ABI byte code to decoed- Returns:
- List
- Throws:
java.lang.ClassNotFoundException
-
decodeLog
public EventValues decodeLog(java.util.List<ContractIOType> inputs, java.lang.String data, java.util.List<java.lang.String> topics) throws java.lang.ClassNotFoundException
Decodes a ABI-encoded log data and indexed topic data- Parameters:
inputs
- A list of ContractIOType instance.data
- An ABI-encoded in the data field of a logtopics
- A list of indexed parameter topics of the log.- Returns:
- EventValues
- Throws:
java.lang.ClassNotFoundException
-
decodeFunctionCall
public java.util.List<Type> decodeFunctionCall(java.lang.String functionAbi, java.lang.String encodedString) throws java.lang.ClassNotFoundException
Decodes a function call data that composed of function selector and encoded input argument.Example :
String encodedData = "0x24ee0....."; String abi = "{\n" + " \"name\":\"myMethod\",\n" + " \"type\":\"function\",\n" + " \"inputs\":[\n" + " {\n" + " \"type\":\"uint256\",\n" + " \"name\":\"myNumber\"\n" + " },\n" + " {\n" + " \"type\":\"string\",\n" + " \"name\":\"mystring\"\n" + " }\n" + " ]\n" + "}"; List<Type> params = caver.abi.decodeFunctionCall(abi, encoded);
- Parameters:
functionAbi
- The abi json string of a function.encodedString
- The encode function call data string.- Returns:
- List<Type>
- Throws:
java.lang.ClassNotFoundException
-
decodeFunctionCall
public java.util.List<Type> decodeFunctionCall(ContractMethod method, java.lang.String encodedString) throws java.lang.ClassNotFoundException
Decodes a function call data that composed of function selector and encoded input argument.Example :
String contractABI = "..."; Contract contract = caver.contract.create(contractABI); ContractMethod method = contract.getMethod("myFunction"); List<Type> result = caver.abi.decodeFunctionCall(method, "0x{ABI-encoded string}");
- Parameters:
method
- The ContractMethod instance to decode ABI-encoded string.encodedString
- The encode function call data string.- Returns:
- List<Type>
- Throws:
java.lang.ClassNotFoundException
-
-