diff --git a/node_modules/@nomiclabs/hardhat-etherscan/dist/src/constants.d.ts b/node_modules/@nomiclabs/hardhat-etherscan/dist/src/constants.d.ts
index 02997fe..ea8a589 100644
--- a/node_modules/@nomiclabs/hardhat-etherscan/dist/src/constants.d.ts
+++ b/node_modules/@nomiclabs/hardhat-etherscan/dist/src/constants.d.ts
@@ -1,6 +1,7 @@
 export declare const pluginName = "@nomiclabs/hardhat-etherscan";
 export declare const TASK_VERIFY = "verify";
 export declare const TASK_VERIFY_GET_MINIMUM_BUILD = "verify:get-minimum-build";
+export declare const TASK_VERIFY_GET_FULL_BUILD = "verify:get-full-build";
 export declare const TASK_VERIFY_GET_CONSTRUCTOR_ARGUMENTS = "verify:get-constructor-arguments";
 export declare const TASK_VERIFY_GET_COMPILER_VERSIONS = "verify:get-compiler-versions";
 export declare const TASK_VERIFY_GET_ETHERSCAN_ENDPOINT = "verify:get-etherscan-endpoint";
diff --git a/node_modules/@nomiclabs/hardhat-etherscan/dist/src/constants.js b/node_modules/@nomiclabs/hardhat-etherscan/dist/src/constants.js
index 3c39b90..3ea23f9 100644
--- a/node_modules/@nomiclabs/hardhat-etherscan/dist/src/constants.js
+++ b/node_modules/@nomiclabs/hardhat-etherscan/dist/src/constants.js
@@ -1,9 +1,10 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.TASK_VERIFY_GET_LIBRARIES = exports.TASK_VERIFY_VERIFY = exports.TASK_VERIFY_VERIFY_MINIMUM_BUILD = exports.TASK_VERIFY_GET_CONTRACT_INFORMATION = exports.TASK_VERIFY_GET_ETHERSCAN_ENDPOINT = exports.TASK_VERIFY_GET_COMPILER_VERSIONS = exports.TASK_VERIFY_GET_CONSTRUCTOR_ARGUMENTS = exports.TASK_VERIFY_GET_MINIMUM_BUILD = exports.TASK_VERIFY = exports.pluginName = void 0;
+exports.TASK_VERIFY_GET_LIBRARIES = exports.TASK_VERIFY_VERIFY = exports.TASK_VERIFY_VERIFY_MINIMUM_BUILD = exports.TASK_VERIFY_GET_CONTRACT_INFORMATION = exports.TASK_VERIFY_GET_ETHERSCAN_ENDPOINT = exports.TASK_VERIFY_GET_COMPILER_VERSIONS = exports.TASK_VERIFY_GET_CONSTRUCTOR_ARGUMENTS = exports.TASK_VERIFY_GET_FULL_BUILD = exports.TASK_VERIFY_GET_MINIMUM_BUILD = exports.TASK_VERIFY = exports.pluginName = void 0;
 exports.pluginName = "@nomiclabs/hardhat-etherscan";
 exports.TASK_VERIFY = "verify";
 exports.TASK_VERIFY_GET_MINIMUM_BUILD = "verify:get-minimum-build";
+exports.TASK_VERIFY_GET_FULL_BUILD = "verify:get-full-build";
 exports.TASK_VERIFY_GET_CONSTRUCTOR_ARGUMENTS = "verify:get-constructor-arguments";
 exports.TASK_VERIFY_GET_COMPILER_VERSIONS = "verify:get-compiler-versions";
 exports.TASK_VERIFY_GET_ETHERSCAN_ENDPOINT = "verify:get-etherscan-endpoint";
diff --git a/node_modules/@nomiclabs/hardhat-etherscan/dist/src/index.js b/node_modules/@nomiclabs/hardhat-etherscan/dist/src/index.js
index 0f8a4d5..3502c2c 100644
--- a/node_modules/@nomiclabs/hardhat-etherscan/dist/src/index.js
+++ b/node_modules/@nomiclabs/hardhat-etherscan/dist/src/index.js
@@ -140,9 +140,18 @@ Possible causes are:
     const solcFullVersion = deployedBytecode.isOvmInferred()
         ? contractInformation.solcVersion
         : await (0, version_1.getLongVersion)(contractInformation.solcVersion);
-    const minimumBuild = await run(constants_1.TASK_VERIFY_GET_MINIMUM_BUILD, {
-        sourceName: contractInformation.sourceName,
-    });
+    let minimumBuild;
+    try {
+        minimumBuild = await run(constants_1.TASK_VERIFY_GET_MINIMUM_BUILD, {
+            sourceName: contractInformation.sourceName,
+        });
+    }
+    catch (error) {
+        console.warn('Unable to produce minimum build, proceeding to use full build...');
+        minimumBuild = await run(constants_1.TASK_VERIFY_GET_FULL_BUILD, {
+            sourceName: contractInformation.sourceName,
+        });
+    }
     const success = await run(constants_1.TASK_VERIFY_VERIFY_MINIMUM_BUILD, {
         minimumBuild,
         contractInformation,
@@ -276,6 +285,44 @@ const getMinimumBuild = async function ({ sourceName }, { run }) {
     });
     return build;
 };
