All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fisco.bcos.web3j.abi.EventEncoder Maven / Gradle / Ivy

There is a newer version: 2.6.6
Show newest version
package org.fisco.bcos.web3j.abi;

import java.util.List;
import java.util.stream.Collectors;

import org.fisco.bcos.web3j.abi.datatypes.Event;
import org.fisco.bcos.web3j.abi.datatypes.Type;
import org.fisco.bcos.web3j.crypto.Hash;
import org.fisco.bcos.web3j.utils.Numeric;

/**
 * 

Ethereum filter encoding. * Further limited details are available * here. *

*/ public class EventEncoder { private EventEncoder() { } public static String encode(Event event) { String methodSignature = buildMethodSignature( event.getName(), event.getParameters()); return buildEventSignature(methodSignature); } static String buildMethodSignature( String methodName, List> parameters) { StringBuilder result = new StringBuilder(); result.append(methodName); result.append("("); String params = parameters.stream() .map(p -> Utils.getTypeName(p)) .collect(Collectors.joining(",")); result.append(params); result.append(")"); return result.toString(); } public static String buildEventSignature(String methodSignature) { byte[] input = methodSignature.getBytes(); byte[] hash = Hash.sha3(input); return Numeric.toHexString(hash); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy