hardhat-deploy 0.11.25 → 0.11.27
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.
- package/README.md +36 -36
- package/dist/src/DeploymentsManager.d.ts.map +1 -1
- package/dist/src/DeploymentsManager.js +22 -19
- package/dist/src/DeploymentsManager.js.map +1 -1
- package/dist/src/etherscan.js +1 -1
- package/dist/src/etherscan.js.map +1 -1
- package/dist/src/helpers.d.ts.map +1 -1
- package/dist/src/helpers.js +43 -49
- package/dist/src/helpers.js.map +1 -1
- package/dist/src/index.js +25 -29
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils.d.ts +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +18 -15
- package/dist/src/utils.js.map +1 -1
- package/dist/types.d.ts +17 -15
- package/dist/types.d.ts.map +1 -1
- package/package.json +14 -5
- package/src/DeploymentsManager.ts +3 -0
- package/src/helpers.ts +36 -32
- package/src/utils.ts +11 -3
- package/types.ts +2 -0
- package/dist/src/waitingTxSigner.d.ts +0 -10
- package/dist/src/waitingTxSigner.d.ts.map +0 -1
- package/dist/src/waitingTxSigner.js +0 -21
- package/dist/src/waitingTxSigner.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
_A [Hardhat](https://hardhat.org) Plugin For Replicable Deployments And Easy Testing_
|
|
4
4
|
|
|
5
|
-
> **A complete dev template using hardhat-deploy is available here
|
|
5
|
+
> **A complete dev template using hardhat-deploy is available here**: https://github.com/wighawag/template-ethereum-contracts
|
|
6
6
|
> It also contains various branches examplifying the capability of hardhat-deploy. Check it out.
|
|
7
7
|
|
|
8
|
-
- [What is it for
|
|
8
|
+
- [What is it for?](#what-is-it-for-)
|
|
9
9
|
- [hardhat-deploy in a nutshell](#hardhat-deploy-in-a-nutshell)
|
|
10
10
|
- [Installation](#installation)
|
|
11
11
|
- [npm install hardhat-deploy](#npm-install-hardhat-deploy)
|
|
@@ -60,7 +60,7 @@ _A [Hardhat](https://hardhat.org) Plugin For Replicable Deployments And Easy Tes
|
|
|
60
60
|
- [**4. console task**](#4-console-task)
|
|
61
61
|
- [Deploy Scripts: Tags And Dependencies](#deploy-scripts-tags-and-dependencies)
|
|
62
62
|
|
|
63
|
-
## What is it for
|
|
63
|
+
## What is it for?
|
|
64
64
|
|
|
65
65
|
This [hardhat](https://hardhat.org) plugin adds a mechanism to deploy contracts to any network, keeping track of them and replicating the same environment for testing.
|
|
66
66
|
|
|
@@ -69,8 +69,8 @@ It also adds a mechanism to associate names to addresses, so test and deployment
|
|
|
69
69
|
This plugin contains a lot more features too, all geared toward a better developer experience :
|
|
70
70
|
|
|
71
71
|
- chain configuration export
|
|
72
|
-
- listing deployed contracts' addresses and their abis (useful for
|
|
73
|
-
- library linking at time of deployment.
|
|
72
|
+
- listing deployed contracts' addresses and their abis (useful for web apps)
|
|
73
|
+
- library linking at the time of deployment.
|
|
74
74
|
- deterministic deployment across networks.
|
|
75
75
|
- support for specific deploy script per network (L1 vs L2 for example)
|
|
76
76
|
- ability to access deployment from "companion" networks
|
|
@@ -79,15 +79,15 @@ This plugin contains a lot more features too, all geared toward a better develop
|
|
|
79
79
|
- deployments as test fixture using `evm_snapshot` to speed up testing.
|
|
80
80
|
- ability to create your own test fixture that automatically benefits from `evm_snapshot`'s tests speed-up boost
|
|
81
81
|
- combined with [hardhat-deploy-ethers](https://github.com/wighawag/hardhat-deploy-ethers) it has the ability to get ethers contract instance by name (like `await ethers.getContract("ContractName")`).
|
|
82
|
-
- importing
|
|
82
|
+
- importing artifacts from external sources (like npm packages), including [truffle](https://www.trufflesuite.com/truffle) support.
|
|
83
83
|
- importing deployments from external sources (like npm packages)
|
|
84
84
|
- ability to log information in `deploy` mode only (while in test the console remains clean).
|
|
85
85
|
- contains helpers to read and execute transaction on deployed contract referring to them by name.
|
|
86
|
-
- These helpers contains options to auto
|
|
86
|
+
- These helpers contains options to auto-mine on dev network (to speed up test deployments).
|
|
87
87
|
- save metadata of deployed contract so they can always be fully verified, via [sourcify](https://sourcify.dev) or [etherscan](https://etherscan.io).
|
|
88
88
|
- ability to submit contract source to etherscan and sourcify for verification at any time. (Because **hardhat-deploy** will save all the necessary info, it can be executed at any time.)
|
|
89
|
-
- support
|
|
90
|
-
- named accounts are automatically
|
|
89
|
+
- support hardhat's fork feature so deployment can be accessed even when run through fork.
|
|
90
|
+
- named accounts are automatically impersonated too, so you can perform tx as if you had their private key.
|
|
91
91
|
- proxy deployment with ability to upgrade them transparently, only if code changes.
|
|
92
92
|
- this include support for [openzeppelin](https://openzeppelin.com) transparent proxies
|
|
93
93
|
- diamond deployment with facets, allowing you to focus on what the new version will be. It will generate the diamondCut necessary to reach the new state.
|
|
@@ -119,13 +119,13 @@ This is optimized, so if multiple tests use the same contract, the deployment wi
|
|
|
119
119
|
|
|
120
120
|
This is a huge benefit for testing since you are not required to replicate the deployment procedure in your tests. The tag feature (as seen in the script above) and [dependencies](#deploy-scripts-tags-and-dependencies) will also make your life easier when writing complex deployment procedures.
|
|
121
121
|
|
|
122
|
-
You can even group deploy scripts in different sub
|
|
122
|
+
You can even group deploy scripts in different sub-folders and ensure they are executed in their logical order.
|
|
123
123
|
|
|
124
124
|
Furthermore hardhat-deploy can also support a multi-chain settings like L1, L2 with multiple deploy folder specific to each network.
|
|
125
125
|
|
|
126
|
-
**All of this can also be bundled in a npm package so
|
|
126
|
+
**All of this can also be bundled in a npm package so users of hardhat-deploy can reuse your deployment procedure and get started integrating with your project locally.**
|
|
127
127
|
|
|
128
|
-
There is a tutorial covering the basics here
|
|
128
|
+
There is a tutorial covering the basics here: https://github.com/wighawag/tutorial-hardhat-deploy
|
|
129
129
|
|
|
130
130
|
## Installation
|
|
131
131
|
|
|
@@ -143,7 +143,7 @@ require('hardhat-deploy');
|
|
|
143
143
|
|
|
144
144
|
if you use `ethers.js` we recommend you also install `hardhat-deploy-ethers` which add extra features to access deployments as ethers contract.
|
|
145
145
|
|
|
146
|
-
Since `hardhat-deploy-ethers` is a fork of `@nomiclabs/hardhat-ethers` and that other plugin might have
|
|
146
|
+
Since `hardhat-deploy-ethers` is a fork of `@nomiclabs/hardhat-ethers` and that other plugin might have a hardcoded dependency on `@nomiclabs/hardhat-ethers` the best way to install `hardhat-deploy-ethers` and ensure compatibility is the following:
|
|
147
147
|
|
|
148
148
|
```bash
|
|
149
149
|
npm install --save-dev @nomiclabs/hardhat-ethers@npm:hardhat-deploy-ethers ethers
|
|
@@ -151,7 +151,7 @@ npm install --save-dev @nomiclabs/hardhat-ethers@npm:hardhat-deploy-ethers ethe
|
|
|
151
151
|
|
|
152
152
|
Which means you then need to do `require("@nomiclabs/hardhat-ethers")` instead of `require("hardhat-deploy-ethers")` in your `hardhat.config.js` file.
|
|
153
153
|
|
|
154
|
-
More details on `hardhat-deploy-ethers` repo
|
|
154
|
+
More details on `hardhat-deploy-ethers` repo: https://github.com/wighawag/hardhat-deploy-ethers#readme
|
|
155
155
|
|
|
156
156
|
### TypeScript support
|
|
157
157
|
|
|
@@ -159,7 +159,7 @@ With hardhat the tsconfig.json is optional.
|
|
|
159
159
|
|
|
160
160
|
But if you add folders to the `include` field in `tsconfig.json`, you ll also need to include `hardhat.config.ts` like :
|
|
161
161
|
|
|
162
|
-
`include": ["./hardhat.config.ts", "./scripts", "./deploy", "./test"]`
|
|
162
|
+
`"include": ["./hardhat.config.ts", "./scripts", "./deploy", "./test"]`
|
|
163
163
|
|
|
164
164
|
for deploy script (see below) you can write them this way to benefit from typing :
|
|
165
165
|
|
|
@@ -173,13 +173,13 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
|
|
|
173
173
|
export default func;
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
-
See a template that uses **hardhat-deploy** here
|
|
176
|
+
See a template that uses **hardhat-deploy** here: https://github.com/wighawag/template-ethereum-contracts
|
|
177
177
|
|
|
178
|
-
This repo has also some examples branch that exemplify specific features, like the forking testing here
|
|
178
|
+
This repo has also some examples branch that exemplify specific features, like the forking testing here: https://github.com/wighawag/template-ethereum-contracts/tree/examples/fork-test
|
|
179
179
|
|
|
180
180
|
### Migrating existing deployment to hardhat-deploy
|
|
181
181
|
|
|
182
|
-
> Only needed for existing project that already deployed contracts and has the deployment information available **(at minimum, address and abi)**
|
|
182
|
+
> Only needed for an existing project that already deployed contracts and has the deployment information available **(at minimum, address and abi)**
|
|
183
183
|
|
|
184
184
|
You might want to switch your current deployment process to use **hardhat-deploy**. In that case you probably have some deployments saved elsewhere.
|
|
185
185
|
|
|
@@ -188,7 +188,7 @@ In order to port them to **hardhat-deploy**, you'll need to create one `.json` f
|
|
|
188
188
|
The network folder is simply the hardhat network name (as configured in hardhat.config.js) (accessible at runtime via `hre.network.name`).
|
|
189
189
|
Such folder need to have a file named `.chainId` containing the chainId as decimal.
|
|
190
190
|
|
|
191
|
-
For example for network named "rinkeby" (for the corresponding network) the file `deployments/rinkeby/.chainId` would be
|
|
191
|
+
For example for a network named "rinkeby" (for the corresponding network) the file `deployments/rinkeby/.chainId` would be
|
|
192
192
|
|
|
193
193
|
```
|
|
194
194
|
4
|
|
@@ -276,7 +276,7 @@ deployments/
|
|
|
276
276
|
The reason why **hardhat-deploy** save chainId in the `.chainId` file is both for
|
|
277
277
|
|
|
278
278
|
- safety: so that if you were to change the network name to point to a different chain, it would not attempt to read the wrong folder and assume that a contract has been deployed while it has not.
|
|
279
|
-
- ability to know the chainId without
|
|
279
|
+
- ability to know the chainId without requiring to be connected to a node (and so not dependent on hardhat.config.js settings). Useful for `export` task.
|
|
280
280
|
|
|
281
281
|
---
|
|
282
282
|
|
|
@@ -302,11 +302,11 @@ For further details on how to use it and write deploy script, see [section](#dep
|
|
|
302
302
|
|
|
303
303
|
#### **Options**
|
|
304
304
|
|
|
305
|
-
`--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your
|
|
305
|
+
`--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your front end.
|
|
306
306
|
|
|
307
307
|
`--export-all <filepath>`: export one file that contains all contracts across all saved deployments, regardless of the network being invoked.
|
|
308
308
|
|
|
309
|
-
`--tags <tags>`: only
|
|
309
|
+
`--tags <tags>`: only excutes deploy scripts with the given tags (separated by commas) and their dependencies (see more info [here](#deploy-scripts-tags-and-dependencies) about tags and dependencies)
|
|
310
310
|
|
|
311
311
|
`--gasprice <gasprice>`: specify the gasprice (in wei) to use by default for transactions executed via **hardhat-deploy** helpers in deploy scripts
|
|
312
312
|
|
|
@@ -316,9 +316,9 @@ For further details on how to use it and write deploy script, see [section](#dep
|
|
|
316
316
|
|
|
317
317
|
`--reset`: This flag resets the deployments from scratch. Previously deployed contract are not considered and deleted from disk.
|
|
318
318
|
|
|
319
|
-
`--silent`: This flag
|
|
319
|
+
`--silent`: This flag removes **hardhat-deploy** log output (see log function and log options for [`hre.deployments`](#the-deployments-field))
|
|
320
320
|
|
|
321
|
-
`--watch`: This flag make the task never
|
|
321
|
+
`--watch`: This flag make the task never-ending, watching for file changes in the deploy scripts folder and the contract source folder. If any changes happen the contracts are recompiled and the deploy script are re-run. Combined with a proxy deployment ([Proxies](#deploying-and-upgrading-proxies) or [Diamond](#builtin-in-support-for-diamonds-eip2535)) this allow to have HCR (Hot Contract Replacement).
|
|
322
322
|
|
|
323
323
|
---
|
|
324
324
|
|
|
@@ -332,11 +332,11 @@ It add similar options than the `deploy` task :
|
|
|
332
332
|
|
|
333
333
|
#### **Options**
|
|
334
334
|
|
|
335
|
-
`--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your
|
|
335
|
+
`--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your front end. If the extension ends in .ts it will generate a typescript file containing the contracts info.
|
|
336
336
|
|
|
337
337
|
`--export-all <filepath>`: export one file that contains all contracts across all saved deployment, regardless of the network being invoked. If the extension ends in .ts it will generate a typescript file containing the contracts info.
|
|
338
338
|
|
|
339
|
-
`--tags <tags>`: only
|
|
339
|
+
`--tags <tags>`: only excutes deploy scripts with the given tags (separated by commas) and their dependencies (see more info [here](#deploy-scripts-tags-and-dependencies) about tags and dependencies)
|
|
340
340
|
|
|
341
341
|
`--gasprice <gasprice>`: specify the gasprice to use by default for transactions executed via **hardhat-deploy** helpers in deploy scripts
|
|
342
342
|
|
|
@@ -348,9 +348,9 @@ It add similar options than the `deploy` task :
|
|
|
348
348
|
|
|
349
349
|
`--show-accounts`: this flag will output the account private keys
|
|
350
350
|
|
|
351
|
-
`--silent`: This flag
|
|
351
|
+
`--silent`: This flag removes **hardhat-deploy** log output (see log function and log options for [`hre.deployments`](#the-deployments-field))
|
|
352
352
|
|
|
353
|
-
`--watch`: This flag
|
|
353
|
+
`--watch`: This flag makes the task never-ending, watching for file changes in the deploy scripts folder and the contract source folder. If any changes happen the contracts are recompiled and the deploy script are re-run. Combined with a proxy deployment ([Proxies](#deploying-and-upgrading-proxies) or [Diamond](#builtin-in-support-for-diamonds-eip2535)) this allow to have HCR (Hot Contract Replacement).
|
|
354
354
|
|
|
355
355
|
`--no-deploy` that discard all other options to revert to normal `hardhat node` behavior without any deployment being performed.
|
|
356
356
|
|
|
@@ -362,7 +362,7 @@ It add similar options than the `deploy` task :
|
|
|
362
362
|
|
|
363
363
|
---
|
|
364
364
|
|
|
365
|
-
This plugin adds a flag argument `--deploy-fixture` to the _test_ task which if enabled will run the global deployments fixture before the tests and snapshots it. This will
|
|
365
|
+
This plugin adds a flag argument `--deploy-fixture` to the _test_ task which if enabled will run the global deployments fixture before the tests and snapshots it. This will generally speed up the tests as further test will be able to revert back to the full deployment.
|
|
366
366
|
|
|
367
367
|
> :warning: Note though that if your test behave differently whether that option is on or not, this most likely mean that your deploy scripts' tags and dependencies are not configured correctly. This is because the global fixture will ensure all contract are deployed while test will usually (for efficiency) ask for a particular tag.
|
|
368
368
|
|
|
@@ -468,7 +468,7 @@ One of the following options need to be set for this task to have any effects :
|
|
|
468
468
|
|
|
469
469
|
#### **Options**
|
|
470
470
|
|
|
471
|
-
`--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your
|
|
471
|
+
`--export <filepath>`: export one file that contains all contracts (address, abi + extra data) for the network being invoked. The file contains the minimal information so to not bloat your front end. If the extension ends in .ts it will generate a typescript file containing the contracts info.
|
|
472
472
|
|
|
473
473
|
`--export-all <filepath>`: export one file that contains all contracts across all saved deployment, regardless of the network being invoked. If the extension ends in .ts it will generate a typescript file containing the contracts info.
|
|
474
474
|
|
|
@@ -549,7 +549,7 @@ this tell whether **hardhat-deploy** should save the deployments to disk or not.
|
|
|
549
549
|
|
|
550
550
|
network can have tags to represent them. The config is an array and at runtime the hre.network.tags is an object whose fields (the tags) are set to true.
|
|
551
551
|
|
|
552
|
-
This is useful to
|
|
552
|
+
This is useful to conditionally operate on network based on their use case.
|
|
553
553
|
|
|
554
554
|
Example:
|
|
555
555
|
|
|
@@ -622,7 +622,7 @@ By using name you can have the same deploy script used in different set of netwo
|
|
|
622
622
|
|
|
623
623
|
For your test you could have the companion networks pointing to the same hardhat network, for test deployment, you could have rinkeby acting like your l2 while goerli act as your l1.
|
|
624
624
|
|
|
625
|
-
An example repo that show case a multi-network setup with optimism can be found here
|
|
625
|
+
An example repo that show case a multi-network setup with optimism can be found here: https://github.com/wighawag/template-ethereum-contracts/tree/examples/optimism
|
|
626
626
|
|
|
627
627
|
deploy script can then access the network and its deployment as follow :
|
|
628
628
|
|
|
@@ -754,7 +754,7 @@ The `contracts` field specify an array of object which itself have 2 fields.
|
|
|
754
754
|
- `artifacts`: (mandatory) it is a path to an artifact folder. This support both hardhat and truffle artifacts.
|
|
755
755
|
- `deploy`: (optional) it specifies a path to a folder where reside deploy script. The deploy scripts have only access to the artifact specified in the artifacts field. This allow project to share their deployment procedure. A boon for developer aiming at integrating it as they can get the contracts to be deployed for testing locally.
|
|
756
756
|
|
|
757
|
-
The `deployments` fields specify an object whose field
|
|
757
|
+
The `deployments` fields specify an object whose field names are the hardhat network and the value is an array of path to look for deployments. It supports both **hardhat-deploy** and truffle formats.
|
|
758
758
|
|
|
759
759
|
---
|
|
760
760
|
|
|
@@ -1144,7 +1144,7 @@ module.exports = async ({getNamedAccounts, deployments, getChainId}) => {
|
|
|
1144
1144
|
};
|
|
1145
1145
|
```
|
|
1146
1146
|
|
|
1147
|
-
Note that for the second
|
|
1147
|
+
Note that for the second invocation, this deployment will not be executed from the specified `from: deployer` as otherwise these tx will always fails. It will instead be automatically executed from the proxy's current owner (in that case : `greeterOwner`)
|
|
1148
1148
|
|
|
1149
1149
|
Now, it is likely you do not want to locally handle the private key / mnemonic of the account that manage the proxy or it could even be that the `greeterOwner` in question is a multi sig. As such that second invocation will throw an error as it cannot find a local signer for it.
|
|
1150
1150
|
|
|
@@ -1175,7 +1175,7 @@ The full proxy options is as follow:
|
|
|
1175
1175
|
```ts
|
|
1176
1176
|
type ProxyOptionsBase = {
|
|
1177
1177
|
owner?: Address; // this set the owner of the proxy. further upgrade will need to be executed from that owner
|
|
1178
|
-
upgradeIndex?: number; // allow you to breakdown your upgrades into separate deploy
|
|
1178
|
+
upgradeIndex?: number; // allow you to breakdown your upgrades into separate deploy script, each with their own index. A deploy call with a specific upgradeIndex will be executed only once, only if the current upgradeIndex is one less.
|
|
1179
1179
|
proxyContract?: // default to "EIP173Proxy". See below for more details
|
|
1180
1180
|
string | ArtifactData;
|
|
1181
1181
|
viaAdminContract?: // allow to specify a contract that act as a middle man to perform upgrades. Useful and Recommended for Transparent Proxies
|
|
@@ -1218,7 +1218,7 @@ it matches:
|
|
|
1218
1218
|
- `EIP173ProxyWithReceive`: Same as above except that the proxy contains a receive hook to accept empty ETH payment.
|
|
1219
1219
|
|
|
1220
1220
|
- `OpenZeppelinTransparentProxy`: Use Openzeppelin Transparent Proxy (copied from openzeppelin repo, see code [here](solc_0.7/openzeppelin/proxy/TransparentUpgradeableProxy.sol))
|
|
1221
|
-
When this option is chosen, the `DefaultProxyAdmin` is also used as admin since Transparent Proxy kind of need an
|
|
1221
|
+
When this option is chosen, the `DefaultProxyAdmin` is also used as admin since Transparent Proxy kind of need an intermediary contract for administration. This can be configured via the `viaAdminContract` option. Note that the DefaultProxyAdmin is slightly different than the one used by openzeppelin as it allow you to set a different owner than msg.sender on first deploy, something openzeppelin version do not allow, see : https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2639
|
|
1222
1222
|
|
|
1223
1223
|
- `OptimizedTransparentProxy`: This contract is similar to above, except that it is optimized to not require storage read for the admin on every call.
|
|
1224
1224
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeploymentsManager.d.ts","sourceRoot":"","sources":["../../src/DeploymentsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,EACV,oBAAoB,EAEpB,oBAAoB,EAGrB,MAAM,UAAU,CAAC;AAOlB,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAiBnD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAW,yBAAyB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAG3E,qBAAa,kBAAkB;IACtB,oBAAoB,EAAE,oBAAoB,CAAC;IAElD,OAAO,CAAC,EAAE,CA4BR;IAEF,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,eAAe,CAAS;IAEzB,0BAA0B,EAAE,OAAO,CAAC;IACpC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,EAAE;QAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAM;IAE7D,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,KAAK,CA4BX;gBAEU,GAAG,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO;IA+S5D,OAAO,CAAC,eAAe,CAAS;IACzB,YAAY,IAAI,IAAI;IAiB3B,OAAO,CAAC,QAAQ,CAAqB;IACxB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAuBnC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3B,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC5C,WAAW,CACtB,EAAE,EAAE,mBAAmB,EACvB,IAAI,CAAC,EAAE,MAAM,EAEb,UAAU,CAAC,EAAE,GAAG,GACf,OAAO,CAAC,mBAAmB,CAAC;IAmElB,gBAAgB,IAAI,OAAO,CAAC;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IAKrD,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAKtC,8BAA8B;IAQ/B,wCAAwC,IAAI,OAAO,CAAC,MAAM,CAAC;IAK3D,yCAAyC,IAAI,OAAO,CAAC,MAAM,CAAC;IAK5D,wCAAwC,IAAI,OAAO,CAAC,SAAS,CAAC;IAK9D,6CAA6C,IAAI,OAAO,CAAC,MAAM,CAAC;IAQhE,eAAe,CAC1B,eAAe,UAAO,GACrB,OAAO,CAAC;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAAC,CAAC;IA+C3B,yBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,gBAAgB,IAAI,MAAM;IAQpB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB1C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB1C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BzD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7C,cAAc,CACzB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DeploymentsManager.d.ts","sourceRoot":"","sources":["../../src/DeploymentsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const bignumber_1 = require("@ethersproject/bignumber");
|
|
10
10
|
const debug_1 = __importDefault(require("debug"));
|
|
11
|
-
const log =
|
|
11
|
+
const log = debug_1.default('hardhat:wighawag:hardhat-deploy');
|
|
12
12
|
const utils_1 = require("./utils");
|
|
13
13
|
const helpers_1 = require("./helpers");
|
|
14
14
|
const globalStore_1 = require("./globalStore");
|
|
@@ -78,20 +78,20 @@ class DeploymentsManager {
|
|
|
78
78
|
},
|
|
79
79
|
getArtifact: async (contractName) => {
|
|
80
80
|
if (this.db.onlyArtifacts) {
|
|
81
|
-
const artifactFromFolder = await
|
|
81
|
+
const artifactFromFolder = await utils_1.getArtifactFromFolders(contractName, this.db.onlyArtifacts);
|
|
82
82
|
if (!artifactFromFolder) {
|
|
83
83
|
throw new Error(`cannot find artifact "${contractName}" from folder ${this.db.onlyArtifacts}`);
|
|
84
84
|
}
|
|
85
85
|
return artifactFromFolder;
|
|
86
86
|
}
|
|
87
|
-
let artifact = await
|
|
87
|
+
let artifact = await utils_1.getArtifactFromFolders(contractName, [
|
|
88
88
|
this.env.config.paths.artifacts,
|
|
89
89
|
]);
|
|
90
90
|
if (artifact) {
|
|
91
91
|
return artifact;
|
|
92
92
|
}
|
|
93
93
|
const importPaths = this.getImportPaths();
|
|
94
|
-
artifact = await
|
|
94
|
+
artifact = await utils_1.getArtifactFromFolders(contractName, importPaths);
|
|
95
95
|
if (!artifact) {
|
|
96
96
|
throw new Error(`cannot find artifact "${contractName}"`);
|
|
97
97
|
}
|
|
@@ -99,20 +99,20 @@ class DeploymentsManager {
|
|
|
99
99
|
},
|
|
100
100
|
getExtendedArtifact: async (contractName) => {
|
|
101
101
|
if (this.db.onlyArtifacts) {
|
|
102
|
-
const artifactFromFolder = await
|
|
102
|
+
const artifactFromFolder = await utils_1.getExtendedArtifactFromFolders(contractName, this.db.onlyArtifacts);
|
|
103
103
|
if (!artifactFromFolder) {
|
|
104
104
|
throw new Error(`cannot find artifact "${contractName}" from folder ${this.db.onlyArtifacts}`);
|
|
105
105
|
}
|
|
106
106
|
return artifactFromFolder;
|
|
107
107
|
}
|
|
108
|
-
let artifact = await
|
|
108
|
+
let artifact = await utils_1.getExtendedArtifactFromFolders(contractName, [
|
|
109
109
|
this.env.config.paths.artifacts,
|
|
110
110
|
]);
|
|
111
111
|
if (artifact) {
|
|
112
112
|
return artifact;
|
|
113
113
|
}
|
|
114
114
|
const importPaths = this.getImportPaths();
|
|
115
|
-
artifact = await
|
|
115
|
+
artifact = await utils_1.getExtendedArtifactFromFolders(contractName, importPaths);
|
|
116
116
|
if (artifact) {
|
|
117
117
|
return artifact;
|
|
118
118
|
}
|
|
@@ -214,7 +214,7 @@ class DeploymentsManager {
|
|
|
214
214
|
}
|
|
215
215
|
};
|
|
216
216
|
log('adding helpers');
|
|
217
|
-
const helpers =
|
|
217
|
+
const helpers = helpers_1.addHelpers(this, this.partialExtension, this.network, this.partialExtension.getArtifact, async (name, deployment, artifactName) => {
|
|
218
218
|
if (artifactName &&
|
|
219
219
|
this.db.writeDeploymentsToFiles &&
|
|
220
220
|
this.network.saveDeployments) {
|
|
@@ -401,14 +401,14 @@ class DeploymentsManager {
|
|
|
401
401
|
this.db.migrations = migrations;
|
|
402
402
|
// console.log({ migrations: this.db.migrations });
|
|
403
403
|
const networkName = this.getDeploymentNetworkName();
|
|
404
|
-
|
|
404
|
+
utils_1.addDeployments(this.db, this.deploymentsPath, this.deploymentFolder(), networkName === this.network.name ? chainId : undefined // fork mode, we do not care about chainId ?
|
|
405
405
|
);
|
|
406
406
|
const extraDeploymentPaths = this.env.config.external &&
|
|
407
407
|
this.env.config.external.deployments &&
|
|
408
408
|
this.env.config.external.deployments[networkName];
|
|
409
409
|
if (extraDeploymentPaths) {
|
|
410
410
|
for (const deploymentFolderPath of extraDeploymentPaths) {
|
|
411
|
-
|
|
411
|
+
utils_1.addDeployments(this.db, deploymentFolderPath, '', undefined, chainId);
|
|
412
412
|
}
|
|
413
413
|
}
|
|
414
414
|
this.db.deploymentsLoaded = true;
|
|
@@ -416,7 +416,7 @@ class DeploymentsManager {
|
|
|
416
416
|
}
|
|
417
417
|
async deletePreviousDeployments(folderPath) {
|
|
418
418
|
folderPath = folderPath || this.deploymentFolder();
|
|
419
|
-
|
|
419
|
+
utils_1.deleteDeployments(this.deploymentsPath, folderPath);
|
|
420
420
|
}
|
|
421
421
|
getSolcInputPath() {
|
|
422
422
|
return path_1.default.join(this.deploymentsPath, this.deploymentFolder(), 'solcInputs');
|
|
@@ -473,7 +473,7 @@ class DeploymentsManager {
|
|
|
473
473
|
}
|
|
474
474
|
}
|
|
475
475
|
async saveDeployment(name, deployment) {
|
|
476
|
-
var _a, _b;
|
|
476
|
+
var _a, _b, _c;
|
|
477
477
|
if (name.includes('/') || name.includes(':')) {
|
|
478
478
|
throw new Error(`deployment name must not be a path or Fully Qualified Name - for such purposes consider using the "contract" field of deployment options`);
|
|
479
479
|
}
|
|
@@ -568,11 +568,14 @@ class DeploymentsManager {
|
|
|
568
568
|
methodIdentifiers: deployment.methodIdentifiers,
|
|
569
569
|
gasEstimates: deployment.gasEstimates, // TODO double check : use evm field ?
|
|
570
570
|
}));
|
|
571
|
+
if ((_c = deployment.factoryDeps) === null || _c === void 0 ? void 0 : _c.length) {
|
|
572
|
+
obj.factoryDeps = deployment.factoryDeps;
|
|
573
|
+
}
|
|
571
574
|
this.db.deployments[name] = obj;
|
|
572
575
|
if (obj.address === undefined && obj.transactionHash !== undefined) {
|
|
573
576
|
let receiptFetched;
|
|
574
577
|
try {
|
|
575
|
-
receiptFetched = await
|
|
578
|
+
receiptFetched = await helpers_1.waitForTx(this.network.provider, obj.transactionHash, true);
|
|
576
579
|
// TODO add receipt ?
|
|
577
580
|
obj.address = receiptFetched.contractAddress;
|
|
578
581
|
if (!obj.address) {
|
|
@@ -694,7 +697,7 @@ class DeploymentsManager {
|
|
|
694
697
|
}
|
|
695
698
|
}
|
|
696
699
|
}
|
|
697
|
-
const deployPaths =
|
|
700
|
+
const deployPaths = utils_1.getDeployPaths(this.network);
|
|
698
701
|
await this.executeDeployScripts(deployPaths, tags);
|
|
699
702
|
await this.export(options);
|
|
700
703
|
return this.db.deployments;
|
|
@@ -705,7 +708,7 @@ class DeploymentsManager {
|
|
|
705
708
|
// This is currently posing problem for network like optimism which require a different set of artifact and hardhat currently only expose one set at a time
|
|
706
709
|
let filepaths;
|
|
707
710
|
try {
|
|
708
|
-
filepaths =
|
|
711
|
+
filepaths = utils_1.traverseMultipleDirectory(deployScriptsPaths);
|
|
709
712
|
}
|
|
710
713
|
catch (e) {
|
|
711
714
|
return;
|
|
@@ -899,7 +902,7 @@ class DeploymentsManager {
|
|
|
899
902
|
}
|
|
900
903
|
if (options.exportAll !== undefined) {
|
|
901
904
|
log('load all deployments for export-all');
|
|
902
|
-
const all =
|
|
905
|
+
const all = utils_1.loadAllDeployments(this.env, this.deploymentsPath, true, this.env.config.external && this.env.config.external.deployments);
|
|
903
906
|
const currentNetworkDeployments = {};
|
|
904
907
|
const currentDeployments = this.db.deployments;
|
|
905
908
|
for (const contractName of Object.keys(currentDeployments)) {
|
|
@@ -1055,13 +1058,13 @@ class DeploymentsManager {
|
|
|
1055
1058
|
this.impersonateUnknownAccounts = false;
|
|
1056
1059
|
}
|
|
1057
1060
|
getNetworkName() {
|
|
1058
|
-
return
|
|
1061
|
+
return utils_1.getNetworkName(this.network);
|
|
1059
1062
|
}
|
|
1060
1063
|
getDeploymentNetworkName() {
|
|
1061
1064
|
if (this.db.runAsNode) {
|
|
1062
1065
|
return 'localhost';
|
|
1063
1066
|
}
|
|
1064
|
-
return
|
|
1067
|
+
return utils_1.getNetworkName(this.network);
|
|
1065
1068
|
}
|
|
1066
1069
|
deploymentFolder() {
|
|
1067
1070
|
return this.getDeploymentNetworkName();
|
|
@@ -1087,7 +1090,7 @@ class DeploymentsManager {
|
|
|
1087
1090
|
if (!this.db.accountsLoaded) {
|
|
1088
1091
|
const chainId = await this.getChainId();
|
|
1089
1092
|
const accounts = await this.network.provider.send('eth_accounts');
|
|
1090
|
-
const { namedAccounts, unnamedAccounts, unknownAccounts, addressesToProtocol, } =
|
|
1093
|
+
const { namedAccounts, unnamedAccounts, unknownAccounts, addressesToProtocol, } = utils_1.processNamedAccounts(this.network, this.env.config.namedAccounts, accounts, chainId); // TODO pass in network name
|
|
1091
1094
|
await this.impersonateAccounts(unknownAccounts);
|
|
1092
1095
|
this.db.namedAccounts = namedAccounts;
|
|
1093
1096
|
this.db.unnamedAccounts = unnamedAccounts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeploymentsManager.js","sourceRoot":"","sources":["../../src/DeploymentsManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DeploymentsManager.js","sourceRoot":"","sources":["../../src/DeploymentsManager.ts"],"names":[],"mappings":"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"}
|