Search in sources :

Example 1 with ClassCodes

use of io.nuls.contract.vm.code.ClassCodes in project nuls by nuls-io.

the class ProgramExecutorImpl method getEventConstructor.

private static Set<ProgramMethod> getEventConstructor(Map<String, ClassCode> classCodes) {
    Map<String, MethodCode> methodCodes = new LinkedHashMap<>();
    getEventClassCodes(classCodes).forEach(classCode -> {
        for (MethodCode methodCode : classCode.methods) {
            if (methodCode.isConstructor) {
                methodCodes.put(methodCode.fullName, methodCode);
            }
        }
    });
    return methodCodes.values().stream().filter(methodCode -> methodCode.isConstructor).map(methodCode -> {
        ProgramMethod method = new ProgramMethod();
        method.setName(methodCode.classCode.simpleName);
        method.setDesc(methodCode.normalDesc);
        method.setArgs(methodCode.args);
        method.setReturnArg(methodCode.returnArg);
        method.setView(methodCode.hasViewAnnotation());
        method.setPayable(methodCode.hasPayableAnnotation());
        method.setEvent(true);
        return method;
    }).collect(Collectors.toSet());
}
Also used : StateSource(org.ethereum.db.StateSource) java.util(java.util) VMFactory(io.nuls.contract.vm.VMFactory) Hex(org.spongycastle.util.encoders.Hex) LoggerFactory(org.slf4j.LoggerFactory) ByteArrayWrapper(org.ethereum.db.ByteArrayWrapper) StringUtils(org.apache.commons.lang3.StringUtils) VM(io.nuls.contract.vm.VM) Block(org.ethereum.core.Block) DefaultConfig(org.ethereum.config.DefaultConfig) SystemProperties(org.ethereum.config.SystemProperties) FastByteComparisons(org.ethereum.util.FastByteComparisons) BigInteger(java.math.BigInteger) MethodCode(io.nuls.contract.vm.code.MethodCode) ErrorException(io.nuls.contract.vm.exception.ErrorException) NativeAddress(io.nuls.contract.vm.natives.io.nuls.contract.sdk.NativeAddress) io.nuls.contract.vm.program(io.nuls.contract.vm.program) Logger(org.slf4j.Logger) DataWord(org.ethereum.vm.DataWord) Result(io.nuls.contract.vm.Result) DBService(io.nuls.db.service.DBService) Repository(org.ethereum.core.Repository) Collectors(java.util.stream.Collectors) VMContext(io.nuls.contract.util.VMContext) ObjectRef(io.nuls.contract.vm.ObjectRef) Source(org.ethereum.datasource.Source) Constants(io.nuls.contract.vm.util.Constants) AccountState(org.ethereum.core.AccountState) ClassCode(io.nuls.contract.vm.code.ClassCode) ClassCodeLoader(io.nuls.contract.vm.code.ClassCodeLoader) CommonConfig(org.ethereum.config.CommonConfig) LevelDbDataSource(org.ethereum.datasource.leveldb.LevelDbDataSource) ClassCodes(io.nuls.contract.vm.code.ClassCodes) RepositoryRoot(org.ethereum.db.RepositoryRoot) BlockHeaderDto(io.nuls.contract.entity.BlockHeaderDto) MethodCode(io.nuls.contract.vm.code.MethodCode)

Aggregations

BlockHeaderDto (io.nuls.contract.entity.BlockHeaderDto)1 VMContext (io.nuls.contract.util.VMContext)1 ObjectRef (io.nuls.contract.vm.ObjectRef)1 Result (io.nuls.contract.vm.Result)1 VM (io.nuls.contract.vm.VM)1 VMFactory (io.nuls.contract.vm.VMFactory)1 ClassCode (io.nuls.contract.vm.code.ClassCode)1 ClassCodeLoader (io.nuls.contract.vm.code.ClassCodeLoader)1 ClassCodes (io.nuls.contract.vm.code.ClassCodes)1 MethodCode (io.nuls.contract.vm.code.MethodCode)1 ErrorException (io.nuls.contract.vm.exception.ErrorException)1 NativeAddress (io.nuls.contract.vm.natives.io.nuls.contract.sdk.NativeAddress)1 io.nuls.contract.vm.program (io.nuls.contract.vm.program)1 Constants (io.nuls.contract.vm.util.Constants)1 DBService (io.nuls.db.service.DBService)1 BigInteger (java.math.BigInteger)1 java.util (java.util)1 Collectors (java.util.stream.Collectors)1 StringUtils (org.apache.commons.lang3.StringUtils)1 CommonConfig (org.ethereum.config.CommonConfig)1