Add flag for saving standard input during compilation
This commit is contained in:
@@ -49,6 +49,8 @@ const DEFAULT_CONTRACTS_DIR = path.resolve('contracts');
|
||||
const DEFAULT_ARTIFACTS_DIR = path.resolve('artifacts');
|
||||
const DEFAULT_USE_DOCKERISED_SOLC = false;
|
||||
const DEFAULT_IS_OFFLINE_MODE = false;
|
||||
const DEFAULT_SHOULD_SAVE_STANDARD_INPUT = false;
|
||||
|
||||
// Solc compiler settings cannot be configured from the commandline.
|
||||
// If you need this configured, please create a `compiler.json` config file
|
||||
// with your desired configurations.
|
||||
@@ -95,6 +97,7 @@ export class Compiler {
|
||||
private readonly _specifiedContracts: string[] | TYPE_ALL_FILES_IDENTIFIER;
|
||||
private readonly _useDockerisedSolc: boolean;
|
||||
private readonly _isOfflineMode: boolean;
|
||||
private readonly _shouldSaveStandardInput: boolean;
|
||||
/**
|
||||
* Instantiates a new instance of the Compiler class.
|
||||
* @param opts Optional compiler options
|
||||
@@ -123,6 +126,8 @@ export class Compiler {
|
||||
this._useDockerisedSolc =
|
||||
passedOpts.useDockerisedSolc || config.useDockerisedSolc || DEFAULT_USE_DOCKERISED_SOLC;
|
||||
this._isOfflineMode = passedOpts.isOfflineMode || config.isOfflineMode || DEFAULT_IS_OFFLINE_MODE;
|
||||
this._shouldSaveStandardInput =
|
||||
passedOpts.shouldSaveStandardInput || config.shouldSaveStandardInput || DEFAULT_SHOULD_SAVE_STANDARD_INPUT;
|
||||
this._nameResolver = new NameResolver(this._contractsDir);
|
||||
const resolver = new FallthroughResolver();
|
||||
resolver.appendResolver(new URLResolver());
|
||||
@@ -327,7 +332,12 @@ export class Compiler {
|
||||
`Contract ${contractName} not found in ${contractPath}. Please make sure your contract has the same name as it's file name`,
|
||||
);
|
||||
}
|
||||
|
||||
if (this._shouldSaveStandardInput) {
|
||||
await fsWrapper.writeFileAsync(
|
||||
`${this._contractsDir}/${contractName}.input.json`,
|
||||
utils.stringifyWithFormatting(input.standardInput),
|
||||
);
|
||||
}
|
||||
addHexPrefixToContractBytecode(compiledContract);
|
||||
|
||||
if (shouldPersist) {
|
||||
|
Reference in New Issue
Block a user