+const getFullBuild = async function ({ sourceName }, { run }) {
+    const sourcePaths = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS);
+    const sourceNames = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_SOURCE_NAMES, {
+        sourcePaths,
+    });
+    const dependencyGraph = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH, { sourceNames });
+    const resolvedFiles = dependencyGraph
+        .getResolvedFiles()
+        .filter((resolvedFile) => {
+        return resolvedFile.sourceName === sourceName;
+    });
+    assertHardhatPluginInvariant(resolvedFiles.length === 1, `The plugin found an unexpected number of files for this contract.`);
+    const compilationJobsCreationResult = await run(task_names_1.TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS, {
+        dependencyGraph,
+    });
+    await run(task_names_1.TASK_COMPILE_SOLIDITY_HANDLE_COMPILATION_JOBS_FAILURES, {
+        compilationJobsCreationErrors: compilationJobsCreationResult.errors,
+    });
+    const compilationJobs = compilationJobsCreationResult.jobs;
+    // const filteredCompilationJobs: CompilationJob[] = await run(
+    //   TASK_COMPILE_SOLIDITY_FILTER_COMPILATION_JOBS,
+    //   { compilationJobs, force: false }
+    // );
+    const mergedCompilationJobs = await run(task_names_1.TASK_COMPILE_SOLIDITY_MERGE_COMPILATION_JOBS, { compilationJobs: compilationJobs });
+    const targetCompilationJobs = mergedCompilationJobs.filter((cj) => {
+        return (cj.getResolvedFiles().filter((f) => f.sourceName === sourceName).length >
+            0);
+    });
+    const compilationJob = targetCompilationJobs[0];
+    const build = await run(task_names_1.TASK_COMPILE_SOLIDITY_COMPILE_JOB, {
+        compilationJob,
+        compilationJobs: [compilationJob],
+        compilationJobIndex: 0,
+        emitsArtifacts: false,
+        quiet: true,
+    });
+    return build;
+};
 async function inferContract(artifacts, network, matchingCompilerVersions, deployedBytecode) {
     const contractMatches = await (0, bytecode_1.lookupMatchingBytecode)(artifacts, matchingCompilerVersions, deployedBytecode);
     if (contractMatches.length === 0) {
@@ -429,6 +476,9 @@ This means that unrelated contracts may be displayed on Etherscan...
 (0, config_1.subtask)(constants_1.TASK_VERIFY_GET_MINIMUM_BUILD)
     .addParam("sourceName", undefined, undefined, config_1.types.string)
     .setAction(getMinimumBuild);
+(0, config_1.subtask)(constants_1.TASK_VERIFY_GET_FULL_BUILD)
+    .addParam("sourceName", undefined, undefined, config_1.types.string)
+    .setAction(getFullBuild);
 (0, config_1.task)(constants_1.TASK_VERIFY, "Verifies contract on Etherscan")
     .addOptionalPositionalParam("address", "Address of the smart contract to verify")
     .addOptionalParam("constructorArgs", "File path to a javascript module that exports the list of arguments.", undefined, config_1.types.inputFile)
diff --git a/node_modules/@nomiclabs/hardhat-etherscan/src/constants.ts b/node_modules/@nomiclabs/hardhat-etherscan/src/constants.ts
index cb029e2..0e5341d 100644
--- a/node_modules/@nomiclabs/hardhat-etherscan/src/constants.ts
+++ b/node_modules/@nomiclabs/hardhat-etherscan/src/constants.ts
@@ -1,6 +1,7 @@
 export const pluginName = "@nomiclabs/hardhat-etherscan";
 export const TASK_VERIFY = "verify";
 export const TASK_VERIFY_GET_MINIMUM_BUILD = "verify:get-minimum-build";
+export const TASK_VERIFY_GET_FULL_BUILD = "verify:get-full-build";
 export const TASK_VERIFY_GET_CONSTRUCTOR_ARGUMENTS =
   "verify:get-constructor-arguments";
 export const TASK_VERIFY_GET_COMPILER_VERSIONS = "verify:get-compiler-versions";
diff --git a/node_modules/@nomiclabs/hardhat-etherscan/src/index.ts b/node_modules/@nomiclabs/hardhat-etherscan/src/index.ts
index e55c99b..5661415 100644
--- a/node_modules/@nomiclabs/hardhat-etherscan/src/index.ts
+++ b/node_modules/@nomiclabs/hardhat-etherscan/src/index.ts
@@ -1,8 +1,14 @@
 import {
   TASK_COMPILE,
   TASK_COMPILE_SOLIDITY_COMPILE_JOB,
+  TASK_COMPILE_SOLIDITY_FILTER_COMPILATION_JOBS,
+  TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS,
   TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOB_FOR_FILE,
   TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH,
+  TASK_COMPILE_SOLIDITY_GET_SOURCE_NAMES,
+  TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS,
+  TASK_COMPILE_SOLIDITY_HANDLE_COMPILATION_JOBS_FAILURES,
+  TASK_COMPILE_SOLIDITY_MERGE_COMPILATION_JOBS,
 } from "hardhat/builtin-tasks/task-names";
 import { extendConfig, subtask, task, types } from "hardhat/config";
 import { NomicLabsHardhatPluginError } from "hardhat/plugins";
@@ -10,6 +16,7 @@ import {
   ActionType,
   Artifacts,
   CompilationJob,
+  CompilationJobsCreationResult,
   CompilerInput,
   CompilerOutput,
   DependencyGraph,
@@ -33,6 +40,7 @@ import {
   TASK_VERIFY_GET_ETHERSCAN_ENDPOINT,
   TASK_VERIFY_GET_LIBRARIES,
   TASK_VERIFY_GET_MINIMUM_BUILD,
+  TASK_VERIFY_GET_FULL_BUILD,
   TASK_VERIFY_VERIFY,
   TASK_VERIFY_VERIFY_MINIMUM_BUILD,
 } from "./constants";
@@ -292,9 +300,17 @@ Possible causes are:
     ? contractInformation.solcVersion
     : await getLongVersion(contractInformation.solcVersion);
 
-  const minimumBuild: Build = await run(TASK_VERIFY_GET_MINIMUM_BUILD, {
-    sourceName: contractInformation.sourceName,
-  });
+  let minimumBuild: Build;
+  try {
+    minimumBuild = await run(TASK_VERIFY_GET_MINIMUM_BUILD, {
+      sourceName: contractInformation.sourceName,
+    });
+  } catch (error) {
+    console.warn('Unable to produce minimum build, proceeding to use full build...')
+    minimumBuild = await run(TASK_VERIFY_GET_FULL_BUILD, {
+      sourceName: contractInformation.sourceName,
+    });
+  }
 
   const success: boolean = await run(TASK_VERIFY_VERIFY_MINIMUM_BUILD, {
     minimumBuild,
@@ -531,7 +547,74 @@ const getMinimumBuild: ActionType<MinimumBuildArgs> = async function (
     emitsArtifacts: false,
     quiet: true,
   });
+  return build;
+};
+
+const getFullBuild: ActionType<MinimumBuildArgs> = async function (
+  { sourceName },
+  { run }
+): Promise<Build> {
+  const sourcePaths: string[] = await run(
+    TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS
+  );
+
+  const sourceNames: string[] = await run(
+    TASK_COMPILE_SOLIDITY_GET_SOURCE_NAMES,
+    {
+      sourcePaths,
+    }
+  );
+
+  const dependencyGraph: DependencyGraph = await run(
+    TASK_COMPILE_SOLIDITY_GET_DEPENDENCY_GRAPH,
+    { sourceNames }
+  );
+
+  const resolvedFiles = dependencyGraph
+    .getResolvedFiles()
+    .filter((resolvedFile) => {
+      return resolvedFile.sourceName === sourceName;
+    });
+  assertHardhatPluginInvariant(
+    resolvedFiles.length === 1,
+    `The plugin found an unexpected number of files for this contract.`
+  );
+
+  const compilationJobsCreationResult: CompilationJobsCreationResult =
+    await run(TASK_COMPILE_SOLIDITY_GET_COMPILATION_JOBS, {
+      dependencyGraph,
+    });
+  await run(TASK_COMPILE_SOLIDITY_HANDLE_COMPILATION_JOBS_FAILURES, {
+    compilationJobsCreationErrors: compilationJobsCreationResult.errors,
+  });
+
+  const compilationJobs = compilationJobsCreationResult.jobs;
+
+  // const filteredCompilationJobs: CompilationJob[] = await run(
+  //   TASK_COMPILE_SOLIDITY_FILTER_COMPILATION_JOBS,
+  //   { compilationJobs, force: false }
+  // );
+
+  const mergedCompilationJobs: CompilationJob[] = await run(
+    TASK_COMPILE_SOLIDITY_MERGE_COMPILATION_JOBS,
+    { compilationJobs: compilationJobs }
+  );
 
+  const targetCompilationJobs = mergedCompilationJobs.filter((cj) => {
+    return (
+      cj.getResolvedFiles().filter((f) => f.sourceName === sourceName).length >
+      0
+    );
+  });
+  const compilationJob = targetCompilationJobs[0];
+
+  const build: Build = await run(TASK_COMPILE_SOLIDITY_COMPILE_JOB, {
+    compilationJob,
+    compilationJobs: [compilationJob],
+    compilationJobIndex: 0,
+    emitsArtifacts: false,
+    quiet: true,
+  });
   return build;
 };
 
@@ -807,6 +890,10 @@ subtask(TASK_VERIFY_GET_MINIMUM_BUILD)
   .addParam("sourceName", undefined, undefined, types.string)
   .setAction(getMinimumBuild);
 
+subtask(TASK_VERIFY_GET_FULL_BUILD)
+  .addParam("sourceName", undefined, undefined, types.string)
+  .setAction(getFullBuild);
+
 task(TASK_VERIFY, "Verifies contract on Etherscan")
   .addOptionalPositionalParam(
     "address",
