hardhat-deploy 2.0.0-next.5 → 2.0.0-next.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +22 -1
  3. package/dist/esm/config/default.d.ts.map +1 -1
  4. package/dist/esm/config/default.js +2 -5
  5. package/dist/esm/config/default.js.map +1 -1
  6. package/dist/esm/config/get-config.d.ts.map +1 -1
  7. package/dist/esm/config/get-config.js +3 -2
  8. package/dist/esm/config/get-config.js.map +1 -1
  9. package/dist/esm/config/validation.d.ts.map +1 -1
  10. package/dist/esm/config/validation.js +8 -7
  11. package/dist/esm/config/validation.js.map +1 -1
  12. package/dist/esm/generate-types.d.ts +2 -3
  13. package/dist/esm/generate-types.d.ts.map +1 -1
  14. package/dist/esm/generate-types.js +199 -155
  15. package/dist/esm/generate-types.js.map +1 -1
  16. package/dist/esm/helpers.d.ts +28 -12
  17. package/dist/esm/helpers.d.ts.map +1 -1
  18. package/dist/esm/helpers.js +120 -70
  19. package/dist/esm/helpers.js.map +1 -1
  20. package/dist/esm/hook-handlers/config.d.ts.map +1 -1
  21. package/dist/esm/hook-handlers/config.js +53 -1
  22. package/dist/esm/hook-handlers/config.js.map +1 -1
  23. package/dist/esm/hook-handlers/solidity.d.ts.map +1 -1
  24. package/dist/esm/hook-handlers/solidity.js +13 -7
  25. package/dist/esm/hook-handlers/solidity.js.map +1 -1
  26. package/dist/esm/index.d.ts +3 -0
  27. package/dist/esm/index.d.ts.map +1 -1
  28. package/dist/esm/index.js +17 -5
  29. package/dist/esm/index.js.map +1 -1
  30. package/dist/esm/tasks/deploy.d.ts +1 -0
  31. package/dist/esm/tasks/deploy.d.ts.map +1 -1
  32. package/dist/esm/tasks/deploy.js +13 -6
  33. package/dist/esm/tasks/deploy.js.map +1 -1
  34. package/dist/esm/type-extensions.d.ts +2 -2
  35. package/dist/esm/type-extensions.d.ts.map +1 -1
  36. package/dist/esm/types.d.ts +8 -10
  37. package/dist/esm/types.d.ts.map +1 -1
  38. package/dist/esm/utils/files.d.ts +9 -0
  39. package/dist/esm/utils/files.d.ts.map +1 -0
  40. package/dist/esm/utils/files.js +25 -0
  41. package/dist/esm/utils/files.js.map +1 -0
  42. package/package.json +16 -13
  43. package/src/config/default.ts +6 -0
  44. package/src/config/get-config.ts +12 -0
  45. package/src/config/validation.ts +25 -0
  46. package/src/generate-types.ts +279 -0
  47. package/src/helpers.ts +315 -0
  48. package/src/hook-handlers/config.ts +80 -0
  49. package/src/hook-handlers/solidity.ts +33 -0
  50. package/src/index.ts +47 -0
  51. package/src/tasks/deploy.ts +38 -0
  52. package/src/type-extensions.ts +12 -0
  53. package/src/types.ts +9 -0
  54. package/src/utils/files.ts +37 -0
  55. package/dist/esm/tasks/compile.d.ts +0 -6
  56. package/dist/esm/tasks/compile.d.ts.map +0 -1
  57. package/dist/esm/tasks/compile.js +0 -254
  58. package/dist/esm/tasks/compile.js.map +0 -1
@@ -1,18 +1,34 @@
1
- import { EdrNetworkUserConfig, NetworkUserConfig, SensitiveString } from 'hardhat/types/config';
1
+ import { NetworkUserConfig, SensitiveString } from 'hardhat/types/config';
2
2
  import { HardhatRuntimeEnvironment } from 'hardhat/types/hre';
3
- import { Environment, ProvidedContext, UnknownArtifacts, UnresolvedUnknownNamedAccounts } from 'rocketh';
4
- export declare function loadEnvironmentFromHardhat<Artifacts extends UnknownArtifacts = UnknownArtifacts, NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts>({ hre, context }: {
3
+ import { NetworkConnection } from 'hardhat/types/network';
4
+ import { Environment, UnresolvedUnknownNamedAccounts, UnresolvedNetworkSpecificData } from 'rocketh';
5
+ export declare function setupHardhatDeploy<Extensions extends Record<string, (env: Environment<any, any, any>) => any> = {}, NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData>(extensions: Extensions): {
6
+ loadEnvironmentFromHardhat: (required: {
7
+ hre: HardhatRuntimeEnvironment;
8
+ connection?: NetworkConnection;
9
+ }) => Promise<import("rocketh").EnhancedEnvironment<UnresolvedUnknownNamedAccounts, UnresolvedNetworkSpecificData, import("rocketh").UnknownDeployments, Extensions, Record<string, unknown>>>;
10
+ };
11
+ export declare function generateForkConfig(params: {
12
+ hre: HardhatRuntimeEnvironment;
13
+ connection?: NetworkConnection;
14
+ }): Promise<{
15
+ provider: any;
16
+ environment: string | {
17
+ fork: string;
18
+ };
19
+ connection: NetworkConnection;
20
+ isFork: boolean;
21
+ }>;
22
+ export declare function loadEnvironmentFromHardhat<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData>(params: {
5
23
  hre: HardhatRuntimeEnvironment;
6
- context?: ProvidedContext<Artifacts, NamedAccounts>;
7
- }, options?: {
8
- useChainIdOfForkedNetwork?: boolean;
9
- }): Promise<Environment>;
24
+ connection?: NetworkConnection;
25
+ }): Promise<Environment<NamedAccounts, Data>>;
10
26
  export declare function getRPC(networkName: string): string | SensitiveString | undefined;
11
- export declare function getMnemonic(networkName?: string): string | SensitiveString;
12
- export declare function getAccounts(networkName?: string): {
27
+ export declare function getMnemonic(networkName?: string, doNotDefault?: boolean): string | SensitiveString | undefined;
28
+ export declare function getAccounts(networkName?: string, doNotDefault?: boolean): {
13
29
  mnemonic: string | SensitiveString;
14
- };
15
- export declare function addNetworksFromEnv(networks?: Record<string, EdrNetworkUserConfig>): Record<string, NetworkUserConfig>;
16
- export declare function populateNetworksFromEnv(networks: Record<string, Omit<NetworkUserConfig, 'accounts' | 'url'>>): Record<string, NetworkUserConfig>;
30
+ } | undefined;
31
+ export declare function addNetworksFromEnv(networks?: Record<string, NetworkUserConfig>): Record<string, NetworkUserConfig>;
32
+ export declare function addNetworksFromKnownList(networks?: Record<string, NetworkUserConfig>): Record<string, NetworkUserConfig>;
17
33
  export declare function addForkConfiguration(networks: Record<string, NetworkUserConfig>): Record<string, NetworkUserConfig>;
18
34
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,oBAAoB,EAGpB,iBAAiB,EACjB,eAAe,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,8BAA8B,EAAkB,MAAM,SAAS,CAAC;AAExH,wBAAsB,0BAA0B,CAC/C,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EAErF,EAAC,GAAG,EAAE,OAAO,EAAC,EAAE;IAAC,GAAG,EAAE,yBAAyB,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;CAAC,EACrG,OAAO,CAAC,EAAE;IACT,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC,GACC,OAAO,CAAC,WAAW,CAAC,CAsEtB;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,CA0BhF;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,CAiB1E;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;IAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;CAAC,CAEtF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAuBrH;AAED,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC,GACnE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAmBnC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAmDnH"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,iBAAiB,EACjB,eAAe,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACN,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAI7B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,kBAAkB,CACjC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,EAChF,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EACzE,UAAU,EAAE,UAAU;2CAEZ;QAAC,GAAG,EAAE,yBAAyB,CAAC;QAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;KAAC;EAY3E;AAED,wBAAsB,kBAAkB,CACvC,MAAM,EAAE;IAAC,GAAG,EAAE,yBAAyB,CAAC;IAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAAC,GAItE,OAAO,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,CAAC,CAsEhH;AAED,wBAAsB,0BAA0B,CAC/C,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAE1E,MAAM,EAAE;IAAC,GAAG,EAAE,yBAAyB,CAAC;IAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAAC,GAKtE,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAW3C;AAiBD,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,CAuBhF;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,CAiB9G;AAED,wBAAgB,WAAW,CAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,OAAO,GACpB;IAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;CAAC,GAAG,SAAS,CAMlD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAuBlH;AAGD,wBAAgB,wBAAwB,CACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAC1C,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAwBnC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAoDnH"}
@@ -1,44 +1,60 @@
1
1
  import { configVariable } from 'hardhat/config';
