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

org.aion.avm.core.AvmConfiguration Maven / Gradle / Ivy

There is a newer version: 0.9.6
Show newest version
package org.aion.avm.core;

/**
 * A class to describe how to configure an AVM instance, when requesting that it be created.
 * The overall strategy with this class is just to make it into a plain-old-data struct, with each field set to a "default" value
 * which can be overwritten by a caller.
 */
public class AvmConfiguration {
    /**
     * Decides if debug data and names need to be preserved during deployment transformation.
     * Note that this must be set to false as a requirement of the security model but that prohibits local debugging.
     * Hence, it should only be enabled for embedded use-cases during development, never in actual deployment in a node.
     * Some security violations will change into fatal assertion errors, instead of being rejected, if this is enabled.
     */
    public boolean preserveDebuggability;
    /**
     * If set to true, will log details of uncaught contract exceptions to stderr.
     * Enabling this is useful for local debugging cases.
     */
    public boolean enableVerboseContractErrors;
    /**
     * If set to true, will pass calls to Context.println to the underlying stdout console.
     * If false, this call is still legal but will have no effect.
     */
    public boolean enableContextPrintln;

    public AvmConfiguration() {
        // By default, none of our verbose options are enabled.
        this.preserveDebuggability = false;
        this.enableVerboseContractErrors = false;
        this.enableContextPrintln = false;
    }

    public AvmConfiguration(AvmConfiguration conf) {
        this.preserveDebuggability = conf.preserveDebuggability;
        this.enableVerboseContractErrors = conf.enableVerboseContractErrors;
        this.enableContextPrintln = conf.enableContextPrintln;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy