hardhat-deploy 1.0.0 → 1.0.2

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 (30) hide show
  1. package/README.md +19 -17
  2. package/dist/src/helpers.d.ts.map +1 -1
  3. package/dist/src/helpers.js +6 -1
  4. package/dist/src/helpers.js.map +1 -1
  5. package/package.json +1 -1
  6. package/src/helpers.ts +9 -2
  7. package/dist/src/zksync/constants.d.ts +0 -7
  8. package/dist/src/zksync/constants.d.ts.map +0 -1
  9. package/dist/src/zksync/constants.js +0 -11
  10. package/dist/src/zksync/constants.js.map +0 -1
  11. package/dist/src/zksync/hardhat-zksync-eip712-signer.d.ts +0 -11
  12. package/dist/src/zksync/hardhat-zksync-eip712-signer.d.ts.map +0 -1
  13. package/dist/src/zksync/hardhat-zksync-eip712-signer.js +0 -24
  14. package/dist/src/zksync/hardhat-zksync-eip712-signer.js.map +0 -1
  15. package/dist/src/zksync/hardhat-zksync-provider.d.ts +0 -11
  16. package/dist/src/zksync/hardhat-zksync-provider.d.ts.map +0 -1
  17. package/dist/src/zksync/hardhat-zksync-provider.js +0 -16
  18. package/dist/src/zksync/hardhat-zksync-provider.js.map +0 -1
  19. package/dist/src/zksync/hardhat-zksync-signer.d.ts +0 -18
  20. package/dist/src/zksync/hardhat-zksync-signer.d.ts.map +0 -1
  21. package/dist/src/zksync/hardhat-zksync-signer.js +0 -103
  22. package/dist/src/zksync/hardhat-zksync-signer.js.map +0 -1
  23. package/dist/src/zksync/rich-wallets.d.ts +0 -11
  24. package/dist/src/zksync/rich-wallets.d.ts.map +0 -1
  25. package/dist/src/zksync/rich-wallets.js +0 -94
  26. package/dist/src/zksync/rich-wallets.js.map +0 -1
  27. package/dist/src/zksync/utils.d.ts +0 -14
  28. package/dist/src/zksync/utils.d.ts.map +0 -1
  29. package/dist/src/zksync/utils.js +0 -106
  30. package/dist/src/zksync/utils.js.map +0 -1
package/README.md CHANGED
@@ -2,8 +2,7 @@
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
6
- > It also contains various branches exemplifying the capability of hardhat-deploy. Check it out.
5
+ > **A complete dev template using hardhat-deploy is available on this [repo (branch: hardhat-deploy-v1)](https://github.com/wighawag/template-ethereum-contracts/tree/hardhat-deploy-v1)**
7
6
 
8
7
  - [What is it for?](#what-is-it-for)
9
8
  - [hardhat-deploy in a nutshell](#hardhat-deploy-in-a-nutshell)
@@ -47,8 +46,8 @@ _A [Hardhat](https://hardhat.org) Plugin For Replicable Deployments And Easy Tes
47
46
  - [Handling contract using libraries](#handling-contract-using-libraries)
48
47
  - [Exporting Deployments](#exporting-deployments)
49
48
  - [Deploying and Upgrading Proxies](#deploying-and-upgrading-proxies)
50
- - [When the constructor and init functions are different](#when-the-constructor-and-init-functions-are-different)
51
- - [Proxy deployment options](#proxy-deployment-options)
49
+ - [When the constructor and init functions are different](#when-the-constructor-and-init-functions-are-different)
50
+ - [Proxy deployment options](#proxy-deployment-options)
52
51
  - [Builtin-In Support For Diamonds (EIP2535)](#builtin-in-support-for-diamonds-eip2535)
53
52
  - [deployment / upgrade](#deployment--upgrade)
54
53
  - [onUpgrade calls](#onupgrade-calls)
@@ -145,7 +144,6 @@ require('hardhat-deploy');
145
144
 
146
145
  if you use `ethers.js` we recommend you also install `hardhat-deploy-ethers` which add extra features to access deployments as ethers contract.
147
146
 
148
-
149
147
  ```bash
150
148
  npm install --save-dev @nomiclabs/hardhat-ethers hardhat-deploy-ethers ethers
151
149
  ```
@@ -403,7 +401,7 @@ Note that hardhat-deploy now use a different config format to not conflict with
403
401
 
404
402
  Keep in mind that the `ETHERSCAN_API_KEY` .env variable is read first, before the hardhat.config.ts.
405
403
  If you want to set up multi-network api key support, you can do it by adding an env loader that use .env.<network-name> files and set `ETHERSCAN_API_KEY` for each network this way.
406
- Alternatively, you can change the mainnet etherscan api key env var name to something other than `ETHERSCAN_API_KEY`, and specify the other network keys as specified above.
404
+ Alternatively, you can change the mainnet etherscan api key env var name to something other than `ETHERSCAN_API_KEY`, and specify the other network keys as specified above.
407
405
 
408
406
  `--api-url <url>`: let you specify your etherscan url to submit the source to. Can also be configured per network in `hardhat.config.js`:
409
407
 
@@ -423,8 +421,8 @@ Alternatively, you can change the mainnet etherscan api key env var name to some
423
421
  }
424
422
  }
425
423
  ```
426
- NOTE: some projects use `apiUrl` like `https://api-testnet.ftmscan.com/api`, but we should remove `/api` path here, just fill in `https://api-testnet.ftmscan.com`
427
424
 
425
+ NOTE: some projects use `apiUrl` like `https://api-testnet.ftmscan.com/api`, but we should remove `/api` path here, just fill in `https://api-testnet.ftmscan.com`
428
426
 
429
427
  `--license <SPDX license id>`: SPDX license (useful if SPDX is not listed in the sources), need to be supported by etherscan: https://etherscan.io/contract-license-types
430
428
 
@@ -637,7 +635,7 @@ module.exports = async ({
637
635
  getChainId,
638
636
  getUnnamedAccounts,
639
637
  }) => {
640
- const {deploy,execute} = deployments;
638
+ const {deploy, execute} = deployments;
641
639
  const {deployer} = await getNamedAccounts();
642
640
 
643
641
  const OVM_L1ERC20Gateway = await hre.companionNetworks['l1'].deployments.get(
@@ -1086,7 +1084,7 @@ For both --export and --export-all, if the extension ends in .ts it will generat
1086
1084
 
1087
1085
  ## Deploying and Upgrading Proxies
1088
1086
 
1089
- As mentioned above, the deploy function can also deploy a contract through a proxy. It can be done without modification of the contract *as long as its number of constructor arguments matches the proxy initialization/update function*. If the arguments do not match, see [this section below](#when-the-constructor-and-init-functions-are-different).
1087
+ As mentioned above, the deploy function can also deploy a contract through a proxy. It can be done without modification of the contract _as long as its number of constructor arguments matches the proxy initialization/update function_. If the arguments do not match, see [this section below](#when-the-constructor-and-init-functions-are-different).
1090
1088
 
1091
1089
  The default Proxy is both ERC-1967 and ERC-173 Compliant, but other proxy can be specified, like openzeppelin transparent proxies.
1092
1090
 
@@ -1173,20 +1171,22 @@ module.exports = async ({getNamedAccounts, deployments, getChainId}) => {
1173
1171
  // you could pause the deployment here and wait for input to continue
1174
1172
  };
1175
1173
  ```
1174
+
1176
1175
  #### When the constructor and init functions are different
1176
+
1177
1177
  When the constructor and proxy have different signatures, you will not be able to use the top level `args` property. Instead you can use the `execute` property of `proxy` to specify the `init` method and arguments. This will not try to pass any arguments to the constructor.
1178
1178
 
1179
1179
  ```typescript
1180
- const deployed = await deploy("YourContract", {
1180
+ const deployed = await deploy('YourContract', {
1181
1181
  from: deployer,
1182
1182
  proxy: {
1183
1183
  execute: {
1184
1184
  init: {
1185
- methodName: "initialize",
1186
- args: ["arg1", "arg2"],
1185
+ methodName: 'initialize',
1186
+ args: ['arg1', 'arg2'],
1187
1187
  },
1188
1188
  },
1189
- proxyContract: "OpenZeppelinTransparentProxy",
1189
+ proxyContract: 'OpenZeppelinTransparentProxy',
1190
1190
  },
1191
1191
  log: true,
1192
1192
  autoMine: true,
@@ -1194,6 +1194,7 @@ const deployed = await deploy("YourContract", {
1194
1194
  ```
1195
1195
 
1196
1196
  #### Proxy deployment options
1197
+
1197
1198
  The full proxy options is as follow:
1198
1199
 
1199
1200
  ```ts
@@ -1246,8 +1247,6 @@ it matches:
1246
1247
 
1247
1248
  - `OptimizedTransparentProxy`: This contract is similar to above, except that it is optimized to not require storage read for the admin on every call.
1248
1249
 
1249
-
1250
-
1251
1250
  ## Builtin-In Support For Diamonds (EIP2535)
1252
1251
 
1253
1252
  The deployments field also expose the diamond field: `hre.deployments.diamond` that let you deploy [Diamonds](https://eips.ethereum.org/EIPS/eip-2535) in an easy way.
@@ -1318,6 +1317,7 @@ diamond.deploy('ADiamondContract', {
1318
1317
  ### use diamond contract for your scripts
1319
1318
 
1320
1319
  set external typechain in `hardhat.config.ts`, this make sure typechain knows this abi and generate typechain files for the diamond contract
1320
+
1321
1321
  ```ts
1322
1322
  const config: HardhatUserConfig = {
1323
1323
  typechain: {
@@ -1329,7 +1329,9 @@ const config: HardhatUserConfig = {
1329
1329
  in your scripts
1330
1330
 
1331
1331
  ```ts
1332
- const ADiamondContract = await ethers.getContract<ADiamondContract>('ADiamondContract')
1332
+ const ADiamondContract = await ethers.getContract<ADiamondContract>(
1333
+ 'ADiamondContract'
1334
+ );
1333
1335
  // do your stuff
1334
1336
  ```
1335
1337
 
@@ -1482,7 +1484,7 @@ The same applies to the `console` task.
1482
1484
 
1483
1485
  It is possible to execute only specific parts of the deployments with `hardhat deploy --tags <tags>`
1484
1486
 
1485
- `<tags>` is an array of tags, separated by comma, for example `hardhat deploy --tags tag1,tag2` will look for the scripts containing **any** of the tags `tag1` or `tag2`
1487
+ `<tags>` is an array of tags, separated by comma, for example `hardhat deploy --tags tag1,tag2` will look for the scripts containing **any** of the tags `tag1` or `tag2`
1486
1488
 
1487
1489
  To execute only the scripts containing **all** the tags, add `--tags-require-all` flag, for example `hardhat deploy --tags tag1,tag2 --tags-require-all` will look for the scripts containing **all** of the tags `tag1` and `tag2`
1488
1490
 
@@ -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;AAwKxD,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,CAinGA;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;AAwKxD,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,CAwnGA;AAMD,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
@@ -330,8 +330,10 @@ getArtifact, saveDeployment, willSaveToDisk, onPendingTx, getGasPrice, log, prin
330
330
  maxPriorityFeePerGas: options.maxPriorityFeePerGas,
331
331
  value: options.value,
332
332
  nonce: options.nonce,
333
- customData: options.customData
334
333
  };
334
+ if (options.customData !== undefined) {
335
+ overrides.customData = options.customData;
336
+ }
335
337
  const factory = new DeploymentFactory_1.DeploymentFactory(getArtifact, linkedArtifact, args, network, ethersSigner, overrides);
336
338
  const unsignedTx = await factory.getDeployTransaction();
337
339
  let create2Address;
@@ -1838,6 +1840,9 @@ data: ${data}
1838
1840
  value: options.value ? bignumber_1.BigNumber.from(options.value) : undefined,
1839
1841
  nonce: options.nonce,
1840
1842
  };
1843
+ if (options.customData !== undefined) {
1844
+ overrides.customData = options.customData;
1845
+ }
1841
1846
  const ethersContract = new contracts_1.Contract(deployment.address, abi, ethersSigner);
1842
1847
  if (!ethersContract.functions[methodName]) {
1843
1848
  throw new Error(`No method named "${methodName}" on contract deployed as "${name}"`);
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat-deploy",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
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
@@ -535,9 +535,12 @@ export function addHelpers(
535
535
  maxPriorityFeePerGas: options.maxPriorityFeePerGas,
536
536
  value: options.value,
537
537
  nonce: options.nonce,
538
- customData: options.customData
539
538
  };
540
539
 
540
+ if (options.customData !== undefined) {
541
+ overrides.customData = options.customData;
542
+ }
543
+
541
544
  const factory = new DeploymentFactory(
542
545
  getArtifact,
543
546
  linkedArtifact,
@@ -2642,7 +2645,7 @@ data: ${data}
2642
2645
  let tx;
2643
2646
  const deployment = await partialExtension.get(name);
2644
2647
  const abi = deployment.abi;
2645
- const overrides = {
2648
+ const overrides: PayableOverrides = {
2646
2649
  gasLimit: options.gasLimit,
2647
2650
  gasPrice: options.gasPrice ? BigNumber.from(options.gasPrice) : undefined, // TODO cinfig
2648
2651
  maxFeePerGas: options.maxFeePerGas
@@ -2655,6 +2658,10 @@ data: ${data}
2655
2658
  nonce: options.nonce,
2656
2659
  };
2657
2660
 
2661
+ if (options.customData !== undefined) {
2662
+ overrides.customData = options.customData;
2663
+ }
2664
+
2658
2665
  const ethersContract = new Contract(deployment.address, abi, ethersSigner);
2659
2666
  if (!ethersContract.functions[methodName]) {
2660
2667
  throw new Error(
@@ -1,7 +0,0 @@
1
- export declare enum LOCAL_CHAIN_IDS_ENUM {
2
- ERA_NODE = "0x104",
3
- LOCAL_SETUP = "0x10e"
4
- }
5
- export declare const LOCAL_CHAIN_IDS: LOCAL_CHAIN_IDS_ENUM[];
6
- export declare const LOCAL_CHAINS_WITH_IMPERSONATION: LOCAL_CHAIN_IDS_ENUM[];
7
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/zksync/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,oBAAoB;IAC5B,QAAQ,UAAU;IAClB,WAAW,UAAU;CACxB;AAED,eAAO,MAAM,eAAe,wBAAoE,CAAC;AAEjG,eAAO,MAAM,+BAA+B,wBAAkC,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LOCAL_CHAINS_WITH_IMPERSONATION = exports.LOCAL_CHAIN_IDS = exports.LOCAL_CHAIN_IDS_ENUM = void 0;
4
- var LOCAL_CHAIN_IDS_ENUM;
5
- (function (LOCAL_CHAIN_IDS_ENUM) {
6
- LOCAL_CHAIN_IDS_ENUM["ERA_NODE"] = "0x104";
7
- LOCAL_CHAIN_IDS_ENUM["LOCAL_SETUP"] = "0x10e";
8
- })(LOCAL_CHAIN_IDS_ENUM = exports.LOCAL_CHAIN_IDS_ENUM || (exports.LOCAL_CHAIN_IDS_ENUM = {}));
9
- exports.LOCAL_CHAIN_IDS = [LOCAL_CHAIN_IDS_ENUM.ERA_NODE, LOCAL_CHAIN_IDS_ENUM.LOCAL_SETUP];
10
- exports.LOCAL_CHAINS_WITH_IMPERSONATION = [LOCAL_CHAIN_IDS_ENUM.ERA_NODE];
11
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/zksync/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC5B,0CAAkB,CAAA;IAClB,6CAAqB,CAAA;AACzB,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AAEY,QAAA,eAAe,GAAG,CAAC,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAEpF,QAAA,+BAA+B,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- import { ethers } from 'ethers';
2
- import { EIP712Signer, Wallet } from 'zksync-ethers';
3
- import { TransactionRequest } from 'zksync-ethers/build/types';
4
- export declare class HardhatZksyncEIP712Signer extends EIP712Signer {
5
- private readonly accountWallet;
6
- constructor(wallet: Wallet, chainId: number | Promise<number>);
7
- signMessage(message: string | Uint8Array): Promise<string>;
8
- signTransaction(_transaction: TransactionRequest): Promise<string>;
9
- _signTypedData(_domain: ethers.TypedDataDomain, _types: Record<string, ethers.TypedDataField[]>, _value: Record<string, any>): Promise<string>;
10
- }
11
- //# sourceMappingURL=hardhat-zksync-eip712-signer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hardhat-zksync-eip712-signer.d.ts","sourceRoot":"","sources":["../../../src/zksync/hardhat-zksync-eip712-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,qBAAa,yBAA0B,SAAQ,YAAY;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,eAAe,CAAC,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAOlE,cAAc,CACvB,OAAO,EAAE,MAAM,CAAC,eAAe,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,EAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC;CAGrB"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HardhatZksyncEIP712Signer = void 0;
4
- const zksync_ethers_1 = require("zksync-ethers");
5
- const utils_1 = require("zksync-ethers/build/utils");
6
- class HardhatZksyncEIP712Signer extends zksync_ethers_1.EIP712Signer {
7
- constructor(wallet, chainId) {
8
- super(wallet, chainId);
9
- this.accountWallet = wallet;
10
- }
11
- async signMessage(message) {
12
- return this.accountWallet.signMessage(message);
13
- }
14
- async signTransaction(_transaction) {
15
- _transaction.customData = _transaction.customData || {};
16
- _transaction.customData.customSignature = await this.sign(_transaction);
17
- return utils_1.serialize(_transaction);
18
- }
19
- async _signTypedData(_domain, _types, _value) {
20
- return this.accountWallet._signTypedData(_domain, _types, _value);
21
- }
22
- }
23
- exports.HardhatZksyncEIP712Signer = HardhatZksyncEIP712Signer;
24
- //# sourceMappingURL=hardhat-zksync-eip712-signer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hardhat-zksync-eip712-signer.js","sourceRoot":"","sources":["../../../src/zksync/hardhat-zksync-eip712-signer.ts"],"names":[],"mappings":";;;AACA,iDAAqD;AAErD,qDAAsD;AAEtD,MAAa,yBAA0B,SAAQ,4BAAY;IAGvD,YAAY,MAAc,EAAE,OAAiC;QACzD,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAA4B;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,YAAgC;QACzD,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;QACxD,YAAY,CAAC,UAAU,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAExE,OAAO,iBAAS,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,cAAc,CACvB,OAA+B,EAC/B,MAA+C,EAC/C,MAA2B;QAE3B,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;CACJ;AA1BD,8DA0BC"}
@@ -1,11 +0,0 @@
1
- import { ethers } from 'ethers';
2
- import { Provider } from 'zksync-ethers';
3
- import { Network } from 'hardhat/types';
4
- import { ConnectionInfo } from 'ethers/lib/utils';
5
- import { HardhatZksyncSigner } from './hardhat-zksync-signer';
6
- export declare class HardhatZksyncProvider extends Provider {
7
- readonly hardhatNetwork: Network;
8
- constructor(hardhatNetwork: Network, url?: ConnectionInfo | string, network?: ethers.providers.Networkish);
9
- getSigner(address?: string | number | undefined): HardhatZksyncSigner;
10
- }
11
- //# sourceMappingURL=hardhat-zksync-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hardhat-zksync-provider.d.ts","sourceRoot":"","sources":["../../../src/zksync/hardhat-zksync-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,qBAAsB,SAAQ,QAAQ;aAE3B,cAAc,EAAE,OAAO;gBAAvB,cAAc,EAAE,OAAO,EACvC,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,EAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;IAKlC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,mBAAmB;CAG/E"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HardhatZksyncProvider = void 0;
4
- const zksync_ethers_1 = require("zksync-ethers");
5
- const hardhat_zksync_signer_1 = require("./hardhat-zksync-signer");
6
- class HardhatZksyncProvider extends zksync_ethers_1.Provider {
7
- constructor(hardhatNetwork, url, network) {
8
- super(url, network);
9
- this.hardhatNetwork = hardhatNetwork;
10
- }
11
- getSigner(address) {
12
- return hardhat_zksync_signer_1.HardhatZksyncSigner.from(super.getSigner(address), this);
13
- }
14
- }
15
- exports.HardhatZksyncProvider = HardhatZksyncProvider;
16
- //# sourceMappingURL=hardhat-zksync-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hardhat-zksync-provider.js","sourceRoot":"","sources":["../../../src/zksync/hardhat-zksync-provider.ts"],"names":[],"mappings":";;;AACA,iDAAyC;AAGzC,mEAA8D;AAE9D,MAAa,qBAAsB,SAAQ,wBAAQ;IAC/C,YACoB,cAAuB,EACvC,GAA6B,EAC7B,OAAqC;QAErC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAJJ,mBAAc,GAAd,cAAc,CAAS;IAK3C,CAAC;IAEM,SAAS,CAAC,OAAqC;QAClD,OAAO,2CAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAQ,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;CACJ;AAZD,sDAYC"}
@@ -1,18 +0,0 @@
1
- import { Provider, Signer } from 'zksync-ethers';
2
- import { TransactionRequest, TransactionResponse } from 'zksync-ethers/build/types';
3
- import { ethers } from 'ethers';
4
- import { HardhatZksyncProvider } from './hardhat-zksync-provider';
5
- export declare class HardhatZksyncSigner extends Signer {
6
- private accountWallet?;
7
- static from(signer: ethers.providers.JsonRpcSigner & {
8
- provider: HardhatZksyncProvider;
9
- }, zksyncProvider?: Provider | HardhatZksyncProvider): HardhatZksyncSigner;
10
- sendTransaction(transaction: TransactionRequest): Promise<TransactionResponse>;
11
- signMessage(message: string | Uint8Array): Promise<string>;
12
- _signTypedData(domain: ethers.TypedDataDomain, types: Record<string, ethers.TypedDataField[]>, value: Record<string, any>): Promise<string>;
13
- signTransaction(transaction: TransactionRequest): Promise<string>;
14
- private _sendTransaction;
15
- private _prepareTransaction;
16
- private static _getProperSigner;
17
- }
18
- //# sourceMappingURL=hardhat-zksync-signer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hardhat-zksync-signer.d.ts","sourceRoot":"","sources":["../../../src/zksync/hardhat-zksync-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,QAAQ,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEpF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,qBAAa,mBAAoB,SAAQ,MAAM;IAC3C,OAAO,CAAC,aAAa,CAAC,CAAiD;WAEzD,IAAI,CACd,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG;QAAE,QAAQ,EAAE,qBAAqB,CAAA;KAAE,EAC5E,cAAc,CAAC,EAAE,QAAQ,GAAG,qBAAqB,GAClD,mBAAmB;IAST,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4B9E,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAe1D,cAAc,CACvB,MAAM,EAAE,MAAM,CAAC,eAAe,EAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,EAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,OAAO,CAAC,MAAM,CAAC;IAeL,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;YAehE,gBAAgB;YAShB,mBAAmB;mBA0BZ,gBAAgB;CAcxC"}
@@ -1,103 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HardhatZksyncSigner = void 0;
4
- const zksync_ethers_1 = require("zksync-ethers");
5
- const utils_1 = require("zksync-ethers/build/utils");
6
- const ethers_1 = require("ethers");
7
- const utils_2 = require("./utils");
8
- const rich_wallets_1 = require("./rich-wallets");
9
- const constants_1 = require("./constants");
10
- const hardhat_zksync_eip712_signer_1 = require("./hardhat-zksync-eip712-signer");
11
- class HardhatZksyncSigner extends zksync_ethers_1.Signer {
12
- static from(signer, zksyncProvider) {
13
- const newSigner = super.from(signer, zksyncProvider);
14
- const hardhatZksyncSigner = Object.setPrototypeOf(newSigner, HardhatZksyncSigner.prototype);
15
- return hardhatZksyncSigner;
16
- }
17
- async sendTransaction(transaction) {
18
- if (!this.accountWallet) {
19
- this.accountWallet = await HardhatZksyncSigner._getProperSigner(this.provider, this._address);
20
- }
21
- const address = await this.getAddress();
22
- const from = !transaction.from ? address : ethers_1.ethers.utils.getAddress(transaction.from);
23
- if (!utils_1.isAddressEq(from, address)) {
24
- throw new Error('Transaction `from` address mismatch!');
25
- }
26
- transaction.from = from;
27
- if (!this.accountWallet) {
28
- throw new Error(`Account ${from} is not managed by the node you are connected to.`);
29
- }
30
- if (this.accountWallet instanceof zksync_ethers_1.EIP712Signer) {
31
- return this._sendTransaction(transaction);
32
- }
33
- return this.accountWallet.sendTransaction(transaction);
34
- }
35
- async signMessage(message) {
36
- if (!this.accountWallet) {
37
- this.accountWallet = await HardhatZksyncSigner._getProperSigner(this.provider, this._address);
38
- }
39
- if (!this.accountWallet) {
40
- throw new Error(`Account ${this._address} is not managed by the node you are connected to.`);
41
- }
42
- return this.accountWallet.signMessage(message);
43
- }
44
- async _signTypedData(domain, types, value) {
45
- if (!this.accountWallet) {
46
- this.accountWallet = await HardhatZksyncSigner._getProperSigner(this.provider, this._address);
47
- }
48
- if (!this.accountWallet) {
49
- throw new Error(`Account ${this._address} is not managed by the node you are connected to.`);
50
- }
51
- return this.accountWallet._signTypedData(domain, types, value);
52
- }
53
- async signTransaction(transaction) {
54
- if (!this.accountWallet) {
55
- this.accountWallet = await HardhatZksyncSigner._getProperSigner(this.provider, this._address);
56
- }
57
- if (!this.accountWallet) {
58
- throw new Error(`Account ${this._address} is not managed by the node you are connected to.`);
59
- }
60
- const tx = await this._prepareTransaction(transaction);
61
- return this.accountWallet.signTransaction(tx);
62
- }
63
- async _sendTransaction(transaction) {
64
- const tx = await this._prepareTransaction(transaction);
65
- tx.customData = tx.customData || {};
66
- tx.customData.customSignature = await this.accountWallet.sign(transaction);
67
- const txBytes = utils_1.serialize(tx);
68
- return await this.provider.sendTransaction(txBytes);
69
- }
70
- async _prepareTransaction(transaction) {
71
- var _a, _b, _c, _d, _e, _f, _g, _h;
72
- if (!transaction.customData && !transaction.type) {
73
- // use legacy txs by default
74
- transaction.type = 0;
75
- }
76
- if (!transaction.customData && transaction.type !== utils_1.EIP712_TX_TYPE) {
77
- return (await super.populateTransaction(transaction));
78
- }
79
- const address = await this.getAddress();
80
- (_a = transaction.from) !== null && _a !== void 0 ? _a : (transaction.from = address);
81
- if (!utils_1.isAddressEq(transaction.from, address)) {
82
- throw new Error('Transaction `from` address mismatch!');
83
- }
84
- transaction.type = utils_1.EIP712_TX_TYPE;
85
- (_b = transaction.value) !== null && _b !== void 0 ? _b : (transaction.value = 0);
86
- (_c = transaction.data) !== null && _c !== void 0 ? _c : (transaction.data = '0x');
87
- (_d = transaction.nonce) !== null && _d !== void 0 ? _d : (transaction.nonce = await this.getNonce());
88
- transaction.customData = this._fillCustomData((_e = transaction.customData) !== null && _e !== void 0 ? _e : {});
89
- (_f = transaction.gasPrice) !== null && _f !== void 0 ? _f : (transaction.gasPrice = await this.provider.getGasPrice());
90
- (_g = transaction.gasLimit) !== null && _g !== void 0 ? _g : (transaction.gasLimit = await this.provider.estimateGas(transaction));
91
- (_h = transaction.chainId) !== null && _h !== void 0 ? _h : (transaction.chainId = (await this.provider.getNetwork()).chainId);
92
- return transaction;
93
- }
94
- static async _getProperSigner(provider, address) {
95
- let signer = await utils_2.findWalletFromAddress(address, provider.hardhatNetwork, provider);
96
- if (!signer && (await utils_2.isImpersonatedSigner(provider, address))) {
97
- signer = new hardhat_zksync_eip712_signer_1.HardhatZksyncEIP712Signer(new zksync_ethers_1.Wallet(rich_wallets_1.richWallets[constants_1.LOCAL_CHAIN_IDS_ENUM.ERA_NODE][0].privateKey), provider.getNetwork().then((n) => Number(n.chainId)));
98
- }
99
- return signer;
100
- }
101
- }
102
- exports.HardhatZksyncSigner = HardhatZksyncSigner;
103
- //# sourceMappingURL=hardhat-zksync-signer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hardhat-zksync-signer.js","sourceRoot":"","sources":["../../../src/zksync/hardhat-zksync-signer.ts"],"names":[],"mappings":";;;AAAA,iDAAuE;AAEvE,qDAAmF;AACnF,mCAAgC;AAChC,mCAAsE;AAEtE,iDAA6C;AAC7C,2CAAmD;AACnD,iFAA2E;AAE3E,MAAa,mBAAoB,SAAQ,sBAAM;IAGpC,MAAM,CAAC,IAAI,CACd,MAA4E,EAC5E,cAAiD;QAEjD,MAAM,SAAS,GAAW,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC7D,MAAM,mBAAmB,GAAwB,MAAM,CAAC,cAAc,CAClE,SAAS,EACT,mBAAmB,CAAC,SAAS,CAChC,CAAC;QACF,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,WAA+B;QACxD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAC1D,IAAI,CAAC,QAAkC,EACxC,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAErF,IAAI,CAAC,mBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SAC3D;QAED,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,mDAAmD,CAAC,CAAC;SACvF;QAED,IAAI,IAAI,CAAC,aAAa,YAAY,4BAAY,EAAE;YAC5C,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;SAC7C;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAA4B;QACjD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAC1D,IAAI,CAAC,QAAkC,EACxC,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,QAAQ,mDAAmD,CAAC,CAAC;SAChG;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,cAAc,CACvB,MAA8B,EAC9B,KAA8C,EAC9C,KAA0B;QAE1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAC1D,IAAI,CAAC,QAAkC,EACxC,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,QAAQ,mDAAmD,CAAC,CAAC;SAChG;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,WAA+B;QACxD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAC1D,IAAI,CAAC,QAAkC,EACxC,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,QAAQ,mDAAmD,CAAC,CAAC;SAChG;QACD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,WAA+B;QAC1D,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACvD,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,eAAe,GAAG,MAAO,IAAI,CAAC,aAA8B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE7F,MAAM,OAAO,GAAG,iBAAS,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,WAA+B;;QAC7D,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YAC9C,4BAA4B;YAC5B,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,KAAK,sBAAc,EAAE;YAChE,OAAO,CAAC,MAAM,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAuB,CAAC;SAC/E;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAA,WAAW,CAAC,IAAI,oCAAhB,WAAW,CAAC,IAAI,GAAK,OAAO,EAAC;QAC7B,IAAI,CAAC,mBAAW,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SAC3D;QACD,WAAW,CAAC,IAAI,GAAG,sBAAc,CAAC;QAClC,MAAA,WAAW,CAAC,KAAK,oCAAjB,WAAW,CAAC,KAAK,GAAK,CAAC,EAAC;QACxB,MAAA,WAAW,CAAC,IAAI,oCAAhB,WAAW,CAAC,IAAI,GAAK,IAAI,EAAC;QAC1B,MAAA,WAAW,CAAC,KAAK,oCAAjB,WAAW,CAAC,KAAK,GAAK,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAC;QAC5C,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAA,WAAW,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC;QAC5E,MAAA,WAAW,CAAC,QAAQ,oCAApB,WAAW,CAAC,QAAQ,GAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAC;QAC3D,MAAA,WAAW,CAAC,QAAQ,oCAApB,WAAW,CAAC,QAAQ,GAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,EAAC;QACtE,MAAA,WAAW,CAAC,OAAO,oCAAnB,WAAW,CAAC,OAAO,GAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAC;QAEnE,OAAO,WAAW,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CACjC,QAA+B,EAC/B,OAAe;QAEf,IAAI,MAAM,GAAmD,MAAM,6BAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACrI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,4BAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE;YAC5D,MAAM,GAAG,IAAI,wDAAyB,CAClC,IAAI,sBAAM,CAAC,0BAAW,CAAC,gCAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EACpE,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CACvD,CAAC;SACL;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA7ID,kDA6IC"}
@@ -1,11 +0,0 @@
1
- export declare const richWallets: {
2
- '0x104': {
3
- address: string;
4
- privateKey: string;
5
- }[];
6
- '0x10e': {
7
- address: string;
8
- privateKey: string;
9
- }[];
10
- };
11
- //# sourceMappingURL=rich-wallets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rich-wallets.d.ts","sourceRoot":"","sources":["../../../src/zksync/rich-wallets.ts"],"names":[],"mappings":"AAsFA,eAAO,MAAM,WAAW;;;;;;;;;CAKvB,CAAC"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.richWallets = void 0;
4
- const eraTestNodeRickWallets = [
5
- {
6
- address: '0xBC989fDe9e54cAd2aB4392Af6dF60f04873A033A',
7
- privateKey: '0x3d3cbc973389cb26f657686445bcc75662b415b656078503592ac8c1abb8810e',
8
- },
9
- {
10
- address: '0x55bE1B079b53962746B2e86d12f158a41DF294A6',
11
- privateKey: '0x509ca2e9e6acf0ba086477910950125e698d4ea70fa6f63e000c5a22bda9361c',
12
- },
13
- {
14
- address: '0xCE9e6063674DC585F6F3c7eaBe82B9936143Ba6C',
15
- privateKey: '0x71781d3a358e7a65150e894264ccc594993fbc0ea12d69508a340bc1d4f5bfbc',
16
- },
17
- {
18
- address: '0xd986b0cB0D1Ad4CCCF0C4947554003fC0Be548E9',
19
- privateKey: '0x379d31d4a7031ead87397f332aab69ef5cd843ba3898249ca1046633c0c7eefe',
20
- },
21
- {
22
- address: '0x87d6ab9fE5Adef46228fB490810f0F5CB16D6d04',
23
- privateKey: '0x105de4e75fe465d075e1daae5647a02e3aad54b8d23cf1f70ba382b9f9bee839',
24
- },
25
- {
26
- address: '0x78cAD996530109838eb016619f5931a03250489A',
27
- privateKey: '0x7becc4a46e0c3b512d380ca73a4c868f790d1055a7698f38fb3ca2b2ac97efbb',
28
- },
29
- {
30
- address: '0xc981b213603171963F81C687B9fC880d33CaeD16',
31
- privateKey: '0xe0415469c10f3b1142ce0262497fe5c7a0795f0cbfd466a6bfa31968d0f70841',
32
- },
33
- {
34
- address: '0x42F3dc38Da81e984B92A95CBdAAA5fA2bd5cb1Ba',
35
- privateKey: '0x4d91647d0a8429ac4433c83254fb9625332693c848e578062fe96362f32bfe91',
36
- },
37
- {
38
- address: '0x64F47EeD3dC749d13e49291d46Ea8378755fB6DF',
39
- privateKey: '0x41c9f9518aa07b50cb1c0cc160d45547f57638dd824a8d85b5eb3bf99ed2bdeb',
40
- },
41
- {
42
- address: '0xe2b8Cb53a43a56d4d2AB6131C81Bd76B86D3AFe5',
43
- privateKey: '0xb0680d66303a0163a19294f1ef8c95cd69a9d7902a4aca99c05f3e134e68a11a',
44
- },
45
- ];
46
- const commonRichWallets = [
47
- {
48
- address: '0x36615Cf349d7F6344891B1e7CA7C72883F5dc049',
49
- privateKey: '0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110',
50
- },
51
- {
52
- address: '0xa61464658AfeAf65CccaaFD3a512b69A83B77618',
53
- privateKey: '0xac1e735be8536c6534bb4f17f06f6afc73b2b5ba84ac2cfb12f7461b20c0bbe3',
54
- },
55
- {
56
- address: '0x0D43eB5B8a47bA8900d84AA36656c92024e9772e',
57
- privateKey: '0xd293c684d884d56f8d6abd64fc76757d3664904e309a0645baf8522ab6366d9e',
58
- },
59
- {
60
- address: '0xA13c10C0D5bd6f79041B9835c63f91de35A15883',
61
- privateKey: '0x850683b40d4a740aa6e745f889a6fdc8327be76e122f5aba645a5b02d0248db8',
62
- },
63
- {
64
- address: '0x8002cD98Cfb563492A6fB3E7C8243b7B9Ad4cc92',
65
- privateKey: '0xf12e28c0eb1ef4ff90478f6805b68d63737b7f33abfa091601140805da450d93',
66
- },
67
- {
68
- address: '0x4F9133D1d3F50011A6859807C837bdCB31Aaab13',
69
- privateKey: '0xe667e57a9b8aaa6709e51ff7d093f1c5b73b63f9987e4ab4aa9a5c699e024ee8',
70
- },
71
- {
72
- address: '0xbd29A1B981925B94eEc5c4F1125AF02a2Ec4d1cA',
73
- privateKey: '0x28a574ab2de8a00364d5dd4b07c4f2f574ef7fcc2a86a197f65abaec836d1959',
74
- },
75
- {
76
- address: '0xedB6F5B4aab3dD95C7806Af42881FF12BE7e9daa',
77
- privateKey: '0x74d8b3a188f7260f67698eb44da07397a298df5427df681ef68c45b34b61f998',
78
- },
79
- {
80
- address: '0xe706e60ab5Dc512C36A4646D719b889F398cbBcB',
81
- privateKey: '0xbe79721778b48bcc679b78edac0ce48306a8578186ffcb9f2ee455ae6efeace1',
82
- },
83
- {
84
- address: '0xE90E12261CCb0F3F7976Ae611A29e84a6A85f424',
85
- privateKey: '0x3eb15da85647edd9a1159a4a13b9e7c56877c4eb33f614546d4db06a51868b1c',
86
- },
87
- ];
88
- exports.richWallets = {
89
- // eslint-disable-next-line @typescript-eslint/naming-convention
90
- '0x104': [...eraTestNodeRickWallets, ...commonRichWallets],
91
- // eslint-disable-next-line @typescript-eslint/naming-convention
92
- '0x10e': [...commonRichWallets],
93
- };
94
- //# sourceMappingURL=rich-wallets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rich-wallets.js","sourceRoot":"","sources":["../../../src/zksync/rich-wallets.ts"],"names":[],"mappings":";;;AAAA,MAAM,sBAAsB,GAAG;IAC3B;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;CACJ,CAAC;AAEF,MAAM,iBAAiB,GAAG;IACtB;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;IACD;QACI,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,oEAAoE;KACnF;CACJ,CAAC;AAEW,QAAA,WAAW,GAAG;IACvB,gEAAgE;IAChE,OAAO,EAAE,CAAC,GAAG,sBAAsB,EAAE,GAAG,iBAAiB,CAAC;IAC1D,gEAAgE;IAChE,OAAO,EAAE,CAAC,GAAG,iBAAiB,CAAC;CAClC,CAAC"}
@@ -1,14 +0,0 @@
1
- import { HardhatNetworkAccountsConfig, HardhatNetworkHDAccountsConfig, HttpNetworkAccountsConfig, Network } from 'hardhat/types';
2
- import { Provider, Wallet } from 'zksync-ethers';
3
- export declare function getWallet(network: Network, provider: Provider, privateKeyOrIndex?: string | number): Promise<Wallet>;
4
- export declare function getWallets(network: Network, provider: Provider): Promise<Wallet[]>;
5
- export declare function isHardhatNetworkHDAccountsConfig(object: any): object is HardhatNetworkHDAccountsConfig;
6
- export declare function isHardhatNetworkAccountsConfigStrings(object: any): object is string[];
7
- export declare function isString(object: any): object is string;
8
- export declare function isNumber(object: any): object is number;
9
- export declare function getWalletsFromAccount(network: Network, provider: Provider, accounts: HardhatNetworkAccountsConfig | HttpNetworkAccountsConfig): Promise<Wallet[]>;
10
- export declare function findWalletFromAddress(address: string, network: Network, provider: Provider, wallets?: Wallet[]): Promise<Wallet | undefined>;
11
- export declare function getSignerAccounts(network: Network, provider: Provider): Promise<string[]>;
12
- export declare function getRichWalletsIfPossible(provider: Provider): Promise<Wallet[]>;
13
- export declare function isImpersonatedSigner(provider: Provider, address: string): Promise<boolean>;
14
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/zksync/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,4BAA4B,EAC5B,8BAA8B,EAC9B,yBAAyB,EACzB,OAAO,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AASjD,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB1H;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIxF;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,8BAA8B,CAEtG;AAED,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAErF;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,CAEtD;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,CAEtD;AAED,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,4BAA4B,GAAG,yBAAyB,GACnE,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBnB;AAED,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAW/F;AAED,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUpF;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAehG"}
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isImpersonatedSigner = exports.getRichWalletsIfPossible = exports.getSignerAccounts = exports.findWalletFromAddress = exports.getWalletsFromAccount = exports.isNumber = exports.isString = exports.isHardhatNetworkAccountsConfigStrings = exports.isHardhatNetworkHDAccountsConfig = exports.getWallets = exports.getWallet = void 0;
4
- const zksync_ethers_1 = require("zksync-ethers");
5
- const constants_1 = require("./constants");
6
- const rich_wallets_1 = require("./rich-wallets");
7
- const utils_1 = require("zksync-ethers/build/utils");
8
- async function getWallet(network, provider, privateKeyOrIndex) {
9
- const privateKey = isString(privateKeyOrIndex) ? privateKeyOrIndex : undefined;
10
- const accountNumber = isNumber(privateKeyOrIndex) ? privateKeyOrIndex : undefined;
11
- if (privateKey) {
12
- return new zksync_ethers_1.Wallet(privateKey, provider);
13
- }
14
- const accounts = network.config.accounts;
15
- const wallets = await getWalletsFromAccount(network, provider, accounts);
16
- if (accountNumber && accountNumber >= wallets.length) {
17
- throw new Error('Account private key with specified index is not found');
18
- }
19
- if (wallets.length === 0) {
20
- throw new Error('Accounts are not configured for this network');
21
- }
22
- return wallets[accountNumber || 0];
23
- }
24
- exports.getWallet = getWallet;
25
- async function getWallets(network, provider) {
26
- const accounts = network.config.accounts;
27
- return await getWalletsFromAccount(network, provider, accounts);
28
- }
29
- exports.getWallets = getWallets;
30
- function isHardhatNetworkHDAccountsConfig(object) {
31
- return 'mnemonic' in object;
32
- }
33
- exports.isHardhatNetworkHDAccountsConfig = isHardhatNetworkHDAccountsConfig;
34
- function isHardhatNetworkAccountsConfigStrings(object) {
35
- return typeof object[0] === 'string';
36
- }
37
- exports.isHardhatNetworkAccountsConfigStrings = isHardhatNetworkAccountsConfigStrings;
38
- function isString(object) {
39
- return typeof object === 'string';
40
- }
41
- exports.isString = isString;
42
- function isNumber(object) {
43
- return typeof object === 'number';
44
- }
45
- exports.isNumber = isNumber;
46
- async function getWalletsFromAccount(network, provider, accounts) {
47
- if (!accounts || accounts === 'remote') {
48
- return await getRichWalletsIfPossible(provider);
49
- }
50
- if (isHardhatNetworkAccountsConfigStrings(accounts)) {
51
- const accountPrivateKeys = accounts;
52
- const wallets = accountPrivateKeys.map((accountPrivateKey) => new zksync_ethers_1.Wallet(accountPrivateKey, provider));
53
- return wallets;
54
- }
55
- if (isHardhatNetworkHDAccountsConfig(accounts)) {
56
- const account = accounts;
57
- const wallet = zksync_ethers_1.Wallet.fromMnemonic(account.mnemonic)
58
- .connect(provider);
59
- return [wallet];
60
- }
61
- return [];
62
- }
63
- exports.getWalletsFromAccount = getWalletsFromAccount;
64
- async function findWalletFromAddress(address, network, provider, wallets) {
65
- if (!network) {
66
- throw new Error('Hardhat network is required to find wallet from address');
67
- }
68
- if (!wallets) {
69
- wallets = await getWallets(network, provider);
70
- }
71
- return wallets.find((w) => utils_1.isAddressEq(w.address, address));
72
- }
73
- exports.findWalletFromAddress = findWalletFromAddress;
74
- async function getSignerAccounts(network, provider) {
75
- const accounts = await network.provider.send('eth_accounts', []);
76
- if (!accounts || accounts.length === 0) {
77
- const wallets = await getWallets(network, provider);
78
- return wallets.map((w) => w.address);
79
- }
80
- const allWallets = await getWallets(network, provider);
81
- return accounts.filter((account) => allWallets.some((wallet) => utils_1.isAddressEq(wallet.address, account)));
82
- }
83
- exports.getSignerAccounts = getSignerAccounts;
84
- async function getRichWalletsIfPossible(provider) {
85
- const chainId = await provider.send('eth_chainId', []);
86
- if (constants_1.LOCAL_CHAIN_IDS.includes(chainId)) {
87
- const chainIdEnum = chainId;
88
- return rich_wallets_1.richWallets[chainIdEnum].map((wallet) => new zksync_ethers_1.Wallet(wallet.privateKey, provider));
89
- }
90
- return [];
91
- }
92
- exports.getRichWalletsIfPossible = getRichWalletsIfPossible;
93
- async function isImpersonatedSigner(provider, address) {
94
- const chainId = await provider.send('eth_chainId', []);
95
- if (!constants_1.LOCAL_CHAINS_WITH_IMPERSONATION.includes(chainId)) {
96
- return false;
97
- }
98
- const result = await provider.send('hardhat_stopImpersonatingAccount', [address]);
99
- if (!result) {
100
- return false;
101
- }
102
- await provider.send('hardhat_impersonateAccount', [address]);
103
- return true;
104
- }
105
- exports.isImpersonatedSigner = isImpersonatedSigner;
106
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/zksync/utils.ts"],"names":[],"mappings":"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"}