MCPcopy Create free account
hub / github.com/NomicFoundation/hardhat / buildModule

Function buildModule

packages/ignition-core/src/build-module.ts:20–64  ·  view source on GitHub ↗
(
  moduleId: ModuleIdT,
  moduleDefinitionFunction: (
    m: IgnitionModuleBuilder,
  ) => IgnitionModuleResultsT,
)

Source from the content-addressed store, hash-verified

18 * @public
19 */
20export function buildModule<
21 ModuleIdT extends string,
22 ContractNameT extends string,
23 IgnitionModuleResultsT extends IgnitionModuleResult<ContractNameT>,
24>(
25 moduleId: ModuleIdT,
26 moduleDefinitionFunction: (
27 m: IgnitionModuleBuilder,
28 ) => IgnitionModuleResultsT,
29): IgnitionModule<ModuleIdT, ContractNameT, IgnitionModuleResultsT> {
30 if (typeof moduleId !== "string") {
31 throw new HardhatError(
32 HardhatError.ERRORS.IGNITION.MODULE.INVALID_MODULE_ID,
33 );
34 }
35
36 if (!isValidIgnitionIdentifier(moduleId)) {
37 throw new HardhatError(
38 HardhatError.ERRORS.IGNITION.MODULE.INVALID_MODULE_ID_CHARACTERS,
39 {
40 moduleId,
41 },
42 );
43 }
44
45 if (typeof moduleDefinitionFunction !== "function") {
46 throw new HardhatError(
47 HardhatError.ERRORS.IGNITION.MODULE.INVALID_MODULE_DEFINITION_FUNCTION,
48 );
49 }
50
51 const constructor = new ModuleConstructor();
52 const ignitionModule = constructor.construct<
53 ModuleIdT,
54 ContractNameT,
55 IgnitionModuleResultsT
56 >({
57 id: moduleId,
58 moduleDefinitionFunction,
59 });
60
61 _checkForDuplicateModuleIds(ignitionModule);
62
63 return ignitionModule;
64}
65
66/**
67 * Check to ensure that there are no duplicate module ids among the root

Callers 15

use-module.tsFile · 0.90
default-sender.tsFile · 0.90
viem-results.tsFile · 0.90
MyModule.jsFile · 0.90
BazModule.jsFile · 0.90
to-mermaid.tsFile · 0.90
ComplexModule.jsFile · 0.90

Calls 3

constructMethod · 0.95

Tested by

no test coverage detected