2
- import { loadEnvironment } from 'rocketh';
3
- export async function loadEnvironmentFromHardhat({ hre, context }, options) {
4
- const connection = await hre.network.connect();
2
+ import { loadEnvironment, enhanceEnvIfNeeded, chainByCanonicalName, } from 'rocketh';
3
+ export function setupHardhatDeploy(extensions) {
4
+ async function loadEnvironmentFromHardhatWithExtensions(required
5
+ // options?: {
6
+ // useChainIdOfForkedNetwork?: boolean;
7
+ // }
8
+ ) {
9
+ const env = await loadEnvironmentFromHardhat(required);
10
+ return enhanceEnvIfNeeded(env, extensions);
11
+ }
12
+ return {
13
+ loadEnvironmentFromHardhat: loadEnvironmentFromHardhatWithExtensions,
14
+ };
15
+ }
16
+ export async function generateForkConfig(params
17
+ // options?: {
18
+ // useChainIdOfForkedNetwork?: boolean;
19
+ // }
20
+ ) {
21
+ const fork = process.env.HARDHAT_FORK;
22
+ const connection = params.connection || fork
23
+ ? await params.hre.network.connect({ network: 'fork' })
24
+ : await params.hre.network.connect();
5
25
  let provider = connection.provider;
6
- let network = connection.networkName;
26
+ let environment = connection.networkName;
7
27
  let forkChainId;
8
- const fork = process.env.HARDHAT_FORK;
9
28
  if (fork) {
10
- if (options?.useChainIdOfForkedNetwork) {
11
- const forkNetworkConfig = hre.config.networks[fork];
12
- if (forkNetworkConfig.type === 'edr') {
13
- forkChainId = forkNetworkConfig.chainId;
14
- }
15
- else if (forkNetworkConfig.chainId) {
16
- forkChainId = forkNetworkConfig.chainId;
17
- }
18
- else {
19
- if ('url' in forkNetworkConfig) {
20
- const url = await forkNetworkConfig.url.getUrl();
21
- const response = await fetch(url, {
22
- method: 'POST',
23
- headers: {
24
- 'Content-Type': 'application/json',
25
- },
26
- body: JSON.stringify({
27
- jsonrpc: '2.0',
28
- id: 1,
29
- method: 'eth_chainId',
30
- params: [],
31
- }),
32
- });
33
- const json = (await response.json());
34
- forkChainId = Number(json.result);
35
- }
36
- else {
37
- throw new Error(`cannot fetch chainId`);
38
- }
39
- }
40
- }
41
- network = {
29
+ // if (options?.useChainIdOfForkedNetwork) {
30
+ // const forkNetworkConfig = params.hre.config.networks[fork];
31
+ // if (forkNetworkConfig.type === 'edr-simulated') {
32
+ // forkChainId = forkNetworkConfig.chainId;
33
+ // } else if (forkNetworkConfig.chainId) {
34
+ // forkChainId = forkNetworkConfig.chainId;
35
+ // } else {
36
+ // if ('url' in forkNetworkConfig) {
37
+ // const url = await forkNetworkConfig.url.getUrl();
38
+ // const response = await fetch(url, {
39
+ // method: 'POST',
40
+ // headers: {
41
+ // 'Content-Type': 'application/json',
42
+ // },
43
+ // body: JSON.stringify({
44
+ // jsonrpc: '2.0',
45
+ // id: 1,
46
+ // method: 'eth_chainId',
47
+ // params: [],
48
+ // }),
49
+ // });
50
+ // const json = (await response.json()) as {result: string};
51
+ // forkChainId = Number(json.result);
52
+ // } else {
53
+ // throw new Error(`cannot fetch chainId`);
54
+ // }
55
+ // }
56
+ // }
57
+ environment = {
42
58
  fork,
43
59
  };
44
60
  }
@@ -62,18 +78,42 @@ export async function loadEnvironmentFromHardhat({ hre, context }, options) {
62
78
  },
63
79
  });
64
80
  }
81
+ return { provider, environment, connection, isFork: !!fork };
82
+ }
83
+ export async function loadEnvironmentFromHardhat(params
84
+ // TODO ?
85
+ // options?: {
86
+ // useChainIdOfForkedNetwork?: boolean;
87
+ // }
88
+ ) {
89
+ const { connection, environment, provider, isFork } = await generateForkConfig(params);
90
+ // console.log(`loading environments...`);
65
91
  return loadEnvironment({
66
92
  provider,
67
- network,
68
- }, context || { artifacts: {} } // TODO
69
- );
93
+ environment,
94
+ extra: {
95
+ connection,
96
+ },
97
+ saveDeployments: isFork ? false : undefined,
98
+ });
70
99
  }
