hardhat-deploy 0.11.26 → 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 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** : https://github.com/wighawag/template-ethereum-contracts
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 ?](#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 webapps)
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 artifact from external sources (like npm packages), including [truffle](https://www.trufflesuite.com/truffle) support.
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 mine on dev network (to speed up test deployments).
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 harhdat's fork feature so deployment can be accessed even when run through fork.
90
- - named accounts are automatically impersonnated too, so you can perform tx as if you had their private key.
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 folder and ensure they are executed in their logical order.
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 user of hardhat-deploy can reuse your deployment procedure and get started integrating with your project locally.**
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 : https://github.com/wighawag/tutorial-hardhat-deploy
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 an hardcoded dependency on `@nomiclabs/hardhat-ethers` the best way to install `hardhat-deploy-ethers` and ensure compatibility is the following:
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 : https://github.com/wighawag/hardhat-deploy-ethers#readme
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 : https://github.com/wighawag/template-ethereum-contracts
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 : https://github.com/wighawag/template-ethereum-contracts/tree/examples/fork-test
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 requring to be connected to a node (and so not dependent on hardhat.config.js settings). Useful for `export` task.
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 frontend.
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 excute 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)
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 remove **hardhat-deploy** log output (see log function and log options for [`hre.deployments`](#the-deployments-field))
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 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).
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 frontend. If the extension ends in .ts it will generate a typescript file containing the contracts info.
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 excute 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)
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 remove **hardhat-deploy** log output (see log function and log options for [`hre.deployments`](#the-deployments-field))
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 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).
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 generaly speed up the tests as further test will be able to revert back to the full deployment.
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 frontend. If the extension ends in .ts it will generate a typescript file containing the contracts info.
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 conidtionaly operate on network based on their use case.
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 : https://github.com/wighawag/template-ethereum-contracts/tree/examples/optimism
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
 
@@ -1144,7 +1144,7 @@ module.exports = async ({getNamedAccounts, deployments, getChainId}) => {
1144
1144
  };
1145
1145
  ```
1146
1146
 
1147
- Note that for the second invokation, 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`)
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 scriot, 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.
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 intermediarry 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
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":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAGL,oBAAoB,EAKpB,OAAO,EAKP,oBAAoB,EAMrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAiBlD,OAAO,EAAC,QAAQ,EAAE,gBAAgB,EAAU,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAiKxD,wBAAgB,UAAU,CACxB,iBAAiB,EAAE,kBAAkB,EACrC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,GAAG,EAAE,kCAAkC;AAChD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,EAChD,cAAc,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,oBAAoB,EAChC,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,EAClB,cAAc,EAAE,MAAM,OAAO,EAC7B,WAAW,EAAE,CACX,UAAU,EAAE,mBAAmB,EAC/B,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,GAAG,KACP,OAAO,CAAC,mBAAmB,CAAC,EACjC,WAAW,EAAE,MAAM,OAAO,CAAC;IACzB,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC;CAC7C,CAAC,EACF,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC3B;IACD,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE;QACL,2BAA2B,EAAE,CAC3B,UAAU,EAAE;YACV,CAAC,MAAM,EAAE,MAAM,GAAG;gBAChB,IAAI,EAAE,MAAM,CAAC;gBACb,UAAU,CAAC,EAAE,GAAG,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,CAAC;oBACb,QAAQ,CAAC,EAAE,MAAM,CAAC;oBAClB,YAAY,CAAC,EAAE,MAAM,CAAC;oBACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;oBAC9B,QAAQ,EAAE,MAAM,CAAC;oBACjB,EAAE,EAAE,MAAM,CAAC;oBACX,KAAK,EAAE,MAAM,CAAC;oBACd,KAAK,EAAE,MAAM,CAAC;oBACd,IAAI,EAAE,MAAM,CAAC;oBACb,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBAEV,OAAO,EAAE,MAAM,CAAC;iBACjB,CAAC;aACH,CAAC;SACH,EACD,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAAG,SAAS,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB,CAAC;CACH,CA4mGA;AAMD,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAGL,oBAAoB,EAKpB,OAAO,EAKP,oBAAoB,EAMrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAiBlD,OAAO,EAAC,QAAQ,EAAE,gBAAgB,EAAU,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAuLxD,wBAAgB,UAAU,CACxB,iBAAiB,EAAE,kBAAkB,EACrC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,GAAG,EAAE,kCAAkC;AAChD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,EAChD,cAAc,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,oBAAoB,EAChC,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,EAClB,cAAc,EAAE,MAAM,OAAO,EAC7B,WAAW,EAAE,CACX,UAAU,EAAE,mBAAmB,EAC/B,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,GAAG,KACP,OAAO,CAAC,mBAAmB,CAAC,EACjC,WAAW,EAAE,MAAM,OAAO,CAAC;IACzB,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC;CAC7C,CAAC,EACF,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC3B;IACD,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE;QACL,2BAA2B,EAAE,CAC3B,UAAU,EAAE;YACV,CAAC,MAAM,EAAE,MAAM,GAAG;gBAChB,IAAI,EAAE,MAAM,CAAC;gBACb,UAAU,CAAC,EAAE,GAAG,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,CAAC;oBACb,QAAQ,CAAC,EAAE,MAAM,CAAC;oBAClB,YAAY,CAAC,EAAE,MAAM,CAAC;oBACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;oBAC9B,QAAQ,EAAE,MAAM,CAAC;oBACjB,EAAE,EAAE,MAAM,CAAC;oBACX,KAAK,EAAE,MAAM,CAAC;oBACd,KAAK,EAAE,MAAM,CAAC;oBACd,IAAI,EAAE,MAAM,CAAC;oBACb,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBAEV,OAAO,EAAE,MAAM,CAAC;iBACjB,CAAC;aACH,CAAC;SACH,EACD,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAAG,SAAS,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB,CAAC;CACH,CA2lGA;AAMD,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
@@ -51,7 +51,25 @@ const DiamondLoupeFacet_json_1 = __importDefault(require("../extendedArtifacts/D
51
51
  const OwnershipFacet_json_1 = __importDefault(require("../extendedArtifacts/OwnershipFacet.json"));
52
52
  const enquirer_1 = __importDefault(require("enquirer"));
53
53
  const transactions_1 = require("@ethersproject/transactions");
54
- let LedgerSigner; // TODO type
54
+ let ledgerSigner;
55
+ function ledgerSignerFactory(provider, path) {
56
+ try {
57
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
58
+ const hardwareWalletModule = require('@ethersproject/hardware-wallets');
59
+ return new hardwareWalletModule.LedgerSigner(provider, 'default', path);
60
+ }
61
+ catch (_) {
62
+ try {
63
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
64
+ const hardwareWalletModule = require('@anders-t/ethers-ledger');
65
+ return new hardwareWalletModule.LedgerSigner(provider, path);
66
+ }
67
+ catch (e) {
68
+ console.error(`failed to loader hardhware wallet module for ledger, you can either use "@ethersproject/hardware-wallets" which as time of writing does not work or use "@anders-t/ethers-ledger."`);
69
+ throw e;
70
+ }
71
+ }
72
+ }
55
73
  async function handleSpecificErrors(p) {
56
74
  let result;
57
75
  try {
@@ -1153,32 +1171,12 @@ Note that in this case, the contract deployment will not behave the same if depl
1153
1171
  };
1154
1172
  hardwareWallet = 'external';
1155
1173
  }
1156
- else if (registeredProtocol === 'ledger') {
1157
- if (!LedgerSigner) {
1158
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1159
- let error;
1160
- try {
1161
- // eslint-disable-next-line @typescript-eslint/no-var-requires
1162
- const hardwareWalletModule = require('@ethersproject/hardware-wallets');
1163
- LedgerSigner = hardwareWalletModule.LedgerSigner;
1164
- }
1165
- catch (e) {
1166
- error = e;
1167
- try {
1168
- // eslint-disable-next-line @typescript-eslint/no-var-requires
1169
- const hardwareWalletModule = require('@anders-t/ethers-ledger');
1170
- LedgerSigner = hardwareWalletModule.LedgerSigner;
1171
- error = undefined;
1172
- }
1173
- catch (e) { }
1174
- }
1175
- if (error) {
1176
- console.error(`failed to loader hardhware wallet module for ledger, you can either use "@ethersproject/hardware-wallets" which as time of writing does not work or use "@anders-t/ethers-ledger."`);
1177
- throw error;
1178
- }
1174
+ else if (registeredProtocol.startsWith('ledger')) {
1175
+ if (!ledgerSigner) {
1176
+ ledgerSigner = ledgerSignerFactory(provider, registeredProtocol.substr(9));
1179
1177
  }
1180
- ethersSigner = new LedgerSigner(provider);
1181
1178
  hardwareWallet = 'ledger';
1179
+ ethersSigner = ledgerSigner;
1182
1180
  }
1183
1181
  else if (registeredProtocol.startsWith('privatekey')) {
1184
1182
  ethersSigner = new wallet_1.Wallet(registeredProtocol.substr(13), provider);
@@ -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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,OAAO,EAAC,QAAQ,EAAE,yBAAyB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAS,gBAAgB,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AAG/D,OAAO,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAC;AAqBxD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAqBlD;AAOD,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAwCvC;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,yBAAyB,EAC9B,eAAe,EAAE,MAAM,EACvB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,mBAAmB,CAAC,EAAE;IAAC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAC,GACtD,WAAW,CA6Eb;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,IAAI,CAGN;AAoFD,wBAAgB,cAAc,CAE5B,EAAE,EAAE,GAAG,EACP,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,IAAI,CAgBN;AAqJD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE;IACb,CAAC,IAAI,EAAE,MAAM,GACT,MAAM,GACN,MAAM,GACN;QAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CACjD,EACD,QAAQ,EAAE,MAAM,EAAE,EAClB,YAAY,EAAE,MAAM,GACnB;IACD,aAAa,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE;QAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CAClD,CAgBA;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAUlE;AAED,eAAO,MAAM,QAAQ,QACd,MAAM,WACH,GAAG,EAAE,gDAEG,MAAM,SAAS,GAAG,KAAK,OAAO,kBAC7C,MAAM;IACP,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB,CAoBA,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQvD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAOzD;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,GAAG,EAAE,EAAE,EACb,OAAO,EAAE;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,qBAAqB,EAAE,OAAO,CAAA;CAAC,GACxD,GAAG,EAAE,CA2DP;AAGD,wBAAgB,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAqBhD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,OAAO,EAAC,QAAQ,EAAE,yBAAyB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAS,gBAAgB,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AAG/D,OAAO,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAC;AAqBxD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAqBlD;AAOD,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAwCvC;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,yBAAyB,EAC9B,eAAe,EAAE,MAAM,EACvB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,mBAAmB,CAAC,EAAE;IAAC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAC,GACtD,WAAW,CA6Eb;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,IAAI,CAGN;AAoFD,wBAAgB,cAAc,CAE5B,EAAE,EAAE,GAAG,EACP,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,IAAI,CAgBN;AA6JD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE;IACb,CAAC,IAAI,EAAE,MAAM,GACT,MAAM,GACN,MAAM,GACN;QAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CACjD,EACD,QAAQ,EAAE,MAAM,EAAE,EAClB,YAAY,EAAE,MAAM,GACnB;IACD,aAAa,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE;QAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CAClD,CAgBA;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAUlE;AAED,eAAO,MAAM,QAAQ,QACd,MAAM,WACH,GAAG,EAAE,gDAEG,MAAM,SAAS,GAAG,KAAK,OAAO,kBAC7C,MAAM;IACP,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB,CAoBA,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQvD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAOzD;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,GAAG,EAAE,EAAE,EACb,OAAO,EAAE;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,qBAAqB,EAAE,OAAO,CAAA;CAAC,GACxD,GAAG,EAAE,CA2DP;AAGD,wBAAgB,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAqBhD"}
package/dist/src/utils.js CHANGED
@@ -280,9 +280,16 @@ function transformNamedAccounts(configNamedAccounts, chainIdGiven, accounts, net
280
280
  // knownAccountsDict[address.toLowerCase()] = true; // TODO ? this would prevent auto impersonation in fork/test
281
281
  }
282
282
  else if (protocolSplit[0].toLowerCase() === 'ledger') {
283
- address = protocolSplit[1];
284
- addressesToProtocol[address.toLowerCase()] =
285
- protocolSplit[0].toLowerCase();
283
+ const addressSplit = protocolSplit[1].split(':');
284
+ if (addressSplit.length > 1) {
285
+ address = addressSplit[1];
286
+ addressesToProtocol[address.toLowerCase()] = `ledger://${addressSplit[0]}`;
287
+ }
288
+ else {
289
+ address = protocolSplit[1];
290
+ addressesToProtocol[address.toLowerCase()] =
291
+ "ledger://m/44'/60'/0'/0/0";
292
+ }
286
293
  // knownAccountsDict[address.toLowerCase()] = true; // TODO ? this would prevent auto impersonation in fork/test
287
294
  }
288
295
  else if (protocolSplit[0].toLowerCase() === 'privatekey') {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat-deploy",
3
- "version": "0.11.26",
3
+ "version": "0.11.27",
4
4
  "description": "Hardhat Plugin For Replicable Deployments And Tests",
5
5
  "repository": "github:wighawag/hardhat-deploy",
6
6
  "author": "wighawag",
package/src/helpers.ts CHANGED
@@ -63,7 +63,29 @@ import {
63
63
  Transaction,
64
64
  } from '@ethersproject/transactions';
65
65
 
66
- let LedgerSigner: any; // TODO type
66
+ let ledgerSigner: Signer;
67
+
68
+ function ledgerSignerFactory(
69
+ provider: Web3Provider | zk.Web3Provider,
70
+ path: string
71
+ ): Signer {
72
+ try {
73
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
74
+ const hardwareWalletModule = require('@ethersproject/hardware-wallets');
75
+ return new hardwareWalletModule.LedgerSigner(provider, 'default', path);
76
+ } catch (_) {
77
+ try {
78
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
79
+ const hardwareWalletModule = require('@anders-t/ethers-ledger');
80
+ return new hardwareWalletModule.LedgerSigner(provider, path);
81
+ } catch (e) {
82
+ console.error(
83
+ `failed to loader hardhware wallet module for ledger, you can either use "@ethersproject/hardware-wallets" which as time of writing does not work or use "@anders-t/ethers-ledger."`
84
+ );
85
+ throw e;
86
+ }
87
+ }
88
+ }
67
89
 
68
90
  async function handleSpecificErrors<T>(p: Promise<T>): Promise<T> {
69
91
  let result: T;
@@ -1762,33 +1784,16 @@ Note that in this case, the contract deployment will not behave the same if depl
1762
1784
  return provider.getTransaction(response.hash);
1763
1785
  };
1764
1786
  hardwareWallet = 'external';
1765
- } else if (registeredProtocol === 'ledger') {
1766
- if (!LedgerSigner) {
1767
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1768
- let error: any | undefined;
1769
- try {
1770
- // eslint-disable-next-line @typescript-eslint/no-var-requires
1771
- const hardwareWalletModule = require('@ethersproject/hardware-wallets');
1772
- LedgerSigner = hardwareWalletModule.LedgerSigner;
1773
- } catch (e) {
1774
- error = e;
1775
- try {
1776
- // eslint-disable-next-line @typescript-eslint/no-var-requires
1777
- const hardwareWalletModule = require('@anders-t/ethers-ledger');
1778
- LedgerSigner = hardwareWalletModule.LedgerSigner;
1779
- error = undefined;
1780
- } catch (e) {}
1781
- }
1782
-
1783
- if (error) {
1784
- console.error(
1785
- `failed to loader hardhware wallet module for ledger, you can either use "@ethersproject/hardware-wallets" which as time of writing does not work or use "@anders-t/ethers-ledger."`
1786
- );
1787
- throw error;
1788
- }
1787
+ } else if (registeredProtocol.startsWith('ledger')) {
1788
+ if (!ledgerSigner) {
1789
+ ledgerSigner = ledgerSignerFactory(
1790
+ provider,
1791
+ registeredProtocol.substr(9)
1792
+ );
1789
1793
  }
1790
- ethersSigner = new LedgerSigner(provider);
1794
+
1791
1795
  hardwareWallet = 'ledger';
1796
+ ethersSigner = ledgerSigner;
1792
1797
  } else if (registeredProtocol.startsWith('privatekey')) {
1793
1798
  ethersSigner = new Wallet(registeredProtocol.substr(13), provider);
1794
1799
  } else if (registeredProtocol.startsWith('gnosis')) {
package/src/utils.ts CHANGED
@@ -341,9 +341,17 @@ function transformNamedAccounts(
341
341
  protocolSplit[0].toLowerCase();
342
342
  // knownAccountsDict[address.toLowerCase()] = true; // TODO ? this would prevent auto impersonation in fork/test
343
343
  } else if (protocolSplit[0].toLowerCase() === 'ledger') {
344
- address = protocolSplit[1];
345
- addressesToProtocol[address.toLowerCase()] =
346
- protocolSplit[0].toLowerCase();
344
+ const addressSplit = protocolSplit[1].split(':');
345
+ if (addressSplit.length > 1) {
346
+ address = addressSplit[1];
347
+ addressesToProtocol[
348
+ address.toLowerCase()
349
+ ] = `ledger://${addressSplit[0]}`;
350
+ } else {
351
+ address = protocolSplit[1];
352
+ addressesToProtocol[address.toLowerCase()] =
353
+ "ledger://m/44'/60'/0'/0/0";
354
+ }
347
355
  // knownAccountsDict[address.toLowerCase()] = true; // TODO ? this would prevent auto impersonation in fork/test
348
356
  } else if (protocolSplit[0].toLowerCase() === 'privatekey') {
349
357
  address = new Wallet(protocolSplit[1]).address;