71
- export function getRPC(networkName) {
72
- const variableName = 'ETH_NODE_URI_' + networkName;
100
+ function getVariable(prefix, name) {
101
+ const variableName = prefix + name;
73
102
  let uri = process.env[variableName];
74
103
  if (uri === 'SECRET') {
75
104
  return configVariable(`SECRET_${variableName}`);
76
105
  }
106
+ else if (uri?.startsWith('SECRET:')) {
107
+ const splitted = uri.split(':');
108
+ if (splitted.length !== 2) {
109
+ throw new Error(`invalid secret uri ${uri}`);
110
+ }
111
+ return configVariable(`SECRET_${prefix + splitted[1]}`);
112
+ }
113
+ return uri;
114
+ }
115
+ export function getRPC(networkName) {
116
+ let uri = getVariable('ETH_NODE_URI_', networkName);
77
117
  if (uri && uri !== '') {
78
118
  return uri;
79
119
  }
@@ -93,25 +133,28 @@ export function getRPC(networkName) {
93
133
  }
94
134
  return uri;
95
135
  }
96
- export function getMnemonic(networkName) {
136
+ export function getMnemonic(networkName, doNotDefault) {
97
137
  if (networkName) {
98
- const variableName = 'MNEMONIC_' + networkName;
99
- const mnemonic = process.env[variableName];
100
- if (mnemonic === 'SECRET') {
101
- return configVariable(`SECRET_${variableName}`);
102
- }
138
+ const mnemonic = getVariable('MNEMONIC_', networkName);
103
139
  if (mnemonic && mnemonic !== '') {
104
140
  return mnemonic;
105
141
  }
106
142
  }
107
143
  const mnemonic = process.env.MNEMONIC;
108
144
  if (!mnemonic || mnemonic === '') {
145
+ if (doNotDefault) {
146
+ return undefined;
147
+ }
109
148
  return 'test test test test test test test test test test test junk';
110
149
  }
111
150
  return mnemonic;
112
151
  }
113
- export function getAccounts(networkName) {
114
- return { mnemonic: getMnemonic(networkName) };
152
+ export function getAccounts(networkName, doNotDefault) {
153
+ const mnemonic = getMnemonic(networkName, doNotDefault);
154
+ if (!mnemonic) {
155
+ return undefined;
156
+ }
157
+ return { mnemonic };
115
158
  }
116
159
  export function addNetworksFromEnv(networks) {
117
160
  const newNetworks = networks ? { ...networks } : {};
@@ -139,23 +182,29 @@ export function addNetworksFromEnv(networks) {
139
182
  }
140
183
  return newNetworks;
141
184
  }
142
- export function populateNetworksFromEnv(networks) {
143
- const newNetworks = {};
144
- for (const networkName of Object.keys(networks)) {
145
- const network = networks[networkName];
146
- if (network.type === 'edr') {
147
- continue;
148
- }
149
- const url = getRPC(networkName);
150
- if (url) {
151
- newNetworks[networkName] = {
152
- ...networks[networkName],
153
- url,
154
- accounts: getAccounts(networkName),
155
- };
185
+ const listOfNetworkNamesWithTestAccountAllowed = ['hardhat', 'localhost', 'memory', 'test'];
186
+ export function addNetworksFromKnownList(networks) {
187
+ const newNetworks = networks ? { ...networks } : {};
188
+ const canonicalNames = Object.keys(chainByCanonicalName);
189
+ for (const canonicalName of canonicalNames) {
190
+ const chain = chainByCanonicalName[canonicalName];
191
+ const url = getRPC(canonicalName) || chain.rpcUrls.default.http[0];
192
+ if (!newNetworks[canonicalName]) {
193
+ if (url) {
194
+ newNetworks[canonicalName] = {
195
+ type: 'http',
196
+ url,
197
+ accounts: getAccounts(canonicalName, !listOfNetworkNamesWithTestAccountAllowed.includes(canonicalName)),
198
+ chainType: chain.chainType === 'op-stack' ? 'op' : undefined,
199
+ chainId: chain.id,
200
+ };
201
+ }
202
+ else {
203
+ console.error(`no url for chain ${canonicalName}`);
204
+ }
156
205
  }
157
206
  else {
158
- console.error(`no url for network ${networkName}`);
207
+ // console.error(`duplicated chain ${canonicalName}`);
159
208
  }
160
209
  }
161
210
  return newNetworks;
@@ -167,6 +216,7 @@ export function addForkConfiguration(networks) {
167
216
  if (currentNetworkName &&
168
217
  currentNetworkName !== 'hardhat' &&
169
218
  currentNetworkName !== 'edr' &&
219
+ currentNetworkName !== 'edr-simulated' &&
170
220
  currentNetworkName !== 'memory') {
171
221
  const currentNetwork = networks[currentNetworkName];
172
222
  if (currentNetwork) {
@@ -186,13 +236,13 @@ export function addForkConfiguration(networks) {
186
236
  }
187
237
  }
188
238
  }
189
- const existingHardhat = networks.hardhat && networks.hardhat.type === 'edr' ? networks.hardhat : { type: 'edr', chainType: 'l1' };
239
+ const existingForkConfiguration = networks.fork && networks.fork.type === 'edr-simulated' ? networks.fork : { type: 'edr-simulated', chainType: 'l1' };
190
240
  const newNetworks = {
191
- ...populateNetworksFromEnv(networks),
192
- hardhat: {
193
- ...existingHardhat,
241
+ ...networks,
242
+ fork: {
243
+ ...existingForkConfiguration,
194
244
  ...{
195
- accounts: hardhatAccounts || existingHardhat?.accounts,
245
+ accounts: hardhatAccounts || existingForkConfiguration?.accounts,
196
246
  forking: forkURL
197
247
  ? {
198
248
  url: forkURL,
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAU9C,OAAO,EAIN,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,SAAS,CAAC;AAEjB,MAAM,UAAU,kBAAkB,CAIhC,UAAsB;IACvB,KAAK,UAAU,wCAAwC,CACtD,QAA0E;IAC1E,cAAc;IACd,wCAAwC;IACxC,IAAI;;QAEJ,MAAM,GAAG,GAAG,MAAM,0BAA0B,CAAsB,QAAQ,CAAC,CAAC;QAC5E,OAAO,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO;QACN,0BAA0B,EAAE,wCAAwC;KACpE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,MAAwE;AACxE,cAAc;AACd,wCAAwC;AACxC,IAAI;;IAEJ,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAkC,CAAC;IAE5D,MAAM,UAAU,GACf,MAAM,CAAC,UAAU,IAAI,IAAI;QACxB,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC;QACrD,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAEvC,IAAI,QAAQ,GAAQ,UAAU,CAAC,QAAQ,CAAC;IACxC,IAAI,WAAW,GAA4B,UAAU,CAAC,WAAW,CAAC;IAClE,IAAI,WAA+B,CAAC;IAEpC,IAAI,IAAI,EAAE,CAAC;QACV,4CAA4C;QAC5C,+DAA+D;QAE/D,qDAAqD;QACrD,6CAA6C;QAC7C,2CAA2C;QAC3C,6CAA6C;QAC7C,YAAY;QACZ,sCAAsC;QACtC,uDAAuD;QACvD,yCAAyC;QACzC,sBAAsB;QACtB,iBAAiB;QACjB,2CAA2C;QAC3C,SAAS;QACT,6BAA6B;QAC7B,uBAAuB;QACvB,cAAc;QACd,8BAA8B;QAC9B,mBAAmB;QACnB,UAAU;QACV,SAAS;QACT,+DAA+D;QAC/D,wCAAwC;QACxC,aAAa;QACb,8CAA8C;QAC9C,MAAM;QACN,KAAK;QACL,IAAI;QAEJ,WAAW,GAAG;YACb,IAAI;SACJ,CAAC;IACH,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,gBAAgB,GAAG,QAAQ,CAAC;QAClC,MAAM,OAAO,GAAG,WAAW,CAAC;QAC5B,KAAK,UAAU,OAAO,CAAC,IAAyC;YAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBACnC,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,CAAC;YACD,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,QAAQ,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE;YACtC,GAAG,EAAE,UAAU,MAAM,EAAE,QAAQ,EAAE,QAAQ;gBACxC,QAAQ,QAAQ,EAAE,CAAC;oBAClB,KAAK,SAAS;wBACb,OAAO,OAAO,CAAC;oBAChB;wBACC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC;YACF,CAAC;SACD,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAI/C,MAAwE;AACxE,SAAS;AACT,cAAc;AACd,wCAAwC;AACxC,IAAI;;IAEJ,MAAM,EAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAC,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACrF,0CAA0C;IAC1C,OAAO,eAAe,CAAsB;QAC3C,QAAQ;QACR,WAAW;QACX,KAAK,EAAE;YACN,UAAU;SACV;QACD,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC3C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,IAAY;IAChD,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,cAAc,CAAC,UAAU,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,WAAmB;IACzC,IAAI,GAAG,GAAG,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC/B,IAAI,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACxB,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO,uBAAuB,CAAC;QAChC,CAAC;QACD,OAAO,GAAG,CAAC;QACX,qEAAqE;IACtE,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAoB,EAAE,YAAsB;IACvE,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEvD,IAAI,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACtC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAClC,IAAI,YAAY,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,6DAA6D,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,WAAoB,EACpB,YAAsB;IAEtB,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,EAAC,QAAQ,EAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAA4C;IAC9E,MAAM,WAAW,GAAsC,QAAQ,CAAC,CAAC,CAAC,EAAC,GAAG,QAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;YAClF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACT,WAAW,CAAC,WAAW,CAAC,GAAG;wBAC1B,IAAI,EAAE,MAAM;wBACZ,GAAG;wBACH,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC;qBAClC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;gBACpD,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,wCAAwC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5F,MAAM,UAAU,wBAAwB,CACvC,QAA4C;IAE5C,MAAM,WAAW,GAAsC,QAAQ,CAAC,CAAC,CAAC,EAAC,GAAG,QAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEzD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,IAAI,GAAG,EAAE,CAAC;gBACT,WAAW,CAAC,aAAa,CAAC,GAAG;oBAC5B,IAAI,EAAE,MAAM;oBACZ,GAAG;oBACH,QAAQ,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,wCAAwC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBACvG,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;oBAC5D,OAAO,EAAE,KAAK,CAAC,EAAE;iBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;aAAM,CAAC;YACP,sDAAsD;QACvD,CAAC;IACF,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAA2C;IAC/E,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACpD,IAAI,OAA6C,CAAC;IAClD,IAAI,eAA2D,CAAC;IAChE,IACC,kBAAkB;QAClB,kBAAkB,KAAK,SAAS;QAChC,kBAAkB,KAAK,KAAK;QAC5B,kBAAkB,KAAK,eAAe;QACtC,kBAAkB,KAAK,QAAQ,EAC9B,CAAC;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC,kBAAkB,CAA0B,CAAC;QAC7E,IAAI,cAAc,EAAE,CAAC;YACpB,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC;gBAC7B,IACC,cAAc,CAAC,QAAQ;oBACvB,OAAO,cAAc,CAAC,QAAQ,KAAK,QAAQ;oBAC3C,UAAU,IAAI,cAAc,CAAC,QAAQ,EACpC,CAAC;oBACF,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC;gBAC3C,CAAC;gBAED,gFAAgF;gBAChF,2DAA2D;gBAC3D,wCAAwC;gBACxC,mBAAmB;gBACnB,QAAQ;gBACR,IAAI;YACL,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,yBAAyB,GAC9B,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;IAEpH,MAAM,WAAW,GAAsC;QACtD,GAAG,QAAQ;QACX,IAAI,EAAE;YACL,GAAG,yBAAyB;YAC5B,GAAG;gBACF,QAAQ,EAAE,eAAe,IAAI,yBAAyB,EAAE,QAAQ;gBAChE,OAAO,EAAE,OAAO;oBACf,CAAC,CAAC;wBACA,GAAG,EAAE,OAAO;wBACZ,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS;qBACnG;oBACH,CAAC,CAAC,SAAS;aACZ;SACD;KACD,CAAC;IACF,OAAO,WAAW,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/hook-handlers/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;8BAK5B,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAAtD,wBAcE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/hook-handlers/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;8BAqD5B,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAAtD,wBA0BE"}
@@ -1,13 +1,65 @@
1
1
  import { getConfig } from '../config/get-config.js';
2
2
  import { validateTypechainUserConfig } from '../config/validation.js';
3
+ function addIfNotPresent(array, value) {
4
+ if (array.indexOf(value) === -1) {
5
+ array.push(value);
6
+ }
7
+ }
8
+ function setupExtraSolcSettings(settings) {
9
+ settings.metadata = settings.metadata || {};
10
+ settings.metadata.useLiteralContent = true;
11
+ if (settings.outputSelection === undefined) {
12
+ settings.outputSelection = {
13
+ '*': {
14
+ '*': [],
15
+ '': [],
16
+ },
17
+ };
18
+ }
19
+ if (settings.outputSelection['*'] === undefined) {
20
+ settings.outputSelection['*'] = {
21
+ '*': [],
22
+ '': [],
23
+ };
24
+ }
25
+ if (settings.outputSelection['*']['*'] === undefined) {
26
+ settings.outputSelection['*']['*'] = [];
27
+ }
28
+ if (settings.outputSelection['*'][''] === undefined) {
29
+ settings.outputSelection['*'][''] = [];
30
+ }
31
+ addIfNotPresent(settings.outputSelection['*']['*'], 'abi');
32
+ // addIfNotPresent(settings.outputSelection['*']['*'], 'evm.bytecode');
33
+ // addIfNotPresent(settings.outputSelection['*']['*'], 'evm.deployedBytecode');
34
+ addIfNotPresent(settings.outputSelection['*']['*'], 'metadata');
35
+ addIfNotPresent(settings.outputSelection['*']['*'], 'devdoc');
36
+ addIfNotPresent(settings.outputSelection['*']['*'], 'userdoc');
37
+ addIfNotPresent(settings.outputSelection['*']['*'], 'storageLayout');
38
+ // addIfNotPresent(settings.outputSelection['*']['*'], 'evm.methodIdentifiers');
39
+ addIfNotPresent(settings.outputSelection['*']['*'], 'evm.gasEstimates');
40
+ // addIfNotPresent(settings.outputSelection["*"][""], "ir");
41
+ // addIfNotPresent(settings.outputSelection["*"][""], "irOptimized");
42
+ // addIfNotPresent(settings.outputSelection["*"][""], "ast");
43
+ }
3
44
  export default async () => {
4
45
  const handlers = {
5
46
  validateUserConfig: validateTypechainUserConfig,
6
47
  resolveUserConfig: async (userConfig, resolveConfigurationVariable, next) => {
7
48
  const resolvedConfig = await next(userConfig, resolveConfigurationVariable);
49
+ const solidity = structuredClone(resolvedConfig.solidity);
50
+ const profiles = solidity.profiles;
51
+ for (const profileName of Object.keys(profiles)) {
52
+ const profile = profiles[profileName];
53
+ const compilers = profile.compilers;
54
+ for (const compiler of compilers) {
55
+ const settings = compiler.settings;
56
+ setupExtraSolcSettings(settings);
57
+ }
58
+ }
8
59
  return {
9
60
  ...resolvedConfig,
10
- generateArtifacts: getConfig(userConfig.generateArtifacts),
61
+ solidity,
62
+ generateTypedArtifacts: getConfig(userConfig.generateTypedArtifacts),
11
63
  };
12
64
  },
13
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/hook-handlers/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AAEpE,eAAe,KAAK,IAAmC,EAAE;IACxD,MAAM,QAAQ,GAAyB;QACtC,kBAAkB,EAAE,2BAA2B;QAC/C,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE;YAC3E,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;YAE5E,OAAO;gBACN,GAAG,cAAc;gBACjB,iBAAiB,EAAE,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC;aAC1D,CAAC;QACH,CAAC;KACD,CAAC;IAEF,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/hook-handlers/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"solidity.d.ts","sourceRoot":"","sources":["../../../src/hook-handlers/solidity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,aAAa,EAAC,MAAM,qBAAqB,CAAC;8BAK3C,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAAxD,wBAuBE"}
1
+ {"version":3,"file":"solidity.d.ts","sourceRoot":"","sources":["../../../src/hook-handlers/solidity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,aAAa,EAAC,MAAM,qBAAqB,CAAC;8BAI3C,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAAxD,wBA4BE"}
@@ -1,13 +1,19 @@
1
1
  import { generateTypes } from '../generate-types.js';
2
2
  export default async () => {
3
3
  const handlers = {
4
- async onAllArtifactsEmitted(context, artifacts, next) {
5
- const artifactsPaths = Array.from(artifacts.values()).flatMap((innerMap) => Array.from(innerMap.values()).flat());
6
- await generateTypes({
7
- root: context.config.paths.root,
8
- artifacts: context.config.paths.artifacts,
9
- }, context.config.generateArtifacts, artifactsPaths);
10
- return next(context, artifacts);
4
+ async onCleanUpArtifacts(context, artifactPaths, next) {
5
+ let artifactPathsToProcess = [context.config.paths.artifacts];
6
+ // if (context.config.generateTypedArtifacts.externalArtifacts) {
7
+ // artifactPathsToProcess = artifactPathsToProcess.concat(
8
+ // context.config.generateTypedArtifacts.externalArtifacts
9
+ // );
10
+ // }
11
+ if (artifactPaths.length > 0) {
12
+ await generateTypes({
13
+ artifacts: artifactPathsToProcess,
14
+ }, context.config.generateTypedArtifacts);
15
+ }
16
+ return next(context, artifactPaths);
11
17
  },
12
18
  };
13
19
  return handlers;
@@ -1 +1 @@
1
- {"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../../src/hook-handlers/solidity.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAEnD,eAAe,KAAK,IAAqC,EAAE;IAC1D,MAAM,QAAQ,GAA2B;QACxC,KAAK,CAAC,qBAAqB,CAC1B,OAAoB,EACpB,SAA6D,EAC7D,IAAgH;YAEhH,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAElH,MAAM,aAAa,CAClB;gBACC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;gBAC/B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;aACzC,EACD,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAChC,cAAc,CACd,CAAC;YAEF,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACjC,CAAC;KACD,CAAC;IAEF,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../../src/hook-handlers/solidity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAEnD,eAAe,KAAK,IAAqC,EAAE;IAC1D,MAAM,QAAQ,GAA2B;QACxC,KAAK,CAAC,kBAAkB,CACvB,OAAoB,EACpB,aAAuB,EACvB,IAA0E;YAE1E,IAAI,sBAAsB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9D,iEAAiE;YACjE,2DAA2D;YAC3D,4DAA4D;YAC5D,MAAM;YACN,IAAI;YAEJ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,aAAa,CAClB;oBACC,SAAS,EAAE,sBAAsB;iBACjC,EACD,OAAO,CAAC,MAAM,CAAC,sBAAsB,CACrC,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrC,CAAC;KACD,CAAC;IAEF,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import type { HardhatPlugin } from 'hardhat/types/plugins';
2
2
  import './type-extensions.js';
3
+ import { Environment } from 'rocketh';
4
+ import type { NetworkConnection } from 'hardhat/types/network';
3
5
  declare const hardhatPlugin: HardhatPlugin;
4
6
  export default hardhatPlugin;
7
+ export declare function getHardhatConnection(env: Environment): NetworkConnection<'generic'>;
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAGzD,OAAO,sBAAsB,CAAC;AAM9B,QAAA,MAAM,aAAa,EAAE,aAoBpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAGzD,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAK7D,QAAA,MAAM,aAAa,EAAE,aA0BpB,CAAC;AAEF,eAAe,aAAa,CAAC;AAE7B,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAKnF"}
package/dist/esm/index.js CHANGED
@@ -4,10 +4,10 @@ import { ArgumentType } from 'hardhat/types/arguments';
4
4
  // const deployTask = import.meta.resolve('./tasks/deploy.js').replace('.ts', '.js');
5
5
  // console.log({deployTask});
6
6
  const hardhatPlugin = {
7
- id: 'hardhat3-rocketh',
7
+ id: 'hardhat-deploy',
8
8
  hookHandlers: {
9
- config: import.meta.resolve('./hook-handlers/config.js'),
10
- solidity: import.meta.resolve('./hook-handlers/solidity.js'),
9
+ config: () => import('./hook-handlers/config.js'),
10
+ solidity: () => import('./hook-handlers/solidity.js'),
11
11
  },
12
12
  tasks: [
13
13
  task('deploy', 'Deploy contracts')
@@ -19,10 +19,22 @@ const hardhatPlugin = {
19
19
  defaultValue: '',
20
20
  type: ArgumentType.STRING,
21
21
  })
22
- .setAction(import.meta.resolve('./tasks/deploy.js'))
22
+ .addOption({
23
+ name: 'tags',
24
+ description: 'specify which tags to deploy',
25
+ defaultValue: '',
26
+ type: ArgumentType.STRING,
27
+ })
28
+ .setAction(() => import('./tasks/deploy.js'))
23
29
  .build(),
24
30
  ],
25
- npmPackage: 'hardhat3-rocketh',
31
+ npmPackage: 'hardhat-deploy',
26
32
  };
27
33
  export default hardhatPlugin;
34
+ export function getHardhatConnection(env) {
35
+ if (!env.extra?.connection) {
36
+ throw new Error('Hardhat deploy connection not found in the environment');
37
+ }
38
+ return env.extra.connection;
39
+ }
28
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAErD,qFAAqF;AACrF,6BAA6B;AAE7B,MAAM,aAAa,GAAkB;IACpC,EAAE,EAAE,kBAAkB;IACtB,YAAY,EAAE;QACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC;QACxD,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC;KAC5D;IACD,KAAK,EAAE;QACN,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC;YACjC,uDAAuD;aACtD,OAAO,CAAC,EAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,EAAC,CAAC;aACvE,SAAS,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,0BAA0B;YACvC,YAAY,EAAE,EAAE;YAChB,IAAI,EAAE,YAAY,CAAC,MAAM;SACzB,CAAC;aACD,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;aACnD,KAAK,EAAE;KACT;IACD,UAAU,EAAE,kBAAkB;CAC9B,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAIrD,qFAAqF;AACrF,6BAA6B;AAE7B,MAAM,aAAa,GAAkB;IACpC,EAAE,EAAE,gBAAgB;IACpB,YAAY,EAAE;QACb,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC;QACjD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC;KACrD;IACD,KAAK,EAAE;QACN,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC;YACjC,uDAAuD;aACtD,OAAO,CAAC,EAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,EAAC,CAAC;aACvE,SAAS,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,0BAA0B;YACvC,YAAY,EAAE,EAAE;YAChB,IAAI,EAAE,YAAY,CAAC,MAAM;SACzB,CAAC;aACD,SAAS,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,8BAA8B;YAC3C,YAAY,EAAE,EAAE;YAChB,IAAI,EAAE,YAAY,CAAC,MAAM;SACzB,CAAC;aACD,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;aAC5C,KAAK,EAAE;KACT;IACD,UAAU,EAAE,gBAAgB;CAC5B,CAAC;AAEF,eAAe,aAAa,CAAC;AAE7B,MAAM,UAAU,oBAAoB,CAAC,GAAgB;IACpD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,UAA0C,CAAC;AAC7D,CAAC"}
@@ -2,6 +2,7 @@ import { NewTaskActionFunction } from 'hardhat/types/tasks';
2
2
  interface RunActionArguments {
3
3
  saveDeployments: string;
4
4
  skipPrompts: boolean;
5
+ tags?: string;
5
6
  }
6
7
  declare const runScriptWithHardhat: NewTaskActionFunction<RunActionArguments>;
7
8
  export default runScriptWithHardhat;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/tasks/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAG1D,UAAU,kBAAkB;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,oBAAoB,EAAE,qBAAqB,CAAC,kBAAkB,CAiBnE,CAAC;AACF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/tasks/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAI1D,UAAU,kBAAkB;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,QAAA,MAAM,oBAAoB,EAAE,qBAAqB,CAAC,kBAAkB,CA0BnE,CAAC;AACF,eAAe,oBAAoB,CAAC"}
@@ -1,20 +1,27 @@
1
1
  import { loadAndExecuteDeployments } from 'rocketh';
2
+ import { generateForkConfig } from '../helpers.js';
2
3
  const runScriptWithHardhat = async (args, hre) => {
3
- let saveDeployments = args.saveDeployments == '' ? undefined : args.saveDeployments == 'true' ? true : false;
4
+ let saveDeployments = true;
4
5
  let skipPrompts = args.skipPrompts ? true : false;
5
- const connection = await hre.network.connect();
6
- const isMemoryNetwork = connection.networkConfig.type == 'edr';
6
+ const { connection, environment, isFork, provider } = await generateForkConfig({ hre });
7
+ const isMemoryNetwork = connection.networkConfig.type == 'edr-simulated';
7
8
  if (isMemoryNetwork) {
8
9
  skipPrompts = true;
9
10
  saveDeployments = false;
10
11
  }
12
+ if (args.saveDeployments != '') {
13
+ saveDeployments = args.saveDeployments == 'true' ? true : false;
14
+ }
15
+ const tags = args.tags && args.tags != '' ? args.tags : undefined;
11
16
  await loadAndExecuteDeployments({
12
17
  logLevel: 1,
13
- provider: connection.provider, // TODO type
14
- network: process.env.HARDHAT_FORK ? { fork: process.env.HARDHAT_FORK } : connection.networkName,
15
- saveDeployments,
18
+ provider,
19
+ environment: environment,
20
+ saveDeployments: isFork ? false : saveDeployments,
16
21
  askBeforeProceeding: skipPrompts ? false : true,
22
+ tags: tags?.split(','),
17
23
  // reportGasUse: args.skipGasReport ? false : true,
24
+ extra: { connection },
18
25
  });
19
26
  };
20
27
  export default runScriptWithHardhat;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/tasks/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,yBAAyB,EAAC,MAAM,SAAS,CAAC;AAOjE,MAAM,oBAAoB,GAA8C,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAC3F,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7G,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/C,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,KAAK,CAAC;IAC/D,IAAI,eAAe,EAAE,CAAC;QACrB,WAAW,GAAG,IAAI,CAAC;QACnB,eAAe,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,MAAM,yBAAyB,CAAC;QAC/B,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,UAAU,CAAC,QAA0B,EAAE,YAAY;QAC7D,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW;QAC7F,eAAe;QACf,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC/C,mDAAmD;KACnD,CAAC,CAAC;AACJ,CAAC,CAAC;AACF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/tasks/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,yBAAyB,EAAC,MAAM,SAAS,CAAC;AAClD,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAQjD,MAAM,oBAAoB,GAA8C,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAC3F,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAElD,MAAM,EAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAC,GAAG,MAAM,kBAAkB,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC;IAEpF,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,eAAe,CAAC;IACzE,IAAI,eAAe,EAAE,CAAC;QACrB,WAAW,GAAG,IAAI,CAAC;QACnB,eAAe,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;QAChC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAElE,MAAM,yBAAyB,CAAC;QAC/B,QAAQ,EAAE,CAAC;QACX,QAAQ;QACR,WAAW,EAAE,WAAW;QACxB,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe;QACjD,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC/C,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;QACtB,mDAAmD;QACnD,KAAK,EAAE,EAAC,UAAU,EAAC;KACnB,CAAC,CAAC;AACJ,CAAC,CAAC;AACF,eAAe,oBAAoB,CAAC"}
@@ -2,10 +2,10 @@ import 'hardhat/types/config';
2
2
  import { ArtifactGenerationConfig, ArtifactGenerationUserConfig } from './types.js';
3
3
  declare module 'hardhat/types/config' {
4
4
  interface HardhatUserConfig {
5
- generateArtifacts?: ArtifactGenerationUserConfig;
5
+ generateTypedArtifacts?: ArtifactGenerationUserConfig;
6
6
  }
7
7
  interface HardhatConfig {
8
- readonly generateArtifacts: ArtifactGenerationConfig;
8
+ readonly generateTypedArtifacts: ArtifactGenerationConfig;
9
9
  }
10
10
  }
11
11
  //# sourceMappingURL=type-extensions.d.ts.map